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

/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
       ========================================================================== */
/**
     * 1. Change the default font family in all browsers (opinionated).
     * 2. Correct the line height in all browsers.
     * 3. Prevent adjustments of font size after orientation changes in
     *    IE on Windows Phone and in iOS.
     */
html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */ }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

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

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

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

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

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

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

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

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

button,
[type="button"],
[type="reset"],
[type="submit"] {
  /**
       * Remove the inner border and padding in Firefox.
       */
  /**
       * Restore the focus styles unset by the previous rule.
       */ }
  button::-moz-focus-inner,
  [type="button"]::-moz-focus-inner,
  [type="reset"]::-moz-focus-inner,
  [type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0; }
  button:-moz-focusring,
  [type="button"]:-moz-focusring,
  [type="reset"]:-moz-focusring,
  [type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

html {
  box-sizing: border-box;
  font-size: 18px; }

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

body {
  margin: 0;
  padding: 0;
  background: #fff;
  font-family: "Lato", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #333333;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

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

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

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

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

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

pre {
  overflow: auto; }

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

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

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

.row {
  max-width: 66.66667rem;
  margin-right: auto;
  margin-left: auto; }
  .row::before, .row::after {
    display: table;
    content: ' '; }
  .row::after {
    clear: both; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row .row {
    margin-right: -0.83333rem;
    margin-left: -0.83333rem; }
    @media print, screen and (min-width: 40em) {
      .row .row {
        margin-right: -0.83333rem;
        margin-left: -0.83333rem; } }
    @media print, screen and (min-width: 64em) {
      .row .row {
        margin-right: -0.83333rem;
        margin-left: -0.83333rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.gutter-small > .column, .row.gutter-small > .columns {
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
  .row.gutter-medium > .column, .row.gutter-medium > .columns {
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }

.column, .columns {
  width: 100%;
  float: left;
  padding-right: 0.83333rem;
  padding-left: 0.83333rem; }
  @media print, screen and (min-width: 40em) {
    .column, .columns {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: right; }
  .column.end:last-child:last-child, .end.columns:last-child:last-child, .projects-content .facetwp-template .columns:last-child:last-child {
    float: left; }

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

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

.small-1 {
  width: 8.33333%; }

.small-push-1 {
  position: relative;
  left: 8.33333%; }

.small-pull-1 {
  position: relative;
  left: -8.33333%; }

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

.small-2 {
  width: 16.66667%; }

.small-push-2 {
  position: relative;
  left: 16.66667%; }

.small-pull-2 {
  position: relative;
  left: -16.66667%; }

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

.small-3 {
  width: 25%; }

.small-push-3 {
  position: relative;
  left: 25%; }

.small-pull-3 {
  position: relative;
  left: -25%; }

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

.small-4 {
  width: 33.33333%; }

.small-push-4 {
  position: relative;
  left: 33.33333%; }

.small-pull-4 {
  position: relative;
  left: -33.33333%; }

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

.small-5 {
  width: 41.66667%; }

.small-push-5 {
  position: relative;
  left: 41.66667%; }

.small-pull-5 {
  position: relative;
  left: -41.66667%; }

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

.small-6 {
  width: 50%; }

.small-push-6 {
  position: relative;
  left: 50%; }

.small-pull-6 {
  position: relative;
  left: -50%; }

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

.small-7 {
  width: 58.33333%; }

.small-push-7 {
  position: relative;
  left: 58.33333%; }

.small-pull-7 {
  position: relative;
  left: -58.33333%; }

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

.small-8 {
  width: 66.66667%; }

.small-push-8 {
  position: relative;
  left: 66.66667%; }

.small-pull-8 {
  position: relative;
  left: -66.66667%; }

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

.small-9 {
  width: 75%; }

.small-push-9 {
  position: relative;
  left: 75%; }

.small-pull-9 {
  position: relative;
  left: -75%; }

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

.small-10 {
  width: 83.33333%; }

.small-push-10 {
  position: relative;
  left: 83.33333%; }

.small-pull-10 {
  position: relative;
  left: -83.33333%; }

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

.small-11 {
  width: 91.66667%; }

.small-push-11 {
  position: relative;
  left: 91.66667%; }

.small-pull-11 {
  position: relative;
  left: -91.66667%; }

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

.small-12 {
  width: 100%; }

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

.small-up-1 > .column, .small-up-1 > .columns {
  float: left;
  width: 100%; }
  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
    clear: both; }
  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
    float: left; }

.small-up-2 > .column, .small-up-2 > .columns {
  float: left;
  width: 50%; }
  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
    clear: both; }
  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
    float: left; }

.small-up-3 > .column, .small-up-3 > .columns {
  float: left;
  width: 33.33333%; }
  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
    clear: both; }
  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
    float: left; }

.small-up-4 > .column, .small-up-4 > .columns {
  float: left;
  width: 25%; }
  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
    clear: both; }
  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
    float: left; }

.small-up-5 > .column, .small-up-5 > .columns {
  float: left;
  width: 20%; }
  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
    clear: both; }
  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
    float: left; }

.small-up-6 > .column, .small-up-6 > .columns {
  float: left;
  width: 16.66667%; }
  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
    clear: both; }
  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
    float: left; }

.small-up-7 > .column, .small-up-7 > .columns {
  float: left;
  width: 14.28571%; }
  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
    clear: both; }
  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
    float: left; }

.small-up-8 > .column, .small-up-8 > .columns {
  float: left;
  width: 12.5%; }
  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
    clear: both; }
  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
    float: left; }

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

.small-collapse .row {
  margin-right: 0;
  margin-left: 0; }

.expanded.row .small-collapse.row {
  margin-right: 0;
  margin-left: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.83333rem;
  padding-left: 0.83333rem; }

.small-centered {
  margin-right: auto;
  margin-left: auto; }
  .small-centered, .small-centered:last-child:not(:first-child) {
    float: none;
    clear: both; }

.small-uncentered,
.small-push-0,
.small-pull-0 {
  position: static;
  float: left;
  margin-right: 0;
  margin-left: 0; }

@media print, screen and (min-width: 40em) {
  .medium-1 {
    width: 8.33333%; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%; }
  .medium-pull-1 {
    position: relative;
    left: -8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%; }
  .medium-pull-2 {
    position: relative;
    left: -16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    width: 25%; }
  .medium-push-3 {
    position: relative;
    left: 25%; }
  .medium-pull-3 {
    position: relative;
    left: -25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%; }
  .medium-pull-4 {
    position: relative;
    left: -33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%; }
  .medium-pull-5 {
    position: relative;
    left: -41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    width: 50%; }
  .medium-push-6 {
    position: relative;
    left: 50%; }
  .medium-pull-6 {
    position: relative;
    left: -50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%; }
  .medium-pull-7 {
    position: relative;
    left: -58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%; }
  .medium-pull-8 {
    position: relative;
    left: -66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    width: 75%; }
  .medium-push-9 {
    position: relative;
    left: 75%; }
  .medium-pull-9 {
    position: relative;
    left: -75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%; }
  .medium-pull-10 {
    position: relative;
    left: -83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%; }
  .medium-pull-11 {
    position: relative;
    left: -91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    float: left;
    width: 100%; }
    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
      float: left; }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    float: left;
    width: 50%; }
    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
      float: left; }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
      float: left; }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    float: left;
    width: 25%; }
    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
      float: left; }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    float: left;
    width: 20%; }
    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
      float: left; }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
      float: left; }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
      float: left; }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
      float: left; }
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .medium-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
  .medium-centered {
    margin-right: auto;
    margin-left: auto; }
    .medium-centered, .medium-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .medium-uncentered,
  .medium-push-0,
  .medium-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

@media print, screen and (min-width: 64em) {
  .large-1 {
    width: 8.33333%; }
  .large-push-1 {
    position: relative;
    left: 8.33333%; }
  .large-pull-1 {
    position: relative;
    left: -8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    width: 16.66667%; }
  .large-push-2 {
    position: relative;
    left: 16.66667%; }
  .large-pull-2 {
    position: relative;
    left: -16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    width: 25%; }
  .large-push-3 {
    position: relative;
    left: 25%; }
  .large-pull-3 {
    position: relative;
    left: -25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    width: 33.33333%; }
  .large-push-4 {
    position: relative;
    left: 33.33333%; }
  .large-pull-4 {
    position: relative;
    left: -33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    width: 41.66667%; }
  .large-push-5 {
    position: relative;
    left: 41.66667%; }
  .large-pull-5 {
    position: relative;
    left: -41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    width: 50%; }
  .large-push-6 {
    position: relative;
    left: 50%; }
  .large-pull-6 {
    position: relative;
    left: -50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    width: 58.33333%; }
  .large-push-7 {
    position: relative;
    left: 58.33333%; }
  .large-pull-7 {
    position: relative;
    left: -58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    width: 66.66667%; }
  .large-push-8 {
    position: relative;
    left: 66.66667%; }
  .large-pull-8 {
    position: relative;
    left: -66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    width: 75%; }
  .large-push-9 {
    position: relative;
    left: 75%; }
  .large-pull-9 {
    position: relative;
    left: -75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    width: 83.33333%; }
  .large-push-10 {
    position: relative;
    left: 83.33333%; }
  .large-pull-10 {
    position: relative;
    left: -83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    width: 91.66667%; }
  .large-push-11 {
    position: relative;
    left: 91.66667%; }
  .large-pull-11 {
    position: relative;
    left: -91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 > .column, .large-up-1 > .columns {
    float: left;
    width: 100%; }
    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
      float: left; }
  .large-up-2 > .column, .large-up-2 > .columns {
    float: left;
    width: 50%; }
    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
      float: left; }
  .large-up-3 > .column, .large-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
      float: left; }
  .large-up-4 > .column, .large-up-4 > .columns {
    float: left;
    width: 25%; }
    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
      float: left; }
  .large-up-5 > .column, .large-up-5 > .columns {
    float: left;
    width: 20%; }
    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
      float: left; }
  .large-up-6 > .column, .large-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
      float: left; }
  .large-up-7 > .column, .large-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
      float: left; }
  .large-up-8 > .column, .large-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
      float: left; }
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .large-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
  .large-centered {
    margin-right: auto;
    margin-left: auto; }
    .large-centered, .large-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .large-uncentered,
  .large-push-0,
  .large-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

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

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
body.page-template-page-search-custom .search-form input[type='text'],
body.page-template-page-search-custom .st-ui-result .st-ui-type-heading,
body.search .search-form input[type='text'],
h3,
.accordion-title,
h4,
.single-dowl_service .service-sub-practice-area .pa-details-hdr,
.home-news .title,
.home-jobs .title,
h5,
h6,
pre,
form,
p,
address,
body.page-template-page-search-custom .st-ui-result .st-ui-type-detail,
body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }


p,
address,
body.page-template-page-search-custom .st-ui-result .st-ui-type-detail,
body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility; }

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

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

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

h1, .h1,
h2,
body.page-template-page-search-custom .search-form input[type='text'],
body.page-template-page-search-custom .st-ui-result .st-ui-type-heading,
body.search .search-form input[type='text'], .h2,
h3,
.accordion-title, .h3,
h4,
.single-dowl_service .service-sub-practice-area .pa-details-hdr,
.home-news .title,
.home-jobs .title, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Saira", sans-serif;
  font-style: normal;
  font-weight: bold;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small,
  h2 small,
  body.page-template-page-search-custom .search-form input[type='text'] small,
  body.page-template-page-search-custom .st-ui-result .st-ui-type-heading small,
  body.search .search-form input[type='text'] small, .h2 small,
  h3 small,
  .accordion-title small, .h3 small,
  h4 small,
  .single-dowl_service .service-sub-practice-area .pa-details-hdr small,
  .home-news .title small,
  .home-jobs .title small, .h4 small,
  h5 small, .h5 small,
  h6 small, .h6 small {
    line-height: 0;
    color: #cacaca; }

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


h2,
body.page-template-page-search-custom .search-form input[type='text'],
body.page-template-page-search-custom .st-ui-result .st-ui-type-heading,
body.search .search-form input[type='text'], .h2 {
  font-size: 1.11111rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }


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


h4,
.single-dowl_service .service-sub-practice-area .pa-details-hdr,
.home-news .title,
.home-jobs .title, .h4 {
  font-size: 0.88889rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

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

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

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 1.88889rem; }
  
  h2,
  body.page-template-page-search-custom .search-form input[type='text'],
  body.page-template-page-search-custom .st-ui-result .st-ui-type-heading,
  body.search .search-form input[type='text'], .h2 {
    font-size: 1.44444rem; }
  
  h3,
  .accordion-title, .h3 {
    font-size: 1.11111rem; }
  
  h4,
  .single-dowl_service .service-sub-practice-area .pa-details-hdr,
  .home-news .title,
  .home-jobs .title, .h4 {
    font-size: 1rem; }
  h5, .h5 {
    font-size: 0.88889rem; }
  h6, .h6 {
    font-size: 0.88889rem; } }

@media print, screen and (min-width: 64em) {
  h1, .h1 {
    font-size: 2.33333rem; }
  
  h2,
  body.page-template-page-search-custom .search-form input[type='text'],
  body.page-template-page-search-custom .st-ui-result .st-ui-type-heading,
  body.search .search-form input[type='text'], .h2 {
    font-size: 1.88889rem; }
  
  h3,
  .accordion-title, .h3 {
    font-size: 1.33333rem; }
  
  h4,
  .single-dowl_service .service-sub-practice-area .pa-details-hdr,
  .home-news .title,
  .home-jobs .title, .h4 {
    font-size: 1.16667rem; }
  h5, .h5 {
    font-size: 1.05556rem; }
  h6, .h6 {
    font-size: 1rem; } }

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

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

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

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

ul ul, 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 0 0 0;
  border-left: none; }
  blockquote, blockquote p, blockquote address, blockquote body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result blockquote .st-ui-type-detail, blockquote body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result blockquote .st-ui-type-detail-bold {
    line-height: 1.6;
    color: #666; }

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

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

figure {
  margin: 0; }

code {
  padding: 0.11111rem 0.27778rem 0.05556rem;
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #000; }

kbd {
  margin: 0;
  padding: 0.11111rem 0.22222rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #000; }

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

.lead {
  font-size: 22.5px;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat, address + .stat, body.page-template-page-search-custom .st-ui-result .st-ui-type-detail + .stat, body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold + .stat {
    margin-top: -1rem; }

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

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

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

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

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

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

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

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

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: black !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  
  p,
  address,
  body.page-template-page-search-custom .st-ui-result .st-ui-type-detail,
  body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold,
  h2,
  body.page-template-page-search-custom .search-form input[type='text'],
  body.page-template-page-search-custom .st-ui-result .st-ui-type-heading,
  body.search .search-form input[type='text'],
  h3,
  .accordion-title {
    orphans: 3;
    widows: 3; }
  
  h2,
  body.page-template-page-search-custom .search-form input[type='text'],
  body.page-template-page-search-custom .st-ui-result .st-ui-type-heading,
  body.search .search-form input[type='text'],
  h3,
  .accordion-title {
    page-break-after: avoid; }
  .print-break-inside {
    page-break-inside: auto; } }

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  font-family: inherit;
  padding: 0.85em 1em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 0;
  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: #d05511;
  color: #fff; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button:hover, .button:focus {
    background-color: #b1480e;
    color: #fff; }
  .button.tiny {
    font-size: 0.6rem; }
  .button.small {
    font-size: 0.75rem; }
  .button.large {
    font-size: 1.25rem; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button.primary {
    background-color: #d05511;
    color: #000; }
    .button.primary:hover, .button.primary:focus {
      background-color: #a6440e;
      color: #000; }
  .button.secondary {
    background-color: #a7a9ac;
    color: #000; }
    .button.secondary:hover, .button.secondary:focus {
      background-color: #84878b;
      color: #000; }
  .button.success {
    background-color: #3adb76;
    color: #000; }
    .button.success:hover, .button.success:focus {
      background-color: #22bb5b;
      color: #000; }
  .button.warning {
    background-color: #ffae00;
    color: #000; }
    .button.warning:hover, .button.warning:focus {
      background-color: #cc8b00;
      color: #000; }
  .button.alert {
    background-color: #cc4b37;
    color: #000; }
    .button.alert:hover, .button.alert:focus {
      background-color: #a53b2a;
      color: #000; }
  .button.disabled, .button[disabled] {
    opacity: 0.25;
    cursor: not-allowed; }
    .button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus {
      background-color: #d05511;
      color: #fff; }
    .button.disabled.primary, .button[disabled].primary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
        background-color: #d05511;
        color: #000; }
    .button.disabled.secondary, .button[disabled].secondary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #a7a9ac;
        color: #000; }
    .button.disabled.success, .button[disabled].success {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #3adb76;
        color: #000; }
    .button.disabled.warning, .button[disabled].warning {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #ffae00;
        color: #000; }
    .button.disabled.alert, .button[disabled].alert {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #cc4b37;
        color: #000; }
  .button.hollow {
    border: 1px solid #d05511;
    color: #d05511; }
    .button.hollow, .button.hollow:hover, .button.hollow:focus {
      background-color: transparent; }
    .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
      background-color: transparent; }
    .button.hollow:hover, .button.hollow:focus {
      border-color: #682b09;
      color: #682b09; }
      .button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] {
        border: 1px solid #d05511;
        color: #d05511; }
    .button.hollow.primary {
      border: 1px solid #d05511;
      color: #d05511; }
      .button.hollow.primary:hover, .button.hollow.primary:focus {
        border-color: #682b09;
        color: #682b09; }
        .button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] {
          border: 1px solid #d05511;
          color: #d05511; }
    .button.hollow.secondary {
      border: 1px solid #a7a9ac;
      color: #a7a9ac; }
      .button.hollow.secondary:hover, .button.hollow.secondary:focus {
        border-color: #525457;
        color: #525457; }
        .button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] {
          border: 1px solid #a7a9ac;
          color: #a7a9ac; }
    .button.hollow.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .button.hollow.success:focus {
        border-color: #157539;
        color: #157539; }
        .button.hollow.success:hover.disabled, .button.hollow.success:hover[disabled], .button.hollow.success:focus.disabled, .button.hollow.success:focus[disabled] {
          border: 1px solid #3adb76;
          color: #3adb76; }
    .button.hollow.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, .button.hollow.warning:focus {
        border-color: #805700;
        color: #805700; }
        .button.hollow.warning:hover.disabled, .button.hollow.warning:hover[disabled], .button.hollow.warning:focus.disabled, .button.hollow.warning:focus[disabled] {
          border: 1px solid #ffae00;
          color: #ffae00; }
    .button.hollow.alert {
      border: 1px solid #cc4b37;
      color: #cc4b37; }
      .button.hollow.alert:hover, .button.hollow.alert:focus {
        border-color: #67251a;
        color: #67251a; }
        .button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled] {
          border: 1px solid #cc4b37;
          color: #cc4b37; }
  .button.clear {
    border: 1px solid #d05511;
    color: #d05511; }
    .button.clear, .button.clear:hover, .button.clear:focus {
      background-color: transparent; }
    .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
      background-color: transparent; }
    .button.clear:hover, .button.clear:focus {
      border-color: #682b09;
      color: #682b09; }
      .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] {
        border: 1px solid #d05511;
        color: #d05511; }
    .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear:hover, .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus, .button.clear:focus.disabled, .button.clear:focus[disabled] {
      border-color: transparent; }
    .button.clear.primary {
      border: 1px solid #d05511;
      color: #d05511; }
      .button.clear.primary:hover, .button.clear.primary:focus {
        border-color: #682b09;
        color: #682b09; }
        .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
          border: 1px solid #d05511;
          color: #d05511; }
      .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary:hover, .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus, .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
        border-color: transparent; }
    .button.clear.secondary {
      border: 1px solid #a7a9ac;
      color: #a7a9ac; }
      .button.clear.secondary:hover, .button.clear.secondary:focus {
        border-color: #525457;
        color: #525457; }
        .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
          border: 1px solid #a7a9ac;
          color: #a7a9ac; }
      .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary:hover, .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus, .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
        border-color: transparent; }
    .button.clear.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.clear.success:hover, .button.clear.success:focus {
        border-color: #157539;
        color: #157539; }
        .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
          border: 1px solid #3adb76;
          color: #3adb76; }
      .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success:hover, .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus, .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
        border-color: transparent; }
    .button.clear.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.clear.warning:hover, .button.clear.warning:focus {
        border-color: #805700;
        color: #805700; }
        .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
          border: 1px solid #ffae00;
          color: #ffae00; }
      .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning:hover, .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus, .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
        border-color: transparent; }
    .button.clear.alert {
      border: 1px solid #cc4b37;
      color: #cc4b37; }
      .button.clear.alert:hover, .button.clear.alert:focus {
        border-color: #67251a;
        color: #67251a; }
        .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
          border: 1px solid #cc4b37;
          color: #cc4b37; }
      .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert:hover, .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus, .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
        border-color: transparent; }
  .button.dropdown::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #fff transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 1em; }
  .button.dropdown.hollow::after {
    border-top-color: #d05511; }
  .button.dropdown.hollow.primary::after {
    border-top-color: #d05511; }
  .button.dropdown.hollow.secondary::after {
    border-top-color: #a7a9ac; }
  .button.dropdown.hollow.success::after {
    border-top-color: #3adb76; }
  .button.dropdown.hollow.warning::after {
    border-top-color: #ffae00; }
  .button.dropdown.hollow.alert::after {
    border-top-color: #cc4b37; }
  .button.arrow-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0; }

a.button:hover, a.button: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;
  box-sizing: border-box;
  width: 100%;
  height: 2.16667rem;
  margin: 0 0 0.88889rem;
  padding: 0.44444rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fff;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  font-family: inherit;
  font-size: 0.88889rem;
  font-weight: normal;
  line-height: 1.5;
  color: #000;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fff;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

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

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

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

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

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

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

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

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

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

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

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

label {
  display: block;
  margin: 0;
  font-size: 0.77778rem;
  font-weight: normal;
  line-height: 1.8;
  color: #000; }
  label.middle {
    margin: 0 0 0.88889rem;
    padding: 0.5rem 0; }

.help-text {
  margin-top: -0.44444rem;
  font-size: 0.72222rem;
  font-style: italic;
  color: #000; }

.input-group {
  display: table;
  width: 100%;
  margin-bottom: 0.88889rem; }
  .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;
  display: table-cell;
  vertical-align: middle; }

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #000;
  text-align: center;
  white-space: nowrap;
  width: 1%;
  height: 100%; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  height: 2.22222rem; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  width: 1%;
  height: 100%; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label {
    height: 2.22222rem;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 0.88889rem; }

.input-group .input-group-button {
  display: table-cell; }

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

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

.fieldset {
  margin: 1rem 0;
  padding: 1.11111rem;
  border: 1px solid #cacaca; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.16667rem;
    padding: 0 0.16667rem; }

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

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #faedeb; }
  .is-invalid-input:not(:focus)::-webkit-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.44444rem;
  margin-bottom: 0.88889rem;
  font-size: 0.66667rem;
  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 0;
  border: none;
  border-bottom: 0;
  font-size: 1.33333rem;
  line-height: 1;
  color: #d05511; }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: none;
    border-radius: 0 0 0 0; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #e6e6e6; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: '+'; }
  .is-active > .accordion-title::before {
    content: '\2013'; }

.accordion-content {
  display: none;
  padding: 0 0 30px 0;
  border: none;
  border-bottom: 0;
  background-color: #fff;
  color: #333333; }
  :last-child > .accordion-content:last-child {
    border-bottom: none; }

.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: #fff 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);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transform-origin: 50% 50%;
      -ms-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: #fff transparent transparent;
    top: 0;
    bottom: 0;
    margin: auto; }

.submenu-toggle[aria-expanded='true']::after {
  -webkit-transform: scaleY(-1);
      -ms-transform: scaleY(-1);
          transform: scaleY(-1);
  -webkit-transform-origin: 50% 50%;
      -ms-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: #d05511;
  color: #fff; }
  .badge.primary {
    background: #d05511;
    color: #000; }
  .badge.secondary {
    background: #a7a9ac;
    color: #000; }
  .badge.success {
    background: #3adb76;
    color: #000; }
  .badge.warning {
    background: #ffae00;
    color: #000; }
  .badge.alert {
    background: #cc4b37;
    color: #000; }

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

.button-group {
  margin-bottom: 1rem;
  font-size: 0; }
  .button-group::before, .button-group::after {
    display: table;
    content: ' '; }
  .button-group::after {
    clear: both; }
  .button-group .button {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 0.9rem; }
    .button-group .button:last-child {
      margin-right: 0; }
  .button-group.tiny .button {
    font-size: 0.6rem; }
  .button-group.small .button {
    font-size: 0.75rem; }
  .button-group.large .button {
    font-size: 1.25rem; }
  .button-group.expanded {
    margin-right: -1px; }
    .button-group.expanded::before, .button-group.expanded::after {
      display: none; }
    .button-group.expanded .button:first-child:last-child {
      width: 100%; }
    .button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {
      display: inline-block;
      width: calc(50% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {
      display: inline-block;
      width: calc(33.33333% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {
      display: inline-block;
      width: calc(25% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {
      display: inline-block;
      width: calc(20% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {
      display: inline-block;
      width: calc(16.66667% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {
        margin-right: -6px; }
  .button-group.primary .button {
    background-color: #d05511;
    color: #000; }
    .button-group.primary .button:hover, .button-group.primary .button:focus {
      background-color: #a6440e;
      color: #000; }
  .button-group.secondary .button {
    background-color: #a7a9ac;
    color: #000; }
    .button-group.secondary .button:hover, .button-group.secondary .button:focus {
      background-color: #84878b;
      color: #000; }
  .button-group.success .button {
    background-color: #3adb76;
    color: #000; }
    .button-group.success .button:hover, .button-group.success .button:focus {
      background-color: #22bb5b;
      color: #000; }
  .button-group.warning .button {
    background-color: #ffae00;
    color: #000; }
    .button-group.warning .button:hover, .button-group.warning .button:focus {
      background-color: #cc8b00;
      color: #000; }
  .button-group.alert .button {
    background-color: #cc4b37;
    color: #000; }
    .button-group.alert .button:hover, .button-group.alert .button:focus {
      background-color: #a53b2a;
      color: #000; }
  .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
    width: 100%; }
    .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
      margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .button-group.stacked-for-small .button {
      width: auto;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 64em) {
    .button-group.stacked-for-medium .button {
      width: auto;
      margin-bottom: 0; } }
  @media screen and (max-width: 39.9375em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button {
        display: block;
        margin-right: 0; } }

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

.card {
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  overflow: hidden;
  color: #333333; }
  .card > :last-child {
    margin-bottom: 0; }

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

.card-section {
  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: #000; }
  .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; }
  [data-whatinput='mouse'] .menu li {
    outline: 0; }
  .menu a,
  .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 li, .menu.horizontal li {
    display: inline-block; }
  .menu.vertical li {
    display: block; }
  .menu.expanded {
    display: table;
    width: 100%; }
    .menu.expanded > li {
      display: table-cell;
      vertical-align: middle; }
  .menu.simple li + li {
    margin-left: 1rem; }
  .menu.simple a {
    padding: 0; }
  @media print, screen and (min-width: 40em) {
    .menu.medium-horizontal li {
      display: inline-block; }
    .menu.medium-vertical li {
      display: block; }
    .menu.medium-expanded {
      display: table;
      width: 100%; }
      .menu.medium-expanded > li {
        display: table-cell;
        vertical-align: middle; }
    .menu.medium-simple {
      display: table;
      width: 100%; }
      .menu.medium-simple > li {
        display: table-cell;
        vertical-align: middle; } }
  @media print, screen and (min-width: 64em) {
    .menu.large-horizontal li {
      display: inline-block; }
    .menu.large-vertical li {
      display: block; }
    .menu.large-expanded {
      display: table;
      width: 100%; }
      .menu.large-expanded > li {
        display: table-cell;
        vertical-align: middle; }
    .menu.large-simple {
      display: table;
      width: 100%; }
      .menu.large-simple > li {
        display: table-cell;
        vertical-align: middle; } }
  .menu.nested {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.icons img,
  .menu.icons i,
  .menu.icons svg {
    vertical-align: middle; }
    .menu.icons img + span,
    .menu.icons i + span,
    .menu.icons svg + span {
      vertical-align: middle; }
  .menu.icon-top img,
  .menu.icon-top i,
  .menu.icon-top svg, .menu.icon-right img,
  .menu.icon-right i,
  .menu.icon-right svg, .menu.icon-bottom img,
  .menu.icon-bottom i,
  .menu.icon-bottom svg, .menu.icon-left img,
  .menu.icon-left i,
  .menu.icon-left svg {
    vertical-align: middle; }
    .menu.icon-top img + span,
    .menu.icon-top i + span,
    .menu.icon-top svg + span, .menu.icon-right img + span,
    .menu.icon-right i + span,
    .menu.icon-right svg + span, .menu.icon-bottom img + span,
    .menu.icon-bottom i + span,
    .menu.icon-bottom svg + span, .menu.icon-left img + span,
    .menu.icon-left i + span,
    .menu.icon-left svg + span {
      vertical-align: middle; }
  .menu.icon-left li a img,
  .menu.icon-left li a i,
  .menu.icon-left li a svg {
    margin-right: 0.25rem;
    display: inline-block; }
  .menu.icon-right li a img,
  .menu.icon-right li a i,
  .menu.icon-right li a svg {
    margin-left: 0.25rem;
    display: inline-block; }
  .menu.icon-top li a {
    text-align: center; }
    .menu.icon-top li a img,
    .menu.icon-top li a i,
    .menu.icon-top li a svg {
      display: block;
      margin: 0 auto 0.25rem; }
  .menu.icon-bottom li a {
    text-align: center; }
    .menu.icon-bottom li a img,
    .menu.icon-bottom li a i,
    .menu.icon-bottom li a svg {
      display: block;
      margin: 0.25rem auto 0; }
  .menu .is-active > a {
    background: #d05511;
    color: #fff; }
  .menu .active > a {
    background: #d05511;
    color: #fff; }
  .menu.align-left {
    text-align: left; }
  .menu.align-right {
    text-align: right; }
    .menu.align-right .submenu li {
      text-align: left; }
    .menu.align-right.vertical .submenu li {
      text-align: right; }
    .menu.align-right .nested {
      margin-right: 1rem;
      margin-left: 0; }
  .menu.align-center {
    text-align: center; }
    .menu.align-center .submenu li {
      text-align: left; }
  .menu .menu-text {
    padding: 0.7rem 1rem;
    font-weight: bold;
    line-height: 1;
    color: inherit; }

.menu-centered > .menu {
  text-align: center; }
  .menu-centered > .menu .submenu li {
    text-align: left; }

.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;
    box-shadow: 0 7px 0 #fff, 0 14px 0 #fff;
    content: ''; }
  .menu-icon:hover::after {
    background: #cacaca;
    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }

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

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

.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;
  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%);
        -ms-transform: translateX(-100%);
            transform: translateX(-100%); }
  .drilldown .is-drilldown-submenu.is-closing {
    -webkit-transform: translateX(100%);
        -ms-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 #d05511; }

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

.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 #d05511 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 #d05511 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: 360px;
  padding: 1rem;
  visibility: hidden;
  display: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fff;
  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: #d05511 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: #e6e6e6; }

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

@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: #d05511 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 #d05511 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 #d05511; } }

@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: #d05511 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 #d05511 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 #d05511; } }

.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 #cacaca;
  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 #d05511 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 #d05511; }
  .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: 0.88889rem;
  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: #d05511;
  color: #fff; }
  .label.primary {
    background: #d05511;
    color: #000; }
  .label.secondary {
    background: #a7a9ac;
    color: #000; }
  .label.success {
    background: #3adb76;
    color: #000; }
  .label.warning {
    background: #ffae00;
    color: #000; }
  .label.alert {
    background: #cc4b37;
    color: #000; }

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

.media-object-section {
  display: table-cell;
  vertical-align: top; }
  .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.middle {
    vertical-align: middle; }
  .media-object-section.bottom {
    vertical-align: bottom; }

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

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

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

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: -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: #2C3840; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-push {
    z-index: 12; }
  .off-canvas.is-closed {
    visibility: hidden; }
  .off-canvas.is-transition-overlap {
    z-index: 13; }
    .off-canvas.is-transition-overlap.is-open {
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.7); }
  .off-canvas.is-open {
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  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: #2C3840; }
  [data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0; }
  .off-canvas-absolute.is-transition-push {
    z-index: 12; }
  .off-canvas-absolute.is-closed {
    visibility: hidden; }
  .off-canvas-absolute.is-transition-overlap {
    z-index: 13; }
    .off-canvas-absolute.is-transition-overlap.is-open {
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.7); }
  .off-canvas-absolute.is-open {
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  -webkit-transform: translateX(-250px);
      -ms-transform: translateX(-250px);
          transform: translateX(-250px); }
  .off-canvas-content .off-canvas.position-left {
    -webkit-transform: translateX(-250px);
        -ms-transform: translateX(-250px);
            transform: translateX(-250px); }
    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
          -ms-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-left.has-transition-push {
    -webkit-transform: translateX(250px);
        -ms-transform: translateX(250px);
            transform: translateX(250px); }
  .position-left.is-transition-push {
    box-shadow: inset -13px 0 20px -13px rgba(0, 0, 0, 0.25); }

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  -webkit-transform: translateX(250px);
      -ms-transform: translateX(250px);
          transform: translateX(250px); }
  .off-canvas-content .off-canvas.position-right {
    -webkit-transform: translateX(250px);
        -ms-transform: translateX(250px);
            transform: translateX(250px); }
    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
          -ms-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-right.has-transition-push {
    -webkit-transform: translateX(-250px);
        -ms-transform: translateX(-250px);
            transform: translateX(-250px); }
  .position-right.is-transition-push {
    box-shadow: inset 13px 0 20px -13px rgba(0, 0, 0, 0.25); }

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

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

.off-canvas-content {
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
  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);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }
  .off-canvas-content .off-canvas.is-open {
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

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

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

@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;
    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 {
      box-shadow: none;
      -webkit-transform: none;
          -ms-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;
    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 {
      box-shadow: none;
      -webkit-transform: none;
          -ms-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(0, 0, 0, 0.5);
  color: #fff; }

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-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(0, 0, 0, 0.5); }

.orbit-previous {
  left: 0; }

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

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

.pagination {
  margin-left: 0;
  margin-bottom: 1rem; }
  .pagination::before, .pagination::after {
    display: table;
    content: ' '; }
  .pagination::after {
    clear: both; }
  .pagination li {
    margin-right: 0.05556rem;
    border-radius: 0;
    font-size: 0.77778rem;
    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.16667rem 0.55556rem;
    border-radius: 0;
    color: #000; }
    .pagination a:hover,
    .pagination button:hover {
      background: #e6e6e6; }
  .pagination .current {
    padding: 0.16667rem 0.55556rem;
    background: #d05511;
    color: #fff;
    cursor: default; }
  .pagination .disabled {
    padding: 0.16667rem 0.55556rem;
    color: #cacaca;
    cursor: not-allowed; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    padding: 0.16667rem 0.55556rem;
    content: '\2026';
    color: #000; }

.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: #cacaca; }
  .progress.primary .progress-meter {
    background-color: #d05511; }
  .progress.secondary .progress-meter {
    background-color: #a7a9ac; }
  .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: #d05511; }

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-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: #e6e6e6;
  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: #cacaca;
  transition: all 0.2s ease-in-out; }
  .slider-fill.is-dragging {
    transition: all 0s linear; }

.slider-handle {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-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: #d05511;
  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: #b1480e; }
  .slider-handle.is-dragging {
    transition: all 0s linear; }

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

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  -webkit-transform: scale(1, -1);
      -ms-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%);
        -ms-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(0, 0, 0, 0.45);
  overflow-y: scroll; }

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fff;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto; }
  [data-whatinput='mouse'] .reveal {
    outline: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal {
      min-height: 0; } }
  .reveal .column, .reveal .columns {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal {
      width: 600px;
      max-width: 66.66667rem; } }
  .reveal.collapse {
    padding: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal.tiny {
      width: 30%;
      max-width: 66.66667rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.small {
      width: 50%;
      max-width: 66.66667rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.large {
      width: 90%;
      max-width: 66.66667rem; } }
  .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.77778rem;
  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: #cacaca;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer; }
  input + .switch-paddle {
    margin: 0; }
  .switch-paddle::after {
    position: absolute;
    top: 0.25rem;
    left: 0.25rem;
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    border-radius: 0;
    background: #fff;
    transition: all 0.25s ease-out;
    content: ''; }
  input:checked ~ .switch-paddle {
    background: #d05511; }
    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%);
      -ms-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.55556rem; }
  .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.66667rem; }
  .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: 0.88889rem; }
  .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.44444rem 0.55556rem 0.55556rem;
    font-weight: bold; }
  thead {
    background: #f9f9f9;
    color: #333333; }
  tfoot {
    background: #f2f2f2;
    color: #333333; }
  thead tr,
  tfoot tr {
    background: transparent; }
  thead th,
  thead td,
  tfoot th,
  tfoot td {
    padding: 0.44444rem 0.55556rem 0.55556rem;
    font-weight: bold;
    text-align: left; }
  tbody th,
  tbody td {
    padding: 0.44444rem 0.55556rem 0.55556rem; }
  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: 63.9375em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

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

table.hover thead tr:hover {
  background-color: #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 #e6e6e6;
  background: #fff;
  list-style-type: none; }
  .tabs::before, .tabs::after {
    display: table;
    content: ' '; }
  .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: #d05511; }
  .tabs.primary > li > a {
    color: #000; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #c65110; }

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

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

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

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

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

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

.title-bar {
  padding: 0.5rem;
  background: #2C3840;
  color: #fff; }
  .title-bar::before, .title-bar::after {
    display: table;
    content: ' '; }
  .title-bar::after {
    clear: both; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.25rem; }

.title-bar-left {
  float: left; }

.title-bar-right {
  float: 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: #000;
  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 #000;
    bottom: 100%; }
  .tooltip.bottom.align-center::before {
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-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: #000 transparent transparent;
    top: 100%;
    bottom: auto; }
  .tooltip.top.align-center::before {
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-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 #000;
    left: 100%; }
  .tooltip.left.align-center::before {
    bottom: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-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 #000 transparent transparent;
    right: 100%;
    left: auto; }
  .tooltip.right.align-center::before {
    bottom: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-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 {
  padding: 0; }
  .top-bar::before, .top-bar::after {
    display: table;
    content: ' '; }
  .top-bar::after {
    clear: both; }
  .top-bar,
  .top-bar ul {
    background-color: #2C3840; }
  .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 {
    width: 100%; }
  @media print, screen and (min-width: 40em) {
    .top-bar .top-bar-left,
    .top-bar .top-bar-right {
      width: auto; } }
  @media screen and (max-width: 63.9375em) {
    .top-bar.stacked-for-medium .top-bar-left,
    .top-bar.stacked-for-medium .top-bar-right {
      width: 100%; } }
  @media screen and (max-width: 74.9375em) {
    .top-bar.stacked-for-large .top-bar-left,
    .top-bar.stacked-for-large .top-bar-right {
      width: 100%; } }

.top-bar-title {
  display: inline-block;
  float: left;
  padding: 0.5rem 1rem 0.5rem 0; }
  .top-bar-title .menu-icon {
    bottom: 2px; }

.top-bar-left {
  float: left; }

.top-bar-right {
  float: right; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.clearfix::before, .clearfix::after {
  display: table;
  content: ' '; }

.clearfix::after {
  clear: both; }

.slide-in-down.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%);
  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);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.slide-in-left.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%);
  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);
      -ms-transform: translateX(0);
          transform: translateX(0); }

.slide-in-up.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%);
  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);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.slide-in-right.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%);
  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);
      -ms-transform: translateX(0);
          transform: translateX(0); }

.slide-out-down.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  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%);
      -ms-transform: translateY(100%);
          transform: translateY(100%); }

.slide-out-right.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  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%);
      -ms-transform: translateX(100%);
          transform: translateX(100%); }

.slide-out-up.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  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%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%); }

.slide-out-left.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  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%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%); }

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

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

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

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

.hinge-in-from-top.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  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 {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  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);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.scale-in-down.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  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);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.scale-out-up.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  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);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  opacity: 0; }

.scale-out-down.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  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);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  opacity: 0; }

.spin-in.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  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);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1; }

.spin-out.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  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);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  opacity: 0; }

.spin-in-ccw.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  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);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1; }

.spin-out-ccw.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  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);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  opacity: 0; }

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

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

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

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

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

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

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

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

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

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

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

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

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

@-webkit-keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -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-cw-1turn;
          animation-name: spin-cw-1turn; }

@keyframes spin-cw-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; }

/*
  My custom styles:
  Add your scss files below to structure your project styles
*/
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden; }

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  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; }

h1 {
  font-weight: 600;
  line-height: 1.1; }

.hdr-section {
  text-transform: uppercase; }

h2.hdr-section, body.page-template-page-search-custom .search-form input.hdr-section[type='text'], body.page-template-page-search-custom .st-ui-result .hdr-section.st-ui-type-heading, body.search .search-form input.hdr-section[type='text'] {
  font-size: 1.33333rem; }
  @media print, screen and (min-width: 40em) {
    h2.hdr-section, body.page-template-page-search-custom .search-form input.hdr-section[type='text'], body.page-template-page-search-custom .st-ui-result .hdr-section.st-ui-type-heading, body.search .search-form input.hdr-section[type='text'] {
      font-size: 1.55556rem; } }
  @media print, screen and (min-width: 64em) {
    h2.hdr-section, body.page-template-page-search-custom .search-form input.hdr-section[type='text'], body.page-template-page-search-custom .st-ui-result .hdr-section.st-ui-type-heading, body.search .search-form input.hdr-section[type='text'] {
      font-size: 1.88889rem; } }

h3.hdr-section, .hdr-section.accordion-title {
  font-size: 1rem; }
  @media print, screen and (min-width: 40em) {
    h3.hdr-section, .hdr-section.accordion-title {
      font-size: 1.16667rem; } }
  @media print, screen and (min-width: 64em) {
    h3.hdr-section, .hdr-section.accordion-title {
      font-size: 1.33333rem; } }

.hdr-label, .hdr-label.hdr-label-lg, .related-project .title, .single-dowl_project .project-details .hdr, .home-services .service .title {
  font-family: "Roboto Condensed", sans-serif;
  font-weight: bold;
  font-size: 1rem;
  text-transform: uppercase; }
  @media print, screen and (min-width: 40em) {
    .hdr-label, .hdr-label.hdr-label-lg, .related-project .title, .single-dowl_project .project-details .hdr, .home-services .service .title {
      font-size: 1.11111rem; } }
  @media print, screen and (min-width: 64em) {
    .hdr-label, .hdr-label.hdr-label-lg, .related-project .title, .single-dowl_project .project-details .hdr, .home-services .service .title {
      font-size: 1.22222rem; } }

.hdr-label-lg.hdr-label, .related-project .hdr-label-lg.title, .single-dowl_project .project-details .hdr-label-lg.hdr, .home-services .service .hdr-label-lg.title {
  font-size: 1.11111rem; }
  @media print, screen and (min-width: 40em) {
    .hdr-label-lg.hdr-label, .related-project .hdr-label-lg.title, .single-dowl_project .project-details .hdr-label-lg.hdr, .home-services .service .hdr-label-lg.title {
      font-size: 1.22222rem; } }
  @media print, screen and (min-width: 64em) {
    .hdr-label-lg.hdr-label, .related-project .hdr-label-lg.title, .single-dowl_project .project-details .hdr-label-lg.hdr, .home-services .service .hdr-label-lg.title {
      font-size: 1.33333rem; } }

.txt-label {
  font-family: "Roboto Condensed", sans-serif;
  font-weight: bold;
  font-size: 1rem; }
  @media print, screen and (min-width: 40em) {
    .txt-label {
      font-size: 1.11111rem; } }
  @media print, screen and (min-width: 64em) {
    .txt-label {
      font-size: 1.22222rem; } }


p,
address,
body.page-template-page-search-custom .st-ui-result .st-ui-type-detail,
body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold,
.p-reg {
  font-size: 0.88889rem; }
  @media print, screen and (min-width: 40em) {
    
    p,
    address,
    body.page-template-page-search-custom .st-ui-result .st-ui-type-detail,
    body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold,
    .p-reg {
      font-size: 0.94444rem; } }
  @media print, screen and (min-width: 64em) {
    
    p,
    address,
    body.page-template-page-search-custom .st-ui-result .st-ui-type-detail,
    body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold,
    .p-reg {
      font-size: 1rem; } }

.p-sm, .home-services .service a {
  font-size: 0.77778rem; }
  @media print, screen and (min-width: 40em) {
    .p-sm, .home-services .service a {
      font-size: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .p-sm, .home-services .service a {
      font-size: 0.88889rem; } }

.p-lg {
  font-size: 1.11111rem; }
  @media print, screen and (min-width: 40em) {
    .p-lg {
      font-size: 1.22222rem; } }
  @media print, screen and (min-width: 64em) {
    .p-lg {
      font-size: 1.33333rem; } }

.p-intro {
  font-size: 1.11111rem;
  font-weight: bold; }
  @media print, screen and (min-width: 40em) {
    .p-intro {
      font-size: 1.22222rem; } }
  @media print, screen and (min-width: 64em) {
    .p-intro {
      font-size: 1.33333rem; } }

ul, ol {
  color: #333;
  font-weight: 400;
  font-size: 0.77778rem; }
  @media print, screen and (min-width: 40em) {
    ul, ol {
      font-size: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    ul, ol {
      font-size: 0.88889rem; } }

ul.list {
  list-style: none;
  margin-left: 1rem; }
  ul.list ul, ul.list ol {
    margin-bottom: .1rem; }
  ul.list li:before {
    content: "\2022";
    /* Add content: \2022 is the CSS Code/unicode for a bullet */
    color: #999;
    /* Change the color */
    font-weight: bold;
    /* If you want it to be bold */
    display: inline-block;
    /* Needed to add space between the bullet and the text */
    width: 1.2em;
    /* Also needed for space (tweak if needed) */
    margin-left: -1.2em;
    /* Also needed for space (tweak if needed) */ }
  ul.list li li:before {
    content: "\2014"; }

ul.list-lg {
  list-style: none;
  margin-left: 1rem;
  margin-left: 1.4rem;
  font-weight: bold;
  font-size: 0.88889rem; }
  ul.list-lg ul, ul.list-lg ol {
    margin-bottom: .1rem; }
  ul.list-lg li:before {
    content: "\2022";
    /* Add content: \2022 is the CSS Code/unicode for a bullet */
    color: #999;
    /* Change the color */
    font-weight: bold;
    /* If you want it to be bold */
    display: inline-block;
    /* Needed to add space between the bullet and the text */
    width: 1.2em;
    /* Also needed for space (tweak if needed) */
    margin-left: -1.2em;
    /* Also needed for space (tweak if needed) */ }
  ul.list-lg li li:before {
    content: "\2014"; }
  @media print, screen and (min-width: 40em) {
    ul.list-lg {
      font-size: 1rem; } }
  @media print, screen and (min-width: 64em) {
    ul.list-lg {
      font-size: 1.11111rem; } }

ul.menu {
  list-style: none; }
  ul.menu li:before {
    display: none; }

a {
  color: #d05511; }
  .no-ios a:hover {
    text-decoration: none;
    color: #ee6622; }

address {
  font-style: normal; }

time {
  color: #a7a9ac;
  font-family: "Roboto Condensed", sans-serif;
  font-size: 0.88889rem; }
  @media print, screen and (min-width: 40em) {
    time {
      font-size: 0.94444rem; } }
  @media print, screen and (min-width: 64em) {
    time {
      font-size: 1rem; } }

blockquote {
  margin: 0 0 1rem 0;
  font-family: "Roboto Condensed", sans-serif;
  font-style: italic;
  font-size: 1.11111rem; }
  @media print, screen and (min-width: 40em) {
    blockquote {
      font-size: 1.22222rem; } }
  @media print, screen and (min-width: 64em) {
    blockquote {
      font-size: 1.33333rem; } }
  blockquote:before {
    content: "";
    display: block;
    width: 43px;
    height: 18px;
    margin: 0 0 20px 0;
    background: url(../images/icon-quote.svg) no-repeat; }

body.single-post blockquote {
  margin: 2rem; }

select {
  color: #777; }

label {
  margin: 0 0 4px 0;
  font-size: 0.83333rem;
  text-align: left;
  font-weight: bold; }
  @media print, screen and (min-width: 40em) {
    label {
      font-size: 0.88889rem; } }

#wpadminbar {
  position: fixed !important; }

body.admin-bar.f-topbar-fixed .sticky.fixed {
  margin-top: 1.77778rem; }

body.admin-bar.offcanvas .off-canvas.is-open {
  top: 2.55556rem; }
  @media screen and (min-width: 48.9375em) {
    body.admin-bar.offcanvas .off-canvas.is-open {
      top: 1.77778rem; } }

.post-navigation::before, .post-navigation::after {
  display: table;
  content: ' '; }

.post-navigation::after {
  clear: both; }

.nav-previous {
  float: left; }

.nav-next {
  float: right; }

.wp-caption > figcaption {
  max-width: 100%;
  font-size: 0.8rem;
  color: #999;
  padding: 0.25rem 0; }

p.wp-caption-text, address.wp-caption-text, body.page-template-page-search-custom .st-ui-result .wp-caption-text.st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .wp-caption-text.st-ui-type-detail-bold {
  font-size: 90%;
  color: #666;
  padding: 0.55556rem 0; }

.alignleft {
  float: left;
  padding-right: 1rem;
  margin: 0; }

.alignright {
  float: right;
  padding-left: 1rem;
  margin: 0; }

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

.alignnone {
  display: block;
  margin: 30px 0; }

@media screen and (max-width: 39.9375em) {
  .post-content img.alignleft,
  .post-content img.alignright {
    display: block;
    width: 50%;
    margin-bottom: .5rem; } }

.gallery2 {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-flow: row wrap;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  margin-right: -0.55556rem;
  margin-left: -0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .gallery2 {
      margin-right: -0.83333rem;
      margin-left: -0.83333rem; } }
  .gallery2.gallery-columns-1 > .gallery-item {
    width: calc(50% - 1.11111rem);
    margin-right: 0.55556rem;
    margin-left: 0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .gallery2.gallery-columns-1 > .gallery-item {
      width: calc(25% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery2.gallery-columns-1 > .gallery-item {
      width: calc(100% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  .gallery2.gallery-columns-2 > .gallery-item {
    width: calc(50% - 1.11111rem);
    margin-right: 0.55556rem;
    margin-left: 0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .gallery2.gallery-columns-2 > .gallery-item {
      width: calc(25% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery2.gallery-columns-2 > .gallery-item {
      width: calc(50% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  .gallery2.gallery-columns-3 > .gallery-item {
    width: calc(50% - 1.11111rem);
    margin-right: 0.55556rem;
    margin-left: 0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .gallery2.gallery-columns-3 > .gallery-item {
      width: calc(25% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery2.gallery-columns-3 > .gallery-item {
      width: calc(33.33333% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  .gallery2.gallery-columns-4 > .gallery-item {
    width: calc(50% - 1.11111rem);
    margin-right: 0.55556rem;
    margin-left: 0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .gallery2.gallery-columns-4 > .gallery-item {
      width: calc(25% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery2.gallery-columns-4 > .gallery-item {
      width: calc(25% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  .gallery2.gallery-columns-5 > .gallery-item {
    width: calc(50% - 1.11111rem);
    margin-right: 0.55556rem;
    margin-left: 0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .gallery2.gallery-columns-5 > .gallery-item {
      width: calc(25% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery2.gallery-columns-5 > .gallery-item {
      width: calc(20% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  .gallery2.gallery-columns-6 > .gallery-item {
    width: calc(50% - 1.11111rem);
    margin-right: 0.55556rem;
    margin-left: 0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .gallery2.gallery-columns-6 > .gallery-item {
      width: calc(25% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery2.gallery-columns-6 > .gallery-item {
      width: calc(16.66667% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  .gallery2.gallery-columns-7 > .gallery-item {
    width: calc(50% - 1.11111rem);
    margin-right: 0.55556rem;
    margin-left: 0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .gallery2.gallery-columns-7 > .gallery-item {
      width: calc(25% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery2.gallery-columns-7 > .gallery-item {
      width: calc(14.28571% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  .gallery2.gallery-columns-8 > .gallery-item {
    width: calc(50% - 1.11111rem);
    margin-right: 0.55556rem;
    margin-left: 0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .gallery2.gallery-columns-8 > .gallery-item {
      width: calc(25% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery2.gallery-columns-8 > .gallery-item {
      width: calc(12.5% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  .gallery2.gallery-columns-9 > .gallery-item {
    width: calc(50% - 1.11111rem);
    margin-right: 0.55556rem;
    margin-left: 0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .gallery2.gallery-columns-9 > .gallery-item {
      width: calc(25% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery2.gallery-columns-9 > .gallery-item {
      width: calc(11.11111% - 1.66667rem);
      margin-right: 0.83333rem;
      margin-left: 0.83333rem; } }
  .gallery2 .gallery-icon > a {
    display: inline-block;
    max-width: 100%;
    margin-bottom: 1rem;
    border: solid 4px #fff;
    border-radius: 0;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
    line-height: 0;
    transition: box-shadow 200ms ease-out; }
    .gallery2 .gallery-icon > a:hover, .gallery2 .gallery-icon > a:focus {
      box-shadow: 0 0 6px 1px rgba(208, 85, 17, 0.5); }
    .gallery2 .gallery-icon > a image {
      box-shadow: none; }
  .gallery2 .gallery-icon > img {
    display: inline-block;
    max-width: 100%;
    margin-bottom: 1rem;
    border: solid 4px #fff;
    border-radius: 0;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
    line-height: 0; }

.facetwp-facet {
  margin-bottom: 40px; }

.facetwp-pager-label {
  display: inline-block;
  margin-right: 12px; }

.facetwp-page {
  display: inline-block;
  padding: 0px 4px;
  margin-right: 6px;
  cursor: pointer; }

.facetwp-page.active {
  font-weight: bold;
  cursor: default; }

.facetwp-loading {
  width: 20px;
  height: 20px;
  background: url("../images/loading.png") no-repeat;
  background-size: 20px 20px;
  -webkit-animation: spin 700ms infinite linear;
          animation: spin 700ms infinite linear; }

.facetwp-overlay {
  position: absolute;
  background-color: #fff;
  opacity: 0.6; }

/* Checkboxes */
.facetwp-type-checkboxes .facetwp-depth {
  display: none; }

.facetwp-type-checkboxes .facetwp-depth.visible {
  display: inherit; }

.facetwp-checkbox {
  background: url("../images/checkbox.png") 0 50% no-repeat;
  background-size: 14px 14px;
  margin-bottom: 4px;
  padding-left: 20px;
  cursor: pointer; }

.facetwp-checkbox.checked {
  background-image: url("../images/checkbox-on.png"); }

.facetwp-checkbox.disabled,
.facetwp-radio.disabled {
  opacity: 0.4;
  cursor: default; }

.facetwp-checkbox .facetwp-expand {
  float: right; }

/* Radio */
.facetwp-radio {
  background: url("../images/radio.png") 0 50% no-repeat;
  background-size: 14px 14px;
  margin-bottom: 4px;
  padding-left: 20px;
  cursor: pointer; }

.facetwp-radio.checked {
  background-image: url("../images/radio-on.png"); }

/* Date range */
.flatpickr-clear {
  text-align: center;
  padding: 5px 0;
  cursor: pointer; }

/* fSelect */
.facetwp-type-fselect .fs-wrap,
.facetwp-type-fselect .fs-dropdown {
  width: 220px; }

.facetwp-type-fselect .fs-wrap.fs-disabled .fs-option {
  opacity: 0.4;
  cursor: default; }

.facetwp-type-fselect .fs-option .fs-option-label {
  white-space: nowrap; }

.facetwp-type-fselect .fs-option.d1 .fs-option-label {
  padding-left: 20px; }

.facetwp-type-fselect .fs-option.d2 .fs-option-label {
  padding-left: 40px; }

.facetwp-type-fselect .fs-option.d3 .fs-option-label {
  padding-left: 60px; }

/* Hierarchy */
.facetwp-depth {
  margin-left: 12px; }

.facetwp-link {
  cursor: pointer; }

.facetwp-link.checked {
  font-weight: bold;
  cursor: default; }

.facetwp-toggle {
  cursor: pointer; }

.facetwp-seo,
.facetwp-hidden {
  display: none; }

/* Slider */
.facetwp-slider-wrap {
  padding-bottom: 15px; }

.facetwp-slider-reset {
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  background: #fff;
  box-shadow: inset 0 0 1px #fff, inset 0 1px 7px #ebebeb, 0 3px 6px -3px #bbb;
  padding: 4px 8px;
  cursor: pointer; }

/* Search */
.facetwp-search-wrap {
  position: relative; }

.facetwp-search {
  padding-right: 28px; }

.facetwp-btn {
  top: 0;
  right: 5px;
  line-height: 1;
  position: absolute;
  cursor: pointer;
  opacity: 0.5; }

.facetwp-btn:before {
  display: inline-block;
  content: '';
  width: 20px;
  height: 20px;
  background: url("../images/icon-search.png") no-repeat;
  background-size: 20px 20px; }

/* Proximity */
.location-wrap {
  display: inline-block;
  position: relative; }

input.facetwp-location {
  padding-right: 28px;
  min-width: 240px; }

.location-results {
  position: absolute;
  background: #fff;
  border-left: 1px solid #ddd;
  border-right: 1px solid #ddd;
  overflow: hidden;
  width: 100%; }

.location-result {
  font-size: 11px;
  border-bottom: 1px solid #ddd;
  padding: 5px;
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #888; }

.location-result:hover {
  background-color: #f8f8f8; }

.location-result.active {
  background-color: #EBF2FE; }

.result-main {
  font-size: 13px;
  color: #222; }

.locate-me {
  top: 50%;
  right: 5px;
  line-height: 1;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  position: absolute;
  cursor: pointer;
  opacity: 0.5; }

.locate-me:before {
  display: inline-block;
  content: '';
  width: 20px;
  height: 20px;
  background: url("../images/icon-locate.png") no-repeat;
  background-size: 20px 20px; }

.locate-me.f-loading:before {
  background: url("../images/loading.png") no-repeat;
  background-size: 20px 20px;
  -webkit-animation: spin 700ms infinite linear;
          animation: spin 700ms infinite linear; }

.locate-me.f-reset:before {
  background: url("../images/icon-close.png") no-repeat;
  background-size: 20px 20px; }

/* Rating */
.facetwp-stars {
  float: left;
  line-height: 1;
  padding-right: 4px;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.facetwp-star {
  float: right;
  cursor: pointer;
  font-size: 20px;
  color: #ccc; }

.facetwp-star:hover,
.facetwp-star:hover ~ .facetwp-star,
.facetwp-star.selected,
.facetwp-star.selected ~ .facetwp-star {
  color: #000; }

.facetwp-star.selected:hover,
.facetwp-star.selected:hover ~ .facetwp-star {
  color: red; }

/* CSS animations */
@-webkit-keyframes spin {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }
@keyframes spin {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

/* Selections shortcode */
.facetwp-selections li {
  display: inline-block;
  line-height: 1; }

.facetwp-selections .facetwp-selection-value {
  display: inline-block;
  margin-right: 10px;
  cursor: pointer;
  padding-right: 16px;
  background-image: url("../images/icon-close.png");
  background-size: 12px 12px;
  background-repeat: no-repeat;
  background-position: right center; }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  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);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [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; }

/* cool-timeline-pro */
.cool-timeline-horizontal .clt_carousel_slider ul.slick-slider button.ctl-slick-next,
.cool-timeline-horizontal .clt_carousel_slider ul.slick-slider button.ctl-slick-prev {
  background: 0 0 !important; }

.ctl-slick-next,
.ctl-slick-prev {
  position: absolute;
  display: block;
  padding: 0; }

.ctl-slick-next,
.ctl-slick-next:focus,
.ctl-slick-next:hover,
.ctl-slick-prev,
.ctl-slick-prev:focus,
.ctl-slick-prev:hover {
  background: #000;
  outline: 0; }

.ctl-slick-next,
.ctl-slick-prev {
  font-size: 32px;
  line-height: 0;
  color: #000 !important;
  top: 58% !important;
  width: 40px;
  height: 40px;
  -webkit-transform: translate(0, -50%);
      -ms-transform: translate(0, -50%);
          transform: translate(0, -50%);
  cursor: pointer;
  border: none; }

.ctl-slick-next:focus:before,
.ctl-slick-next:hover:before,
.ctl-slick-prev:focus:before,
.ctl-slick-prev:hover:before {
  opacity: 1; }

.ctl-slick-next.slick-disabled,
.ctl-slick-prev.slick-disabled {
  opacity: .25;
  background: 0 0 !important;
  color: #000; }

.ctl-slick-prev {
  left: -5px; }

.ctl-slick-next {
  right: -5px; }

button.ctl-slick-next.ctl-flat-left.slick-arrow,
button.ctl-slick-prev.ctl-flat-right.slick-arrow {
  border: 1px solid #000;
  border-radius: 0; }

/* custom styling */
.ctl-slick-prev i,
.ctl-slick-next i {
  color: #fff;
  background: #333;
  border-radius: 50%; }

.ctl-slick-next.slick-disabled,
.ctl-slick-prev.slick-disabled {
  opacity: 1 !important; }
  .ctl-slick-next.slick-disabled i,
  .ctl-slick-prev.slick-disabled i {
    color: #666; }

.ctl-story-time {
  color: #777;
  font-family: "Saira", sans-serif;
  font-weight: bold;
  font-size: 0.88889rem;
  transition: all 0.2s ease; }

.slick-current .ctl-story-time {
  color: #fff !important;
  font-size: 1.22222rem; }

.timeline-post {
  position: relative;
  padding: 25px;
  padding-bottom: 245px;
  background: #eee; }
  @media print, screen and (min-width: 40em) {
    .timeline-post {
      padding-bottom: 280px; } }
  .timeline-post time {
    display: inline-block;
    margin: 0 0 30px 0;
    padding: 10px 20px;
    color: #fff;
    font-family: "Saira", sans-serif;
    font-weight: bold;
    line-height: 1;
    background: #e15b2d;
    font-size: 0.88889rem; }
    @media print, screen and (min-width: 40em) {
      .timeline-post time {
        font-size: 1.11111rem; } }
    @media print, screen and (min-width: 64em) {
      .timeline-post time {
        font-size: 1.22222rem; } }
  .timeline-post .full-width {
    position: absolute;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: 1; }
    .timeline-post .full-width:before {
      content: "";
      position: absolute;
      top: -6px;
      right: 0;
      z-index: 1;
      display: block;
      width: 20%;
      height: 6px;
      background: #e15b2d; }
    @media screen and (max-width: 39.9375em) {
      .timeline-post .full-width img {
        max-height: 250px !important; } }

/* Slider */
.slick-loading .slick-list {
  background: #fff url("../images/ajax-loader.gif") center center no-repeat; }

/* Icons */
@font-face {
  font-family: "slick";
  src: url("../fonts/slick.eot");
  src: url("../fonts/slick.eot?#iefix") format("embedded-opentype"), url("../fonts/slick.woff") format("woff"), url("../fonts/slick.ttf") format("truetype"), url("../fonts/slick.svg#slick") format("svg");
  font-weight: normal;
  font-style: normal; }

/* Arrows */
.slick-prev,
.slick-next {
  position: absolute;
  z-index: 5;
  display: block;
  width: 35px;
  height: 150px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  -webkit-transform: translate(0, -50%);
      -ms-transform: translate(0, -50%);
          transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none; }
  .slick-prev:hover, .slick-prev:focus,
  .slick-next:hover,
  .slick-next:focus {
    outline: none;
    background: transparent;
    color: transparent; }
    .no-ios .slick-prev:hover:before, .no-ios .slick-prev:focus:before, .no-ios
    .slick-next:hover:before, .no-ios
    .slick-next:focus:before {
      opacity: 1; }
  .slick-prev.slick-disabled:before,
  .slick-next.slick-disabled:before {
    opacity: 1; }
  .slick-prev:before,
  .slick-next:before {
    /*
        font-family: $slick-font-family;
        font-size: 20px;
        line-height: 1;
        color: $slick-arrow-color;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        */
    opacity: 0.75;
    content: "";
    display: block;
    width: 13px;
    height: 30px;
    margin: 0 auto;
    background: url(../images/icon-arw-slider.svg) no-repeat; }

.slick-prev {
  left: -25px; }
  [dir="rtl"] .slick-prev {
    left: auto;
    right: -25px; }
  .slick-prev:before {
    -webkit-transform: scaleX(-1);
        -ms-transform: scaleX(-1);
            transform: scaleX(-1);
    /*content: $slick-prev-character;
        [dir="rtl"] & {
            content: $slick-next-character;
        }
        */ }

.slick-next {
  right: -25px; }
  [dir="rtl"] .slick-next {
    left: -25px;
    right: auto; }
  .slick-next:before {
    /*
        content: $slick-next-character;
        [dir="rtl"] & {
            content: $slick-prev-character;
        }
        */ }

/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px; }

.slick-dots {
  position: absolute;
  bottom: -25px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%; }
  .slick-dots li {
    position: relative;
    display: inline-block;
    height: 20px;
    width: 20px;
    margin: 0 5px;
    padding: 0;
    cursor: pointer; }
    .slick-dots li button {
      border: 0;
      background: transparent;
      display: block;
      height: 20px;
      width: 20px;
      outline: none;
      line-height: 0px;
      font-size: 0px;
      color: transparent;
      padding: 5px;
      cursor: pointer; }
      .slick-dots li button:hover, .slick-dots li button:focus {
        outline: none; }
        .slick-dots li button:hover:before, .slick-dots li button:focus:before {
          opacity: 1; }
      .slick-dots li button:before {
        position: absolute;
        top: 0;
        left: 0;
        content: "•";
        width: 20px;
        height: 20px;
        font-family: "slick";
        font-size: 14px;
        line-height: 20px;
        text-align: center;
        color: #ccc;
        opacity: 1;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
    .slick-dots li.slick-active button:before {
      color: #ccc;
      opacity: 0.75; }

[data-simplebar] {
  position: relative;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-align-content: flex-start;
      -ms-flex-line-pack: start;
          align-content: flex-start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start; }

.simplebar-wrapper {
  overflow: hidden;
  width: inherit;
  height: inherit;
  max-width: inherit;
  max-height: inherit; }

.simplebar-mask {
  direction: inherit;
  position: absolute;
  overflow: hidden;
  padding: 0;
  margin: 0;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  width: auto !important;
  height: auto !important;
  z-index: 0; }

.simplebar-offset {
  direction: inherit !important;
  box-sizing: inherit !important;
  resize: none !important;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  padding: 0;
  margin: 0;
  -webkit-overflow-scrolling: touch; }

.simplebar-content-wrapper {
  direction: inherit;
  box-sizing: border-box !important;
  position: relative;
  display: block;
  height: 100%;
  /* Required for horizontal native scrollbar to not appear if parent is taller than natural height */
  width: auto;
  visibility: visible;
  overflow: auto;
  /* Scroll on this element otherwise element can't have a padding applied properly */
  max-width: 100%;
  /* Not required for horizontal scroll to trigger */
  max-height: 100%;
  /* Needed for vertical scroll to trigger */ }

.simplebar-content:before,
.simplebar-content:after {
  content: ' ';
  display: table; }

.simplebar-placeholder {
  max-height: 100%;
  max-width: 100%;
  width: 100%;
  pointer-events: none; }

.simplebar-height-auto-observer-wrapper {
  box-sizing: inherit !important;
  height: 100%;
  width: 100%;
  max-width: 1px;
  position: relative;
  float: left;
  max-height: 1px;
  overflow: hidden;
  z-index: -1;
  padding: 0;
  margin: 0;
  pointer-events: none;
  -webkit-flex-grow: inherit;
      -ms-flex-positive: inherit;
          flex-grow: inherit;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  -webkit-flex-basis: 0;
      -ms-flex-preferred-size: 0;
          flex-basis: 0; }

.simplebar-height-auto-observer {
  box-sizing: inherit;
  display: block;
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  height: 1000%;
  width: 1000%;
  min-height: 1px;
  min-width: 1px;
  overflow: hidden;
  pointer-events: none;
  z-index: -1; }

.simplebar-track {
  z-index: 1;
  position: absolute;
  right: 0;
  bottom: 0;
  pointer-events: none;
  overflow: hidden; }

[data-simplebar].simplebar-dragging .simplebar-track {
  pointer-events: all; }

.simplebar-scrollbar {
  position: absolute;
  right: 2px;
  width: 7px;
  min-height: 10px; }

.simplebar-scrollbar:before {
  position: absolute;
  content: '';
  background: black;
  border-radius: 7px;
  left: 0;
  right: 0;
  opacity: 0;
  transition: opacity 0.2s linear; }

.simplebar-track .simplebar-scrollbar.simplebar-visible:before {
  /* When hovered, remove all transitions from drag handle */
  opacity: 0.5;
  transition: opacity 0s linear; }

.simplebar-track.simplebar-vertical {
  top: 0;
  width: 11px; }

.simplebar-track.simplebar-vertical .simplebar-scrollbar:before {
  top: 2px;
  bottom: 2px; }

.simplebar-track.simplebar-horizontal {
  left: 0;
  height: 11px; }

.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {
  height: 100%;
  left: 2px;
  right: 2px; }

.simplebar-track.simplebar-horizontal .simplebar-scrollbar {
  right: auto;
  left: 0;
  top: 2px;
  height: 7px;
  min-height: 0;
  min-width: 10px;
  width: auto; }

/* Rtl support */
[data-simplebar-direction='rtl'] .simplebar-track.simplebar-vertical {
  right: auto;
  left: 0; }

.hs-dummy-scrollbar-size {
  direction: rtl;
  position: fixed;
  opacity: 0;
  visibility: hidden;
  height: 500px;
  width: 500px;
  overflow-y: hidden;
  overflow-x: scroll; }

/* page headline ---------------------------- */
header.page-header {
  overflow: hidden;
  position: relative;
  background: #e15b2d;
  /* bg triangle */ }
  header.page-header:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 90px 90px 0 0;
    border-color: #ff7733 transparent transparent transparent; }
    @media print, screen and (min-width: 40em) {
      header.page-header:before {
        border-width: 100px 100px 0 0; } }
  header.page-header h1 {
    max-width: 66.66667rem;
    margin-right: auto;
    margin-left: auto;
    width: 100%;
    float: left;
    padding-right: 0.83333rem;
    padding-left: 0.83333rem;
    position: relative;
    z-index: 2;
    margin-bottom: 0;
    padding-top: 21px;
    padding-bottom: 20px;
    color: #fff;
    text-transform: uppercase; }
    header.page-header h1::before, header.page-header h1::after {
      display: table;
      content: ' '; }
    header.page-header h1::after {
      clear: both; }
    @media print, screen and (min-width: 40em) {
      header.page-header h1 {
        padding-right: 0.83333rem;
        padding-left: 0.83333rem; } }
    header.page-header h1:last-child:not(:first-child) {
      float: right; }
    header.page-header h1, header.page-header h1:last-child {
      float: none; }
    @media print, screen and (min-width: 64em) {
      header.page-header h1 {
        padding-top: 21px;
        padding-bottom: 20px; } }

/* page headline, currently used on single post ---------------------------- */
header.page-header-child {
  padding-bottom: 22px;
  background: #edc; }
  @media print, screen and (min-width: 40em) {
    header.page-header-child {
      padding-top: 40px;
      padding-bottom: 22px; } }
  @media print, screen and (min-width: 64em) {
    header.page-header-child {
      padding-top: 50px;
      padding-bottom: 32px; } }
  header.page-header-child h1 {
    position: relative;
    margin: 0;
    color: #b30;
    text-transform: uppercase; }
    @media print, screen and (min-width: 40em) {
      header.page-header-child h1 {
        top: -6px;
        margin-left: 110px; } }
    @media print, screen and (min-width: 64em) {
      header.page-header-child h1 {
        top: -9px;
        margin-left: 120px; } }
  header.page-header-child .parent-slug {
    margin: 0 -15px 20px -15px;
    background: #b30; }
    @media print, screen and (min-width: 40em) {
      header.page-header-child .parent-slug {
        float: left;
        margin: 0; } }

/* header above content; used on project single and news article single ---------------------------- */
header.content-page-header {
  margin: 0 0 40px 0;
  padding-bottom: 20px;
  border-bottom: 1px dotted #666;
  text-align: center; }
  @media print, screen and (min-width: 40em) {
    header.content-page-header {
      text-align: left; } }
  header.content-page-header h1 {
    position: relative;
    margin: 0;
    text-transform: capitalize; }
    @media print, screen and (min-width: 40em) {
      header.content-page-header h1 {
        top: -6px;
        margin-left: 140px; } }
    @media print, screen and (min-width: 64em) {
      header.content-page-header h1 {
        top: -9px;
        margin-left: 150px; } }
  header.content-page-header .parent-slug {
    display: none;
    background: #b30; }
    @media print, screen and (min-width: 40em) {
      header.content-page-header .parent-slug {
        display: inline-block;
        float: left; } }
    header.content-page-header .parent-slug a:hover {
      color: #fff; }

/* parent slug ---------------------------- */
.parent-slug {
  display: block;
  margin: 0;
  padding: 15px 20px 11px 15px;
  background: #666;
  color: #fff;
  font-family: "Saira", sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  line-height: 1; }
  @media print, screen and (min-width: 40em) {
    .parent-slug {
      display: inline-block;
      padding-top: 11px;
      padding-left: 20px; } }
  .parent-slug a {
    color: #fff; }
    .parent-slug a:hover {
      color: #fff; }
  .parent-slug .icon-wrap {
    display: inline-block;
    width: 15px;
    height: 11px;
    margin: 0 10px 0 0; }
    .parent-slug .icon-wrap svg {
      display: block;
      -webkit-transform: scaleX(-1);
          -ms-transform: scaleX(-1);
              transform: scaleX(-1); }
    .parent-slug .icon-wrap path {
      fill: #fff; }
    @media print, screen and (min-width: 40em) {
      .parent-slug .icon-wrap {
        display: none; } }

/* default section ---------------------------- */
.section, .media-section, .news-archive-content, .single-post .post-content, .related-project-section, .projects-content, .single-dowl_project .project-content, .post-type-archive-dowl_service .services-content, .single-dowl_service .service-intro, .single-dowl_service .service-content, body.page .page-intro, body.page .page-content, body.page .page-closing, body.page-template-page-search-custom .page-content, body.search .page-content, .page-template-page-company .company-intro, .page-template-page-company .company-values, .page-template-page-company .company-history, .page-template-page-company .company-future, .people-content, .home-intro, .home-services, .home-projects, .home-news, .home-jobs {
  padding: 40px 0;
  background: #fff; }
  @media print, screen and (min-width: 40em) {
    .section, .media-section, .news-archive-content, .single-post .post-content, .related-project-section, .projects-content, .single-dowl_project .project-content, .post-type-archive-dowl_service .services-content, .single-dowl_service .service-intro, .single-dowl_service .service-content, body.page .page-intro, body.page .page-content, body.page .page-closing, body.page-template-page-search-custom .page-content, body.search .page-content, .page-template-page-company .company-intro, .page-template-page-company .company-values, .page-template-page-company .company-history, .page-template-page-company .company-future, .people-content, .home-intro, .home-services, .home-projects, .home-news, .home-jobs {
      padding: 75px 0; } }
  @media print, screen and (min-width: 64em) {
    .section, .media-section, .news-archive-content, .single-post .post-content, .related-project-section, .projects-content, .single-dowl_project .project-content, .post-type-archive-dowl_service .services-content, .single-dowl_service .service-intro, .single-dowl_service .service-content, body.page .page-intro, body.page .page-content, body.page .page-closing, body.page-template-page-search-custom .page-content, body.search .page-content, .page-template-page-company .company-intro, .page-template-page-company .company-values, .page-template-page-company .company-history, .page-template-page-company .company-future, .people-content, .home-intro, .home-services, .home-projects, .home-news, .home-jobs {
      padding: 100px 0; } }
  .section .hdr-section, .media-section .hdr-section, .news-archive-content .hdr-section, .single-post .post-content .hdr-section, .related-project-section .hdr-section, .projects-content .hdr-section, .single-dowl_project .project-content .hdr-section, .post-type-archive-dowl_service .services-content .hdr-section, .single-dowl_service .service-intro .hdr-section, .single-dowl_service .service-content .hdr-section, body.page .page-intro .hdr-section, body.page .page-content .hdr-section, body.page .page-closing .hdr-section, body.page-template-page-search-custom .page-content .hdr-section, body.search .page-content .hdr-section, .page-template-page-company .company-intro .hdr-section, .page-template-page-company .company-values .hdr-section, .page-template-page-company .company-history .hdr-section, .page-template-page-company .company-future .hdr-section, .people-content .hdr-section, .home-intro .hdr-section, .home-services .hdr-section, .home-projects .hdr-section, .home-news .hdr-section, .home-jobs .hdr-section {
    margin: 0 0 20px 0; }
    @media print, screen and (min-width: 40em) {
      .section .hdr-section, .media-section .hdr-section, .news-archive-content .hdr-section, .single-post .post-content .hdr-section, .related-project-section .hdr-section, .projects-content .hdr-section, .single-dowl_project .project-content .hdr-section, .post-type-archive-dowl_service .services-content .hdr-section, .single-dowl_service .service-intro .hdr-section, .single-dowl_service .service-content .hdr-section, body.page .page-intro .hdr-section, body.page .page-content .hdr-section, body.page .page-closing .hdr-section, body.page-template-page-search-custom .page-content .hdr-section, body.search .page-content .hdr-section, .page-template-page-company .company-intro .hdr-section, .page-template-page-company .company-values .hdr-section, .page-template-page-company .company-history .hdr-section, .page-template-page-company .company-future .hdr-section, .people-content .hdr-section, .home-intro .hdr-section, .home-services .hdr-section, .home-projects .hdr-section, .home-news .hdr-section, .home-jobs .hdr-section {
        margin: 0 0 30px 0; } }

/* scroll horizontal container ---------------------------- */
/* https://codeburst.io/how-to-create-horizontal-scrolling-containers-d8069651e9c6 */
.scrollhorz {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch; }
  .scrollhorz .scrollhorz-item {
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
  .scrollhorz img {
    max-width: auto; }

/* scroll horizontal container ---------------------------- */
.simplebar-wrapper img {
  max-width: none; }

.simplebar-track.simplebar-horizontal {
  background: #aaa;
  border-radius: 7px; }
  .simplebar-track.simplebar-horizontal .simplebar-scrollbar {
    top: 0;
    height: 11px; }
    .simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {
      left: 0;
      right: 0;
      background: #d05511;
      opacity: 1; }
      .ios .simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {
        right: -20px; }

/* twitter feeds plugin  ---------------------------- */
#ctf .ctf-item {
  padding: 15px 0; }

#ctf .ctf-tweet-meta {
  margin-left: 0;
  color: #777; }
  #ctf .ctf-tweet-meta a {
    color: #777 !important; }

.ctf-twitterlink {
  color: #d05511 !important; }
  .no-ios .ctf-twitterlink:hover {
    color: #ee6622 !important; }

/* slick slideshows ---------------------------- */
.no-ios .slick-dots button:hover:before {
  color: #aaa; }

.slick-dots li.slick-active button:hover:before {
  color: #cc4400; }

.slick-dots li.slick-active button:before {
  color: #cc4400; }

/* fancy lightbox ---------------------------- */
#fancybox-left span {
  left: 20px; }

#fancybox-right span {
  left: auto;
  right: 20px; }

html.ie-11 #fancybox-content {
  overflow-y: hidden; }

/* app.swiftype.com search ---------------------------- */
.swiftype-search-header {
  text-align: center; }

.st-default-search-input {
  margin: 0 !important;
  padding: 11px !important;
  background-image: none !important;
  font-size: 16px !important;
  border-color: #cacaca !important; }

.swiftype-search-page .st-default-search-input {
  width: 100%;
  box-sizing: border-box;
  font-size: 22px !important; }

/* bg triangles - assume parent has position relative ---------------------------- */
/* bg texture - assume parent has position relative ---------------------------- */
.bg-texture {
  position: absolute;
  bottom: -230px;
  display: none;
  width: 186px;
  height: 510px; }
  .bg-texture.bg-left {
    left: -1px; }
  .bg-texture.bg-right {
    right: -1px;
    -webkit-transform: scaleX(-1);
        -ms-transform: scaleX(-1);
            transform: scaleX(-1); }
  .bg-texture #shape1,
  .bg-texture #shape3 {
    mix-blend-mode: multiply; }
    html.ie .bg-texture #shape1, html.ie
    .bg-texture #shape3 {
      mix-blend-mode: unset;
      opacity: .7; }
  .bg-texture #shape2 {
    mix-blend-mode: screen; }
  @media screen and (min-width: 94.375em) {
    .bg-texture {
      display: block; } }

/* Media section ---------------------------- */
.media-section {
  padding-top: 0;
  background: #eee;
  /* tab nav */
  /* tab content */
  /* photo box */ }
  .media-section .tabs {
    margin: 0 0 10px 0;
    background: transparent;
    border: none;
    text-align: center; }
    @media print, screen and (min-width: 40em) {
      .media-section .tabs {
        margin-bottom: 60px; } }
  .media-section .tabs-title {
    float: none;
    display: inline-block;
    margin: 0 30px; }
    .media-section .tabs-title a {
      font-family: "Saira", sans-serif;
      text-transform: uppercase;
      font-weight: bold;
      font-size: 0.88889rem;
      border-top: 4px solid transparent; }
      @media print, screen and (min-width: 40em) {
        .media-section .tabs-title a {
          font-size: 1rem; } }
      @media print, screen and (min-width: 64em) {
        .media-section .tabs-title a {
          font-size: 1.11111rem; } }
  .media-section .tabs-title > a:hover {
    background: transparent; }
  .media-section .tabs-title > a:focus,
  .media-section .tabs-title > a[aria-selected='true'] {
    background: transparent;
    border-top-color: #b30;
    color: #b30; }
  .media-section .tabs-content {
    border: none;
    background: transparent; }
  .media-section .tabs-panel {
    padding: 0; }
  .media-section .media-photo {
    position: relative;
    display: block;
    margin: 10px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover; }
    .media-section .media-photo:before {
      content: "";
      display: block;
      padding-top: 100%; }
    .media-section .media-photo:after {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
      z-index: 4;
      display: block;
      width: 60px;
      height: 60px;
      background: url(../images/icon-zoom.svg) no-repeat;
      opacity: 0;
      transition: all 0.3s ease; }
    .media-section .media-photo .shadow-overlay {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      z-index: 3;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.5);
      opacity: 0;
      transition: all 0.3s ease; }
    .media-section .media-photo .photo-overlay {
      position: absolute;
      top: 0;
      right: 0;
      left: 0;
      bottom: 0;
      z-index: 2;
      display: block;
      width: 100%;
      height: 100%;
      background-repeat: no-repeat;
      background-position: center;
      background-size: cover;
      background-color: rgba(0, 0, 0, 0.4);
      opacity: 0;
      -webkit-filter: blur(1px);
              filter: blur(1px);
      transition: all 0.3s ease; }
    .no-ios .media-section .media-photo:hover:after {
      opacity: 1; }
    .no-ios .media-section .media-photo:hover .shadow-overlay {
      opacity: 1; }
    .no-ios .media-section .media-photo:hover .photo-overlay {
      opacity: 1; }
  .media-section .media-video {
    margin-bottom: 30px; }
    .media-section .media-video .responsive-embed {
      margin-bottom: 0; }
    .media-section .media-video .video-caption {
      margin: 5px 0 0 0; }

/* Photo Gallery ---------------------------- */
.gallery {
  max-width: 66.66667rem;
  margin-right: auto;
  margin-left: auto; }
  .gallery::before, .gallery::after {
    display: table;
    content: ' '; }
  .gallery::after {
    clear: both; }
  .gallery.gallery-columns-1 .gallery-item {
    width: 100%;
    float: left;
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
    @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-1 .gallery-item {
        padding-right: 0.83333rem;
        padding-left: 0.83333rem; } }
    .gallery.gallery-columns-1 .gallery-item:last-child:not(:first-child) {
      float: right; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-1 .gallery-item {
      width: 25%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) and (min-width: 40em) {
    .gallery.gallery-columns-1 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-1 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-1 .gallery-item {
      width: 33.33333%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) and (min-width: 40em) {
    .gallery.gallery-columns-1 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
      .gallery.gallery-columns-1 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  .gallery.gallery-columns-2 .gallery-item {
    width: 100%;
    float: left;
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
    @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-2 .gallery-item {
        padding-right: 0.83333rem;
        padding-left: 0.83333rem; } }
    .gallery.gallery-columns-2 .gallery-item:last-child:not(:first-child) {
      float: right; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-2 .gallery-item {
      width: 25%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) and (min-width: 40em) {
    .gallery.gallery-columns-2 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-2 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-2 .gallery-item {
      width: 33.33333%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) and (min-width: 40em) {
    .gallery.gallery-columns-2 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
      .gallery.gallery-columns-2 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  .gallery.gallery-columns-3 .gallery-item {
    width: 100%;
    float: left;
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
    @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-3 .gallery-item {
        padding-right: 0.83333rem;
        padding-left: 0.83333rem; } }
    .gallery.gallery-columns-3 .gallery-item:last-child:not(:first-child) {
      float: right; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-3 .gallery-item {
      width: 25%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) and (min-width: 40em) {
    .gallery.gallery-columns-3 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-3 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-3 .gallery-item {
      width: 33.33333%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) and (min-width: 40em) {
    .gallery.gallery-columns-3 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
      .gallery.gallery-columns-3 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  .gallery.gallery-columns-4 .gallery-item {
    width: 100%;
    float: left;
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
    @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-4 .gallery-item {
        padding-right: 0.83333rem;
        padding-left: 0.83333rem; } }
    .gallery.gallery-columns-4 .gallery-item:last-child:not(:first-child) {
      float: right; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-4 .gallery-item {
      width: 25%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) and (min-width: 40em) {
    .gallery.gallery-columns-4 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-4 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-4 .gallery-item {
      width: 33.33333%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) and (min-width: 40em) {
    .gallery.gallery-columns-4 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
      .gallery.gallery-columns-4 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  .gallery.gallery-columns-5 .gallery-item {
    width: 100%;
    float: left;
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
    @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-5 .gallery-item {
        padding-right: 0.83333rem;
        padding-left: 0.83333rem; } }
    .gallery.gallery-columns-5 .gallery-item:last-child:not(:first-child) {
      float: right; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-5 .gallery-item {
      width: 25%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) and (min-width: 40em) {
    .gallery.gallery-columns-5 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-5 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-5 .gallery-item {
      width: 33.33333%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) and (min-width: 40em) {
    .gallery.gallery-columns-5 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
      .gallery.gallery-columns-5 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  .gallery.gallery-columns-6 .gallery-item {
    width: 100%;
    float: left;
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
    @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-6 .gallery-item {
        padding-right: 0.83333rem;
        padding-left: 0.83333rem; } }
    .gallery.gallery-columns-6 .gallery-item:last-child:not(:first-child) {
      float: right; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-6 .gallery-item {
      width: 25%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) and (min-width: 40em) {
    .gallery.gallery-columns-6 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-6 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-6 .gallery-item {
      width: 33.33333%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) and (min-width: 40em) {
    .gallery.gallery-columns-6 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
      .gallery.gallery-columns-6 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  .gallery.gallery-columns-7 .gallery-item {
    width: 100%;
    float: left;
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
    @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-7 .gallery-item {
        padding-right: 0.83333rem;
        padding-left: 0.83333rem; } }
    .gallery.gallery-columns-7 .gallery-item:last-child:not(:first-child) {
      float: right; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-7 .gallery-item {
      width: 25%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) and (min-width: 40em) {
    .gallery.gallery-columns-7 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-7 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-7 .gallery-item {
      width: 33.33333%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) and (min-width: 40em) {
    .gallery.gallery-columns-7 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
      .gallery.gallery-columns-7 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  .gallery.gallery-columns-8 .gallery-item {
    width: 100%;
    float: left;
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
    @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-8 .gallery-item {
        padding-right: 0.83333rem;
        padding-left: 0.83333rem; } }
    .gallery.gallery-columns-8 .gallery-item:last-child:not(:first-child) {
      float: right; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-8 .gallery-item {
      width: 25%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) and (min-width: 40em) {
    .gallery.gallery-columns-8 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-8 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-8 .gallery-item {
      width: 33.33333%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) and (min-width: 40em) {
    .gallery.gallery-columns-8 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
      .gallery.gallery-columns-8 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  .gallery.gallery-columns-9 .gallery-item {
    width: 100%;
    float: left;
    padding-right: 0.83333rem;
    padding-left: 0.83333rem; }
    @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-9 .gallery-item {
        padding-right: 0.83333rem;
        padding-left: 0.83333rem; } }
    .gallery.gallery-columns-9 .gallery-item:last-child:not(:first-child) {
      float: right; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-9 .gallery-item {
      width: 25%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) and (min-width: 40em) {
    .gallery.gallery-columns-9 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 40em) {
      .gallery.gallery-columns-9 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-9 .gallery-item {
      width: 33.33333%;
      float: left;
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) and (min-width: 40em) {
    .gallery.gallery-columns-9 .gallery-item {
      padding-right: 0.83333rem;
      padding-left: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
      .gallery.gallery-columns-9 .gallery-item:last-child:not(:first-child) {
        float: right; } }
  .gallery .gallery-item:last-child {
    float: left !important; }
  .gallery .gallery-item {
    padding-top: .83333rem;
    padding-bottom: .83333rem;
    text-align: center; }

/* Accordion ---------------------------- */
.accordion-title {
  margin-bottom: 0;
  border-top: 1px dotted #666;
  background: transparent;
  font-size: 1rem;
  color: #d05511; }
  @media print, screen and (min-width: 40em) {
    .accordion-title {
      font-size: 1.22222rem; } }
  @media print, screen and (min-width: 64em) {
    .accordion-title {
      font-size: 1.33333rem; } }
  .accordion-title:active, .accordion-title:hover, .accordion-title:focus, .accordion-title:visited {
    background: transparent;
    color: #d05511; }
  .no-ios .accordion-title:active, .no-ios .accordion-title:hover, .no-ios .accordion-title:focus, .no-ios .accordion-title:visited {
    color: #b30; }
  .accordion-title:before {
    display: none; }
  .accordion-title .icon-toggle {
    position: absolute;
    top: 50%;
    right: 10px;
    z-index: 1;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    display: inline-block;
    width: 9px;
    height: 21px;
    transition: all 0.2s ease; }
    @media print, screen and (min-width: 40em) {
      .accordion-title .icon-toggle {
        width: 12px;
        height: 28px; } }
    .accordion-title .icon-toggle svg {
      transition: all 0.2s ease; }
    .accordion-title .icon-toggle path {
      fill: #d05511;
      transition: all 0.2s ease; }

.accordion-item:last-child {
  border-bottom: 1px dotted #666; }

.is-active .accordion-title {
  background: transparent;
  color: #b30; }
  .is-active .accordion-title:active, .is-active .accordion-title:hover, .is-active .accordion-title:focus, .is-active .accordion-title:visited {
    color: #b30; }
  .is-active .accordion-title .icon-toggle svg {
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg); }
  .is-active .accordion-title .icon-toggle path {
    fill: #b30; }

.accordion-content ul {
  list-style: none;
  margin-left: 1rem; }
  .accordion-content ul ul, .accordion-content ul ol {
    margin-bottom: .1rem; }
  .accordion-content ul li:before {
    content: "\2022";
    /* Add content: \2022 is the CSS Code/unicode for a bullet */
    color: #999;
    /* Change the color */
    font-weight: bold;
    /* If you want it to be bold */
    display: inline-block;
    /* Needed to add space between the bullet and the text */
    width: 1.2em;
    /* Also needed for space (tweak if needed) */
    margin-left: -1.2em;
    /* Also needed for space (tweak if needed) */ }
  .accordion-content ul li li:before {
    content: "\2014"; }

/* share ---------------------------- */
.share {
  margin: 60px 0 0 0;
  padding: 25px 0 0 0;
  border-top: 1px dotted #666;
  color: #666;
  font-weight: bold; }
  .share .hdr,
  .share .social-icon {
    display: inline-block;
    height: 25px;
    vertical-align: baseline; }
  .share .hdr {
    position: relative;
    top: -2px;
    margin: 0 6px 0 0; }
  .share .social-icon {
    margin: 0 6px; }
    .share .social-icon .stLarge {
      display: none; }
  .no-ios .share .social-icon {
    opacity: .8;
    transition: all 0.2s ease; }
    .no-ios .share .social-icon:hover {
      opacity: 1; }
  .share .st_facebook_large .stButton {
    width: 13px;
    height: 25px;
    background: url(../images/icon-social-facebook.svg) no-repeat; }
  .share .st_twitter_large .stButton {
    width: 24px;
    height: 19px;
    background: url(../images/icon-social-twitter.svg) no-repeat; }
  .share .st_linkedin_large .stButton {
    width: 20px;
    height: 19px;
    background: url(../images/icon-social-linkedin.svg) no-repeat; }

/* content nav ---------------------------- */
.content-nav-item {
  display: none;
  text-align: center; }
  @media print, screen and (min-width: 40em) {
    .content-nav-item {
      display: block; } }
  .content-nav-item a,
  .content-nav-item .content-nav-item-blank {
    display: block;
    padding: 50px 0;
    border-top: 1px dotted #333;
    font-weight: bold;
    font-size: 0.88889rem; }
    @media print, screen and (min-width: 40em) {
      .content-nav-item a,
      .content-nav-item .content-nav-item-blank {
        font-size: 1rem; } }
    @media print, screen and (min-width: 64em) {
      .content-nav-item a,
      .content-nav-item .content-nav-item-blank {
        font-size: 1.16667rem; } }
  .content-nav-item a {
    color: #666666;
    transition: all 0.2s ease; }
    .content-nav-item a:hover {
      color: #666666; }
    .no-ios .content-nav-item a:hover {
      background: #ccc; }
    .content-nav-item a .icon-wrap {
      position: relative;
      display: inline-block;
      width: 20px;
      height: 15px; }

.content-nav-item-parent a {
  background: #fff; }
  .no-ios .content-nav-item-parent a:hover {
    background: #ddd; }
  .content-nav-item-parent a .icon-wrap {
    top: 1px;
    width: 20px;
    height: 15px;
    margin: 0 20px 0 0;
    -webkit-transform: scaleX(-1);
        -ms-transform: scaleX(-1);
            transform: scaleX(-1); }
    .content-nav-item-parent a .icon-wrap path {
      fill: #666666; }

.content-nav-item-prev a,
.content-nav-item-prev .content-nav-item-blank,
.content-nav-item-next a,
.content-nav-item-next .content-nav-item-blank {
  border-left: 1px dotted #333;
  background: #eee; }

.content-nav-item-prev a .icon-wrap,
.content-nav-item-next a .icon-wrap {
  top: 2px;
  width: 8px;
  height: 18px; }
  .content-nav-item-prev a .icon-wrap path,
  .content-nav-item-next a .icon-wrap path {
    fill: #666666; }

.content-nav-item-next a .icon-wrap {
  margin-left: 20px; }

.content-nav-item-prev a .icon-wrap {
  margin-right: 20px;
  -webkit-transform: scaleX(-1);
      -ms-transform: scaleX(-1);
          transform: scaleX(-1); }

/* middle banner ---------------------------- */
.banner-mid {
  position: relative;
  display: none;
  height: 150px;
  background-image: url(../images/bg-weaver-road.jpg);
  background-color: #ccc;
  background-position: top center;
  background-repeat: no-repeat;
  background-size: cover; }
  @media print, screen and (min-width: 40em) {
    .banner-mid {
      display: block;
      height: 300px; } }
  @media print, screen and (min-width: 64em) {
    .banner-mid {
      height: 425px; } }
  .no-ios .banner-mid {
    background-attachment: fixed; }

/* bottom banner ---------------------------- */
.banner-btm {
  position: relative;
  height: 160px;
  background-image: url(../images/bg-weaver-road.jpg);
  background-color: #ccc;
  background-position: top center;
  background-repeat: repeat-y;
  background-size: cover; }
  @media print, screen and (min-width: 40em) {
    .banner-btm {
      height: 300px; } }
  @media print, screen and (min-width: 64em) {
    .banner-btm {
      height: 450px; } }
  .no-ios .banner-btm {
    background-attachment: fixed; }
  .banner-btm:before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 2;
    content: "";
    display: block;
    width: 100%;
    height: 20px;
    background: transparent;
    background: linear-gradient(to bottom, rgba(51, 51, 51, 0.8) 0%, rgba(51, 51, 51, 0) 100%); }
  .banner-btm .banner-decor-lf:before, .banner-btm .banner-decor-lf:after,
  .banner-btm .banner-decor-rt:before,
  .banner-btm .banner-decor-rt:after {
    content: "";
    position: absolute;
    z-index: 1;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    mix-blend-mode: multiply; }
    html.ie .banner-btm .banner-decor-lf:before, html.ie .banner-btm .banner-decor-lf:after, html.ie
    .banner-btm .banner-decor-rt:before, html.ie
    .banner-btm .banner-decor-rt:after {
      mix-blend-mode: unset;
      opacity: .7; }
  .banner-btm .banner-decor-lf:before {
    bottom: 0;
    left: 0;
    border-width: 160px 0 0 120px;
    border-color: transparent transparent transparent #ff7733; }
    @media print, screen and (min-width: 40em) {
      .banner-btm .banner-decor-lf:before {
        border-width: 300px 0 0 220px; } }
    @media print, screen and (min-width: 64em) {
      .banner-btm .banner-decor-lf:before {
        border-width: 450px 0 0 360px; } }
  .banner-btm .banner-decor-lf:after {
    top: 0;
    left: 0;
    border-width: 110px 100px 0 0;
    border-color: #999 transparent transparent transparent; }
    @media print, screen and (min-width: 40em) {
      .banner-btm .banner-decor-lf:after {
        border-width: 210px 180px 0 0; } }
    @media print, screen and (min-width: 64em) {
      .banner-btm .banner-decor-lf:after {
        border-width: 310px 270px 0 0; } }
  .banner-btm .banner-decor-rt:before {
    top: 0;
    right: 0;
    border-width: 0 120px 160px 0;
    border-color: transparent #ff7733 transparent transparent; }
    @media print, screen and (min-width: 40em) {
      .banner-btm .banner-decor-rt:before {
        border-width: 0 220px 300px 0; } }
    @media print, screen and (min-width: 64em) {
      .banner-btm .banner-decor-rt:before {
        border-width: 0 360px 450px 0; } }
  .banner-btm .banner-decor-rt:after {
    bottom: 0;
    right: 0;
    border-width: 0 0 110px 100px;
    border-color: transparent transparent #999 transparent; }
    @media print, screen and (min-width: 40em) {
      .banner-btm .banner-decor-rt:after {
        border-width: 0 0 210px 180px; } }
    @media print, screen and (min-width: 64em) {
      .banner-btm .banner-decor-rt:after {
        border-width: 0 0 310px 270px; } }

/* group link ---------------------------- */
.group-link.js-hover {
  cursor: pointer; }

/* featured photo ---------------------------- */
.featured-photo {
  position: relative;
  width: 100%;
  margin: 10px 0 30px 0;
  background-color: #ccc;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center; }
  .featured-photo:before {
    content: "";
    display: block;
    padding-top: 100%; }
  @media print, screen and (min-width: 40em) {
    .featured-photo {
      margin-bottom: 0; } }
  .featured-photo .featured-photo-sides {
    mix-blend-mode: multiply; }
    html.ie .featured-photo .featured-photo-sides {
      mix-blend-mode: unset;
      opacity: .7; }
    .featured-photo .featured-photo-sides:before, .featured-photo .featured-photo-sides:after {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      z-index: 1;
      display: block;
      width: 15%;
      height: 100%; }
    .featured-photo .featured-photo-sides:before {
      left: 0;
      background: linear-gradient(to right, rgba(51, 51, 51, 0.6) 0%, rgba(51, 51, 51, 0) 100%); }
    .featured-photo .featured-photo-sides:after {
      right: 0;
      background: linear-gradient(to left, rgba(51, 51, 51, 0.6) 0%, rgba(51, 51, 51, 0) 100%); }

/* Pagination ---------------------------- */
.pagination {
  margin: 0;
  background: #fff; }
  .pagination li {
    padding: 0;
    background: none;
    /* prev, next */ }
    .pagination li a,
    .pagination li .current {
      margin: 2px;
      padding: 10px 15px;
      font-size: 1rem;
      line-height: 1;
      /*
      @include breakpoint(medium) {
        font-size: rem-calc(21px);
      }
      @include breakpoint(large) {
        font-size: rem-calc(24px);
      }
*/ }
      .pagination li a:hover,
      .pagination li .current:hover {
        background: none;
        text-decoration: none; }
    .pagination li a {
      color: #d05511; }
    .pagination li .current {
      display: inline-block;
      background: #888;
      border-radius: 5px;
      color: #fff; }
      .pagination li .current:hover {
        background: #888; }
    .pagination li .prev,
    .pagination li .next {
      position: relative;
      top: -1px;
      display: block;
      margin: 0 15px;
      padding: 0;
      font-size: 3.33333rem; }
      @media print, screen and (min-width: 40em) {
        .pagination li .prev,
        .pagination li .next {
          margin: 0 5px;
          font-size: 1.16667rem; } }
      @media print, screen and (min-width: 64em) {
        .pagination li .prev,
        .pagination li .next {
          font-size: 1.66667rem; } }

/* news archive ---------------------------- */
/* news social */
.news-social-section {
  padding: 40px 0;
  text-align: center;
  background: #eee; }
  .news-social-section .parent-slug {
    display: inline-block;
    margin-bottom: 1rem;
    padding: 11px 20px 11px 20px;
    background: #b30; }

.news-social-section__social {
  margin-top: 1.5rem;
  text-align: center; }
  .news-social-section__social a {
    display: inline-block;
    width: 30px;
    height: 30px;
    margin: 5px 15px;
    vertical-align: middle; }
    .news-social-section__social a.facebook {
      width: 13px;
      height: 25px;
      width: 18px;
      height: 34px; }
    .news-social-section__social a.linkedin {
      width: 20px;
      height: 19px;
      width: 27px;
      height: 26px; }
    .news-social-section__social a.instagram {
      width: 21px;
      height: 21px;
      width: 28px;
      height: 28px; }
    .news-social-section__social a svg {
      display: block; }
    .news-social-section__social a path {
      fill: #d05511;
      transition: all 0.2s ease; }
    .no-ios .news-social-section__social a:hover path {
      fill: #b30; }

/* news archive intro */
.news-archive-content .featured-photo-sides {
  display: none; }

/* news archive intro */
/*
body.is-reveal-open {
  overflow: hidden;
  overflow: visible;
}
*/
body.blog .news-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10;
  padding: 27px 0 25px;
  background: #ddd;
  text-align: center; }
  body.blog .news-bar .hdr {
    margin: 0 0 0 0; }
  body.blog .news-bar p, body.blog .news-bar address, body.blog .news-bar body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result body.blog .news-bar .st-ui-type-detail, body.blog .news-bar body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result body.blog .news-bar .st-ui-type-detail-bold {
    margin: 0;
    font-family: "Saira", sans-serif;
    font-size: 18px; }
    @media print, screen and (min-width: 40em) {
      body.blog .news-bar p, body.blog .news-bar address, body.blog .news-bar body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result body.blog .news-bar .st-ui-type-detail, body.blog .news-bar body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result body.blog .news-bar .st-ui-type-detail-bold {
        font-size: 20px; } }
  body.blog .news-bar .toggle-modal-signup-newsletter {
    font-weight: bold;
    text-decoration: underline; }
    body.blog .news-bar .toggle-modal-signup-newsletter .icon-wrap {
      display: inline-block;
      width: 40px;
      height: 31px;
      margin: 0 10px 0 0;
      vertical-align: middle; }
      body.blog .news-bar .toggle-modal-signup-newsletter .icon-wrap .circle,
      body.blog .news-bar .toggle-modal-signup-newsletter .icon-wrap .triangle-inset {
        fill: #d05511;
        transition: all 0.2s ease; }
    .no-ios body.blog .news-bar .toggle-modal-signup-newsletter:hover .circle,
    .no-ios body.blog .news-bar .toggle-modal-signup-newsletter:hover .triangle-inset {
      fill: #ee6622; }

body.blog .modal-signup-newsletter {
  padding: 2rem; }
  @media print, screen and (min-width: 40em) {
    body.blog .modal-signup-newsletter {
      box-shadow: 0 0 25px 5px rgba(0, 0, 0, 0.2); } }
  body.blog .modal-signup-newsletter h2, body.blog .modal-signup-newsletter body.page-template-page-search-custom .search-form input[type='text'], body.page-template-page-search-custom .search-form body.blog .modal-signup-newsletter input[type='text'], body.blog .modal-signup-newsletter body.page-template-page-search-custom .st-ui-result .st-ui-type-heading, body.page-template-page-search-custom .st-ui-result body.blog .modal-signup-newsletter .st-ui-type-heading, body.blog .modal-signup-newsletter body.search .search-form input[type='text'], body.search .search-form body.blog .modal-signup-newsletter input[type='text'] {
    margin-bottom: 30px; }
  body.blog .modal-signup-newsletter .close-button {
    top: .5rem;
    right: 1rem;
    font-size: 2em; }
  body.blog .modal-signup-newsletter .frm_button_submit {
    min-width: 200px;
    margin-top: 40px;
    color: #fff; }

body.blog .site-footer {
  padding-bottom: 140px; }

.news-archive-intro {
  text-align: center; }
  .news-archive-intro .hdr-section {
    margin: 0;
    padding: 0 0 30px 0;
    border-bottom: 1px dotted #666; }

/* archive blog post */
.blogpost-archive {
  margin: 60px 0;
  padding: 0 0 60px 0;
  border-bottom: 1px dotted #666; }
  @media print, screen and (min-width: 40em) {
    .blogpost-archive .post-archive-content {
      margin-left: 20px; } }

/* bottom banner */
.news-banner-btm {
  background-image: url(../images/bg-rolled-plans.jpg); }

/* news single post ---------------------------- */
.single-post .parent-slug-mobile {
  display: block; }
  @media print, screen and (min-width: 40em) {
    .single-post .parent-slug-mobile {
      display: none; } }
  .single-post .parent-slug-mobile a:hover {
    color: #fff; }

.single-post .featured-photo {
  margin-bottom: 0;
  margin-top: 0;
  background-position: top center; }
  .single-post .featured-photo:before {
    padding-top: 40%; }
    @media print, screen and (min-width: 40em) {
      .single-post .featured-photo:before {
        padding-top: 35%; } }
  .single-post .featured-photo .featured-photo-sides {
    display: none; }

@media print, screen and (min-width: 40em) {
  .single-post header.content-page-header h1 {
    margin-left: 120px; } }

@media print, screen and (min-width: 64em) {
  .single-post header.content-page-header h1 {
    margin-left: 130px; } }

.single-post .post-content {
  background: #fff; }
  @media print, screen and (min-width: 64em) {
    .single-post .post-content {
      padding-top: 90px; } }

.single-post time {
  display: block;
  margin-bottom: .5rem; }

/* Related Project ---------------------------- */
.related-project-section {
  background: linear-gradient(to bottom, #222 0%, #333 10%, #444 60%, #222 60%, #222 100%);
  text-align: center; }
  .related-project-section h2, .related-project-section body.page-template-page-search-custom .search-form input[type='text'], body.page-template-page-search-custom .search-form .related-project-section input[type='text'], .related-project-section body.page-template-page-search-custom .st-ui-result .st-ui-type-heading, body.page-template-page-search-custom .st-ui-result .related-project-section .st-ui-type-heading, .related-project-section body.search .search-form input[type='text'], body.search .search-form .related-project-section input[type='text'] {
    margin-bottom: 1.25rem;
    color: #fff; }

.related-project {
  overflow: hidden;
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  margin: 0 0 30px 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  color: #fff;
  text-align: left;
  transition: all 0.2s ease; }
  .related-project:hover, .related-project:active, .related-project:focus {
    color: #fff !important; }
  .no-ios .related-project:hover:after {
    opacity: 1; }
  .no-ios .related-project:hover .related-project-overlay {
    opacity: 1; }
  .related-project:before {
    content: "";
    display: block;
    padding-top: 100%; }
  .related-project:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 4;
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.3);
    opacity: 0;
    mix-blend-mode: multiply;
    transition: all 0.3s ease; }
    html.ie .related-project:after {
      mix-blend-mode: unset;
      opacity: .7; }
  .related-project .related-project-shadow {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 3;
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(51, 51, 51, 0.8) 0%, rgba(51, 51, 51, 0) 50%); }
  .related-project .related-project-overlay {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 2;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-color: rgba(0, 0, 0, 0.4);
    opacity: 0;
    -webkit-filter: blur(1px);
            filter: blur(1px);
    transition: all 0.3s ease; }
  .related-project .text {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 8;
    display: block;
    width: 80%;
    transition: all 0.2s ease; }
    @media print, screen and (min-width: 40em) {
      .related-project .text {
        top: 15px;
        left: 15px; } }
  .related-project .title {
    text-shadow: 0 0 8px black; }
    .related-project .title.title-mobile {
      display: block;
      font-size: .7rem;
      line-height: 1.3; }
      @media print, screen and (min-width: 40em) {
        .related-project .title.title-mobile {
          display: none; } }
    .related-project .title.title-desktop {
      display: none;
      line-height: 1.3; }
      @media print, screen and (min-width: 40em) {
        .related-project .title.title-desktop {
          display: block; } }
  .related-project .project-meta-data {
    display: block;
    margin: 5px 0 0 0;
    text-shadow: 0 0 8px black;
    font-size: .7rem;
    line-height: 1.2; }
    @media print, screen and (min-width: 40em) {
      .related-project .project-meta-data {
        font-size: 0.94444rem;
        line-height: 1.5; } }
    @media print, screen and (min-width: 64em) {
      .related-project .project-meta-data {
        font-size: 1rem; } }

/* projects archive ---------------------------- */
.projects-content {
  padding: 25px 0;
  background: #fff; }
  @media print, screen and (min-width: 40em) {
    .projects-content {
      padding: 75px 0; } }
  @media print, screen and (min-width: 64em) {
    .projects-content {
      padding: 100px 0; } }

.projects-filters-wrap {
  text-align: center;
  /* mobile toggle */ }
  .projects-filters-wrap .hdr-filter {
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px dotted #666; }
    @media print, screen and (min-width: 40em) {
      .projects-filters-wrap .hdr-filter {
        display: none; } }
    .projects-filters-wrap .hdr-filter svg {
      position: relative;
      top: 6px;
      display: inline-block;
      width: 26px;
      height: 26px;
      margin: 0 0 0 5px;
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg);
      transition: all 0.2s ease; }
      .projects-filters-wrap .hdr-filter svg line {
        stroke: #d05511;
        transition: all 0.2s ease; }
    .no-ios .projects-filters-wrap .hdr-filter a:hover line {
      stroke: #ee6622; }
    .projects-filters-wrap .hdr-filter a.open svg {
      -webkit-transform: rotate(0);
          -ms-transform: rotate(0);
              transform: rotate(0); }

.project-filters {
  margin: 0 0 30px 0;
  /* mobile toggle feature */ }
  @media screen and (max-width: 39.9375em) {
    .project-filters {
      overflow-y: hidden;
      opacity: 0;
      max-height: 0;
      -webkit-transform: translate3d(0, -100%, 0);
              transform: translate3d(0, -100%, 0);
      transition: all 0.2s ease; }
      .project-filters.show {
        opacity: 1;
        max-height: 300px;
        -webkit-transform: translate3d(0, 0, 0);
                transform: translate3d(0, 0, 0); } }
  .project-filters .filter {
    display: block;
    margin: 5px 0; }
  .project-filters .filter-divider {
    color: #999;
    font-size: 15px; }
    @media screen and (max-width: 39.9375em) {
      .project-filters .filter-divider {
        display: block; } }
  .project-filters select {
    display: inline-block;
    max-width: 220px;
    margin: 10px;
    padding-top: 9px;
    padding-bottom: 11px;
    height: auto; }
  .project-filters .button {
    display: block;
    margin: 10px auto;
    max-width: 220px; }
    @media print, screen and (min-width: 40em) {
      .project-filters .button {
        display: inline-block;
        margin: 10px; } }

/* facet styling */
body .facetwp-facet {
  margin-bottom: 0; }

body .facetwp-type-fselect .fs-wrap,
body .facetwp-type-fselect .fs-dropdown {
  width: 100%; }

body .facetwp-type-fselect .fs-dropdown {
  max-width: 293px; }

body .fs-option.disabled {
  opacity: 1; }

/* facet filters */
.project-filters-weighted {
  margin-bottom: 30px;
  /* mobile toggle feature */ }
  @media screen and (max-width: 39.9375em) {
    .project-filters-weighted {
      opacity: 0;
      height: 0;
      -webkit-transform: translate3d(0, -100%, 0);
              transform: translate3d(0, -100%, 0);
      transition: all 0.2s ease; }
      .project-filters-weighted.show {
        margin-left: auto;
        margin-right: auto;
        opacity: 1;
        max-width: 220px;
        height: auto;
        -webkit-transform: translate3d(0, 0, 0);
                transform: translate3d(0, 0, 0); }
      .project-filters-weighted .project-filters-weighted-filter .facetwp-facet {
        margin: 10px 0; }
      .project-filters-weighted .fs-dropdown {
        position: static; } }
  @media print, screen and (min-width: 40em) {
    .project-filters-weighted {
      max-width: 66.66667rem;
      margin-right: auto;
      margin-left: auto; }
      .project-filters-weighted::before, .project-filters-weighted::after {
        display: table;
        content: ' '; }
      .project-filters-weighted::after {
        clear: both; }
      .project-filters-weighted .project-filters-weighted-filter {
        width: 22.22222%;
        float: left;
        padding-right: 0;
        padding-left: 0; }
        .project-filters-weighted .project-filters-weighted-filter:last-child:not(:first-child) {
          float: right; }
      .project-filters-weighted .project-filters-weighted-divider {
        width: 5.55556%;
        float: left;
        padding-right: 0;
        padding-left: 0; }
        .project-filters-weighted .project-filters-weighted-divider:last-child:not(:first-child) {
          float: right; }
      .project-filters-weighted .project-filters-weighted-reset {
        width: 22.22222%;
        float: left;
        padding-right: 0;
        padding-left: 0; }
        .project-filters-weighted .project-filters-weighted-reset:last-child:not(:first-child) {
          float: right; } }
  @media print, screen and (min-width: 64em) {
    .project-filters-weighted {
      max-width: 66.66667rem;
      margin-right: auto;
      margin-left: auto; }
      .project-filters-weighted::before, .project-filters-weighted::after {
        display: table;
        content: ' '; }
      .project-filters-weighted::after {
        clear: both; }
      .project-filters-weighted .project-filters-weighted-filter {
        width: 25%;
        float: left;
        padding-right: 0;
        padding-left: 0; }
        .project-filters-weighted .project-filters-weighted-filter:last-child:not(:first-child) {
          float: right; }
      .project-filters-weighted .project-filters-weighted-divider {
        width: 5%;
        float: left;
        padding-right: 0;
        padding-left: 0; }
        .project-filters-weighted .project-filters-weighted-divider:last-child:not(:first-child) {
          float: right; }
      .project-filters-weighted .project-filters-weighted-reset {
        width: 15%;
        float: left;
        padding-right: 0;
        padding-left: 0; }
        .project-filters-weighted .project-filters-weighted-reset:last-child:not(:first-child) {
          float: right; } }
  .project-filters-weighted .fs-label-wrap .fs-label {
    padding: 15px 22px 15px 10px;
    color: #777;
    font-size: 16px;
    text-align: left; }
  .project-filters-weighted .fs-label-wrap .fs-arrow {
    right: 10px;
    border-top-color: #777; }
  .project-filters-weighted .fs-search input {
    margin: 0; }
  .project-filters-weighted .fs-options {
    text-align: left; }
  .project-filters-weighted .fs-options .fs-option:first-child {
    padding-top: 10px;
    text-transform: uppercase; }
    .project-filters-weighted .fs-options .fs-option:first-child.selected {
      font-weight: normal; }
    .project-filters-weighted .fs-options .fs-option:first-child .fs-option-label:after {
      content: ":"; }
    .no-ios .project-filters-weighted .fs-options .fs-option:first-child {
      transition: all 0.3s ease; }
      .no-ios .project-filters-weighted .fs-options .fs-option:first-child:hover {
        background: inherit; }
  .project-filters-weighted .fs-option {
    padding: 6px 10px;
    font-size: 16px;
    border: none; }
    .no-ios .project-filters-weighted .fs-option {
      transition: all 0.3s ease; }
      .no-ios .project-filters-weighted .fs-option:hover {
        background: #ddd; }
    .project-filters-weighted .fs-option.selected {
      font-weight: bold; }
  .project-filters-weighted .filter-divider {
    margin: -6px 10px 10px;
    color: #999;
    font-size: 15px; }
    @media print, screen and (min-width: 40em) {
      .project-filters-weighted .filter-divider {
        margin: 10px; } }
  .project-filters-weighted .button {
    display: block;
    margin-top: 15px;
    max-width: 220px; }
    @media print, screen and (min-width: 40em) {
      .project-filters-weighted .button {
        margin-top: 0px;
        margin-left: 20px; } }

/* facet results */
/* facet pagination */
.facetwp-pager {
  text-align: center; }

.facetwp-pager-label {
  display: none; }

.facetwp-page {
  margin: 5px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 1rem;
  line-height: 1; }
  .facetwp-page.active {
    background: #777;
    color: #fff;
    font-weight: normal; }
    .facetwp-page.active:hover {
      color: #fff; }
  .facetwp-page.first-page:after {
    content: 'first';
    margin-left: 8px; }
  .facetwp-page.last-page:before {
    content: 'last';
    margin-right: 8px; }

.projects-banner-btm {
  background-image: url(../images/bg-projectsv2.jpg); }

/* projects single post ---------------------------- */
.single-dowl_project .featured-photo {
  height: 200px;
  margin-top: 0;
  margin: 0;
  background-position: top center; }
  .single-dowl_project .featured-photo:before {
    padding-top: 40%;
    display: none; }
  @media print, screen and (min-width: 40em) {
    .single-dowl_project .featured-photo {
      height: 300px; } }
  @media print, screen and (min-width: 64em) {
    .single-dowl_project .featured-photo {
      height: 600px; } }

.single-dowl_project .project-hero-video {
  max-height: 200px;
  margin: 0;
  background-repeat: no-repeat;
  background-position: top center;
  background-color: #fff;
  background-size: cover; }
  @media print, screen and (min-width: 40em) {
    .single-dowl_project .project-hero-video {
      max-height: 300px;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 64em) {
    .single-dowl_project .project-hero-video {
      max-height: 600px; } }
  .single-dowl_project .project-hero-video .responsive-embed,
  .single-dowl_project .project-hero-video .flex-video {
    margin: 0;
    padding-bottom: 56.25%; }

.single-dowl_project .parent-slug-mobile {
  display: block; }
  @media print, screen and (min-width: 40em) {
    .single-dowl_project .parent-slug-mobile {
      display: none; } }
  .single-dowl_project .parent-slug-mobile a:hover {
    color: #fff; }

.single-dowl_project .project-content {
  position: relative; }
  .single-dowl_project .project-content:before, .single-dowl_project .project-content:after {
    content: "";
    position: absolute;
    z-index: 1;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    mix-blend-mode: multiply; }
    html.ie .single-dowl_project .project-content:before, html.ie .single-dowl_project .project-content:after {
      mix-blend-mode: unset; }
  .single-dowl_project .project-content:before, .single-dowl_project .project-content:after {
    bottom: 0; }
  .single-dowl_project .project-content:before {
    left: 0;
    border-width: 100px 0 0 20px;
    border-color: transparent transparent transparent #eeeeee; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_project .project-content:before {
        border-width: 150px 0 0 30px; } }
    @media print, screen and (min-width: 64em) {
      .single-dowl_project .project-content:before {
        border-width: 260px 0 0 60px; } }
  .single-dowl_project .project-content:after {
    right: 0;
    border-width: 0 0 100px 20px;
    border-color: transparent transparent #eeeeee transparent; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_project .project-content:after {
        border-width: 0 0 150px 30px; } }
    @media print, screen and (min-width: 64em) {
      .single-dowl_project .project-content:after {
        border-width: 0 0 260px 60px; } }
  @media print, screen and (min-width: 40em) {
    .single-dowl_project .project-content {
      padding-top: 75px; } }
  @media print, screen and (min-width: 64em) {
    .single-dowl_project .project-content {
      padding-top: 100px; } }

.single-dowl_project .project-content-inner {
  position: relative;
  z-index: 2; }

@media screen and (max-width: 39.9375em) {
  .single-dowl_project blockquote {
    margin: 30px 0 60px; } }

.single-dowl_project .project-details {
  position: relative; }
  .single-dowl_project .project-details:before {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    padding: 30px 0 0 0;
    border-top: 1px dotted #666; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_project .project-details:before {
        position: absolute;
        left: -60px;
        top: 0;
        bottom: 0;
        z-index: 1;
        width: 1px;
        height: 100%;
        padding: 0;
        border-top: none;
        border-left: 1px dotted #666; } }
  .single-dowl_project .project-details .hdr {
    margin: 30px 0 .2rem 0; }
    .single-dowl_project .project-details .hdr:first-child {
      margin-top: 0; }
  .single-dowl_project .project-details .services .hdr {
    margin-bottom: 8px; }
  .single-dowl_project .project-details .data-list-item {
    margin: .5rem 0;
    line-height: 1.4; }

.single-dowl_project .media-section {
  position: relative; }
  .single-dowl_project .media-section:before, .single-dowl_project .media-section:after {
    content: "";
    position: absolute;
    z-index: 1;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    mix-blend-mode: multiply; }
    html.ie .single-dowl_project .media-section:before, html.ie .single-dowl_project .media-section:after {
      mix-blend-mode: unset; }
  .single-dowl_project .media-section:before, .single-dowl_project .media-section:after {
    top: 0; }
  .single-dowl_project .media-section:before {
    left: 0;
    border-width: 100px 20px 0 0;
    border-color: #eeeeee transparent transparent transparent; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_project .media-section:before {
        border-width: 150px 30px 0 0; } }
    @media print, screen and (min-width: 64em) {
      .single-dowl_project .media-section:before {
        border-width: 260px 60px 0 0; } }
  .single-dowl_project .media-section:after {
    right: 0;
    border-width: 0 20px 100px 0;
    border-color: transparent #eeeeee transparent transparent; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_project .media-section:after {
        border-width: 0 30px 150px 0; } }
    @media print, screen and (min-width: 64em) {
      .single-dowl_project .media-section:after {
        border-width: 0 60px 260px 0; } }

/* services archive ---------------------------- */
.post-type-archive-dowl_service .services-intro {
  position: relative;
  background: #eee;
  padding: 40px 0; }
  @media print, screen and (min-width: 40em) {
    .post-type-archive-dowl_service .services-intro {
      padding: 55px 0; } }
  @media print, screen and (min-width: 64em) {
    .post-type-archive-dowl_service .services-intro {
      padding: 100px 0; } }

@media screen and (max-width: 39.9375em) {
  .post-type-archive-dowl_service .services-content .column-block.end, .post-type-archive-dowl_service .services-content .projects-content .facetwp-template .column-block.columns:last-child, .projects-content .facetwp-template .post-type-archive-dowl_service .services-content .column-block.columns:last-child {
    margin-bottom: 0; } }

.post-type-archive-dowl_service .service-archive {
  margin: 0 0 20px 0; }
  @media print, screen and (min-width: 40em) {
    .post-type-archive-dowl_service .service-archive {
      margin-bottom: 10px;
      margin-left: 20px;
      margin-right: 20px; } }
  .post-type-archive-dowl_service .service-archive a {
    transition: all 0.3s ease; }
  .post-type-archive-dowl_service .service-archive img {
    transition: all 0.3s ease; }
  .no-ios .post-type-archive-dowl_service .service-archive.js-hover {
    cursor: pointer; }
    .no-ios .post-type-archive-dowl_service .service-archive.js-hover a {
      color: #ee6622; }
    .no-ios .post-type-archive-dowl_service .service-archive.js-hover img {
      box-shadow: 0 5px 10px 0px rgba(68, 68, 68, 0.6); }

.post-type-archive-dowl_service .service-icon {
  width: 100%;
  height: 100%;
  max-width: 90px;
  max-height: 90px;
  margin: 0 0 20px 0; }
  @media print, screen and (min-width: 40em) {
    .post-type-archive-dowl_service .service-icon {
      width: 120px;
      height: 120px;
      max-width: none;
      max-height: none; } }
  @media print, screen and (min-width: 64em) {
    .post-type-archive-dowl_service .service-icon {
      width: 150px;
      height: 150px; } }
  .post-type-archive-dowl_service .service-icon img {
    display: block;
    border-radius: 50%;
    background: #fff; }

.post-type-archive-dowl_service .service-meta-data {
  list-style: none;
  margin-left: 1rem;
  margin-left: 1.4rem;
  font-weight: bold;
  font-size: 0.88889rem; }
  .post-type-archive-dowl_service .service-meta-data ul, .post-type-archive-dowl_service .service-meta-data ol {
    margin-bottom: .1rem; }
  .post-type-archive-dowl_service .service-meta-data li:before {
    content: "\2022";
    /* Add content: \2022 is the CSS Code/unicode for a bullet */
    color: #999;
    /* Change the color */
    font-weight: bold;
    /* If you want it to be bold */
    display: inline-block;
    /* Needed to add space between the bullet and the text */
    width: 1.2em;
    /* Also needed for space (tweak if needed) */
    margin-left: -1.2em;
    /* Also needed for space (tweak if needed) */ }
  .post-type-archive-dowl_service .service-meta-data li li:before {
    content: "\2014"; }
  @media print, screen and (min-width: 40em) {
    .post-type-archive-dowl_service .service-meta-data {
      font-size: 1rem; } }
  @media print, screen and (min-width: 64em) {
    .post-type-archive-dowl_service .service-meta-data {
      font-size: 1.11111rem; } }

.post-type-archive-dowl_service .link-arrow-wrap {
  margin: 0; }

/* services single ---------------------------- */
.single-dowl_service .featured-photo {
  margin: 0;
  background-position: top center; }
  .single-dowl_service .featured-photo:before {
    padding-top: 40%; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .featured-photo:before {
        padding-top: 30%; } }
    @media print, screen and (min-width: 64em) {
      .single-dowl_service .featured-photo:before {
        padding-top: 20%; } }
  .single-dowl_service .featured-photo .row {
    position: relative; }

.single-dowl_service .service-icon {
  position: absolute;
  left: 10px;
  bottom: -20px;
  z-index: 1;
  width: 90px;
  height: 90px; }
  @media print, screen and (min-width: 40em) {
    .single-dowl_service .service-icon {
      bottom: -30px;
      width: 120px;
      height: 120px; } }
  @media print, screen and (min-width: 64em) {
    .single-dowl_service .service-icon {
      bottom: -40px;
      width: 150px;
      height: 150px; } }
  .single-dowl_service .service-icon img {
    display: block;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 5px 10px 0px rgba(68, 68, 68, 0.6); }

.single-dowl_service .parent-slug-mobile {
  display: block; }
  @media print, screen and (min-width: 40em) {
    .single-dowl_service .parent-slug-mobile {
      display: none; } }
  .single-dowl_service .parent-slug-mobile a:hover {
    color: #fff; }

.single-dowl_service .service-intro {
  position: relative;
  background: #eee; }
  .single-dowl_service .service-intro:before, .single-dowl_service .service-intro:after {
    content: "";
    position: absolute;
    z-index: 1;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    mix-blend-mode: multiply; }
    html.ie .single-dowl_service .service-intro:before, html.ie .single-dowl_service .service-intro:after {
      mix-blend-mode: unset; }
  .single-dowl_service .service-intro:before, .single-dowl_service .service-intro:after {
    bottom: 0; }
  .single-dowl_service .service-intro:before {
    left: 0;
    border-width: 100px 0 0 20px;
    border-color: transparent transparent transparent #ddd; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-intro:before {
        border-width: 150px 0 0 30px; } }
    @media print, screen and (min-width: 64em) {
      .single-dowl_service .service-intro:before {
        border-width: 260px 0 0 60px; } }
  .single-dowl_service .service-intro:after {
    right: 0;
    border-width: 0 0 100px 20px;
    border-color: transparent transparent #ddd transparent; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-intro:after {
        border-width: 0 0 150px 30px; } }
    @media print, screen and (min-width: 64em) {
      .single-dowl_service .service-intro:after {
        border-width: 0 0 260px 60px; } }

.single-dowl_service .service-lead {
  position: relative; }
  .single-dowl_service .service-lead:before {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    margin: 10px 0 30px 0;
    border-top: 1px dotted #666; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-lead:before {
        position: absolute;
        left: -25px;
        top: 0;
        bottom: 0;
        z-index: 1;
        width: 1px;
        height: 100%;
        margin: 0;
        border-top: none;
        border-left: 1px dotted #666; } }
  .single-dowl_service .service-lead .portrait {
    margin: 0 0 15px 0; }
  .single-dowl_service .service-lead .name {
    margin: 0 0 2px 0; }
  .single-dowl_service .service-lead .title {
    margin: 0 0 2px 0; }
  .single-dowl_service .service-lead .phone {
    margin: 0 0 2px 0; }
  .single-dowl_service .service-lead .project-meta-social {
    margin: 10px 0 0 0; }
    .single-dowl_service .service-lead .project-meta-social a {
      display: inline-block;
      margin: 0 5px 0 0;
      vertical-align: middle; }
      .single-dowl_service .service-lead .project-meta-social a path {
        transition: all 0.2s ease; }
      .no-ios .single-dowl_service .service-lead .project-meta-social a:hover path {
        fill: #ee6622; }
  .single-dowl_service .service-lead a.linkedin {
    width: 19px;
    height: 20px; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-lead a.linkedin {
        width: 27px;
        height: 25px; } }
  .single-dowl_service .service-lead a.email {
    position: relative;
    top: 3px;
    width: 21px;
    height: 19px; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-lead a.email {
        width: 32px;
        height: 29px; } }

.single-dowl_service .service-content {
  position: relative; }
  .single-dowl_service .service-content:before, .single-dowl_service .service-content:after {
    content: "";
    position: absolute;
    z-index: 1;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    mix-blend-mode: multiply; }
    html.ie .single-dowl_service .service-content:before, html.ie .single-dowl_service .service-content:after {
      mix-blend-mode: unset; }
  .single-dowl_service .service-content:before, .single-dowl_service .service-content:after {
    top: 0; }
  .single-dowl_service .service-content:before {
    left: 0;
    border-width: 100px 20px 0 0;
    border-color: #eeeeee transparent transparent transparent; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-content:before {
        border-width: 150px 30px 0 0; } }
    @media print, screen and (min-width: 64em) {
      .single-dowl_service .service-content:before {
        border-width: 260px 60px 0 0; } }
  .single-dowl_service .service-content:after {
    right: 0;
    border-width: 0 20px 100px 0;
    border-color: transparent #eeeeee transparent transparent; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-content:after {
        border-width: 0 30px 150px 0; } }
    @media print, screen and (min-width: 64em) {
      .single-dowl_service .service-content:after {
        border-width: 0 60px 260px 0; } }
  .single-dowl_service .service-content h2, .single-dowl_service .service-content body.page-template-page-search-custom .search-form input[type='text'], body.page-template-page-search-custom .search-form .single-dowl_service .service-content input[type='text'], .single-dowl_service .service-content body.page-template-page-search-custom .st-ui-result .st-ui-type-heading, body.page-template-page-search-custom .st-ui-result .single-dowl_service .service-content .st-ui-type-heading, .single-dowl_service .service-content body.search .search-form input[type='text'], body.search .search-form .single-dowl_service .service-content input[type='text'] {
    text-align: center; }

.single-dowl_service .service-sub-practice-area {
  margin: 0 0 40px 0; }
  @media print, screen and (min-width: 40em) {
    .single-dowl_service .service-sub-practice-area {
      margin-bottom: 60px; } }
  .single-dowl_service .service-sub-practice-area:before {
    content: "";
    display: none;
    width: auto;
    height: 1px;
    max-width: 66.66667rem;
    margin: 0 14px 20px;
    border-top: 1px dotted #666; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-sub-practice-area:before {
        display: block; } }
    @media print, screen and (min-width: 64em) {
      .single-dowl_service .service-sub-practice-area:before {
        margin: 0 auto 30px; } }
  @media screen and (max-width: 39.9375em) {
    .single-dowl_service .service-sub-practice-area.service-sub-practice-area-1:before {
      display: block; } }
  .single-dowl_service .service-sub-practice-area .pa-photo {
    margin: 0 0 30px 0; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-sub-practice-area .pa-photo {
        margin-top: 7px; } }
  .single-dowl_service .service-sub-practice-area .pa-hdr-section {
    margin-bottom: 10px;
    text-align: left; }
  .single-dowl_service .service-sub-practice-area .pa-details-hdr {
    position: relative;
    z-index: 1;
    display: block;
    background: #fff; }
    @media screen and (max-width: 39.9375em) {
      .single-dowl_service .service-sub-practice-area .pa-details-hdr {
        position: relative;
        margin: 0;
        padding: 10px 0;
        border-top: 1px dotted #666;
        color: #d05511; }
        .no-ios .single-dowl_service .service-sub-practice-area .pa-details-hdr:hover {
          color: #ee6622;
          cursor: pointer; }
          .no-ios .single-dowl_service .service-sub-practice-area .pa-details-hdr:hover path {
            fill: #ee6622; }
        .single-dowl_service .service-sub-practice-area .pa-details-hdr.open {
          color: #b30; }
          .single-dowl_service .service-sub-practice-area .pa-details-hdr.open .icon-wrap {
            -webkit-transform: rotate(90deg);
                -ms-transform: rotate(90deg);
                    transform: rotate(90deg); }
          .single-dowl_service .service-sub-practice-area .pa-details-hdr.open path {
            fill: #b30; }
        .no-ios .single-dowl_service .service-sub-practice-area .pa-details-hdr.open:hover {
          color: #b30; }
          .no-ios .single-dowl_service .service-sub-practice-area .pa-details-hdr.open:hover path {
            fill: #b30; } }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-sub-practice-area .pa-details-hdr {
        cursor: text; } }
    .single-dowl_service .service-sub-practice-area .pa-details-hdr .icon-wrap {
      position: absolute;
      top: 12px;
      right: 10px;
      z-index: 1;
      display: inline-block;
      width: 8px;
      height: 18px;
      transition: all 0.2s ease; }
      @media print, screen and (min-width: 40em) {
        .single-dowl_service .service-sub-practice-area .pa-details-hdr .icon-wrap {
          display: none; } }
    .single-dowl_service .service-sub-practice-area .pa-details-hdr path {
      fill: #d05511; }
  @media screen and (max-width: 39.9375em) {
    .single-dowl_service .service-sub-practice-area .pa-details-last {
      border-bottom: 1px dotted #666; } }
  @media screen and (max-width: 39.9375em) {
    .single-dowl_service .service-sub-practice-area .pa-details-content {
      overflow-y: hidden;
      opacity: 0;
      max-height: 0;
      -webkit-transform: translate3d(0, -100%, 0);
              transform: translate3d(0, -100%, 0);
      transition: all 0.2s ease; }
      .single-dowl_service .service-sub-practice-area .pa-details-content.show {
        opacity: 1;
        max-height: 2000px;
        -webkit-transform: translate3d(0, 0, 0);
                transform: translate3d(0, 0, 0); } }
  .single-dowl_service .service-sub-practice-area .pa-details-content ul {
    list-style: none;
    margin-left: 1rem; }
    .single-dowl_service .service-sub-practice-area .pa-details-content ul ul, .single-dowl_service .service-sub-practice-area .pa-details-content ul ol {
      margin-bottom: .1rem; }
    .single-dowl_service .service-sub-practice-area .pa-details-content ul li:before {
      content: "\2022";
      /* Add content: \2022 is the CSS Code/unicode for a bullet */
      color: #999;
      /* Change the color */
      font-weight: bold;
      /* If you want it to be bold */
      display: inline-block;
      /* Needed to add space between the bullet and the text */
      width: 1.2em;
      /* Also needed for space (tweak if needed) */
      margin-left: -1.2em;
      /* Also needed for space (tweak if needed) */ }
    .single-dowl_service .service-sub-practice-area .pa-details-content ul li li:before {
      content: "\2014"; }
  .single-dowl_service .service-sub-practice-area .pa-details-content .toggle-services-list {
    display: none; }
  @media print, screen and (min-width: 40em) {
    .single-dowl_service .service-sub-practice-area .pa-details-content .toggle-services-list {
      position: relative;
      z-index: 2;
      display: block;
      margin: 0;
      font-size: 16px; }
    .single-dowl_service .service-sub-practice-area .pa-details-content .service-item-toggle {
      opacity: 0;
      max-height: 0;
      -webkit-transform: translate3d(0, -100%, 0);
              transform: translate3d(0, -100%, 0);
      transition: all 0.2s ease; }
    .single-dowl_service .service-sub-practice-area .pa-details-content.open .service-item-toggle {
      opacity: 1;
      max-height: 2000px;
      -webkit-transform: translate3d(0, 0, 0);
              transform: translate3d(0, 0, 0); } }
  .single-dowl_service .service-sub-practice-area .pa-desc {
    position: relative;
    z-index: 1;
    padding: 0 0 10px 0;
    background: #fff; }
    @media print, screen and (min-width: 40em) {
      .single-dowl_service .service-sub-practice-area .pa-desc {
        padding-bottom: 15px; } }

@media print, screen and (min-width: 40em) {
  .single-dowl_service .pa-lead-content {
    padding: 15px;
    background: #eee;
    font-size: 0.83333rem; } }

.single-dowl_service .pa-lead-content .row {
  margin-right: 0; }

.single-dowl_service .pa-lead-content .portrait-wrap {
  margin: 0 15px 0 0; }
  @media print, screen and (min-width: 40em) {
    .single-dowl_service .pa-lead-content .portrait-wrap {
      margin-right: 0; } }

.single-dowl_service .pa-lead-content .portrait {
  margin: 0 0 15px 0; }

.single-dowl_service .pa-lead-content .name {
  margin: 0 0 2px 0; }

.single-dowl_service .pa-lead-content .title {
  margin: 0 0 2px 0; }

.single-dowl_service .pa-lead-content .phone {
  margin: 0 0 2px 0; }

.single-dowl_service .pa-lead-content .project-meta-social {
  margin: 10px 0 0 0; }
  .single-dowl_service .pa-lead-content .project-meta-social a {
    display: inline-block;
    margin: 0 5px 0 0;
    vertical-align: middle; }
    .single-dowl_service .pa-lead-content .project-meta-social a path {
      transition: all 0.2s ease; }
    .no-ios .single-dowl_service .pa-lead-content .project-meta-social a:hover path {
      fill: #ee6622; }

.single-dowl_service .pa-lead-content a.linkedin {
  width: 19px;
  height: 20px; }
  @media print, screen and (min-width: 40em) {
    .single-dowl_service .pa-lead-content a.linkedin {
      width: 27px;
      height: 25px; } }

.single-dowl_service .pa-lead-content a.email {
  position: relative;
  top: 3px;
  width: 21px;
  height: 19px; }
  @media print, screen and (min-width: 40em) {
    .single-dowl_service .pa-lead-content a.email {
      width: 32px;
      height: 29px; } }

.single-dowl_service .service-team {
  margin: 20px 0 0 0;
  text-align: center; }

/* Pages: common elements ---------------------------- */
body.page .featured-photo {
  margin-top: 0;
  background-position: top center; }
  body.page .featured-photo:before {
    padding-top: 40%; }
    @media print, screen and (min-width: 40em) {
      body.page .featured-photo:before {
        padding-top: 20%; } }

body.page .page-intro {
  background: #eee; }

body.page .page-closing {
  background: #eee; }

/* Pages: custom search results ---------------------------- */
body.page-template-page-search-custom .search-form {
  margin: 0 0 30px 0;
  padding: 0 0 30px 0;
  border-bottom: 1px dotted #ccc; }
  @media print, screen and (min-width: 40em) {
    body.page-template-page-search-custom .search-form {
      margin-bottom: 40px;
      padding-bottom: 40px; } }
  body.page-template-page-search-custom .search-form .hdr-section {
    margin: 0 0 5px 0; }
  body.page-template-page-search-custom .search-form input[type='text'] {
    height: auto;
    padding: 2px 12px;
    background: #eee;
    border: none;
    border-radius: 8px;
    font-weight: bold; }
  body.page-template-page-search-custom .search-form button.submit {
    position: relative;
    top: 3px;
    display: block;
    width: 25px;
    height: 25px;
    margin: 0 auto;
    cursor: pointer; }
    @media print, screen and (min-width: 40em) {
      body.page-template-page-search-custom .search-form button.submit {
        top: 7px;
        width: 30px;
        height: 30px; } }
    body.page-template-page-search-custom .search-form button.submit path {
      fill: #777;
      transition: all 0.2s ease; }
    .no-ios body.page-template-page-search-custom .search-form button.submit:hover path {
      fill: #ee6622; }

body.page-template-page-search-custom .st-ui-injected-search-summary,
body.page-template-page-search-custom .st-search-summary {
  margin: 0 0 50px 0;
  text-align: center; }

body.page-template-page-search-custom .st-ui-result {
  margin: 0 0 30px 0;
  padding: 0 0 30px 0;
  border-bottom: 1px dotted #ccc; }
  @media print, screen and (min-width: 40em) {
    body.page-template-page-search-custom .st-ui-result {
      margin-bottom: 40px;
      padding-bottom: 40px; } }
  body.page-template-page-search-custom .st-ui-result em {
    background-color: #eee !important;
    padding-left: 5px;
    padding-right: 5px;
    box-shadow: none !important; }
  body.page-template-page-search-custom .st-ui-result .st-ui-type-heading {
    color: #d05511 !important; }
    body.page-template-page-search-custom .st-ui-result .st-ui-type-heading em {
      color: #ac3b03 !important; }
  body.page-template-page-search-custom .st-ui-result:hover .st-ui-type-heading {
    color: #ee6622 !important; }
  body.page-template-page-search-custom .st-ui-result .st-ui-type-detail {
    max-height: 59px;
    margin: 0;
    color: #333 !important; }
  body.page-template-page-search-custom .st-ui-result:hover .st-ui-type-detail {
    color: #333 !important; }
  body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold {
    margin: 0;
    color: #333 !important; }
  body.page-template-page-search-custom .st-ui-result .entry-content p, body.page-template-page-search-custom .st-ui-result .entry-content address, body.page-template-page-search-custom .st-ui-result .entry-content .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .entry-content .st-ui-type-detail-bold {
    margin-bottom: 0; }

body.page-template-page-search-custom .st-ui-container-footer_bar {
  margin: -30px 0 0 0;
  padding: 30px 0 0 0;
  border-top: 1px dotted #ccc; }

body.page-template-page-search-custom .st-ui-pagination,
body.page-template-page-search-custom .st-search-pagination {
  text-align: center; }
  body.page-template-page-search-custom .st-ui-pagination .st-ui-pagination-link,
  body.page-template-page-search-custom .st-ui-pagination .st-ui-pagination-number-link,
  body.page-template-page-search-custom .st-ui-pagination .st-result-pagination-link,
  body.page-template-page-search-custom .st-search-pagination .st-ui-pagination-link,
  body.page-template-page-search-custom .st-search-pagination .st-ui-pagination-number-link,
  body.page-template-page-search-custom .st-search-pagination .st-result-pagination-link {
    margin: 5px;
    padding: 4px 15px;
    text-align: center;
    font-size: 1rem; }
    body.page-template-page-search-custom .st-ui-pagination .st-ui-pagination-link.active,
    body.page-template-page-search-custom .st-ui-pagination .st-ui-pagination-number-link.active,
    body.page-template-page-search-custom .st-ui-pagination .st-result-pagination-link.active,
    body.page-template-page-search-custom .st-search-pagination .st-ui-pagination-link.active,
    body.page-template-page-search-custom .st-search-pagination .st-ui-pagination-number-link.active,
    body.page-template-page-search-custom .st-search-pagination .st-result-pagination-link.active {
      display: inline-block;
      background: #888;
      border-radius: 5px;
      color: #fff; }
    body.page-template-page-search-custom .st-ui-pagination .st-ui-pagination-link .st-ui-arrow,
    body.page-template-page-search-custom .st-ui-pagination .st-ui-pagination-number-link .st-ui-arrow,
    body.page-template-page-search-custom .st-ui-pagination .st-result-pagination-link .st-ui-arrow,
    body.page-template-page-search-custom .st-search-pagination .st-ui-pagination-link .st-ui-arrow,
    body.page-template-page-search-custom .st-search-pagination .st-ui-pagination-number-link .st-ui-arrow,
    body.page-template-page-search-custom .st-search-pagination .st-result-pagination-link .st-ui-arrow {
      position: relative;
      top: -3px;
      border-color: #d05511; }
    body.page-template-page-search-custom .st-ui-pagination .st-ui-pagination-link:hover .st-ui-arrow,
    body.page-template-page-search-custom .st-ui-pagination .st-ui-pagination-number-link:hover .st-ui-arrow,
    body.page-template-page-search-custom .st-ui-pagination .st-result-pagination-link:hover .st-ui-arrow,
    body.page-template-page-search-custom .st-search-pagination .st-ui-pagination-link:hover .st-ui-arrow,
    body.page-template-page-search-custom .st-search-pagination .st-ui-pagination-number-link:hover .st-ui-arrow,
    body.page-template-page-search-custom .st-search-pagination .st-result-pagination-link:hover .st-ui-arrow {
      border-color: #ee6622; }

/* Pages: search results ---------------------------- */
body.search .search-form {
  margin: 0 0 30px 0;
  padding: 0 0 30px 0;
  border-bottom: 1px dotted #ccc; }
  @media print, screen and (min-width: 40em) {
    body.search .search-form {
      margin-bottom: 40px;
      padding-bottom: 40px; } }
  body.search .search-form .hdr-section {
    margin: 0 0 5px 0; }
  body.search .search-form input[type='text'] {
    height: auto;
    padding: 2px 12px;
    background: #eee;
    border: none;
    border-radius: 8px;
    font-weight: bold; }
  body.search .search-form button.submit {
    position: relative;
    top: 3px;
    display: block;
    width: 25px;
    height: 25px;
    margin: 0 auto;
    cursor: pointer; }
    @media print, screen and (min-width: 40em) {
      body.search .search-form button.submit {
        top: 7px;
        width: 30px;
        height: 30px; } }
    body.search .search-form button.submit path {
      fill: #777;
      transition: all 0.2s ease; }
    .no-ios body.search .search-form button.submit:hover path {
      fill: #ee6622; }

body.search .search-result {
  margin: 0 0 30px 0;
  padding: 0 0 30px 0;
  border-bottom: 1px dotted #ccc; }
  @media print, screen and (min-width: 40em) {
    body.search .search-result {
      margin-bottom: 40px;
      padding-bottom: 40px; } }
  body.search .search-result .entry-content p, body.search .search-result .entry-content address, body.search .search-result .entry-content body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result body.search .search-result .entry-content .st-ui-type-detail, body.search .search-result .entry-content body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result body.search .search-result .entry-content .st-ui-type-detail-bold {
    margin-bottom: 0; }

/* Page: Listing template ---------------------------- */
body.page-template-page-listing .listing-hdr {
  margin: 0 0 30px 0; }
  @media print, screen and (min-width: 40em) {
    body.page-template-page-listing .listing-hdr {
      margin-bottom: 50px;
      text-align: center; } }

body.page-template-page-listing .accordion-listing {
  margin: 0 0 40px 0; }
  @media print, screen and (min-width: 40em) {
    body.page-template-page-listing .accordion-listing {
      margin-bottom: 75px; } }

body.page-template-page-listing .accordion-item-listing .accordion-title {
  padding-right: 20px; }
  @media print, screen and (min-width: 40em) {
    body.page-template-page-listing .accordion-item-listing .accordion-title {
      padding: 40px 20px 40px 0; } }

body.page-template-page-listing .accordion-item-listing .accordion-content {
  padding-bottom: 60px; }

/* Page: Careers ---------------------------- */
.page-template-page-careers .featured-photo {
  margin-bottom: 0; }

.page-template-page-careers .page-intro-link {
  margin: 30px 0 0 0; }
  .page-template-page-careers .page-intro-link .icon-wrap path {
    fill: #fff; }
  .page-template-page-careers .page-intro-link a:hover .icon-wrap path {
    fill: #fff; }
  .page-template-page-careers .page-intro-link a {
    margin-right: 25px;
    margin-bottom: 15px; }
    @media print, screen and (min-width: 64em) {
      .page-template-page-careers .page-intro-link a {
        margin-bottom: 0; } }

.page-template-page-careers .careers-slider {
  margin: 40px 0 20px; }
  @media print, screen and (min-width: 64em) {
    .page-template-page-careers .careers-slider {
      margin-top: 12px;
      margin-bottom: 0; } }

.page-template-page-careers .benefits-hdr {
  margin: 0 0 30px 0; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-careers .benefits-hdr {
      margin-bottom: 50px;
      text-align: center; } }

.page-template-page-careers .benefits {
  margin: 0 0 40px 0; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-careers .benefits {
      margin-bottom: 75px; } }

.page-template-page-careers .benefit .accordion-title {
  padding-right: 20px;
  padding-left: 50px; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-careers .benefit .accordion-title {
      padding: 40px 20px 40px 70px; } }
  .no-ios .page-template-page-careers .benefit .accordion-title:hover path.circle, .no-ios .page-template-page-careers .benefit .accordion-title:focus path.circle {
    fill: #b30; }

.page-template-page-careers .benefit .icon-wrap {
  position: absolute;
  top: 50%;
  z-index: 1;
  left: 0;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  display: inline-block;
  width: 40px;
  height: 40px;
  margin: 0 10px 0 0;
  vertical-align: middle;
  transition: all 0.3s ease; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-careers .benefit .icon-wrap {
      left: -5px;
      width: 56px;
      height: 56px; } }

.page-template-page-careers .benefit path.circle {
  fill: #d05511; }

.page-template-page-careers .benefit.is-active path.circle {
  fill: #b30; }

.page-template-page-careers .benefit .accordion-content {
  padding-bottom: 60px; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-careers .benefit .accordion-content {
      padding-left: 70px; } }

.page-template-page-careers .more-link,
.page-template-page-careers .less-link {
  display: block;
  width: 13px;
  height: 30px;
  width: 16px;
  height: 37px;
  margin: 30px auto 0;
  background: url(../images/icon-arw-slider.svg) no-repeat;
  opacity: .8;
  transition: all 0.2s ease; }
  .no-ios .page-template-page-careers .more-link:hover, .no-ios
  .page-template-page-careers .less-link:hover {
    opacity: 1; }

.page-template-page-careers .more-link {
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg); }

.page-template-page-careers .less-link {
  -webkit-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
          transform: rotate(-90deg); }

.page-template-page-careers .benefits-button-link .icon-wrap path {
  fill: #fff; }

.page-template-page-careers .benefits-button-link:hover .icon-wrap path {
  fill: #fff; }

/* Page: Charity Voting ---------------------------- */
body.page.page-template-page-charity-voting {
  /* hero photo */
  /* section default */
  /*
  padding: 40px 0;
  background: #fff;

  @include breakpoint(medium) {
    padding: 75px 0;
  }
  @include breakpoint(large) {
    padding: 100px 0;
  }
  */
  /* first row */
  /* second row */
  /* bottom banner */ }
  body.page.page-template-page-charity-voting .featured-photo {
    margin-bottom: 0; }
    body.page.page-template-page-charity-voting .featured-photo:before {
      padding-top: 26%; }
      @media print, screen and (min-width: 40em) {
        body.page.page-template-page-charity-voting .featured-photo:before {
          padding-top: 26%; } }
  body.page.page-template-page-charity-voting .page-charity-intro, body.page.page-template-page-charity-voting .page-charity-voting {
    padding: 50px 0 60px; }
    @media print, screen and (min-width: 64em) {
      body.page.page-template-page-charity-voting .page-charity-intro, body.page.page-template-page-charity-voting .page-charity-voting {
        padding: 70px 0 90px; } }
  body.page.page-template-page-charity-voting .page-charity-intro {
    background: #fff; }
    @media screen and (min-width: 1301px) {
      body.page.page-template-page-charity-voting .page-charity-intro {
        position: relative; }
        body.page.page-template-page-charity-voting .page-charity-intro:before, body.page.page-template-page-charity-voting .page-charity-intro:after {
          content: "";
          position: absolute;
          z-index: 1;
          display: block;
          width: 0;
          height: 0;
          border-style: solid;
          mix-blend-mode: multiply; }
          html.ie body.page.page-template-page-charity-voting .page-charity-intro:before, html.ie body.page.page-template-page-charity-voting .page-charity-intro:after {
            mix-blend-mode: unset; }
        body.page.page-template-page-charity-voting .page-charity-intro:before, body.page.page-template-page-charity-voting .page-charity-intro:after {
          bottom: 0; }
        body.page.page-template-page-charity-voting .page-charity-intro:before {
          left: 0;
          border-width: 100px 0 0 20px;
          border-color: transparent transparent transparent rgba(238, 238, 238, 0.6); } }
    @media screen and (min-width: 1301px) and (min-width: 40em) {
      body.page.page-template-page-charity-voting .page-charity-intro:before {
        border-width: 150px 0 0 30px; } }
    @media screen and (min-width: 1301px) and (min-width: 64em) {
      body.page.page-template-page-charity-voting .page-charity-intro:before {
        border-width: 260px 0 0 60px; } }
    @media screen and (min-width: 1301px) {
        body.page.page-template-page-charity-voting .page-charity-intro:after {
          right: 0;
          border-width: 0 0 100px 20px;
          border-color: transparent transparent rgba(238, 238, 238, 0.6) transparent; } }
    @media screen and (min-width: 1301px) and (min-width: 40em) {
      body.page.page-template-page-charity-voting .page-charity-intro:after {
        border-width: 0 0 150px 30px; } }
    @media screen and (min-width: 1301px) and (min-width: 64em) {
      body.page.page-template-page-charity-voting .page-charity-intro:after {
        border-width: 0 0 260px 60px; } }
  body.page.page-template-page-charity-voting .page-charity-intro__lead {
    max-width: 850px;
    margin: 0 auto;
    text-align: center; }
  body.page.page-template-page-charity-voting .page-charity-intro__lead + .charity-info {
    margin-top: 40px; }
    @media print, screen and (min-width: 40em) {
      body.page.page-template-page-charity-voting .page-charity-intro__lead + .charity-info {
        margin-top: 50px; } }
  body.page.page-template-page-charity-voting .charity-info {
    margin-bottom: 0; }
  body.page.page-template-page-charity-voting .page-charity-voting {
    background: #eee; }
    @media screen and (min-width: 1301px) {
      body.page.page-template-page-charity-voting .page-charity-voting {
        position: relative; }
        body.page.page-template-page-charity-voting .page-charity-voting:before, body.page.page-template-page-charity-voting .page-charity-voting:after {
          content: "";
          position: absolute;
          z-index: 1;
          display: block;
          width: 0;
          height: 0;
          border-style: solid;
          mix-blend-mode: multiply; }
          html.ie body.page.page-template-page-charity-voting .page-charity-voting:before, html.ie body.page.page-template-page-charity-voting .page-charity-voting:after {
            mix-blend-mode: unset; }
        body.page.page-template-page-charity-voting .page-charity-voting:before, body.page.page-template-page-charity-voting .page-charity-voting:after {
          top: 0; }
        body.page.page-template-page-charity-voting .page-charity-voting:before {
          left: 0;
          border-width: 100px 20px 0 0;
          border-color: rgba(204, 204, 204, 0.5) transparent transparent transparent; } }
    @media screen and (min-width: 1301px) and (min-width: 40em) {
      body.page.page-template-page-charity-voting .page-charity-voting:before {
        border-width: 150px 30px 0 0; } }
    @media screen and (min-width: 1301px) and (min-width: 64em) {
      body.page.page-template-page-charity-voting .page-charity-voting:before {
        border-width: 260px 60px 0 0; } }
    @media screen and (min-width: 1301px) {
        body.page.page-template-page-charity-voting .page-charity-voting:after {
          right: 0;
          border-width: 0 20px 100px 0;
          border-color: transparent rgba(204, 204, 204, 0.5) transparent transparent; } }
    @media screen and (min-width: 1301px) and (min-width: 40em) {
      body.page.page-template-page-charity-voting .page-charity-voting:after {
        border-width: 0 30px 150px 0; } }
    @media screen and (min-width: 1301px) and (min-width: 64em) {
      body.page.page-template-page-charity-voting .page-charity-voting:after {
        border-width: 0 60px 260px 0; } }
  body.page.page-template-page-charity-voting input[type='text'],
  body.page.page-template-page-charity-voting input[type='email'] {
    height: 2.5rem; }
  body.page.page-template-page-charity-voting .banner-btm {
    /* undo parallax */
    background-attachment: initial; }

/* Page: Contact ---------------------------- */
.page.page-template-page-contact .page-intro {
  padding: 40px 0; }
  @media print, screen and (min-width: 40em) {
    .page.page-template-page-contact .page-intro {
      padding: 50px 0; } }
  @media print, screen and (min-width: 64em) {
    .page.page-template-page-contact .page-intro {
      padding: 75px 0; } }
  .page.page-template-page-contact .page-intro h2, .page.page-template-page-contact .page-intro body.page-template-page-search-custom .search-form input[type='text'], body.page-template-page-search-custom .search-form .page.page-template-page-contact .page-intro input[type='text'], .page.page-template-page-contact .page-intro body.page-template-page-search-custom .st-ui-result .st-ui-type-heading, body.page-template-page-search-custom .st-ui-result .page.page-template-page-contact .page-intro .st-ui-type-heading, .page.page-template-page-contact .page-intro body.search .search-form input[type='text'], body.search .search-form .page.page-template-page-contact .page-intro input[type='text'] {
    text-align: center; }
  .page.page-template-page-contact .page-intro .search-offices {
    text-align: center; }

.page.page-template-page-contact .state-offices {
  margin: 0 0 40px 0; }
  @media print, screen and (min-width: 40em) {
    .page.page-template-page-contact .state-offices {
      margin-bottom: 60px; } }
  .page.page-template-page-contact .state-offices h2, .page.page-template-page-contact .state-offices body.page-template-page-search-custom .search-form input[type='text'], body.page-template-page-search-custom .search-form .page.page-template-page-contact .state-offices input[type='text'], .page.page-template-page-contact .state-offices body.page-template-page-search-custom .st-ui-result .st-ui-type-heading, body.page-template-page-search-custom .st-ui-result .page.page-template-page-contact .state-offices .st-ui-type-heading, .page.page-template-page-contact .state-offices body.search .search-form input[type='text'], body.search .search-form .page.page-template-page-contact .state-offices input[type='text'] {
    margin-bottom: 1rem;
    text-align: center; }

.page.page-template-page-contact .office .contact {
  font-weight: bold; }
  .page.page-template-page-contact .office .contact p, .page.page-template-page-contact .office .contact address, .page.page-template-page-contact .office .contact body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page.page-template-page-contact .office .contact .st-ui-type-detail, .page.page-template-page-contact .office .contact body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page.page-template-page-contact .office .contact .st-ui-type-detail-bold {
    margin: 0; }

.page.page-template-page-contact .office .map {
  margin: 25px 0 15px; }

.page.page-template-page-contact .office .responsive-embed {
  border: 1px solid #ccc; }

.page.page-template-page-contact .office .office-manager {
  background: #eee;
  margin: 15px 0;
  padding: 15px; }
  @media print, screen and (min-width: 40em) {
    .page.page-template-page-contact .office .office-manager {
      margin-top: 0;
      font-size: 0.83333rem; } }

.page.page-template-page-contact .office .portrait {
  margin: 0 0 15px 0; }

.page.page-template-page-contact .office .name {
  margin: 0 0 2px 0; }

.page.page-template-page-contact .office .title {
  margin: 0 0 2px 0; }

.page.page-template-page-contact .office .contact {
  margin: 0 0 15px 0; }

.page.page-template-page-contact .office .phone {
  margin: 0 0 2px 0; }

.page.page-template-page-contact .office .project-meta-social {
  margin: 10px 0 0 0; }

.page.page-template-page-contact .office a.email {
  display: inline-block;
  width: 35px;
  height: 32px; }
  .page.page-template-page-contact .office a.email path {
    transition: all 0.2s ease; }
  .no-ios .page.page-template-page-contact .office a.email:hover path {
    fill: #ee6622; }

.page.page-template-page-contact .contact-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10;
  padding: 15px 0;
  background: #eee;
  text-align: center; }
  .page.page-template-page-contact .contact-bar .hdr {
    margin: 0 0 0 0; }
  .page.page-template-page-contact .contact-bar p, .page.page-template-page-contact .contact-bar address, .page.page-template-page-contact .contact-bar body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page.page-template-page-contact .contact-bar .st-ui-type-detail, .page.page-template-page-contact .contact-bar body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page.page-template-page-contact .contact-bar .st-ui-type-detail-bold {
    margin: 0; }
  .page.page-template-page-contact .contact-bar .pipe {
    margin: 0 5px; }

.page.page-template-page-contact .site-footer {
  padding-bottom: 140px; }

/* Page: Company ---------------------------- */
.page-template-page-company .company-intro-media {
  margin: 0 0 30px 0; }
  .page-template-page-company .company-intro-media .responsive-embed,
  .page-template-page-company .company-intro-media .flex-video {
    padding-bottom: 56.3%; }

@media print, screen and (min-width: 64em) {
  .page-template-page-company .company-intro-content {
    margin-left: 15px; }
    .page-template-page-company .company-intro-content h2, .page-template-page-company .company-intro-content body.page-template-page-search-custom .search-form input[type='text'], body.page-template-page-search-custom .search-form .page-template-page-company .company-intro-content input[type='text'], .page-template-page-company .company-intro-content body.page-template-page-search-custom .st-ui-result .st-ui-type-heading, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-intro-content .st-ui-type-heading, .page-template-page-company .company-intro-content body.search .search-form input[type='text'], body.search .search-form .page-template-page-company .company-intro-content input[type='text'] {
      margin-top: -10px; } }

.page-template-page-company .company-values {
  position: relative;
  background: #eee; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-company .company-values {
      text-align: center; } }
  .page-template-page-company .company-values .hdr-section {
    margin-bottom: 10px; }

.page-template-page-company .company-value {
  position: relative;
  margin: 10px 0;
  padding: 20px;
  background: #fff;
  text-align: center;
  transition: all 0.3s ease; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-company .company-value {
      min-height: 250px;
      margin: 20px 0; } }
  @media print, screen and (min-width: 40em) {
    .no-ios .page-template-page-company .company-value:hover {
      box-shadow: 0 0 10px 0 rgba(51, 51, 51, 0.5); } }
  .page-template-page-company .company-value .decor {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    margin: 15px;
    border: 1px solid #d05511; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-value .decor {
        display: block; } }
  @media print, screen and (min-width: 40em) {
    .page-template-page-company .company-value .inner {
      position: absolute;
      top: 50%;
      left: 50%;
      z-index: 2;
      -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
      width: 80%; } }
  .page-template-page-company .company-value .title {
    margin: 0;
    text-transform: uppercase;
    font-family: "Roboto Condensed", sans-serif;
    color: #d05511;
    font-size: 1rem;
    transition: all 0.2s ease; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-value .title {
        font-size: 1.22222rem;
        transition: all 0.3s ease; } }
    @media print, screen and (min-width: 64em) {
      .page-template-page-company .company-value .title {
        font-size: 1.55556rem; } }
    .page-template-page-company .company-value .title a {
      display: block; }
  .page-template-page-company .company-value .desc {
    font-size: 0.77778rem;
    margin: 0;
    overflow-y: hidden;
    opacity: 0;
    max-height: 0;
    -webkit-transform: translate3d(0, -100%, 0);
            transform: translate3d(0, -100%, 0);
    transition: all 0.2s ease; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-value .desc {
        font-size: 0.83333rem; } }
    @media print, screen and (min-width: 64em) {
      .page-template-page-company .company-value .desc {
        font-size: 0.88889rem; } }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-value .desc {
        transition: all 0.3s ease; } }
  .page-template-page-company .company-value .toggle-flipcard-icon {
    position: relative;
    z-index: 2;
    display: none;
    width: 32px;
    height: 32px;
    margin: 0 auto; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-value .toggle-flipcard-icon {
        display: block;
        position: absolute;
        bottom: 10px;
        left: 50%;
        -webkit-transform: translateX(-50%);
            -ms-transform: translateX(-50%);
                transform: translateX(-50%); } }
    .page-template-page-company .company-value .toggle-flipcard-icon svg {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg);
      transition: all 0.2s ease; }
      @media print, screen and (min-width: 40em) {
        .page-template-page-company .company-value .toggle-flipcard-icon svg {
          transition: all 0.3s ease; } }
    .page-template-page-company .company-value .toggle-flipcard-icon line {
      stroke: #d05511; }
    .page-template-page-company .company-value .toggle-flipcard-icon:after {
      content: "";
      display: none;
      position: absolute;
      bottom: 5px;
      left: 50%;
      -webkit-transform: translateX(-50%);
          -ms-transform: translateX(-50%);
              transform: translateX(-50%);
      width: 60px;
      height: 1px;
      background: #fff; }
      @media print, screen and (min-width: 40em) {
        .page-template-page-company .company-value .toggle-flipcard-icon:after {
          display: block; } }
  @media print, screen and (min-width: 40em) {
    .page-template-page-company .company-value.js-hover {
      cursor: pointer;
      box-shadow: 0 0 10px 0 rgba(51, 51, 51, 0.5); }
      .page-template-page-company .company-value.js-hover a {
        color: #ee6622; }
      .page-template-page-company .company-value.js-hover .toggle-flipcard-icon line {
        stroke: #ee6622; } }
  .page-template-page-company .company-value.js-open {
    padding-top: 40px;
    padding-bottom: 40px;
    background: url(../images/bg-black-paper-555.png); }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-value.js-open {
        padding-top: 60px;
        padding-bottom: 60px; } }
    .page-template-page-company .company-value.js-open .decor {
      border-color: #999; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-value.js-open .inner {
        top: 20%;
        -webkit-transform: translate(-50%, 0%);
            -ms-transform: translate(-50%, 0%);
                transform: translate(-50%, 0%); } }
    .page-template-page-company .company-value.js-open .title {
      display: inline-block;
      margin: 0 0 8px 0;
      padding: 0 20px 8px 20px;
      color: #fff;
      border-bottom: 1px solid #999; }
      .page-template-page-company .company-value.js-open .title a {
        color: #fff; }
    .page-template-page-company .company-value.js-open .desc {
      color: #fff;
      opacity: 1;
      max-height: 300px;
      -webkit-transform: translate3d(0, 0, 0);
              transform: translate3d(0, 0, 0); }
    @media screen and (max-width: 39.9375em) {
      .page-template-page-company .company-value.js-open .toggle-flipcard-icon {
        position: absolute;
        top: 5px;
        right: 5px;
        z-index: 1;
        display: block; } }
    .page-template-page-company .company-value.js-open .toggle-flipcard-icon line {
      stroke: #fff; }
    .page-template-page-company .company-value.js-open .toggle-flipcard-icon svg {
      -webkit-transform: rotate(0);
          -ms-transform: rotate(0);
              transform: rotate(0); }
    .page-template-page-company .company-value.js-open .toggle-flipcard-icon:after {
      background: url(../images/bg-black-paper-555.png); }

.page-template-page-company .company-cap {
  text-align: center; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-company .company-cap {
      text-align: left; } }
  .page-template-page-company .company-cap .spacer-vert {
    margin-bottom: 40px;
    padding-bottom: 30px;
    border-bottom: 1px dotted #666; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-cap .spacer-vert {
        margin-bottom: 60px;
        padding-bottom: 60px; } }

.page-template-page-company .company-cap-graphic {
  display: block;
  max-width: 150px;
  margin: 0 auto 20px auto; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-company .company-cap-graphic {
      max-width: 100%;
      margin: 0; } }

.page-template-page-company .company-commit {
  text-align: center; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-company .company-commit {
      text-align: left; } }

.page-template-page-company .company-feature {
  position: relative;
  margin: 30px 0; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-company .company-feature {
      margin-left: 120px; } }

.page-template-page-company .company-feature-icon {
  display: block;
  width: 51px;
  height: 51px;
  margin: 0 auto 10px auto; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-company .company-feature-icon {
      position: absolute;
      top: 5px;
      left: -120px;
      z-index: 1;
      width: 68px;
      height: 68px;
      margin: 0; } }

.page-template-page-company .company-slider {
  margin: 0;
  background: #222; }
  .page-template-page-company .company-slider.slick-dotted.slick-slider {
    margin-bottom: 0px; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-company .company-slider .inner {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-flex-flow: row wrap;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap; } }
  .page-template-page-company .company-slider .slide-photo,
  .page-template-page-company .company-slider .slide-text {
    /*
      flex: 0 0 auto;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      width: 100%;
      */ }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-slider .slide-photo,
      .page-template-page-company .company-slider .slide-text {
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-direction: column;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-justify-content: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-align-items: center;
            -ms-flex-align: center;
                align-items: center;
        position: relative;
        width: 50%; } }
  .page-template-page-company .company-slider .slide-photo {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover; }
  .page-template-page-company .company-slider .overlay {
    min-width: 75%;
    margin: 0;
    color: #fff;
    font-family: "Saira", sans-serif;
    font-weight: bold;
    text-align: center;
    text-shadow: 0 0 8px rgba(0, 0, 0, 0.8); }
    @media screen and (max-width: 39.9375em) {
      .page-template-page-company .company-slider .overlay {
        padding: 30px 15px; } }
  .page-template-page-company .company-slider .slide-text {
    color: #fff;
    background: url(../images/bg-black-paper-555.png); }
    .page-template-page-company .company-slider .slide-text p, .page-template-page-company .company-slider .slide-text address, .page-template-page-company .company-slider .slide-text body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-slider .slide-text .st-ui-type-detail, .page-template-page-company .company-slider .slide-text body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-slider .slide-text .st-ui-type-detail-bold {
      font-size: 1.11111rem;
      margin: 0;
      padding: 60px 30px;
      text-align: center; }
      @media print, screen and (min-width: 40em) {
        .page-template-page-company .company-slider .slide-text p, .page-template-page-company .company-slider .slide-text address, .page-template-page-company .company-slider .slide-text body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-slider .slide-text .st-ui-type-detail, .page-template-page-company .company-slider .slide-text body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-slider .slide-text .st-ui-type-detail-bold {
          font-size: 1.22222rem; } }
      @media print, screen and (min-width: 64em) {
        .page-template-page-company .company-slider .slide-text p, .page-template-page-company .company-slider .slide-text address, .page-template-page-company .company-slider .slide-text body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-slider .slide-text .st-ui-type-detail, .page-template-page-company .company-slider .slide-text body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-slider .slide-text .st-ui-type-detail-bold {
          font-size: 1.33333rem; } }
      @media print, screen and (min-width: 40em) {
        .page-template-page-company .company-slider .slide-text p, .page-template-page-company .company-slider .slide-text address, .page-template-page-company .company-slider .slide-text body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-slider .slide-text .st-ui-type-detail, .page-template-page-company .company-slider .slide-text body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-slider .slide-text .st-ui-type-detail-bold {
          max-width: 450px;
          text-align: left; } }
      @media print, screen and (min-width: 64em) {
        .page-template-page-company .company-slider .slide-text p, .page-template-page-company .company-slider .slide-text address, .page-template-page-company .company-slider .slide-text body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-slider .slide-text .st-ui-type-detail, .page-template-page-company .company-slider .slide-text body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-slider .slide-text .st-ui-type-detail-bold {
          padding: 160px 30px; } }
  .page-template-page-company .company-slider .slick-dots {
    position: relative;
    bottom: auto;
    padding: 5px 0 10px;
    background: #222; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-slider .slick-dots {
        top: -3px;
        padding: 0; } }

.page-template-page-company .company-history {
  position: relative;
  background: #222; }
  @media screen and (max-width: 39.9375em) {
    .page-template-page-company .company-history {
      padding-top: 50px; } }
  .page-template-page-company .company-history:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    width: 80%;
    height: 80%; }
  .page-template-page-company .company-history .company-history-intro {
    position: relative;
    z-index: 2;
    margin: 0 0 30px 0;
    text-align: center; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-history .company-history-intro {
        margin-bottom: 60px; } }
    .page-template-page-company .company-history .company-history-intro h2, .page-template-page-company .company-history .company-history-intro body.page-template-page-search-custom .search-form input[type='text'], body.page-template-page-search-custom .search-form .page-template-page-company .company-history .company-history-intro input[type='text'], .page-template-page-company .company-history .company-history-intro body.page-template-page-search-custom .st-ui-result .st-ui-type-heading, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-history .company-history-intro .st-ui-type-heading, .page-template-page-company .company-history .company-history-intro body.search .search-form input[type='text'], body.search .search-form .page-template-page-company .company-history .company-history-intro input[type='text'], .page-template-page-company .company-history .company-history-intro p, .page-template-page-company .company-history .company-history-intro address, .page-template-page-company .company-history .company-history-intro body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-history .company-history-intro .st-ui-type-detail, .page-template-page-company .company-history .company-history-intro body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-template-page-company .company-history .company-history-intro .st-ui-type-detail-bold {
      color: #fff; }
  .page-template-page-company .company-history .timeline-mobile {
    position: relative;
    z-index: 2;
    margin: 20px 0 50px; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-history .timeline-mobile {
        display: none; } }
    .page-template-page-company .company-history .timeline-mobile .custom_story_lbl {
      font-size: 21px;
      color: #ff7733; }
  .page-template-page-company .company-history .timeline-desktop {
    position: relative;
    z-index: 2;
    display: none; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-history .timeline-desktop {
        display: block; } }
  .page-template-page-company .company-history .dowl-timeline {
    margin-bottom: 30px; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-history .dowl-timeline {
        margin-bottom: 60px; } }
    .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav {
      position: relative; }
      .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav:before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;
        z-index: 1;
        -webkit-transform: translateX(-50%);
            -ms-transform: translateX(-50%);
                transform: translateX(-50%);
        width: 6px;
        height: 100%;
        border-radius: 3px;
        background: #ff7733; }
      .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a {
        position: relative;
        display: block;
        padding: 40px 0;
        color: #777;
        font-family: "Saira", sans-serif;
        font-weight: bold;
        font-size: 0.88889rem;
        line-height: 1.1;
        transition: all 0.2s ease; }
        @media print, screen and (min-width: 40em) {
          .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a {
            font-size: 1.11111rem; } }
        @media print, screen and (min-width: 64em) {
          .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a {
            font-size: 1.22222rem; } }
        .no-ios .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-hover {
          color: #ff7733; }
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-hover:before, .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-hover:after {
          width: 20px;
          height: 20px; }
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-hover:before {
          left: -10px; }
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-hover:after {
          right: -10px; }
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-open {
          color: #ff7733;
          font-size: 150%; }
          @media print, screen and (min-width: 64em) {
            .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-open {
              font-size: 160%; } }
          .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-open:before, .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-open:after {
            width: 25px;
            height: 25px; }
          .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-open:before {
            left: -12px; }
          .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-open:after {
            right: -13px; }
          .no-ios .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-open {
            color: #ff7733; }
            .no-ios .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-open:before, .no-ios .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.js-open:after {
              border: none;
              background: #ff7733; }
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a:before, .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a:after {
          content: "";
          position: absolute;
          z-index: 2;
          top: 50%;
          -webkit-transform: translateY(-50%);
              -ms-transform: translateY(-50%);
                  transform: translateY(-50%);
          display: inline-block;
          width: 15px;
          height: 15px;
          border: 3px solid #ff7733;
          background: #fff;
          border-radius: 50%;
          vertical-align: middle;
          transition: all 0.2s ease; }
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a:before {
          left: -.41rem;
          margin-right: 15px; }
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a:after {
          right: -.42rem;
          margin-left: 15px; }
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.even, .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.odd {
          width: 50%; }
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.even {
          padding-left: 0;
          padding-right: 20px;
          text-align: right; }
          .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.even:before {
            display: none; }
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.odd {
          margin-left: auto;
          padding-right: 0;
          padding-left: 20px; }
          .page-template-page-company .company-history .dowl-timeline .dowl-timeline-nav a.odd:after {
            display: none; }
    .page-template-page-company .company-history .dowl-timeline .dowl-timeline-entries {
      position: relative;
      background: radial-gradient(circle farthest-side, #666, #222 60%); }
      @media print, screen and (min-width: 64em) {
        .page-template-page-company .company-history .dowl-timeline .dowl-timeline-entries {
          background: radial-gradient(circle farthest-side, #666, #222); } }
    .page-template-page-company .company-history .dowl-timeline .dowl-timeline-entry {
      position: relative;
      overflow-y: hidden;
      opacity: 0;
      max-height: 0;
      transition: opacity 0.5s ease; }
      .page-template-page-company .company-history .dowl-timeline .dowl-timeline-entry.js-open {
        opacity: 1;
        max-height: 1200px; }
    .page-template-page-company .company-history .dowl-timeline .dowl-timeline-photo {
      width: 80%; }
    .page-template-page-company .company-history .dowl-timeline .dowl-timeline-content {
      position: relative;
      z-index: 2;
      width: 80%;
      margin: -15% 0 0 auto;
      padding: 30px 30px 60px 30px;
      background: #fff; }
      .page-template-page-company .company-history .dowl-timeline .dowl-timeline-content:after {
        content: "";
        position: absolute;
        bottom: 0;
        right: 0;
        z-index: 1;
        display: block;
        width: 20%;
        height: 6px;
        background: #e15b2d; }
      .page-template-page-company .company-history .dowl-timeline .dowl-timeline-content time {
        display: inline-block;
        margin: 0 0 30px 0;
        padding: 10px 20px;
        color: #fff;
        font-family: "Saira", sans-serif;
        font-weight: bold;
        line-height: 1;
        background: #e15b2d;
        font-size: 0.88889rem; }
        @media print, screen and (min-width: 40em) {
          .page-template-page-company .company-history .dowl-timeline .dowl-timeline-content time {
            font-size: 1.11111rem; } }
        @media print, screen and (min-width: 64em) {
          .page-template-page-company .company-history .dowl-timeline .dowl-timeline-content time {
            font-size: 1.22222rem; } }

.page-template-page-company .company-future {
  position: relative;
  text-align: center; }
  @media screen and (max-width: 39.9375em) {
    .page-template-page-company .company-future {
      padding-top: 60px; } }
  .page-template-page-company .company-future:before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    z-index: 1;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 20px 20px 0 20px;
    border-color: #222 transparent transparent transparent; }
  .page-template-page-company .company-future .company-future-graphic-desktop {
    display: none;
    margin-bottom: 50px; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-future .company-future-graphic-desktop {
        display: block; } }
  .page-template-page-company .company-future .company-future-graphic-mobile {
    margin-top: 40px;
    padding-bottom: 25px; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-company .company-future .company-future-graphic-mobile {
        display: none; } }
    .page-template-page-company .company-future .company-future-graphic-mobile .simplebar-wrapper img {
      display: block;
      width: 580px; }
      .ios .page-template-page-company .company-future .company-future-graphic-mobile .simplebar-wrapper img {
        padding: 0 20px 0 0; }
  .page-template-page-company .company-future .link-wrap {
    margin-top: 60px; }

/* Pages: People pages common elements ---------------------------- */
.page-template-page-people-pals .featured-photo,
.page-template-page-people-corp .featured-photo {
  margin-bottom: 0; }

/* Pages: People subnav */
.people-pg-nav {
  background: #eee; }
  .people-pg-nav .menu a {
    margin: 0 1px;
    padding: 20px 5px 15px 5px;
    text-transform: uppercase;
    border-bottom: 3px solid transparent;
    font-family: "Saira", sans-serif;
    font-weight: bold;
    font-size: 0.77778rem; }
    @media print, screen and (min-width: 40em) {
      .people-pg-nav .menu a {
        margin: 0 15px;
        padding: 34px 5px 30px 5px;
        font-size: 1rem;
        border-bottom-width: 4px; } }
    @media print, screen and (min-width: 64em) {
      .people-pg-nav .menu a {
        font-size: 1.11111rem; } }
  .people-pg-nav .menu .is-active > a {
    color: #b30;
    background: transparent;
    border-bottom-color: #b30; }

/* content */
/* Page: People PALS ---------------------------- */
.page-template-page-people-pals .top-hdr-section {
  text-align: center; }

.page-template-page-people-pals .accordion-content {
  padding-top: 20px; }

.page-template-page-people-pals .accordion-title {
  padding: 1.5rem 0; }

.page-template-page-people-pals .practice-lead .practice-leader {
  margin-left: -0.83333rem;
  margin-right: -0.83333rem;
  margin-bottom: 30px;
  padding-left: 0.83333rem;
  padding-right: 0.83333rem;
  padding-bottom: 20px;
  background: linear-gradient(to bottom, #fff 0%, #fff 10%, #eee 11%, #eee 100%); }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .practice-lead .practice-leader {
      margin: 0;
      padding: 30px;
      background: #eee; } }

.page-template-page-people-pals .practice-lead .portrait {
  margin: 0 0 15px 0; }

.page-template-page-people-pals .practice-lead .name {
  margin: 0 0 10px 0;
  line-height: 1.2; }

.page-template-page-people-pals .practice-lead .title {
  margin: 0 0 10px 0;
  line-height: 1.2; }

.page-template-page-people-pals .practice-lead .phone {
  margin: 0 0 10px 0;
  line-height: 1.2; }

.page-template-page-people-pals .practice-lead .project-meta-social {
  margin: 10px 0 10px 0; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .practice-lead .project-meta-social {
      margin: 20px 0 20px 0; } }
  .page-template-page-people-pals .practice-lead .project-meta-social a {
    display: inline-block;
    margin: 0 5px 0 0;
    vertical-align: middle; }
    .page-template-page-people-pals .practice-lead .project-meta-social a path {
      transition: all 0.2s ease; }
    .no-ios .page-template-page-people-pals .practice-lead .project-meta-social a:hover path {
      fill: #ee6622; }

.page-template-page-people-pals .practice-lead a.linkedin {
  width: 19px;
  height: 20px; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .practice-lead a.linkedin {
      width: 27px;
      height: 25px; } }

.page-template-page-people-pals .practice-lead a.email {
  position: relative;
  top: 3px;
  width: 21px;
  height: 19px; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .practice-lead a.email {
      width: 32px;
      height: 29px; } }

.page-template-page-people-pals .practice-lead .bio {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px dotted #666; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .practice-lead .bio {
      margin-top: 35px;
      padding-top: 30px; } }

@media print, screen and (min-width: 40em) {
  .page-template-page-people-pals .team-leads {
    padding-left: 10px; } }

@media print, screen and (min-width: 64em) {
  .page-template-page-people-pals .team-leads {
    padding-left: 30px; } }

.page-template-page-people-pals .team-leads .team-lead {
  margin: 0 0 40px 0; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .team-leads .team-lead {
      margin-bottom: 60px; } }
  .page-template-page-people-pals .team-leads .team-lead:last-child {
    margin-bottom: 0; }

.page-template-page-people-pals .team-leads .portrait-wrap {
  margin: 0 15px 15px 0; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .team-leads .portrait-wrap {
      margin-right: 20px; } }

.page-template-page-people-pals .team-leads .name {
  margin: 0 0 10px 0;
  line-height: 1.2; }

.page-template-page-people-pals .team-leads .title {
  margin: 0 0 10px 0;
  line-height: 1.2; }

.page-template-page-people-pals .team-leads .phone {
  margin: 0 0 10px 0;
  line-height: 1.2; }

.page-template-page-people-pals .team-leads .project-meta-social {
  margin: 10px 0 20px 0; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .team-leads .project-meta-social {
      margin: 20px 0 20px 0; } }
  .page-template-page-people-pals .team-leads .project-meta-social a {
    display: inline-block;
    margin: 0 5px 0 0;
    vertical-align: middle; }
    .page-template-page-people-pals .team-leads .project-meta-social a path {
      transition: all 0.2s ease; }
    .no-ios .page-template-page-people-pals .team-leads .project-meta-social a:hover path {
      fill: #ee6622; }

.page-template-page-people-pals .team-leads a.linkedin {
  width: 19px;
  height: 20px; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .team-leads a.linkedin {
      width: 27px;
      height: 25px; } }

.page-template-page-people-pals .team-leads a.email {
  position: relative;
  top: 3px;
  width: 21px;
  height: 19px; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .team-leads a.email {
      width: 32px;
      height: 29px; } }

.page-template-page-people-pals .service-link {
  margin: 30px 0 30px 0;
  text-align: center; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-pals .service-link {
      margin: 60px 0 60px 0; } }

/* Page: People Corporate ---------------------------- */
.page-template-page-people-corp .staff-corporate {
  text-align: center; }

.page-template-page-people-corp .staff-preview {
  display: inline-block;
  width: 45.5%;
  margin: 3% 1.5%;
  text-align: left;
  vertical-align: top; }
  .page-template-page-people-corp .staff-preview::before, .page-template-page-people-corp .staff-preview::after {
    display: table;
    content: ' '; }
  .page-template-page-people-corp .staff-preview::after {
    clear: both; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-corp .staff-preview {
      width: 46.5%; } }
  @media print, screen and (min-width: 64em) {
    .page-template-page-people-corp .staff-preview {
      width: 30%;
      margin: 1%; } }
  .no-ios .page-template-page-people-corp .staff-preview a:hover .portrait {
    -webkit-filter: grayscale(0%);
            filter: grayscale(0%); }
  .page-template-page-people-corp .staff-preview .portrait {
    display: block;
    margin: 0 0 15px 0;
    -webkit-filter: grayscale(100%);
            filter: grayscale(100%);
    transition: all 0.2s ease; }
  .page-template-page-people-corp .staff-preview .js-open .staff-meta {
    padding: 0 0 0 10px;
    border-left: 5px solid #b30; }
    @media print, screen and (min-width: 64em) {
      .page-template-page-people-corp .staff-preview .js-open .staff-meta {
        padding-left: 18px;
        border-left-width: 7px; } }
  .page-template-page-people-corp .staff-preview .js-open .portrait {
    -webkit-filter: grayscale(0%);
            filter: grayscale(0%); }
  .page-template-page-people-corp .staff-preview .js-open .name {
    color: #b30; }
  .page-template-page-people-corp .staff-preview .js-open .title {
    color: #333; }
  .page-template-page-people-corp .staff-preview .staff-meta {
    transition: all 0.2s ease; }
  .page-template-page-people-corp .staff-preview .name {
    margin: 0 0 5px 0;
    color: #666;
    line-height: 1.2;
    font-weight: bold;
    font-size: 0.94444rem;
    transition: all 0.2s ease; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-people-corp .staff-preview .name {
        font-size: 1rem; } }
    @media print, screen and (min-width: 64em) {
      .page-template-page-people-corp .staff-preview .name {
        font-size: 1.05556rem; } }
  .page-template-page-people-corp .staff-preview .title {
    margin: 0;
    color: #666;
    line-height: 1.2;
    font-size: 0.83333rem;
    transition: all 0.2s ease; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-people-corp .staff-preview .title {
        font-size: 0.88889rem; } }
    @media print, screen and (min-width: 64em) {
      .page-template-page-people-corp .staff-preview .title {
        font-size: 0.94444rem; } }

.page-template-page-people-corp .staff-full {
  float: left;
  position: relative;
  left: 2.6%;
  display: block;
  width: 95.1%;
  height: 100%;
  margin: 20px auto 40px;
  padding: 20px;
  background: #eee;
  text-align: left; }
  .page-template-page-people-corp .staff-full::before, .page-template-page-people-corp .staff-full::after {
    display: table;
    content: ' '; }
  .page-template-page-people-corp .staff-full::after {
    clear: both; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-corp .staff-full {
      left: 1.9%;
      width: 96.3%;
      padding: 30px; } }
  @media print, screen and (min-width: 64em) {
    .page-template-page-people-corp .staff-full {
      left: 2.7%;
      width: 94.6%; } }

.page-template-page-people-corp .staff-contact {
  position: relative; }
  .page-template-page-people-corp .staff-contact:after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    margin: 20px 0 20px 0;
    border-top: 1px dotted #666; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-people-corp .staff-contact:after {
        position: absolute;
        right: -15px;
        top: 0;
        bottom: 0;
        z-index: 1;
        width: 1px;
        height: 100%;
        margin: 0;
        border-top: none;
        border-right: 1px dotted #666; } }
  .page-template-page-people-corp .staff-contact .phone {
    margin-bottom: 5px; }

.page-template-page-people-corp .staff-bio p, .page-template-page-people-corp .staff-bio address, .page-template-page-people-corp .staff-bio body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-template-page-people-corp .staff-bio .st-ui-type-detail, .page-template-page-people-corp .staff-bio body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-template-page-people-corp .staff-bio .st-ui-type-detail-bold {
  font-size: 0.77778rem; }
  @media print, screen and (min-width: 40em) {
    .page-template-page-people-corp .staff-bio p, .page-template-page-people-corp .staff-bio address, .page-template-page-people-corp .staff-bio body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-template-page-people-corp .staff-bio .st-ui-type-detail, .page-template-page-people-corp .staff-bio body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-template-page-people-corp .staff-bio .st-ui-type-detail-bold {
      font-size: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .page-template-page-people-corp .staff-bio p, .page-template-page-people-corp .staff-bio address, .page-template-page-people-corp .staff-bio body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-template-page-people-corp .staff-bio .st-ui-type-detail, .page-template-page-people-corp .staff-bio body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-template-page-people-corp .staff-bio .st-ui-type-detail-bold {
      font-size: 0.88889rem; } }

.page-template-page-people-corp .project-meta-social {
  margin: 0; }
  .page-template-page-people-corp .project-meta-social a {
    display: inline-block;
    width: 24px;
    height: 22px;
    margin: 0 10px 0 0; }
    @media print, screen and (min-width: 40em) {
      .page-template-page-people-corp .project-meta-social a {
        width: 29px;
        height: 26px; } }
    .page-template-page-people-corp .project-meta-social a.email {
      position: relative;
      top: 4px; }
    .no-ios .page-template-page-people-corp .project-meta-social a:hover path {
      fill: #ee6622; }

/* Bulletin ---------------------------- */
.bulletin {
  position: fixed;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 100;
  padding: 40px;
  background: #b30;
  text-align: center;
  color: #fff;
  transition: all 0.2s ease; }
  .bulletin.js-hide {
    -webkit-transform: translateY(120%);
        -ms-transform: translateY(120%);
            transform: translateY(120%);
    opacity: 0; }
  .bulletin a {
    color: #fbab84;
    text-decoration: underline; }
    .bulletin a:hover {
      color: #fdbc9d;
      text-decoration: underline; }
  .bulletin .bulletin__msg {
    max-width: 1170px;
    margin: 0 auto; }
  .bulletin p:last-child, .bulletin address:last-child, .bulletin body.page-template-page-search-custom .st-ui-result .st-ui-type-detail:last-child, body.page-template-page-search-custom .st-ui-result .bulletin .st-ui-type-detail:last-child, .bulletin body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold:last-child, body.page-template-page-search-custom .st-ui-result .bulletin .st-ui-type-detail-bold:last-child {
    margin-bottom: 0; }

.bulletin__close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 32px;
  height: 32px;
  -webkit-filter: brightness(0) saturate(100%) invert(89%) sepia(15%) saturate(5606%) hue-rotate(307deg) brightness(109%) contrast(104%);
          filter: brightness(0) saturate(100%) invert(89%) sepia(15%) saturate(5606%) hue-rotate(307deg) brightness(109%) contrast(104%);
  transition: all 0.2s ease; }
  .bulletin__close:hover {
    -webkit-filter: brightness(0) saturate(100%) invert(99%) sepia(54%) saturate(3964%) hue-rotate(295deg) brightness(101%) contrast(112%);
            filter: brightness(0) saturate(100%) invert(99%) sepia(54%) saturate(3964%) hue-rotate(295deg) brightness(101%) contrast(112%);
    cursor: pointer; }

/* Footer ---------------------------- */
.site-footer {
  margin: 0;
  padding: 30px 0;
  background: #333;
  text-align: center;
  /* add room for bulletin */ }
  @media print, screen and (min-width: 40em) {
    .site-footer {
      text-align: left; } }
  @media print, screen and (min-width: 64em) {
    .site-footer {
      padding: 40px 0; } }
  .site-footer.site-footer--bulletin-sm {
    padding-bottom: 300px; }
    @media print, screen and (min-width: 64em) {
      .site-footer.site-footer--bulletin-sm {
        padding-bottom: 200px; } }
  .site-footer.site-footer--bulletin-md {
    padding-bottom: 400px; }
    @media print, screen and (min-width: 64em) {
      .site-footer.site-footer--bulletin-md {
        padding-bottom: 250px; } }
  .site-footer.site-footer--bulletin-lg {
    padding-bottom: 550px; }
    @media print, screen and (min-width: 64em) {
      .site-footer.site-footer--bulletin-lg {
        padding-bottom: 350px; } }

.ftr-nav {
  margin: 0 0 20px 0; }
  .ftr-nav a {
    padding: 10px 30px 10px 0;
    color: #fff;
    font-size: 0.88889rem;
    text-transform: uppercase;
    transition: all 0.2s ease; }
    .ftr-nav a:hover {
      color: #fff; }
    .no-ios .ftr-nav a:hover {
      color: #ff7733; }
    @media print, screen and (min-width: 40em) {
      .ftr-nav a {
        font-size: 0.94444rem; } }
    @media print, screen and (min-width: 64em) {
      .ftr-nav a {
        font-size: 1rem; } }
  .ftr-nav .menu .is-active > a {
    background: transparent; }
  .ftr-nav li:last-child a {
    padding-right: 0; }

.ftr-desc,
.ftr-legal {
  margin: 0 0 5px 0;
  color: #eee; }
  @media print, screen and (min-width: 64em) {
    .ftr-desc,
    .ftr-legal {
      margin-bottom: 10px; } }

.ftr-desc {
  margin-bottom: 15px;
  font-size: 0.66667rem; }
  @media print, screen and (min-width: 40em) {
    .ftr-desc {
      margin-bottom: 10px; } }
  @media print, screen and (min-width: 40em) {
    .ftr-desc {
      font-size: 0.72222rem; } }
  @media print, screen and (min-width: 64em) {
    .ftr-desc {
      font-size: 0.77778rem; } }

.ftr-legal {
  font-size: 0.55556rem; }
  @media print, screen and (min-width: 40em) {
    .ftr-legal {
      font-size: 0.61111rem; } }
  @media print, screen and (min-width: 64em) {
    .ftr-legal {
      font-size: 0.66667rem; } }
  .ftr-legal a {
    color: #fff;
    text-decoration: underline;
    transition: all 0.2s ease; }
    .ftr-legal a:hover {
      color: #fff;
      text-decoration: underline; }
    .no-ios .ftr-legal a:hover {
      color: #ff7733;
      text-decoration: underline; }

.ftr-social {
  margin: 0 0 25px 0;
  text-align: center; }
  @media print, screen and (min-width: 40em) {
    .ftr-social {
      margin-bottom: 0;
      text-align: right; } }
  .ftr-social a {
    display: inline-block;
    width: 10px;
    height: 10px;
    margin: 5px 10px;
    vertical-align: middle; }
    .ftr-social a.facebook {
      width: 13px;
      height: 25px; }
    .ftr-social a.youtube {
      width: 25px;
      height: 17px; }
    .ftr-social a.glassdoor {
      width: 17px;
      height: 23px; }
    .ftr-social a.twitter {
      width: 24px;
      height: 19px; }
    .ftr-social a.linkedin {
      width: 20px;
      height: 19px; }
    .ftr-social a.instagram {
      width: 21px;
      height: 21px; }
    .ftr-social a.flickr {
      width: 22px;
      height: 10px; }
    .ftr-social a.vimeo {
      width: 20px;
      height: 18px; }
    .ftr-social a svg {
      display: block; }
    .ftr-social a path {
      fill: #666;
      transition: all 0.2s ease; }
    .no-ios .ftr-social a:hover path {
      fill: #ff7733; }

body.js-mobile-menu-active .main-content,
body.js-mobile-menu-active .site-footer {
  transition: all 0.2s ease;
  opacity: .1; }

/* make room for fixed nav */
body {
  padding-top: 66px; }
  @media print, screen and (min-width: 64em) {
    body {
      padding-top: 77px; } }

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  padding: 12px 0;
  background: #fff; }
  @media print, screen and (min-width: 64em) {
    .site-header {
      padding: 24px 0 0 0; } }
  .site-header:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -10px;
    right: 0;
    z-index: 5;
    display: block;
    width: 100%;
    height: 10px;
    background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0) 60%); }

/* push down for wordpress admin bar */
body.admin-bar .site-header {
  top: 32px; }

.site-header-logo-wrap {
  text-align: center; }

.site-header-logo {
  display: block;
  width: 120px;
  height: 42px;
  margin: 0 auto;
  transition: all 0.2s ease; }
  @media print, screen and (min-width: 40em) {
    .site-header-logo {
      width: 140px;
      height: 49px; } }
  @media print, screen and (min-width: 64em) {
    .site-header-logo {
      position: relative;
      top: -12px;
      width: 150px;
      height: 53px;
      margin: 0 auto 0 15px; } }
  .site-header-logo svg {
    overflow: visible; }
  .site-header-logo path {
    fill: #222; }
  .no-ios .site-header-logo svg,
  .no-ios .site-header-logo polygon,
  .no-ios .site-header-logo path {
    transition: all 0.2s ease; }
  .no-ios .site-header-logo:hover svg {
    -webkit-transform: scale(0.94);
        -ms-transform: scale(0.94);
            transform: scale(0.94); }
  .no-ios .site-header-logo:hover polygon.st1 {
    fill: #888; }
  .no-ios .site-header-logo:hover polygon.st2 {
    fill: #444; }

.site-header-search-toggle {
  display: inline-block;
  width: 21px;
  height: 21px;
  margin: 10px 15px 0 0; }
  @media print, screen and (min-width: 40em) {
    .site-header-search-toggle {
      margin-top: 14px; } }
  @media (min-width: 1024px) {
    .site-header-search-toggle {
      position: relative;
      top: 5px;
      margin-top: 0px;
      margin-left: 50px;
      /* divider */ }
      .site-header-search-toggle:before {
        content: '';
        position: absolute;
        top: 4px;
        left: -40px;
        z-index: 1;
        display: block;
        width: 1px;
        height: 15px;
        border-left: 1px dotted #666; } }
  @media (min-width: 1060px) {
    .site-header-search-toggle {
      margin-left: 70px; }
      .site-header-search-toggle:before {
        left: -50px; } }
  .site-header-search-toggle svg {
    overflow: visible; }
  .site-header-search-toggle:hover {
    cursor: pointer; }
  .no-ios .site-header-search-toggle path {
    transition: all 0.4s ease; }
  .no-ios .site-header-search-toggle:hover path {
    fill: #ff7733; }

.site-header-mobile {
  display: block; }
  @media print, screen and (min-width: 64em) {
    .site-header-mobile {
      display: none; } }

.site-header-menu-toggle-wrap {
  margin-left: 15px;
  text-align: left; }
  @media print, screen and (min-width: 40em) {
    .site-header-menu-toggle-wrap {
      margin-left: 30px; } }

.site-header-menu-toggle {
  display: block;
  width: 30px;
  height: 38px;
  margin: 4px 0 0 0; }
  @media print, screen and (min-width: 40em) {
    .site-header-menu-toggle {
      margin-top: 8px; } }
  .site-header-menu-toggle:hover {
    cursor: pointer; }
  .no-ios .site-header-menu-toggle path {
    transition: all 0.2s ease; }
  .no-ios .site-header-menu-toggle:hover path {
    fill: #ff7733; }

.site-header-mobile-menu {
  position: fixed;
  top: 66px !important;
  background: #333;
  border: none;
  /* menu */
  /* submenu */
  /* submenu toggle */ }
  @media screen and (max-width: 39.9375em) {
    .site-header-mobile-menu {
      left: 0 !important;
      right: 0 !important;
      width: 100%; } }
  @media print, screen and (min-width: 40em) {
    .site-header-mobile-menu {
      top: 73px !important; } }
  @media print, screen and (min-width: 64em) {
    .site-header-mobile-menu {
      top: 77px !important; } }
  .site-header-mobile-menu .menu a {
    padding: .5rem 0;
    color: #fff;
    font-family: "Roboto Condensed", sans-serif;
    font-size: 1rem;
    text-transform: uppercase; }
    .no-ios .site-header-mobile-menu .menu a {
      transition: all 0.2s ease; }
      .no-ios .site-header-mobile-menu .menu a:hover {
        text-decoration: none;
        color: #ff7733; }
    .site-header-mobile-menu .menu a:hover {
      color: #fff; }
  .site-header-mobile-menu .menu .is-active > a {
    background: transparent;
    color: #aaa; }
    .site-header-mobile-menu .menu .is-active > a:hover {
      color: #aaa;
      cursor: default; }
  .site-header-mobile-menu .menu.submenu,
  .site-header-mobile-menu .accordion-menu .nested.is-accordion-submenu {
    margin-bottom: .3rem; }
  .site-header-mobile-menu .menu.submenu a {
    padding: .5rem 0;
    font-size: 0.88889rem; }
  .site-header-mobile-menu .submenu-toggle::after {
    right: 0;
    width: 20px;
    height: 9px;
    margin: 0 0 0 auto;
    border: none;
    background: url(../images/icon-chevron.svg) no-repeat;
    transition: all 0.2s ease; }

.hdr-search-form {
  position: fixed;
  top: 66px !important;
  background: #333;
  border: none; }
  @media screen and (max-width: 39.9375em) {
    .hdr-search-form {
      left: 0 !important;
      right: 0 !important;
      width: 100%; } }
  @media print, screen and (min-width: 40em) {
    .hdr-search-form {
      top: 73px !important; } }
  @media print, screen and (min-width: 64em) {
    .hdr-search-form {
      top: 77px !important; } }
  .hdr-search-form .input-group {
    margin: 0; }
  .hdr-search-form [type='text']:focus {
    box-shadow: none; }

body.admin-bar .hdr-search-form {
  margin-top: 31px; }

.desktop-menu {
  display: none;
  z-index: 10;
  /* menu */
  /* submenu */
  /* submenu toggle */ }
  @media print, screen and (min-width: 64em) {
    .desktop-menu {
      top: 4px;
      display: inline-block; } }
  .desktop-menu.menu a,
  .desktop-menu.menu a:focus,
  .desktop-menu.menu .is-active a {
    margin: 0 8px;
    padding: .8rem .1rem;
    color: #777;
    text-transform: uppercase;
    font-family: "Roboto Condensed", sans-serif;
    font-size: 0.94444rem;
    border-bottom: 4px solid transparent; }
    @media screen and (min-width: 1130px) {
      .desktop-menu.menu a,
      .desktop-menu.menu a:focus,
      .desktop-menu.menu .is-active a {
        margin: 0 15px; } }
    .no-ios .desktop-menu.menu a, .no-ios
    .desktop-menu.menu a:focus, .no-ios
    .desktop-menu.menu .is-active a {
      transition: all 0.2s ease; }
      .no-ios .desktop-menu.menu a:hover, .no-ios
      .desktop-menu.menu a:focus:hover, .no-ios
      .desktop-menu.menu .is-active a:hover {
        text-decoration: none;
        color: #ff7733; }
  .desktop-menu.menu .current-menu-item > a {
    background: transparent;
    color: #000;
    border-bottom-color: #000; }
    .desktop-menu.menu .current-menu-item > a:hover {
      color: #000; }
  .desktop-menu .menu.submenu {
    margin: 0;
    padding: .5rem 1rem;
    margin-left: 15px;
    background: #333;
    border: none;
    text-align: left; }
  .desktop-menu .menu.submenu a {
    margin: 0;
    padding: .5rem 0;
    color: #fff;
    font-size: 0.88889rem;
    line-height: 1.2;
    border: none; }
  .desktop-menu .menu.submenu .current-menu-item a {
    color: #999; }
    .desktop-menu .menu.submenu .current-menu-item a:hover {
      color: #999;
      cursor: default; }
  .desktop-menu.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
    width: 13px;
    height: 6px;
    border: none;
    background: url(../images/icon-chevron-desktop.svg) no-repeat; }

body#tinymce {
  height: auto;
  max-width: 66.66667rem;
  padding: 1.11111rem !important; }

/* button ---------------------------- */
.button,
.frm_button_submit {
  margin: 0;
  padding: .8rem 1.4rem;
  background: #ee6622;
  font-family: "Saira", sans-serif;
  font-weight: bold;
  text-transform: uppercase;
  font-size: 0.77778rem; }
  @media print, screen and (min-width: 40em) {
    .button,
    .frm_button_submit {
      font-size: 0.83333rem; } }
  @media print, screen and (min-width: 64em) {
    .button,
    .frm_button_submit {
      font-size: 0.88889rem; } }
  .button:hover,
  .frm_button_submit:hover {
    color: #fff;
    background: #ee6622; }
  .no-ios .button:hover, .no-ios
  .frm_button_submit:hover {
    color: #fff;
    background: #ff7733; }

/* button with icon before text ---------------------------- */
.button.link-external .icon-wrap {
  position: relative;
  top: -3px;
  display: inline-block;
  width: 23px;
  height: 24px;
  margin: 0 5px 0 0;
  vertical-align: middle; }

/* text link ---------------------------- */
.link, .link-arrow, .list-arrow {
  font-weight: bold; }

/* text link with icon before text ---------------------------- */
.link-external {
  font-weight: bold; }
  .link-external .icon-wrap {
    position: relative;
    top: -3px;
    display: inline-block;
    width: 23px;
    height: 24px;
    margin: 0 5px 0 0;
    vertical-align: middle; }
    .link-external .icon-wrap path {
      fill: #d05511;
      transition: all 0.2s ease; }
  .no-ios .link-external:hover path {
    fill: #ee6622; }

/* text link with arrow icon ---------------------------- */
.link-arrow .icon-wrap {
  position: relative;
  top: 2px;
  display: inline-block;
  width: 17px;
  height: 13px;
  margin: 0 0 0 10px; }

.link-arrow.link-arrow-left .icon-wrap {
  margin: 0 10px 0 0; }

.no-ios .link-arrow:hover {
  transition: all 0.2s ease; }
  .no-ios .link-arrow:hover path {
    transition: all 0.2s ease; }
  .no-ios .link-arrow:hover path {
    fill: #ee6622; }

/* text link list item with arrow icon on left side ---------------------------- */
.list-arrow {
  position: relative;
  display: block;
  margin: 0 0 10px 30px;
  line-height: 1.3; }
  .list-arrow .icon-wrap {
    position: absolute;
    top: 0px;
    left: -30px;
    z-index: 1;
    display: inline-block;
    width: 17px;
    height: 13px;
    margin: 0 10px 0 0; }
  .no-ios .list-arrow:hover {
    transition: all 0.2s ease; }
    .no-ios .list-arrow:hover path {
      transition: all 0.2s ease; }
    .no-ios .list-arrow:hover path {
      fill: #ee6622; }

/* back to top ---------------------------- */
.back-to-top {
  position: fixed;
  bottom: 60px;
  right: 30px;
  z-index: 50;
  display: none;
  background: rgba(68, 68, 68, 0.4);
  border: 1px solid #fff;
  border-radius: 10px;
  opacity: 0;
  transition: all 0.4s ease-in-out; }
  .no-ios .back-to-top:hover {
    background: #444444; }
  .back-to-top.active {
    display: block;
    opacity: 1; }
  .back-to-top.scrolling {
    opacity: 0; }
  .back-to-top .icon-wrap {
    display: block;
    width: 21px;
    height: 22px;
    margin: 13px 12px 12px; }

[data-whatinput="mouse"] a:focus, button:focus [data-whatinput="touch"] a:focus, button:focus {
  outline: none; }

.breakpoints {
  position: fixed;
  bottom: 5px;
  left: 5px;
  z-index: 5000;
  padding: .25em .5em;
  color: #fff;
  background: #666;
  font-size: 10px;
  letter-spacing: .1em; }

/* page banner ---------------------------- */
@-webkit-keyframes colorchange {
  0% {
    background-color: #000; }
  50% {
    background-color: #000; }
  100% {
    background-color: #fff; } }
@keyframes colorchange {
  0% {
    background-color: #000; }
  50% {
    background-color: #000; }
  100% {
    background-color: #fff; } }

.page-header-home {
  position: relative;
  background-repeat: no-repeat;
  background-position: top center;
  background-color: #fff;
  background-size: 1px 1px; }
  @media print, screen and (min-width: 40em) {
    .page-header-home {
      min-height: 250px;
      background-size: cover; } }
  @media screen and (min-width: 2000px) {
    .page-header-home {
      max-height: 1100px; } }
  .page-header-home .home-pg-title-row {
    position: absolute;
    top: 20px;
    left: 0;
    right: 0;
    z-index: 5;
    max-width: 66.66667rem;
    margin-right: auto;
    margin-left: auto;
    padding-right: 15px;
    padding-left: 15px; }
    @media print, screen and (min-width: 40em) {
      .page-header-home .home-pg-title-row {
        top: 40px; } }
    @media print, screen and (min-width: 64em) {
      .page-header-home .home-pg-title-row {
        top: 80px; } }
  .page-header-home h1 {
    /*
    margin: 0;
    width: 50%;
    font-size: rem-calc(34px);
    text-transform: uppercase;
    color: #fff;
    text-shadow: 0 0 10px rgba(#000,.3);

    @include breakpoint(medium) {
      font-size: rem-calc(40px);
    }
    @include breakpoint(large) {
      width: 40%;
      font-size: rem-calc(50px);
    }
    */
    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; }
  .page-header-home .responsive-embed,
  .page-header-home .flex-video {
    margin: 0;
    padding-bottom: 56.3%; }
  .page-header-home .intro-video-bg {
    display: none; }
    @media print, screen and (min-width: 40em) {
      .page-header-home .intro-video-bg {
        display: block;
        /* add layer to stop youtube hover revealing controls */ }
        .page-header-home .intro-video-bg:before {
          content: "";
          position: absolute;
          top: 0;
          left: 0;
          right: 0;
          z-index: 5;
          display: block;
          width: 100%;
          height: 100%;
          background: rgba(0, 0, 0, 0);
          background: transparent; } }
    @media print, screen and (min-width: 64em) {
      .page-header-home .intro-video-bg iframe {
        background-repeat: no-repeat;
        background-position: top center;
        background-color: #fff;
        background-size: cover; } }
  @media screen and (min-width: 64em) and (min-width: 2000px) {
    .page-header-home .intro-video-bg iframe {
      max-height: 1100px;
      background-size: auto 1100px; } }
  @media print, screen and (min-width: 40em) {
    .page-header-home .home-intro-slideshow {
      display: none; } }
  .page-header-home .intro-desc p, .page-header-home .intro-desc address, .page-header-home .intro-desc body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-header-home .intro-desc .st-ui-type-detail, .page-header-home .intro-desc body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-header-home .intro-desc .st-ui-type-detail-bold {
    font-size: 1.11111rem;
    font-weight: bold; }
    @media print, screen and (min-width: 40em) {
      .page-header-home .intro-desc p, .page-header-home .intro-desc address, .page-header-home .intro-desc body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-header-home .intro-desc .st-ui-type-detail, .page-header-home .intro-desc body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-header-home .intro-desc .st-ui-type-detail-bold {
        font-size: 1.22222rem; } }
    @media print, screen and (min-width: 64em) {
      .page-header-home .intro-desc p, .page-header-home .intro-desc address, .page-header-home .intro-desc body.page-template-page-search-custom .st-ui-result .st-ui-type-detail, body.page-template-page-search-custom .st-ui-result .page-header-home .intro-desc .st-ui-type-detail, .page-header-home .intro-desc body.page-template-page-search-custom .st-ui-result .st-ui-type-detail-bold, body.page-template-page-search-custom .st-ui-result .page-header-home .intro-desc .st-ui-type-detail-bold {
        font-size: 1.33333rem; } }

.demo-home-vid {
  /* add layer to stop youtube hover revealing controls */ }
  .demo-home-vid:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 5;
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0);
    background: transparent; }

/* intro ---------------------------- */
.home-intro {
  position: relative;
  text-align: center; }
  .home-intro:before, .home-intro:after {
    content: "";
    position: absolute;
    z-index: 1;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    mix-blend-mode: multiply; }
    html.ie .home-intro:before, html.ie .home-intro:after {
      mix-blend-mode: unset; }
  .home-intro:before, .home-intro:after {
    bottom: 0; }
  .home-intro:before {
    left: 0;
    border-width: 100px 0 0 20px;
    border-color: transparent transparent transparent rgba(238, 238, 238, 0.6); }
    @media print, screen and (min-width: 40em) {
      .home-intro:before {
        border-width: 150px 0 0 30px; } }
    @media print, screen and (min-width: 64em) {
      .home-intro:before {
        border-width: 260px 0 0 60px; } }
  .home-intro:after {
    right: 0;
    border-width: 0 0 100px 20px;
    border-color: transparent transparent rgba(238, 238, 238, 0.6) transparent; }
    @media print, screen and (min-width: 40em) {
      .home-intro:after {
        border-width: 0 0 150px 30px; } }
    @media print, screen and (min-width: 64em) {
      .home-intro:after {
        border-width: 0 0 260px 60px; } }
  @media screen and (max-width: 39.9375em) {
    .home-intro {
      margin-top: -7px; } }
  .home-intro .row {
    position: relative;
    z-index: 2; }
  .home-intro .intro-desc :last-child {
    margin-bottom: 0; }

/* services ---------------------------- */
.home-services {
  position: relative;
  background: #eee;
  text-align: center; }
  .home-services:before, .home-services:after {
    content: "";
    position: absolute;
    z-index: 1;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    mix-blend-mode: multiply; }
    html.ie .home-services:before, html.ie .home-services:after {
      mix-blend-mode: unset; }
  .home-services:before, .home-services:after {
    top: 0; }
  .home-services:before {
    left: 0;
    border-width: 100px 20px 0 0;
    border-color: rgba(204, 204, 204, 0.5) transparent transparent transparent; }
    @media print, screen and (min-width: 40em) {
      .home-services:before {
        border-width: 150px 30px 0 0; } }
    @media print, screen and (min-width: 64em) {
      .home-services:before {
        border-width: 260px 60px 0 0; } }
  .home-services:after {
    right: 0;
    border-width: 0 20px 100px 0;
    border-color: transparent rgba(204, 204, 204, 0.5) transparent transparent; }
    @media print, screen and (min-width: 40em) {
      .home-services:after {
        border-width: 0 30px 150px 0; } }
    @media print, screen and (min-width: 64em) {
      .home-services:after {
        border-width: 0 60px 260px 0; } }
  .home-services .home-services-row-intro {
    padding-bottom: 20px; }
    @media print, screen and (min-width: 64em) {
      .home-services .home-services-row-intro {
        padding-bottom: 40px; } }
  .home-services .home-services-row-feed {
    padding-bottom: 10px; }
    @media print, screen and (min-width: 64em) {
      .home-services .home-services-row-feed {
        padding-bottom: 20px; } }
  .home-services .service {
    position: relative;
    margin: 0 0 40px 0;
    text-align: left; }
    @media print, screen and (min-width: 40em) {
      .home-services .service {
        min-height: 100px; } }
    @media print, screen and (min-width: 64em) {
      .home-services .service {
        min-height: 120px; } }
    .home-services .service .service-icon {
      display: block;
      position: absolute;
      left: 0;
      top: 0;
      z-index: 1;
      width: 75px;
      height: 75px;
      border-radius: 50%;
      transition: all 0.3s ease; }
      @media print, screen and (min-width: 40em) {
        .home-services .service .service-icon {
          width: 85px;
          height: 85px; } }
      @media print, screen and (min-width: 64em) {
        .home-services .service .service-icon {
          width: 95px;
          height: 95px; } }
    .home-services .service .service-text {
      margin-left: 95px; }
      @media print, screen and (min-width: 40em) {
        .home-services .service .service-text {
          margin-left: 105px; } }
      @media print, screen and (min-width: 64em) {
        .home-services .service .service-text {
          margin-left: 115px; } }
    .home-services .service .title {
      transition: all 0.3s ease; }
    .no-ios .home-services .service.js-hover {
      cursor: pointer; }
      .no-ios .home-services .service.js-hover .service-icon {
        box-shadow: 0 5px 10px 1px rgba(102, 102, 102, 0.5); }
      .no-ios .home-services .service.js-hover .title {
        color: #000; }
      .no-ios .home-services .service.js-hover a {
        color: #ee6622; }
      .no-ios .home-services .service.js-hover a path {
        fill: #ee6622; }

/* projects ---------------------------- */
.home-projects {
  background: #ccc;
  background: linear-gradient(to bottom, #222 0%, #333 10%, #444 40%, #222 40%, #222 100%);
  text-align: center; }
  @media print, screen and (min-width: 40em) {
    .home-projects {
      background: linear-gradient(to bottom, #222 0%, #333 10%, #444 60%, #222 60%, #222 100%); } }
  .home-projects h2, .home-projects body.page-template-page-search-custom .search-form input[type='text'], body.page-template-page-search-custom .search-form .home-projects input[type='text'], .home-projects body.page-template-page-search-custom .st-ui-result .st-ui-type-heading, body.page-template-page-search-custom .st-ui-result .home-projects .st-ui-type-heading, .home-projects body.search .search-form input[type='text'], body.search .search-form .home-projects input[type='text'] {
    margin-bottom: 1rem;
    color: #fff; }
    @media screen and (max-width: 39.9375em) {
      .home-projects h2, .home-projects body.page-template-page-search-custom .search-form input[type='text'], body.page-template-page-search-custom .search-form .home-projects input[type='text'], .home-projects body.page-template-page-search-custom .st-ui-result .st-ui-type-heading, body.page-template-page-search-custom .st-ui-result .home-projects .st-ui-type-heading, .home-projects body.search .search-form input[type='text'], body.search .search-form .home-projects input[type='text'] {
        margin-top: -5px; } }
  .home-projects .home-project-visual {
    position: relative;
    margin: 0 0 15px 0;
    text-align: left; }
  .home-projects .home-project-photo {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover; }
    .home-projects .home-project-photo:before {
      content: "";
      display: block;
      padding-top: 60%; }
      @media print, screen and (min-width: 40em) {
        .home-projects .home-project-photo:before {
          padding-top: 50%; } }
  .home-projects .home-project-photo-caption {
    position: absolute;
    top: 20px;
    left: 20px;
    z-index: 1;
    display: inline-block;
    padding: 5px 20px;
    background: #333;
    color: #fff;
    text-transform: uppercase;
    font-weight: bold;
    font-size: 0.55556rem; }
    @media print, screen and (min-width: 40em) {
      .home-projects .home-project-photo-caption {
        font-size: 0.72222rem; } }
    @media print, screen and (min-width: 64em) {
      .home-projects .home-project-photo-caption {
        font-size: 0.88889rem; } }
  .home-projects .home-project-meta {
    position: relative;
    margin: 0 0 40px 0;
    padding: 15px 20px;
    padding-right: 40px;
    background: #333;
    text-align: left; }
  .home-projects .home-project-name {
    margin: 0 0 2px 0;
    color: #fff;
    transition: all 0.2s ease; }
  .home-projects .home-project-location {
    margin: 0;
    color: #fff;
    transition: all 0.2s ease; }
  .home-projects .home-project-link {
    position: absolute;
    top: 50%;
    right: 20px;
    z-index: 1;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    display: block;
    width: 20px;
    height: 15px; }
    .home-projects .home-project-link svg {
      display: block; }
    .home-projects .home-project-link path {
      fill: #fff;
      transition: all 0.2s ease; }
    .no-ios .home-projects .home-project-link:hover path {
      fill: #ff7733; }
  .no-ios .home-projects .home-project-meta.js-hover {
    cursor: pointer; }
    .no-ios .home-projects .home-project-meta.js-hover .home-project-name {
      color: #ddd3c9; }
    .no-ios .home-projects .home-project-meta.js-hover .home-project-location {
      color: #ddd3c9; }
    .no-ios .home-projects .home-project-meta.js-hover .home-project-link path {
      fill: #ee6622; }

/* news ---------------------------- */
.home-news {
  position: relative;
  text-align: center; }
  .home-news:before, .home-news:after {
    content: "";
    position: absolute;
    top: 50%;
    z-index: 1;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    display: none;
    width: 36px;
    height: 360px;
    background: url(../images/bg-pattern-diag-lines.png) repeat-x; }
    @media screen and (min-width: 81.25em) {
      .home-news:before, .home-news:after {
        display: block; } }
  .home-news:before {
    left: 0; }
  .home-news:after {
    right: 0; }
  @media screen and (max-width: 39.9375em) {
    .home-news .hdr-section {
      margin-top: -5px; } }
  .home-news .home-news-slider {
    margin: 0 15px 40px 15px; }
    @media print, screen and (min-width: 40em) {
      .home-news .home-news-slider {
        margin: 0 0 40px 0; } }
  .home-news .slide-inner {
    position: relative;
    margin: 15px;
    background: #eee;
    transition: all 0.6s ease;
    /* triangle */ }
    .home-news .slide-inner:after {
      position: absolute;
      right: 5px;
      bottom: 5px;
      z-index: 1;
      content: "";
      display: block;
      width: 0;
      height: 0;
      border-style: solid;
      border-width: 0 0 25px 25px;
      border-color: transparent transparent #777 transparent;
      transition: all 0.6s ease; }
  .home-news .news-photo {
    position: relative;
    width: 100%;
    margin: 0;
    background-color: #ccc;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    -webkit-filter: grayscale(100%);
            filter: grayscale(100%);
    transition: all 0.6s ease; }
    .home-news .news-photo:before {
      content: "";
      display: block;
      padding-top: 60%; }
  .home-news .news-content {
    padding: 15px 30px 30px 15px;
    text-align: left;
    transition: all 0.6s ease; }
  .home-news .title a {
    color: #333; }
    .home-news .title a:hover {
      color: #333; }
  @media screen and (max-width: 39.9375em) {
    .home-news .slick-current .slide-inner {
      background: #fff;
      box-shadow: 0 0 10px 2px rgba(51, 51, 51, 0.3); }
    .home-news .slick-current .news-photo {
      -webkit-filter: grayscale(0%);
              filter: grayscale(0%); }
    .home-news .slick-current .news-content:after {
      border-color: transparent transparent #ee6622 transparent; } }
  .home-news .group-link.js-hover .slide-inner {
    background: #fff;
    box-shadow: 0 0 10px 2px rgba(51, 51, 51, 0.3); }
  .home-news .group-link.js-hover .news-photo {
    -webkit-filter: grayscale(0%);
            filter: grayscale(0%); }
  .home-news .group-link.js-hover .news-content:after {
    border-color: transparent transparent #ee6622 transparent; }

/* jobs ---------------------------- */
.home-jobs {
  background: #eee;
  text-align: center; }
  @media screen and (max-width: 39.9375em) {
    .home-jobs .hdr-section {
      margin-top: -5px; } }
  .home-jobs .home-jobs-slider {
    margin: 0 15px 40px 15px; }
    @media print, screen and (min-width: 40em) {
      .home-jobs .home-jobs-slider {
        margin: 0 0 40px 0; } }
  .home-jobs .slide-inner {
    margin: 15px;
    padding: 40px 0;
    text-align: left;
    border-top: 1px solid #666;
    border-bottom: 1px solid #666;
    transition: all 0.2s ease; }
  .home-jobs .excerpt {
    font-size: 0.77778rem; }
    @media print, screen and (min-width: 40em) {
      .home-jobs .excerpt {
        font-size: 0.83333rem; } }
    @media print, screen and (min-width: 64em) {
      .home-jobs .excerpt {
        font-size: 0.88889rem; } }
  .home-jobs .slide a {
    font-size: 0.77778rem; }
    @media print, screen and (min-width: 40em) {
      .home-jobs .slide a {
        font-size: 0.83333rem; } }
    @media print, screen and (min-width: 64em) {
      .home-jobs .slide a {
        font-size: 0.88889rem; } }
  @media print, screen and (min-width: 40em) {
    .home-jobs .js-hover {
      cursor: pointer;
      /*
      .title {
        font-size: 125%;
      }
      .excerpt {
        @include p-reg();
      }
      a {
        @include p-reg();
      }
      */ }
      .home-jobs .js-hover .slide-inner {
        border-width: 8px;
        border-color: #b30; } }

/* bottom banner ---------------------------- */

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX25vcm1hbGl6ZS1taXhpbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192ZXJ0aWNhbC1yaHl0aG0uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCJnbG9iYWwvX2NvbG9ycy5zY3NzIiwiZ2xvYmFsL19mb250cy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fc2l6ZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jb2x1bW4uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fbGF5b3V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JhZGdlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21hdGguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVkaWEtb2JqZWN0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb3JiaXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zd2l0Y2guc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fY29sb3Iuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Zsb2F0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19rZXlmcmFtZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3NsaWRlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fZmFkZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9faGluZ2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19oaW5nZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3pvb20uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zcGluLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19hbmltYXRpb24uc2NzcyIsImFwcC5zY3NzIiwiZ2xvYmFsL19hY2Nlc3NpYmlsaXR5LnNjc3MiLCJnbG9iYWwvX3R5cGUuc2NzcyIsImdsb2JhbC9fd3AtYWRtaW4uc2NzcyIsImdsb2JhbC9fd3Atb3ZlcnJpZGVzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2dyaWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3V0dGVycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19sYXlvdXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY2VsbC5zY3NzIiwicGx1Z2lucy9mYWNldHdwLWZyb250LnNjc3MiLCJwbHVnaW5zL3NsaWNrLnNjc3MiLCJwbHVnaW5zL3NsaWNrLWNvb2wtdGltZWxpbmUtcHJvLnNjc3MiLCJwbHVnaW5zL3NsaWNrLXRoZW1lLnNjc3MiLCJwbHVnaW5zL3NpbXBsZWJhci5zY3NzIiwibW9kdWxlcy9fY29udGVudC5zY3NzIiwibW9kdWxlcy9fZm9vdGVyLnNjc3MiLCJtb2R1bGVzL19oZWFkZXIuc2NzcyIsIm1vZHVsZXMvX2VkaXRvci1zdHlsZS5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiY29tcG9uZW50cy9fbGlua3Muc2NzcyIsImNvbXBvbmVudHMvX3V0aWxpdGllcy5zY3NzIiwidGVtcGxhdGVzL19mcm9udC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0FqQjs7Ozs7R0FLRztBQzhKRztFQ3ZISjtJQUNFLFlBQVc7SUFDWCxXQUFVO0lBQ1YsZUFBYyxFQUNmLEVBQUE7O0FDSEQsaUVBQWlFO0FBRy9EO29GQUNnRjtBQUVoRjs7Ozs7T0FLRztBQUVIO0VBQ0Usd0JDMUN1QjtFRDBDUyxPQUFPO0VBUXJDLGtCQUFpQjtFQUFFLE9BQU87RUFFNUIsMkJBQTBCO0VBQUUsT0FBTztFQUNuQywrQkFBOEI7RUFBRSxPQUFPLEVBQ3hDOztBQUlEO29GQUNnRjtBQUVoRjs7T0FFRztBQUVIO0VBQ0UsVUFBUyxFQUNWOztBQUVEOztPQUVHO0FBRUg7Ozs7OztFQU1FLGVBQWMsRUFDZjs7QUFFRDs7O09BR0c7QUFFSDtFRTlFRixlQVh1QztFRm9HakMsaUJBQWdCLEVBRW5COztBQW9DRDtvRkFDZ0Y7QUF1Q2hGOztPQUVHO0FBRUg7O0VBRUUsZUFBYyxFQUNmOztBQUVEOztPQUVHO0FBRUg7RUFLSSxpQkN2TFksRUR5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QkFBa0I7RUFDbEIsZUFIbUQsRU5pRzlDOztBQUVEO0VNakdKLG1CQUFrQjtFQUNsQixnQkFIbUQsRU5xRzlDOztBQU1IO0VNOUVKLGdCRGhCZ0MsRUxnRzNCOztBQXBCRDtFSXhGSixpQkNlcUQsRUwyRWhEOztBQUlDO0VNN0ZKLG1CQUFrQjtFQUNsQixnQkFIbUQsRU5pRzlDOztBQUVEO0VNakdKLG1CQUFrQjtFQUNsQixpQkFIbUQsRU5xRzlDOztBQU1IO0VNOUVKLHNCRGJxRCxFTDZGaEQ7O0FBcEJEO0VJeEZKLFdDZXFELEVMMkVoRDs7QUFJQztFTTdGSixtQkFBa0I7RUFDbEIsVUFIbUQsRU5pRzlDOztBQUVEO0VNakdKLG1CQUFrQjtFQUNsQixXQUhtRCxFTnFHOUM7O0FBTUg7RU05RUosdUJEYnFELEVMNkZoRDs7QUFwQkQ7RUl4RkosaUJDZXFELEVMMkVoRDs7QUFJQztFTTdGSixtQkFBa0I7RUFDbEIsZ0JBSG1ELEVOaUc5Qzs7QUFFRDtFTWpHSixtQkFBa0I7RUFDbEIsaUJBSG1ELEVOcUc5Qzs7QUFNSDtFTTlFSixpQkRicUQsRUw2RmhEOztBQXBCRDtFSXhGSixpQkNlcUQsRUwyRWhEOztBQUlDO0VNN0ZKLG1CQUFrQjtFQUNsQixnQkFIbUQsRU5pRzlDOztBQUVEO0VNakdKLG1CQUFrQjtFQUNsQixpQkFIbUQsRU5xRzlDOztBQU1IO0VNOUVKLHVCRGJxRCxFTDZGaEQ7O0FBcEJEO0VJeEZKLFdDZXFELEVMMkVoRDs7QUFJQztFTTdGSixtQkFBa0I7RUFDbEIsVUFIbUQsRU5pRzlDOztBQUVEO0VNakdKLG1CQUFrQjtFQUNsQixXQUhtRCxFTnFHOUM7O0FBTUg7RU05RUosdUJEYnFELEVMNkZoRDs7QUFwQkQ7RUl4RkosaUJDZXFELEVMMkVoRDs7QUFJQztFTTdGSixtQkFBa0I7RUFDbEIsZ0JBSG1ELEVOaUc5Qzs7QUFFRDtFTWpHSixtQkFBa0I7RUFDbEIsaUJBSG1ELEVOcUc5Qzs7QUFNSDtFTTlFSixpQkRicUQsRUw2RmhEOztBQXBCRDtFSXhGSixpQkNlcUQsRUwyRWhEOztBQUlDO0VNN0ZKLG1CQUFrQjtFQUNsQixnQkFIbUQsRU5pRzlDOztBQUVEO0VNakdKLG1CQUFrQjtFQUNsQixpQkFIbUQsRU5xRzlDOztBQU1IO0VNOUVKLHVCRGJxRCxFTDZGaEQ7O0FBcEJEO0VJeEZKLFdDZXFELEVMMkVoRDs7QUFJQztFTTdGSixtQkFBa0I7RUFDbEIsVUFIbUQsRU5pRzlDOztBQUVEO0VNakdKLG1CQUFrQjtFQUNsQixXQUhtRCxFTnFHOUM7O0FBTUg7RU05RUosdUJEYnFELEVMNkZoRDs7QUFwQkQ7RUl4RkosaUJDZXFELEVMMkVoRDs7QUFJQztFTTdGSixtQkFBa0I7RUFDbEIsZ0JBSG1ELEVOaUc5Qzs7QUFFRDtFTWpHSixtQkFBa0I7RUFDbEIsaUJBSG1ELEVOcUc5Qzs7QUFNSDtFTTlFSixpQkRicUQsRUw2RmhEOztBQXBCRDtFSXhGSixpQkNlcUQsRUwyRWhEOztBQUlDO0VNN0ZKLG1CQUFrQjtFQUNsQixnQkFIbUQsRU5pRzlDOztBQUVEO0VNakdKLG1CQUFrQjtFQUNsQixpQkFIbUQsRU5xRzlDOztBQU1IO0VNOUVKLHVCRGJxRCxFTDZGaEQ7O0FBcEJEO0VJeEZKLFlDZXFELEVMMkVoRDs7QUFnQkQ7RU05RUosdUJEYnFELEVMNkZoRDs7QUFLRDtFT3pHRixZWmtHdUQ7RVlqR3ZELFlBQXVCLEVBaUN4QjtFUHVFRztJT2pGQSxZQUFXLEVBQ1o7RVBnRkM7SU83RUEsWUFBVyxFQUNaO0VQNEVDO0lPekVBLFlaa0VxRCxFWWpFdEQ7O0FQd0VDO0VPekdGLFlaa0d1RDtFWWpHdkQsV0FBdUIsRUFpQ3hCO0VQdUVHO0lPakZBLFlBQVcsRUFDWjtFUGdGQztJTzdFQSxZQUFXLEVBQ1o7RVA0RUM7SU96RUEsWVprRXFELEVZakV0RDs7QVB3RUM7RU96R0YsWVprR3VEO0VZakd2RCxpQkFBdUIsRUFpQ3hCO0VQdUVHO0lPakZBLFlBQVcsRUFDWjtFUGdGQztJTzdFQSxZQUFXLEVBQ1o7RVA0RUM7SU96RUEsWVprRXFELEVZakV0RDs7QVB3RUM7RU96R0YsWVprR3VEO0VZakd2RCxXQUF1QixFQWlDeEI7RVB1RUc7SU9qRkEsWUFBVyxFQUNaO0VQZ0ZDO0lPN0VBLFlBQVcsRUFDWjtFUDRFQztJT3pFQSxZWmtFcUQsRVlqRXREOztBUHdFQztFT3pHRixZWmtHdUQ7RVlqR3ZELFdBQXVCLEVBaUN4QjtFUHVFRztJT2pGQSxZQUFXLEVBQ1o7RVBnRkM7SU83RUEsWUFBVyxFQUNaO0VQNEVDO0lPekVBLFlaa0VxRCxFWWpFdEQ7O0FQd0VDO0VPekdGLFlaa0d1RDtFWWpHdkQsaUJBQXVCLEVBaUN4QjtFUHVFRztJT2pGQSxZQUFXLEVBQ1o7RVBnRkM7SU83RUEsWUFBVyxFQUNaO0VQNEVDO0lPekVBLFlaa0VxRCxFWWpFdEQ7O0FQd0VDO0VPekdGLFlaa0d1RDtFWWpHdkQsaUJBQXVCLEVBaUN4QjtFUHVFRztJT2pGQSxZQUFXLEVBQ1o7RVBnRkM7SU83RUEsWUFBVyxFQUNaO0VQNEVDO0lPekVBLFlaa0VxRCxFWWpFdEQ7O0FQd0VDO0VPekdGLFlaa0d1RDtFWWpHdkQsYUFBdUIsRUFpQ3hCO0VQdUVHO0lPakZBLFlBQVcsRUFDWjtFUGdGQztJTzdFQSxZQUFXLEVBQ1o7RVA0RUM7SU96RUEsWVprRXFELEVZakV0RDs7QVA4RUQ7RUcvR0EsaUJEdUVTO0VDdEVULGdCRHNFUyxFRnlDdUM7O0FBRGhEO0VBSUksZ0JBQWU7RUFDZixlQUFjLEVBQ2Y7O0FBR0g7RUFDRSxnQkFBZTtFQUNmLGVBQWMsRUFDZjs7QUFFRDtFRzdIQSwwQkFGcUM7RUFHckMseUJBSHFDLEVIZ0lvQjs7QUFJekQ7RU1qSUEsbUJBQWtCO0VBQ2xCLGtCQUFpQixFTmtJaEI7RU12SUQ7SUFDRSxZQUFXO0lBQ1gsWUFBVyxFQUNaOztBTnVJRDs7O0VNNUhGLGlCQUFnQjtFQUNoQixZWHNGeUQ7RVdyRnpELGdCQUFlO0VBQ2YsZUFBYyxFTjZIWDs7QVZFQztFVTdEQTtJSXhGSixnQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosZ0JEaEJnQyxFTGdHM0I7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixzQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLFdDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixVQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsV0FIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLGlCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLFdDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixVQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsV0FIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLGlCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLFdDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixVQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsV0FIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLGlCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLFlDZXFELEVMMkVoRDtFQWdCRDtJTTlFSix1QkRicUQsRUw2RmhEO0VBS0Q7SU96R0YsWVprR3VEO0lZakd2RCxZQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQd0VDO0lPekdGLFlaa0d1RDtJWWpHdkQsV0FBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVprRXFELEVZakV0RDtFUHdFQztJT3pHRixZWmtHdUQ7SVlqR3ZELGlCQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQd0VDO0lPekdGLFlaa0d1RDtJWWpHdkQsV0FBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVprRXFELEVZakV0RDtFUHdFQztJT3pHRixZWmtHdUQ7SVlqR3ZELFdBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVB3RUM7SU96R0YsWVprR3VEO0lZakd2RCxpQkFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVprRXFELEVZakV0RDtFUHdFQztJT3pHRixZWmtHdUQ7SVlqR3ZELGlCQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQd0VDO0lPekdGLFlaa0d1RDtJWWpHdkQsYUFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVprRXFELEVZakV0RDtFUDhFRDtJRy9HQSxpQkR1RVM7SUN0RVQsZ0JEc0VTLEVGeUN1QztFQURoRDtJQUlJLGdCQUFlO0lBQ2YsZUFBYyxFQUNmO0VBR0g7SUFDRSxnQkFBZTtJQUNmLGVBQWMsRUFDZjtFQUVEO0lHN0hBLDBCQUZxQztJQUdyQyx5QkFIcUMsRUhnSW9CO0VBSXpEO0lNaklBLG1CQUFrQjtJQUNsQixrQkFBaUIsRU5rSWhCO0lNdklEO01BQ0UsWUFBVztNQUNYLFlBQVcsRUFDWjtFTnVJRDs7O0lNNUhGLGlCQUFnQjtJQUNoQixZWHNGeUQ7SVdyRnpELGdCQUFlO0lBQ2YsZUFBYyxFTjZIWCxFQUFBOztBVkVDO0VVN0RBO0lJeEZKLGdCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixnQkRoQmdDLEVMZ0czQjtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHNCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosV0NlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLFVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixXQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosaUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosV0NlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLFVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixXQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosaUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosV0NlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLFVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixXQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosaUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosWUNlcUQsRUwyRWhEO0VBZ0JEO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFLRDtJT3pHRixZWmtHdUQ7SVlqR3ZELFlBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVB3RUM7SU96R0YsWVprR3VEO0lZakd2RCxXQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQd0VDO0lPekdGLFlaa0d1RDtJWWpHdkQsaUJBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVB3RUM7SU96R0YsWVprR3VEO0lZakd2RCxXQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQd0VDO0lPekdGLFlaa0d1RDtJWWpHdkQsV0FBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVprRXFELEVZakV0RDtFUHdFQztJT3pHRixZWmtHdUQ7SVlqR3ZELGlCQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQd0VDO0lPekdGLFlaa0d1RDtJWWpHdkQsaUJBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlaa0VxRCxFWWpFdEQ7RVB3RUM7SU96R0YsWVprR3VEO0lZakd2RCxhQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZWmtFcUQsRVlqRXREO0VQOEVEO0lHL0dBLGlCRHVFUztJQ3RFVCxnQkRzRVMsRUZ5Q3VDO0VBRGhEO0lBSUksZ0JBQWU7SUFDZixlQUFjLEVBQ2Y7RUFHSDtJQUNFLGdCQUFlO0lBQ2YsZUFBYyxFQUNmO0VBRUQ7SUc3SEEsMEJBRnFDO0lBR3JDLHlCQUhxQyxFSGdJb0I7RUFJekQ7SU1qSUEsbUJBQWtCO0lBQ2xCLGtCQUFpQixFTmtJaEI7SU12SUQ7TUFDRSxZQUFXO01BQ1gsWUFBVyxFQUNaO0VOdUlEOzs7SU01SEYsaUJBQWdCO0lBQ2hCLFlYc0Z5RDtJV3JGekQsZ0JBQWU7SUFDZixlQUFjLEVONkhYLEVBQUE7O0FBSUg7RUcxRkUsMEJEYXFELEVGK0V0RDtFRzFGQztJQUNFLGlCQUFnQixFQUNqQjtFYm9GQztJVUVKO01HMUZFLDBCRGFxRCxFRitFdEQ7TUcxRkM7UUFDRSxpQkFBZ0IsRUFDakIsRUFBQTs7QUtnTEg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJFLFVBQVM7RUFDVCxXQUFVLEVBQ1g7OztBQU5EOzs7O0VBVUUsb0JadkcwQjtFWXlHMUIsbUJBQWtCO0VBQ2xCLGlCWjNHc0I7RVk0R3RCLG1DWjFHeUMsRVkyRzFDOztBQUdEOztFQUVFLG1CQUFrQjtFQUNsQixxQkFBb0IsRUFDckI7O0FBR0Q7O0VBRUUsa0JaeE1xQjtFWXlNckIscUJBQW9CLEVBQ3JCOztBaEJnREM7RWdCNUNBLGVaaklpQjtFWWtJakIscUJBQW9CLEVBQ3JCOztBQUdEOzs7Ozs7Ozs7Ozs7O0VBTUUsaUNWeFQwQjtFVXlUMUIsbUJaN0tzQjtFWThLdEIsa0JaM05xQjtFWTROckIsZVo3S2tCO0VZOEtsQixtQ1pqSnNDLEVZdUp2QztFQWhCRDs7Ozs7Ozs7Ozs7OztJQWFJLGVBQWM7SUFDZCxlWmhQZSxFWWlQaEI7O0FBUUc7RUFJSSxzQk52UDZDO0VNbVE3QyxpQloxTVc7RVlrTlgsY0FBYTtFQU9iLHNCWnhOaUIsRVkwTnBCOzs7QUFyR1A7Ozs7RUF3RVUsc0JOdlA2QztFTW1RN0MsaUJaMU1XO0VZa05YLGNBQWE7RUFPYixzQlp4TmlCLEVZME5wQjs7O0FBcEdQOztFQXVFVSxnQk52UDZDO0VNbVE3QyxpQloxTVc7RVlrTlgsY0FBYTtFQU9iLHNCWnhOaUIsRVkwTnBCOzs7QUFuR1A7Ozs7RUFzRVUsc0JOdlA2QztFTW1RN0MsaUJaMU1XO0VZa05YLGNBQWE7RUFPYixzQlp4TmlCLEVZME5wQjs7QUFqQ0Q7RUFJSSxzQk52UDZDO0VNbVE3QyxpQloxTVc7RVlrTlgsY0FBYTtFQU9iLHNCWnhOaUIsRVkwTnBCOztBQWpDRDtFQUlJLHNCTnZQNkM7RU1tUTdDLGlCWjFNVztFWWtOWCxjQUFhO0VBT2Isc0JaeE5pQixFWTBOcEI7O0FsQnpNSDtFa0J3S0U7SUFJSSxzQk52UDZDLEVNb1JoRDs7RUFyR1A7Ozs7SUF3RVUsc0JOdlA2QyxFTW9SaEQ7O0VBcEdQOztJQXVFVSxzQk52UDZDLEVNb1JoRDs7RUFuR1A7Ozs7SUFzRVUsZ0JOdlA2QyxFTW9SaEQ7RUFqQ0Q7SUFJSSxzQk52UDZDLEVNb1JoRDtFQWpDRDtJQUlJLHNCTnZQNkMsRU1vUmhELEVBQUE7O0FsQnpNSDtFa0J3S0U7SUFJSSxzQk52UDZDLEVNb1JoRDs7RUFyR1A7Ozs7SUF3RVUsc0JOdlA2QyxFTW9SaEQ7O0VBcEdQOztJQXVFVSxzQk52UDZDLEVNb1JoRDs7RUFuR1A7Ozs7SUFzRVUsc0JOdlA2QyxFTW9SaEQ7RUFqQ0Q7SUFJSSxzQk52UDZDLEVNb1JoRDtFQWpDRDtJQUlJLGdCTnZQNkMsRU1vUmhELEVBQUE7O0FoQm5HTDtFZ0IwR0EscUJBQW9CO0VBQ3BCLGVYbldxQjtFV29XckIsc0JaMUx5QjtFWTRMekIsZ0JBQWUsRUFhaEI7RUFsQkQ7SUFTSSxlWmpNMkQsRVlxTTVEO0VBYkg7SUFnQkksVUFBUyxFQUNWOztBaEJ2S0Q7RWdCNEtBLFlBQVc7RUFFWCx1Qk5sVHFEO0VNbVRyRCxVQUFTO0VBQ1Qsd0JaN015QjtFWStNekIsY0FBYTtFQUNiLGdCQUFlO0VBQ2YsaUNaOVRpQjtFWStUakIsZUFBYyxFQUNmOztBQUdEOzs7RUFHRSxvQlp2TzBCO0VZd08xQiw2Qlp0TnlCO0VZdU56QixpQloxT3NCLEVZMk92Qjs7QUFHRDtFQUNFLG1CQUFrQixFQUNuQjs7QUFHRDtFQUNFLHFCWmhPc0I7RVlpT3RCLHNCWm5Pa0IsRVlvT25COztBQUdEO0VBQ0UscUJadE9zQixFWXVPdkI7O0FBR0Q7RUFFSSxxQlozTzJCO0VZNE8zQixpQkFBZ0IsRUFDakI7O0FBSUg7RUFDRSxvQlpqUHlCLEVZdVAxQjtFQVBEO0lBSUksc0JabFA4QjtJWW1QOUIsa0JaMVZtQixFWTJWcEI7O0FBSUg7RUFDRSxpQlpoUjBCO0VZaVIxQixpQk5yV1M7RU1zV1Qsa0JaclBvQixFWTJQckI7RUFURDtJQU1JLGlCWnRSb0I7SVl1UnBCLFlaN1BpQixFWThQbEI7O0FBSUg7RUFDRSxlQUFjO0VBQ2Qsc0JOdFhxRDtFTXVYckQsZVo1WGUsRVlpWWhCO0VBUkQ7SUFNSSxjWmpRNkIsRUFBQTs7QVlzUWpDO0VBQ0UsK0JYdGRPO0VXdWRQLGFBQVk7RUFDWixzQkFBcUIsRUFDdEI7O0FoQjdRQztFZ0JpUkEsVUFBUyxFQUNWOztBQUdEO0VBQ0UsMENONVlxRDtFTThZckQsMEJacFppQjtFWXFaakIsMEJadFpnQjtFWXdaaEIsNkRaMVZtRTtFWTJWbkUsb0JaMVl5QjtFWTJZekIsWVh6ZU8sRVcwZVI7O0FBR0Q7RUFDRSxVQUFTO0VBQ1QsaUNOcFpTO0VNc1pULDBCWmxhZ0I7RVlvYWhCLDZEWnRXbUU7RVl1V25FLFlYcGZPLEVXeWZSOztBQzVjRDtFQUNFLG1CYmlMeUI7RWFoTHpCLHNCYmlMNEI7RWEvSzVCLG9CYjZDeUI7RWE1Q3pCLGlCYjBLc0I7RWF6S3RCLGViOEJlLEVhN0JoQjs7QUFHRDtFQUNFLGtCYmtLcUM7RWFqS3JDLGlCYmtLaUIsRWFqS2xCOztBQUdEO0VBQ0Usa0JibUttQjtFYWxLbkIsZUFBYyxFQUtmO0VBSEM7SUFDRSxrQkFBaUIsRUFDbEI7O0FBR0g7RUFHSSxlQUFnQztFQUNoQyxpQkFBZ0IsRUFDakI7O0FDL0RLO0VBQ0UsaUJBUmUsRUFTaEI7O0FBRkQ7RUFDRSxrQkFSc0IsRUFTdkI7O0FBRkQ7RUFDRSxtQkFSOEIsRUFTL0I7O0FBRkQ7RUFDRSxvQkFSdUMsRUFTeEM7O0FwQm1KTDtFb0IxSkk7SUFDRSxpQkFIZSxFQUloQjtFQUZEO0lBQ0Usa0JBSHNCLEVBSXZCO0VBRkQ7SUFDRSxtQkFIOEIsRUFJL0I7RUFGRDtJQUNFLG9CQUh1QyxFQUl4QyxFQUFBOztBcEJ3Skw7RW9CMUpJO0lBQ0UsaUJBSGUsRUFJaEI7RUFGRDtJQUNFLGtCQUhzQixFQUl2QjtFQUZEO0lBQ0UsbUJBSDhCLEVBSS9CO0VBRkQ7SUFDRSxvQkFIdUMsRUFJeEMsRUFBQTs7QUNFVDtFQUFrQix5QkFBd0IsRUFBSTs7QUFFOUM7RUFDRTtJQUVJLG1DQUFrQztJQUdwQyw0QkFBMkI7SUFFM0Isd0JBQXVCO0lBQ3ZCLDZCQUE0QixFQUM3QjtFQVpIO0lBY29CLDBCQUF5QixFQUFJO0VBQy9DO0lBQWtCLHlCQUF3QixFQUFJO0VBRTlDO0lBQXVCLDBCQUF5QixFQUFJO0VBQ3BEO0lBQXVCLHVDQUFzQyxFQUFJO0VBQ2pFO0lBQXVCLG9DQUFtQyxFQUFJO0VBQzlEO0lBQW9CLDhCQUE2QixFQUFJO0VBQ3JEO0lBQW9CLCtCQUE4QixFQUFJO0VBQ3REO0lBQW9CLCtCQUE4QixFQUFJO0VBR3REOztJQUNZLDJCQUEwQixFQUFHO0VBRXZDO0lBQWdCLDZCQUE0QixFQUFJO0VBSWxEOzs7SUFFcUIsWUFBVyxFQUFJO0VBR3BDO0lBQW9CLDhCQUE2QixFQUFJO0VBR3JEOztJQUVFLDBCZjRCYTtJZTNCYix5QkFBd0IsRUFDekI7RUFHRDtJQUFRLDRCQUEyQixFQUFJO0VBRXZDOztJQUNNLHlCQUF3QixFQUFJO0VuQmdWbEM7SW1COVVNLDJCQUEwQixFQUFJO0VBRXBDO0lBQVEsY0FBYSxFQUFBOztFSDJNdkI7Ozs7Ozs7Ozs7SUd0TUksV0FBVTtJQUNWLFVBQVMsRUFDVjs7RUg2TEg7Ozs7OztJR3pMTyx3QkFBdUIsRUFBSTtFQUdoQztJQUNFLHdCQUF1QixFQUN4QixFQUFBOztBQ2tMSDtFQWhMQSxzQkFBcUI7RUFDckIsdUJBQXNCO0VBQ3RCLG1CaEJzTmtDO0VnQnJObEMscUJoQm1OMEI7RWdCek14QixvQmhCME11QjtFZ0J2TXpCLHlCQUF3QjtFQUN4Qiw4QkFBNkI7RUFDN0IsaUJoQkxlO0VnQk1mLGtFaEJ1TnVFO0VnQnJOdkUsa0JoQjhNZTtFZ0I3TWYsZUFBYztFQUNkLG1CQUFrQjtFQUNsQixnQkFBZTtFQXFDZiwwQmZqSXVCO0Vla0l2QixZZmxKUyxFZXdYUjtFeEI2eENEO0lXNThDRSxXQUFVLEVBQ1g7RWF0REQ7SUFDRSwwQmhCMEp1RTtJZ0J6SnZFLFlmdEpPLEVldUpSO0VBNkdEO0lBTU0sa0JoQjJDTSxFZ0IxQ1A7RUFQTDtJQU1NLG1CaEI0Q1EsRWdCM0NUO0VBUEw7SUFNTSxtQmhCOENRLEVnQjdDVDtFQVBMO0lBakpFLGVBQWM7SUFDZCxZQUFXO0lBQ1gsZ0JBQWU7SUFDZixlQUFjLEVBd0p5QjtFQVZ6QztJQW5IQSwwQmZqSXVCO0lla0l2QixZZmpKUyxFZW9SRjtJQWpJUDtNQUNFLDBCQVBvRjtNQVFwRixZZnJKTyxFZXNKUjtFQTZHRDtJQW5IQSwwQmY1SWdCO0llNkloQixZZmpKUyxFZW9SRjtJQWpJUDtNQUNFLDBCQVBvRjtNQVFwRixZZnJKTyxFZXNKUjtFQTZHRDtJQW5IQSwwQmhCckVnQjtJZ0JzRWhCLFlmakpTLEVlb1JGO0lBaklQO01BQ0UsMEJBUG9GO01BUXBGLFlmckpPLEVlc0pSO0VBNkdEO0lBbkhBLDBCaEJwRWdCO0lnQnFFaEIsWWZqSlMsRWVvUkY7SUFqSVA7TUFDRSwwQkFQb0Y7TUFRcEYsWWZySk8sRWVzSlI7RUE2R0Q7SUFuSEEsMEJoQm5FYztJZ0JvRWQsWWZqSlMsRWVvUkY7SUFqSVA7TUFDRSwwQkFQb0Y7TUFRcEYsWWZySk8sRWVzSlI7RUE2R0Q7SUExREEsY2hCaUg0QjtJZ0JoSDVCLG9CQUFtQixFQWlHaEI7SUEvRkg7TUFDRSwwQmY5THFCO01lK0xyQixZZi9NTyxFZWdOUjtJQW9ERDtNQTFEQSxjaEJpSDRCO01nQmhINUIsb0JBQW1CLEVBK0ZaO01BN0ZQO1FBQ0UsMEJmOUxxQjtRZStMckIsWWY5TU8sRWUrTVI7SUFvREQ7TUExREEsY2hCaUg0QjtNZ0JoSDVCLG9CQUFtQixFQStGWjtNQTdGUDtRQUNFLDBCZnpNYztRZTBNZCxZZjlNTyxFZStNUjtJQW9ERDtNQTFEQSxjaEJpSDRCO01nQmhINUIsb0JBQW1CLEVBK0ZaO01BN0ZQO1FBQ0UsMEJoQmxJYztRZ0JtSWQsWWY5TU8sRWUrTVI7SUFvREQ7TUExREEsY2hCaUg0QjtNZ0JoSDVCLG9CQUFtQixFQStGWjtNQTdGUDtRQUNFLDBCaEJqSWM7UWdCa0lkLFlmOU1PLEVlK01SO0lBb0REO01BMURBLGNoQmlINEI7TWdCaEg1QixvQkFBbUIsRUErRlo7TUE3RlA7UUFDRSwwQmhCaElZO1FnQmlJWixZZjlNTyxFZStNUjtFQW9ERDtJQW5GQSwwQmZqS3VCO0lla0t2QixlZmxLdUIsRWV5U2xCO0lBN0pMO01BRUUsOEJBQTZCLEVBQzlCO0lBSUM7TUFFRSw4QkFBNkIsRUFDOUI7SUFjSDtNQUNFLHNCQU42RDtNQU83RCxlQVA2RCxFQWE5RDtNQUxDO1FBRUUsMEJmekttQjtRZTBLbkIsZWYxS21CLEVlMktwQjtJQXlFSDtNQW5GQSwwQmZqS3VCO01la0t2QixlZmxLdUIsRWV1U2Q7TUFuSVQ7UUFDRSxzQkFONkQ7UUFPN0QsZUFQNkQsRUFhOUQ7UUFMQztVQUVFLDBCZnpLbUI7VWUwS25CLGVmMUttQixFZTJLcEI7SUF5RUg7TUFuRkEsMEJmNUtnQjtNZTZLaEIsZWY3S2dCLEVla1RQO01BbklUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQmZwTFk7VWVxTFosZWZyTFksRWVzTGI7SUF5RUg7TUFuRkEsMEJoQnJHZ0I7TWdCc0doQixlaEJ0R2dCLEVnQjJPUDtNQW5JVDtRQUNFLHNCQU42RDtRQU83RCxlQVA2RCxFQWE5RDtRQUxDO1VBRUUsMEJoQjdHWTtVZ0I4R1osZWhCOUdZLEVnQitHYjtJQXlFSDtNQW5GQSwwQmhCcEdnQjtNZ0JxR2hCLGVoQnJHZ0IsRWdCME9QO01BbklUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQmhCNUdZO1VnQjZHWixlaEI3R1ksRWdCOEdiO0lBeUVIO01BbkZBLDBCaEJuR2M7TWdCb0dkLGVoQnBHYyxFZ0J5T0w7TUFuSVQ7UUFDRSxzQkFONkQ7UUFPN0QsZUFQNkQsRUFhOUQ7UUFMQztVQUVFLDBCaEIzR1U7VWdCNEdWLGVoQjVHVSxFZ0I2R1g7RUF5RUg7SUFuRkEsMEJmakt1QjtJZWtLdkIsZWZsS3VCLEVlc1VsQjtJQTFMTDtNQUVFLDhCQUE2QixFQUM5QjtJQUlDO01BRUUsOEJBQTZCLEVBQzlCO0lBY0g7TUFDRSxzQkFONkQ7TUFPN0QsZUFQNkQsRUFhOUQ7TUFMQztRQUVFLDBCZnpLbUI7UWUwS25CLGVmMUttQixFZTJLcEI7SUF5RUg7TUFnRVUsMEJBQXlCLEVBQzFCO0lBakVUO01BbkZBLDBCZmpLdUI7TWVrS3ZCLGVmbEt1QixFZW9VZDtNQWhLVDtRQUNFLHNCQU42RDtRQU83RCxlQVA2RCxFQWE5RDtRQUxDO1VBRUUsMEJmekttQjtVZTBLbkIsZWYxS21CLEVlMktwQjtNQXlFSDtRQTZFYywwQkFBeUIsRUFDMUI7SUE5RWI7TUFuRkEsMEJmNUtnQjtNZTZLaEIsZWY3S2dCLEVlK1VQO01BaEtUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQmZwTFk7VWVxTFosZWZyTFksRWVzTGI7TUF5RUg7UUE2RWMsMEJBQXlCLEVBQzFCO0lBOUViO01BbkZBLDBCaEJyR2dCO01nQnNHaEIsZWhCdEdnQixFZ0J3UVA7TUFoS1Q7UUFDRSxzQkFONkQ7UUFPN0QsZUFQNkQsRUFhOUQ7UUFMQztVQUVFLDBCaEI3R1k7VWdCOEdaLGVoQjlHWSxFZ0IrR2I7TUF5RUg7UUE2RWMsMEJBQXlCLEVBQzFCO0lBOUViO01BbkZBLDBCaEJwR2dCO01nQnFHaEIsZWhCckdnQixFZ0J1UVA7TUFoS1Q7UUFDRSxzQkFONkQ7UUFPN0QsZUFQNkQsRUFhOUQ7UUFMQztVQUVFLDBCaEI1R1k7VWdCNkdaLGVoQjdHWSxFZ0I4R2I7TUF5RUg7UUE2RWMsMEJBQXlCLEVBQzFCO0lBOUViO01BbkZBLDBCaEJuR2M7TWdCb0dkLGVoQnBHYyxFZ0JzUUw7TUFoS1Q7UUFDRSxzQkFONkQ7UUFPN0QsZUFQNkQsRUFhOUQ7UUFMQztVQUVFLDBCaEIzR1U7VWdCNEdWLGVoQjVHVSxFZ0I2R1g7TUF5RUg7UUE2RWMsMEJBQXlCLEVBQzFCO0VBdEhiO0libkxBLGVBQWM7SUFDZCxTQUFRO0lBQ1IsVUFBUztJQUVULG9CYTJLWTtJYnpLWixZQUFXO0lBR1QsdUJBQXNCO0lBQ3RCLHdCQUF1QjtJQUN2QiwyQ0FBcUQ7SWEwS3JELG1CQUFrQjtJQUNsQixXQUFVO0lBRVYsc0JBQXFCO0lBQ3JCLGFBQU87SUFDUCxpQmhCd0V1QixFZ0J2RXhCO0VBZ0NEO0lBaUdRLDBCZnJWZSxFZXNWaEI7RUFsR1A7SUF1R1ksMEJmM1ZXLEVlNFZaO0VBeEdYO0lBdUdZLDBCZnRXSSxFZXVXTDtFQXhHWDtJQXVHWSwwQmhCL1JJLEVnQmdTTDtFQXhHWDtJQXVHWSwwQmhCOVJJLEVnQitSTDtFQXhHWDtJQXVHWSwwQmhCN1JFLEVnQjhSSDtFQXhHWDtJQWdISSxZQUFXO0lBQ1gsWUFBVztJQUNYLGVBQWdDLEVBQ2pDOztBQUVIO0VBR0ksc0JBQXFCLEVBQ3RCOztBeEI0Z0RMOztFeUJuekRFLGVBQWM7RUFDZCx1QkFBc0I7RUFDdEIsWUFBVztFQUNYLG1CQUxzSjtFQU10Six1QlhIdUQ7RVdJdkQsb0JqQmdYK0I7RWlCOVcvQiwwQmpCWm1CO0VpQmFuQixpQmpCR2U7RWlCRmYsdUJoQi9GUztFZ0JnR1QsK0NoQi9GUztFZ0JpR1QscUJqQmdXeUI7RWlCL1Z6QixzQlhadUQ7RVdhdkQsb0JqQkwyQjtFaUJNM0IsaUJqQjdCcUI7RWlCOEJyQixZaEJyR1M7RWdCd0dQLDREakJzVzhEO0VpQmpWOUQseUJBQWdCO0tBQWhCLHNCQUFnQjtVQUFoQixpQkFBZ0IsRUFDakI7RXpCNnhERDs7SXlCOXlERSxjQUFhO0lBQ2IsMEJqQjdCZTtJaUI4QmYsdUJoQmhITztJZ0JpSFAsNEJqQmhDaUI7SWlCbUNmLDREakIyVjRELEVpQnpWL0Q7O0FyQnFkQztFcUJ4Y0EsZ0JBQWUsRUFLaEI7RUFORDtJQUlJLGFBQVksRUFDYjs7QUFHSDs7RUFJSSxlakI3RGUsRWlCOERoQjs7QUFMSDs7RUFJSSxlakI3RGUsRWlCOERoQjs7QUFMSDs7RUFJSSxlakI3RGUsRWlCOERoQjs7QUFMSDs7O0VBVUksMEJqQnBFYztFaUJxRWQsb0JqQnlUNkIsRWlCeFQ5Qjs7QXpCNnhETDs7RXlCdnhESSx5QkFBZ0I7S0FBaEIsc0JBQWdCO1VBQWhCLGlCQUFnQjtFQUNoQixpQmpCNURhLEVpQjZEZDs7QUFHRDtFQUNFLHVCQUFzQixFQUN2Qjs7QXpCd3hESDs7O0UwQmg3REksdUJaNEVxRCxFWTNFdEQ7O0ExQm83REg7O0UwQi82REksc0JBQXFCO0VBQ3JCLHlCQUF3QjtFQUV4Qix3QkFBa0Q7RUFDbEQseUJaa0VxRDtFWWpFckQsaUJBQWdCLEVBS2pCO0UxQjQ2REQ7O0kwQjk2REksZ0JBQWUsRUFDaEI7O0FBSUg7O0VBRUUseUJBQW1ELEVBQ3BEOztBMUI4NkRIO0UwQjE2REksWUFBVyxFQUNaOztBQ0dEO0VBakJBLGVBQWM7RUFDZCxVQUFTO0VBRVQsc0JiNER1RDtFYTNEdkQsb0Ju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QXVDO0VBQXZDLDJEQUF1QztFQUd6QyxvQ0FBMkI7VUFBM0IsNEJBQTJCLEVKUjFCOztBQVVEO0VHb0JBLHFDQUZ5QjtNQUV6QixpQ0FGeUI7VUFFekIsNkJBRnlCLEVIaEJ4Qjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLGlDQUZ5QjtNQUV6Qiw2QkFGeUI7VUFFekIseUJBRnlCO0VDdkJ2QixnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUd6QyxvQ0FBMkI7VUFBM0IsNEJBQTJCLEVKUjFCOztBQVVEO0VHb0JBLHFDQUZ5QjtNQUV6QixpQ0FGeUI7VUFFekIsNkJBRnlCLEVIaEJ4Qjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLFdGaENrQztFSUFsQyw2QkFBNEIsRUxFM0I7O0FBVUQ7RUdvQkEsV0ZoQ3FDLEVEY3BDOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsV0YvQmtDO0VJRGxDLDZCQUE0QixFTEUzQjs7QUFVRDtFR29CQSxXRi9CcUMsRURhcEM7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYix1REdyQ21DO1VIcUNuQywrQ0dyQ21DO0VIcUNuQyw4QkY1Qm1EO01FNEJuRCwwQkY1Qm1EO1VFNEJuRCxzQkY1Qm1EO0VNR2pELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVQTjVCOztBQVVEO0VHb0JBLG9ER1Y0QztVSFU1Qyw0Q0dWNEM7RUNKMUMsV0FBMkIsRVBKNUI7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYix1REdwQ3FDO1VIb0NyQywrQ0dwQ3FDO0VIb0NyQyxnQ0YzQnFEO01FMkJyRCw0QkYzQnFEO1VFMkJyRCx3QkYzQnFEO0VNRW5ELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVQTjVCOztBQVVEO0VHb0JBLG9ER1Y0QztVSFU1Qyw0Q0dWNEM7RUNKMUMsV0FBMkIsRVBKNUI7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYixzREduQ2lDO1VIbUNqQyw4Q0duQ2lDO0VIbUNqQyxpQ0YxQnNEO01FMEJ0RCw2QkYxQnNEO1VFMEJ0RCx5QkYxQnNEO0VNQ3BELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVQTjVCOztBQVVEO0VHb0JBLG9ER1Y0QztVSFU1Qyw0Q0dWNEM7RUNKMUMsV0FBMkIsRVBKNUI7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYixzREdsQytCO1VIa0MvQiw4Q0dsQytCO0VIa0MvQiwrQkZ6Qm9EO01FeUJwRCwyQkZ6Qm9EO1VFeUJwRCx1QkZ6Qm9EO0VNQWxELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVQTjVCOztBQVVEO0VHb0JBLG9ER1Y0QztVSFU1Qyw0Q0dWNEM7RUNKMUMsV0FBMkIsRVBKNUI7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYix1REdyQ21DO1VIcUNuQywrQ0dyQ21DO0VIcUNuQyxpQ0dDZTtNSERmLDZCR0NlO1VIRGYseUJHQ2U7RUMxQmIsZ0RBQXVDO0VBQXZDLHdDQUF1QztFQUF2QywyREFBdUM7RUFDdkMsV0FBMkIsRVBONUI7O0FBVUQ7RUdvQkEsb0RHVjRDO1VIVTVDLDRDR1Y0QztFQ0oxQyxXQUEyQixFUEo1Qjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHVER3BDcUM7VUhvQ3JDLCtDR3BDcUM7RUhvQ3JDLGlDR0NlO01IRGYsNkJHQ2U7VUhEZix5QkdDZTtFQzFCYixnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQixFUE41Qjs7QUFVRDtFR29CQSxvREdWNEM7VUhVNUMsNENHVjRDO0VDSjFDLFdBQTJCLEVQSjVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5Qyw4QkZ0Qm1EO01Fc0JuRCwwQkZ0Qm1EO1VFc0JuRCxzQkZ0Qm1EO0VNSGpELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQThCLEVQTi9COztBQVVEO0VHb0JBLHVER3JDbUM7VUhxQ25DLCtDR3JDbUM7RUN1QmpDLFdBQThCLEVQSi9COztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QyxnQ0ZyQnFEO01FcUJyRCw0QkZyQnFEO1VFcUJyRCx3QkZyQnFEO0VNSm5ELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQThCLEVQTi9COztBQVVEO0VHb0JBLHVER3BDcUM7VUhvQ3JDLCtDR3BDcUM7RUNzQm5DLFdBQThCLEVQSi9COztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QyxpQ0ZwQnNEO01Fb0J0RCw2QkZwQnNEO1VFb0J0RCx5QkZwQnNEO0VNTHBELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQThCLEVQTi9COztBQVVEO0VHb0JBLHNER25DaUM7VUhtQ2pDLDhDR25DaUM7RUNxQi9CLFdBQThCLEVQSi9COztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QywrQkZuQm9EO01FbUJwRCwyQkZuQm9EO1VFbUJwRCx1QkZuQm9EO0VNTmxELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQThCLEVQTi9COztBQVVEO0VHb0JBLHNER2xDK0I7VUhrQy9CLDhDR2xDK0I7RUNvQjdCLFdBQThCLEVQSi9COztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QyxpQ0dDZTtNSERmLDZCR0NlO1VIRGYseUJHQ2U7RUMxQmIsZ0RBQXVDO0VBQXZDLHdDQUF1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REUsOEJBRGdIO0lGNUM5Ryx5QkFBNEI7SUFBNUIsd0JBQTRCLEVDVi9CO0VsRm9JRztJa0Z0SUo7TUN5REUsOEJBRGdIO01GNUM5Ryx5QkFBNEI7TUFBNUIsd0JBQTRCLEVDVi9CLEVBQUE7RWxGb0lHO0lrRnRJSjtNQ3lERSw4QkFEZ0g7TUY1QzlHLHlCQUE0QjtNQUE1Qix3QkFBNEIsRUNWL0IsRUFBQTtFQUZEO0lDeURFLDhCQURnSDtJRjVDOUcseUJBQTRCO0lBQTVCLHdCQUE0QixFQ1YvQjtFbEZvSUc7SWtGdElKO01DeURFLDhCQURnSDtNRjVDOUcseUJBQTRCO01BQTVCLHdCQUE0QixFQ1YvQixFQUFBO0VsRm9JRztJa0Z0SUo7TUN5REUsb0NBRGdIO01GNUM5Ryx5QkFBNEI7TUFBNUIsd0JBQTRCLEVDVi9CLEVBQUE7RUFGRDtJQ3lERSw4QkFEZ0g7SUY1QzlHLHlCQUE0QjtJQUE1Qix3QkFBNEIsRUNWL0I7RWxGb0lHO0lrRnRJSjtNQ3lERSw4QkFEZ0g7TUY1QzlHLHlCQUE0QjtNQUE1Qix3QkFBNEIsRUNWL0IsRUFBQTtFbEZvSUc7SWtGdElKO01DeURFLDhCQURnSDtNRjVDOUcseUJBQTRCO01BQTVCLHdCQUE0QixFQ1YvQixFQUFBO0VBRkQ7SUN5REUsOEJBRGdIO0lGNUM5Ryx5QkFBNEI7SUFBNUIsd0JBQTRCLEVDVi9CO0VsRm9JRztJa0Z0SUo7TUN5REUsOEJBRGdIO01GNUM5Ryx5QkFBNEI7TUFBNUIsd0JBQTRCLEVDVi9CLEVBQUE7RWxGb0lHO0lrRnRJSjtNQ3lERSw4QkFEZ0g7TUY1QzlHLHlCQUE0QjtNQUE1Qix3QkFBNEIsRUNWL0IsRUFBQTtFQUZEO0lDeURFLDhCQURnSDtJRjVDOUcseUJBQTRCO0lBQTVCLHdCQUE0QixFQ1YvQjtFbEZvSUc7SWtGdElKO01DeURFLDhCQURnSDtNRjVDOUcseUJBQTRCO01BQTVCLHdCQUE0QixFQ1YvQixFQUFBO0VsRm9JRztJa0Z0SUo7TUN5REUsb0NBRGdIO01GNUM5Ryx5QkFBNEI7TUFBNUIsd0JBQTRCLEVDVi9CLEVBQUE7RUFG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QkFIcUMsRTRFc21CUSxFQUFBO0V6RnZkM0M7SXlGc2NOO001RW5sQkksMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVzbUJRLEVBQUE7RXpGdmQzQztNZWhHRjtRQUNFLGFWcURzRCxFVXBEdkQsRUFBQTtFMEVvaUJMO0kzRTNsQkUsWUNlcUQ7SUErQnJELFlWNER5RDtJUWxHdkQsMEJBRnFDO0lBR3JDLHlCQUhxQyxFNEU0bEJsQztJekY3Y0Q7TXlGc2NOO1E1RW5sQkksMEJBRnFDO1FBR3JDLHlCQUhxQyxFNEU0bEJsQyxFQUFBO0kxRTdpQkg7TUFDRSxhVnFEc0QsRVVwRHZEO0VmOEZDO0l5RnNjTjtNM0UzbEJFLFdDZXFEO01BK0JyRCxZVjREeUQ7TVFsR3ZELDBCQUZxQztNQUdyQyx5QkFIcUMsRTRFaW1CUSxFQUFBO0V6RmxkM0M7SXlGc2NOO001RW5sQkksMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVpbUJRLEVBQUE7RXpGbGQzQztNZWhHRjtRQUNFLGFWcURzRCxFVXBEdkQsRUFBQTtFZjhGQztJeUZzY047TTNFM2xCRSxpQkNlcUQ7TUErQnJELFlWNER5RDtNUWxHdkQsMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVzbUJRLEVBQUE7RXpGdmQzQztJeUZzY047TTVFbmxCSSwwQkFGcUM7TUFHckMseUJBSHFDLEU0RXNtQlEsRUFBQTtFekZ2ZDNDO01laEdGO1FBQ0UsYVZxRHNELEVVcER2RCxFQUFBO0UwRW9pQkw7STNFM2xCRSxZQ2VxRDtJQStCckQsWVY0RHlEO0lRbEd2RCwwQkFGcUM7SUFHckMseUJBSHFDLEU0RTRsQmxDO0l6RjdjRDtNeUZzY047UTVFbmxCSSwwQkFGcUM7UUFHckMseUJBSHFDLEU0RTRsQmxDLEVBQUE7STFFN2lCSDtNQUNFLGFWcURzRCxFVXBEdkQ7RWY4RkM7SXlGc2NOO00zRTNsQkUsV0NlcUQ7TUErQnJELFlWNER5RDtNUWxHdkQsMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVpbUJRLEVBQUE7RXpGbGQzQztJeUZzY047TTVFbmxCSSwwQkFGcUM7TUFHckMseUJBSHFDLEU0RWltQlEsRUFBQTtFekZsZDNDO01laEdGO1FBQ0UsYVZxRHNELEVVcER2RCxFQUFBO0VmOEZDO0l5RnNjTjtNM0UzbEJFLGlCQ2VxRDtNQStCckQsWVY0RHlEO01RbEd2RCwwQkFGcUM7TUFHckMseUJBSHFDLEU0RXNtQlEsRUFBQTtFekZ2ZDNDO0l5RnNjTjtNNUVubEJJLDBCQUZxQztNQUdyQyx5QkFIcUMsRTRFc21CUSxFQUFBO0V6RnZkM0M7TWVoR0Y7UUFDRSxhVnFEc0QsRVVwRHZELEVBQUE7RTBFb2lCTDtJM0UzbEJFLFlDZXFEO0lBK0JyRCxZVjREeUQ7SVFsR3ZELDBCQUZxQztJQUdyQyx5QkFIcUMsRTRFNGxCbEM7SXpGN2NEO015RnNjTjtRNUVubEJJLDBCQUZxQztRQUdyQyx5QkFIcUMsRTRFNGxCbEMsRUFBQTtJMUU3aUJIO01BQ0UsYVZxRHNELEVVcER2RDtFZjhGQztJeUZzY047TTNFM2xCRSxXQ2VxRDtNQStCckQsWVY0RHlEO01RbEd2RCwwQkFGcUM7TUFHckMseUJBSHFDLEU0RWltQlEsRUFBQTtFekZsZDNDO0l5RnNjTjtNNUVubEJJLDBCQUZxQztNQUdyQyx5QkFIcUMsRTRFaW1CUSxFQUFBO0V6RmxkM0M7TWVoR0Y7UUFDRSxhVnFEc0QsRVVwRHZELEVBQUE7RWY4RkM7SXlGc2NOO00zRTNsQkUsaUJDZXFEO01BK0JyRCxZVjREeUQ7TVFsR3ZELDBCQUZxQztNQUdyQyx5QkFIcUMsRTRFc21CUSxFQUFBO0V6RnZkM0M7SXlGc2NOO001RW5sQkksMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVzbUJRLEVBQUE7RXpGdmQzQztNZWhHRjtRQUNFLGFWcURzRCxFVXBEdkQsRUFBQTtFMEVvaUJMO0kzRTNsQkUsWUNlcUQ7SUErQnJELFlWNER5RDtJUWxHdkQsMEJBRnFDO0lBR3JDLHlCQUhxQyxFNEU0bEJsQztJekY3Y0Q7TXlGc2NOO1E1RW5sQkksMEJBRnFDO1FBR3JDLHlCQUhxQyxFNEU0bEJsQyxFQUFBO0kxRTdpQkg7TUFDRSxhVnFEc0QsRVVwRHZEO0VmOEZDO0l5RnNjTjtNM0UzbEJFLFdDZXFEO01BK0JyRCxZVjREeUQ7TVFsR3ZELDBCQUZxQztNQUdyQyx5QkFIcUMsRTRFaW1CUSxFQUFBO0V6RmxkM0M7SXlGc2NOO001RW5sQkksMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVpbUJRLEVBQUE7RXpGbGQzQztNZWhHRjtRQUNFLGFWcURzRCxFVXBEdkQsRUFBQTtFZjhGQztJeUZzY047TTNFM2xCRSxpQkNlcUQ7TUErQnJELFlWNER5RDtNUWxHdkQsMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVzbUJRLEVBQUE7RXpGdmQzQztJeUZzY047TTVFbmxCSSwwQkFGcUM7TUFHckMseUJBSHFDLEU0RXNtQlEsRUFBQTtFekZ2ZDNDO01laEdGO1FBQ0UsYVZxRHNELEVVcER2RCxFQUFBO0UwRW9pQkw7STNFM2xCRSxZQ2VxRDtJQStCckQsWVY0RHlEO0lRbEd2RCwwQkFGcUM7SUFHckMseUJBSHFDLEU0RTRsQmxDO0l6RjdjRDtNeUZzY047UTVFbmxCSSwwQkFGcUM7UUFHckMseUJBSHFDLEU0RTRsQmxDLEVBQUE7STFFN2lCSDtNQUNFLGFWcURzRCxFVXBEdkQ7RWY4RkM7SXlGc2NOO00zRTNsQkUsV0NlcUQ7TUErQnJELFlWNER5RDtNUWxHdkQsMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVpbUJRLEVBQUE7RXpGbGQzQztJeUZzY047TTVFbmxCSSwwQkFGcUM7TUFHckMseUJBSHFDLEU0RWltQlEsRUFBQTtFekZsZDNDO01laEdGO1FBQ0UsYVZxRHNELEVVcER2RCxFQUFBO0VmOEZDO0l5RnNjTjtNM0UzbEJFLGlCQ2VxRDtNQStCckQsWVY0RHlEO01RbEd2RCwwQkFGcUM7TUFHckMseUJBSHFDLEU0RXNtQlEsRUFBQTtFekZ2ZDNDO0l5RnNjTjtNNUVubEJJLDBCQUZxQztNQUdyQyx5QkFIcUMsRTRFc21CUSxFQUFBO0V6RnZkM0M7TWVoR0Y7UUFDRSxhVnFEc0QsRVVwRHZELEVBQUE7RTBFb2lCTDtJM0UzbEJFLFlDZXFEO0lBK0JyRCxZVjREeUQ7SVFsR3ZELDBCQUZxQztJQUdyQyx5QkFIcUMsRTRFNGxCbEM7SXpGN2NEO015RnNjTjtRNUVubEJJLDBCQUZxQztRQUdyQyx5QkFIcUMsRTRFNGxCbEMsRUFBQTtJMUU3aUJIO01BQ0UsYVZxRHNELEVVcER2RDtFZjhGQztJeUZzY047TTNFM2xCRSxXQ2VxRDtNQStCckQsWVY0RHlEO01RbEd2RCwwQkFGcUM7TUFHckMseUJBSHFDLEU0RWltQlEsRUFBQTtFekZsZDNDO0l5RnNjTjtNNUVubEJJLDBCQUZxQztNQUdyQyx5QkFIcUMsRTRFaW1CUSxFQUFBO0V6RmxkM0M7TWVoR0Y7UUFDRSxhVnFEc0QsRVVwRHZELEVBQUE7RWY4RkM7SXlGc2NOO00zRTNsQkUsaUJDZXFEO01BK0JyRCxZVjREeUQ7TVFsR3ZELDBCQUZxQztNQUdyQyx5QkFIcUMsRTRFc21CUSxFQUFBO0V6RnZkM0M7SXlGc2NOO001RW5sQkksMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVzbUJRLEVBQUE7RXpGdmQzQztNZWhHRjtRQUNFLGFWcURzRCxFVXBEdkQsRUFBQTtFMEVvaUJMO0kzRTNsQkUsWUNlcUQ7SUErQnJELFlWNER5RDtJUWxHdkQsMEJBRnFDO0lBR3JDLHlCQUhxQyxFNEU0bEJsQztJekY3Y0Q7TXlGc2NOO1E1RW5sQkksMEJBRnFDO1FBR3JDLHlCQUhxQyxFNEU0bEJsQyxFQUFBO0kxRTdpQkg7TUFDRSxhVnFEc0QsRVVwRHZEO0VmOEZDO0l5RnNjTjtNM0UzbEJFLFdDZXFEO01BK0JyRCxZVjREeUQ7TVFsR3ZELDBCQUZxQztNQUdyQyx5QkFIcUMsRTRFaW1CUSxFQUFBO0V6RmxkM0M7SXlGc2NOO001RW5sQkksMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVpbUJRLEVBQUE7RXpGbGQzQztNZWhHRjtRQUNFLGFWcURzRCxFVXBEdkQsRUFBQTtFZjhGQztJeUZzY047TTNFM2xCRSxpQkNlcUQ7TUErQnJELFlWNER5RDtNUWxHdkQsMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVzbUJRLEVBQUE7RXpGdmQzQztJeUZzY047TTVFbmxCSSwwQkFGcUM7TUFHckMseUJBSHFDLEU0RXNtQlEsRUFBQTtFekZ2ZDNDO01laEdGO1FBQ0UsYVZxRHNELEVVcER2RCxFQUFBO0UwRW9pQkw7STNFM2xCRSxZQ2VxRDtJQStCckQsWVY0RHlEO0lRbEd2RCwwQkFGcUM7SUFHckMseUJBSHFDLEU0RTRsQmxDO0l6RjdjRDtNeUZzY047UTVFbmxCSSwwQkFGcUM7UUFHckMseUJBSHFDLEU0RTRsQmxDLEVBQUE7STFFN2lCSDtNQUNFLGFWcURzRCxFVXBEdkQ7RWY4RkM7SXlGc2NOO00zRTNsQkUsV0NlcUQ7TUErQnJELFlWNER5RDtNUWxHdkQsMEJBRnFDO01BR3JDLHlCQUhxQyxFNEVpbUJRLEVBQUE7RXpGbGQzQztJeUZzY047TTVFbmxCSSwwQkFGcUM7TUFHckMseUJBSHFDLEU0RWltQlEsRUFBQTtFekZsZDNDO01laEdGO1FBQ0UsYVZxRHNELEVVcER2RCxFQUFBO0VmOEZDO0l5RnNjTjtNM0UzbEJFLGlCQ2VxRDtNQStCckQsWVY0RHlEO01RbEd2RCwwQkFGcUM7TUFHckMseUJBSHFDLEU0RXNtQlEsRUFBQTtFekZ2ZDNDO0l5RnNjTjtNNUVubEJJLDBCQUZxQztNQUdyQyx5QkFIcUMsRTRFc21CUSxFQUFBO0V6RnZkM0M7TWVoR0Y7UUFDRSxhVnFEc0QsRVVwRHZELEVBQUE7RTBFb2lCTDtJQXVCSSx1QkFBc0IsRUFDdkI7RUF4Qkg7SUEyQkksdUJBQXNCO0lBQUUsMEJBQXlCO0lBQ2pELG1CQUFrQixFQUVuQjs7QUFNSCw0Q0FBNEM7QTFEMWYxQztFMEQ2ZkEsaUJBQWdCO0VBQ2hCLDRCQUEyQjtFQUMzQix3QkFBdUI7RUFDdkIsZ0I3RTNqQnVEO0U2RTRqQnZELGVsRm5vQnVCLEVrRjByQnhCO0V6RnhpQks7SStCaEJKO00wRG9nQkUsc0I3RS9qQnFELEU2RW1uQnhELEVBQUE7RXpGeGlCSztJK0JoQko7TTBEdWdCRSxzQjdFbGtCcUQsRTZFbW5CeEQsRUFBQTtFQTdERDtJQW1CSSx3QkFBdUI7SUFDdkIsZWxGanBCcUIsRWtGa3BCdEI7RUFFUTtJQU1MLFlsRmxwQlEsRWtG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LEVBRXJCLEVBQUE7RUFqQkg7SUFtQkksYUFBWTtJQUFFLGdCQUFlO0lBQzdCLGlCQUFnQjtJQUNoQiwyQkFBMEI7SUFDMUIsOEJBQTZCO0lBQzdCLDBCQUF5QixFQUMxQjtFQXhCSDtJbkIxWkUsc0JqRVZ1RCxFb0ZrY3REO0loR3ZYRztNZ0d5Vk47UW5CdlpJLHNCakVicUQsRW9Ga2N0RCxFQUFBO0loR3ZYRztNZ0d5Vk47UW5CcFpJLHNCakVoQnFELEVvRmtjdEQsRUFBQTtFQTlCSDtJbkIxWkUsc0JqRVZ1RCxFb0ZxY3REO0loRzFYRztNZ0d5Vk47UW5CdlpJLHNCakVicUQsRW9GcWN0RCxFQUFBO0loRzFYRztNZ0d5Vk47UW5CcFpJLHNCakVoQnFELEVvRnFjdEQsRUFBQTtFaEcxWEc7SWdHeVZOO01BdUNNLGdCQUFlO01BTWY7Ozs7Ozs7Ozs7UUFVRSxFQUVIO01BekRMO1FBMENRLGtCQUFpQjtRQUNqQixtQnpGOWdCTSxFeUYrZ0JQLEVBQUE7O0FBbUJQLGdEQUFnRCIsImZpbGUiOiJhcHAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuNC4zXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbCwgLnJldmVhbC50aW55LCAucmV2ZWFsLnNtYWxsLCAucmV2ZWFsLmxhcmdlIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cblxuLyohIG5vcm1hbGl6ZS1zY3NzIHwgTUlUL0dQTHYyIExpY2Vuc2UgfCBiaXQubHkvbm9ybWFsaXplLXNjc3MgKi9cbi8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMiAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi8gfVxuXG4vKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAgICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gICAgICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5maWdjYXB0aW9uLFxuZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qIExpbmtzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICAgKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gICAgICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAgICAgKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovIH1cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cbiAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi8gfVxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG4vKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi9cbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgICAgICovIH1cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIENoYW5nZSB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgICAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICAgKi9cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00MGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiBcIkxhdG9cIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA2Ni42NjY2N3JlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93OjpiZWZvcmUsIC5yb3c6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7IH1cbiAgLnJvdzo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC44MzMzM3JlbTtcbiAgICBtYXJnaW4tbGVmdDogLTAuODMzMzNyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC44MzMzM3JlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjgzMzMzcmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC44MzMzM3JlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjgzMzMzcmVtOyB9IH1cbiAgICAucm93IC5yb3cuY29sbGFwc2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnJvdy5leHBhbmRlZCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gICAgLnJvdy5leHBhbmRlZCAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5yb3c6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5yb3cuZ3V0dGVyLXNtYWxsID4gLmNvbHVtbiwgLnJvdy5ndXR0ZXItc21hbGwgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH1cbiAgLnJvdy5ndXR0ZXItbWVkaXVtID4gLmNvbHVtbiwgLnJvdy5ndXR0ZXItbWVkaXVtID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9XG5cbi5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29sdW1uLCAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgLmNvbHVtbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAuY29sdW1uczpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLmNvbHVtbi5lbmQ6bGFzdC1jaGlsZDpsYXN0LWNoaWxkLCAuZW5kLmNvbHVtbnM6bGFzdC1jaGlsZDpsYXN0LWNoaWxkLCAucHJvamVjdHMtY29udGVudCAuZmFjZXR3cC10ZW1wbGF0ZSAuY29sdW1uczpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5jb2x1bW4ucm93LnJvdywgLnJvdy5yb3cuY29sdW1ucyB7XG4gIGZsb2F0OiBub25lOyB9XG5cbi5yb3cgLmNvbHVtbi5yb3cucm93LCAucm93IC5yb3cucm93LmNvbHVtbnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnNtYWxsLTEge1xuICB3aWR0aDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTsgfVxuXG4uc21hbGwtMiB7XG4gIHdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0xNi42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC0zIHtcbiAgd2lkdGg6IDI1JTsgfVxuXG4uc21hbGwtcHVzaC0zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAyNSU7IH1cblxuLnNtYWxsLXB1bGwtMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTI1JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC00IHtcbiAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC00IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTMzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi5zbWFsbC01IHtcbiAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC01IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTQxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC02IHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uc21hbGwtcHVzaC02IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1MCU7IH1cblxuLnNtYWxsLXB1bGwtNiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTUwJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC03IHtcbiAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC03IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtNyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTU4LjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi5zbWFsbC04IHtcbiAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC04IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtOCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTY2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC05IHtcbiAgd2lkdGg6IDc1JTsgfVxuXG4uc21hbGwtcHVzaC05IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA3NSU7IH1cblxuLnNtYWxsLXB1bGwtOSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTc1JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC0xMCB7XG4gIHdpZHRoOiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtMTAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC0xMCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTgzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi5zbWFsbC0xMSB7XG4gIHdpZHRoOiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtMTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC0xMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTkxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtMTIge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtdXAtMSA+IC5jb2x1bW4sIC5zbWFsbC11cC0xID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTIgPiAuY29sdW1uLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA1MCU7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTMgPiAuY29sdW1uLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTQgPiAuY29sdW1uLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAyNSU7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLnNtYWxsLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTUgPiAuY29sdW1uLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAyMCU7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTYgPiAuY29sdW1uLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTcgPiAuY29sdW1uLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLnNtYWxsLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLnNtYWxsLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTggPiAuY29sdW1uLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMi41JTsgfVxuICAuc21hbGwtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uc21hbGwtY29sbGFwc2UgLnJvdyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmV4cGFuZGVkLnJvdyAuc21hbGwtY29sbGFwc2Uucm93IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH1cblxuLnNtYWxsLWNlbnRlcmVkIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAuc21hbGwtY2VudGVyZWQsIC5zbWFsbC1jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4uc21hbGwtdW5jZW50ZXJlZCxcbi5zbWFsbC1wdXNoLTAsXG4uc21hbGwtcHVsbC0wIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1bGwtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLm1lZGl1bS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTE2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tcHVzaC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tcHVsbC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTI1JTsgfVxuICAubWVkaXVtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1bGwtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0zMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubWVkaXVtLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tcHVsbC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTUwJTsgfVxuICAubWVkaXVtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1bGwtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubWVkaXVtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5tZWRpdW0tcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNzUlOyB9XG4gIC5tZWRpdW0tcHVsbC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTc1JTsgfVxuICAubWVkaXVtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubWVkaXVtLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAubWVkaXVtLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTIgPiAuY29sdW1uLCAubWVkaXVtLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAubWVkaXVtLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTMgPiAuY29sdW1uLCAubWVkaXVtLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTQgPiAuY29sdW1uLCAubWVkaXVtLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTUgPiAuY29sdW1uLCAubWVkaXVtLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTYgPiAuY29sdW1uLCAubWVkaXVtLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTcgPiAuY29sdW1uLCAubWVkaXVtLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAgIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAubWVkaXVtLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTggPiAuY29sdW1uLCAubWVkaXVtLXVwLTggPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tY29sbGFwc2UgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5leHBhbmRlZC5yb3cgLm1lZGl1bS1jb2xsYXBzZS5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH1cbiAgLm1lZGl1bS1jZW50ZXJlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLm1lZGl1bS1jZW50ZXJlZCwgLm1lZGl1bS1jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLm1lZGl1bS11bmNlbnRlcmVkLFxuICAubWVkaXVtLXB1c2gtMCxcbiAgLm1lZGl1bS1wdWxsLTAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubGFyZ2UtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5sYXJnZS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLmxhcmdlLXB1bGwtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0yNSU7IH1cbiAgLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0zMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5sYXJnZS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5sYXJnZS1wdXNoLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLmxhcmdlLXB1bGwtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01MCU7IH1cbiAgLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5sYXJnZS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02Ni42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5sYXJnZS1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLmxhcmdlLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7IH1cbiAgLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04My4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5sYXJnZS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXVwLTEgPiAuY29sdW1uLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC5sYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTMgPiAuY29sdW1uLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC00ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNSA+IC5jb2x1bW4sIC5sYXJnZS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTYgPiAuY29sdW1uLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC03ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC03ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtOCA+IC5jb2x1bW4sIC5sYXJnZS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmxhcmdlLWNvbGxhcHNlIC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZXhwYW5kZWQucm93IC5sYXJnZS1jb2xsYXBzZS5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9XG4gIC5sYXJnZS1jZW50ZXJlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLmxhcmdlLWNlbnRlcmVkLCAubGFyZ2UtY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5sYXJnZS11bmNlbnRlcmVkLFxuICAubGFyZ2UtcHVzaC0wLFxuICAubGFyZ2UtcHVsbC0wIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbi5jb2x1bW4tYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAxLjY2NjY3cmVtOyB9XG4gIC5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb2x1bW4tYmxvY2sge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS42NjY2N3JlbTsgfVxuICAgICAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbmRpdixcbmRsLFxuZHQsXG5kZCxcbnVsLFxub2wsXG5saSxcbmgxLFxuaDIsXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtaGVhZGluZyxcbmJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sXG5oMyxcbi5hY2NvcmRpb24tdGl0bGUsXG5oNCxcbi5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXRhaWxzLWhkcixcbi5ob21lLW5ld3MgLnRpdGxlLFxuLmhvbWUtam9icyAudGl0bGUsXG5oNSxcbmg2LFxucHJlLFxuZm9ybSxcbnAsXG5hZGRyZXNzLFxuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbCxcbmJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cblxucCxcbmFkZHJlc3MsXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLFxuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS42O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5oMSwgLmgxLFxuaDIsXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtaGVhZGluZyxcbmJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sIC5oMixcbmgzLFxuLmFjY29yZGlvbi10aXRsZSwgLmgzLFxuaDQsXG4uc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1oZHIsXG4uaG9tZS1uZXdzIC50aXRsZSxcbi5ob21lLWpvYnMgLnRpdGxlLCAuaDQsXG5oNSwgLmg1LFxuaDYsIC5oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIlNhaXJhXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG4gIGgxIHNtYWxsLCAuaDEgc21hbGwsXG4gIGgyIHNtYWxsLFxuICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10gc21hbGwsXG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1oZWFkaW5nIHNtYWxsLFxuICBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gaW5wdXRbdHlwZT0ndGV4dCddIHNtYWxsLCAuaDIgc21hbGwsXG4gIGgzIHNtYWxsLFxuICAuYWNjb3JkaW9uLXRpdGxlIHNtYWxsLCAuaDMgc21hbGwsXG4gIGg0IHNtYWxsLFxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1oZHIgc21hbGwsXG4gIC5ob21lLW5ld3MgLnRpdGxlIHNtYWxsLFxuICAuaG9tZS1qb2JzIC50aXRsZSBzbWFsbCwgLmg0IHNtYWxsLFxuICBoNSBzbWFsbCwgLmg1IHNtYWxsLFxuICBoNiBzbWFsbCwgLmg2IHNtYWxsIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBjb2xvcjogI2NhY2FjYTsgfVxuXG5oMSwgLmgxIHtcbiAgZm9udC1zaXplOiAxLjMzMzMzcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuXG5oMixcbmJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSxcbmJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1oZWFkaW5nLFxuYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgLmgyIHtcbiAgZm9udC1zaXplOiAxLjExMTExcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuXG5oMyxcbi5hY2NvcmRpb24tdGl0bGUsIC5oMyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cblxuaDQsXG4uc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1oZHIsXG4uaG9tZS1uZXdzIC50aXRsZSxcbi5ob21lLWpvYnMgLnRpdGxlLCAuaDQge1xuICBmb250LXNpemU6IDAuODg4ODlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNSwgLmg1IHtcbiAgZm9udC1zaXplOiAwLjgzMzMzcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDYsIC5oNiB7XG4gIGZvbnQtc2l6ZTogMC44MzMzM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogMS44ODg4OXJlbTsgfVxuICBcbiAgaDIsXG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSxcbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWhlYWRpbmcsXG4gIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sIC5oMiB7XG4gICAgZm9udC1zaXplOiAxLjQ0NDQ0cmVtOyB9XG4gIFxuICBoMyxcbiAgLmFjY29yZGlvbi10aXRsZSwgLmgzIHtcbiAgICBmb250LXNpemU6IDEuMTExMTFyZW07IH1cbiAgXG4gIGg0LFxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1oZHIsXG4gIC5ob21lLW5ld3MgLnRpdGxlLFxuICAuaG9tZS1qb2JzIC50aXRsZSwgLmg0IHtcbiAgICBmb250LXNpemU6IDFyZW07IH1cbiAgaDUsIC5oNSB7XG4gICAgZm9udC1zaXplOiAwLjg4ODg5cmVtOyB9XG4gIGg2LCAuaDYge1xuICAgIGZvbnQtc2l6ZTogMC44ODg4OXJlbTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogMi4zMzMzM3JlbTsgfVxuICBcbiAgaDIsXG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSxcbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWhlYWRpbmcsXG4gIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sIC5oMiB7XG4gICAgZm9udC1zaXplOiAxLjg4ODg5cmVtOyB9XG4gIFxuICBoMyxcbiAgLmFjY29yZGlvbi10aXRsZSwgLmgzIHtcbiAgICBmb250LXNpemU6IDEuMzMzMzNyZW07IH1cbiAgXG4gIGg0LFxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1oZHIsXG4gIC5ob21lLW5ld3MgLnRpdGxlLFxuICAuaG9tZS1qb2JzIC50aXRsZSwgLmg0IHtcbiAgICBmb250LXNpemU6IDEuMTY2NjdyZW07IH1cbiAgaDUsIC5oNSB7XG4gICAgZm9udC1zaXplOiAxLjA1NTU2cmVtOyB9XG4gIGg2LCAuaDYge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICNkMDU1MTE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjYjM0OTBmOyB9XG4gIGEgaW1nIHtcbiAgICBib3JkZXI6IDA7IH1cblxuaHIge1xuICBjbGVhcjogYm90aDtcbiAgbWF4LXdpZHRoOiA2Ni42NjY2N3JlbTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDEuMTExMTFyZW0gYXV0bztcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxudWwsXG5vbCxcbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG51bCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cblxub2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICBkbCBkdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwIDAgMCAwO1xuICBib3JkZXItbGVmdDogbm9uZTsgfVxuICBibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAsIGJsb2NrcXVvdGUgYWRkcmVzcywgYmxvY2txdW90ZSBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgYmxvY2txdW90ZSAuc3QtdWktdHlwZS1kZXRhaWwsIGJsb2NrcXVvdGUgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgYmxvY2txdW90ZSAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBjb2xvcjogIzY2NjsgfVxuXG5jaXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC43MjIyMnJlbTtcbiAgY29sb3I6ICM4YThhOGE7IH1cbiAgY2l0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCUIFwiOyB9XG5cbmFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAwO1xuICBjdXJzb3I6IGhlbHA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuY29kZSB7XG4gIHBhZGRpbmc6IDAuMTExMTFyZW0gMC4yNzc3OHJlbSAwLjA1NTU2cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwMDA7IH1cblxua2JkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjExMTExcmVtIDAuMjIyMjJyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDIyLjVweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG4uc3RhdCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuICBwICsgLnN0YXQsIGFkZHJlc3MgKyAuc3RhdCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbCArIC5zdGF0LCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQgKyAuc3RhdCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cblxudWwubm8tYnVsbGV0LCBvbC5uby1idWxsZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubWVkaXVtLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5tZWRpdW0tdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVkaXVtLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5sYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5sYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG4uc2hvdy1mb3ItcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7IH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207IH1cbiAgXG4gIHAsXG4gIGFkZHJlc3MsXG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwsXG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCxcbiAgaDIsXG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSxcbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWhlYWRpbmcsXG4gIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sXG4gIGgzLFxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBcbiAgaDIsXG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSxcbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWhlYWRpbmcsXG4gIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sXG4gIGgzLFxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bzsgfSB9XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IDAuODVlbSAxZW07XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDA1NTExO1xuICBjb2xvcjogI2ZmZjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjE0ODBlO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idXR0b24udGlueSB7XG4gICAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLmJ1dHRvbi5zbWFsbCB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5idXR0b24ubGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDA1NTExO1xuICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E2NDQwZTtcbiAgICAgIGNvbG9yOiAjMDAwOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdhOWFjO1xuICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4NDg3OGI7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAuYnV0dG9uLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgICAuYnV0dG9uLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uc3VjY2Vzczpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICMwMDA7IH1cbiAgLmJ1dHRvbi53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjMDAwOyB9XG4gIC5idXR0b24uYWxlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgICAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNTNiMmE7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC4yNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDA1NTExO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnksIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnkge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeSwgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnk6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnksIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnk6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnk6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDA1NTExO1xuICAgICAgICBjb2xvcjogIzAwMDsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnkge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5LCAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnk6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeSwgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdhOWFjO1xuICAgICAgICBjb2xvcjogIzAwMDsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuc3VjY2VzcywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcyB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzLCAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQuc3VjY2Vzczpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2Vzczpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nIHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmcsIC5idXR0b24uZGlzYWJsZWQud2FybmluZzpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbiAgICAgICAgY29sb3I6ICMwMDA7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydCB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydCwgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydDpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydDpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgICAgIGNvbG9yOiAjMDAwOyB9XG4gIC5idXR0b24uaG9sbG93IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDA1NTExO1xuICAgIGNvbG9yOiAjZDA1NTExOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3csIC5idXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uaG9sbG93LmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjNjgyYjA5O1xuICAgICAgY29sb3I6ICM2ODJiMDk7IH1cbiAgICAgIC5idXR0b24uaG9sbG93OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdzpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdzpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDA1NTExO1xuICAgICAgICBjb2xvcjogI2QwNTUxMTsgfVxuICAgIC5idXR0b24uaG9sbG93LnByaW1hcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QwNTUxMTtcbiAgICAgIGNvbG9yOiAjZDA1NTExOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjgyYjA5O1xuICAgICAgICBjb2xvcjogIzY4MmIwOTsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMDU1MTE7XG4gICAgICAgICAgY29sb3I6ICNkMDU1MTE7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2E3YTlhYztcbiAgICAgIGNvbG9yOiAjYTdhOWFjOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzUyNTQ1NztcbiAgICAgICAgY29sb3I6ICM1MjU0NTc7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhN2E5YWM7XG4gICAgICAgICAgY29sb3I6ICNhN2E5YWM7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzYWRiNzY7XG4gICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgICAgICAgY29sb3I6ICMxNTc1Mzk7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM4MDU3MDA7XG4gICAgICAgIGNvbG9yOiAjODA1NzAwOyB9XG4gICAgICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgIC5idXR0b24uaG9sbG93LmFsZXJ0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gICAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjcyNTFhO1xuICAgICAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgICAgICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5idXR0b24uY2xlYXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMDU1MTE7XG4gICAgY29sb3I6ICNkMDU1MTE7IH1cbiAgICAuYnV0dG9uLmNsZWFyLCAuYnV0dG9uLmNsZWFyOmhvdmVyLCAuYnV0dG9uLmNsZWFyOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjNjgyYjA5O1xuICAgICAgY29sb3I6ICM2ODJiMDk7IH1cbiAgICAgIC5idXR0b24uY2xlYXI6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMDU1MTE7XG4gICAgICAgIGNvbG9yOiAjZDA1NTExOyB9XG4gICAgLmJ1dHRvbi5jbGVhciwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyOmZvY3VzLCAuYnV0dG9uLmNsZWFyOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMDU1MTE7XG4gICAgICBjb2xvcjogI2QwNTUxMTsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM2ODJiMDk7XG4gICAgICAgIGNvbG9yOiAjNjgyYjA5OyB9XG4gICAgICAgIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDA1NTExO1xuICAgICAgICAgIGNvbG9yOiAjZDA1NTExOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnByaW1hcnksIC5idXR0b24uY2xlYXIucHJpbWFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cywgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhN2E5YWM7XG4gICAgICBjb2xvcjogI2E3YTlhYzsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNTI1NDU3O1xuICAgICAgICBjb2xvcjogIzUyNTQ1NzsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTdhOWFjO1xuICAgICAgICAgIGNvbG9yOiAjYTdhOWFjOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeSwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuc3VjY2VzcyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTU3NTM5O1xuICAgICAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICAgICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc3VjY2Vzc1tkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmcge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICAgICAgY29sb3I6ICM4MDU3MDA7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gICAgICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uY2xlYXIud2FybmluZywgLmJ1dHRvbi5jbGVhci53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmdbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZzpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5hbGVydCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM2NzI1MWE7XG4gICAgICAgIGNvbG9yOiAjNjcyNTFhOyB9XG4gICAgICAgIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICAgICAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5hbGVydCwgLmJ1dHRvbi5jbGVhci5hbGVydC5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIsIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNGVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdzo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNkMDU1MTE7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cucHJpbWFyeTo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNkMDU1MTE7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuc2Vjb25kYXJ5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2E3YTlhYzsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zdWNjZXNzOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzNhZGI3NjsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy53YXJuaW5nOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmYWUwMDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5hbGVydDo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNjYzRiMzc7IH1cbiAgLmJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgdG9wOiAtMC4xZW07XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuYS5idXR0b246aG92ZXIsIGEuYnV0dG9uOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cblt0eXBlPSd0ZXh0J10sIFt0eXBlPSdwYXNzd29yZCddLCBbdHlwZT0nZGF0ZSddLCBbdHlwZT0nZGF0ZXRpbWUnXSwgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sIFt0eXBlPSdtb250aCddLCBbdHlwZT0nd2VlayddLCBbdHlwZT0nZW1haWwnXSwgW3R5cGU9J251bWJlciddLCBbdHlwZT0nc2VhcmNoJ10sIFt0eXBlPSd0ZWwnXSwgW3R5cGU9J3RpbWUnXSwgW3R5cGU9J3VybCddLCBbdHlwZT0nY29sb3InXSxcbnRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIuMTY2NjdyZW07XG4gIG1hcmdpbjogMCAwIDAuODg4ODlyZW07XG4gIHBhZGRpbmc6IDAuNDQ0NDRyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuODg4ODlyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMDAwO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWFbcm93c10ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2NhY2FjYTsgfVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cblt0eXBlPSdzdWJtaXQnXSxcblt0eXBlPSdidXR0b24nXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luOiAwIDAgMC44ODg4OXJlbTsgfVxuXG5bdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW4tbGVmdDogMC40NDQ0NHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjg4ODg5cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWxbZm9yXSxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbFtmb3JdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxubGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbmxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNDQ0NDRyZW07IH1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjc3Nzc4cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzAwMDsgfVxuICBsYWJlbC5taWRkbGUge1xuICAgIG1hcmdpbjogMCAwIDAuODg4ODlyZW07XG4gICAgcGFkZGluZzogMC41cmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjQ0NDQ0cmVtO1xuICBmb250LXNpemU6IDAuNzIyMjJyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICMwMDA7IH1cblxuLmlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjg4ODg5cmVtOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6bGFzdC1jaGlsZCA+ICoge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsLCAuaW5wdXQtZ3JvdXAtZmllbGQsIC5pbnB1dC1ncm91cC1idXR0b24sIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbi5pbnB1dC1ncm91cC1idXR0b24gaW5wdXQsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbi5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICBtYXJnaW46IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMSU7XG4gIGhlaWdodDogMTAwJTsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgaGVpZ2h0OiAyLjIyMjIycmVtOyB9XG5cbi5pbnB1dC1ncm91cC1idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDElO1xuICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gICAgaGVpZ2h0OiAyLjIyMjIycmVtO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMC44ODg4OXJlbTsgfVxuXG4uaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cblxuZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgfVxuXG5sZWdlbmQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNDQ0NDRyZW07IH1cblxuLmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIHBhZGRpbmc6IDEuMTExMTFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7IH1cbiAgLmZpZWxkc2V0IGxlZ2VuZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4xNjY2N3JlbTtcbiAgICBwYWRkaW5nOiAwIDAuMTY2NjdyZW07IH1cblxuc2VsZWN0IHtcbiAgaGVpZ2h0OiAyLjE2NjY3cmVtO1xuICBtYXJnaW46IDAgMCAwLjg4ODg5cmVtO1xuICBwYWRkaW5nOiAwLjQ0NDQ0cmVtO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjg4ODg5cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzAwMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiByZ2IlMjgxMzgsIDEzOCwgMTM4JTI5Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0wLjg4ODg5cmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjMzMzMzcmVtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT1cIik7IH0gfVxuICBzZWxlY3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2NhY2FjYTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBzZWxlY3Q6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICBzZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgc2VsZWN0W211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBib3JkZXItY29sb3I6ICNjYzRiMzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWVkZWI7IH1cbiAgLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cyk6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuXG4uaXMtaW52YWxpZC1sYWJlbCB7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNDQ0NDRyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuODg4ODlyZW07XG4gIGZvbnQtc2l6ZTogMC42NjY2N3JlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5hY2NvcmRpb24ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gIC5hY2NvcmRpb25bZGlzYWJsZWRdIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLmFjY29yZGlvbi1pdGVtOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uYWNjb3JkaW9uLWl0ZW06bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uYWNjb3JkaW9uLXRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMS4yNXJlbSAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMS4zMzMzM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjZDA1NTExOyB9XG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+IC5hY2NvcmRpb24tdGl0bGUge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgY29udGVudDogJysnOyB9XG4gIC5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXDIwMTMnOyB9XG5cbi5hY2NvcmRpb24tY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMCAzMHB4IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICMzMzMzMzM7IH1cbiAgOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgbGkge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgIHJpZ2h0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudS5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudS5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXJlbTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IH1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uaGFzLXN1Ym1lbnUtdG9nZ2xlID4gYSB7XG4gIG1hcmdpbi1yaWdodDogNDBweDsgfVxuXG4uc3VibWVudS10b2dnbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDsgfVxuICAuc3VibWVudS10b2dnbGU6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBtYXJnaW46IGF1dG87IH1cblxuLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IH1cblxuLnN1Ym1lbnUtdG9nZ2xlLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgYm9yZGVyOiAwOyB9XG5cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAyLjFlbTtcbiAgcGFkZGluZzogMC4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogI2QwNTUxMTtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmJhZGdlLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICNkMDU1MTE7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgLmJhZGdlLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogI2E3YTlhYztcbiAgICBjb2xvcjogIzAwMDsgfVxuICAuYmFkZ2Uuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogIzNhZGI3NjtcbiAgICBjb2xvcjogIzAwMDsgfVxuICAuYmFkZ2Uud2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogI2ZmYWUwMDtcbiAgICBjb2xvcjogIzAwMDsgfVxuICAuYmFkZ2UuYWxlcnQge1xuICAgIGJhY2tncm91bmQ6ICNjYzRiMzc7XG4gICAgY29sb3I6ICMwMDA7IH1cblxuLmJyZWFkY3J1bWJzIHtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5icmVhZGNydW1iczo6YmVmb3JlLCAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7IH1cbiAgLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJyZWFkY3J1bWJzIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDAuNjExMTFyZW07XG4gICAgY29sb3I6ICMwMDA7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuYnJlYWRjcnVtYnMgbGk6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwIDAuNzVyZW07XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29udGVudDogXCIvXCI7XG4gICAgICBjb2xvcjogI2NhY2FjYTsgfVxuICAuYnJlYWRjcnVtYnMgYSB7XG4gICAgY29sb3I6ICNkMDU1MTE7IH1cbiAgICAuYnJlYWRjcnVtYnMgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuYnJlYWRjcnVtYnMgLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5idXR0b24tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IDA7IH1cbiAgLmJ1dHRvbi1ncm91cDo6YmVmb3JlLCAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnOyB9XG4gIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnV0dG9uLWdyb3VwIC5idXR0b24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07IH1cbiAgICAuYnV0dG9uLWdyb3VwIC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmJ1dHRvbi1ncm91cC50aW55IC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAuc21hbGwgLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAubGFyZ2UgLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQge1xuICAgIG1hcmdpbi1yaWdodDogLTFweDsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQ6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMik6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMikgfiAuYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDFweCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB+IC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpIH4gLmJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMykgfiAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC02cHg7IH1cbiAgICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNCksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KSB+IC5idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMXB4KTtcbiAgICAgIG1hcmdpbi1yaWdodDogMXB4OyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNCk6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4OyB9XG4gICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDUpLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSkgfiAuYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBjYWxjKDIwJSAtIDFweCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDUpOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KSB+IC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDYpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDYpIH4gLmJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNik6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNikgfiAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC02cHg7IH1cbiAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkMDU1MTE7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E2NDQwZTtcbiAgICAgIGNvbG9yOiAjMDAwOyB9XG4gIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhN2E5YWM7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4NDg3OGI7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICBjb2xvcjogIzAwMDsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICMwMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgICAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjMDAwOyB9XG4gIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICBjb2xvcjogIzAwMDsgfVxuICAgIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNTNiMmE7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24ge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAuYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5jYWxsb3V0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzMzMzMzMzsgfVxuICAuY2FsbG91dCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuY2FsbG91dCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jYWxsb3V0LnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2U0ZDc7XG4gICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgLmNhbGxvdXQuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYzO1xuICAgIGNvbG9yOiAjMzMzMzMzOyB9XG4gIC5jYWxsb3V0LnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMWZhZWE7XG4gICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgLmNhbGxvdXQud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNkOTtcbiAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAuY2FsbG91dC5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZTRlMTtcbiAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAuY2FsbG91dC5zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsgfVxuICAuY2FsbG91dC5sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cblxuLmNhcmQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogIzMzMzMzMzsgfVxuICAuY2FyZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jYXJkLWRpdmlkZXIge1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2OyB9XG4gIC5jYXJkLWRpdmlkZXIgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY2FyZC1zZWN0aW9uIHtcbiAgcGFkZGluZzogMXJlbTsgfVxuICAuY2FyZC1zZWN0aW9uID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmNhcmQtaW1hZ2Uge1xuICBtaW4taGVpZ2h0OiAxcHg7IH1cblxuLmNsb3NlLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICM4YThhOGE7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmNsb3NlLWJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuY2xvc2UtYnV0dG9uOmhvdmVyLCAuY2xvc2UtYnV0dG9uOmZvY3VzIHtcbiAgICBjb2xvcjogIzAwMDsgfVxuICAuY2xvc2UtYnV0dG9uLnNtYWxsIHtcbiAgICByaWdodDogMC42NnJlbTtcbiAgICB0b3A6IDAuMzNlbTtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5jbG9zZS1idXR0b24sIC5jbG9zZS1idXR0b24ubWVkaXVtIHtcbiAgICByaWdodDogMXJlbTtcbiAgICB0b3A6IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuXG4ubWVudSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAubWVudSBsaSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAubWVudSBhLFxuICAubWVudSAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07IH1cbiAgLm1lbnUgaW5wdXQsXG4gIC5tZW51IHNlbGVjdCxcbiAgLm1lbnUgYSxcbiAgLm1lbnUgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZW51IGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLm1lbnUgbGksIC5tZW51Lmhvcml6b250YWwgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAubWVudS52ZXJ0aWNhbCBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1lbnUuZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLm1lbnUuZXhwYW5kZWQgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAubWVudS5zaW1wbGUgbGkgKyBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLm1lbnUuc2ltcGxlIGEge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAubWVudS5tZWRpdW0taG9yaXpvbnRhbCBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAubWVudS5tZWRpdW0tdmVydGljYWwgbGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAubWVudS5tZWRpdW0tZXhwYW5kZWQge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLm1lbnUubWVkaXVtLWV4cGFuZGVkID4gbGkge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLm1lbnUubWVkaXVtLXNpbXBsZSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAubWVudS5tZWRpdW0tc2ltcGxlID4gbGkge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubWVudS5sYXJnZS1ob3Jpem9udGFsIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5tZW51LmxhcmdlLXZlcnRpY2FsIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLm1lbnUubGFyZ2UtZXhwYW5kZWQge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLm1lbnUubGFyZ2UtZXhwYW5kZWQgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAubWVudS5sYXJnZS1zaW1wbGUge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLm1lbnUubGFyZ2Utc2ltcGxlID4gbGkge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9IH1cbiAgLm1lbnUubmVzdGVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLm1lbnUuaWNvbnMgaW1nLFxuICAubWVudS5pY29ucyBpLFxuICAubWVudS5pY29ucyBzdmcge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAubWVudS5pY29ucyBpbWcgKyBzcGFuLFxuICAgIC5tZW51Lmljb25zIGkgKyBzcGFuLFxuICAgIC5tZW51Lmljb25zIHN2ZyArIHNwYW4ge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAubWVudS5pY29uLXRvcCBpbWcsXG4gIC5tZW51Lmljb24tdG9wIGksXG4gIC5tZW51Lmljb24tdG9wIHN2ZywgLm1lbnUuaWNvbi1yaWdodCBpbWcsXG4gIC5tZW51Lmljb24tcmlnaHQgaSxcbiAgLm1lbnUuaWNvbi1yaWdodCBzdmcsIC5tZW51Lmljb24tYm90dG9tIGltZyxcbiAgLm1lbnUuaWNvbi1ib3R0b20gaSxcbiAgLm1lbnUuaWNvbi1ib3R0b20gc3ZnLCAubWVudS5pY29uLWxlZnQgaW1nLFxuICAubWVudS5pY29uLWxlZnQgaSxcbiAgLm1lbnUuaWNvbi1sZWZ0IHN2ZyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgIC5tZW51Lmljb24tdG9wIGltZyArIHNwYW4sXG4gICAgLm1lbnUuaWNvbi10b3AgaSArIHNwYW4sXG4gICAgLm1lbnUuaWNvbi10b3Agc3ZnICsgc3BhbiwgLm1lbnUuaWNvbi1yaWdodCBpbWcgKyBzcGFuLFxuICAgIC5tZW51Lmljb24tcmlnaHQgaSArIHNwYW4sXG4gICAgLm1lbnUuaWNvbi1yaWdodCBzdmcgKyBzcGFuLCAubWVudS5pY29uLWJvdHRvbSBpbWcgKyBzcGFuLFxuICAgIC5tZW51Lmljb24tYm90dG9tIGkgKyBzcGFuLFxuICAgIC5tZW51Lmljb24tYm90dG9tIHN2ZyArIHNwYW4sIC5tZW51Lmljb24tbGVmdCBpbWcgKyBzcGFuLFxuICAgIC5tZW51Lmljb24tbGVmdCBpICsgc3BhbixcbiAgICAubWVudS5pY29uLWxlZnQgc3ZnICsgc3BhbiB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5tZW51Lmljb24tbGVmdCBsaSBhIGltZyxcbiAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEgaSxcbiAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZW51Lmljb24tcmlnaHQgbGkgYSBpbWcsXG4gIC5tZW51Lmljb24tcmlnaHQgbGkgYSBpLFxuICAubWVudS5pY29uLXJpZ2h0IGxpIGEgc3ZnIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLm1lbnUuaWNvbi10b3AgbGkgYSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLm1lbnUuaWNvbi10b3AgbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi10b3AgbGkgYSBpLFxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMC4yNXJlbTsgfVxuICAubWVudS5pY29uLWJvdHRvbSBsaSBhIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIGksXG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAuMjVyZW0gYXV0byAwOyB9XG4gIC5tZW51IC5pcy1hY3RpdmUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDA1NTExO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5tZW51IC5hY3RpdmUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDA1NTExO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5tZW51LmFsaWduLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLm1lbnUuYWxpZ24tcmlnaHQgLnN1Ym1lbnUgbGkge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5tZW51LmFsaWduLXJpZ2h0LnZlcnRpY2FsIC5zdWJtZW51IGxpIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLm1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAubWVudS5hbGlnbi1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5tZW51LmFsaWduLWNlbnRlciAuc3VibWVudSBsaSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZW51IC5tZW51LXRleHQge1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbi5tZW51LWNlbnRlcmVkID4gLm1lbnUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUtY2VudGVyZWQgPiAubWVudSAuc3VibWVudSBsaSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4ubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1lbnUtaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1lbnUtaWNvbjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgI2ZmZiwgMCAxNHB4IDAgI2ZmZjtcbiAgICBjb250ZW50OiAnJzsgfVxuICAubWVudS1pY29uOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI2NhY2FjYTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNjYWNhY2EsIDAgMTRweCAwICNjYWNhY2E7IH1cblxuLm1lbnUtaWNvbi5kYXJrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWVudS1pY29uLmRhcms6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICMwMDAsIDAgMTRweCAwICMwMDA7XG4gICAgY29udGVudDogJyc7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzhhOGE4YTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICM4YThhOGEsIDAgMTRweCAwICM4YThhOGE7IH1cblxuLmlzLWRyaWxsZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuaXMtZHJpbGxkb3duIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuaXMtZHJpbGxkb3duLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41czsgfVxuXG4uZHJpbGxkb3duIGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtYWN0aXZlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtY2xvc2luZyB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51IGEge1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5kcmlsbGRvd24gLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmRyaWxsZG93biAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cbi5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2QwNTUxMTsgfVxuXG4uZHJpbGxkb3duLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDFyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNkMDU1MTE7IH1cblxuLmRyaWxsZG93bi5hbGlnbi1yaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2QwNTUxMSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuXG4uZHJpbGxkb3duIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNkMDU1MTEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cblxuLmRyb3Bkb3duLXBhbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB3aWR0aDogMzYwcHg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5kcm9wZG93bi1wYW5lLmlzLW9wZW5pbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5kcm9wZG93bi1wYW5lLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmRyb3Bkb3duLXBhbmUudGlueSB7XG4gIHdpZHRoOiAxMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5zbWFsbCB7XG4gIHdpZHRoOiAyMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5sYXJnZSB7XG4gIHdpZHRoOiA0MDBweDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICNkMDU1MTEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIHJpZ2h0OiA1cHg7XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IC0zcHg7IH1cblxuLmRyb3Bkb3duLm1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZHJvcGRvd24ubWVudSBhIHtcbiAgICBvdXRsaW5lOiAwOyB9XG5cbi5kcm9wZG93bi5tZW51IC5pcy1hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZTZlNmU2OyB9XG5cbi5uby1qcyAuZHJvcGRvd24ubWVudSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmRyb3Bkb3duLm1lbnUgLm5lc3RlZC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG4gIHRvcDogMDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICByaWdodDogMTRweDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNkMDU1MTEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2QwNTUxMTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogI2QwNTUxMSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bztcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNkMDU1MTEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZDA1NTExOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogI2QwNTUxMSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZDA1NTExIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZDA1NTExOyB9IH1cblxuLmRyb3Bkb3duLm1lbnUuYWxpZ24tcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDsgfVxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbC5hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTZweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBub25lO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIC5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2QwNTUxMSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZDA1NTExOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51ID4gbGkge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnJlc3BvbnNpdmUtZW1iZWQsXG4uZmxleC12aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjg4ODg5cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZXNwb25zaXZlLWVtYmVkIGlmcmFtZSxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgb2JqZWN0LFxuICAucmVzcG9uc2l2ZS1lbWJlZCBlbWJlZCxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgdmlkZW8sXG4gIC5mbGV4LXZpZGVvIGlmcmFtZSxcbiAgLmZsZXgtdmlkZW8gb2JqZWN0LFxuICAuZmxleC12aWRlbyBlbWJlZCxcbiAgLmZsZXgtdmlkZW8gdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQud2lkZXNjcmVlbixcbiAgLmZsZXgtdmlkZW8ud2lkZXNjcmVlbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgfVxuXG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZDogI2QwNTUxMTtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmxhYmVsLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICNkMDU1MTE7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgLmxhYmVsLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogI2E3YTlhYztcbiAgICBjb2xvcjogIzAwMDsgfVxuICAubGFiZWwuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogIzNhZGI3NjtcbiAgICBjb2xvcjogIzAwMDsgfVxuICAubGFiZWwud2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogI2ZmYWUwMDtcbiAgICBjb2xvcjogIzAwMDsgfVxuICAubGFiZWwuYWxlcnQge1xuICAgIGJhY2tncm91bmQ6ICNjYzRiMzc7XG4gICAgY29sb3I6ICMwMDA7IH1cblxuLm1lZGlhLW9iamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3QgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLm1lZGlhLW9iamVjdC5zdGFjay1mb3Itc21hbGwgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24gaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb246bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24gPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ubWlkZGxlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbi5ib3R0b20ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207IH1cblxuLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIHZpc2liaWxpdHkgMC41cyBlYXNlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1jbG9zYWJsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9mZi1jYW52YXMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICMyQzM4NDA7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vZmYtY2FudmFzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogMTI7IH1cbiAgLm9mZi1jYW52YXMuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAxMzsgfVxuICAgIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogIzJDMzg0MDsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6IDEzOyB9XG4gICAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjcpOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbi5wb3NpdGlvbi1sZWZ0IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdpZHRoOiAyNTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNTBweCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tbGVmdC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1sZWZ0LmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgLTEzcHggMCAyMHB4IC0xM3B4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLXJpZ2h0IHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aWR0aDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNTBweCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5pcy1vcGVuLXJpZ2h0Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDEzcHggMCAyMHB4IC0xM3B4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi10b3AuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTsgfVxuICAucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMTNweCAyMHB4IC0xM3B4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1ib3R0b20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tYm90dG9tLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20uaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDEzcHggMjBweCAtMTNweCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1sZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNTBweDsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1ib3R0b20ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNTBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNTBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgb3ZlcmZsb3c6IGluaGVyaXQ7XG4gICAgdHJhbnNpdGlvbjogaW5oZXJpdDsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLXJpZ2h0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIHdpZHRoOiBpbmhlcml0O1xuICAgIG92ZXJmbG93OiBpbmhlcml0O1xuICAgIHRyYW5zaXRpb246IGluaGVyaXQ7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tcmlnaHQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4ub3JiaXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLm9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm9yYml0LXNsaWRlLm5vLW1vdGlvbnVpLmlzLWFjdGl2ZSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7IH1cblxuLm9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4ub3JiaXQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLm9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgY29sb3I6ICNmZmY7IH1cblxuLm9yYml0LXByZXZpb3VzLCAub3JiaXQtbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGNvbG9yOiAjZmZmOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtcHJldmlvdXMsIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtbmV4dCB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub3JiaXQtcHJldmlvdXM6aG92ZXIsIC5vcmJpdC1uZXh0OmhvdmVyLCAub3JiaXQtcHJldmlvdXM6YWN0aXZlLCAub3JiaXQtbmV4dDphY3RpdmUsIC5vcmJpdC1wcmV2aW91czpmb2N1cywgLm9yYml0LW5leHQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuXG4ub3JiaXQtcHJldmlvdXMge1xuICBsZWZ0OiAwOyB9XG5cbi5vcmJpdC1uZXh0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7IH1cblxuLm9yYml0LWJ1bGxldHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1idWxsZXRzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vcmJpdC1idWxsZXRzIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDEuMnJlbTtcbiAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICBtYXJnaW46IDAuMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTsgfVxuICAgIC5vcmJpdC1idWxsZXRzIGJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE4YThhOyB9XG4gICAgLm9yYml0LWJ1bGxldHMgYnV0dG9uLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE4YThhOyB9XG5cbi5wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLnBhZ2luYXRpb246OmJlZm9yZSwgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7IH1cbiAgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAucGFnaW5hdGlvbiBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjA1NTU2cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgZm9udC1zaXplOiAwLjc3Nzc4cmVtO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucGFnaW5hdGlvbiBsaTpsYXN0LWNoaWxkLCAucGFnaW5hdGlvbiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnBhZ2luYXRpb24gbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAucGFnaW5hdGlvbiBhLFxuICAucGFnaW5hdGlvbiBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuMTY2NjdyZW0gMC41NTU1NnJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLnBhZ2luYXRpb24gYTpob3ZlcixcbiAgICAucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICAucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gICAgcGFkZGluZzogMC4xNjY2N3JlbSAwLjU1NTU2cmVtO1xuICAgIGJhY2tncm91bmQ6ICNkMDU1MTE7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5wYWdpbmF0aW9uIC5kaXNhYmxlZCB7XG4gICAgcGFkZGluZzogMC4xNjY2N3JlbSAwLjU1NTU2cmVtO1xuICAgIGNvbG9yOiAjY2FjYWNhO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAucGFnaW5hdGlvbiAuZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLnBhZ2luYXRpb24gLmVsbGlwc2lzOjphZnRlciB7XG4gICAgcGFkZGluZzogMC4xNjY2N3JlbSAwLjU1NTU2cmVtO1xuICAgIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICAgIGNvbG9yOiAjMDAwOyB9XG5cbi5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbi5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBjb250ZW50OiAnXFwwMGFiJzsgfVxuXG4ucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGNvbnRlbnQ6ICdcXDAwYmInOyB9XG5cbi5wcm9ncmVzcyB7XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTsgfVxuICAucHJvZ3Jlc3MucHJpbWFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkMDU1MTE7IH1cbiAgLnByb2dyZXNzLnNlY29uZGFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhN2E5YWM7IH1cbiAgLnByb2dyZXNzLnN1Y2Nlc3MgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5wcm9ncmVzcy53YXJuaW5nIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuICAucHJvZ3Jlc3MuYWxlcnQgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG5cbi5wcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDA1NTExOyB9XG5cbi5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmZmO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMC41cmVtO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLnNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLnNsaWRlci1maWxsLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXItaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjRyZW07XG4gIGhlaWdodDogMS40cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDA1NTExO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5zbGlkZXItaGFuZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5zbGlkZXItaGFuZGxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjE0ODBlOyB9XG4gIC5zbGlkZXItaGFuZGxlLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXIuZGlzYWJsZWQsXG4uc2xpZGVyW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLnNsaWRlci52ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDAuNXJlbTtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMC41cmVtO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cblxuLnN0aWNreS1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc3RpY2t5LmlzLXN0dWNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA1O1xuICB3aWR0aDogMTAwJTsgfVxuICAuc3RpY2t5LmlzLXN0dWNrLmlzLWF0LXRvcCB7XG4gICAgdG9wOiAwOyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtYm90dG9tIHtcbiAgICBib3R0b206IDA7IH1cblxuLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87IH1cbiAgLnN0aWNreS5pcy1hbmNob3JlZC5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG5ib2R5LmlzLXJldmVhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5odG1sLmlzLXJldmVhbC1vcGVuLFxuaHRtbC5pcy1yZXZlYWwtb3BlbiBib2R5IHtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4ucmV2ZWFsLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwNTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG5cbi5yZXZlYWwge1xuICB6LWluZGV4OiAxMDA2O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnJldmVhbCB7XG4gICAgb3V0bGluZTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgbWluLWhlaWdodDogMDsgfSB9XG4gIC5yZXZlYWwgLmNvbHVtbiwgLnJldmVhbCAuY29sdW1ucyB7XG4gICAgbWluLXdpZHRoOiAwOyB9XG4gIC5yZXZlYWwgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgd2lkdGg6IDYwMHB4O1xuICAgICAgbWF4LXdpZHRoOiA2Ni42NjY2N3JlbTsgfSB9XG4gIC5yZXZlYWwuY29sbGFwc2Uge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLnRpbnkge1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIG1heC13aWR0aDogNjYuNjY2NjdyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwuc21hbGwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1heC13aWR0aDogNjYuNjY2NjdyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwubGFyZ2Uge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIG1heC13aWR0aDogNjYuNjY2NjdyZW07IH0gfVxuICAucmV2ZWFsLmZ1bGwge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDsgfSB9XG4gIC5yZXZlYWwud2l0aG91dC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLnN3aXRjaCB7XG4gIGhlaWdodDogMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBvdXRsaW5lOiAwO1xuICBmb250LXNpemU6IDAuNzc3NzhyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZmZjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLnN3aXRjaC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3dpdGNoLXBhZGRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA0cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICNjYWNhY2E7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgaW5wdXQgKyAuc3dpdGNoLXBhZGRsZSB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZSB7XG4gICAgYmFja2dyb3VuZDogI2QwNTUxMTsgfVxuICAgIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgICAgbGVmdDogMi4yNXJlbTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gaW5wdXQ6Zm9jdXMgfiAuc3dpdGNoLXBhZGRsZSB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4uc3dpdGNoLWFjdGl2ZSwgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG4uc3dpdGNoLWFjdGl2ZSB7XG4gIGxlZnQ6IDglO1xuICBkaXNwbGF5OiBub25lOyB9XG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+IC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc3dpdGNoLWluYWN0aXZlIHtcbiAgcmlnaHQ6IDE1JTsgfVxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAuc3dpdGNoLWluYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5zd2l0Y2gudGlueSB7XG4gIGhlaWdodDogMS41cmVtOyB9XG4gIC5zd2l0Y2gudGlueSAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjU1NTU2cmVtOyB9XG4gIC5zd2l0Y2gudGlueSAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTsgfVxuICAuc3dpdGNoLnRpbnkgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgbGVmdDogMS43NXJlbTsgfVxuXG4uc3dpdGNoLnNtYWxsIHtcbiAgaGVpZ2h0OiAxLjc1cmVtOyB9XG4gIC5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAzLjVyZW07XG4gICAgaGVpZ2h0OiAxLjc1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC42NjY2N3JlbTsgfVxuICAuc3dpdGNoLnNtYWxsIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgd2lkdGg6IDEuMjVyZW07XG4gICAgaGVpZ2h0OiAxLjI1cmVtOyB9XG4gIC5zd2l0Y2guc21hbGwgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgbGVmdDogMnJlbTsgfVxuXG4uc3dpdGNoLmxhcmdlIHtcbiAgaGVpZ2h0OiAyLjVyZW07IH1cbiAgLnN3aXRjaC5sYXJnZSAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6IDVyZW07XG4gICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjg4ODg5cmVtOyB9XG4gIC5zd2l0Y2gubGFyZ2UgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDJyZW07IH1cbiAgLnN3aXRjaC5sYXJnZSBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAyLjc1cmVtOyB9XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YyZjJmMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6IDAuNDQ0NDRyZW0gMC41NTU1NnJlbSAwLjU1NTU2cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICAgIGNvbG9yOiAjMzMzMzMzOyB9XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICAgIGNvbG9yOiAjMzMzMzMzOyB9XG4gIHRoZWFkIHRyLFxuICB0Zm9vdCB0ciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgdGhlYWQgdGgsXG4gIHRoZWFkIHRkLFxuICB0Zm9vdCB0aCxcbiAgdGZvb3QgdGQge1xuICAgIHBhZGRpbmc6IDAuNDQ0NDRyZW0gMC41NTU1NnJlbSAwLjU1NTU2cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgdGJvZHkgdGgsXG4gIHRib2R5IHRkIHtcbiAgICBwYWRkaW5nOiAwLjQ0NDQ0cmVtIDAuNTU1NTZyZW0gMC41NTU1NnJlbTsgfVxuICB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjsgfVxuICB0YWJsZS51bnN0cmlwZWQgdGJvZHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICB0YWJsZS51bnN0cmlwZWQgdGJvZHkgdHIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjJmMmYyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgdGFibGUuc3RhY2sgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdHIsXG4gIHRhYmxlLnN0YWNrIHRoLFxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGJvcmRlci10b3A6IDA7IH0gfVxuXG50YWJsZS5zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cblxudGFibGUuaG92ZXIgdGhlYWQgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0OyB9XG5cbnRhYmxlLmhvdmVyIHRmb290IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDsgfVxuXG50YWJsZS5ob3ZlciB0Ym9keSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7IH1cblxudGFibGUuaG92ZXI6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDsgfVxuXG4udGFibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuICAudGFibGUtc2Nyb2xsIHRhYmxlIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuXG4udGFicyB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gIC50YWJzOjpiZWZvcmUsIC50YWJzOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnOyB9XG4gIC50YWJzOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLnRhYnMudmVydGljYWwgPiBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IGF1dG87IH1cblxuLnRhYnMuc2ltcGxlID4gbGkgPiBhIHtcbiAgcGFkZGluZzogMDsgfVxuICAudGFicy5zaW1wbGUgPiBsaSA+IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi50YWJzLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjZDA1NTExOyB9XG4gIC50YWJzLnByaW1hcnkgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLnRhYnMucHJpbWFyeSA+IGxpID4gYTpob3ZlciwgLnRhYnMucHJpbWFyeSA+IGxpID4gYTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiAjYzY1MTEwOyB9XG5cbi50YWJzLXRpdGxlIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnRhYnMtdGl0bGUgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgICBmb250LXNpemU6IDAuNjY2NjdyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICNkMDU1MTE7IH1cbiAgICAudGFicy10aXRsZSA+IGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGNvbG9yOiAjYjM0OTBmOyB9XG4gICAgLnRhYnMtdGl0bGUgPiBhOmZvY3VzLCAudGFicy10aXRsZSA+IGFbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gICAgICBjb2xvcjogI2QwNTUxMTsgfVxuXG4udGFicy1jb250ZW50IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7IH1cblxuLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi50YWJzLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTsgfVxuICAudGFicy1wYW5lbC5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi50aHVtYm5haWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyOiBzb2xpZCA0cHggI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgbGluZS1oZWlnaHQ6IDA7IH1cblxuYS50aHVtYm5haWwge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0OyB9XG4gIGEudGh1bWJuYWlsOmhvdmVyLCBhLnRodW1ibmFpbDpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDZweCAxcHggcmdiYSgyMDgsIDg1LCAxNywgMC41KTsgfVxuICBhLnRodW1ibmFpbCBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4udGl0bGUtYmFyIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiAjMkMzODQwO1xuICBjb2xvcjogI2ZmZjsgfVxuICAudGl0bGUtYmFyOjpiZWZvcmUsIC50aXRsZS1iYXI6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7IH1cbiAgLnRpdGxlLWJhcjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC50aXRsZS1iYXIgLm1lbnUtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG5cbi50aXRsZS1iYXItbGVmdCB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi50aXRsZS1iYXItcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50aXRsZS1iYXItdGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5oYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggIzhhOGE4YTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogaGVscDsgfVxuXG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyAwLjY0OTVyZW0pO1xuICB6LWluZGV4OiAxMjAwO1xuICBtYXgtd2lkdGg6IDEwcmVtO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBmb250LXNpemU6IDgwJTtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLnRvb2x0aXA6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC50b29sdGlwLmJvdHRvbTo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAwO1xuICAgIGJvdHRvbTogMTAwJTsgfVxuICAudG9vbHRpcC5ib3R0b20uYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgLnRvb2x0aXAudG9wOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bzsgfVxuICAudG9vbHRpcC50b3AuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgLnRvb2x0aXAubGVmdDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAwO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLnRvb2x0aXAubGVmdC5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAudG9vbHRpcC5yaWdodDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLnRvb2x0aXAucmlnaHQuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnRvb2x0aXAuYWxpZ24tdG9wOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDEwJTsgfVxuICAudG9vbHRpcC5hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgdG9wOiBhdXRvOyB9XG4gIC50b29sdGlwLmFsaWduLWxlZnQ6OmJlZm9yZSB7XG4gICAgbGVmdDogMTAlO1xuICAgIHJpZ2h0OiBhdXRvOyB9XG4gIC50b29sdGlwLmFsaWduLXJpZ2h0OjpiZWZvcmUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwJTsgfVxuXG4udG9wLWJhciB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnRvcC1iYXI6OmJlZm9yZSwgLnRvcC1iYXI6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7IH1cbiAgLnRvcC1iYXI6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAudG9wLWJhcixcbiAgLnRvcC1iYXIgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyQzM4NDA7IH1cbiAgLnRvcC1iYXIgaW5wdXQge1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC50b3AtYmFyIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC50b3AtYmFyIGlucHV0LmJ1dHRvbiB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnRvcC1iYXIgLnRvcC1iYXItbGVmdCxcbiAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRvcC1iYXIgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bzsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4udG9wLWJhci10aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwOyB9XG4gIC50b3AtYmFyLXRpdGxlIC5tZW51LWljb24ge1xuICAgIGJvdHRvbTogMnB4OyB9XG5cbi50b3AtYmFyLWxlZnQge1xuICBmbG9hdDogbGVmdDsgfVxuXG4udG9wLWJhci1yaWdodCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMGVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zaG93LWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7IH1cblxuLnNob3ctb24tZm9jdXM6YWN0aXZlLCAuc2hvdy1vbi1mb2N1czpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGNsaXAtcGF0aDogbm9uZTsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4uY2xlYXJmaXg6OmJlZm9yZSwgLmNsZWFyZml4OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7IH1cblxuLmNsZWFyZml4OjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLWxlZnQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLWluLXVwLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi11cC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLXJpZ2h0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LWRvd24ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7IH1cblxuLnNsaWRlLW91dC1yaWdodC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtdXAubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtbGVmdC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cblxuLmZhZGUtaW4ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7IH1cblxuLmZhZGUtaW4ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1yaWdodC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbGVmdC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS14Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXkubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS10b3AubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS10b3AubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLWxlZnQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXgubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi11cC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLXVwLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLWRvd24ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtdXAubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1vdXQtZG93bi5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi1jY3cubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLWNjdy5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0wLjc1dHVybik7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNsb3cge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50OyB9XG5cbi5mYXN0IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDsgfVxuXG4ubGluZWFyIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50OyB9XG5cbi5lYXNlIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Utb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4tb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLnNob3J0LWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMzAwbXMgIWltcG9ydGFudDsgfVxuXG4ubG9uZy1kZWxheSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7IH1cblxuLnNoYWtlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlLTc7IH1cblxuQGtleWZyYW1lcyBzaGFrZS03IHtcbiAgMCUsIDEwJSwgMjAlLCAzMCUsIDQwJSwgNTAlLCA2MCUsIDcwJSwgODAlLCA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3JSk7IH1cbiAgNSUsIDE1JSwgMjUlLCAzNSUsIDQ1JSwgNTUlLCA2NSUsIDc1JSwgODUlLCA5NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNyUpOyB9IH1cblxuLnNwaW4tY3cge1xuICBhbmltYXRpb24tbmFtZTogc3Bpbi1jdy0xdHVybjsgfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTF0dXJuKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbi5zcGluLWNjdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuOyB9XG5cbkBrZXlmcmFtZXMgc3Bpbi1jdy0xdHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7IH0gfVxuXG4ud2lnZ2xlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHdpZ2dsZS03ZGVnOyB9XG5cbkBrZXlmcmFtZXMgd2lnZ2xlLTdkZWcge1xuICA0MCUsIDUwJSwgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg3ZGVnKTsgfVxuICAzNSUsIDQ1JSwgNTUlLCA2NSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC03ZGVnKTsgfVxuICAwJSwgMzAlLCA3MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuLnNoYWtlLFxuLnNwaW4tY3csXG4uc3Bpbi1jY3csXG4ud2lnZ2xlIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtczsgfVxuXG4uaW5maW5pdGUge1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4uc2xvdyB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXMgIWltcG9ydGFudDsgfVxuXG4uZmFzdCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDsgfVxuXG4ubGluZWFyIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Uge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4ge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dCAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4ge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5zaG9ydC1kZWxheSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMzAwbXMgIWltcG9ydGFudDsgfVxuXG4ubG9uZy1kZWxheSB7XG4gIGFuaW1hdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDsgfVxuXG4vKlxuICBNeSBjdXN0b20gc3R5bGVzOlxuICBBZGQgeW91ciBzY3NzIGZpbGVzIGJlbG93IHRvIHN0cnVjdHVyZSB5b3VyIHByb2plY3Qgc3R5bGVzXG4qL1xuLnNjcmVlbi1yZWFkZXItdGV4dCB7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgY2xpcDogYXV0byAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxNzU5YjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGhlaWdodDogYXV0bztcbiAgbGVmdDogNXB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAxNXB4IDIzcHggMTRweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0b3A6IDVweDtcbiAgd2lkdGg6IGF1dG87XG4gIHotaW5kZXg6IDEwMDAwMDsgfVxuXG5oMSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7IH1cblxuLmhkci1zZWN0aW9uIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG5oMi5oZHItc2VjdGlvbiwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc2VhcmNoLWZvcm0gaW5wdXQuaGRyLXNlY3Rpb25bdHlwZT0ndGV4dCddLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLmhkci1zZWN0aW9uLnN0LXVpLXR5cGUtaGVhZGluZywgYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIGlucHV0Lmhkci1zZWN0aW9uW3R5cGU9J3RleHQnXSB7XG4gIGZvbnQtc2l6ZTogMS4zMzMzM3JlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGgyLmhkci1zZWN0aW9uLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zZWFyY2gtZm9ybSBpbnB1dC5oZHItc2VjdGlvblt0eXBlPSd0ZXh0J10sIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuaGRyLXNlY3Rpb24uc3QtdWktdHlwZS1oZWFkaW5nLCBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gaW5wdXQuaGRyLXNlY3Rpb25bdHlwZT0ndGV4dCddIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41NTU1NnJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgaDIuaGRyLXNlY3Rpb24sIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0Lmhkci1zZWN0aW9uW3R5cGU9J3RleHQnXSwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5oZHItc2VjdGlvbi5zdC11aS10eXBlLWhlYWRpbmcsIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSBpbnB1dC5oZHItc2VjdGlvblt0eXBlPSd0ZXh0J10ge1xuICAgICAgZm9udC1zaXplOiAxLjg4ODg5cmVtOyB9IH1cblxuaDMuaGRyLXNlY3Rpb24sIC5oZHItc2VjdGlvbi5hY2NvcmRpb24tdGl0bGUge1xuICBmb250LXNpemU6IDFyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBoMy5oZHItc2VjdGlvbiwgLmhkci1zZWN0aW9uLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuMTY2NjdyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIGgzLmhkci1zZWN0aW9uLCAuaGRyLXNlY3Rpb24uYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zMzMzM3JlbTsgfSB9XG5cbi5oZHItbGFiZWwsIC5oZHItbGFiZWwuaGRyLWxhYmVsLWxnLCAucmVsYXRlZC1wcm9qZWN0IC50aXRsZSwgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtZGV0YWlscyAuaGRyLCAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZSAudGl0bGUge1xuICBmb250LWZhbWlseTogXCJSb2JvdG8gQ29uZGVuc2VkXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDFyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuaGRyLWxhYmVsLCAuaGRyLWxhYmVsLmhkci1sYWJlbC1sZywgLnJlbGF0ZWQtcHJvamVjdCAudGl0bGUsIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5wcm9qZWN0LWRldGFpbHMgLmhkciwgLmhvbWUtc2VydmljZXMgLnNlcnZpY2UgLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xMTExMXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmhkci1sYWJlbCwgLmhkci1sYWJlbC5oZHItbGFiZWwtbGcsIC5yZWxhdGVkLXByb2plY3QgLnRpdGxlLCAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1kZXRhaWxzIC5oZHIsIC5ob21lLXNlcnZpY2VzIC5zZXJ2aWNlIC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuMjIyMjJyZW07IH0gfVxuXG4uaGRyLWxhYmVsLWxnLmhkci1sYWJlbCwgLnJlbGF0ZWQtcHJvamVjdCAuaGRyLWxhYmVsLWxnLnRpdGxlLCAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1kZXRhaWxzIC5oZHItbGFiZWwtbGcuaGRyLCAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZSAuaGRyLWxhYmVsLWxnLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjExMTExcmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmhkci1sYWJlbC1sZy5oZHItbGFiZWwsIC5yZWxhdGVkLXByb2plY3QgLmhkci1sYWJlbC1sZy50aXRsZSwgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtZGV0YWlscyAuaGRyLWxhYmVsLWxnLmhkciwgLmhvbWUtc2VydmljZXMgLnNlcnZpY2UgLmhkci1sYWJlbC1sZy50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuMjIyMjJyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5oZHItbGFiZWwtbGcuaGRyLWxhYmVsLCAucmVsYXRlZC1wcm9qZWN0IC5oZHItbGFiZWwtbGcudGl0bGUsIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5wcm9qZWN0LWRldGFpbHMgLmhkci1sYWJlbC1sZy5oZHIsIC5ob21lLXNlcnZpY2VzIC5zZXJ2aWNlIC5oZHItbGFiZWwtbGcudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjMzMzMzcmVtOyB9IH1cblxuLnR4dC1sYWJlbCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBDb25kZW5zZWRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC50eHQtbGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxLjExMTExcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAudHh0LWxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yMjIyMnJlbTsgfSB9XG5cblxucCxcbmFkZHJlc3MsXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLFxuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkLFxuLnAtcmVnIHtcbiAgZm9udC1zaXplOiAwLjg4ODg5cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgXG4gICAgcCxcbiAgICBhZGRyZXNzLFxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwsXG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkLFxuICAgIC5wLXJlZyB7XG4gICAgICBmb250LXNpemU6IDAuOTQ0NDRyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIFxuICAgIHAsXG4gICAgYWRkcmVzcyxcbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLFxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCxcbiAgICAucC1yZWcge1xuICAgICAgZm9udC1zaXplOiAxcmVtOyB9IH1cblxuLnAtc20sIC5ob21lLXNlcnZpY2VzIC5zZXJ2aWNlIGEge1xuICBmb250LXNpemU6IDAuNzc3NzhyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucC1zbSwgLmhvbWUtc2VydmljZXMgLnNlcnZpY2UgYSB7XG4gICAgICBmb250LXNpemU6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wLXNtLCAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZSBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44ODg4OXJlbTsgfSB9XG5cbi5wLWxnIHtcbiAgZm9udC1zaXplOiAxLjExMTExcmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnAtbGcge1xuICAgICAgZm9udC1zaXplOiAxLjIyMjIycmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucC1sZyB7XG4gICAgICBmb250LXNpemU6IDEuMzMzMzNyZW07IH0gfVxuXG4ucC1pbnRybyB7XG4gIGZvbnQtc2l6ZTogMS4xMTExMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucC1pbnRybyB7XG4gICAgICBmb250LXNpemU6IDEuMjIyMjJyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wLWludHJvIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zMzMzM3JlbTsgfSB9XG5cbnVsLCBvbCB7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDAuNzc3NzhyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICB1bCwgb2wge1xuICAgICAgZm9udC1zaXplOiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICB1bCwgb2wge1xuICAgICAgZm9udC1zaXplOiAwLjg4ODg5cmVtOyB9IH1cblxudWwubGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIHVsLmxpc3QgdWwsIHVsLmxpc3Qgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IC4xcmVtOyB9XG4gIHVsLmxpc3QgbGk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAyMlwiO1xuICAgIC8qIEFkZCBjb250ZW50OiBcXDIwMjIgaXMgdGhlIENTUyBDb2RlL3VuaWNvZGUgZm9yIGEgYnVsbGV0ICovXG4gICAgY29sb3I6ICM5OTk7XG4gICAgLyogQ2hhbmdlIHRoZSBjb2xvciAqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIC8qIElmIHlvdSB3YW50IGl0IHRvIGJlIGJvbGQgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyogTmVlZGVkIHRvIGFkZCBzcGFjZSBiZXR3ZWVuIHRoZSBidWxsZXQgYW5kIHRoZSB0ZXh0ICovXG4gICAgd2lkdGg6IDEuMmVtO1xuICAgIC8qIEFsc28gbmVlZGVkIGZvciBzcGFjZSAodHdlYWsgaWYgbmVlZGVkKSAqL1xuICAgIG1hcmdpbi1sZWZ0OiAtMS4yZW07XG4gICAgLyogQWxzbyBuZWVkZWQgZm9yIHNwYWNlICh0d2VhayBpZiBuZWVkZWQpICovIH1cbiAgdWwubGlzdCBsaSBsaTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDE0XCI7IH1cblxudWwubGlzdC1sZyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICBtYXJnaW4tbGVmdDogMS40cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjg4ODg5cmVtOyB9XG4gIHVsLmxpc3QtbGcgdWwsIHVsLmxpc3QtbGcgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IC4xcmVtOyB9XG4gIHVsLmxpc3QtbGcgbGk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAyMlwiO1xuICAgIC8qIEFkZCBjb250ZW50OiBcXDIwMjIgaXMgdGhlIENTUyBDb2RlL3VuaWNvZGUgZm9yIGEgYnVsbGV0ICovXG4gICAgY29sb3I6ICM5OTk7XG4gICAgLyogQ2hhbmdlIHRoZSBjb2xvciAqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIC8qIElmIHlvdSB3YW50IGl0IHRvIGJlIGJvbGQgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyogTmVlZGVkIHRvIGFkZCBzcGFjZSBiZXR3ZWVuIHRoZSBidWxsZXQgYW5kIHRoZSB0ZXh0ICovXG4gICAgd2lkdGg6IDEuMmVtO1xuICAgIC8qIEFsc28gbmVlZGVkIGZvciBzcGFjZSAodHdlYWsgaWYgbmVlZGVkKSAqL1xuICAgIG1hcmdpbi1sZWZ0OiAtMS4yZW07XG4gICAgLyogQWxzbyBuZWVkZWQgZm9yIHNwYWNlICh0d2VhayBpZiBuZWVkZWQpICovIH1cbiAgdWwubGlzdC1sZyBsaSBsaTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDE0XCI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICB1bC5saXN0LWxnIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgdWwubGlzdC1sZyB7XG4gICAgICBmb250LXNpemU6IDEuMTExMTFyZW07IH0gfVxuXG51bC5tZW51IHtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICB1bC5tZW51IGxpOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG5hIHtcbiAgY29sb3I6ICNkMDU1MTE7IH1cbiAgLm5vLWlvcyBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICNlZTY2MjI7IH1cblxuYWRkcmVzcyB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG50aW1lIHtcbiAgY29sb3I6ICNhN2E5YWM7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBDb25kZW5zZWRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjg4ODg5cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgdGltZSB7XG4gICAgICBmb250LXNpemU6IDAuOTQ0NDRyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIHRpbWUge1xuICAgICAgZm9udC1zaXplOiAxcmVtOyB9IH1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIENvbmRlbnNlZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMS4xMTExMXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGJsb2NrcXVvdGUge1xuICAgICAgZm9udC1zaXplOiAxLjIyMjIycmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zMzMzM3JlbTsgfSB9XG4gIGJsb2NrcXVvdGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA0M3B4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29uLXF1b3RlLnN2Zykgbm8tcmVwZWF0OyB9XG5cbmJvZHkuc2luZ2xlLXBvc3QgYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMnJlbTsgfVxuXG5zZWxlY3Qge1xuICBjb2xvcjogIzc3NzsgfVxuXG5sYWJlbCB7XG4gIG1hcmdpbjogMCAwIDRweCAwO1xuICBmb250LXNpemU6IDAuODMzMzNyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgbGFiZWwge1xuICAgICAgZm9udC1zaXplOiAwLjg4ODg5cmVtOyB9IH1cblxuI3dwYWRtaW5iYXIge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDsgfVxuXG5ib2R5LmFkbWluLWJhci5mLXRvcGJhci1maXhlZCAuc3RpY2t5LmZpeGVkIHtcbiAgbWFyZ2luLXRvcDogMS43Nzc3OHJlbTsgfVxuXG5ib2R5LmFkbWluLWJhci5vZmZjYW52YXMgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gIHRvcDogMi41NTU1NnJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OC45Mzc1ZW0pIHtcbiAgICBib2R5LmFkbWluLWJhci5vZmZjYW52YXMgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgICB0b3A6IDEuNzc3NzhyZW07IH0gfVxuXG4ucG9zdC1uYXZpZ2F0aW9uOjpiZWZvcmUsIC5wb3N0LW5hdmlnYXRpb246OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJzsgfVxuXG4ucG9zdC1uYXZpZ2F0aW9uOjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5uYXYtcHJldmlvdXMge1xuICBmbG9hdDogbGVmdDsgfVxuXG4ubmF2LW5leHQge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLndwLWNhcHRpb24gPiBmaWdjYXB0aW9uIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6ICM5OTk7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMDsgfVxuXG5wLndwLWNhcHRpb24tdGV4dCwgYWRkcmVzcy53cC1jYXB0aW9uLXRleHQsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAud3AtY2FwdGlvbi10ZXh0LnN0LXVpLXR5cGUtZGV0YWlsLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLndwLWNhcHRpb24tdGV4dC5zdC11aS10eXBlLWRldGFpbC1ib2xkIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjNjY2O1xuICBwYWRkaW5nOiAwLjU1NTU2cmVtIDA7IH1cblxuLmFsaWdubGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW46IDA7IH1cblxuLmFsaWducmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgbWFyZ2luOiAwOyB9XG5cbi5hbGlnbmNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi5hbGlnbm5vbmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAzMHB4IDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5wb3N0LWNvbnRlbnQgaW1nLmFsaWdubGVmdCxcbiAgLnBvc3QtY29udGVudCBpbWcuYWxpZ25yaWdodCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTsgfSB9XG5cbi5nYWxsZXJ5MiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLTAuNTU1NTZyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC41NTU1NnJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5MiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0wLjgzMzMzcmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjgzMzMzcmVtOyB9IH1cbiAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy0xID4gLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4xMTExMXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjU1NTU2cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjU1NTU2cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy0xID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjY2NjY3cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeTIuZ2FsbGVyeS1jb2x1bW5zLTEgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjY2NjY3cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy0yID4gLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4xMTExMXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjU1NTU2cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjU1NTU2cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy0yID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjY2NjY3cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeTIuZ2FsbGVyeS1jb2x1bW5zLTIgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuNjY2NjdyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICAuZ2FsbGVyeTIuZ2FsbGVyeS1jb2x1bW5zLTMgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjExMTExcmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNTU1NTZyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNTU1NTZyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeTIuZ2FsbGVyeS1jb2x1bW5zLTMgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuNjY2NjdyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5Mi5nYWxsZXJ5LWNvbHVtbnMtMyA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS42NjY2N3JlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIC5nYWxsZXJ5Mi5nYWxsZXJ5LWNvbHVtbnMtNCA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuMTExMTFyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC41NTU1NnJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC41NTU1NnJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5Mi5nYWxsZXJ5LWNvbHVtbnMtNCA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS42NjY2N3JlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy00ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjY2NjY3cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy01ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4xMTExMXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjU1NTU2cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjU1NTU2cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy01ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjY2NjY3cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeTIuZ2FsbGVyeS1jb2x1bW5zLTUgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDIwJSAtIDEuNjY2NjdyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICAuZ2FsbGVyeTIuZ2FsbGVyeS1jb2x1bW5zLTYgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjExMTExcmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNTU1NTZyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNTU1NTZyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeTIuZ2FsbGVyeS1jb2x1bW5zLTYgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuNjY2NjdyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5Mi5nYWxsZXJ5LWNvbHVtbnMtNiA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS42NjY2N3JlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIC5nYWxsZXJ5Mi5nYWxsZXJ5LWNvbHVtbnMtNyA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuMTExMTFyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC41NTU1NnJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC41NTU1NnJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5Mi5nYWxsZXJ5LWNvbHVtbnMtNyA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS42NjY2N3JlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy03ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygxNC4yODU3MSUgLSAxLjY2NjY3cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy04ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4xMTExMXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjU1NTU2cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjU1NTU2cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy04ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjY2NjY3cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeTIuZ2FsbGVyeS1jb2x1bW5zLTggPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEyLjUlIC0gMS42NjY2N3JlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIC5nYWxsZXJ5Mi5nYWxsZXJ5LWNvbHVtbnMtOSA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuMTExMTFyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC41NTU1NnJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC41NTU1NnJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5Mi5nYWxsZXJ5LWNvbHVtbnMtOSA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS42NjY2N3JlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdhbGxlcnkyLmdhbGxlcnktY29sdW1ucy05ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygxMS4xMTExMSUgLSAxLjY2NjY3cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgLmdhbGxlcnkyIC5nYWxsZXJ5LWljb24gPiBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgYm9yZGVyOiBzb2xpZCA0cHggI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDsgfVxuICAgIC5nYWxsZXJ5MiAuZ2FsbGVyeS1pY29uID4gYTpob3ZlciwgLmdhbGxlcnkyIC5nYWxsZXJ5LWljb24gPiBhOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4IHJnYmEoMjA4LCA4NSwgMTcsIDAuNSk7IH1cbiAgICAuZ2FsbGVyeTIgLmdhbGxlcnktaWNvbiA+IGEgaW1hZ2Uge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAuZ2FsbGVyeTIgLmdhbGxlcnktaWNvbiA+IGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGJvcmRlcjogc29saWQgNHB4ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGxpbmUtaGVpZ2h0OiAwOyB9XG5cbi5mYWNldHdwLWZhY2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDsgfVxuXG4uZmFjZXR3cC1wYWdlci1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XG5cbi5mYWNldHdwLXBhZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDBweCA0cHg7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmZhY2V0d3AtcGFnZS5hY3RpdmUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi5mYWNldHdwLWxvYWRpbmcge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvbG9hZGluZy5wbmdcIikgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwcHggMjBweDtcbiAgYW5pbWF0aW9uOiBzcGluIDcwMG1zIGluZmluaXRlIGxpbmVhcjsgfVxuXG4uZmFjZXR3cC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBvcGFjaXR5OiAwLjY7IH1cblxuLyogQ2hlY2tib3hlcyAqL1xuLmZhY2V0d3AtdHlwZS1jaGVja2JveGVzIC5mYWNldHdwLWRlcHRoIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZmFjZXR3cC10eXBlLWNoZWNrYm94ZXMgLmZhY2V0d3AtZGVwdGgudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGluaGVyaXQ7IH1cblxuLmZhY2V0d3AtY2hlY2tib3gge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvY2hlY2tib3gucG5nXCIpIDAgNTAlIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxNHB4IDE0cHg7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmZhY2V0d3AtY2hlY2tib3guY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jaGVja2JveC1vbi5wbmdcIik7IH1cblxuLmZhY2V0d3AtY2hlY2tib3guZGlzYWJsZWQsXG4uZmFjZXR3cC1yYWRpby5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNDtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi5mYWNldHdwLWNoZWNrYm94IC5mYWNldHdwLWV4cGFuZCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4vKiBSYWRpbyAqL1xuLmZhY2V0d3AtcmFkaW8ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvcmFkaW8ucG5nXCIpIDAgNTAlIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxNHB4IDE0cHg7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmZhY2V0d3AtcmFkaW8uY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9yYWRpby1vbi5wbmdcIik7IH1cblxuLyogRGF0ZSByYW5nZSAqL1xuLmZsYXRwaWNrci1jbGVhciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogNXB4IDA7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKiBmU2VsZWN0ICovXG4uZmFjZXR3cC10eXBlLWZzZWxlY3QgLmZzLXdyYXAsXG4uZmFjZXR3cC10eXBlLWZzZWxlY3QgLmZzLWRyb3Bkb3duIHtcbiAgd2lkdGg6IDIyMHB4OyB9XG5cbi5mYWNldHdwLXR5cGUtZnNlbGVjdCAuZnMtd3JhcC5mcy1kaXNhYmxlZCAuZnMtb3B0aW9uIHtcbiAgb3BhY2l0eTogMC40O1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLmZhY2V0d3AtdHlwZS1mc2VsZWN0IC5mcy1vcHRpb24gLmZzLW9wdGlvbi1sYWJlbCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLmZhY2V0d3AtdHlwZS1mc2VsZWN0IC5mcy1vcHRpb24uZDEgLmZzLW9wdGlvbi1sYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMjBweDsgfVxuXG4uZmFjZXR3cC10eXBlLWZzZWxlY3QgLmZzLW9wdGlvbi5kMiAuZnMtb3B0aW9uLWxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG5cbi5mYWNldHdwLXR5cGUtZnNlbGVjdCAuZnMtb3B0aW9uLmQzIC5mcy1vcHRpb24tbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cblxuLyogSGllcmFyY2h5ICovXG4uZmFjZXR3cC1kZXB0aCB7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4OyB9XG5cbi5mYWNldHdwLWxpbmsge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmZhY2V0d3AtbGluay5jaGVja2VkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4uZmFjZXR3cC10b2dnbGUge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmZhY2V0d3Atc2VvLFxuLmZhY2V0d3AtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBTbGlkZXIgKi9cbi5mYWNldHdwLXNsaWRlci13cmFwIHtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7IH1cblxuLmZhY2V0d3Atc2xpZGVyLXJlc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4ICNmZmYsIGluc2V0IDAgMXB4IDdweCAjZWJlYmViLCAwIDNweCA2cHggLTNweCAjYmJiO1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLyogU2VhcmNoICovXG4uZmFjZXR3cC1zZWFyY2gtd3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uZmFjZXR3cC1zZWFyY2gge1xuICBwYWRkaW5nLXJpZ2h0OiAyOHB4OyB9XG5cbi5mYWNldHdwLWJ0biB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDVweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjU7IH1cblxuLmZhY2V0d3AtYnRuOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9pY29uLXNlYXJjaC5wbmdcIikgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwcHggMjBweDsgfVxuXG4vKiBQcm94aW1pdHkgKi9cbi5sb2NhdGlvbi13cmFwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuaW5wdXQuZmFjZXR3cC1sb2NhdGlvbiB7XG4gIHBhZGRpbmctcmlnaHQ6IDI4cHg7XG4gIG1pbi13aWR0aDogMjQwcHg7IH1cblxuLmxvY2F0aW9uLXJlc3VsdHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmxvY2F0aW9uLXJlc3VsdCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gIHBhZGRpbmc6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY29sb3I6ICM4ODg7IH1cblxuLmxvY2F0aW9uLXJlc3VsdDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7IH1cblxuLmxvY2F0aW9uLXJlc3VsdC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMkZFOyB9XG5cbi5yZXN1bHQtbWFpbiB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICMyMjI7IH1cblxuLmxvY2F0ZS1tZSB7XG4gIHRvcDogNTAlO1xuICByaWdodDogNXB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC41OyB9XG5cbi5sb2NhdGUtbWU6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2ljb24tbG9jYXRlLnBuZ1wiKSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMjBweCAyMHB4OyB9XG5cbi5sb2NhdGUtbWUuZi1sb2FkaW5nOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9sb2FkaW5nLnBuZ1wiKSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMjBweCAyMHB4O1xuICBhbmltYXRpb246IHNwaW4gNzAwbXMgaW5maW5pdGUgbGluZWFyOyB9XG5cbi5sb2NhdGUtbWUuZi1yZXNldDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi1jbG9zZS5wbmdcIikgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwcHggMjBweDsgfVxuXG4vKiBSYXRpbmcgKi9cbi5mYWNldHdwLXN0YXJzIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5mYWNldHdwLXN0YXIge1xuICBmbG9hdDogcmlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogI2NjYzsgfVxuXG4uZmFjZXR3cC1zdGFyOmhvdmVyLFxuLmZhY2V0d3Atc3Rhcjpob3ZlciB+IC5mYWNldHdwLXN0YXIsXG4uZmFjZXR3cC1zdGFyLnNlbGVjdGVkLFxuLmZhY2V0d3Atc3Rhci5zZWxlY3RlZCB+IC5mYWNldHdwLXN0YXIge1xuICBjb2xvcjogIzAwMDsgfVxuXG4uZmFjZXR3cC1zdGFyLnNlbGVjdGVkOmhvdmVyLFxuLmZhY2V0d3Atc3Rhci5zZWxlY3RlZDpob3ZlciB+IC5mYWNldHdwLXN0YXIge1xuICBjb2xvcjogcmVkOyB9XG5cbi8qIENTUyBhbmltYXRpb25zICovXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG5cbi8qIFNlbGVjdGlvbnMgc2hvcnRjb2RlICovXG4uZmFjZXR3cC1zZWxlY3Rpb25zIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4uZmFjZXR3cC1zZWxlY3Rpb25zIC5mYWNldHdwLXNlbGVjdGlvbi12YWx1ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29uLWNsb3NlLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDEycHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsgfVxuXG4vKiBTbGlkZXIgKi9cbi5zbGljay1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnNsaWNrLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnNsaWNrLWxpc3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLnNsaWNrLWxpc3QuZHJhZ2dpbmcge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjdXJzb3I6IGhhbmQ7IH1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cbi5zbGljay10cmFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAuc2xpY2stdHJhY2s6YmVmb3JlLCAuc2xpY2stdHJhY2s6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2sge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpY2stc2xpZGUge1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNsaWNrLXNsaWRlLmRyYWdnaW5nIGltZyB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIGNvb2wtdGltZWxpbmUtcHJvICovXG4uY29vbC10aW1lbGluZS1ob3Jpem9udGFsIC5jbHRfY2Fyb3VzZWxfc2xpZGVyIHVsLnNsaWNrLXNsaWRlciBidXR0b24uY3RsLXNsaWNrLW5leHQsXG4uY29vbC10aW1lbGluZS1ob3Jpem9udGFsIC5jbHRfY2Fyb3VzZWxfc2xpZGVyIHVsLnNsaWNrLXNsaWRlciBidXR0b24uY3RsLXNsaWNrLXByZXYge1xuICBiYWNrZ3JvdW5kOiAwIDAgIWltcG9ydGFudDsgfVxuXG4uY3RsLXNsaWNrLW5leHQsXG4uY3RsLXNsaWNrLXByZXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5jdGwtc2xpY2stbmV4dCxcbi5jdGwtc2xpY2stbmV4dDpmb2N1cyxcbi5jdGwtc2xpY2stbmV4dDpob3Zlcixcbi5jdGwtc2xpY2stcHJldixcbi5jdGwtc2xpY2stcHJldjpmb2N1cyxcbi5jdGwtc2xpY2stcHJldjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIG91dGxpbmU6IDA7IH1cblxuLmN0bC1zbGljay1uZXh0LFxuLmN0bC1zbGljay1wcmV2IHtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBsaW5lLWhlaWdodDogMDtcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgdG9wOiA1OCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jdGwtc2xpY2stbmV4dDpmb2N1czpiZWZvcmUsXG4uY3RsLXNsaWNrLW5leHQ6aG92ZXI6YmVmb3JlLFxuLmN0bC1zbGljay1wcmV2OmZvY3VzOmJlZm9yZSxcbi5jdGwtc2xpY2stcHJldjpob3ZlcjpiZWZvcmUge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5jdGwtc2xpY2stbmV4dC5zbGljay1kaXNhYmxlZCxcbi5jdGwtc2xpY2stcHJldi5zbGljay1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC4yNTtcbiAgYmFja2dyb3VuZDogMCAwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi5jdGwtc2xpY2stcHJldiB7XG4gIGxlZnQ6IC01cHg7IH1cblxuLmN0bC1zbGljay1uZXh0IHtcbiAgcmlnaHQ6IC01cHg7IH1cblxuYnV0dG9uLmN0bC1zbGljay1uZXh0LmN0bC1mbGF0LWxlZnQuc2xpY2stYXJyb3csXG5idXR0b24uY3RsLXNsaWNrLXByZXYuY3RsLWZsYXQtcmlnaHQuc2xpY2stYXJyb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi8qIGN1c3RvbSBzdHlsaW5nICovXG4uY3RsLXNsaWNrLXByZXYgaSxcbi5jdGwtc2xpY2stbmV4dCBpIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG4uY3RsLXNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQsXG4uY3RsLXNsaWNrLXByZXYuc2xpY2stZGlzYWJsZWQge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IH1cbiAgLmN0bC1zbGljay1uZXh0LnNsaWNrLWRpc2FibGVkIGksXG4gIC5jdGwtc2xpY2stcHJldi5zbGljay1kaXNhYmxlZCBpIHtcbiAgICBjb2xvcjogIzY2NjsgfVxuXG4uY3RsLXN0b3J5LXRpbWUge1xuICBjb2xvcjogIzc3NztcbiAgZm9udC1mYW1pbHk6IFwiU2FpcmFcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC44ODg4OXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuXG4uc2xpY2stY3VycmVudCAuY3RsLXN0b3J5LXRpbWUge1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuMjIyMjJyZW07IH1cblxuLnRpbWVsaW5lLXBvc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAyNDVweDtcbiAgYmFja2dyb3VuZDogI2VlZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC50aW1lbGluZS1wb3N0IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyODBweDsgfSB9XG4gIC50aW1lbGluZS1wb3N0IHRpbWUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgMCAzMHB4IDA7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtZmFtaWx5OiBcIlNhaXJhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgYmFja2dyb3VuZDogI2UxNWIyZDtcbiAgICBmb250LXNpemU6IDAuODg4ODlyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnRpbWVsaW5lLXBvc3QgdGltZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMTExMXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC50aW1lbGluZS1wb3N0IHRpbWUge1xuICAgICAgICBmb250LXNpemU6IDEuMjIyMjJyZW07IH0gfVxuICAudGltZWxpbmUtcG9zdCAuZnVsbC13aWR0aCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAudGltZWxpbmUtcG9zdCAuZnVsbC13aWR0aDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTZweDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDIwJTtcbiAgICAgIGhlaWdodDogNnB4O1xuICAgICAgYmFja2dyb3VuZDogI2UxNWIyZDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLnRpbWVsaW5lLXBvc3QgLmZ1bGwtd2lkdGggaW1nIHtcbiAgICAgICAgbWF4LWhlaWdodDogMjUwcHggIWltcG9ydGFudDsgfSB9XG5cbi8qIFNsaWRlciAqL1xuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLWxpc3Qge1xuICBiYWNrZ3JvdW5kOiAjZmZmIHVybChcIi4uL2ltYWdlcy9hamF4LWxvYWRlci5naWZcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7IH1cblxuLyogSWNvbnMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJzbGlja1wiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3NsaWNrLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9zbGljay5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9zbGljay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL3NsaWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvc2xpY2suc3ZnI3NsaWNrXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi8qIEFycm93cyAqL1xuLnNsaWNrLXByZXYsXG4uc2xpY2stbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAzNXB4O1xuICBoZWlnaHQ6IDE1MHB4O1xuICBsaW5lLWhlaWdodDogMHB4O1xuICBmb250LXNpemU6IDBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTsgfVxuICAuc2xpY2stcHJldjpob3ZlciwgLnNsaWNrLXByZXY6Zm9jdXMsXG4gIC5zbGljay1uZXh0OmhvdmVyLFxuICAuc2xpY2stbmV4dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAubm8taW9zIC5zbGljay1wcmV2OmhvdmVyOmJlZm9yZSwgLm5vLWlvcyAuc2xpY2stcHJldjpmb2N1czpiZWZvcmUsIC5uby1pb3NcbiAgICAuc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUsIC5uby1pb3NcbiAgICAuc2xpY2stbmV4dDpmb2N1czpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuc2xpY2stcHJldi5zbGljay1kaXNhYmxlZDpiZWZvcmUsXG4gIC5zbGljay1uZXh0LnNsaWNrLWRpc2FibGVkOmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuc2xpY2stcHJldjpiZWZvcmUsXG4gIC5zbGljay1uZXh0OmJlZm9yZSB7XG4gICAgLypcbiAgICAgICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgY29sb3I6ICRzbGljay1hcnJvdy1jb2xvcjtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgICovXG4gICAgb3BhY2l0eTogMC43NTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tYXJ3LXNsaWRlci5zdmcpIG5vLXJlcGVhdDsgfVxuXG4uc2xpY2stcHJldiB7XG4gIGxlZnQ6IC0yNXB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IC0yNXB4OyB9XG4gIC5zbGljay1wcmV2OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICAgIC8qY29udGVudDogJHNsaWNrLXByZXYtY2hhcmFjdGVyO1xuICAgICAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICAgICAgY29udGVudDogJHNsaWNrLW5leHQtY2hhcmFjdGVyO1xuICAgICAgICB9XG4gICAgICAgICovIH1cblxuLnNsaWNrLW5leHQge1xuICByaWdodDogLTI1cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stbmV4dCB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgcmlnaHQ6IGF1dG87IH1cbiAgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICAvKlxuICAgICAgICBjb250ZW50OiAkc2xpY2stbmV4dC1jaGFyYWN0ZXI7XG4gICAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgICAgICBjb250ZW50OiAkc2xpY2stcHJldi1jaGFyYWN0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgKi8gfVxuXG4vKiBEb3RzICovXG4uc2xpY2stZG90dGVkLnNsaWNrLXNsaWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblxuLnNsaWNrLWRvdHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTI1cHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNsaWNrLWRvdHMgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIG1hcmdpbjogMCA1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuc2xpY2stZG90cyBsaSBidXR0b24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgICBmb250LXNpemU6IDBweDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLCAuc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lOyB9XG4gICAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3ZlcjpiZWZvcmUsIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogXCLigKJcIjtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cbiAgICAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gICAgICBjb2xvcjogI2NjYztcbiAgICAgIG9wYWNpdHk6IDAuNzU7IH1cblxuW2RhdGEtc2ltcGxlYmFyXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5zaW1wbGViYXItd3JhcHBlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiBpbmhlcml0O1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIG1heC13aWR0aDogaW5oZXJpdDtcbiAgbWF4LWhlaWdodDogaW5oZXJpdDsgfVxuXG4uc2ltcGxlYmFyLW1hc2sge1xuICBkaXJlY3Rpb246IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAwOyB9XG5cbi5zaW1wbGViYXItb2Zmc2V0IHtcbiAgZGlyZWN0aW9uOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgcmVzaXplOiBub25lICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuXG4uc2ltcGxlYmFyLWNvbnRlbnQtd3JhcHBlciB7XG4gIGRpcmVjdGlvbjogaW5oZXJpdDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC8qIFJlcXVpcmVkIGZvciBob3Jpem9udGFsIG5hdGl2ZSBzY3JvbGxiYXIgdG8gbm90IGFwcGVhciBpZiBwYXJlbnQgaXMgdGFsbGVyIHRoYW4gbmF0dXJhbCBoZWlnaHQgKi9cbiAgd2lkdGg6IGF1dG87XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAvKiBTY3JvbGwgb24gdGhpcyBlbGVtZW50IG90aGVyd2lzZSBlbGVtZW50IGNhbid0IGhhdmUgYSBwYWRkaW5nIGFwcGxpZWQgcHJvcGVybHkgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiBOb3QgcmVxdWlyZWQgZm9yIGhvcml6b250YWwgc2Nyb2xsIHRvIHRyaWdnZXIgKi9cbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgLyogTmVlZGVkIGZvciB2ZXJ0aWNhbCBzY3JvbGwgdG8gdHJpZ2dlciAqLyB9XG5cbi5zaW1wbGViYXItY29udGVudDpiZWZvcmUsXG4uc2ltcGxlYmFyLWNvbnRlbnQ6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi5zaW1wbGViYXItcGxhY2Vob2xkZXIge1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uc2ltcGxlYmFyLWhlaWdodC1hdXRvLW9ic2VydmVyLXdyYXBwZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IC0xO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmbGV4LWdyb3c6IGluaGVyaXQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmbGV4LWJhc2lzOiAwOyB9XG5cbi5zaW1wbGViYXItaGVpZ2h0LWF1dG8tb2JzZXJ2ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwMCU7XG4gIHdpZHRoOiAxMDAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBtaW4td2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IC0xOyB9XG5cbi5zaW1wbGViYXItdHJhY2sge1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbltkYXRhLXNpbXBsZWJhcl0uc2ltcGxlYmFyLWRyYWdnaW5nIC5zaW1wbGViYXItdHJhY2sge1xuICBwb2ludGVyLWV2ZW50czogYWxsOyB9XG5cbi5zaW1wbGViYXItc2Nyb2xsYmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMnB4O1xuICB3aWR0aDogN3B4O1xuICBtaW4taGVpZ2h0OiAxMHB4OyB9XG5cbi5zaW1wbGViYXItc2Nyb2xsYmFyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyOyB9XG5cbi5zaW1wbGViYXItdHJhY2sgLnNpbXBsZWJhci1zY3JvbGxiYXIuc2ltcGxlYmFyLXZpc2libGU6YmVmb3JlIHtcbiAgLyogV2hlbiBob3ZlcmVkLCByZW1vdmUgYWxsIHRyYW5zaXRpb25zIGZyb20gZHJhZyBoYW5kbGUgKi9cbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDBzIGxpbmVhcjsgfVxuXG4uc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci12ZXJ0aWNhbCB7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDExcHg7IH1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItdmVydGljYWwgLnNpbXBsZWJhci1zY3JvbGxiYXI6YmVmb3JlIHtcbiAgdG9wOiAycHg7XG4gIGJvdHRvbTogMnB4OyB9XG5cbi5zaW1wbGViYXItdHJhY2suc2ltcGxlYmFyLWhvcml6b250YWwge1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDExcHg7IH1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCAuc2ltcGxlYmFyLXNjcm9sbGJhcjpiZWZvcmUge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDJweDtcbiAgcmlnaHQ6IDJweDsgfVxuXG4uc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci1ob3Jpem9udGFsIC5zaW1wbGViYXItc2Nyb2xsYmFyIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIHRvcDogMnB4O1xuICBoZWlnaHQ6IDdweDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWluLXdpZHRoOiAxMHB4O1xuICB3aWR0aDogYXV0bzsgfVxuXG4vKiBSdGwgc3VwcG9ydCAqL1xuW2RhdGEtc2ltcGxlYmFyLWRpcmVjdGlvbj0ncnRsJ10gLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItdmVydGljYWwge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDsgfVxuXG4uaHMtZHVtbXktc2Nyb2xsYmFyLXNpemUge1xuICBkaXJlY3Rpb246IHJ0bDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGhlaWdodDogNTAwcHg7XG4gIHdpZHRoOiA1MDBweDtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBzY3JvbGw7IH1cblxuLyogcGFnZSBoZWFkbGluZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5oZWFkZXIucGFnZS1oZWFkZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNlMTViMmQ7XG4gIC8qIGJnIHRyaWFuZ2xlICovIH1cbiAgaGVhZGVyLnBhZ2UtaGVhZGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDkwcHggOTBweCAwIDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmY3NzMzIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIGhlYWRlci5wYWdlLWhlYWRlcjpiZWZvcmUge1xuICAgICAgICBib3JkZXItd2lkdGg6IDEwMHB4IDEwMHB4IDAgMDsgfSB9XG4gIGhlYWRlci5wYWdlLWhlYWRlciBoMSB7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2N3JlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogMjFweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgaGVhZGVyLnBhZ2UtaGVhZGVyIGgxOjpiZWZvcmUsIGhlYWRlci5wYWdlLWhlYWRlciBoMTo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjb250ZW50OiAnICc7IH1cbiAgICBoZWFkZXIucGFnZS1oZWFkZXIgaDE6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIGhlYWRlci5wYWdlLWhlYWRlciBoMSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gICAgaGVhZGVyLnBhZ2UtaGVhZGVyIGgxOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgaGVhZGVyLnBhZ2UtaGVhZGVyIGgxLCBoZWFkZXIucGFnZS1oZWFkZXIgaDE6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbm9uZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICBoZWFkZXIucGFnZS1oZWFkZXIgaDEge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjFweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7IH0gfVxuXG4vKiBwYWdlIGhlYWRsaW5lLCBjdXJyZW50bHkgdXNlZCBvbiBzaW5nbGUgcG9zdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5oZWFkZXIucGFnZS1oZWFkZXItY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMjJweDtcbiAgYmFja2dyb3VuZDogI2VkYzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGhlYWRlci5wYWdlLWhlYWRlci1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMnB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBoZWFkZXIucGFnZS1oZWFkZXItY2hpbGQge1xuICAgICAgcGFkZGluZy10b3A6IDUwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzJweDsgfSB9XG4gIGhlYWRlci5wYWdlLWhlYWRlci1jaGlsZCBoMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogI2IzMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIGhlYWRlci5wYWdlLWhlYWRlci1jaGlsZCBoMSB7XG4gICAgICAgIHRvcDogLTZweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDExMHB4OyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgaGVhZGVyLnBhZ2UtaGVhZGVyLWNoaWxkIGgxIHtcbiAgICAgICAgdG9wOiAtOXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTIwcHg7IH0gfVxuICBoZWFkZXIucGFnZS1oZWFkZXItY2hpbGQgLnBhcmVudC1zbHVnIHtcbiAgICBtYXJnaW46IDAgLTE1cHggMjBweCAtMTVweDtcbiAgICBiYWNrZ3JvdW5kOiAjYjMwOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIGhlYWRlci5wYWdlLWhlYWRlci1jaGlsZCAucGFyZW50LXNsdWcge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH1cblxuLyogaGVhZGVyIGFib3ZlIGNvbnRlbnQ7IHVzZWQgb24gcHJvamVjdCBzaW5nbGUgYW5kIG5ld3MgYXJ0aWNsZSBzaW5nbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaGVhZGVyLmNvbnRlbnQtcGFnZS1oZWFkZXIge1xuICBtYXJnaW46IDAgMCA0MHB4IDA7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM2NjY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGhlYWRlci5jb250ZW50LXBhZ2UtaGVhZGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICBoZWFkZXIuY29udGVudC1wYWdlLWhlYWRlciBoMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBoZWFkZXIuY29udGVudC1wYWdlLWhlYWRlciBoMSB7XG4gICAgICAgIHRvcDogLTZweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE0MHB4OyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgaGVhZGVyLmNvbnRlbnQtcGFnZS1oZWFkZXIgaDEge1xuICAgICAgICB0b3A6IC05cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNTBweDsgfSB9XG4gIGhlYWRlci5jb250ZW50LXBhZ2UtaGVhZGVyIC5wYXJlbnQtc2x1ZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjYjMwOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIGhlYWRlci5jb250ZW50LXBhZ2UtaGVhZGVyIC5wYXJlbnQtc2x1ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IH0gfVxuICAgIGhlYWRlci5jb250ZW50LXBhZ2UtaGVhZGVyIC5wYXJlbnQtc2x1ZyBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG5cbi8qIHBhcmVudCBzbHVnIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wYXJlbnQtc2x1ZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDE1cHggMjBweCAxMXB4IDE1cHg7XG4gIGJhY2tncm91bmQ6ICM2NjY7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LWZhbWlseTogXCJTYWlyYVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYXJlbnQtc2x1ZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nLXRvcDogMTFweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMjBweDsgfSB9XG4gIC5wYXJlbnQtc2x1ZyBhIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5wYXJlbnQtc2x1ZyBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5wYXJlbnQtc2x1ZyAuaWNvbi13cmFwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIG1hcmdpbjogMCAxMHB4IDAgMDsgfVxuICAgIC5wYXJlbnQtc2x1ZyAuaWNvbi13cmFwIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsgfVxuICAgIC5wYXJlbnQtc2x1ZyAuaWNvbi13cmFwIHBhdGgge1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFyZW50LXNsdWcgLmljb24td3JhcCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKiBkZWZhdWx0IHNlY3Rpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNlY3Rpb24sIC5tZWRpYS1zZWN0aW9uLCAubmV3cy1hcmNoaXZlLWNvbnRlbnQsIC5zaW5nbGUtcG9zdCAucG9zdC1jb250ZW50LCAucmVsYXRlZC1wcm9qZWN0LXNlY3Rpb24sIC5wcm9qZWN0cy1jb250ZW50LCAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1jb250ZW50LCAucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlcy1jb250ZW50LCAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1pbnRybywgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtY29udGVudCwgYm9keS5wYWdlIC5wYWdlLWludHJvLCBib2R5LnBhZ2UgLnBhZ2UtY29udGVudCwgYm9keS5wYWdlIC5wYWdlLWNsb3NpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnBhZ2UtY29udGVudCwgYm9keS5zZWFyY2ggLnBhZ2UtY29udGVudCwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWludHJvLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWVzLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWZ1dHVyZSwgLnBlb3BsZS1jb250ZW50LCAuaG9tZS1pbnRybywgLmhvbWUtc2VydmljZXMsIC5ob21lLXByb2plY3RzLCAuaG9tZS1uZXdzLCAuaG9tZS1qb2JzIHtcbiAgcGFkZGluZzogNDBweCAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNlY3Rpb24sIC5tZWRpYS1zZWN0aW9uLCAubmV3cy1hcmNoaXZlLWNvbnRlbnQsIC5zaW5nbGUtcG9zdCAucG9zdC1jb250ZW50LCAucmVsYXRlZC1wcm9qZWN0LXNlY3Rpb24sIC5wcm9qZWN0cy1jb250ZW50LCAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1jb250ZW50LCAucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlcy1jb250ZW50LCAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1pbnRybywgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtY29udGVudCwgYm9keS5wYWdlIC5wYWdlLWludHJvLCBib2R5LnBhZ2UgLnBhZ2UtY29udGVudCwgYm9keS5wYWdlIC5wYWdlLWNsb3NpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnBhZ2UtY29udGVudCwgYm9keS5zZWFyY2ggLnBhZ2UtY29udGVudCwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWludHJvLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWVzLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWZ1dHVyZSwgLnBlb3BsZS1jb250ZW50LCAuaG9tZS1pbnRybywgLmhvbWUtc2VydmljZXMsIC5ob21lLXByb2plY3RzLCAuaG9tZS1uZXdzLCAuaG9tZS1qb2JzIHtcbiAgICAgIHBhZGRpbmc6IDc1cHggMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNlY3Rpb24sIC5tZWRpYS1zZWN0aW9uLCAubmV3cy1hcmNoaXZlLWNvbnRlbnQsIC5zaW5nbGUtcG9zdCAucG9zdC1jb250ZW50LCAucmVsYXRlZC1wcm9qZWN0LXNlY3Rpb24sIC5wcm9qZWN0cy1jb250ZW50LCAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1jb250ZW50LCAucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlcy1jb250ZW50LCAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1pbnRybywgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtY29udGVudCwgYm9keS5wYWdlIC5wYWdlLWludHJvLCBib2R5LnBhZ2UgLnBhZ2UtY29udGVudCwgYm9keS5wYWdlIC5wYWdlLWNsb3NpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnBhZ2UtY29udGVudCwgYm9keS5zZWFyY2ggLnBhZ2UtY29udGVudCwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWludHJvLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWVzLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWZ1dHVyZSwgLnBlb3BsZS1jb250ZW50LCAuaG9tZS1pbnRybywgLmhvbWUtc2VydmljZXMsIC5ob21lLXByb2plY3RzLCAuaG9tZS1uZXdzLCAuaG9tZS1qb2JzIHtcbiAgICAgIHBhZGRpbmc6IDEwMHB4IDA7IH0gfVxuICAuc2VjdGlvbiAuaGRyLXNlY3Rpb24sIC5tZWRpYS1zZWN0aW9uIC5oZHItc2VjdGlvbiwgLm5ld3MtYXJjaGl2ZS1jb250ZW50IC5oZHItc2VjdGlvbiwgLnNpbmdsZS1wb3N0IC5wb3N0LWNvbnRlbnQgLmhkci1zZWN0aW9uLCAucmVsYXRlZC1wcm9qZWN0LXNlY3Rpb24gLmhkci1zZWN0aW9uLCAucHJvamVjdHMtY29udGVudCAuaGRyLXNlY3Rpb24sIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5wcm9qZWN0LWNvbnRlbnQgLmhkci1zZWN0aW9uLCAucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlcy1jb250ZW50IC5oZHItc2VjdGlvbiwgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtaW50cm8gLmhkci1zZWN0aW9uLCAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1jb250ZW50IC5oZHItc2VjdGlvbiwgYm9keS5wYWdlIC5wYWdlLWludHJvIC5oZHItc2VjdGlvbiwgYm9keS5wYWdlIC5wYWdlLWNvbnRlbnQgLmhkci1zZWN0aW9uLCBib2R5LnBhZ2UgLnBhZ2UtY2xvc2luZyAuaGRyLXNlY3Rpb24sIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnBhZ2UtY29udGVudCAuaGRyLXNlY3Rpb24sIGJvZHkuc2VhcmNoIC5wYWdlLWNvbnRlbnQgLmhkci1zZWN0aW9uLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaW50cm8gLmhkci1zZWN0aW9uLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWVzIC5oZHItc2VjdGlvbiwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmhkci1zZWN0aW9uLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktZnV0dXJlIC5oZHItc2VjdGlvbiwgLnBlb3BsZS1jb250ZW50IC5oZHItc2VjdGlvbiwgLmhvbWUtaW50cm8gLmhkci1zZWN0aW9uLCAuaG9tZS1zZXJ2aWNlcyAuaGRyLXNlY3Rpb24sIC5ob21lLXByb2plY3RzIC5oZHItc2VjdGlvbiwgLmhvbWUtbmV3cyAuaGRyLXNlY3Rpb24sIC5ob21lLWpvYnMgLmhkci1zZWN0aW9uIHtcbiAgICBtYXJnaW46IDAgMCAyMHB4IDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnNlY3Rpb24gLmhkci1zZWN0aW9uLCAubWVkaWEtc2VjdGlvbiAuaGRyLXNlY3Rpb24sIC5uZXdzLWFyY2hpdmUtY29udGVudCAuaGRyLXNlY3Rpb24sIC5zaW5nbGUtcG9zdCAucG9zdC1jb250ZW50IC5oZHItc2VjdGlvbiwgLnJlbGF0ZWQtcHJvamVjdC1zZWN0aW9uIC5oZHItc2VjdGlvbiwgLnByb2plY3RzLWNvbnRlbnQgLmhkci1zZWN0aW9uLCAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1jb250ZW50IC5oZHItc2VjdGlvbiwgLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAuc2VydmljZXMtY29udGVudCAuaGRyLXNlY3Rpb24sIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWludHJvIC5oZHItc2VjdGlvbiwgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtY29udGVudCAuaGRyLXNlY3Rpb24sIGJvZHkucGFnZSAucGFnZS1pbnRybyAuaGRyLXNlY3Rpb24sIGJvZHkucGFnZSAucGFnZS1jb250ZW50IC5oZHItc2VjdGlvbiwgYm9keS5wYWdlIC5wYWdlLWNsb3NpbmcgLmhkci1zZWN0aW9uLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5wYWdlLWNvbnRlbnQgLmhkci1zZWN0aW9uLCBib2R5LnNlYXJjaCAucGFnZS1jb250ZW50IC5oZHItc2VjdGlvbiwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWludHJvIC5oZHItc2VjdGlvbiwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlcyAuaGRyLXNlY3Rpb24sIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5oZHItc2VjdGlvbiwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWZ1dHVyZSAuaGRyLXNlY3Rpb24sIC5wZW9wbGUtY29udGVudCAuaGRyLXNlY3Rpb24sIC5ob21lLWludHJvIC5oZHItc2VjdGlvbiwgLmhvbWUtc2VydmljZXMgLmhkci1zZWN0aW9uLCAuaG9tZS1wcm9qZWN0cyAuaGRyLXNlY3Rpb24sIC5ob21lLW5ld3MgLmhkci1zZWN0aW9uLCAuaG9tZS1qb2JzIC5oZHItc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMCAwIDMwcHggMDsgfSB9XG5cbi8qIHNjcm9sbCBob3Jpem9udGFsIGNvbnRhaW5lciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBodHRwczovL2NvZGVidXJzdC5pby9ob3ctdG8tY3JlYXRlLWhvcml6b250YWwtc2Nyb2xsaW5nLWNvbnRhaW5lcnMtZDgwNjk2NTFlOWM2ICovXG4uc2Nyb2xsaG9yeiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cbiAgLnNjcm9sbGhvcnogLnNjcm9sbGhvcnotaXRlbSB7XG4gICAgZmxleDogMCAwIGF1dG87IH1cbiAgLnNjcm9sbGhvcnogaW1nIHtcbiAgICBtYXgtd2lkdGg6IGF1dG87IH1cblxuLyogc2Nyb2xsIGhvcml6b250YWwgY29udGFpbmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaW1wbGViYXItd3JhcHBlciBpbWcge1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCB7XG4gIGJhY2tncm91bmQ6ICNhYWE7XG4gIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAuc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci1ob3Jpem9udGFsIC5zaW1wbGViYXItc2Nyb2xsYmFyIHtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiAxMXB4OyB9XG4gICAgLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCAuc2ltcGxlYmFyLXNjcm9sbGJhcjpiZWZvcmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYmFja2dyb3VuZDogI2QwNTUxMTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIC5pb3MgLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCAuc2ltcGxlYmFyLXNjcm9sbGJhcjpiZWZvcmUge1xuICAgICAgICByaWdodDogLTIwcHg7IH1cblxuLyogdHdpdHRlciBmZWVkcyBwbHVnaW4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiNjdGYgLmN0Zi1pdGVtIHtcbiAgcGFkZGluZzogMTVweCAwOyB9XG5cbiNjdGYgLmN0Zi10d2VldC1tZXRhIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGNvbG9yOiAjNzc3OyB9XG4gICNjdGYgLmN0Zi10d2VldC1tZXRhIGEge1xuICAgIGNvbG9yOiAjNzc3ICFpbXBvcnRhbnQ7IH1cblxuLmN0Zi10d2l0dGVybGluayB7XG4gIGNvbG9yOiAjZDA1NTExICFpbXBvcnRhbnQ7IH1cbiAgLm5vLWlvcyAuY3RmLXR3aXR0ZXJsaW5rOmhvdmVyIHtcbiAgICBjb2xvcjogI2VlNjYyMiAhaW1wb3J0YW50OyB9XG5cbi8qIHNsaWNrIHNsaWRlc2hvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm5vLWlvcyAuc2xpY2stZG90cyBidXR0b246aG92ZXI6YmVmb3JlIHtcbiAgY29sb3I6ICNhYWE7IH1cblxuLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIGJ1dHRvbjpob3ZlcjpiZWZvcmUge1xuICBjb2xvcjogI2NjNDQwMDsgfVxuXG4uc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gIGNvbG9yOiAjY2M0NDAwOyB9XG5cbi8qIGZhbmN5IGxpZ2h0Ym94IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiNmYW5jeWJveC1sZWZ0IHNwYW4ge1xuICBsZWZ0OiAyMHB4OyB9XG5cbiNmYW5jeWJveC1yaWdodCBzcGFuIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDIwcHg7IH1cblxuaHRtbC5pZS0xMSAjZmFuY3lib3gtY29udGVudCB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjsgfVxuXG4vKiBhcHAuc3dpZnR5cGUuY29tIHNlYXJjaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc3dpZnR5cGUtc2VhcmNoLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uc3QtZGVmYXVsdC1zZWFyY2gtaW5wdXQge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMTFweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNjYWNhY2EgIWltcG9ydGFudDsgfVxuXG4uc3dpZnR5cGUtc2VhcmNoLXBhZ2UgLnN0LWRlZmF1bHQtc2VhcmNoLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50OyB9XG5cbi8qIGJnIHRyaWFuZ2xlcyAtIGFzc3VtZSBwYXJlbnQgaGFzIHBvc2l0aW9uIHJlbGF0aXZlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIGJnIHRleHR1cmUgLSBhc3N1bWUgcGFyZW50IGhhcyBwb3NpdGlvbiByZWxhdGl2ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYmctdGV4dHVyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtMjMwcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxODZweDtcbiAgaGVpZ2h0OiA1MTBweDsgfVxuICAuYmctdGV4dHVyZS5iZy1sZWZ0IHtcbiAgICBsZWZ0OiAtMXB4OyB9XG4gIC5iZy10ZXh0dXJlLmJnLXJpZ2h0IHtcbiAgICByaWdodDogLTFweDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7IH1cbiAgLmJnLXRleHR1cmUgI3NoYXBlMSxcbiAgLmJnLXRleHR1cmUgI3NoYXBlMyB7XG4gICAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5OyB9XG4gICAgaHRtbC5pZSAuYmctdGV4dHVyZSAjc2hhcGUxLCBodG1sLmllXG4gICAgLmJnLXRleHR1cmUgI3NoYXBlMyB7XG4gICAgICBtaXgtYmxlbmQtbW9kZTogdW5zZXQ7XG4gICAgICBvcGFjaXR5OiAuNzsgfVxuICAuYmctdGV4dHVyZSAjc2hhcGUyIHtcbiAgICBtaXgtYmxlbmQtbW9kZTogc2NyZWVuOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk0LjM3NWVtKSB7XG4gICAgLmJnLXRleHR1cmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4vKiBNZWRpYSBzZWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tZWRpYS1zZWN0aW9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIC8qIHRhYiBuYXYgKi9cbiAgLyogdGFiIGNvbnRlbnQgKi9cbiAgLyogcGhvdG8gYm94ICovIH1cbiAgLm1lZGlhLXNlY3Rpb24gLnRhYnMge1xuICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5tZWRpYS1zZWN0aW9uIC50YWJzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsgfSB9XG4gIC5tZWRpYS1zZWN0aW9uIC50YWJzLXRpdGxlIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDMwcHg7IH1cbiAgICAubWVkaWEtc2VjdGlvbiAudGFicy10aXRsZSBhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlNhaXJhXCIsIHNhbnMtc2VyaWY7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDAuODg4ODlyZW07XG4gICAgICBib3JkZXItdG9wOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5tZWRpYS1zZWN0aW9uIC50YWJzLXRpdGxlIGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAubWVkaWEtc2VjdGlvbiAudGFicy10aXRsZSBhIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMTExMTFyZW07IH0gfVxuICAubWVkaWEtc2VjdGlvbiAudGFicy10aXRsZSA+IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5tZWRpYS1zZWN0aW9uIC50YWJzLXRpdGxlID4gYTpmb2N1cyxcbiAgLm1lZGlhLXNlY3Rpb24gLnRhYnMtdGl0bGUgPiBhW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2IzMDtcbiAgICBjb2xvcjogI2IzMDsgfVxuICAubWVkaWEtc2VjdGlvbiAudGFicy1jb250ZW50IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLm1lZGlhLXNlY3Rpb24gLnRhYnMtcGFuZWwge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLm1lZGlhLXNlY3Rpb24gLm1lZGlhLXBob3RvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgICAubWVkaWEtc2VjdGlvbiAubWVkaWEtcGhvdG86YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmctdG9wOiAxMDAlOyB9XG4gICAgLm1lZGlhLXNlY3Rpb24gLm1lZGlhLXBob3RvOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgei1pbmRleDogNDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tem9vbS5zdmcpIG5vLXJlcGVhdDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG4gICAgLm1lZGlhLXNlY3Rpb24gLm1lZGlhLXBob3RvIC5zaGFkb3ctb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICAgIC5tZWRpYS1zZWN0aW9uIC5tZWRpYS1waG90byAucGhvdG8tb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIGZpbHRlcjogYmx1cigxcHgpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICAgIC5uby1pb3MgLm1lZGlhLXNlY3Rpb24gLm1lZGlhLXBob3RvOmhvdmVyOmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAubm8taW9zIC5tZWRpYS1zZWN0aW9uIC5tZWRpYS1waG90bzpob3ZlciAuc2hhZG93LW92ZXJsYXkge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5uby1pb3MgLm1lZGlhLXNlY3Rpb24gLm1lZGlhLXBob3RvOmhvdmVyIC5waG90by1vdmVybGF5IHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLm1lZGlhLXNlY3Rpb24gLm1lZGlhLXZpZGVvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gICAgLm1lZGlhLXNlY3Rpb24gLm1lZGlhLXZpZGVvIC5yZXNwb25zaXZlLWVtYmVkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAubWVkaWEtc2VjdGlvbiAubWVkaWEtdmlkZW8gLnZpZGVvLWNhcHRpb24ge1xuICAgICAgbWFyZ2luOiA1cHggMCAwIDA7IH1cblxuLyogUGhvdG8gR2FsbGVyeSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZ2FsbGVyeSB7XG4gIG1heC13aWR0aDogNjYuNjY2NjdyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLmdhbGxlcnk6OmJlZm9yZSwgLmdhbGxlcnk6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7IH1cbiAgLmdhbGxlcnk6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMSAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMSAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMSAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTEgLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogMjUlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTEgLmdhbGxlcnktaXRlbSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0xIC5nYWxsZXJ5LWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIGZsb2F0OiByaWdodDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTEgLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTEgLmdhbGxlcnktaXRlbSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0xIC5nYWxsZXJ5LWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIGZsb2F0OiByaWdodDsgfSB9XG4gIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTIgLmdhbGxlcnktaXRlbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTIgLmdhbGxlcnktaXRlbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiByaWdodDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0zIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0zIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMyAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0zIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0zIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMyAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNCAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNCAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTQgLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogMjUlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTQgLmdhbGxlcnktaXRlbSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy00IC5nYWxsZXJ5LWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIGZsb2F0OiByaWdodDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTQgLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTQgLmdhbGxlcnktaXRlbSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy00IC5nYWxsZXJ5LWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIGZsb2F0OiByaWdodDsgfSB9XG4gIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy01IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy01IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy01IC5nYWxsZXJ5LWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTUgLmdhbGxlcnktaXRlbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTUgLmdhbGxlcnktaXRlbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiByaWdodDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy02IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy02IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNiAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy02IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy02IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNiAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNyAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNyAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNyAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTcgLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogMjUlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTcgLmdhbGxlcnktaXRlbSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy03IC5nYWxsZXJ5LWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIGZsb2F0OiByaWdodDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTcgLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTcgLmdhbGxlcnktaXRlbSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy03IC5nYWxsZXJ5LWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIGZsb2F0OiByaWdodDsgfSB9XG4gIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy04IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy04IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy04IC5nYWxsZXJ5LWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTggLmdhbGxlcnktaXRlbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTggLmdhbGxlcnktaXRlbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiByaWdodDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy05IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy05IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtOSAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy05IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy05IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC44MzMzM3JlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtOSAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuICAuZ2FsbGVyeSAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgLmdhbGxlcnkgLmdhbGxlcnktaXRlbSB7XG4gICAgcGFkZGluZy10b3A6IC44MzMzM3JlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjgzMzMzcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiBBY2NvcmRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmFjY29yZGlvbi10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzY2NjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICNkMDU1MTE7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yMjIyMnJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuMzMzMzNyZW07IH0gfVxuICAuYWNjb3JkaW9uLXRpdGxlOmFjdGl2ZSwgLmFjY29yZGlvbi10aXRsZTpob3ZlciwgLmFjY29yZGlvbi10aXRsZTpmb2N1cywgLmFjY29yZGlvbi10aXRsZTp2aXNpdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2QwNTUxMTsgfVxuICAubm8taW9zIC5hY2NvcmRpb24tdGl0bGU6YWN0aXZlLCAubm8taW9zIC5hY2NvcmRpb24tdGl0bGU6aG92ZXIsIC5uby1pb3MgLmFjY29yZGlvbi10aXRsZTpmb2N1cywgLm5vLWlvcyAuYWNjb3JkaW9uLXRpdGxlOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjYjMwOyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5hY2NvcmRpb24tdGl0bGUgLmljb24tdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiA5cHg7XG4gICAgaGVpZ2h0OiAyMXB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmFjY29yZGlvbi10aXRsZSAuaWNvbi10b2dnbGUge1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4OyB9IH1cbiAgICAuYWNjb3JkaW9uLXRpdGxlIC5pY29uLXRvZ2dsZSBzdmcge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAgIC5hY2NvcmRpb24tdGl0bGUgLmljb24tdG9nZ2xlIHBhdGgge1xuICAgICAgZmlsbDogI2QwNTUxMTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cblxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM2NjY7IH1cblxuLmlzLWFjdGl2ZSAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjYjMwOyB9XG4gIC5pcy1hY3RpdmUgLmFjY29yZGlvbi10aXRsZTphY3RpdmUsIC5pcy1hY3RpdmUgLmFjY29yZGlvbi10aXRsZTpob3ZlciwgLmlzLWFjdGl2ZSAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzLCAuaXMtYWN0aXZlIC5hY2NvcmRpb24tdGl0bGU6dmlzaXRlZCB7XG4gICAgY29sb3I6ICNiMzA7IH1cbiAgLmlzLWFjdGl2ZSAuYWNjb3JkaW9uLXRpdGxlIC5pY29uLXRvZ2dsZSBzdmcge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuICAuaXMtYWN0aXZlIC5hY2NvcmRpb24tdGl0bGUgLmljb24tdG9nZ2xlIHBhdGgge1xuICAgIGZpbGw6ICNiMzA7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLmFjY29yZGlvbi1jb250ZW50IHVsIHVsLCAuYWNjb3JkaW9uLWNvbnRlbnQgdWwgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IC4xcmVtOyB9XG4gIC5hY2NvcmRpb24tY29udGVudCB1bCBsaTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDIyXCI7XG4gICAgLyogQWRkIGNvbnRlbnQ6IFxcMjAyMiBpcyB0aGUgQ1NTIENvZGUvdW5pY29kZSBmb3IgYSBidWxsZXQgKi9cbiAgICBjb2xvcjogIzk5OTtcbiAgICAvKiBDaGFuZ2UgdGhlIGNvbG9yICovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgLyogSWYgeW91IHdhbnQgaXQgdG8gYmUgYm9sZCAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvKiBOZWVkZWQgdG8gYWRkIHNwYWNlIGJldHdlZW4gdGhlIGJ1bGxldCBhbmQgdGhlIHRleHQgKi9cbiAgICB3aWR0aDogMS4yZW07XG4gICAgLyogQWxzbyBuZWVkZWQgZm9yIHNwYWNlICh0d2VhayBpZiBuZWVkZWQpICovXG4gICAgbWFyZ2luLWxlZnQ6IC0xLjJlbTtcbiAgICAvKiBBbHNvIG5lZWRlZCBmb3Igc3BhY2UgKHR3ZWFrIGlmIG5lZWRlZCkgKi8gfVxuICAuYWNjb3JkaW9uLWNvbnRlbnQgdWwgbGkgbGk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAxNFwiOyB9XG5cbi8qIHNoYXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaGFyZSB7XG4gIG1hcmdpbjogNjBweCAwIDAgMDtcbiAgcGFkZGluZzogMjVweCAwIDAgMDtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjNjY2O1xuICBjb2xvcjogIzY2NjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLnNoYXJlIC5oZHIsXG4gIC5zaGFyZSAuc29jaWFsLWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG4gIC5zaGFyZSAuaGRyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMnB4O1xuICAgIG1hcmdpbjogMCA2cHggMCAwOyB9XG4gIC5zaGFyZSAuc29jaWFsLWljb24ge1xuICAgIG1hcmdpbjogMCA2cHg7IH1cbiAgICAuc2hhcmUgLnNvY2lhbC1pY29uIC5zdExhcmdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm5vLWlvcyAuc2hhcmUgLnNvY2lhbC1pY29uIHtcbiAgICBvcGFjaXR5OiAuODtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgLm5vLWlvcyAuc2hhcmUgLnNvY2lhbC1pY29uOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLnNoYXJlIC5zdF9mYWNlYm9va19sYXJnZSAuc3RCdXR0b24ge1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGhlaWdodDogMjVweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tc29jaWFsLWZhY2Vib29rLnN2Zykgbm8tcmVwZWF0OyB9XG4gIC5zaGFyZSAuc3RfdHdpdHRlcl9sYXJnZSAuc3RCdXR0b24ge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMTlweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tc29jaWFsLXR3aXR0ZXIuc3ZnKSBuby1yZXBlYXQ7IH1cbiAgLnNoYXJlIC5zdF9saW5rZWRpbl9sYXJnZSAuc3RCdXR0b24ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMTlweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tc29jaWFsLWxpbmtlZGluLnN2Zykgbm8tcmVwZWF0OyB9XG5cbi8qIGNvbnRlbnQgbmF2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jb250ZW50LW5hdi1pdGVtIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbnRlbnQtbmF2LWl0ZW0ge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAuY29udGVudC1uYXYtaXRlbSBhLFxuICAuY29udGVudC1uYXYtaXRlbSAuY29udGVudC1uYXYtaXRlbS1ibGFuayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNTBweCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzMzMztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDAuODg4ODlyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmNvbnRlbnQtbmF2LWl0ZW0gYSxcbiAgICAgIC5jb250ZW50LW5hdi1pdGVtIC5jb250ZW50LW5hdi1pdGVtLWJsYW5rIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNvbnRlbnQtbmF2LWl0ZW0gYSxcbiAgICAgIC5jb250ZW50LW5hdi1pdGVtIC5jb250ZW50LW5hdi1pdGVtLWJsYW5rIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjE2NjY3cmVtOyB9IH1cbiAgLmNvbnRlbnQtbmF2LWl0ZW0gYSB7XG4gICAgY29sb3I6ICM2NjY2NjY7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAgIC5jb250ZW50LW5hdi1pdGVtIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICM2NjY2NjY7IH1cbiAgICAubm8taW9zIC5jb250ZW50LW5hdi1pdGVtIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2NjYzsgfVxuICAgIC5jb250ZW50LW5hdi1pdGVtIGEgLmljb24td3JhcCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMTVweDsgfVxuXG4uY29udGVudC1uYXYtaXRlbS1wYXJlbnQgYSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgLm5vLWlvcyAuY29udGVudC1uYXYtaXRlbS1wYXJlbnQgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2RkZDsgfVxuICAuY29udGVudC1uYXYtaXRlbS1wYXJlbnQgYSAuaWNvbi13cmFwIHtcbiAgICB0b3A6IDFweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgbWFyZ2luOiAwIDIwcHggMCAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsgfVxuICAgIC5jb250ZW50LW5hdi1pdGVtLXBhcmVudCBhIC5pY29uLXdyYXAgcGF0aCB7XG4gICAgICBmaWxsOiAjNjY2NjY2OyB9XG5cbi5jb250ZW50LW5hdi1pdGVtLXByZXYgYSxcbi5jb250ZW50LW5hdi1pdGVtLXByZXYgLmNvbnRlbnQtbmF2LWl0ZW0tYmxhbmssXG4uY29udGVudC1uYXYtaXRlbS1uZXh0IGEsXG4uY29udGVudC1uYXYtaXRlbS1uZXh0IC5jb250ZW50LW5hdi1pdGVtLWJsYW5rIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBkb3R0ZWQgIzMzMztcbiAgYmFja2dyb3VuZDogI2VlZTsgfVxuXG4uY29udGVudC1uYXYtaXRlbS1wcmV2IGEgLmljb24td3JhcCxcbi5jb250ZW50LW5hdi1pdGVtLW5leHQgYSAuaWNvbi13cmFwIHtcbiAgdG9wOiAycHg7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMThweDsgfVxuICAuY29udGVudC1uYXYtaXRlbS1wcmV2IGEgLmljb24td3JhcCBwYXRoLFxuICAuY29udGVudC1uYXYtaXRlbS1uZXh0IGEgLmljb24td3JhcCBwYXRoIHtcbiAgICBmaWxsOiAjNjY2NjY2OyB9XG5cbi5jb250ZW50LW5hdi1pdGVtLW5leHQgYSAuaWNvbi13cmFwIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7IH1cblxuLmNvbnRlbnQtbmF2LWl0ZW0tcHJldiBhIC5pY29uLXdyYXAge1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsgfVxuXG4vKiBtaWRkbGUgYmFubmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5iYW5uZXItbWlkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDE1MHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2JnLXdlYXZlci1yb2FkLmpwZyk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYmFubmVyLW1pZCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMzAwcHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5iYW5uZXItbWlkIHtcbiAgICAgIGhlaWdodDogNDI1cHg7IH0gfVxuICAubm8taW9zIC5iYW5uZXItbWlkIHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkOyB9XG5cbi8qIGJvdHRvbSBiYW5uZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJhbm5lci1idG0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTYwcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYmctd2VhdmVyLXJvYWQuanBnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC15O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmJhbm5lci1idG0ge1xuICAgICAgaGVpZ2h0OiAzMDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmJhbm5lci1idG0ge1xuICAgICAgaGVpZ2h0OiA0NTBweDsgfSB9XG4gIC5uby1pb3MgLmJhbm5lci1idG0ge1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7IH1cbiAgLmJhbm5lci1idG06YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMjtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDUxLCA1MSwgNTEsIDAuOCkgMCUsIHJnYmEoNTEsIDUxLCA1MSwgMCkgMTAwJSk7IH1cbiAgLmJhbm5lci1idG0gLmJhbm5lci1kZWNvci1sZjpiZWZvcmUsIC5iYW5uZXItYnRtIC5iYW5uZXItZGVjb3ItbGY6YWZ0ZXIsXG4gIC5iYW5uZXItYnRtIC5iYW5uZXItZGVjb3ItcnQ6YmVmb3JlLFxuICAuYmFubmVyLWJ0bSAuYmFubmVyLWRlY29yLXJ0OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuICAgIGh0bWwuaWUgLmJhbm5lci1idG0gLmJhbm5lci1kZWNvci1sZjpiZWZvcmUsIGh0bWwuaWUgLmJhbm5lci1idG0gLmJhbm5lci1kZWNvci1sZjphZnRlciwgaHRtbC5pZVxuICAgIC5iYW5uZXItYnRtIC5iYW5uZXItZGVjb3ItcnQ6YmVmb3JlLCBodG1sLmllXG4gICAgLmJhbm5lci1idG0gLmJhbm5lci1kZWNvci1ydDphZnRlciB7XG4gICAgICBtaXgtYmxlbmQtbW9kZTogdW5zZXQ7XG4gICAgICBvcGFjaXR5OiAuNzsgfVxuICAuYmFubmVyLWJ0bSAuYmFubmVyLWRlY29yLWxmOmJlZm9yZSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAxNjBweCAwIDAgMTIwcHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmY3NzMzOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5iYW5uZXItYnRtIC5iYW5uZXItZGVjb3ItbGY6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAzMDBweCAwIDAgMjIwcHg7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuYmFubmVyLWJ0bSAuYmFubmVyLWRlY29yLWxmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogNDUwcHggMCAwIDM2MHB4OyB9IH1cbiAgLmJhbm5lci1idG0gLmJhbm5lci1kZWNvci1sZjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAxMTBweCAxMDBweCAwIDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjOTk5IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5iYW5uZXItYnRtIC5iYW5uZXItZGVjb3ItbGY6YWZ0ZXIge1xuICAgICAgICBib3JkZXItd2lkdGg6IDIxMHB4IDE4MHB4IDAgMDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5iYW5uZXItYnRtIC5iYW5uZXItZGVjb3ItbGY6YWZ0ZXIge1xuICAgICAgICBib3JkZXItd2lkdGg6IDMxMHB4IDI3MHB4IDAgMDsgfSB9XG4gIC5iYW5uZXItYnRtIC5iYW5uZXItZGVjb3ItcnQ6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDEyMHB4IDE2MHB4IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmY3NzMzIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5iYW5uZXItYnRtIC5iYW5uZXItZGVjb3ItcnQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDIyMHB4IDMwMHB4IDA7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuYmFubmVyLWJ0bSAuYmFubmVyLWRlY29yLXJ0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAzNjBweCA0NTBweCAwOyB9IH1cbiAgLmJhbm5lci1idG0gLmJhbm5lci1kZWNvci1ydDphZnRlciB7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvcmRlci13aWR0aDogMCAwIDExMHB4IDEwMHB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzk5OSB0cmFuc3BhcmVudDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuYmFubmVyLWJ0bSAuYmFubmVyLWRlY29yLXJ0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMjEwcHggMTgwcHg7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuYmFubmVyLWJ0bSAuYmFubmVyLWRlY29yLXJ0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMzEwcHggMjcwcHg7IH0gfVxuXG4vKiBncm91cCBsaW5rIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5ncm91cC1saW5rLmpzLWhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi8qIGZlYXR1cmVkIHBob3RvIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5mZWF0dXJlZC1waG90byB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMTBweCAwIDMwcHggMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOyB9XG4gIC5mZWF0dXJlZC1waG90bzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZmVhdHVyZWQtcGhvdG8ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIC5mZWF0dXJlZC1waG90byAuZmVhdHVyZWQtcGhvdG8tc2lkZXMge1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuICAgIGh0bWwuaWUgLmZlYXR1cmVkLXBob3RvIC5mZWF0dXJlZC1waG90by1zaWRlcyB7XG4gICAgICBtaXgtYmxlbmQtbW9kZTogdW5zZXQ7XG4gICAgICBvcGFjaXR5OiAuNzsgfVxuICAgIC5mZWF0dXJlZC1waG90byAuZmVhdHVyZWQtcGhvdG8tc2lkZXM6YmVmb3JlLCAuZmVhdHVyZWQtcGhvdG8gLmZlYXR1cmVkLXBob3RvLXNpZGVzOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTUlO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmZlYXR1cmVkLXBob3RvIC5mZWF0dXJlZC1waG90by1zaWRlczpiZWZvcmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSg1MSwgNTEsIDUxLCAwLjYpIDAlLCByZ2JhKDUxLCA1MSwgNTEsIDApIDEwMCUpOyB9XG4gICAgLmZlYXR1cmVkLXBob3RvIC5mZWF0dXJlZC1waG90by1zaWRlczphZnRlciB7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDUxLCA1MSwgNTEsIDAuNikgMCUsIHJnYmEoNTEsIDUxLCA1MSwgMCkgMTAwJSk7IH1cblxuLyogUGFnaW5hdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucGFnaW5hdGlvbiB7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAucGFnaW5hdGlvbiBsaSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIC8qIHByZXYsIG5leHQgKi8gfVxuICAgIC5wYWdpbmF0aW9uIGxpIGEsXG4gICAgLnBhZ2luYXRpb24gbGkgLmN1cnJlbnQge1xuICAgICAgbWFyZ2luOiAycHg7XG4gICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIC8qXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIxcHgpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0cHgpO1xuICAgICAgfVxuKi8gfVxuICAgICAgLnBhZ2luYXRpb24gbGkgYTpob3ZlcixcbiAgICAgIC5wYWdpbmF0aW9uIGxpIC5jdXJyZW50OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnBhZ2luYXRpb24gbGkgYSB7XG4gICAgICBjb2xvcjogI2QwNTUxMTsgfVxuICAgIC5wYWdpbmF0aW9uIGxpIC5jdXJyZW50IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGJhY2tncm91bmQ6ICM4ODg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLnBhZ2luYXRpb24gbGkgLmN1cnJlbnQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjODg4OyB9XG4gICAgLnBhZ2luYXRpb24gbGkgLnByZXYsXG4gICAgLnBhZ2luYXRpb24gbGkgLm5leHQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgMTVweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmb250LXNpemU6IDMuMzMzMzNyZW07IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5wYWdpbmF0aW9uIGxpIC5wcmV2LFxuICAgICAgICAucGFnaW5hdGlvbiBsaSAubmV4dCB7XG4gICAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgICBmb250LXNpemU6IDEuMTY2NjdyZW07IH0gfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnBhZ2luYXRpb24gbGkgLnByZXYsXG4gICAgICAgIC5wYWdpbmF0aW9uIGxpIC5uZXh0IHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNjY2NjdyZW07IH0gfVxuXG4vKiBuZXdzIGFyY2hpdmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogbmV3cyBzb2NpYWwgKi9cbi5uZXdzLXNvY2lhbC1zZWN0aW9uIHtcbiAgcGFkZGluZzogNDBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNlZWU7IH1cbiAgLm5ld3Mtc29jaWFsLXNlY3Rpb24gLnBhcmVudC1zbHVnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBwYWRkaW5nOiAxMXB4IDIwcHggMTFweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNiMzA7IH1cblxuLm5ld3Mtc29jaWFsLXNlY3Rpb25fX3NvY2lhbCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5uZXdzLXNvY2lhbC1zZWN0aW9uX19zb2NpYWwgYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBtYXJnaW46IDVweCAxNXB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAubmV3cy1zb2NpYWwtc2VjdGlvbl9fc29jaWFsIGEuZmFjZWJvb2sge1xuICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICB3aWR0aDogMThweDtcbiAgICAgIGhlaWdodDogMzRweDsgfVxuICAgIC5uZXdzLXNvY2lhbC1zZWN0aW9uX19zb2NpYWwgYS5saW5rZWRpbiB7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMTlweDtcbiAgICAgIHdpZHRoOiAyN3B4O1xuICAgICAgaGVpZ2h0OiAyNnB4OyB9XG4gICAgLm5ld3Mtc29jaWFsLXNlY3Rpb25fX3NvY2lhbCBhLmluc3RhZ3JhbSB7XG4gICAgICB3aWR0aDogMjFweDtcbiAgICAgIGhlaWdodDogMjFweDtcbiAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgaGVpZ2h0OiAyOHB4OyB9XG4gICAgLm5ld3Mtc29jaWFsLXNlY3Rpb25fX3NvY2lhbCBhIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5uZXdzLXNvY2lhbC1zZWN0aW9uX19zb2NpYWwgYSBwYXRoIHtcbiAgICAgIGZpbGw6ICNkMDU1MTE7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgLm5vLWlvcyAubmV3cy1zb2NpYWwtc2VjdGlvbl9fc29jaWFsIGE6aG92ZXIgcGF0aCB7XG4gICAgICBmaWxsOiAjYjMwOyB9XG5cbi8qIG5ld3MgYXJjaGl2ZSBpbnRybyAqL1xuLm5ld3MtYXJjaGl2ZS1jb250ZW50IC5mZWF0dXJlZC1waG90by1zaWRlcyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogbmV3cyBhcmNoaXZlIGludHJvICovXG4vKlxuYm9keS5pcy1yZXZlYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuKi9cbmJvZHkuYmxvZyAubmV3cy1iYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiAyN3B4IDAgMjVweDtcbiAgYmFja2dyb3VuZDogI2RkZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIGJvZHkuYmxvZyAubmV3cy1iYXIgLmhkciB7XG4gICAgbWFyZ2luOiAwIDAgMCAwOyB9XG4gIGJvZHkuYmxvZyAubmV3cy1iYXIgcCwgYm9keS5ibG9nIC5uZXdzLWJhciBhZGRyZXNzLCBib2R5LmJsb2cgLm5ld3MtYmFyIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCBib2R5LmJsb2cgLm5ld3MtYmFyIC5zdC11aS10eXBlLWRldGFpbCwgYm9keS5ibG9nIC5uZXdzLWJhciBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCBib2R5LmJsb2cgLm5ld3MtYmFyIC5zdC11aS10eXBlLWRldGFpbC1ib2xkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiU2FpcmFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgYm9keS5ibG9nIC5uZXdzLWJhciBwLCBib2R5LmJsb2cgLm5ld3MtYmFyIGFkZHJlc3MsIGJvZHkuYmxvZyAubmV3cy1iYXIgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IGJvZHkuYmxvZyAubmV3cy1iYXIgLnN0LXVpLXR5cGUtZGV0YWlsLCBib2R5LmJsb2cgLm5ld3MtYmFyIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IGJvZHkuYmxvZyAubmV3cy1iYXIgLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7IH0gfVxuICBib2R5LmJsb2cgLm5ld3MtYmFyIC50b2dnbGUtbW9kYWwtc2lnbnVwLW5ld3NsZXR0ZXIge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgYm9keS5ibG9nIC5uZXdzLWJhciAudG9nZ2xlLW1vZGFsLXNpZ251cC1uZXdzbGV0dGVyIC5pY29uLXdyYXAge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDMxcHg7XG4gICAgICBtYXJnaW46IDAgMTBweCAwIDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgICBib2R5LmJsb2cgLm5ld3MtYmFyIC50b2dnbGUtbW9kYWwtc2lnbnVwLW5ld3NsZXR0ZXIgLmljb24td3JhcCAuY2lyY2xlLFxuICAgICAgYm9keS5ibG9nIC5uZXdzLWJhciAudG9nZ2xlLW1vZGFsLXNpZ251cC1uZXdzbGV0dGVyIC5pY29uLXdyYXAgLnRyaWFuZ2xlLWluc2V0IHtcbiAgICAgICAgZmlsbDogI2QwNTUxMTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAgIC5uby1pb3MgYm9keS5ibG9nIC5uZXdzLWJhciAudG9nZ2xlLW1vZGFsLXNpZ251cC1uZXdzbGV0dGVyOmhvdmVyIC5jaXJjbGUsXG4gICAgLm5vLWlvcyBib2R5LmJsb2cgLm5ld3MtYmFyIC50b2dnbGUtbW9kYWwtc2lnbnVwLW5ld3NsZXR0ZXI6aG92ZXIgLnRyaWFuZ2xlLWluc2V0IHtcbiAgICAgIGZpbGw6ICNlZTY2MjI7IH1cblxuYm9keS5ibG9nIC5tb2RhbC1zaWdudXAtbmV3c2xldHRlciB7XG4gIHBhZGRpbmc6IDJyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBib2R5LmJsb2cgLm1vZGFsLXNpZ251cC1uZXdzbGV0dGVyIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAyNXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMik7IH0gfVxuICBib2R5LmJsb2cgLm1vZGFsLXNpZ251cC1uZXdzbGV0dGVyIGgyLCBib2R5LmJsb2cgLm1vZGFsLXNpZ251cC1uZXdzbGV0dGVyIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc2VhcmNoLWZvcm0gYm9keS5ibG9nIC5tb2RhbC1zaWdudXAtbmV3c2xldHRlciBpbnB1dFt0eXBlPSd0ZXh0J10sIGJvZHkuYmxvZyAubW9kYWwtc2lnbnVwLW5ld3NsZXR0ZXIgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWhlYWRpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCBib2R5LmJsb2cgLm1vZGFsLXNpZ251cC1uZXdzbGV0dGVyIC5zdC11aS10eXBlLWhlYWRpbmcsIGJvZHkuYmxvZyAubW9kYWwtc2lnbnVwLW5ld3NsZXR0ZXIgYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIGJvZHkuYmxvZyAubW9kYWwtc2lnbnVwLW5ld3NsZXR0ZXIgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIGJvZHkuYmxvZyAubW9kYWwtc2lnbnVwLW5ld3NsZXR0ZXIgLmNsb3NlLWJ1dHRvbiB7XG4gICAgdG9wOiAuNXJlbTtcbiAgICByaWdodDogMXJlbTtcbiAgICBmb250LXNpemU6IDJlbTsgfVxuICBib2R5LmJsb2cgLm1vZGFsLXNpZ251cC1uZXdzbGV0dGVyIC5mcm1fYnV0dG9uX3N1Ym1pdCB7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbmJvZHkuYmxvZyAuc2l0ZS1mb290ZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMTQwcHg7IH1cblxuLm5ld3MtYXJjaGl2ZS1pbnRybyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubmV3cy1hcmNoaXZlLWludHJvIC5oZHItc2VjdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMCAzMHB4IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNjY2OyB9XG5cbi8qIGFyY2hpdmUgYmxvZyBwb3N0ICovXG4uYmxvZ3Bvc3QtYXJjaGl2ZSB7XG4gIG1hcmdpbjogNjBweCAwO1xuICBwYWRkaW5nOiAwIDAgNjBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM2NjY7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYmxvZ3Bvc3QtYXJjaGl2ZSAucG9zdC1hcmNoaXZlLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7IH0gfVxuXG4vKiBib3R0b20gYmFubmVyICovXG4ubmV3cy1iYW5uZXItYnRtIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9iZy1yb2xsZWQtcGxhbnMuanBnKTsgfVxuXG4vKiBuZXdzIHNpbmdsZSBwb3N0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaW5nbGUtcG9zdCAucGFyZW50LXNsdWctbW9iaWxlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2luZ2xlLXBvc3QgLnBhcmVudC1zbHVnLW1vYmlsZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLnNpbmdsZS1wb3N0IC5wYXJlbnQtc2x1Zy1tb2JpbGUgYTpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLnNpbmdsZS1wb3N0IC5mZWF0dXJlZC1waG90byB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7IH1cbiAgLnNpbmdsZS1wb3N0IC5mZWF0dXJlZC1waG90bzpiZWZvcmUge1xuICAgIHBhZGRpbmctdG9wOiA0MCU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnNpbmdsZS1wb3N0IC5mZWF0dXJlZC1waG90bzpiZWZvcmUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMzUlOyB9IH1cbiAgLnNpbmdsZS1wb3N0IC5mZWF0dXJlZC1waG90byAuZmVhdHVyZWQtcGhvdG8tc2lkZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNpbmdsZS1wb3N0IGhlYWRlci5jb250ZW50LXBhZ2UtaGVhZGVyIGgxIHtcbiAgICBtYXJnaW4tbGVmdDogMTIwcHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2luZ2xlLXBvc3QgaGVhZGVyLmNvbnRlbnQtcGFnZS1oZWFkZXIgaDEge1xuICAgIG1hcmdpbi1sZWZ0OiAxMzBweDsgfSB9XG5cbi5zaW5nbGUtcG9zdCAucG9zdC1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zaW5nbGUtcG9zdCAucG9zdC1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctdG9wOiA5MHB4OyB9IH1cblxuLnNpbmdsZS1wb3N0IHRpbWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07IH1cblxuLyogUmVsYXRlZCBQcm9qZWN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5yZWxhdGVkLXByb2plY3Qtc2VjdGlvbiB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMyMjIgMCUsICMzMzMgMTAlLCAjNDQ0IDYwJSwgIzIyMiA2MCUsICMyMjIgMTAwJSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucmVsYXRlZC1wcm9qZWN0LXNlY3Rpb24gaDIsIC5yZWxhdGVkLXByb2plY3Qtc2VjdGlvbiBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIC5yZWxhdGVkLXByb2plY3Qtc2VjdGlvbiBpbnB1dFt0eXBlPSd0ZXh0J10sIC5yZWxhdGVkLXByb2plY3Qtc2VjdGlvbiBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtaGVhZGluZywgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5yZWxhdGVkLXByb2plY3Qtc2VjdGlvbiAuc3QtdWktdHlwZS1oZWFkaW5nLCAucmVsYXRlZC1wcm9qZWN0LXNlY3Rpb24gYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIC5yZWxhdGVkLXByb2plY3Qtc2VjdGlvbiBpbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLnJlbGF0ZWQtcHJvamVjdCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgMCAzMHB4IDA7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgLnJlbGF0ZWQtcHJvamVjdDpob3ZlciwgLnJlbGF0ZWQtcHJvamVjdDphY3RpdmUsIC5yZWxhdGVkLXByb2plY3Q6Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IH1cbiAgLm5vLWlvcyAucmVsYXRlZC1wcm9qZWN0OmhvdmVyOmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5uby1pb3MgLnJlbGF0ZWQtcHJvamVjdDpob3ZlciAucmVsYXRlZC1wcm9qZWN0LW92ZXJsYXkge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLnJlbGF0ZWQtcHJvamVjdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IDEwMCU7IH1cbiAgLnJlbGF0ZWQtcHJvamVjdDphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG4gICAgaHRtbC5pZSAucmVsYXRlZC1wcm9qZWN0OmFmdGVyIHtcbiAgICAgIG1peC1ibGVuZC1tb2RlOiB1bnNldDtcbiAgICAgIG9wYWNpdHk6IC43OyB9XG4gIC5yZWxhdGVkLXByb2plY3QgLnJlbGF0ZWQtcHJvamVjdC1zaGFkb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg1MSwgNTEsIDUxLCAwLjgpIDAlLCByZ2JhKDUxLCA1MSwgNTEsIDApIDUwJSk7IH1cbiAgLnJlbGF0ZWQtcHJvamVjdCAucmVsYXRlZC1wcm9qZWN0LW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGZpbHRlcjogYmx1cigxcHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgLnJlbGF0ZWQtcHJvamVjdCAudGV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIHotaW5kZXg6IDg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDgwJTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5yZWxhdGVkLXByb2plY3QgLnRleHQge1xuICAgICAgICB0b3A6IDE1cHg7XG4gICAgICAgIGxlZnQ6IDE1cHg7IH0gfVxuICAucmVsYXRlZC1wcm9qZWN0IC50aXRsZSB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCA4cHggYmxhY2s7IH1cbiAgICAucmVsYXRlZC1wcm9qZWN0IC50aXRsZS50aXRsZS1tb2JpbGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IC43cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLnJlbGF0ZWQtcHJvamVjdCAudGl0bGUudGl0bGUtbW9iaWxlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAucmVsYXRlZC1wcm9qZWN0IC50aXRsZS50aXRsZS1kZXNrdG9wIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogMS4zOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAucmVsYXRlZC1wcm9qZWN0IC50aXRsZS50aXRsZS1kZXNrdG9wIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5yZWxhdGVkLXByb2plY3QgLnByb2plY3QtbWV0YS1kYXRhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDVweCAwIDAgMDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDhweCBibGFjaztcbiAgICBmb250LXNpemU6IC43cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnJlbGF0ZWQtcHJvamVjdCAucHJvamVjdC1tZXRhLWRhdGEge1xuICAgICAgICBmb250LXNpemU6IDAuOTQ0NDRyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucmVsYXRlZC1wcm9qZWN0IC5wcm9qZWN0LW1ldGEtZGF0YSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbi8qIHByb2plY3RzIGFyY2hpdmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnByb2plY3RzLWNvbnRlbnQge1xuICBwYWRkaW5nOiAyNXB4IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucHJvamVjdHMtY29udGVudCB7XG4gICAgICBwYWRkaW5nOiA3NXB4IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wcm9qZWN0cy1jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDEwMHB4IDA7IH0gfVxuXG4ucHJvamVjdHMtZmlsdGVycy13cmFwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvKiBtb2JpbGUgdG9nZ2xlICovIH1cbiAgLnByb2plY3RzLWZpbHRlcnMtd3JhcCAuaGRyLWZpbHRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM2NjY7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnByb2plY3RzLWZpbHRlcnMtd3JhcCAuaGRyLWZpbHRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5wcm9qZWN0cy1maWx0ZXJzLXdyYXAgLmhkci1maWx0ZXIgc3ZnIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogNnB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICBtYXJnaW46IDAgMCAwIDVweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAgIC5wcm9qZWN0cy1maWx0ZXJzLXdyYXAgLmhkci1maWx0ZXIgc3ZnIGxpbmUge1xuICAgICAgICBzdHJva2U6ICNkMDU1MTE7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAubm8taW9zIC5wcm9qZWN0cy1maWx0ZXJzLXdyYXAgLmhkci1maWx0ZXIgYTpob3ZlciBsaW5lIHtcbiAgICAgIHN0cm9rZTogI2VlNjYyMjsgfVxuICAgIC5wcm9qZWN0cy1maWx0ZXJzLXdyYXAgLmhkci1maWx0ZXIgYS5vcGVuIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuXG4ucHJvamVjdC1maWx0ZXJzIHtcbiAgbWFyZ2luOiAwIDAgMzBweCAwO1xuICAvKiBtb2JpbGUgdG9nZ2xlIGZlYXR1cmUgKi8gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAucHJvamVjdC1maWx0ZXJzIHtcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgICAucHJvamVjdC1maWx0ZXJzLnNob3cge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfSB9XG4gIC5wcm9qZWN0LWZpbHRlcnMgLmZpbHRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiA1cHggMDsgfVxuICAucHJvamVjdC1maWx0ZXJzIC5maWx0ZXItZGl2aWRlciB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgZm9udC1zaXplOiAxNXB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAucHJvamVjdC1maWx0ZXJzIC5maWx0ZXItZGl2aWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgLnByb2plY3QtZmlsdGVycyBzZWxlY3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIG1hcmdpbjogMTBweDtcbiAgICBwYWRkaW5nLXRvcDogOXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMXB4O1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAucHJvamVjdC1maWx0ZXJzIC5idXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgIG1heC13aWR0aDogMjIwcHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnByb2plY3QtZmlsdGVycyAuYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDEwcHg7IH0gfVxuXG4vKiBmYWNldCBzdHlsaW5nICovXG5ib2R5IC5mYWNldHdwLWZhY2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5ib2R5IC5mYWNldHdwLXR5cGUtZnNlbGVjdCAuZnMtd3JhcCxcbmJvZHkgLmZhY2V0d3AtdHlwZS1mc2VsZWN0IC5mcy1kcm9wZG93biB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmJvZHkgLmZhY2V0d3AtdHlwZS1mc2VsZWN0IC5mcy1kcm9wZG93biB7XG4gIG1heC13aWR0aDogMjkzcHg7IH1cblxuYm9keSAuZnMtb3B0aW9uLmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4vKiBmYWNldCBmaWx0ZXJzICovXG4ucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgLyogbW9iaWxlIHRvZ2dsZSBmZWF0dXJlICovIH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZCB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkLnNob3cge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cbiAgICAgIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZC1maWx0ZXIgLmZhY2V0d3AtZmFjZXQge1xuICAgICAgICBtYXJnaW46IDEwcHggMDsgfVxuICAgICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZCAuZnMtZHJvcGRvd24ge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIHtcbiAgICAgIG1heC13aWR0aDogNjYuNjY2NjdyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZDo6YmVmb3JlLCAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjb250ZW50OiAnICc7IH1cbiAgICAgIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQ6OmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAgIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZC1maWx0ZXIge1xuICAgICAgICB3aWR0aDogMjIuMjIyMjIlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgICAgIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZC1maWx0ZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQtZGl2aWRlciB7XG4gICAgICAgIHdpZHRoOiA1LjU1NTU2JTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAgICAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQtZGl2aWRlcjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAgIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZC1yZXNldCB7XG4gICAgICAgIHdpZHRoOiAyMi4yMjIyMiU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZCAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkLXJlc2V0Omxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgIGZsb2F0OiByaWdodDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZCB7XG4gICAgICBtYXgtd2lkdGg6IDY2LjY2NjY3cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAgIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQ6OmJlZm9yZSwgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZDo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY29udGVudDogJyAnOyB9XG4gICAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQtZmlsdGVyIHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAgICAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQtZmlsdGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgIGZsb2F0OiByaWdodDsgfVxuICAgICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZCAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkLWRpdmlkZXIge1xuICAgICAgICB3aWR0aDogNSU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZCAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkLWRpdmlkZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQtcmVzZXQge1xuICAgICAgICB3aWR0aDogMTUlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgICAgIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZC1yZXNldDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5mcy1sYWJlbC13cmFwIC5mcy1sYWJlbCB7XG4gICAgcGFkZGluZzogMTVweCAyMnB4IDE1cHggMTBweDtcbiAgICBjb2xvcjogIzc3NztcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5mcy1sYWJlbC13cmFwIC5mcy1hcnJvdyB7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzc3NzsgfVxuICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5mcy1zZWFyY2ggaW5wdXQge1xuICAgIG1hcmdpbjogMDsgfVxuICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5mcy1vcHRpb25zIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLmZzLW9wdGlvbnMgLmZzLW9wdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLmZzLW9wdGlvbnMgLmZzLW9wdGlvbjpmaXJzdC1jaGlsZC5zZWxlY3RlZCB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZCAuZnMtb3B0aW9ucyAuZnMtb3B0aW9uOmZpcnN0LWNoaWxkIC5mcy1vcHRpb24tbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCI6XCI7IH1cbiAgICAubm8taW9zIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLmZzLW9wdGlvbnMgLmZzLW9wdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG4gICAgICAubm8taW9zIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLmZzLW9wdGlvbnMgLmZzLW9wdGlvbjpmaXJzdC1jaGlsZDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7IH1cbiAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZCAuZnMtb3B0aW9uIHtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgYm9yZGVyOiBub25lOyB9XG4gICAgLm5vLWlvcyAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5mcy1vcHRpb24ge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICAgICAgLm5vLWlvcyAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5mcy1vcHRpb246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZGRkOyB9XG4gICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZCAuZnMtb3B0aW9uLnNlbGVjdGVkIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLmZpbHRlci1kaXZpZGVyIHtcbiAgICBtYXJnaW46IC02cHggMTBweCAxMHB4O1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIGZvbnQtc2l6ZTogMTVweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIC5maWx0ZXItZGl2aWRlciB7XG4gICAgICAgIG1hcmdpbjogMTBweDsgfSB9XG4gIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLmJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBtYXgtd2lkdGg6IDIyMHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7IH0gfVxuXG4vKiBmYWNldCByZXN1bHRzICovXG4vKiBmYWNldCBwYWdpbmF0aW9uICovXG4uZmFjZXR3cC1wYWdlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uZmFjZXR3cC1wYWdlci1sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZhY2V0d3AtcGFnZSB7XG4gIG1hcmdpbjogNXB4O1xuICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuICAuZmFjZXR3cC1wYWdlLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogIzc3NztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgLmZhY2V0d3AtcGFnZS5hY3RpdmU6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmZhY2V0d3AtcGFnZS5maXJzdC1wYWdlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnZmlyc3QnO1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cbiAgLmZhY2V0d3AtcGFnZS5sYXN0LXBhZ2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnbGFzdCc7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cblxuLnByb2plY3RzLWJhbm5lci1idG0ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2JnLXByb2plY3RzdjIuanBnKTsgfVxuXG4vKiBwcm9qZWN0cyBzaW5nbGUgcG9zdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2luZ2xlLWRvd2xfcHJvamVjdCAuZmVhdHVyZWQtcGhvdG8ge1xuICBoZWlnaHQ6IDIwMHB4O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7IH1cbiAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLmZlYXR1cmVkLXBob3RvOmJlZm9yZSB7XG4gICAgcGFkZGluZy10b3A6IDQwJTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLmZlYXR1cmVkLXBob3RvIHtcbiAgICAgIGhlaWdodDogMzAwcHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5mZWF0dXJlZC1waG90byB7XG4gICAgICBoZWlnaHQ6IDYwMHB4OyB9IH1cblxuLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtaGVyby12aWRlbyB7XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1oZXJvLXZpZGVvIHtcbiAgICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtaGVyby12aWRlbyB7XG4gICAgICBtYXgtaGVpZ2h0OiA2MDBweDsgfSB9XG4gIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5wcm9qZWN0LWhlcm8tdmlkZW8gLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5wcm9qZWN0LWhlcm8tdmlkZW8gLmZsZXgtdmlkZW8ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyB9XG5cbi5zaW5nbGUtZG93bF9wcm9qZWN0IC5wYXJlbnQtc2x1Zy1tb2JpbGUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5wYXJlbnQtc2x1Zy1tb2JpbGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5wYXJlbnQtc2x1Zy1tb2JpbGUgYTpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1jb250ZW50OmJlZm9yZSwgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtY29udGVudDphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7IH1cbiAgICBodG1sLmllIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5wcm9qZWN0LWNvbnRlbnQ6YmVmb3JlLCBodG1sLmllIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5wcm9qZWN0LWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgbWl4LWJsZW5kLW1vZGU6IHVuc2V0OyB9XG4gIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5wcm9qZWN0LWNvbnRlbnQ6YmVmb3JlLCAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1jb250ZW50OmFmdGVyIHtcbiAgICBib3R0b206IDA7IH1cbiAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtY29udGVudDpiZWZvcmUge1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAxMDBweCAwIDAgMjBweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNlZWVlZWU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtY29udGVudDpiZWZvcmUge1xuICAgICAgICBib3JkZXItd2lkdGg6IDE1MHB4IDAgMCAzMHB4OyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtY29udGVudDpiZWZvcmUge1xuICAgICAgICBib3JkZXItd2lkdGg6IDI2MHB4IDAgMCA2MHB4OyB9IH1cbiAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtY29udGVudDphZnRlciB7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMTAwcHggMjBweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNlZWVlZWUgdHJhbnNwYXJlbnQ7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtY29udGVudDphZnRlciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDE1MHB4IDMwcHg7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMjYwcHggNjBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtY29udGVudCB7XG4gICAgICBwYWRkaW5nLXRvcDogNzVweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtY29udGVudCB7XG4gICAgICBwYWRkaW5nLXRvcDogMTAwcHg7IH0gfVxuXG4uc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1jb250ZW50LWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuc2luZ2xlLWRvd2xfcHJvamVjdCBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDMwcHggMCA2MHB4OyB9IH1cblxuLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtZGV0YWlscyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1kZXRhaWxzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAzMHB4IDAgMCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzY2NjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1kZXRhaWxzOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTYwcHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggZG90dGVkICM2NjY7IH0gfVxuICAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1kZXRhaWxzIC5oZHIge1xuICAgIG1hcmdpbjogMzBweCAwIC4ycmVtIDA7IH1cbiAgICAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1kZXRhaWxzIC5oZHI6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAuc2luZ2xlLWRvd2xfcHJvamVjdCAucHJvamVjdC1kZXRhaWxzIC5zZXJ2aWNlcyAuaGRyIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbiAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLnByb2plY3QtZGV0YWlscyAuZGF0YS1saXN0LWl0ZW0ge1xuICAgIG1hcmdpbjogLjVyZW0gMDtcbiAgICBsaW5lLWhlaWdodDogMS40OyB9XG5cbi5zaW5nbGUtZG93bF9wcm9qZWN0IC5tZWRpYS1zZWN0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5tZWRpYS1zZWN0aW9uOmJlZm9yZSwgLnNpbmdsZS1kb3dsX3Byb2plY3QgLm1lZGlhLXNlY3Rpb246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5OyB9XG4gICAgaHRtbC5pZSAuc2luZ2xlLWRvd2xfcHJvamVjdCAubWVkaWEtc2VjdGlvbjpiZWZvcmUsIGh0bWwuaWUgLnNpbmdsZS1kb3dsX3Byb2plY3QgLm1lZGlhLXNlY3Rpb246YWZ0ZXIge1xuICAgICAgbWl4LWJsZW5kLW1vZGU6IHVuc2V0OyB9XG4gIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5tZWRpYS1zZWN0aW9uOmJlZm9yZSwgLnNpbmdsZS1kb3dsX3Byb2plY3QgLm1lZGlhLXNlY3Rpb246YWZ0ZXIge1xuICAgIHRvcDogMDsgfVxuICAuc2luZ2xlLWRvd2xfcHJvamVjdCAubWVkaWEtc2VjdGlvbjpiZWZvcmUge1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAxMDBweCAyMHB4IDAgMDtcbiAgICBib3JkZXItY29sb3I6ICNlZWVlZWUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLm1lZGlhLXNlY3Rpb246YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxNTBweCAzMHB4IDAgMDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9wcm9qZWN0IC5tZWRpYS1zZWN0aW9uOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMjYwcHggNjBweCAwIDA7IH0gfVxuICAuc2luZ2xlLWRvd2xfcHJvamVjdCAubWVkaWEtc2VjdGlvbjphZnRlciB7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDIwcHggMTAwcHggMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNlZWVlZWUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLm1lZGlhLXNlY3Rpb246YWZ0ZXIge1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMzBweCAxNTBweCAwOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNpbmdsZS1kb3dsX3Byb2plY3QgLm1lZGlhLXNlY3Rpb246YWZ0ZXIge1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgNjBweCAyNjBweCAwOyB9IH1cblxuLyogc2VydmljZXMgYXJjaGl2ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlcy1pbnRybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI2VlZTtcbiAgcGFkZGluZzogNDBweCAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAuc2VydmljZXMtaW50cm8ge1xuICAgICAgcGFkZGluZzogNTVweCAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlcy1pbnRybyB7XG4gICAgICBwYWRkaW5nOiAxMDBweCAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5wb3N0LXR5cGUtYXJjaGl2ZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2VzLWNvbnRlbnQgLmNvbHVtbi1ibG9jay5lbmQsIC5wb3N0LXR5cGUtYXJjaGl2ZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2VzLWNvbnRlbnQgLnByb2plY3RzLWNvbnRlbnQgLmZhY2V0d3AtdGVtcGxhdGUgLmNvbHVtbi1ibG9jay5jb2x1bW5zOmxhc3QtY2hpbGQsIC5wcm9qZWN0cy1jb250ZW50IC5mYWNldHdwLXRlbXBsYXRlIC5wb3N0LXR5cGUtYXJjaGl2ZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2VzLWNvbnRlbnQgLmNvbHVtbi1ibG9jay5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG4ucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWFyY2hpdmUge1xuICBtYXJnaW46IDAgMCAyMHB4IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWFyY2hpdmUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9IH1cbiAgLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAuc2VydmljZS1hcmNoaXZlIGEge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAuc2VydmljZS1hcmNoaXZlIGltZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICAubm8taW9zIC5wb3N0LXR5cGUtYXJjaGl2ZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtYXJjaGl2ZS5qcy1ob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLm5vLWlvcyAucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWFyY2hpdmUuanMtaG92ZXIgYSB7XG4gICAgICBjb2xvcjogI2VlNjYyMjsgfVxuICAgIC5uby1pb3MgLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAuc2VydmljZS1hcmNoaXZlLmpzLWhvdmVyIGltZyB7XG4gICAgICBib3gtc2hhZG93OiAwIDVweCAxMHB4IDBweCByZ2JhKDY4LCA2OCwgNjgsIDAuNik7IH1cblxuLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAuc2VydmljZS1pY29uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5MHB4O1xuICBtYXgtaGVpZ2h0OiA5MHB4O1xuICBtYXJnaW46IDAgMCAyMHB4IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWljb24ge1xuICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgaGVpZ2h0OiAxMjBweDtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wb3N0LXR5cGUtYXJjaGl2ZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtaWNvbiB7XG4gICAgICB3aWR0aDogMTUwcHg7XG4gICAgICBoZWlnaHQ6IDE1MHB4OyB9IH1cbiAgLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAuc2VydmljZS1pY29uIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cblxuLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAuc2VydmljZS1tZXRhLWRhdGEge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC44ODg4OXJlbTsgfVxuICAucG9zdC10eXBlLWFyY2hpdmUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLW1ldGEtZGF0YSB1bCwgLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAuc2VydmljZS1tZXRhLWRhdGEgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IC4xcmVtOyB9XG4gIC5wb3N0LXR5cGUtYXJjaGl2ZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtbWV0YS1kYXRhIGxpOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDIwMjJcIjtcbiAgICAvKiBBZGQgY29udGVudDogXFwyMDIyIGlzIHRoZSBDU1MgQ29kZS91bmljb2RlIGZvciBhIGJ1bGxldCAqL1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIC8qIENoYW5nZSB0aGUgY29sb3IgKi9cbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAvKiBJZiB5b3Ugd2FudCBpdCB0byBiZSBib2xkICovXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qIE5lZWRlZCB0byBhZGQgc3BhY2UgYmV0d2VlbiB0aGUgYnVsbGV0IGFuZCB0aGUgdGV4dCAqL1xuICAgIHdpZHRoOiAxLjJlbTtcbiAgICAvKiBBbHNvIG5lZWRlZCBmb3Igc3BhY2UgKHR3ZWFrIGlmIG5lZWRlZCkgKi9cbiAgICBtYXJnaW4tbGVmdDogLTEuMmVtO1xuICAgIC8qIEFsc28gbmVlZGVkIGZvciBzcGFjZSAodHdlYWsgaWYgbmVlZGVkKSAqLyB9XG4gIC5wb3N0LXR5cGUtYXJjaGl2ZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtbWV0YS1kYXRhIGxpIGxpOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDIwMTRcIjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wb3N0LXR5cGUtYXJjaGl2ZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtbWV0YS1kYXRhIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAuc2VydmljZS1tZXRhLWRhdGEge1xuICAgICAgZm9udC1zaXplOiAxLjExMTExcmVtOyB9IH1cblxuLnBvc3QtdHlwZS1hcmNoaXZlLWRvd2xfc2VydmljZSAubGluay1hcnJvdy13cmFwIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIHNlcnZpY2VzIHNpbmdsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2luZ2xlLWRvd2xfc2VydmljZSAuZmVhdHVyZWQtcGhvdG8ge1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLmZlYXR1cmVkLXBob3RvOmJlZm9yZSB7XG4gICAgcGFkZGluZy10b3A6IDQwJTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuZmVhdHVyZWQtcGhvdG86YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDMwJTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5mZWF0dXJlZC1waG90bzpiZWZvcmUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjAlOyB9IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLmZlYXR1cmVkLXBob3RvIC5yb3cge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICBib3R0b206IC0yMHB4O1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogOTBweDtcbiAgaGVpZ2h0OiA5MHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtaWNvbiB7XG4gICAgICBib3R0b206IC0zMHB4O1xuICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgaGVpZ2h0OiAxMjBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtaWNvbiB7XG4gICAgICBib3R0b206IC00MHB4O1xuICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgaGVpZ2h0OiAxNTBweDsgfSB9XG4gIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWljb24gaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDVweCAxMHB4IDBweCByZ2JhKDY4LCA2OCwgNjgsIDAuNik7IH1cblxuLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnBhcmVudC1zbHVnLW1vYmlsZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnBhcmVudC1zbHVnLW1vYmlsZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnBhcmVudC1zbHVnLW1vYmlsZSBhOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuXG4uc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1pbnRybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI2VlZTsgfVxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1pbnRybzpiZWZvcmUsIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWludHJvOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuICAgIGh0bWwuaWUgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtaW50cm86YmVmb3JlLCBodG1sLmllIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWludHJvOmFmdGVyIHtcbiAgICAgIG1peC1ibGVuZC1tb2RlOiB1bnNldDsgfVxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1pbnRybzpiZWZvcmUsIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWludHJvOmFmdGVyIHtcbiAgICBib3R0b206IDA7IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtaW50cm86YmVmb3JlIHtcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlci13aWR0aDogMTAwcHggMCAwIDIwcHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZGRkOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWludHJvOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMTUwcHggMCAwIDMwcHg7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1pbnRybzpiZWZvcmUge1xuICAgICAgICBib3JkZXItd2lkdGg6IDI2MHB4IDAgMCA2MHB4OyB9IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtaW50cm86YWZ0ZXIge1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvcmRlci13aWR0aDogMCAwIDEwMHB4IDIwcHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZGRkIHRyYW5zcGFyZW50OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWludHJvOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMTUwcHggMzBweDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWludHJvOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMjYwcHggNjBweDsgfSB9XG5cbi5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWxlYWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtbGVhZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAxMHB4IDAgMzBweCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzY2NjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1sZWFkOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTI1cHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkb3R0ZWQgIzY2NjsgfSB9XG4gIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWxlYWQgLnBvcnRyYWl0IHtcbiAgICBtYXJnaW46IDAgMCAxNXB4IDA7IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtbGVhZCAubmFtZSB7XG4gICAgbWFyZ2luOiAwIDAgMnB4IDA7IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtbGVhZCAudGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDJweCAwOyB9XG4gIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWxlYWQgLnBob25lIHtcbiAgICBtYXJnaW46IDAgMCAycHggMDsgfVxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1sZWFkIC5wcm9qZWN0LW1ldGEtc29jaWFsIHtcbiAgICBtYXJnaW46IDEwcHggMCAwIDA7IH1cbiAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1sZWFkIC5wcm9qZWN0LW1ldGEtc29jaWFsIGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAwIDVweCAwIDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1sZWFkIC5wcm9qZWN0LW1ldGEtc29jaWFsIGEgcGF0aCB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAgIC5uby1pb3MgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtbGVhZCAucHJvamVjdC1tZXRhLXNvY2lhbCBhOmhvdmVyIHBhdGgge1xuICAgICAgICBmaWxsOiAjZWU2NjIyOyB9XG4gIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWxlYWQgYS5saW5rZWRpbiB7XG4gICAgd2lkdGg6IDE5cHg7XG4gICAgaGVpZ2h0OiAyMHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWxlYWQgYS5saW5rZWRpbiB7XG4gICAgICAgIHdpZHRoOiAyN3B4O1xuICAgICAgICBoZWlnaHQ6IDI1cHg7IH0gfVxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1sZWFkIGEuZW1haWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDNweDtcbiAgICB3aWR0aDogMjFweDtcbiAgICBoZWlnaHQ6IDE5cHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtbGVhZCBhLmVtYWlsIHtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMjlweDsgfSB9XG5cbi5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtY29udGVudDpiZWZvcmUsIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWNvbnRlbnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5OyB9XG4gICAgaHRtbC5pZSAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1jb250ZW50OmJlZm9yZSwgaHRtbC5pZSAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1jb250ZW50OmFmdGVyIHtcbiAgICAgIG1peC1ibGVuZC1tb2RlOiB1bnNldDsgfVxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1jb250ZW50OmJlZm9yZSwgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtY29udGVudDphZnRlciB7XG4gICAgdG9wOiAwOyB9XG4gIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWNvbnRlbnQ6YmVmb3JlIHtcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlci13aWR0aDogMTAwcHggMjBweCAwIDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjZWVlZWVlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWNvbnRlbnQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxNTBweCAzMHB4IDAgMDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWNvbnRlbnQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAyNjBweCA2MHB4IDAgMDsgfSB9XG4gIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWNvbnRlbnQ6YWZ0ZXIge1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvcmRlci13aWR0aDogMCAyMHB4IDEwMHB4IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZWVlZWVlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMzBweCAxNTBweCAwOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtY29udGVudDphZnRlciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCA2MHB4IDI2MHB4IDA7IH0gfVxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1jb250ZW50IGgyLCAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1jb250ZW50IGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc2VhcmNoLWZvcm0gLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2UtY29udGVudCBpbnB1dFt0eXBlPSd0ZXh0J10sIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWNvbnRlbnQgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWhlYWRpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1jb250ZW50IC5zdC11aS10eXBlLWhlYWRpbmcsIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWNvbnRlbnQgYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLWNvbnRlbnQgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEge1xuICBtYXJnaW46IDAgMCA0MHB4IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OyB9IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2N3JlbTtcbiAgICBtYXJnaW46IDAgMTRweCAyMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzY2NjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYTpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhOmJlZm9yZSB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDMwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYS5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhLTE6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLXBob3RvIHtcbiAgICBtYXJnaW46IDAgMCAzMHB4IDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLXBob3RvIHtcbiAgICAgICAgbWFyZ2luLXRvcDogN3B4OyB9IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLWhkci1zZWN0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLWRldGFpbHMtaGRyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1oZHIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICM2NjY7XG4gICAgICAgIGNvbG9yOiAjZDA1NTExOyB9XG4gICAgICAgIC5uby1pb3MgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLWRldGFpbHMtaGRyOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogI2VlNjYyMjtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgICAubm8taW9zIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXRhaWxzLWhkcjpob3ZlciBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICNlZTY2MjI7IH1cbiAgICAgICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLWRldGFpbHMtaGRyLm9wZW4ge1xuICAgICAgICAgIGNvbG9yOiAjYjMwOyB9XG4gICAgICAgICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLWRldGFpbHMtaGRyLm9wZW4gLmljb24td3JhcCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cbiAgICAgICAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1oZHIub3BlbiBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICNiMzA7IH1cbiAgICAgICAgLm5vLWlvcyAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1oZHIub3Blbjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICNiMzA7IH1cbiAgICAgICAgICAubm8taW9zIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXRhaWxzLWhkci5vcGVuOmhvdmVyIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogI2IzMDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXRhaWxzLWhkciB7XG4gICAgICAgIGN1cnNvcjogdGV4dDsgfSB9XG4gICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLWRldGFpbHMtaGRyIC5pY29uLXdyYXAge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMnB4O1xuICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogMThweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXRhaWxzLWhkciAuaWNvbi13cmFwIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1oZHIgcGF0aCB7XG4gICAgICBmaWxsOiAjZDA1NTExOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXRhaWxzLWxhc3Qge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNjY2OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLWRldGFpbHMtY29udGVudCB7XG4gICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAgICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLWRldGFpbHMtY29udGVudC5zaG93IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgbWF4LWhlaWdodDogMjAwMHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9IH1cbiAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLWRldGFpbHMtY29udGVudCB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXRhaWxzLWNvbnRlbnQgdWwgdWwsIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXRhaWxzLWNvbnRlbnQgdWwgb2wge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjFyZW07IH1cbiAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1jb250ZW50IHVsIGxpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcMjAyMlwiO1xuICAgICAgLyogQWRkIGNvbnRlbnQ6IFxcMjAyMiBpcyB0aGUgQ1NTIENvZGUvdW5pY29kZSBmb3IgYSBidWxsZXQgKi9cbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgLyogQ2hhbmdlIHRoZSBjb2xvciAqL1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAvKiBJZiB5b3Ugd2FudCBpdCB0byBiZSBib2xkICovXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAvKiBOZWVkZWQgdG8gYWRkIHNwYWNlIGJldHdlZW4gdGhlIGJ1bGxldCBhbmQgdGhlIHRleHQgKi9cbiAgICAgIHdpZHRoOiAxLjJlbTtcbiAgICAgIC8qIEFsc28gbmVlZGVkIGZvciBzcGFjZSAodHdlYWsgaWYgbmVlZGVkKSAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xLjJlbTtcbiAgICAgIC8qIEFsc28gbmVlZGVkIGZvciBzcGFjZSAodHdlYWsgaWYgbmVlZGVkKSAqLyB9XG4gICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEgLnBhLWRldGFpbHMtY29udGVudCB1bCBsaSBsaTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXDIwMTRcIjsgfVxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1jb250ZW50IC50b2dnbGUtc2VydmljZXMtbGlzdCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXRhaWxzLWNvbnRlbnQgLnRvZ2dsZS1zZXJ2aWNlcy1saXN0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDsgfVxuICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXRhaWxzLWNvbnRlbnQgLnNlcnZpY2UtaXRlbS10b2dnbGUge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGV0YWlscy1jb250ZW50Lm9wZW4gLnNlcnZpY2UtaXRlbS10b2dnbGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIG1heC1oZWlnaHQ6IDIwMDBweDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH0gfVxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSAucGEtZGVzYyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcGFkZGluZzogMCAwIDEwcHggMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXN1Yi1wcmFjdGljZS1hcmVhIC5wYS1kZXNjIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2luZ2xlLWRvd2xfc2VydmljZSAucGEtbGVhZC1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgZm9udC1zaXplOiAwLjgzMzMzcmVtOyB9IH1cblxuLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnBhLWxlYWQtY29udGVudCAucm93IHtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5zaW5nbGUtZG93bF9zZXJ2aWNlIC5wYS1sZWFkLWNvbnRlbnQgLnBvcnRyYWl0LXdyYXAge1xuICBtYXJnaW46IDAgMTVweCAwIDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2luZ2xlLWRvd2xfc2VydmljZSAucGEtbGVhZC1jb250ZW50IC5wb3J0cmFpdC13cmFwIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5zaW5nbGUtZG93bF9zZXJ2aWNlIC5wYS1sZWFkLWNvbnRlbnQgLnBvcnRyYWl0IHtcbiAgbWFyZ2luOiAwIDAgMTVweCAwOyB9XG5cbi5zaW5nbGUtZG93bF9zZXJ2aWNlIC5wYS1sZWFkLWNvbnRlbnQgLm5hbWUge1xuICBtYXJnaW46IDAgMCAycHggMDsgfVxuXG4uc2luZ2xlLWRvd2xfc2VydmljZSAucGEtbGVhZC1jb250ZW50IC50aXRsZSB7XG4gIG1hcmdpbjogMCAwIDJweCAwOyB9XG5cbi5zaW5nbGUtZG93bF9zZXJ2aWNlIC5wYS1sZWFkLWNvbnRlbnQgLnBob25lIHtcbiAgbWFyZ2luOiAwIDAgMnB4IDA7IH1cblxuLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnBhLWxlYWQtY29udGVudCAucHJvamVjdC1tZXRhLXNvY2lhbCB7XG4gIG1hcmdpbjogMTBweCAwIDAgMDsgfVxuICAuc2luZ2xlLWRvd2xfc2VydmljZSAucGEtbGVhZC1jb250ZW50IC5wcm9qZWN0LW1ldGEtc29jaWFsIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgNXB4IDAgMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnBhLWxlYWQtY29udGVudCAucHJvamVjdC1tZXRhLXNvY2lhbCBhIHBhdGgge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAgIC5uby1pb3MgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnBhLWxlYWQtY29udGVudCAucHJvamVjdC1tZXRhLXNvY2lhbCBhOmhvdmVyIHBhdGgge1xuICAgICAgZmlsbDogI2VlNjYyMjsgfVxuXG4uc2luZ2xlLWRvd2xfc2VydmljZSAucGEtbGVhZC1jb250ZW50IGEubGlua2VkaW4ge1xuICB3aWR0aDogMTlweDtcbiAgaGVpZ2h0OiAyMHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnBhLWxlYWQtY29udGVudCBhLmxpbmtlZGluIHtcbiAgICAgIHdpZHRoOiAyN3B4O1xuICAgICAgaGVpZ2h0OiAyNXB4OyB9IH1cblxuLnNpbmdsZS1kb3dsX3NlcnZpY2UgLnBhLWxlYWQtY29udGVudCBhLmVtYWlsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDNweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGhlaWdodDogMTlweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zaW5nbGUtZG93bF9zZXJ2aWNlIC5wYS1sZWFkLWNvbnRlbnQgYS5lbWFpbCB7XG4gICAgICB3aWR0aDogMzJweDtcbiAgICAgIGhlaWdodDogMjlweDsgfSB9XG5cbi5zaW5nbGUtZG93bF9zZXJ2aWNlIC5zZXJ2aWNlLXRlYW0ge1xuICBtYXJnaW46IDIwcHggMCAwIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiBQYWdlczogY29tbW9uIGVsZW1lbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmJvZHkucGFnZSAuZmVhdHVyZWQtcGhvdG8ge1xuICBtYXJnaW4tdG9wOiAwO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyOyB9XG4gIGJvZHkucGFnZSAuZmVhdHVyZWQtcGhvdG86YmVmb3JlIHtcbiAgICBwYWRkaW5nLXRvcDogNDAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIGJvZHkucGFnZSAuZmVhdHVyZWQtcGhvdG86YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDIwJTsgfSB9XG5cbmJvZHkucGFnZSAucGFnZS1pbnRybyB7XG4gIGJhY2tncm91bmQ6ICNlZWU7IH1cblxuYm9keS5wYWdlIC5wYWdlLWNsb3Npbmcge1xuICBiYWNrZ3JvdW5kOiAjZWVlOyB9XG5cbi8qIFBhZ2VzOiBjdXN0b20gc2VhcmNoIHJlc3VsdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc2VhcmNoLWZvcm0ge1xuICBtYXJnaW46IDAgMCAzMHB4IDA7XG4gIHBhZGRpbmc6IDAgMCAzMHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2NjYzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfSB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIC5oZHItc2VjdGlvbiB7XG4gICAgbWFyZ2luOiAwIDAgNXB4IDA7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc2VhcmNoLWZvcm0gaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMnB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGJ1dHRvbi5zdWJtaXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDNweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGJ1dHRvbi5zdWJtaXQge1xuICAgICAgICB0b3A6IDdweDtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDsgfSB9XG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc2VhcmNoLWZvcm0gYnV0dG9uLnN1Ym1pdCBwYXRoIHtcbiAgICAgIGZpbGw6ICM3Nzc7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgLm5vLWlvcyBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zZWFyY2gtZm9ybSBidXR0b24uc3VibWl0OmhvdmVyIHBhdGgge1xuICAgICAgZmlsbDogI2VlNjYyMjsgfVxuXG5ib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1pbmplY3RlZC1zZWFyY2gtc3VtbWFyeSxcbmJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXNlYXJjaC1zdW1tYXJ5IHtcbiAgbWFyZ2luOiAwIDAgNTBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IHtcbiAgbWFyZ2luOiAwIDAgMzBweCAwO1xuICBwYWRkaW5nOiAwIDAgMzBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNjY2M7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4OyB9IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IGVtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtaGVhZGluZyB7XG4gICAgY29sb3I6ICNkMDU1MTEgIWltcG9ydGFudDsgfVxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1oZWFkaW5nIGVtIHtcbiAgICAgIGNvbG9yOiAjYWMzYjAzICFpbXBvcnRhbnQ7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0OmhvdmVyIC5zdC11aS10eXBlLWhlYWRpbmcge1xuICAgIGNvbG9yOiAjZWU2NjIyICFpbXBvcnRhbnQ7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbCB7XG4gICAgbWF4LWhlaWdodDogNTlweDtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICMzMzMgIWltcG9ydGFudDsgfVxuICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQ6aG92ZXIgLnN0LXVpLXR5cGUtZGV0YWlsIHtcbiAgICBjb2xvcjogIzMzMyAhaW1wb3J0YW50OyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7IH1cbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5lbnRyeS1jb250ZW50IHAsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuZW50cnktY29udGVudCBhZGRyZXNzLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLmVudHJ5LWNvbnRlbnQgLnN0LXVpLXR5cGUtZGV0YWlsLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLmVudHJ5LWNvbnRlbnQgLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktY29udGFpbmVyLWZvb3Rlcl9iYXIge1xuICBtYXJnaW46IC0zMHB4IDAgMCAwO1xuICBwYWRkaW5nOiAzMHB4IDAgMCAwO1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICNjY2M7IH1cblxuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcGFnaW5hdGlvbixcbmJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXNlYXJjaC1wYWdpbmF0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXBhZ2luYXRpb24gLnN0LXVpLXBhZ2luYXRpb24tbGluayxcbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcGFnaW5hdGlvbiAuc3QtdWktcGFnaW5hdGlvbi1udW1iZXItbGluayxcbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcGFnaW5hdGlvbiAuc3QtcmVzdWx0LXBhZ2luYXRpb24tbGluayxcbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3Qtc2VhcmNoLXBhZ2luYXRpb24gLnN0LXVpLXBhZ2luYXRpb24tbGluayxcbiAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3Qtc2VhcmNoLXBhZ2luYXRpb24gLnN0LXVpLXBhZ2luYXRpb24tbnVtYmVyLWxpbmssXG4gIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXNlYXJjaC1wYWdpbmF0aW9uIC5zdC1yZXN1bHQtcGFnaW5hdGlvbi1saW5rIHtcbiAgICBtYXJnaW46IDVweDtcbiAgICBwYWRkaW5nOiA0cHggMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcGFnaW5hdGlvbiAuc3QtdWktcGFnaW5hdGlvbi1saW5rLmFjdGl2ZSxcbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1wYWdpbmF0aW9uIC5zdC11aS1wYWdpbmF0aW9uLW51bWJlci1saW5rLmFjdGl2ZSxcbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1wYWdpbmF0aW9uIC5zdC1yZXN1bHQtcGFnaW5hdGlvbi1saW5rLmFjdGl2ZSxcbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC1zZWFyY2gtcGFnaW5hdGlvbiAuc3QtdWktcGFnaW5hdGlvbi1saW5rLmFjdGl2ZSxcbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC1zZWFyY2gtcGFnaW5hdGlvbiAuc3QtdWktcGFnaW5hdGlvbi1udW1iZXItbGluay5hY3RpdmUsXG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3Qtc2VhcmNoLXBhZ2luYXRpb24gLnN0LXJlc3VsdC1wYWdpbmF0aW9uLWxpbmsuYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGJhY2tncm91bmQ6ICM4ODg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXBhZ2luYXRpb24gLnN0LXVpLXBhZ2luYXRpb24tbGluayAuc3QtdWktYXJyb3csXG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcGFnaW5hdGlvbiAuc3QtdWktcGFnaW5hdGlvbi1udW1iZXItbGluayAuc3QtdWktYXJyb3csXG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcGFnaW5hdGlvbiAuc3QtcmVzdWx0LXBhZ2luYXRpb24tbGluayAuc3QtdWktYXJyb3csXG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3Qtc2VhcmNoLXBhZ2luYXRpb24gLnN0LXVpLXBhZ2luYXRpb24tbGluayAuc3QtdWktYXJyb3csXG4gICAgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3Qtc2VhcmNoLXBhZ2luYXRpb24gLnN0LXVpLXBhZ2luYXRpb24tbnVtYmVyLWxpbmsgLnN0LXVpLWFycm93LFxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXNlYXJjaC1wYWdpbmF0aW9uIC5zdC1yZXN1bHQtcGFnaW5hdGlvbi1saW5rIC5zdC11aS1hcnJvdyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC0zcHg7XG4gICAgICBib3JkZXItY29sb3I6ICNkMDU1MTE7IH1cbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1wYWdpbmF0aW9uIC5zdC11aS1wYWdpbmF0aW9uLWxpbms6aG92ZXIgLnN0LXVpLWFycm93LFxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXBhZ2luYXRpb24gLnN0LXVpLXBhZ2luYXRpb24tbnVtYmVyLWxpbms6aG92ZXIgLnN0LXVpLWFycm93LFxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXBhZ2luYXRpb24gLnN0LXJlc3VsdC1wYWdpbmF0aW9uLWxpbms6aG92ZXIgLnN0LXVpLWFycm93LFxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXNlYXJjaC1wYWdpbmF0aW9uIC5zdC11aS1wYWdpbmF0aW9uLWxpbms6aG92ZXIgLnN0LXVpLWFycm93LFxuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXNlYXJjaC1wYWdpbmF0aW9uIC5zdC11aS1wYWdpbmF0aW9uLW51bWJlci1saW5rOmhvdmVyIC5zdC11aS1hcnJvdyxcbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC1zZWFyY2gtcGFnaW5hdGlvbiAuc3QtcmVzdWx0LXBhZ2luYXRpb24tbGluazpob3ZlciAuc3QtdWktYXJyb3cge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZWU2NjIyOyB9XG5cbi8qIFBhZ2VzOiBzZWFyY2ggcmVzdWx0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5ib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0ge1xuICBtYXJnaW46IDAgMCAzMHB4IDA7XG4gIHBhZGRpbmc6IDAgMCAzMHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2NjYzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDQwcHg7IH0gfVxuICBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gLmhkci1zZWN0aW9uIHtcbiAgICBtYXJnaW46IDAgMCA1cHggMDsgfVxuICBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMnB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSBidXR0b24uc3VibWl0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAzcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gYnV0dG9uLnN1Ym1pdCB7XG4gICAgICAgIHRvcDogN3B4O1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4OyB9IH1cbiAgICBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gYnV0dG9uLnN1Ym1pdCBwYXRoIHtcbiAgICAgIGZpbGw6ICM3Nzc7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgLm5vLWlvcyBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gYnV0dG9uLnN1Ym1pdDpob3ZlciBwYXRoIHtcbiAgICAgIGZpbGw6ICNlZTY2MjI7IH1cblxuYm9keS5zZWFyY2ggLnNlYXJjaC1yZXN1bHQge1xuICBtYXJnaW46IDAgMCAzMHB4IDA7XG4gIHBhZGRpbmc6IDAgMCAzMHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2NjYzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGJvZHkuc2VhcmNoIC5zZWFyY2gtcmVzdWx0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfSB9XG4gIGJvZHkuc2VhcmNoIC5zZWFyY2gtcmVzdWx0IC5lbnRyeS1jb250ZW50IHAsIGJvZHkuc2VhcmNoIC5zZWFyY2gtcmVzdWx0IC5lbnRyeS1jb250ZW50IGFkZHJlc3MsIGJvZHkuc2VhcmNoIC5zZWFyY2gtcmVzdWx0IC5lbnRyeS1jb250ZW50IGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCBib2R5LnNlYXJjaCAuc2VhcmNoLXJlc3VsdCAuZW50cnktY29udGVudCAuc3QtdWktdHlwZS1kZXRhaWwsIGJvZHkuc2VhcmNoIC5zZWFyY2gtcmVzdWx0IC5lbnRyeS1jb250ZW50IGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IGJvZHkuc2VhcmNoIC5zZWFyY2gtcmVzdWx0IC5lbnRyeS1jb250ZW50IC5zdC11aS10eXBlLWRldGFpbC1ib2xkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIFBhZ2U6IExpc3RpbmcgdGVtcGxhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2UtbGlzdGluZyAubGlzdGluZy1oZHIge1xuICBtYXJnaW46IDAgMCAzMHB4IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1saXN0aW5nIC5saXN0aW5nLWhkciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2UtbGlzdGluZyAuYWNjb3JkaW9uLWxpc3Rpbmcge1xuICBtYXJnaW46IDAgMCA0MHB4IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1saXN0aW5nIC5hY2NvcmRpb24tbGlzdGluZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA3NXB4OyB9IH1cblxuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2UtbGlzdGluZyAuYWNjb3JkaW9uLWl0ZW0tbGlzdGluZyAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLWxpc3RpbmcgLmFjY29yZGlvbi1pdGVtLWxpc3RpbmcgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBwYWRkaW5nOiA0MHB4IDIwcHggNDBweCAwOyB9IH1cblxuYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2UtbGlzdGluZyAuYWNjb3JkaW9uLWl0ZW0tbGlzdGluZyAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICBwYWRkaW5nLWJvdHRvbTogNjBweDsgfVxuXG4vKiBQYWdlOiBDYXJlZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAuZmVhdHVyZWQtcGhvdG8ge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAucGFnZS1pbnRyby1saW5rIHtcbiAgbWFyZ2luOiAzMHB4IDAgMCAwOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAucGFnZS1pbnRyby1saW5rIC5pY29uLXdyYXAgcGF0aCB7XG4gICAgZmlsbDogI2ZmZjsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNhcmVlcnMgLnBhZ2UtaW50cm8tbGluayBhOmhvdmVyIC5pY29uLXdyYXAgcGF0aCB7XG4gICAgZmlsbDogI2ZmZjsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNhcmVlcnMgLnBhZ2UtaW50cm8tbGluayBhIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNhcmVlcnMgLnBhZ2UtaW50cm8tbGluayBhIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAuY2FyZWVycy1zbGlkZXIge1xuICBtYXJnaW46IDQwcHggMCAyMHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jYXJlZXJzIC5jYXJlZXJzLXNsaWRlciB7XG4gICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAuYmVuZWZpdHMtaGRyIHtcbiAgbWFyZ2luOiAwIDAgMzBweCAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jYXJlZXJzIC5iZW5lZml0cy1oZHIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAuYmVuZWZpdHMge1xuICBtYXJnaW46IDAgMCA0MHB4IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNhcmVlcnMgLmJlbmVmaXRzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDc1cHg7IH0gfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWNhcmVlcnMgLmJlbmVmaXQgLmFjY29yZGlvbi10aXRsZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogNTBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAuYmVuZWZpdCAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDQwcHggMjBweCA0MHB4IDcwcHg7IH0gfVxuICAubm8taW9zIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAuYmVuZWZpdCAuYWNjb3JkaW9uLXRpdGxlOmhvdmVyIHBhdGguY2lyY2xlLCAubm8taW9zIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAuYmVuZWZpdCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHBhdGguY2lyY2xlIHtcbiAgICBmaWxsOiAjYjMwOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAuYmVuZWZpdCAuaWNvbi13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgei1pbmRleDogMTtcbiAgbGVmdDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbjogMCAxMHB4IDAgMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAuYmVuZWZpdCAuaWNvbi13cmFwIHtcbiAgICAgIGxlZnQ6IC01cHg7XG4gICAgICB3aWR0aDogNTZweDtcbiAgICAgIGhlaWdodDogNTZweDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAuYmVuZWZpdCBwYXRoLmNpcmNsZSB7XG4gIGZpbGw6ICNkMDU1MTE7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1jYXJlZXJzIC5iZW5lZml0LmlzLWFjdGl2ZSBwYXRoLmNpcmNsZSB7XG4gIGZpbGw6ICNiMzA7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1jYXJlZXJzIC5iZW5lZml0IC5hY2NvcmRpb24tY29udGVudCB7XG4gIHBhZGRpbmctYm90dG9tOiA2MHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jYXJlZXJzIC5iZW5lZml0IC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDcwcHg7IH0gfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWNhcmVlcnMgLm1vcmUtbGluayxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAubGVzcy1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDM3cHg7XG4gIG1hcmdpbjogMzBweCBhdXRvIDA7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbi1hcnctc2xpZGVyLnN2Zykgbm8tcmVwZWF0O1xuICBvcGFjaXR5OiAuODtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAubm8taW9zIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAubW9yZS1saW5rOmhvdmVyLCAubm8taW9zXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAubGVzcy1saW5rOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAubW9yZS1saW5rIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY2FyZWVycyAubGVzcy1saW5rIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWNhcmVlcnMgLmJlbmVmaXRzLWJ1dHRvbi1saW5rIC5pY29uLXdyYXAgcGF0aCB7XG4gIGZpbGw6ICNmZmY7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1jYXJlZXJzIC5iZW5lZml0cy1idXR0b24tbGluazpob3ZlciAuaWNvbi13cmFwIHBhdGgge1xuICBmaWxsOiAjZmZmOyB9XG5cbi8qIFBhZ2U6IENoYXJpdHkgVm90aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3Rpbmcge1xuICAvKiBoZXJvIHBob3RvICovXG4gIC8qIHNlY3Rpb24gZGVmYXVsdCAqL1xuICAvKlxuICBwYWRkaW5nOiA0MHB4IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBwYWRkaW5nOiA3NXB4IDA7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIHBhZGRpbmc6IDEwMHB4IDA7XG4gIH1cbiAgKi9cbiAgLyogZmlyc3Qgcm93ICovXG4gIC8qIHNlY29uZCByb3cgKi9cbiAgLyogYm90dG9tIGJhbm5lciAqLyB9XG4gIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLmZlYXR1cmVkLXBob3RvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAuZmVhdHVyZWQtcGhvdG86YmVmb3JlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyNiU7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLmZlYXR1cmVkLXBob3RvOmJlZm9yZSB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDI2JTsgfSB9XG4gIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLnBhZ2UtY2hhcml0eS1pbnRybywgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LXZvdGluZyB7XG4gICAgcGFkZGluZzogNTBweCAwIDYwcHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LWludHJvLCBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktdm90aW5nIHtcbiAgICAgICAgcGFkZGluZzogNzBweCAwIDkwcHg7IH0gfVxuICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktaW50cm8ge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMzAxcHgpIHtcbiAgICAgIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLnBhZ2UtY2hhcml0eS1pbnRybyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktaW50cm86YmVmb3JlLCBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktaW50cm86YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5OyB9XG4gICAgICAgICAgaHRtbC5pZSBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktaW50cm86YmVmb3JlLCBodG1sLmllIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLnBhZ2UtY2hhcml0eS1pbnRybzphZnRlciB7XG4gICAgICAgICAgICBtaXgtYmxlbmQtbW9kZTogdW5zZXQ7IH1cbiAgICAgICAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LWludHJvOmJlZm9yZSwgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LWludHJvOmFmdGVyIHtcbiAgICAgICAgICBib3R0b206IDA7IH1cbiAgICAgICAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LWludHJvOmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDEwMHB4IDAgMCAyMHB4O1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgcmdiYSgyMzgsIDIzOCwgMjM4LCAwLjYpOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMzAxcHgpIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktaW50cm86YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxNTBweCAwIDAgMzBweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTMwMXB4KSBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LWludHJvOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMjYwcHggMCAwIDYwcHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzMDFweCkge1xuICAgICAgICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktaW50cm86YWZ0ZXIge1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGJvcmRlci13aWR0aDogMCAwIDEwMHB4IDIwcHg7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCByZ2JhKDIzOCwgMjM4LCAyMzgsIDAuNikgdHJhbnNwYXJlbnQ7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzMDFweCkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLnBhZ2UtY2hhcml0eS1pbnRybzphZnRlciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDE1MHB4IDMwcHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzMDFweCkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLnBhZ2UtY2hhcml0eS1pbnRybzphZnRlciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDI2MHB4IDYwcHg7IH0gfVxuICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktaW50cm9fX2xlYWQge1xuICAgIG1heC13aWR0aDogODUwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLnBhZ2UtY2hhcml0eS1pbnRyb19fbGVhZCArIC5jaGFyaXR5LWluZm8ge1xuICAgIG1hcmdpbi10b3A6IDQwcHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LWludHJvX19sZWFkICsgLmNoYXJpdHktaW5mbyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDUwcHg7IH0gfVxuICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5jaGFyaXR5LWluZm8ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LXZvdGluZyB7XG4gICAgYmFja2dyb3VuZDogI2VlZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzMDFweCkge1xuICAgICAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LXZvdGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktdm90aW5nOmJlZm9yZSwgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LXZvdGluZzphZnRlciB7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7IH1cbiAgICAgICAgICBodG1sLmllIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLnBhZ2UtY2hhcml0eS12b3Rpbmc6YmVmb3JlLCBodG1sLmllIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLnBhZ2UtY2hhcml0eS12b3Rpbmc6YWZ0ZXIge1xuICAgICAgICAgICAgbWl4LWJsZW5kLW1vZGU6IHVuc2V0OyB9XG4gICAgICAgIGJvZHkucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY2hhcml0eS12b3RpbmcgLnBhZ2UtY2hhcml0eS12b3Rpbmc6YmVmb3JlLCBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktdm90aW5nOmFmdGVyIHtcbiAgICAgICAgICB0b3A6IDA7IH1cbiAgICAgICAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LXZvdGluZzpiZWZvcmUge1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiAxMDBweCAyMHB4IDAgMDtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjA0LCAyMDQsIDIwNCwgMC41KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTMwMXB4KSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LXZvdGluZzpiZWZvcmUge1xuICAgICAgICBib3JkZXItd2lkdGg6IDE1MHB4IDMwcHggMCAwOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMzAxcHgpIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktdm90aW5nOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMjYwcHggNjBweCAwIDA7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzMDFweCkge1xuICAgICAgICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktdm90aW5nOmFmdGVyIHtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMjBweCAxMDBweCAwO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgcmdiYSgyMDQsIDIwNCwgMjA0LCAwLjUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMzAxcHgpIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5wYWdlLWNoYXJpdHktdm90aW5nOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDMwcHggMTUwcHggMDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTMwMXB4KSBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyAucGFnZS1jaGFyaXR5LXZvdGluZzphZnRlciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCA2MHB4IDI2MHB4IDA7IH0gfVxuICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIGlucHV0W3R5cGU9J3RleHQnXSxcbiAgYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyBpbnB1dFt0eXBlPSdlbWFpbCddIHtcbiAgICBoZWlnaHQ6IDIuNXJlbTsgfVxuICBib2R5LnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nIC5iYW5uZXItYnRtIHtcbiAgICAvKiB1bmRvIHBhcmFsbGF4ICovXG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBpbml0aWFsOyB9XG5cbi8qIFBhZ2U6IENvbnRhY3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLnBhZ2UtaW50cm8ge1xuICBwYWRkaW5nOiA0MHB4IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAucGFnZS1pbnRybyB7XG4gICAgICBwYWRkaW5nOiA1MHB4IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5wYWdlLWludHJvIHtcbiAgICAgIHBhZGRpbmc6IDc1cHggMDsgfSB9XG4gIC5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5wYWdlLWludHJvIGgyLCAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAucGFnZS1pbnRybyBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIC5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5wYWdlLWludHJvIGlucHV0W3R5cGU9J3RleHQnXSwgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLnBhZ2UtaW50cm8gYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWhlYWRpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAucGFnZS1pbnRybyAuc3QtdWktdHlwZS1oZWFkaW5nLCAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAucGFnZS1pbnRybyBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gaW5wdXRbdHlwZT0ndGV4dCddLCBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLnBhZ2UtaW50cm8gaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLnBhZ2UtaW50cm8gLnNlYXJjaC1vZmZpY2VzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLnN0YXRlLW9mZmljZXMge1xuICBtYXJnaW46IDAgMCA0MHB4IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuc3RhdGUtb2ZmaWNlcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OyB9IH1cbiAgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLnN0YXRlLW9mZmljZXMgaDIsIC5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5zdGF0ZS1vZmZpY2VzIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc2VhcmNoLWZvcm0gLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLnN0YXRlLW9mZmljZXMgaW5wdXRbdHlwZT0ndGV4dCddLCAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuc3RhdGUtb2ZmaWNlcyBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtaGVhZGluZywgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5zdGF0ZS1vZmZpY2VzIC5zdC11aS10eXBlLWhlYWRpbmcsIC5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5zdGF0ZS1vZmZpY2VzIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuc3RhdGUtb2ZmaWNlcyBpbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5vZmZpY2UgLmNvbnRhY3Qge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuICAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAub2ZmaWNlIC5jb250YWN0IHAsIC5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5vZmZpY2UgLmNvbnRhY3QgYWRkcmVzcywgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLm9mZmljZSAuY29udGFjdCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLm9mZmljZSAuY29udGFjdCAuc3QtdWktdHlwZS1kZXRhaWwsIC5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5vZmZpY2UgLmNvbnRhY3QgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLm9mZmljZSAuY29udGFjdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCB7XG4gICAgbWFyZ2luOiAwOyB9XG5cbi5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5vZmZpY2UgLm1hcCB7XG4gIG1hcmdpbjogMjVweCAwIDE1cHg7IH1cblxuLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLm9mZmljZSAucmVzcG9uc2l2ZS1lbWJlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IH1cblxuLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLm9mZmljZSAub2ZmaWNlLW1hbmFnZXIge1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuICBtYXJnaW46IDE1cHggMDtcbiAgcGFkZGluZzogMTVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5vZmZpY2UgLm9mZmljZS1tYW5hZ2VyIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBmb250LXNpemU6IDAuODMzMzNyZW07IH0gfVxuXG4ucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAub2ZmaWNlIC5wb3J0cmFpdCB7XG4gIG1hcmdpbjogMCAwIDE1cHggMDsgfVxuXG4ucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAub2ZmaWNlIC5uYW1lIHtcbiAgbWFyZ2luOiAwIDAgMnB4IDA7IH1cblxuLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLm9mZmljZSAudGl0bGUge1xuICBtYXJnaW46IDAgMCAycHggMDsgfVxuXG4ucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAub2ZmaWNlIC5jb250YWN0IHtcbiAgbWFyZ2luOiAwIDAgMTVweCAwOyB9XG5cbi5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5vZmZpY2UgLnBob25lIHtcbiAgbWFyZ2luOiAwIDAgMnB4IDA7IH1cblxuLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLm9mZmljZSAucHJvamVjdC1tZXRhLXNvY2lhbCB7XG4gIG1hcmdpbjogMTBweCAwIDAgMDsgfVxuXG4ucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAub2ZmaWNlIGEuZW1haWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAzNXB4O1xuICBoZWlnaHQ6IDMycHg7IH1cbiAgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLm9mZmljZSBhLmVtYWlsIHBhdGgge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgLm5vLWlvcyAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAub2ZmaWNlIGEuZW1haWw6aG92ZXIgcGF0aCB7XG4gICAgZmlsbDogI2VlNjYyMjsgfVxuXG4ucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuY29udGFjdC1iYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiAxNXB4IDA7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuY29udGFjdC1iYXIgLmhkciB7XG4gICAgbWFyZ2luOiAwIDAgMCAwOyB9XG4gIC5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5jb250YWN0LWJhciBwLCAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuY29udGFjdC1iYXIgYWRkcmVzcywgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLmNvbnRhY3QtYmFyIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuY29udGFjdC1iYXIgLnN0LXVpLXR5cGUtZGV0YWlsLCAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuY29udGFjdC1iYXIgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLmNvbnRhY3QtYmFyIC5zdC11aS10eXBlLWRldGFpbC1ib2xkIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLmNvbnRhY3QtYmFyIC5waXBlIHtcbiAgICBtYXJnaW46IDAgNXB4OyB9XG5cbi5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5zaXRlLWZvb3RlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxNDBweDsgfVxuXG4vKiBQYWdlOiBDb21wYW55IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1pbnRyby1tZWRpYSB7XG4gIG1hcmdpbjogMCAwIDMwcHggMDsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaW50cm8tbWVkaWEgLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1pbnRyby1tZWRpYSAuZmxleC12aWRlbyB7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjMlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1pbnRyby1jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMTVweDsgfVxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1pbnRyby1jb250ZW50IGgyLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaW50cm8tY29udGVudCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1pbnRyby1jb250ZW50IGlucHV0W3R5cGU9J3RleHQnXSwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWludHJvLWNvbnRlbnQgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWhlYWRpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaW50cm8tY29udGVudCAuc3QtdWktdHlwZS1oZWFkaW5nLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaW50cm8tY29udGVudCBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gaW5wdXRbdHlwZT0ndGV4dCddLCBib2R5LnNlYXJjaCAuc2VhcmNoLWZvcm0gLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWludHJvLWNvbnRlbnQgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xMHB4OyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI2VlZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS12YWx1ZXMge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlcyAuaGRyLXNlY3Rpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDEwcHggMDtcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgICAgbWFyZ2luOiAyMHB4IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5uby1pb3MgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlOmhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSg1MSwgNTEsIDUxLCAwLjUpOyB9IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlIC5kZWNvciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgbWFyZ2luOiAxNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMDU1MTE7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlIC5kZWNvciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUgLmlubmVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgd2lkdGg6IDgwJTsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS12YWx1ZSAudGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90byBDb25kZW5zZWRcIiwgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogI2QwNTUxMTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUgLnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjIyMjIycmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlIC50aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41NTU1NnJlbTsgfSB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlIC50aXRsZSBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS12YWx1ZSAuZGVzYyB7XG4gICAgZm9udC1zaXplOiAwLjc3Nzc4cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMDtcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlIC5kZXNjIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgzMzMzcmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlIC5kZXNjIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg4ODg5cmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlIC5kZXNjIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS12YWx1ZSAudG9nZ2xlLWZsaXBjYXJkLWljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS12YWx1ZSAudG9nZ2xlLWZsaXBjYXJkLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDEwcHg7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9IH1cbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUgLnRvZ2dsZS1mbGlwY2FyZC1pY29uIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUgLnRvZ2dsZS1mbGlwY2FyZC1pY29uIHN2ZyB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfSB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlIC50b2dnbGUtZmxpcGNhcmQtaWNvbiBsaW5lIHtcbiAgICAgIHN0cm9rZTogI2QwNTUxMTsgfVxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS12YWx1ZSAudG9nZ2xlLWZsaXBjYXJkLWljb246YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDVweDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUgLnRvZ2dsZS1mbGlwY2FyZC1pY29uOmFmdGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlLmpzLWhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSg1MSwgNTEsIDUxLCAwLjUpOyB9XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUuanMtaG92ZXIgYSB7XG4gICAgICAgIGNvbG9yOiAjZWU2NjIyOyB9XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUuanMtaG92ZXIgLnRvZ2dsZS1mbGlwY2FyZC1pY29uIGxpbmUge1xuICAgICAgICBzdHJva2U6ICNlZTY2MjI7IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUuanMtb3BlbiB7XG4gICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9iZy1ibGFjay1wYXBlci01NTUucG5nKTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUuanMtb3BlbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDsgfSB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlLmpzLW9wZW4gLmRlY29yIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzk5OTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUuanMtb3BlbiAuaW5uZXIge1xuICAgICAgICB0b3A6IDIwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCUpOyB9IH1cbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUuanMtb3BlbiAudGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gICAgICBwYWRkaW5nOiAwIDIwcHggOHB4IDIwcHg7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOTk5OyB9XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUuanMtb3BlbiAudGl0bGUgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlLmpzLW9wZW4gLmRlc2Mge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktdmFsdWUuanMtb3BlbiAudG9nZ2xlLWZsaXBjYXJkLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNXB4O1xuICAgICAgICByaWdodDogNXB4O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlLmpzLW9wZW4gLnRvZ2dsZS1mbGlwY2FyZC1pY29uIGxpbmUge1xuICAgICAgc3Ryb2tlOiAjZmZmOyB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXZhbHVlLmpzLW9wZW4gLnRvZ2dsZS1mbGlwY2FyZC1pY29uIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS12YWx1ZS5qcy1vcGVuIC50b2dnbGUtZmxpcGNhcmQtaWNvbjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JnLWJsYWNrLXBhcGVyLTU1NS5wbmcpOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1jYXAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktY2FwIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktY2FwIC5zcGFjZXItdmVydCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM2NjY7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWNhcCAuc3BhY2VyLXZlcnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1jYXAtZ3JhcGhpYyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDE1MHB4O1xuICBtYXJnaW46IDAgYXV0byAyMHB4IGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktY2FwLWdyYXBoaWMge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwOyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWNvbW1pdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1jb21taXQge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1mZWF0dXJlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDMwcHggMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1mZWF0dXJlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMjBweDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1mZWF0dXJlLWljb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDUxcHg7XG4gIGhlaWdodDogNTFweDtcbiAgbWFyZ2luOiAwIGF1dG8gMTBweCBhdXRvOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWZlYXR1cmUtaWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDVweDtcbiAgICAgIGxlZnQ6IC0xMjBweDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB3aWR0aDogNjhweDtcbiAgICAgIGhlaWdodDogNjhweDtcbiAgICAgIG1hcmdpbjogMDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIge1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQ6ICMyMjI7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlci5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5pbm5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXBob3RvLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IHtcbiAgICAvKlxuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgKi8gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS1waG90byxcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXBob3RvIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLm92ZXJsYXkge1xuICAgIG1pbi13aWR0aDogNzUlO1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LWZhbWlseTogXCJTYWlyYVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuOCk7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLm92ZXJsYXkge1xuICAgICAgICBwYWRkaW5nOiAzMHB4IDE1cHg7IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JnLWJsYWNrLXBhcGVyLTU1NS5wbmcpOyB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlciAuc2xpZGUtdGV4dCBwLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IGFkZHJlc3MsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgLnN0LXVpLXR5cGUtZGV0YWlsLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQge1xuICAgICAgZm9udC1zaXplOiAxLjExMTExcmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogNjBweCAzMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IHAsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgYWRkcmVzcywgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlciAuc2xpZGUtdGV4dCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlciAuc2xpZGUtdGV4dCAuc3QtdWktdHlwZS1kZXRhaWwsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlciAuc2xpZGUtdGV4dCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjIyMjIycmVtOyB9IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgcCwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlciAuc2xpZGUtdGV4dCBhZGRyZXNzLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IC5zdC11aS10eXBlLWRldGFpbCwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlciAuc2xpZGUtdGV4dCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMzMzMzNyZW07IH0gfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlciAuc2xpZGUtdGV4dCBwLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IGFkZHJlc3MsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgLnN0LXVpLXR5cGUtZGV0YWlsLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQge1xuICAgICAgICAgIG1heC13aWR0aDogNDUwcHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktc2xpZGVyIC5zbGlkZS10ZXh0IHAsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgYWRkcmVzcywgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlciAuc2xpZGUtdGV4dCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlciAuc2xpZGUtdGV4dCAuc3QtdWktdHlwZS1kZXRhaWwsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWRlLXRleHQgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LXNsaWRlciAuc2xpZGUtdGV4dCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCB7XG4gICAgICAgICAgcGFkZGluZzogMTYwcHggMzBweDsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWNrLWRvdHMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3R0b206IGF1dG87XG4gICAgcGFkZGluZzogNXB4IDAgMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMjIyOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1zbGlkZXIgLnNsaWNrLWRvdHMge1xuICAgICAgICB0b3A6IC0zcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzIyMjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSB7XG4gICAgICBwYWRkaW5nLXRvcDogNTBweDsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBoZWlnaHQ6IDgwJTsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuY29tcGFueS1oaXN0b3J5LWludHJvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBtYXJnaW46IDAgMCAzMHB4IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5jb21wYW55LWhpc3RvcnktaW50cm8ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OyB9IH1cbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuY29tcGFueS1oaXN0b3J5LWludHJvIGgyLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuY29tcGFueS1oaXN0b3J5LWludHJvIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc2VhcmNoLWZvcm0gLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmNvbXBhbnktaGlzdG9yeS1pbnRybyBpbnB1dFt0eXBlPSd0ZXh0J10sIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5jb21wYW55LWhpc3RvcnktaW50cm8gYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWhlYWRpbmcsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuY29tcGFueS1oaXN0b3J5LWludHJvIC5zdC11aS10eXBlLWhlYWRpbmcsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5jb21wYW55LWhpc3RvcnktaW50cm8gYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5jb21wYW55LWhpc3RvcnktaW50cm8gaW5wdXRbdHlwZT0ndGV4dCddLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuY29tcGFueS1oaXN0b3J5LWludHJvIHAsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5jb21wYW55LWhpc3RvcnktaW50cm8gYWRkcmVzcywgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmNvbXBhbnktaGlzdG9yeS1pbnRybyBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmNvbXBhbnktaGlzdG9yeS1pbnRybyAuc3QtdWktdHlwZS1kZXRhaWwsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5jb21wYW55LWhpc3RvcnktaW50cm8gYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmNvbXBhbnktaGlzdG9yeS1pbnRybyAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAudGltZWxpbmUtbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBtYXJnaW46IDIwcHggMCA1MHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC50aW1lbGluZS1tb2JpbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAudGltZWxpbmUtbW9iaWxlIC5jdXN0b21fc3RvcnlfbGJsIHtcbiAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICAgIGNvbG9yOiAjZmY3NzMzOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC50aW1lbGluZS1kZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC50aW1lbGluZS1kZXNrdG9wIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7IH0gfVxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5kb3dsLXRpbWVsaW5lIC5kb3dsLXRpbWVsaW5lLW5hdiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5kb3dsLXRpbWVsaW5lIC5kb3dsLXRpbWVsaW5lLW5hdjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY3NzMzOyB9XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1uYXYgYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMDtcbiAgICAgICAgY29sb3I6ICM3Nzc7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlNhaXJhXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDAuODg4ODlyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1uYXYgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMTExMTFyZW07IH0gfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5kb3dsLXRpbWVsaW5lIC5kb3dsLXRpbWVsaW5lLW5hdiBhIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yMjIyMnJlbTsgfSB9XG4gICAgICAgIC5uby1pb3MgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGEuanMtaG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjZmY3NzMzOyB9XG4gICAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5kb3dsLXRpbWVsaW5lIC5kb3dsLXRpbWVsaW5lLW5hdiBhLmpzLWhvdmVyOmJlZm9yZSwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGEuanMtaG92ZXI6YWZ0ZXIge1xuICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgIGhlaWdodDogMjBweDsgfVxuICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1uYXYgYS5qcy1ob3ZlcjpiZWZvcmUge1xuICAgICAgICAgIGxlZnQ6IC0xMHB4OyB9XG4gICAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5kb3dsLXRpbWVsaW5lIC5kb3dsLXRpbWVsaW5lLW5hdiBhLmpzLWhvdmVyOmFmdGVyIHtcbiAgICAgICAgICByaWdodDogLTEwcHg7IH1cbiAgICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGEuanMtb3BlbiB7XG4gICAgICAgICAgY29sb3I6ICNmZjc3MzM7XG4gICAgICAgICAgZm9udC1zaXplOiAxNTAlOyB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5kb3dsLXRpbWVsaW5lIC5kb3dsLXRpbWVsaW5lLW5hdiBhLmpzLW9wZW4ge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE2MCU7IH0gfVxuICAgICAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5kb3dsLXRpbWVsaW5lIC5kb3dsLXRpbWVsaW5lLW5hdiBhLmpzLW9wZW46YmVmb3JlLCAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1uYXYgYS5qcy1vcGVuOmFmdGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNXB4OyB9XG4gICAgICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGEuanMtb3BlbjpiZWZvcmUge1xuICAgICAgICAgICAgbGVmdDogLTEycHg7IH1cbiAgICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1uYXYgYS5qcy1vcGVuOmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtMTNweDsgfVxuICAgICAgICAgIC5uby1pb3MgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGEuanMtb3BlbiB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmNzczMzsgfVxuICAgICAgICAgICAgLm5vLWlvcyAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1uYXYgYS5qcy1vcGVuOmJlZm9yZSwgLm5vLWlvcyAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1uYXYgYS5qcy1vcGVuOmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmY3NzMzOyB9XG4gICAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5kb3dsLXRpbWVsaW5lIC5kb3dsLXRpbWVsaW5lLW5hdiBhOmJlZm9yZSwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGE6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgI2ZmNzczMztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGE6YmVmb3JlIHtcbiAgICAgICAgICBsZWZ0OiAtLjQxcmVtO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDsgfVxuICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1uYXYgYTphZnRlciB7XG4gICAgICAgICAgcmlnaHQ6IC0uNDJyZW07XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7IH1cbiAgICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGEuZXZlbiwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGEub2RkIHtcbiAgICAgICAgICB3aWR0aDogNTAlOyB9XG4gICAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5kb3dsLXRpbWVsaW5lIC5kb3dsLXRpbWVsaW5lLW5hdiBhLmV2ZW4ge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGEuZXZlbjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1uYXYgYS5vZGQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG4gICAgICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtbmF2IGEub2RkOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1lbnRyaWVzIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgZmFydGhlc3Qtc2lkZSwgIzY2NiwgIzIyMiA2MCUpOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1lbnRyaWVzIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGZhcnRoZXN0LXNpZGUsICM2NjYsICMyMjIpOyB9IH1cbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1lbnRyeSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlOyB9XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1lbnRyeS5qcy1vcGVuIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgbWF4LWhlaWdodDogMTIwMHB4OyB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtcGhvdG8ge1xuICAgICAgd2lkdGg6IDgwJTsgfVxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1oaXN0b3J5IC5kb3dsLXRpbWVsaW5lIC5kb3dsLXRpbWVsaW5lLWNvbnRlbnQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIHdpZHRoOiA4MCU7XG4gICAgICBtYXJnaW46IC0xNSUgMCAwIGF1dG87XG4gICAgICBwYWRkaW5nOiAzMHB4IDMwcHggNjBweCAzMHB4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWhpc3RvcnkgLmRvd2wtdGltZWxpbmUgLmRvd2wtdGltZWxpbmUtY29udGVudDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTE1YjJkOyB9XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1jb250ZW50IHRpbWUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCAwIDMwcHggMDtcbiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiU2FpcmFcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTE1YjJkO1xuICAgICAgICBmb250LXNpemU6IDAuODg4ODlyZW07IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1jb250ZW50IHRpbWUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjExMTExcmVtOyB9IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktaGlzdG9yeSAuZG93bC10aW1lbGluZSAuZG93bC10aW1lbGluZS1jb250ZW50IHRpbWUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjIyMjIycmVtOyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWZ1dHVyZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1mdXR1cmUge1xuICAgICAgcGFkZGluZy10b3A6IDYwcHg7IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktZnV0dXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAyMHB4IDIwcHggMCAyMHB4O1xuICAgIGJvcmRlci1jb2xvcjogIzIyMiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktZnV0dXJlIC5jb21wYW55LWZ1dHVyZS1ncmFwaGljLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktZnV0dXJlIC5jb21wYW55LWZ1dHVyZS1ncmFwaGljLWRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1mdXR1cmUgLmNvbXBhbnktZnV0dXJlLWdyYXBoaWMtbW9iaWxlIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyNXB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29tcGFueSAuY29tcGFueS1mdXR1cmUgLmNvbXBhbnktZnV0dXJlLWdyYXBoaWMtbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb21wYW55IC5jb21wYW55LWZ1dHVyZSAuY29tcGFueS1mdXR1cmUtZ3JhcGhpYy1tb2JpbGUgLnNpbXBsZWJhci13cmFwcGVyIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiA1ODBweDsgfVxuICAgICAgLmlvcyAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktZnV0dXJlIC5jb21wYW55LWZ1dHVyZS1ncmFwaGljLW1vYmlsZSAuc2ltcGxlYmFyLXdyYXBwZXIgaW1nIHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4IDAgMDsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkgLmNvbXBhbnktZnV0dXJlIC5saW5rLXdyYXAge1xuICAgIG1hcmdpbi10b3A6IDYwcHg7IH1cblxuLyogUGFnZXM6IFBlb3BsZSBwYWdlcyBjb21tb24gZWxlbWVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAuZmVhdHVyZWQtcGhvdG8sXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5mZWF0dXJlZC1waG90byB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogUGFnZXM6IFBlb3BsZSBzdWJuYXYgKi9cbi5wZW9wbGUtcGctbmF2IHtcbiAgYmFja2dyb3VuZDogI2VlZTsgfVxuICAucGVvcGxlLXBnLW5hdiAubWVudSBhIHtcbiAgICBtYXJnaW46IDAgMXB4O1xuICAgIHBhZGRpbmc6IDIwcHggNXB4IDE1cHggNXB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiBcIlNhaXJhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAwLjc3Nzc4cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wZW9wbGUtcGctbmF2IC5tZW51IGEge1xuICAgICAgICBtYXJnaW46IDAgMTVweDtcbiAgICAgICAgcGFkZGluZzogMzRweCA1cHggMzBweCA1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNHB4OyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnBlb3BsZS1wZy1uYXYgLm1lbnUgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMTExMXJlbTsgfSB9XG4gIC5wZW9wbGUtcGctbmF2IC5tZW51IC5pcy1hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogI2IzMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjYjMwOyB9XG5cbi8qIGNvbnRlbnQgKi9cbi8qIFBhZ2U6IFBlb3BsZSBQQUxTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLXBhbHMgLnRvcC1oZHItc2VjdGlvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC5hY2NvcmRpb24tY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAyMHB4OyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLXBhbHMgLmFjY29yZGlvbi10aXRsZSB7XG4gIHBhZGRpbmc6IDEuNXJlbSAwOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLXBhbHMgLnByYWN0aWNlLWxlYWQgLnByYWN0aWNlLWxlYWRlciB7XG4gIG1hcmdpbi1sZWZ0OiAtMC44MzMzM3JlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC44MzMzM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgcGFkZGluZy1sZWZ0OiAwLjgzMzMzcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjgzMzMzcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZiAwJSwgI2ZmZiAxMCUsICNlZWUgMTElLCAjZWVlIDEwMCUpOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAucHJhY3RpY2UtbGVhZCAucHJhY3RpY2UtbGVhZGVyIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZWVlOyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAucHJhY3RpY2UtbGVhZCAucG9ydHJhaXQge1xuICBtYXJnaW46IDAgMCAxNXB4IDA7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAucHJhY3RpY2UtbGVhZCAubmFtZSB7XG4gIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC5wcmFjdGljZS1sZWFkIC50aXRsZSB7XG4gIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC5wcmFjdGljZS1sZWFkIC5waG9uZSB7XG4gIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC5wcmFjdGljZS1sZWFkIC5wcm9qZWN0LW1ldGEtc29jaWFsIHtcbiAgbWFyZ2luOiAxMHB4IDAgMTBweCAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAucHJhY3RpY2UtbGVhZCAucHJvamVjdC1tZXRhLXNvY2lhbCB7XG4gICAgICBtYXJnaW46IDIwcHggMCAyMHB4IDA7IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC5wcmFjdGljZS1sZWFkIC5wcm9qZWN0LW1ldGEtc29jaWFsIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgNXB4IDAgMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAucHJhY3RpY2UtbGVhZCAucHJvamVjdC1tZXRhLXNvY2lhbCBhIHBhdGgge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAgIC5uby1pb3MgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAucHJhY3RpY2UtbGVhZCAucHJvamVjdC1tZXRhLXNvY2lhbCBhOmhvdmVyIHBhdGgge1xuICAgICAgZmlsbDogI2VlNjYyMjsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC5wcmFjdGljZS1sZWFkIGEubGlua2VkaW4ge1xuICB3aWR0aDogMTlweDtcbiAgaGVpZ2h0OiAyMHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAucHJhY3RpY2UtbGVhZCBhLmxpbmtlZGluIHtcbiAgICAgIHdpZHRoOiAyN3B4O1xuICAgICAgaGVpZ2h0OiAyNXB4OyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAucHJhY3RpY2UtbGVhZCBhLmVtYWlsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDNweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGhlaWdodDogMTlweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLXBhbHMgLnByYWN0aWNlLWxlYWQgYS5lbWFpbCB7XG4gICAgICB3aWR0aDogMzJweDtcbiAgICAgIGhlaWdodDogMjlweDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLXBhbHMgLnByYWN0aWNlLWxlYWQgLmJpbyB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICM2NjY7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC5wcmFjdGljZS1sZWFkIC5iaW8ge1xuICAgICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICAgIHBhZGRpbmctdG9wOiAzMHB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAudGVhbS1sZWFkcyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAudGVhbS1sZWFkcyB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4OyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAudGVhbS1sZWFkcyAudGVhbS1sZWFkIHtcbiAgbWFyZ2luOiAwIDAgNDBweCAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAudGVhbS1sZWFkcyAudGVhbS1sZWFkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC50ZWFtLWxlYWRzIC50ZWFtLWxlYWQ6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC50ZWFtLWxlYWRzIC5wb3J0cmFpdC13cmFwIHtcbiAgbWFyZ2luOiAwIDE1cHggMTVweCAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAudGVhbS1sZWFkcyAucG9ydHJhaXQtd3JhcCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH0gfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC50ZWFtLWxlYWRzIC5uYW1lIHtcbiAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLXBhbHMgLnRlYW0tbGVhZHMgLnRpdGxlIHtcbiAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLXBhbHMgLnRlYW0tbGVhZHMgLnBob25lIHtcbiAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLXBhbHMgLnRlYW0tbGVhZHMgLnByb2plY3QtbWV0YS1zb2NpYWwge1xuICBtYXJnaW46IDEwcHggMCAyMHB4IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC50ZWFtLWxlYWRzIC5wcm9qZWN0LW1ldGEtc29jaWFsIHtcbiAgICAgIG1hcmdpbjogMjBweCAwIDIwcHggMDsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLXBhbHMgLnRlYW0tbGVhZHMgLnByb2plY3QtbWV0YS1zb2NpYWwgYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCA1cHggMCAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC50ZWFtLWxlYWRzIC5wcm9qZWN0LW1ldGEtc29jaWFsIGEgcGF0aCB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgLm5vLWlvcyAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC50ZWFtLWxlYWRzIC5wcm9qZWN0LW1ldGEtc29jaWFsIGE6aG92ZXIgcGF0aCB7XG4gICAgICBmaWxsOiAjZWU2NjIyOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLXBhbHMgLnRlYW0tbGVhZHMgYS5saW5rZWRpbiB7XG4gIHdpZHRoOiAxOXB4O1xuICBoZWlnaHQ6IDIwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC50ZWFtLWxlYWRzIGEubGlua2VkaW4ge1xuICAgICAgd2lkdGg6IDI3cHg7XG4gICAgICBoZWlnaHQ6IDI1cHg7IH0gfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC50ZWFtLWxlYWRzIGEuZW1haWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogM3B4O1xuICB3aWR0aDogMjFweDtcbiAgaGVpZ2h0OiAxOXB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAudGVhbS1sZWFkcyBhLmVtYWlsIHtcbiAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgaGVpZ2h0OiAyOXB4OyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyAuc2VydmljZS1saW5rIHtcbiAgbWFyZ2luOiAzMHB4IDAgMzBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzIC5zZXJ2aWNlLWxpbmsge1xuICAgICAgbWFyZ2luOiA2MHB4IDAgNjBweCAwOyB9IH1cblxuLyogUGFnZTogUGVvcGxlIENvcnBvcmF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1jb3Jwb3JhdGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtcHJldmlldyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDQ1LjUlO1xuICBtYXJnaW46IDMlIDEuNSU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtcHJldmlldzo6YmVmb3JlLCAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1wcmV2aWV3OjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLXByZXZpZXc6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLXByZXZpZXcge1xuICAgICAgd2lkdGg6IDQ2LjUlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1wcmV2aWV3IHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBtYXJnaW46IDElOyB9IH1cbiAgLm5vLWlvcyAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1wcmV2aWV3IGE6aG92ZXIgLnBvcnRyYWl0IHtcbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwJSk7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtcHJldmlldyAucG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLXByZXZpZXcgLmpzLW9wZW4gLnN0YWZmLW1ldGEge1xuICAgIHBhZGRpbmc6IDAgMCAwIDEwcHg7XG4gICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjYjMwOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLXByZXZpZXcgLmpzLW9wZW4gLnN0YWZmLW1ldGEge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA3cHg7IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1wcmV2aWV3IC5qcy1vcGVuIC5wb3J0cmFpdCB7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMCUpOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLXByZXZpZXcgLmpzLW9wZW4gLm5hbWUge1xuICAgIGNvbG9yOiAjYjMwOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLXByZXZpZXcgLmpzLW9wZW4gLnRpdGxlIHtcbiAgICBjb2xvcjogIzMzMzsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1wcmV2aWV3IC5zdGFmZi1tZXRhIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLXByZXZpZXcgLm5hbWUge1xuICAgIG1hcmdpbjogMCAwIDVweCAwO1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAwLjk0NDQ0cmVtO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtcHJldmlldyAubmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLXByZXZpZXcgLm5hbWUge1xuICAgICAgICBmb250LXNpemU6IDEuMDU1NTZyZW07IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1wcmV2aWV3IC50aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgZm9udC1zaXplOiAwLjgzMzMzcmVtO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtcHJldmlldyAudGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDAuODg4ODlyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1wcmV2aWV3IC50aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NDQ0NHJlbTsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWZ1bGwge1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAyLjYlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDk1LjElO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMjBweCBhdXRvIDQwcHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtZnVsbDo6YmVmb3JlLCAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1mdWxsOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWZ1bGw6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWZ1bGwge1xuICAgICAgbGVmdDogMS45JTtcbiAgICAgIHdpZHRoOiA5Ni4zJTtcbiAgICAgIHBhZGRpbmc6IDMwcHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWZ1bGwge1xuICAgICAgbGVmdDogMi43JTtcbiAgICAgIHdpZHRoOiA5NC42JTsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWNvbnRhY3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtY29udGFjdDphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IDIwcHggMCAyMHB4IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjNjY2OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWNvbnRhY3Q6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBkb3R0ZWQgIzY2NjsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWNvbnRhY3QgLnBob25lIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtYmlvIHAsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWJpbyBhZGRyZXNzLCAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1iaW8gYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWJpbyAuc3QtdWktdHlwZS1kZXRhaWwsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWJpbyBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1iaW8gLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQge1xuICBmb250LXNpemU6IDAuNzc3NzhyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1iaW8gcCwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtYmlvIGFkZHJlc3MsIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWJpbyBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtYmlvIC5zdC11aS10eXBlLWRldGFpbCwgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtYmlvIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWJpbyAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCB7XG4gICAgICBmb250LXNpemU6IDAuODMzMzNyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnN0YWZmLWJpbyBwLCAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1iaW8gYWRkcmVzcywgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtYmlvIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1iaW8gLnN0LXVpLXR5cGUtZGV0YWlsLCAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5zdGFmZi1iaW8gYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAuc3RhZmYtYmlvIC5zdC11aS10eXBlLWRldGFpbC1ib2xkIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44ODg4OXJlbTsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnByb2plY3QtbWV0YS1zb2NpYWwge1xuICBtYXJnaW46IDA7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCAucHJvamVjdC1tZXRhLXNvY2lhbCBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIG1hcmdpbjogMCAxMHB4IDAgMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5wcm9qZWN0LW1ldGEtc29jaWFsIGEge1xuICAgICAgICB3aWR0aDogMjlweDtcbiAgICAgICAgaGVpZ2h0OiAyNnB4OyB9IH1cbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1jb3JwIC5wcm9qZWN0LW1ldGEtc29jaWFsIGEuZW1haWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiA0cHg7IH1cbiAgICAubm8taW9zIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGVvcGxlLWNvcnAgLnByb2plY3QtbWV0YS1zb2NpYWwgYTpob3ZlciBwYXRoIHtcbiAgICAgIGZpbGw6ICNlZTY2MjI7IH1cblxuLyogQnVsbGV0aW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJ1bGxldGluIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIHBhZGRpbmc6IDQwcHg7XG4gIGJhY2tncm91bmQ6ICNiMzA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgLmJ1bGxldGluLmpzLWhpZGUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMjAlKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5idWxsZXRpbiBhIHtcbiAgICBjb2xvcjogI2ZiYWI4NDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIC5idWxsZXRpbiBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmRiYzlkO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmJ1bGxldGluIC5idWxsZXRpbl9fbXNnIHtcbiAgICBtYXgtd2lkdGg6IDExNzBweDtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAuYnVsbGV0aW4gcDpsYXN0LWNoaWxkLCAuYnVsbGV0aW4gYWRkcmVzczpsYXN0LWNoaWxkLCAuYnVsbGV0aW4gYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbDpsYXN0LWNoaWxkLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLmJ1bGxldGluIC5zdC11aS10eXBlLWRldGFpbDpsYXN0LWNoaWxkLCAuYnVsbGV0aW4gYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkOmxhc3QtY2hpbGQsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuYnVsbGV0aW4gLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQ6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uYnVsbGV0aW5fX2Nsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxMHB4O1xuICB6LWluZGV4OiAyO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgc2F0dXJhdGUoMTAwJSkgaW52ZXJ0KDg5JSkgc2VwaWEoMTUlKSBzYXR1cmF0ZSg1NjA2JSkgaHVlLXJvdGF0ZSgzMDdkZWcpIGJyaWdodG5lc3MoMTA5JSkgY29udHJhc3QoMTA0JSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgLmJ1bGxldGluX19jbG9zZTpob3ZlciB7XG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIHNhdHVyYXRlKDEwMCUpIGludmVydCg5OSUpIHNlcGlhKDU0JSkgc2F0dXJhdGUoMzk2NCUpIGh1ZS1yb3RhdGUoMjk1ZGVnKSBicmlnaHRuZXNzKDEwMSUpIGNvbnRyYXN0KDExMiUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKiBGb290ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpdGUtZm9vdGVyIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAzMHB4IDA7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLyogYWRkIHJvb20gZm9yIGJ1bGxldGluICovIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2l0ZS1mb290ZXIge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNpdGUtZm9vdGVyIHtcbiAgICAgIHBhZGRpbmc6IDQwcHggMDsgfSB9XG4gIC5zaXRlLWZvb3Rlci5zaXRlLWZvb3Rlci0tYnVsbGV0aW4tc20ge1xuICAgIHBhZGRpbmctYm90dG9tOiAzMDBweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2l0ZS1mb290ZXIuc2l0ZS1mb290ZXItLWJ1bGxldGluLXNtIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwMHB4OyB9IH1cbiAgLnNpdGUtZm9vdGVyLnNpdGUtZm9vdGVyLS1idWxsZXRpbi1tZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDQwMHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zaXRlLWZvb3Rlci5zaXRlLWZvb3Rlci0tYnVsbGV0aW4tbWQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjUwcHg7IH0gfVxuICAuc2l0ZS1mb290ZXIuc2l0ZS1mb290ZXItLWJ1bGxldGluLWxnIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTUwcHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNpdGUtZm9vdGVyLnNpdGUtZm9vdGVyLS1idWxsZXRpbi1sZyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzNTBweDsgfSB9XG5cbi5mdHItbmF2IHtcbiAgbWFyZ2luOiAwIDAgMjBweCAwOyB9XG4gIC5mdHItbmF2IGEge1xuICAgIHBhZGRpbmc6IDEwcHggMzBweCAxMHB4IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAwLjg4ODg5cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAgIC5mdHItbmF2IGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAubm8taW9zIC5mdHItbmF2IGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZjc3MzM7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmZ0ci1uYXYgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NDQ0NHJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5mdHItbmF2IGEge1xuICAgICAgICBmb250LXNpemU6IDFyZW07IH0gfVxuICAuZnRyLW5hdiAubWVudSAuaXMtYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLmZ0ci1uYXYgbGk6bGFzdC1jaGlsZCBhIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5mdHItZGVzYyxcbi5mdHItbGVnYWwge1xuICBtYXJnaW46IDAgMCA1cHggMDtcbiAgY29sb3I6ICNlZWU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZnRyLWRlc2MsXG4gICAgLmZ0ci1sZWdhbCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9IH1cblxuLmZ0ci1kZXNjIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgZm9udC1zaXplOiAwLjY2NjY3cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmZ0ci1kZXNjIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5mdHItZGVzYyB7XG4gICAgICBmb250LXNpemU6IDAuNzIyMjJyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5mdHItZGVzYyB7XG4gICAgICBmb250LXNpemU6IDAuNzc3NzhyZW07IH0gfVxuXG4uZnRyLWxlZ2FsIHtcbiAgZm9udC1zaXplOiAwLjU1NTU2cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmZ0ci1sZWdhbCB7XG4gICAgICBmb250LXNpemU6IDAuNjExMTFyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5mdHItbGVnYWwge1xuICAgICAgZm9udC1zaXplOiAwLjY2NjY3cmVtOyB9IH1cbiAgLmZ0ci1sZWdhbCBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgLmZ0ci1sZWdhbCBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAubm8taW9zIC5mdHItbGVnYWwgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZmNzczMztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5mdHItc29jaWFsIHtcbiAgbWFyZ2luOiAwIDAgMjVweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZnRyLXNvY2lhbCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0gfVxuICAuZnRyLXNvY2lhbCBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbjogNXB4IDEwcHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgIC5mdHItc29jaWFsIGEuZmFjZWJvb2sge1xuICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICBoZWlnaHQ6IDI1cHg7IH1cbiAgICAuZnRyLXNvY2lhbCBhLnlvdXR1YmUge1xuICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICBoZWlnaHQ6IDE3cHg7IH1cbiAgICAuZnRyLXNvY2lhbCBhLmdsYXNzZG9vciB7XG4gICAgICB3aWR0aDogMTdweDtcbiAgICAgIGhlaWdodDogMjNweDsgfVxuICAgIC5mdHItc29jaWFsIGEudHdpdHRlciB7XG4gICAgICB3aWR0aDogMjRweDtcbiAgICAgIGhlaWdodDogMTlweDsgfVxuICAgIC5mdHItc29jaWFsIGEubGlua2VkaW4ge1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDE5cHg7IH1cbiAgICAuZnRyLXNvY2lhbCBhLmluc3RhZ3JhbSB7XG4gICAgICB3aWR0aDogMjFweDtcbiAgICAgIGhlaWdodDogMjFweDsgfVxuICAgIC5mdHItc29jaWFsIGEuZmxpY2tyIHtcbiAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgaGVpZ2h0OiAxMHB4OyB9XG4gICAgLmZ0ci1zb2NpYWwgYS52aW1lbyB7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMThweDsgfVxuICAgIC5mdHItc29jaWFsIGEgc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmZ0ci1zb2NpYWwgYSBwYXRoIHtcbiAgICAgIGZpbGw6ICM2NjY7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgLm5vLWlvcyAuZnRyLXNvY2lhbCBhOmhvdmVyIHBhdGgge1xuICAgICAgZmlsbDogI2ZmNzczMzsgfVxuXG5ib2R5LmpzLW1vYmlsZS1tZW51LWFjdGl2ZSAubWFpbi1jb250ZW50LFxuYm9keS5qcy1tb2JpbGUtbWVudS1hY3RpdmUgLnNpdGUtZm9vdGVyIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgb3BhY2l0eTogLjE7IH1cblxuLyogbWFrZSByb29tIGZvciBmaXhlZCBuYXYgKi9cbmJvZHkge1xuICBwYWRkaW5nLXRvcDogNjZweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIGJvZHkge1xuICAgICAgcGFkZGluZy10b3A6IDc3cHg7IH0gfVxuXG4uc2l0ZS1oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDUwO1xuICBwYWRkaW5nOiAxMnB4IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXIge1xuICAgICAgcGFkZGluZzogMjRweCAwIDAgMDsgfSB9XG4gIC5zaXRlLWhlYWRlcjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IC0xMHB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkgNjAlKTsgfVxuXG4vKiBwdXNoIGRvd24gZm9yIHdvcmRwcmVzcyBhZG1pbiBiYXIgKi9cbmJvZHkuYWRtaW4tYmFyIC5zaXRlLWhlYWRlciB7XG4gIHRvcDogMzJweDsgfVxuXG4uc2l0ZS1oZWFkZXItbG9nby13cmFwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zaXRlLWhlYWRlci1sb2dvIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zaXRlLWhlYWRlci1sb2dvIHtcbiAgICAgIHdpZHRoOiAxNDBweDtcbiAgICAgIGhlaWdodDogNDlweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNpdGUtaGVhZGVyLWxvZ28ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtMTJweDtcbiAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgIGhlaWdodDogNTNweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvIDAgMTVweDsgfSB9XG4gIC5zaXRlLWhlYWRlci1sb2dvIHN2ZyB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgLnNpdGUtaGVhZGVyLWxvZ28gcGF0aCB7XG4gICAgZmlsbDogIzIyMjsgfVxuICAubm8taW9zIC5zaXRlLWhlYWRlci1sb2dvIHN2ZyxcbiAgLm5vLWlvcyAuc2l0ZS1oZWFkZXItbG9nbyBwb2x5Z29uLFxuICAubm8taW9zIC5zaXRlLWhlYWRlci1sb2dvIHBhdGgge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgLm5vLWlvcyAuc2l0ZS1oZWFkZXItbG9nbzpob3ZlciBzdmcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NCk7IH1cbiAgLm5vLWlvcyAuc2l0ZS1oZWFkZXItbG9nbzpob3ZlciBwb2x5Z29uLnN0MSB7XG4gICAgZmlsbDogIzg4ODsgfVxuICAubm8taW9zIC5zaXRlLWhlYWRlci1sb2dvOmhvdmVyIHBvbHlnb24uc3QyIHtcbiAgICBmaWxsOiAjNDQ0OyB9XG5cbi5zaXRlLWhlYWRlci1zZWFyY2gtdG9nZ2xlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMjFweDtcbiAgaGVpZ2h0OiAyMXB4O1xuICBtYXJnaW46IDEwcHggMTVweCAwIDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXItc2VhcmNoLXRvZ2dsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAxNHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5zaXRlLWhlYWRlci1zZWFyY2gtdG9nZ2xlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogNXB4O1xuICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gICAgICAvKiBkaXZpZGVyICovIH1cbiAgICAgIC5zaXRlLWhlYWRlci1zZWFyY2gtdG9nZ2xlOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNHB4O1xuICAgICAgICBsZWZ0OiAtNDBweDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkb3R0ZWQgIzY2NjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDYwcHgpIHtcbiAgICAuc2l0ZS1oZWFkZXItc2VhcmNoLXRvZ2dsZSB7XG4gICAgICBtYXJnaW4tbGVmdDogNzBweDsgfVxuICAgICAgLnNpdGUtaGVhZGVyLXNlYXJjaC10b2dnbGU6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogLTUwcHg7IH0gfVxuICAuc2l0ZS1oZWFkZXItc2VhcmNoLXRvZ2dsZSBzdmcge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gIC5zaXRlLWhlYWRlci1zZWFyY2gtdG9nZ2xlOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm5vLWlvcyAuc2l0ZS1oZWFkZXItc2VhcmNoLXRvZ2dsZSBwYXRoIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOyB9XG4gIC5uby1pb3MgLnNpdGUtaGVhZGVyLXNlYXJjaC10b2dnbGU6aG92ZXIgcGF0aCB7XG4gICAgZmlsbDogI2ZmNzczMzsgfVxuXG4uc2l0ZS1oZWFkZXItbW9iaWxlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXItbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uc2l0ZS1oZWFkZXItbWVudS10b2dnbGUtd3JhcCB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpdGUtaGVhZGVyLW1lbnUtdG9nZ2xlLXdyYXAge1xuICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7IH0gfVxuXG4uc2l0ZS1oZWFkZXItbWVudS10b2dnbGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzhweDtcbiAgbWFyZ2luOiA0cHggMCAwIDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXItbWVudS10b2dnbGUge1xuICAgICAgbWFyZ2luLXRvcDogOHB4OyB9IH1cbiAgLnNpdGUtaGVhZGVyLW1lbnUtdG9nZ2xlOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm5vLWlvcyAuc2l0ZS1oZWFkZXItbWVudS10b2dnbGUgcGF0aCB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAubm8taW9zIC5zaXRlLWhlYWRlci1tZW51LXRvZ2dsZTpob3ZlciBwYXRoIHtcbiAgICBmaWxsOiAjZmY3NzMzOyB9XG5cbi5zaXRlLWhlYWRlci1tb2JpbGUtbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA2NnB4ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGJvcmRlcjogbm9uZTtcbiAgLyogbWVudSAqL1xuICAvKiBzdWJtZW51ICovXG4gIC8qIHN1Ym1lbnUgdG9nZ2xlICovIH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnNpdGUtaGVhZGVyLW1vYmlsZS1tZW51IHtcbiAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgIHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpdGUtaGVhZGVyLW1vYmlsZS1tZW51IHtcbiAgICAgIHRvcDogNzNweCAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXItbW9iaWxlLW1lbnUge1xuICAgICAgdG9wOiA3N3B4ICFpbXBvcnRhbnQ7IH0gfVxuICAuc2l0ZS1oZWFkZXItbW9iaWxlLW1lbnUgLm1lbnUgYSB7XG4gICAgcGFkZGluZzogLjVyZW0gMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LWZhbWlseTogXCJSb2JvdG8gQ29uZGVuc2VkXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAubm8taW9zIC5zaXRlLWhlYWRlci1tb2JpbGUtbWVudSAubWVudSBhIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAgIC5uby1pb3MgLnNpdGUtaGVhZGVyLW1vYmlsZS1tZW51IC5tZW51IGE6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjZmY3NzMzOyB9XG4gICAgLnNpdGUtaGVhZGVyLW1vYmlsZS1tZW51IC5tZW51IGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLnNpdGUtaGVhZGVyLW1vYmlsZS1tZW51IC5tZW51IC5pcy1hY3RpdmUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2FhYTsgfVxuICAgIC5zaXRlLWhlYWRlci1tb2JpbGUtbWVudSAubWVudSAuaXMtYWN0aXZlID4gYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2FhYTtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuc2l0ZS1oZWFkZXItbW9iaWxlLW1lbnUgLm1lbnUuc3VibWVudSxcbiAgLnNpdGUtaGVhZGVyLW1vYmlsZS1tZW51IC5hY2NvcmRpb24tbWVudSAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgICBtYXJnaW4tYm90dG9tOiAuM3JlbTsgfVxuICAuc2l0ZS1oZWFkZXItbW9iaWxlLW1lbnUgLm1lbnUuc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAuNXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMC44ODg4OXJlbTsgfVxuICAuc2l0ZS1oZWFkZXItbW9iaWxlLW1lbnUgLnN1Ym1lbnUtdG9nZ2xlOjphZnRlciB7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiA5cHg7XG4gICAgbWFyZ2luOiAwIDAgMCBhdXRvO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tY2hldnJvbi5zdmcpIG5vLXJlcGVhdDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG5cbi5oZHItc2VhcmNoLWZvcm0ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNjZweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBib3JkZXI6IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmhkci1zZWFyY2gtZm9ybSB7XG4gICAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5oZHItc2VhcmNoLWZvcm0ge1xuICAgICAgdG9wOiA3M3B4ICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5oZHItc2VhcmNoLWZvcm0ge1xuICAgICAgdG9wOiA3N3B4ICFpbXBvcnRhbnQ7IH0gfVxuICAuaGRyLXNlYXJjaC1mb3JtIC5pbnB1dC1ncm91cCB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5oZHItc2VhcmNoLWZvcm0gW3R5cGU9J3RleHQnXTpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG5ib2R5LmFkbWluLWJhciAuaGRyLXNlYXJjaC1mb3JtIHtcbiAgbWFyZ2luLXRvcDogMzFweDsgfVxuXG4uZGVza3RvcC1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMTA7XG4gIC8qIG1lbnUgKi9cbiAgLyogc3VibWVudSAqL1xuICAvKiBzdWJtZW51IHRvZ2dsZSAqLyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmRlc2t0b3AtbWVudSB7XG4gICAgICB0b3A6IDRweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC5kZXNrdG9wLW1lbnUubWVudSBhLFxuICAuZGVza3RvcC1tZW51Lm1lbnUgYTpmb2N1cyxcbiAgLmRlc2t0b3AtbWVudS5tZW51IC5pcy1hY3RpdmUgYSB7XG4gICAgbWFyZ2luOiAwIDhweDtcbiAgICBwYWRkaW5nOiAuOHJlbSAuMXJlbTtcbiAgICBjb2xvcjogIzc3NztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90byBDb25kZW5zZWRcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDAuOTQ0NDRyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTEzMHB4KSB7XG4gICAgICAuZGVza3RvcC1tZW51Lm1lbnUgYSxcbiAgICAgIC5kZXNrdG9wLW1lbnUubWVudSBhOmZvY3VzLFxuICAgICAgLmRlc2t0b3AtbWVudS5tZW51IC5pcy1hY3RpdmUgYSB7XG4gICAgICAgIG1hcmdpbjogMCAxNXB4OyB9IH1cbiAgICAubm8taW9zIC5kZXNrdG9wLW1lbnUubWVudSBhLCAubm8taW9zXG4gICAgLmRlc2t0b3AtbWVudS5tZW51IGE6Zm9jdXMsIC5uby1pb3NcbiAgICAuZGVza3RvcC1tZW51Lm1lbnUgLmlzLWFjdGl2ZSBhIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAgIC5uby1pb3MgLmRlc2t0b3AtbWVudS5tZW51IGE6aG92ZXIsIC5uby1pb3NcbiAgICAgIC5kZXNrdG9wLW1lbnUubWVudSBhOmZvY3VzOmhvdmVyLCAubm8taW9zXG4gICAgICAuZGVza3RvcC1tZW51Lm1lbnUgLmlzLWFjdGl2ZSBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogI2ZmNzczMzsgfVxuICAuZGVza3RvcC1tZW51Lm1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDsgfVxuICAgIC5kZXNrdG9wLW1lbnUubWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMDAwOyB9XG4gIC5kZXNrdG9wLW1lbnUgLm1lbnUuc3VibWVudSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IC41cmVtIDFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuZGVza3RvcC1tZW51IC5tZW51LnN1Ym1lbnUgYSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IC41cmVtIDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAwLjg4ODg5cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgYm9yZGVyOiBub25lOyB9XG4gIC5kZXNrdG9wLW1lbnUgLm1lbnUuc3VibWVudSAuY3VycmVudC1tZW51LWl0ZW0gYSB7XG4gICAgY29sb3I6ICM5OTk7IH1cbiAgICAuZGVza3RvcC1tZW51IC5tZW51LnN1Ym1lbnUgLmN1cnJlbnQtbWVudS1pdGVtIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICM5OTk7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgLmRlc2t0b3AtbWVudS5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgd2lkdGg6IDEzcHg7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbi1jaGV2cm9uLWRlc2t0b3Auc3ZnKSBuby1yZXBlYXQ7IH1cblxuYm9keSN0aW55bWNlIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDY2LjY2NjY3cmVtO1xuICBwYWRkaW5nOiAxLjExMTExcmVtICFpbXBvcnRhbnQ7IH1cblxuLyogYnV0dG9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5idXR0b24sXG4uZnJtX2J1dHRvbl9zdWJtaXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IC44cmVtIDEuNHJlbTtcbiAgYmFja2dyb3VuZDogI2VlNjYyMjtcbiAgZm9udC1mYW1pbHk6IFwiU2FpcmFcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMC43Nzc3OHJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5idXR0b24sXG4gICAgLmZybV9idXR0b25fc3VibWl0IHtcbiAgICAgIGZvbnQtc2l6ZTogMC44MzMzM3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmJ1dHRvbixcbiAgICAuZnJtX2J1dHRvbl9zdWJtaXQge1xuICAgICAgZm9udC1zaXplOiAwLjg4ODg5cmVtOyB9IH1cbiAgLmJ1dHRvbjpob3ZlcixcbiAgLmZybV9idXR0b25fc3VibWl0OmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiAjZWU2NjIyOyB9XG4gIC5uby1pb3MgLmJ1dHRvbjpob3ZlciwgLm5vLWlvc1xuICAuZnJtX2J1dHRvbl9zdWJtaXQ6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICNmZjc3MzM7IH1cblxuLyogYnV0dG9uIHdpdGggaWNvbiBiZWZvcmUgdGV4dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYnV0dG9uLmxpbmstZXh0ZXJuYWwgLmljb24td3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtM3B4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyM3B4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbjogMCA1cHggMCAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qIHRleHQgbGluayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubGluaywgLmxpbmstYXJyb3csIC5saXN0LWFycm93IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogdGV4dCBsaW5rIHdpdGggaWNvbiBiZWZvcmUgdGV4dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubGluay1leHRlcm5hbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5saW5rLWV4dGVybmFsIC5pY29uLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0zcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAyM3B4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBtYXJnaW46IDAgNXB4IDAgMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLmxpbmstZXh0ZXJuYWwgLmljb24td3JhcCBwYXRoIHtcbiAgICAgIGZpbGw6ICNkMDU1MTE7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gIC5uby1pb3MgLmxpbmstZXh0ZXJuYWw6aG92ZXIgcGF0aCB7XG4gICAgZmlsbDogI2VlNjYyMjsgfVxuXG4vKiB0ZXh0IGxpbmsgd2l0aCBhcnJvdyBpY29uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5saW5rLWFycm93IC5pY29uLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIG1hcmdpbjogMCAwIDAgMTBweDsgfVxuXG4ubGluay1hcnJvdy5saW5rLWFycm93LWxlZnQgLmljb24td3JhcCB7XG4gIG1hcmdpbjogMCAxMHB4IDAgMDsgfVxuXG4ubm8taW9zIC5saW5rLWFycm93OmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAubm8taW9zIC5saW5rLWFycm93OmhvdmVyIHBhdGgge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgLm5vLWlvcyAubGluay1hcnJvdzpob3ZlciBwYXRoIHtcbiAgICBmaWxsOiAjZWU2NjIyOyB9XG5cbi8qIHRleHQgbGluayBsaXN0IGl0ZW0gd2l0aCBhcnJvdyBpY29uIG9uIGxlZnQgc2lkZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubGlzdC1hcnJvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCAwIDEwcHggMzBweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuICAubGlzdC1hcnJvdyAuaWNvbi13cmFwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogLTMwcHg7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDE3cHg7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIG1hcmdpbjogMCAxMHB4IDAgMDsgfVxuICAubm8taW9zIC5saXN0LWFycm93OmhvdmVyIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gICAgLm5vLWlvcyAubGlzdC1hcnJvdzpob3ZlciBwYXRoIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAubm8taW9zIC5saXN0LWFycm93OmhvdmVyIHBhdGgge1xuICAgICAgZmlsbDogI2VlNjYyMjsgfVxuXG4vKiBiYWNrIHRvIHRvcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYmFjay10by10b3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogNjBweDtcbiAgcmlnaHQ6IDMwcHg7XG4gIHotaW5kZXg6IDUwO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDY4LCA2OCwgNjgsIDAuNCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UtaW4tb3V0OyB9XG4gIC5uby1pb3MgLmJhY2stdG8tdG9wOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNDQ0NDQ0OyB9XG4gIC5iYWNrLXRvLXRvcC5hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmJhY2stdG8tdG9wLnNjcm9sbGluZyB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuYmFjay10by10b3AgLmljb24td3JhcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIxcHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIG1hcmdpbjogMTNweCAxMnB4IDEycHg7IH1cblxuW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gYTpmb2N1cywgYnV0dG9uOmZvY3VzIFtkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdIGE6Zm9jdXMsIGJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLmJyZWFrcG9pbnRzIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDVweDtcbiAgbGVmdDogNXB4O1xuICB6LWluZGV4OiA1MDAwO1xuICBwYWRkaW5nOiAuMjVlbSAuNWVtO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogIzY2NjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsZXR0ZXItc3BhY2luZzogLjFlbTsgfVxuXG4vKiBwYWdlIGJhbm5lciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5Aa2V5ZnJhbWVzIGNvbG9yY2hhbmdlIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7IH1cbiAgNTAlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH0gfVxuXG4ucGFnZS1oZWFkZXItaG9tZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1zaXplOiAxcHggMXB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtaGVhZGVyLWhvbWUge1xuICAgICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMjAwMHB4KSB7XG4gICAgLnBhZ2UtaGVhZGVyLWhvbWUge1xuICAgICAgbWF4LWhlaWdodDogMTEwMHB4OyB9IH1cbiAgLnBhZ2UtaGVhZGVyLWhvbWUgLmhvbWUtcGctdGl0bGUtcm93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogNTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMTVweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnZS1oZWFkZXItaG9tZSAuaG9tZS1wZy10aXRsZS1yb3cge1xuICAgICAgICB0b3A6IDQwcHg7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucGFnZS1oZWFkZXItaG9tZSAuaG9tZS1wZy10aXRsZS1yb3cge1xuICAgICAgICB0b3A6IDgwcHg7IH0gfVxuICAucGFnZS1oZWFkZXItaG9tZSBoMSB7XG4gICAgLypcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDM0cHgpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoIzAwMCwuMyk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg0MHB4KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgd2lkdGg6IDQwJTtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNTBweCk7XG4gICAgfVxuICAgICovXG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgICBib3JkZXI6IDA7IH1cbiAgLnBhZ2UtaGVhZGVyLWhvbWUgLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5wYWdlLWhlYWRlci1ob21lIC5mbGV4LXZpZGVvIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjMlOyB9XG4gIC5wYWdlLWhlYWRlci1ob21lIC5pbnRyby12aWRlby1iZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnZS1oZWFkZXItaG9tZSAuaW50cm8tdmlkZW8tYmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgLyogYWRkIGxheWVyIHRvIHN0b3AgeW91dHViZSBob3ZlciByZXZlYWxpbmcgY29udHJvbHMgKi8gfVxuICAgICAgICAucGFnZS1oZWFkZXItaG9tZSAuaW50cm8tdmlkZW8tYmc6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnBhZ2UtaGVhZGVyLWhvbWUgLmludHJvLXZpZGVvLWJnIGlmcmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogMjAwMHB4KSB7XG4gICAgLnBhZ2UtaGVhZGVyLWhvbWUgLmludHJvLXZpZGVvLWJnIGlmcmFtZSB7XG4gICAgICBtYXgtaGVpZ2h0OiAxMTAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTEwMHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucGFnZS1oZWFkZXItaG9tZSAuaG9tZS1pbnRyby1zbGlkZXNob3cge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5wYWdlLWhlYWRlci1ob21lIC5pbnRyby1kZXNjIHAsIC5wYWdlLWhlYWRlci1ob21lIC5pbnRyby1kZXNjIGFkZHJlc3MsIC5wYWdlLWhlYWRlci1ob21lIC5pbnRyby1kZXNjIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAucGFnZS1oZWFkZXItaG9tZSAuaW50cm8tZGVzYyAuc3QtdWktdHlwZS1kZXRhaWwsIC5wYWdlLWhlYWRlci1ob21lIC5pbnRyby1kZXNjIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5wYWdlLWhlYWRlci1ob21lIC5pbnRyby1kZXNjIC5zdC11aS10eXBlLWRldGFpbC1ib2xkIHtcbiAgICBmb250LXNpemU6IDEuMTExMTFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnBhZ2UtaGVhZGVyLWhvbWUgLmludHJvLWRlc2MgcCwgLnBhZ2UtaGVhZGVyLWhvbWUgLmludHJvLWRlc2MgYWRkcmVzcywgLnBhZ2UtaGVhZGVyLWhvbWUgLmludHJvLWRlc2MgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbCwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5wYWdlLWhlYWRlci1ob21lIC5pbnRyby1kZXNjIC5zdC11aS10eXBlLWRldGFpbCwgLnBhZ2UtaGVhZGVyLWhvbWUgLmludHJvLWRlc2MgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5zdC11aS10eXBlLWRldGFpbC1ib2xkLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UtaGVhZGVyLWhvbWUgLmludHJvLWRlc2MgLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQge1xuICAgICAgICBmb250LXNpemU6IDEuMjIyMjJyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucGFnZS1oZWFkZXItaG9tZSAuaW50cm8tZGVzYyBwLCAucGFnZS1oZWFkZXItaG9tZSAuaW50cm8tZGVzYyBhZGRyZXNzLCAucGFnZS1oZWFkZXItaG9tZSAuaW50cm8tZGVzYyBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnBhZ2UtaGVhZGVyLWhvbWUgLmludHJvLWRlc2MgLnN0LXVpLXR5cGUtZGV0YWlsLCAucGFnZS1oZWFkZXItaG9tZSAuaW50cm8tZGVzYyBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtZGV0YWlsLWJvbGQsIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAucGFnZS1oZWFkZXItaG9tZSAuaW50cm8tZGVzYyAuc3QtdWktdHlwZS1kZXRhaWwtYm9sZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zMzMzM3JlbTsgfSB9XG5cbi5kZW1vLWhvbWUtdmlkIHtcbiAgLyogYWRkIGxheWVyIHRvIHN0b3AgeW91dHViZSBob3ZlciByZXZlYWxpbmcgY29udHJvbHMgKi8gfVxuICAuZGVtby1ob21lLXZpZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLyogaW50cm8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmhvbWUtaW50cm8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuaG9tZS1pbnRybzpiZWZvcmUsIC5ob21lLWludHJvOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuICAgIGh0bWwuaWUgLmhvbWUtaW50cm86YmVmb3JlLCBodG1sLmllIC5ob21lLWludHJvOmFmdGVyIHtcbiAgICAgIG1peC1ibGVuZC1tb2RlOiB1bnNldDsgfVxuICAuaG9tZS1pbnRybzpiZWZvcmUsIC5ob21lLWludHJvOmFmdGVyIHtcbiAgICBib3R0b206IDA7IH1cbiAgLmhvbWUtaW50cm86YmVmb3JlIHtcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlci13aWR0aDogMTAwcHggMCAwIDIwcHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCByZ2JhKDIzOCwgMjM4LCAyMzgsIDAuNik7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmhvbWUtaW50cm86YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxNTBweCAwIDAgMzBweDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob21lLWludHJvOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMjYwcHggMCAwIDYwcHg7IH0gfVxuICAuaG9tZS1pbnRybzphZnRlciB7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMTAwcHggMjBweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHJnYmEoMjM4LCAyMzgsIDIzOCwgMC42KSB0cmFuc3BhcmVudDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuaG9tZS1pbnRybzphZnRlciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDE1MHB4IDMwcHg7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaG9tZS1pbnRybzphZnRlciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDI2MHB4IDYwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuaG9tZS1pbnRybyB7XG4gICAgICBtYXJnaW4tdG9wOiAtN3B4OyB9IH1cbiAgLmhvbWUtaW50cm8gLnJvdyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLmhvbWUtaW50cm8gLmludHJvLWRlc2MgOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogc2VydmljZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmhvbWUtc2VydmljZXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuaG9tZS1zZXJ2aWNlczpiZWZvcmUsIC5ob21lLXNlcnZpY2VzOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuICAgIGh0bWwuaWUgLmhvbWUtc2VydmljZXM6YmVmb3JlLCBodG1sLmllIC5ob21lLXNlcnZpY2VzOmFmdGVyIHtcbiAgICAgIG1peC1ibGVuZC1tb2RlOiB1bnNldDsgfVxuICAuaG9tZS1zZXJ2aWNlczpiZWZvcmUsIC5ob21lLXNlcnZpY2VzOmFmdGVyIHtcbiAgICB0b3A6IDA7IH1cbiAgLmhvbWUtc2VydmljZXM6YmVmb3JlIHtcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlci13aWR0aDogMTAwcHggMjBweCAwIDA7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIwNCwgMjA0LCAyMDQsIDAuNSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmhvbWUtc2VydmljZXM6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxNTBweCAzMHB4IDAgMDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob21lLXNlcnZpY2VzOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMjYwcHggNjBweCAwIDA7IH0gfVxuICAuaG9tZS1zZXJ2aWNlczphZnRlciB7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDIwcHggMTAwcHggMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHJnYmEoMjA0LCAyMDQsIDIwNCwgMC41KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuaG9tZS1zZXJ2aWNlczphZnRlciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAzMHB4IDE1MHB4IDA7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaG9tZS1zZXJ2aWNlczphZnRlciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCA2MHB4IDI2MHB4IDA7IH0gfVxuICAuaG9tZS1zZXJ2aWNlcyAuaG9tZS1zZXJ2aWNlcy1yb3ctaW50cm8ge1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob21lLXNlcnZpY2VzIC5ob21lLXNlcnZpY2VzLXJvdy1pbnRybyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4OyB9IH1cbiAgLmhvbWUtc2VydmljZXMgLmhvbWUtc2VydmljZXMtcm93LWZlZWQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob21lLXNlcnZpY2VzIC5ob21lLXNlcnZpY2VzLXJvdy1mZWVkIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7IH0gfVxuICAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMCAwIDQwcHggMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5ob21lLXNlcnZpY2VzIC5zZXJ2aWNlIHtcbiAgICAgICAgbWluLWhlaWdodDogMTAwcHg7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OyB9IH1cbiAgICAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZSAuc2VydmljZS1pY29uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB3aWR0aDogNzVweDtcbiAgICAgIGhlaWdodDogNzVweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5ob21lLXNlcnZpY2VzIC5zZXJ2aWNlIC5zZXJ2aWNlLWljb24ge1xuICAgICAgICAgIHdpZHRoOiA4NXB4O1xuICAgICAgICAgIGhlaWdodDogODVweDsgfSB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZSAuc2VydmljZS1pY29uIHtcbiAgICAgICAgICB3aWR0aDogOTVweDtcbiAgICAgICAgICBoZWlnaHQ6IDk1cHg7IH0gfVxuICAgIC5ob21lLXNlcnZpY2VzIC5zZXJ2aWNlIC5zZXJ2aWNlLXRleHQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDk1cHg7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5ob21lLXNlcnZpY2VzIC5zZXJ2aWNlIC5zZXJ2aWNlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMDVweDsgfSB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZSAuc2VydmljZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTE1cHg7IH0gfVxuICAgIC5ob21lLXNlcnZpY2VzIC5zZXJ2aWNlIC50aXRsZSB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyB9XG4gICAgLm5vLWlvcyAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZS5qcy1ob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5uby1pb3MgLmhvbWUtc2VydmljZXMgLnNlcnZpY2UuanMtaG92ZXIgLnNlcnZpY2UtaWNvbiB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDEwcHggMXB4IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KTsgfVxuICAgICAgLm5vLWlvcyAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZS5qcy1ob3ZlciAudGl0bGUge1xuICAgICAgICBjb2xvcjogIzAwMDsgfVxuICAgICAgLm5vLWlvcyAuaG9tZS1zZXJ2aWNlcyAuc2VydmljZS5qcy1ob3ZlciBhIHtcbiAgICAgICAgY29sb3I6ICNlZTY2MjI7IH1cbiAgICAgIC5uby1pb3MgLmhvbWUtc2VydmljZXMgLnNlcnZpY2UuanMtaG92ZXIgYSBwYXRoIHtcbiAgICAgICAgZmlsbDogI2VlNjYyMjsgfVxuXG4vKiBwcm9qZWN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaG9tZS1wcm9qZWN0cyB7XG4gIGJhY2tncm91bmQ6ICNjY2M7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMyMjIgMCUsICMzMzMgMTAlLCAjNDQ0IDQwJSwgIzIyMiA0MCUsICMyMjIgMTAwJSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ob21lLXByb2plY3RzIHtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMyMjIgMCUsICMzMzMgMTAlLCAjNDQ0IDYwJSwgIzIyMiA2MCUsICMyMjIgMTAwJSk7IH0gfVxuICAuaG9tZS1wcm9qZWN0cyBoMiwgLmhvbWUtcHJvamVjdHMgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc2VhcmNoLWZvcm0gaW5wdXRbdHlwZT0ndGV4dCddLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zZWFyY2gtZm9ybSAuaG9tZS1wcm9qZWN0cyBpbnB1dFt0eXBlPSd0ZXh0J10sIC5ob21lLXByb2plY3RzIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnN0LXVpLXJlc3VsdCAuc3QtdWktdHlwZS1oZWFkaW5nLCBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLmhvbWUtcHJvamVjdHMgLnN0LXVpLXR5cGUtaGVhZGluZywgLmhvbWUtcHJvamVjdHMgYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgYm9keS5zZWFyY2ggLnNlYXJjaC1mb3JtIC5ob21lLXByb2plY3RzIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmhvbWUtcHJvamVjdHMgaDIsIC5ob21lLXByb2plY3RzIGJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20gLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9J3RleHQnXSwgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc2VhcmNoLWZvcm0gLmhvbWUtcHJvamVjdHMgaW5wdXRbdHlwZT0ndGV4dCddLCAuaG9tZS1wcm9qZWN0cyBib2R5LnBhZ2UtdGVtcGxhdGUtcGFnZS1zZWFyY2gtY3VzdG9tIC5zdC11aS1yZXN1bHQgLnN0LXVpLXR5cGUtaGVhZGluZywgYm9keS5wYWdlLXRlbXBsYXRlLXBhZ2Utc2VhcmNoLWN1c3RvbSAuc3QtdWktcmVzdWx0IC5ob21lLXByb2plY3RzIC5zdC11aS10eXBlLWhlYWRpbmcsIC5ob21lLXByb2plY3RzIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sIGJvZHkuc2VhcmNoIC5zZWFyY2gtZm9ybSAuaG9tZS1wcm9qZWN0cyBpbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgICAgICBtYXJnaW4tdG9wOiAtNXB4OyB9IH1cbiAgLmhvbWUtcHJvamVjdHMgLmhvbWUtcHJvamVjdC12aXN1YWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuaG9tZS1wcm9qZWN0cyAuaG9tZS1wcm9qZWN0LXBob3RvIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gICAgLmhvbWUtcHJvamVjdHMgLmhvbWUtcHJvamVjdC1waG90bzpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZy10b3A6IDYwJTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmhvbWUtcHJvamVjdHMgLmhvbWUtcHJvamVjdC1waG90bzpiZWZvcmUge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA1MCU7IH0gfVxuICAuaG9tZS1wcm9qZWN0cyAuaG9tZS1wcm9qZWN0LXBob3RvLWNhcHRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIwcHg7XG4gICAgbGVmdDogMjBweDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiA1cHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAwLjU1NTU2cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5ob21lLXByb2plY3RzIC5ob21lLXByb2plY3QtcGhvdG8tY2FwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43MjIyMnJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ob21lLXByb2plY3RzIC5ob21lLXByb2plY3QtcGhvdG8tY2FwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44ODg4OXJlbTsgfSB9XG4gIC5ob21lLXByb2plY3RzIC5ob21lLXByb2plY3QtbWV0YSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMCAwIDQwcHggMDtcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmhvbWUtcHJvamVjdHMgLmhvbWUtcHJvamVjdC1uYW1lIHtcbiAgICBtYXJnaW46IDAgMCAycHggMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gIC5ob21lLXByb2plY3RzIC5ob21lLXByb2plY3QtbG9jYXRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gIC5ob21lLXByb2plY3RzIC5ob21lLXByb2plY3QtbGluayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMTVweDsgfVxuICAgIC5ob21lLXByb2plY3RzIC5ob21lLXByb2plY3QtbGluayBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuaG9tZS1wcm9qZWN0cyAuaG9tZS1wcm9qZWN0LWxpbmsgcGF0aCB7XG4gICAgICBmaWxsOiAjZmZmO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAgIC5uby1pb3MgLmhvbWUtcHJvamVjdHMgLmhvbWUtcHJvamVjdC1saW5rOmhvdmVyIHBhdGgge1xuICAgICAgZmlsbDogI2ZmNzczMzsgfVxuICAubm8taW9zIC5ob21lLXByb2plY3RzIC5ob21lLXByb2plY3QtbWV0YS5qcy1ob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLm5vLWlvcyAuaG9tZS1wcm9qZWN0cyAuaG9tZS1wcm9qZWN0LW1ldGEuanMtaG92ZXIgLmhvbWUtcHJvamVjdC1uYW1lIHtcbiAgICAgIGNvbG9yOiAjZGRkM2M5OyB9XG4gICAgLm5vLWlvcyAuaG9tZS1wcm9qZWN0cyAuaG9tZS1wcm9qZWN0LW1ldGEuanMtaG92ZXIgLmhvbWUtcHJvamVjdC1sb2NhdGlvbiB7XG4gICAgICBjb2xvcjogI2RkZDNjOTsgfVxuICAgIC5uby1pb3MgLmhvbWUtcHJvamVjdHMgLmhvbWUtcHJvamVjdC1tZXRhLmpzLWhvdmVyIC5ob21lLXByb2plY3QtbGluayBwYXRoIHtcbiAgICAgIGZpbGw6ICNlZTY2MjI7IH1cblxuLyogbmV3cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaG9tZS1uZXdzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmhvbWUtbmV3czpiZWZvcmUsIC5ob21lLW5ld3M6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNjBweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JnLXBhdHRlcm4tZGlhZy1saW5lcy5wbmcpIHJlcGVhdC14OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAgICAgLmhvbWUtbmV3czpiZWZvcmUsIC5ob21lLW5ld3M6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5ob21lLW5ld3M6YmVmb3JlIHtcbiAgICBsZWZ0OiAwOyB9XG4gIC5ob21lLW5ld3M6YWZ0ZXIge1xuICAgIHJpZ2h0OiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5ob21lLW5ld3MgLmhkci1zZWN0aW9uIHtcbiAgICAgIG1hcmdpbi10b3A6IC01cHg7IH0gfVxuICAuaG9tZS1uZXdzIC5ob21lLW5ld3Mtc2xpZGVyIHtcbiAgICBtYXJnaW46IDAgMTVweCA0MHB4IDE1cHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmhvbWUtbmV3cyAuaG9tZS1uZXdzLXNsaWRlciB7XG4gICAgICAgIG1hcmdpbjogMCAwIDQwcHggMDsgfSB9XG4gIC5ob21lLW5ld3MgLnNsaWRlLWlubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAxNXB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNnMgZWFzZTtcbiAgICAvKiB0cmlhbmdsZSAqLyB9XG4gICAgLmhvbWUtbmV3cyAuc2xpZGUtaW5uZXI6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDVweDtcbiAgICAgIGJvdHRvbTogNXB4O1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAwIDI1cHggMjVweDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzc3NyB0cmFuc3BhcmVudDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjZzIGVhc2U7IH1cbiAgLmhvbWUtbmV3cyAubmV3cy1waG90byB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNnMgZWFzZTsgfVxuICAgIC5ob21lLW5ld3MgLm5ld3MtcGhvdG86YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmctdG9wOiA2MCU7IH1cbiAgLmhvbWUtbmV3cyAubmV3cy1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxNXB4IDMwcHggMzBweCAxNXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNnMgZWFzZTsgfVxuICAuaG9tZS1uZXdzIC50aXRsZSBhIHtcbiAgICBjb2xvcjogIzMzMzsgfVxuICAgIC5ob21lLW5ld3MgLnRpdGxlIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICMzMzM7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmhvbWUtbmV3cyAuc2xpY2stY3VycmVudCAuc2xpZGUtaW5uZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDJweCByZ2JhKDUxLCA1MSwgNTEsIDAuMyk7IH1cbiAgICAuaG9tZS1uZXdzIC5zbGljay1jdXJyZW50IC5uZXdzLXBob3RvIHtcbiAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDAlKTsgfVxuICAgIC5ob21lLW5ld3MgLnNsaWNrLWN1cnJlbnQgLm5ld3MtY29udGVudDphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNlZTY2MjIgdHJhbnNwYXJlbnQ7IH0gfVxuICAuaG9tZS1uZXdzIC5ncm91cC1saW5rLmpzLWhvdmVyIC5zbGlkZS1pbm5lciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCAycHggcmdiYSg1MSwgNTEsIDUxLCAwLjMpOyB9XG4gIC5ob21lLW5ld3MgLmdyb3VwLWxpbmsuanMtaG92ZXIgLm5ld3MtcGhvdG8ge1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDAlKTsgfVxuICAuaG9tZS1uZXdzIC5ncm91cC1saW5rLmpzLWhvdmVyIC5uZXdzLWNvbnRlbnQ6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2VlNjYyMiB0cmFuc3BhcmVudDsgfVxuXG4vKiBqb2JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5ob21lLWpvYnMge1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmhvbWUtam9icyAuaGRyLXNlY3Rpb24ge1xuICAgICAgbWFyZ2luLXRvcDogLTVweDsgfSB9XG4gIC5ob21lLWpvYnMgLmhvbWUtam9icy1zbGlkZXIge1xuICAgIG1hcmdpbjogMCAxNXB4IDQwcHggMTVweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuaG9tZS1qb2JzIC5ob21lLWpvYnMtc2xpZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgNDBweCAwOyB9IH1cbiAgLmhvbWUtam9icyAuc2xpZGUtaW5uZXIge1xuICAgIG1hcmdpbjogMTVweDtcbiAgICBwYWRkaW5nOiA0MHB4IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzY2NjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzY2NjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gIC5ob21lLWpvYnMgLmV4Y2VycHQge1xuICAgIGZvbnQtc2l6ZTogMC43Nzc3OHJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuaG9tZS1qb2JzIC5leGNlcnB0IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgzMzMzcmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmhvbWUtam9icyAuZXhjZXJwdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44ODg4OXJlbTsgfSB9XG4gIC5ob21lLWpvYnMgLnNsaWRlIGEge1xuICAgIGZvbnQtc2l6ZTogMC43Nzc3OHJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuaG9tZS1qb2JzIC5zbGlkZSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgzMzMzcmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmhvbWUtam9icyAuc2xpZGUgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44ODg4OXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmhvbWUtam9icyAuanMtaG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLypcbiAgICAgIC50aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTI1JTtcbiAgICAgIH1cbiAgICAgIC5leGNlcnB0IHtcbiAgICAgICAgQGluY2x1ZGUgcC1yZWcoKTtcbiAgICAgIH1cbiAgICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBwLXJlZygpO1xuICAgICAgfVxuICAgICAgKi8gfVxuICAgICAgLmhvbWUtam9icyAuanMtaG92ZXIgLnNsaWRlLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiA4cHg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2IzMDsgfSB9XG5cbi8qIGJvdHRvbSBiYW5uZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuNC4zXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBEZXBlbmRlbmNpZXNcbkBpbXBvcnQgJy4uL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIFNldHRpbmdzXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIFNhc3MgdXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyBHbG9iYWwgdmFyaWFibGVzIGFuZCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHh5LWdyaWQge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5cbiAgQGlmICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbiAgfVxuXG4gIEBpZiAkcHJvdG90eXBlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gIC8vIE1ha2UgYnJlYWtwb2ludCBzaXplIGF2YWlsYWJsZSBhcyBhIHZhcmlhYmxlXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gIH1cbiAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJG9sZC16Zi1zaXplICE9IG51bGwge1xuICAgIC8vIFJlc3RvcmUgdGhlIG9sZCBicmVha3BvaW50IHNpemVcbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkLXpmLXNpemU6IG51bGwgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kX2tleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZF9rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kX2tleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW5nIC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2luZy5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cblxuLy8gUGxhY2Vob2xkZXIgc2VsZWN0b3IgZm9yIG1lZGl1bS1hbmQtdXAgbW9kYWxzXG4vLyBQcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIHdoZW4gZGVmaW5pbmcgbXVsdGlwbGUgUmV2ZWFsIHNpemVzXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAlcmV2ZWFsLWNlbnRlcmVkIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1vZGFsIG92ZXJsYXkuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG92ZXJsYXkuXG5AbWl4aW4gcmV2ZWFsLW92ZXJsYXkoJGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcblxuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgQGV4dGVuZCAlcmV2ZWFsLWNlbnRlcmVkO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG4gIC8vIFtUT0RPXSBJcyB0aGlzIG5lY2Vzc2FyeT9cbiAgYm9keS5pcy1yZXZlYWwtb3BlbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBodG1sIGdldHMgdGhpcyBjbGFzcyBvbmx5IGluIGlPU1xuICBodG1sLmlzLXJldmVhbC1vcGVuLFxuICBodG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAvLyBPdmVybGF5XG4gIC5yZXZlYWwtb3ZlcmxheSB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW92ZXJsYXk7XG4gIH1cblxuICAvLyBNb2RhbCBjb250YWluZXJcbiAgLnJldmVhbCB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKCRyZXZlYWwtd2lkdGgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gUmVtb3ZlIHBhZGRpbmdcbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHRoZSBub3JtYWxpemUoKSBtaXhpbi5cbkBmdW5jdGlvbiBfbm9ybWFsaXplLWluY2x1ZGUoJHNlY3Rpb24sICRleGNsdWRlOiBudWxsKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGdsb2JhbCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRoaXMgZnVuY3Rpb24uXG4gIEBpZiBub3QgZ2xvYmFsX3ZhcmlhYmxlX2V4aXN0cyhfbm9ybWFsaXplLWluY2x1ZGUpIHtcbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiAoKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6ICgpICFnbG9iYWw7XG4gIH1cbiAgLy8gU2luY2Ugd2UgYXJlIGdpdmVuIDIgcGFyYW1ldGVycywgc2V0IHRoZSBnbG9iYWwgdmFyaWFibGVzLlxuICBAaWYgJGV4Y2x1ZGUgIT0gbnVsbCB7XG4gICAgJGluY2x1ZGU6ICRzZWN0aW9uO1xuICAgIC8vIFNhc3MgZG9lc24ndCBoYXZlIHN0YXRpYyB2YXJpYWJsZXMsIHNvIHRoZSB3b3JrLWFyb3VuZCBpcyB0byBzdHVmZiB0aGVzZVxuICAgIC8vIHZhbHVlcyBpbnRvIGdsb2JhbCB2YXJpYWJsZXMgc28gd2UgY2FuIGFjY2VzcyB0aGVtIGluIGZ1dHVyZSBjYWxscy5cbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiBpZih0eXBlLW9mKCRpbmNsdWRlKSA9PSAnbGlzdCcsICRpbmNsdWRlLCAoJGluY2x1ZGUpKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6IGlmKHR5cGUtb2YoJGV4Y2x1ZGUpID09ICdsaXN0JywgJGV4Y2x1ZGUsICgkZXhjbHVkZSkpICFnbG9iYWw7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHNlY3Rpb24gaXMgaW4gdGhlICRpbmNsdWRlIGxpc3QuXG4gIEBpZiBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCAkc2VjdGlvbikge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBJZiAkaW5jbHVkZSBpcyBzZXQgdG8gKGFsbCksIG1ha2Ugc3VyZSAkc2VjdGlvbiBpcyBub3QgaW4gJGV4Y2x1ZGUuXG4gIEBlbHNlIGlmIG5vdCBpbmRleCgkX25vcm1hbGl6ZS1leGNsdWRlLCAkc2VjdGlvbikgYW5kIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsIGFsbCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplKCRpbmNsdWRlOiAoYWxsKSwgJGV4Y2x1ZGU6ICgpKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGhlbHBlciBmdW5jdGlvbiBieSBwYXNzaW5nIGl0IHRoaXMgbWl4aW4ncyBwYXJhbWV0ZXJzLlxuICAkaW5pdDogX25vcm1hbGl6ZS1pbmNsdWRlKCRpbmNsdWRlLCAkZXhjbHVkZSk7XG5cbiAgLy8gSWYgd2UndmUgY3VzdG9taXplZCBhbnkgZm9udCB2YXJpYWJsZXMsIHdlJ2xsIG5lZWQgZXh0cmEgcHJvcGVydGllcy5cbiAgQGlmICRiYXNlLWZvbnQtc2l6ZSAhPSAxNnB4XG4gICAgb3IgJGJhc2UtbGluZS1oZWlnaHQgIT0gMjRweFxuICAgIG9yICRiYXNlLXVuaXQgIT0gJ2VtJ1xuICAgIG9yICRoMS1mb250LXNpemUgIT0gMiAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMi1mb250LXNpemUgIT0gMS41ICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMy1mb250LXNpemUgIT0gMS4xNyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNC1mb250LXNpemUgIT0gMSAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNS1mb250LXNpemUgIT0gMC44MyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNi1mb250LXNpemUgIT0gMC42NyAqICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShkb2N1bWVudCkge1xuICAgIC8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cblxuICAgIGh0bWwge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvLyBDb3JyZWN0IG9sZCBicm93c2VyIGJ1ZyB0aGF0IHByZXZlbnRlZCBhY2Nlc3NpYmxlIHJlc2l6aW5nIG9mIHRleHRcbiAgICAgICAgLy8gd2hlbiByb290IGZvbnQtc2l6ZSBpcyBzZXQgd2l0aCBweCBvciBlbS5cbiAgICAgICAgZm9udC1zaXplOiAoJGJhc2UtZm9udC1zaXplIC8gMTZweCkgKiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2VjdGlvbnMpIHtcbiAgICAvKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGJvZHkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXJ0aWNsZSxcbiAgICBhc2lkZSxcbiAgICBmb290ZXIsXG4gICAgaGVhZGVyLFxuICAgIG5hdixcbiAgICBzZWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgaDEge1xuICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDEtZm9udC1zaXplKTtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLyogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuICovXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgaDIge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDItZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDMtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDQtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDUtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDYge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDYtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGdyb3VwaW5nKSB7XG4gICAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuXG4gICAgICBkbCxcbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgKi9cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIG9sLFxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRkIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgZmlnY2FwdGlvbixcbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuXG4gICAgZmlndXJlIHtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMWVtICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5cbiAgICBociB7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICAgICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgbWFpbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIHAsXG4gICAgICBwcmUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBwcmUge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUobGlua3MpIHtcbiAgICAvKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuXG4gICAgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgYTphY3RpdmUsXG4gICAgYTpob3ZlciB7XG4gICAgICBvdXRsaW5lLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUodGV4dCkge1xuICAgIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYWJiclt0aXRsZV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBzYW1wIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5cbiAgICBkZm4ge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1hcmsge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3ViLFxuICAgIHN1cCB7XG4gICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cblxuICAgIHN1YiB7XG4gICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgfVxuXG4gICAgc3VwIHtcbiAgICAgIHRvcDogLTAuNWVtO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZW1iZWRkZWQpIHtcbiAgICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXVkaW8sXG4gICAgdmlkZW8ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5cbiAgICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIGltZyB7XG4gICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBzdmc6bm90KDpyb290KSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZm9ybXMpIHtcbiAgICAvKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBpbnB1dCxcbiAgICBvcHRncm91cCxcbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemUpICogMWVtOyAvKiAxICovXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gICAgICB9XG4gICAgICBtYXJnaW46IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbiB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgc2VsZWN0IHsgLyogMSAqL1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgW3R5cGU9XCJidXR0b25cIl0sXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuXG4gICAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqL1xuXG4gICAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5cbiAgICBpbnB1dCB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqL1xuXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAgICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIGxlZ2VuZCB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAzICovXG4gICAgICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5cbiAgICBwcm9ncmVzcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGludGVyYWN0aXZlKSB7XG4gICAgLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBkZXRhaWxzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3VtbWFyeSB7XG4gICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qXG4gICAgICAgICAqIDEuIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgICAqIDIuIFNldCBjb25zaXN0ZW50IHNwYWNlIGZvciB0aGUgbGlzdCBzdHlsZSBpbWFnZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApOyAvKiAxICovXG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50OyAvKiAyICovXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICAgKi9cblxuICAgICAgICBtZW51ICYsXG4gICAgICAgIG9sICYsXG4gICAgICAgIHVsICYge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2NyaXB0aW5nKSB7XG4gICAgLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgY2FudmFzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIHRlbXBsYXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShoaWRkZW4pIHtcbiAgICAvKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBWYXJpYWJsZXNcbi8vXG4vLyBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHZhbHVlcyBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZXMgaW4geW91ciBTYXNzXG4vLyBiZWZvcmUgaW1wb3J0aW5nIHRoZSBub3JtYWxpemUtc2NzcyBsaWJyYXJ5LlxuXG4vLyBUaGUgZm9udCBzaXplIHNldCBvbiB0aGUgcm9vdCBodG1sIGVsZW1lbnQuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNlIGxpbmUgaGVpZ2h0IGRldGVybWluZXMgdGhlIGJhc2ljIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtLlxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBsZW5ndGggdW5pdCBpbiB3aGljaCB0byBvdXRwdXQgdmVydGljYWwgcmh5dGhtIHZhbHVlcy5cbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxuJGJhc2UtdW5pdDogJ2VtJyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udCBmYW1pbHkuXG4kYmFzZS1mb250LWZhbWlseTogc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbnQgc2l6ZXMgZm9yIGgxLWg2LlxuJGgxLWZvbnQtc2l6ZTogMiAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IDEuNSAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOiAxLjE3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogMSAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IDAuODMgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAwLjY3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLyBUaGUgYW1vdW50IGxpc3RzIGFuZCBibG9ja3F1b3RlcyBhcmUgaW5kZW50ZWQuXG4kaW5kZW50LWFtb3VudDogNDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBjb250cm9scyB3aGV0aGVyIG5vcm1hbGl6ZS1zY3NzIHdpbGwgb3V0cHV0XG4vLyBmb250LXNpemVzLCBsaW5lLWhlaWdodHMgYW5kIGJsb2NrLWxldmVsIHRvcC9ib3R0b20gbWFyZ2lucyB0aGF0IGZvcm0gYSBiYXNpY1xuLy8gdmVydGljYWwgcmh5dGhtIG9uIHRoZSBwYWdlLCB3aGljaCBkaWZmZXJzIGZyb20gdGhlIG9yaWdpbmFsIE5vcm1hbGl6ZS5jc3MuXG4vLyBIb3dldmVyLCBjaGFuZ2luZyBhbnkgb2YgdGhlIHZhcmlhYmxlcyBhYm92ZSB3aWxsIGNhdXNlXG4vLyAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB0byBiZSBhdXRvbWF0aWNhbGx5IHNldCB0byB0cnVlLlxuJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IGZhbHNlICFkZWZhdWx0O1xuIiwiLy9cbi8vIFZlcnRpY2FsIFJoeXRobVxuLy9cbi8vIFRoaXMgaXMgdGhlIG1pbmltYWwgYW1vdW50IG9mIGNvZGUgbmVlZGVkIHRvIGNyZWF0ZSB2ZXJ0aWNhbCByaHl0aG0gaW4gb3VyXG4vLyBDU1MuIElmIHlvdSBhcmUgbG9va2luZyBmb3IgYSByb2J1c3Qgc29sdXRpb24sIGxvb2sgYXQgdGhlIGV4Y2VsbGVudCBUeXBleVxuLy8gbGlicmFyeS4gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vanB0YXJhbnRvL3R5cGV5XG5cbkBmdW5jdGlvbiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUsICR1bml0OiAkYmFzZS11bml0KSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gcHgge1xuICAgIEBlcnJvciBcIlRoZSBub3JtYWxpemUgdmVydGljYWwtcmh5dGhtIG1vZHVsZSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIEBpZiAkdW5pdCA9PSByZW0ge1xuICAgIEByZXR1cm4gKCR2YWx1ZSAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxcmVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09IGVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkcmVsYXRpdmUtdG8pICogMWVtO1xuICB9XG4gIEBlbHNlIHsgLy8gJHVuaXQgPT0gcHhcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxufVxuXG5AbWl4aW4gbm9ybWFsaXplLWZvbnQtc2l6ZSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3B4JyB7XG4gICAgQGVycm9yIFwibm9ybWFsaXplLWZvbnQtc2l6ZSgpIG9ubHkgc3VwcG9ydHMgcHggaW5wdXRzLiBUaGUgdHlwZXkgbGlicmFyeSBpcyBiZXR0ZXIuXCI7XG4gIH1cbiAgZm9udC1zaXplOiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1yaHl0aG0oJHByb3BlcnR5LCAkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICAkdmFsdWUtbGlzdDogJHZhbHVlcztcbiAgJHNlcDogc3BhY2U7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09ICdsaXN0JyB7XG4gICAgJHNlcDogbGlzdC1zZXBhcmF0b3IoJHZhbHVlcyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWx1ZS1saXN0OiBhcHBlbmQoKCksICR2YWx1ZXMpO1xuICB9XG5cbiAgJG5vcm1hbGl6ZWQtdmFsdWVzOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZS1saXN0IHtcbiAgICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgJHZhbHVlICE9IDAge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiBub3JtYWxpemUtcmh5dGhtKCRiYXNlLWxpbmUtaGVpZ2h0LCAkcmVsYXRpdmUtdG8pO1xuICAgIH1cbiAgICAkbm9ybWFsaXplZC12YWx1ZXM6IGFwcGVuZCgkbm9ybWFsaXplZC12YWx1ZXMsICR2YWx1ZSwgJHNlcCk7XG4gIH1cbiAgI3skcHJvcGVydHl9OiAkbm9ybWFsaXplZC12YWx1ZXM7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtbWFyZ2luKCR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obWFyZ2luLCAkdmFsdWVzLCAkcmVsYXRpdmUtdG8pO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRtaW4tbGluZS1wYWRkaW5nOiAycHgpIHtcbiAgJGxpbmVzOiBjZWlsKCRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCk7XG4gIC8vIElmIGxpbmVzIGFyZSBjcmFtcGVkIGluY2x1ZGUgc29tZSBleHRyYSBsZWFkaW5nLlxuICBAaWYgKCRsaW5lcyAqICRiYXNlLWxpbmUtaGVpZ2h0IC0gJGZvbnQtc2l6ZSkgPCAoJG1pbi1saW5lLXBhZGRpbmcgKiAyKSB7XG4gICAgJGxpbmVzOiAkbGluZXMgKyAxO1xuICB9XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obGluZS1oZWlnaHQsICRsaW5lcywgJGZvbnQtc2l6ZSk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtYXR0cmlidXRlLW5lc3RpbmcsIGZvcmNlLXBzZXVkby1uZXN0aW5nLCBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIGN1cnNvcidzIHZhbHVlLCBgYXV0b2AgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8vIEdsb2JhbCB0b2xlcmFuY2UgZm9yIGNvbG9yIHBpY2sgY29udHJhc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG4kcHJpbWFyeS1jb2xvcjogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJHNlY29uZGFyeS1jb2xvcjogZ2V0LWNvbG9yKHNlY29uZGFyeSk7XG4kc3VjY2Vzcy1jb2xvcjogZ2V0LWNvbG9yKHN1Y2Nlc3MpO1xuJHdhcm5pbmctY29sb3I6IGdldC1jb2xvcih3YXJuaW5nKTtcbiRhbGVydC1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIC16Zi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBMb2FkcyBub3JtYWxpemUuY3NzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC16Zi1ub3JtYWxpemUge1xuICBAaW5jbHVkZSBub3JtYWxpemUoKTtcbn1cbiIsIi8vICBGb3VuZGF0aW9uUHJlc3Mgc2V0dGluZ3MuXG4vLyAgQmFzZWQgb24gRm91bmRhdGlvbiBmb3IgU2l0ZXMgdjYuNC4zXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XG4vL1xuLy8gICAxLiBHbG9iYWxcbi8vICAgMi4gQnJlYWtwb2ludHNcbi8vICAgMy4gVGhlIEdyaWRcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gICA2LiBBYmlkZVxuLy8gICA3LiBBY2NvcmRpb25cbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcbi8vICAgOS4gQmFkZ2Vcbi8vICAxMC4gQnJlYWRjcnVtYnNcbi8vICAxMS4gQnV0dG9uXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxuLy8gIDEzLiBDYWxsb3V0XG4vLyAgMTQuIENhcmRcbi8vICAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAgMTYuIERyaWxsZG93blxuLy8gIDE3LiBEcm9wZG93blxuLy8gIDE4LiBEcm9wZG93biBNZW51XG4vLyAgMTkuIEZsZXhib3ggVXRpbGl0aWVzXG4vLyAgMjAuIEZvcm1zXG4vLyAgMjEuIExhYmVsXG4vLyAgMjIuIE1lZGlhIE9iamVjdFxuLy8gIDIzLiBNZW51XG4vLyAgMjQuIE1ldGVyXG4vLyAgMjUuIE9mZi1jYW52YXNcbi8vICAyNi4gT3JiaXRcbi8vICAyNy4gUGFnaW5hdGlvblxuLy8gIDI4LiBQcm9ncmVzcyBCYXJcbi8vICAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAgMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAgMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gIDMyLiBQcm90b3R5cGUgQm9yZGVyZWRcbi8vICAzMy4gUHJvdG90eXBlIERpc3BsYXlcbi8vICAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXG4vLyAgMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vICAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vICAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxuLy8gIDQwLiBQcm90b3R5cGUgU2hhZG93XG4vLyAgNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vICA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcbi8vICA0My4gUHJvdG90eXBlIFRleHQtRGVjb3JhdGlvblxuLy8gIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxuLy8gIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vICA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gIDQ3LiBSZXZlYWxcbi8vICA0OC4gU2xpZGVyXG4vLyAgNDkuIFN3aXRjaFxuLy8gIDUwLiBUYWJsZVxuLy8gIDUxLiBUYWJzXG4vLyAgNTIuIFRodW1ibmFpbFxuLy8gIDUzLiBUaXRsZSBCYXJcbi8vICA1NC4gVG9vbHRpcFxuLy8gIDU1LiBUb3AgQmFyXG4vLyAgNTYuIFh5IEdyaWRcblxuQGltcG9ydCAndXRpbC91dGlsJztcbkBpbXBvcnQgJ2dsb2JhbC9jb2xvcnMnO1xuQGltcG9ydCAnZ2xvYmFsL2ZvbnRzJztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuLy8kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTtcbiRnbG9iYWwtZm9udC1zaXplOiAxOHB4O1xuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNTtcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogJHRleHQtbGluay1vcmFuZ2UsXG4gIHNlY29uZGFyeTogJGRvd2wtZ3JleSxcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pO1xuJGxpZ2h0LWdyYXk6ICNlNmU2ZTY7XG4kbWVkaXVtLWdyYXk6ICNjYWNhY2E7XG4kZGFyay1ncmF5OiAjOGE4YThhO1xuJGRhcmstbmF2LWNvbG9yOiAjMkMzODQwO1xuLy8kYmxhY2s6ICMwYTBhMGE7XG4vLyR3aGl0ZTogI2ZlZmVmZTtcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbi8vJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xuJGJvZHktZm9udC1jb2xvcjogJGRhcmstbWFpbi10eXBlO1xuLy8kYm9keS1mb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4kYm9keS1mb250LWZhbWlseTogJGJvZHktZm9udDtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtO1xuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWw7XG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkO1xuJGdsb2JhbC1yYWRpdXM6IDA7XG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW07XG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcbiRnbG9iYWwtZmxleGJveDogZmFsc2U7XG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2U7XG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG87XG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwO1xuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlO1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pO1xuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMzBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKTtcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xuJGdyaWQtY29sdW1uLWFsaWFzOiAnY29sdW1ucyc7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkaGRyLWZvbnQ7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE1KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE1KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAzNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyNiksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNiksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIGxhcmdlOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0MiksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAzNCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyMSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxOCksXG4gICksXG4pO1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJHNtYWxsLWZvbnQtc2l6ZTogODAlO1xuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKTtcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcbi8vJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kYmxvY2txdW90ZS1jb2xvcjogIzY2Njtcbi8vJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDAgMCAwIDApO1xuLy8kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IG5vbmU7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJztcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMDtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiBub25lO1xuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDAgMCAzMHB4IDA7XG5cbi8vIDguIEFjY29yZGlvbiBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9ubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICR3aGl0ZTtcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbDtcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbDtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHg7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJhZGdlLWNvbG9yOiAkd2hpdGU7XG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2s7XG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XG5cbi8vIDEwLiBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtO1xuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06ICcvJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cbi8vIDExLiBCdXR0b25cbi8vIC0tLS0tLS0tLS1cblxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdDtcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbTtcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRidXR0b24tZmlsbDogc29saWQ7XG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjaztcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4O1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKTtcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCU7XG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCU7XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNjtcbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZTtcblxuLy8gMTMuIENhbGxvdXRcbi8vIC0tLS0tLS0tLS0tXG5cbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xuJGNhbGxvdXQtcGFkZGluZzogMXJlbTtcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJTtcblxuLy8gMTQuIENhcmRcbi8vIC0tLS0tLS0tXG5cbiRjYXJkLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYXJkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kY2FyZC1zaGFkb3c6IG5vbmU7XG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRjYXJkLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wO1xuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXG4gIHNtYWxsOiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICBzbWFsbDogMC4zM2VtLFxuICBtZWRpdW06IDAuNXJlbSxcbik7XG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XG5cbi8vIDE2LiBEcmlsbGRvd25cbi8vIC0tLS0tLS0tLS0tLS1cblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHg7XG5cbi8vIDE3LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbTtcbi8vJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi13aWR0aDogMzYwcHg7XG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pO1xuXG4vLyAxOC4gRHJvcGRvd24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWU7XG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHg7XG4kZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc6IDEuNXJlbTtcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweDtcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDA7XG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudDtcblxuLy8gMTkuIEZsZXhib3ggVXRpbGl0aWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2O1xuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZTtcblxuLy8gMjAuIEZvcm1zXG4vLyAtLS0tLS0tLS1cblxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCk7XG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKTtcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKTtcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KTtcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrO1xuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYztcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbTtcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2s7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44O1xuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5O1xuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGlucHV0LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKTtcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5O1xuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlO1xuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjEuIExhYmVsXG4vLyAtLS0tLS0tLS1cblxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGxhYmVsLWNvbG9yOiAkd2hpdGU7XG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2s7XG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbTtcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMi4gTWVkaWEgT2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlO1xuXG4vLyAyMy4gTWVudVxuLy8gLS0tLS0tLS1cblxuJG1lbnUtbWFyZ2luOiAwO1xuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW47XG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW07XG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlO1xuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZTtcblxuLy8gMjQuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNS4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pO1xuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pO1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkZGFyay1uYXYtY29sb3I7XG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNyk7XG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4O1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExO1xuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTI7XG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMztcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTI7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZTtcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCc7XG5cbi8vIDI2LiBPcmJpdFxuLy8gLS0tLS0tLS0tXG5cbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheTtcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcblxuLy8gMjcuIFBhZ2luYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApO1xuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGU7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtcbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlO1xuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xuXG4vLyAyOC4gUHJvZ3Jlc3MgQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW07XG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDI5LiBQcm90b3R5cGUgQXJyb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zOiAoXG4gIGRvd24sXG4gIHVwLFxuICByaWdodCxcbiAgbGVmdFxuKTtcbiRwcm90b3R5cGUtYXJyb3ctc2l6ZTogMC40Mzc1cmVtO1xuJHByb3RvdHlwZS1hcnJvdy1jb2xvcjogJGJsYWNrO1xuXG4vLyAzMC4gUHJvdG90eXBlIEJvcmRlci1Cb3hcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ib3gtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuXG4vLyAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYm9yZGVyLW5vbmUtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuXG4vLyAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYm9yZGVyZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpO1xuJHByb3RvdHlwZS1ib3JkZXItdHlwZTogc29saWQ7XG4kcHJvdG90eXBlLWJvcmRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAzMy4gUHJvdG90eXBlIERpc3BsYXlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWRpc3BsYXktYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1kaXNwbGF5OiAoXG4gIGlubGluZSxcbiAgaW5saW5lLWJsb2NrLFxuICBibG9jayxcbiAgdGFibGUsXG4gIHRhYmxlLWNlbGxcbik7XG5cbi8vIDM0LiBQcm90b3R5cGUgRm9udC1TdHlsaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nOiByZW0tY2FsYyg0KTtcbiRwcm90b3R5cGUtZm9udC1ub3JtYWw6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRwcm90b3R5cGUtZm9udC1ib2xkOiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQ6IChcbiAgZGlzYyxcbiAgY2lyY2xlLFxuICBzcXVhcmVcbik7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZDogKFxuICBkZWNpbWFsLFxuICBsb3dlci1hbHBoYSxcbiAgbG93ZXItbGF0aW4sXG4gIGxvd2VyLXJvbWFuLFxuICB1cHBlci1hbHBoYSxcbiAgdXBwZXItbGF0aW4sXG4gIHVwcGVyLXJvbWFuXG4pO1xuXG4vLyAzNi4gUHJvdG90eXBlIE92ZXJmbG93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1vdmVyZmxvdzogKFxuICB2aXNpYmxlLFxuICBoaWRkZW4sXG4gIHNjcm9sbFxuKTtcblxuLy8gMzcuIFByb3RvdHlwZSBQb3NpdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtcG9zaXRpb246IChcbiAgc3RhdGljLFxuICByZWxhdGl2ZSxcbiAgYWJzb2x1dGUsXG4gIGZpeGVkXG4pO1xuJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4OiA5NzU7XG5cbi8vIDM4LiBQcm90b3R5cGUgUm91bmRlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpO1xuXG4vLyAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ246IGNlbnRlcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodDogcmVtLWNhbGMoMik7XG4kcHJvdG90eXBlLXNlcGFyYXRvci13aWR0aDogM3JlbTtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG5cbi8vIDQwLiBQcm90b3R5cGUgU2hhZG93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNoYWRvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjE2KSxcbiAgICAgICAgICAgICAgICAgICAgICAgMCAycHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKTtcblxuLy8gNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2l6aW5nOiAoXG4gIHdpZHRoLFxuICBoZWlnaHRcbik7XG4kcHJvdG90eXBlLXNpemVzOiAoXG4gIDI1OiAyNSUsXG4gIDUwOiA1MCUsXG4gIDc1OiA3NSUsXG4gIDEwMDogMTAwJVxuKTtcblxuLy8gNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc3BhY2Vycy1jb3VudDogMztcblxuLy8gNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZGVjb3JhdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pO1xuXG4vLyA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjogKFxuICBsb3dlcmNhc2UsXG4gIHVwcGVyY2FzZSxcbiAgY2FwaXRhbGl6ZVxuKTtcblxuLy8gNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4vLyA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbik7XG5cbi8vIDQ3LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA2MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KTtcblxuLy8gNDguIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDQ5LiBTd2l0Y2hcbi8vIC0tLS0tLS0tLS1cblxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcblxuLy8gNTAuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XG4kdGFibGUtaG92ZXItc2NhbGU6IDIlO1xuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlO1xuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpO1xuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcbiR0YWJsZS1zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDUxLiBUYWJzXG4vLyAtLS0tLS0tLVxuXG4kdGFiLW1hcmdpbjogMDtcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcbiR0YWItYWN0aXZlLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4kdGFiLWV4cGFuZC1tYXg6IDY7XG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXk7XG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gNTIuIFRodW1ibmFpbFxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZTtcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSk7XG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDUzLiBUaXRsZSBCYXJcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRkYXJrLW5hdi1jb2xvcjtcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbTtcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkO1xuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXk7XG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuXG4vLyA1NC4gVG9vbHRpcFxuLy8gLS0tLS0tLS0tLS1cblxuJGhhcy10aXAtY3Vyc29yOiBoZWxwO1xuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXk7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlO1xuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcbiR0b29sdGlwLW1heC13aWR0aDogMTByZW07XG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW07XG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NjtcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDU1LiBUb3AgQmFyXG4vLyAtLS0tLS0tLS0tLVxuXG4kdG9wYmFyLXBhZGRpbmc6IDA7XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRkYXJrLW5hdi1jb2xvcjtcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1Ni4gWHkgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJHh5LWdyaWQ6IGZhbHNlO1xuJGdyaWQtY29udGFpbmVyOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uczogMTI7XG4kZ3JpZC1tYXJnaW4tZ3V0dGVyczogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4XG4pO1xuJGdyaWQtcGFkZGluZy1ndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycztcbiRncmlkLWNvbnRhaW5lci1wYWRkaW5nOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItbWF4OiAkZ2xvYmFsLXdpZHRoO1xuJHh5LWJsb2NrLWdyaWQtbWF4OiA4O1xuIiwiLy8gbmV1dHJhbHNcbiR3aGl0ZTojZmZmO1xuJGJsYWNrOiMwMDA7XG4kZGFyay1iZy1ibG9jazojMjIyMjIyO1xuJGRhcmstbWFpbi10eXBlOiMzMzMzMzM7XG5cbiRkb3dsLWdyZXk6I2E3YTlhYztcbiRkYXJrLWdyZXktMTojNzc3Nzc3O1xuJGRhcmstZ3JleS0yOiM2NjY2NjY7XG5cbiRtaWQtZ3JleS0yOiM3Nzc3Nzc7XG5cbiRsaWdodC1ncmV5LTE6I2ZhZmFmYTtcbiRsaWdodC1ncmV5LTI6I2VmZWZlZjtcbiRsaWdodC1ncmV5LTM6I2VlZTtcblxuLy8gb3Jhbmdlc1xuJHRleHQtbGluay1vcmFuZ2U6I2QwNTUxMTtcbiRkb3dsLW9yYW5nZTojZmY3NzMzO1xuJGJ1dHRvbi1vcmFuZ2U6I2VlNjYyMjtcbiRvcmFuZ2UtMTojZmY4ZDU1O1xuJGRhcmstb3JhbmdlLTE6I2NjNDQwMDtcblxuLy8gd2FybVxuJGRvd2wtcnVzdDojZTE1YjJkO1xuJGRhcmstcmVkOiNiMzA7XG4kZG93bC1icm93bjojYTA0ZjI0O1xuXG4vLyBjcmVhbVxuJGNyZWFtLTE6I2Y2ZjBlYjtcbiRjcmVhbS0zOiNkZGQzYzk7XG4kY3JlYW0tMjojZjdmMWVjO1xuJGNyZWFtLTQ6I2YyZGFjNztcbiIsIi8vIGZvbnQgZmFtaWxpZXNcbiRib2R5LWZvbnQ6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiRoZHItZm9udDogJ1NhaXJhJywgc2Fucy1zZXJpZjtcbiRsYWJlbC1mb250OiAnUm9ib3RvIENvbmRlbnNlZCcsIHNhbnMtc2VyaWY7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vIFxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgY2xpcC1wYXRoOiBub25lO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRhdXRvLWluc2VydC1icmVha3BvaW50cyBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBpdGVyYXRlIG92ZXIgYnJlYWtwb2ludHMgd2l0aG91dCBkb2luZyB0aGUgbWVkaWEgcXVlcnkgaXRzZWxmLiBVc2VmdWwgZm9yIG1vcmUgY29tcGxleCBtZWRpYSBxdWVyeSBnZW5lcmF0aW9uIGFzIGluIHRoZSBtYXJnaW4gZ3JpZC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogdHJ1ZSwgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlKSB7XG4gICRsaXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbGlzdDogc2wtcmVtb3ZlKCRsaXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICBAZWFjaCAkbmFtZSBpbiAkbGlzdCB7XG4gICAgJC16Zi1zaXplOiAkbmFtZSAhZ2xvYmFsO1xuXG4gICAgQGlmICRhdXRvLWluc2VydC1icmVha3BvaW50cyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJG5hbWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gT3V0cHV0cyBDU1MgY2xhc3NlcyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gZm91bmRhdGlvbi1ncmlkKFxuICAkcm93OiAncm93JyxcbiAgJGNvbHVtbjogJ2NvbHVtbicsXG4gICRjb2x1bW4tcm93OiAnY29sdW1uLXJvdycsXG4gICRndXR0ZXI6ICdndXR0ZXInLFxuICAkcHVzaDogJ3B1c2gnLFxuICAkcHVsbDogJ3B1bGwnLFxuICAkY2VudGVyOiAnY2VudGVyZWQnLFxuICAkdW5jZW50ZXI6ICd1bmNlbnRlcmVkJyxcbiAgJGNvbGxhcHNlOiAnY29sbGFwc2UnLFxuICAkdW5jb2xsYXBzZTogJ3VuY29sbGFwc2UnLFxuICAkb2Zmc2V0OiAnb2Zmc2V0JyxcbiAgJGVuZDogJ2VuZCcsXG4gICRleHBhbmRlZDogJ2V4cGFuZGVkJyxcbiAgJGJsb2NrOiAnYmxvY2snXG4pIHtcbiAgLy8gUm93XG4gIC4jeyRyb3d9IHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdztcblxuICAgIC8vIENvbGxhcHNpbmdcbiAgICAmLiN7JGNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3JpZC1jb2x1bW4tZ3V0dGVyKTtcblxuICAgICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIChmdWxsLXdpZHRoKSByb3dcbiAgICAmLiN7JGV4cGFuZGVkfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguI3skZXhwYW5kZWR9KSAuI3skcm93fSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgQGlmIHR5cGUtb2YoJGdyaWQtY29sdW1uLWd1dHRlcikgPT0gJ21hcCcge1xuICAgICAgLy8gU3RhdGljICh1bnJlc3BvbnNpdmUpIHJvdyBndXR0ZXJzXG4gICAgICAvL1xuICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHtcbiAgICAgICAgJi4jeyRndXR0ZXJ9LSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICA+IC4jeyRjb2x1bW59IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuI3skY29sdW1ufSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2w7XG5cbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICAgJi4jeyRlbmR9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtZW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC4jeyRyb3d9IC4jeyRjb2x1bW59LiN7JHJvd30uI3skcm93fSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgLy8gQ29sdW1uIHdpZHRoXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtc2l6ZSgkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xuICAgICAgQGlmICRpIDwgJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKCRpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVsbH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygtJGkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skb2Zmc2V0fS0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLW9mZigkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWxheW91dCgkaSwgJy4jeyRjb2x1bW59Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skZXhwYW5kZWR9LiN7JHJvd30gLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0uI3skcm93fSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LSN7JHVuY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cblxuICAgIC8vIFBvc2l0aW9uaW5nXG4gICAgLiN7JC16Zi1zaXplfS0jeyRjZW50ZXJ9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcyhjZW50ZXIpO1xuICAgIH1cblxuICAgIC8vIEd1dHRlciBhZGp1c3RtZW50XG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNlbnRlcn0sXG4gICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0wLFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVsbH0tMCB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC11bnBvcztcbiAgICB9XG4gIH1cblxuICAvLyBCbG9jayBncmlkIGNvbHVtbnNcbiAgLiN7JGNvbHVtbn0tI3skYmxvY2t9IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICBAaWYgJGNvbHVtbiA9PSAnY29sdW1uJyBhbmQgaGFzLXZhbHVlKCRncmlkLWNvbHVtbi1hbGlhcykge1xuICAgIC4jeyRncmlkLWNvbHVtbi1hbGlhc30ge1xuICAgICAgLy8gc2Fzcy1saW50OmRpc2FibGUtYmxvY2sgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG4gICAgICBAZXh0ZW5kIC5jb2x1bW47XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjZjogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi1zaXplKSkgLyAyICogLTE7XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcbiAgQGlmICRzaXplID09IGV4cGFuZCB7XG4gICAgJHNpemU6IG5vbmU7XG4gIH1cblxuICBtYXgtd2lkdGg6ICRzaXplO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIC8vIFVzaW5nIHJlbSBhcyBiYXNlIGFsbG93cyBjb3JyZWN0IHNjYWxpbmdcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGVtIGludG8gcmVtIGlmIHNvbWVvbmUgaGFuZHMgb3ZlciAnZW0nc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlID09IDByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCwgcGVyY2VudGFnZSwgcmVtIG9yIGVtIHZhbHVlIHRvIGEgdW5pdGxlc3MgdmFsdWUgYmFzZWQgb24gYSBnaXZlbiBmb250IHNpemUuIElkZWFsIGZvciB3b3JraW5nIG91dCB1bml0bGVzcyBsaW5lIGhlaWdodHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGZvbnQgc2l6ZSB0byB1c2UgdG8gd29yayBvdXQgdGhlIGxpbmUgaGVpZ2h0IC0gZGVmYXVsdHMgdG8gJGdsb2JhbC1mb250LXNpemVcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbkBmdW5jdGlvbiB1bml0bGVzcy1jYWxjKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBGaXJzdCwgbGV0cyBjb252ZXJ0IG91ciAkYmFzZSB0byBwaXhlbHNcblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gTm93IGxldHMgY29udmVydCBvdXIgdmFsdWUgdG8gcGl4ZWxzIHRvb1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICclJyB7XG4gICAgJHZhbHVlOiAoJHZhbHVlIC8gMTAwJSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICAvLyAncHgnXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIC8vIGFzc3VtZSB0aGF0IGxpbmUtaGVpZ2h0cyBncmVhdGVybiB0aGVuIDEwIGFyZSBtZWFudCB0byBiZSBhYnNvbHV0ZSBpbiAncHgnXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxuLy8vICAgU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBndXR0ZXIgcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRndXR0ZXJzIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRndXR0ZXIsICRndXR0ZXJzKSB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigwKTtcbn1cblxuLy8vIFVuLWNvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlLWFkZGluZyB0aGUgcGFkZGluZy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxuQG1peGluIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbHVtbi1ndXR0ZXIoKS4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXIpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1ndXR0ZXJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXIsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bmNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bmNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGdyaWQtY29sLWd1dHRlcigpLiBncmlkLWNvbC11bmNvbGxhcHNlKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcik7XG59XG5cbi8vLyBTZXRzIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zIHRvIG1hdGNoIGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxuLy8vICAgVGhlIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkbWFyZ2lucyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcmdpbnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcbiAgJG1hcmdpbjogYXV0byxcbiAgJG1hcmdpbnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkbWFyZ2luLCAkbWFyZ2lucykge1xuICAgICRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgd2lkdGggb2YgYSBncmlkIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR3aWR0aCBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIHRvIG1ha2UgdGhlIGNvbHVtbi4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLXNpemUoXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICB3aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tc2l6ZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tc2l6ZVxuQG1peGluIGdyaWQtY29sLXNpemUoXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGJhc2VkIG9uIGEgbnVtYmVyIG9mIGZhY3RvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkY29sdW1uc1xuLy8vICAgV2lkdGggb2YgdGhlIGNvbHVtbi4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgcGVyY2VudGFnZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGNvbHVtbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgc2luZ2xlIGRpZ2l0IHdpbGwgbWFrZSB0aGUgY29sdW1uIHNwYW4gdGhhdCBudW1iZXIgb2YgY29sdW1ucyB3aWRlLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2x1bW4gY291bnQgb2YgdGhlIHBhcmVudCByb3cuXG4vLy8gICAtIEEgbGlzdCBvZiB0aGUgZm9ybWF0IFwieCBvZiB5XCIgKHdpdGhvdXQgcXVvdGVzKSB3aWxsIG1ha2UgYSBjb2x1bW4gdGhhdCBpcyAqeCogY29sdW1ucyB3aWRlLCBhc3N1bWluZyAqeSogdG90YWwgY29sdW1ucyBmb3IgdGhlIHBhcmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgY2FsY3VsYXRlZCBwZXJjZW50YWdlIHZhbHVlLlxuQGZ1bmN0aW9uIGdyaWQtY29sdW1uKCRjb2x1bW5zKSB7XG4gICR3aWR0aDogMCU7XG5cbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIGFuZCBjb2x1bW4gY291bnRzXG4gIEBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJGNvbHVtbnMpID09ICclJyB7XG4gICAgICAkd2lkdGg6ICRjb2x1bW5zO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkY29sdW1ucyA8IDEge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBQYXJzaW5nIFwibiBvZiBuXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2UgaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRjb2x1bW5zKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgdGhlIGZvcm1hdCBcIm4gb2YgblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZShudGgoJGNvbHVtbnMsIDEpIC8gbnRoKCRjb2x1bW5zLCAzKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIuJztcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcbiAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gcm93LiBUaGlzIGlzIHRoZSBlcXVpdmFsZW50IG9mIGFkZGluZyBgLnJvd2AgYW5kIGAuY29sdW1uYCB0byB0aGUgc2FtZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gV2lkdGggb2YgdGhlIGd1dHRlcnMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGNvbHVtbiByb3cuIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtcm93O1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gICYsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQGZ1bmN0aW9uIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBtaXhpbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcm93KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1yb3dcbkBtaXhpbiBncmlkLWNvbC1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXJzKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFJlcG9zaXRpb24gYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkcG9zaXRpb24gLSBEaXJlY3Rpb24gYW5kIGFtb3VudCB0byBtb3ZlLiBUaGUgY29sdW1uIHdpbGwgbW92ZSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBjb3VudCBzcGVjaWZpZWQuIEEgcG9zaXRpdmUgbnVtYmVyIHdpbGwgcHVzaCB0aGUgY29sdW1uIHRvIHRoZSByaWdodCwgd2hpbGUgYSBuZWdhdGl2ZSBudW1iZXIgd2lsbCBwdWxsIGl0IHRvIHRoZSBsZWZ0LiBTZXQgdG8gY2VudGVyIHRvIGNlbnRlciB0aGUgY29sdW1uLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xuICAgICYsICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBvciBjZW50ZXIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgYnkgYCRuYCBjb2x1bW5zLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gV2lkdGggdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdyaWQtY29sdW1uKCRuKTtcbn1cblxuLy8vIERpc2FibGUgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGxhc3QgY29sdW1uIGluIGEgcm93IGFsaWduaW5nIHRvIHRoZSBvcHBvc2l0ZSBlZGdlLlxuQG1peGluIGdyaWQtY29sdW1uLWVuZCB7XG4gIC8vIFRoaXMgZXh0cmEgc3BlY2lmaWNpdHkgaXMgcmVxdWlyZWQgZm9yIHRoZSBwcm9wZXJ0eSB0byBiZSBhcHBsaWVkXG4gICY6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC1wb3MoJHBvc2l0aW9uKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bnBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bnBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtdW5wb3Mge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bnBvc2l0aW9uO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tb2Zmc2V0KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1vZmZzZXRcbkBtaXhpbiBncmlkLWNvbC1vZmYoJG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWVuZCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZW5kXG5AbWl4aW4gZ3JpZC1jb2wtZW5kIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZW5kO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY29sdW1uJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRndXR0ZXJcbi8vLyAgIFRoZSBndXR0ZXIgdG8gYXBwbHkgdG8gY2hpbGQgZWxlbWVudHMuIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHdpbGwgdXNlIHRoZSB2YWx1ZXMgaW4gdGhlICRncmlkLWNvbHVtbi1ndXR0ZXIgbWFwLCBpbmNsdWRpbmcgYnJlYWtwb2ludCBzaXplcy5cbi8vLyAgIC0gQSBmaXhlZCBudW1lcmljIHZhbHVlIHdpbGwgYXBwbHkgdGhpcyBndXR0ZXIgdG8gYWxsIGJyZWFrcG9pbnRzLlxuQG1peGluIGdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbicsXG4gICRndXR0ZXI6IG51bGxcbikge1xuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgLy8gSWYgYSAkZ3V0dGVyIHZhbHVlIGlzIHBhc3NlZFxuICAgIEBpZigkZ3V0dGVyKSB7XG4gICAgICAvLyBHdXR0ZXJzXG4gICAgICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XG4gICAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgLyAyO1xuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkZ3V0dGVyKSA+IDAge1xuICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKCN7JG59bisxKSB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXh0cmEgQ1NTIHRvIGJsb2NrIGdyaWQgY2hpbGRyZW4gc28gdGhlIGxhc3QgaXRlbXMgaW4gdGhlIHJvdyBjZW50ZXIgYXV0b21hdGljYWxseS4gQXBwbHkgdGhpcyB0byB0aGUgY29sdW1ucywgbm90IHRoZSByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgaXRlbXMgdGhhdCBhcHBlYXIgaW4gZWFjaCByb3cuXG5AbWl4aW4gZ3JpZC1sYXlvdXQtY2VudGVyLWxhc3QoJG4pIHtcbiAgQGZvciAkaSBmcm9tIDEgdG8gJG4ge1xuICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XG4vLyB3aGVuICRoZWFkZXItc2l6ZXMgaXMgZGVwcmVjaWF0ZWQsICRoZWFkZXItc3R5bGVzIG5lZWRzIHRvIGdldCAhZGVmYXVsdCB2YWx1ZXMgbGlrZSBzZXR0aW5ncy5zY3NzXG5AZnVuY3Rpb24gYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcykge1xuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xuICAkaGVhZGVyLXN0eWxlczogKCk7XG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICAkaGVhZGVyLW1hcDogKCk7XG4gICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAkaGVhZGVyLW1hcDogbWFwLW1lcmdlKCRoZWFkZXItbWFwLCAoJGhlYWRlcjogKCdmb250LXNpemUnOiAkZm9udC1zaXplKSkpOyAgXG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSwgLmgxLFxuICBoMiwgLmgyLFxuICBoMywgLmgzLFxuICBoNCwgLmg0LFxuICBoNSwgLmg1LFxuICBoNiwgLmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2l0YXRpb25zXG4gIGNpdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBcbiAgLy8gQ29kZVxuICBjb2RlIHtcbiAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuXG4gICAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcbi8vLy9cblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRvcCBtYXJnaW4gZm9yIHN1YmhoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWhlbHBlcnMge1xuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxuICAvLyA8aGVhZGVyPlxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XG4gIC8vIDwvaGVhZGVyPlxuICAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgdWwsIG9sIHtcbiAgICAvLyBVc2UgdG8gcmVtb3ZlIG51bWJlcnMgZnJvbSBvcmRlcmVkIGxpc3QgJiBidWxsZXRzIGZyb20gdW5vcmRlcmVkIGxpc3RcbiAgICAmLm5vLWJ1bGxldCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBAaWYgJHByaW50LWhyZWZzIHtcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxuICAgIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gQHR5cGUgRm9udFxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuXG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLFxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdIHtcbiAgICAmLFxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQsIHJlc2V0aW5nIHRoZSBjdXJzb3IsIGFuZCBkaXNhYmxpbmcgcG9pbnRlciBldmVudHMuXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdHlsZVxuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZCgkY29sb3IsIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG9sbG93IHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgJi5ob2xsb3cge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGVhciBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gY2xlYXIge1xuICAgICAgJi5jbGVhciB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG5cbiAgICAgICAgICAgICYsICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgJixcbiAgICAgICAgICAgICAgJi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG4gIGEuYnV0dG9uIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZm9jdXNlZCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBmb2N1c2VkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgdG8gdXNlIHdoZW4gaG92ZXJpbmcgb3ZlciBhIGRpc2FibGVkIHRleHQgaW5wdXQuXG4vLy8gQHR5cGUgQ3Vyc29yXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBmb3JtIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuXG4gICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmW2Zvcl0ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXRzIGluc2lkZSBsYWJlbHNcbiAgbGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbiAgbGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxuICBbdHlwZT0nZmlsZSddIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGZvcm0gbGFiZWxzLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIHNwYWNlIGJldHdlZW4gdGhlIGxhYmVsIGFuZCBpdHMgaW5wdXQgZmllbGQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAkZm9ybS1zcGFjaW5nICogMS41KTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzKTtcbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG5cbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciAoXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmRcbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAmW2Rpc2FibGVkXSB7XG4gICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDEzJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvbi1tZW51XG4vLy8vXG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgYWNjb3JkaW9uIG1lbnVzIGhhdmUgdGhlIGRlZmF1bHQgYXJyb3cgc3R5bGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBib3JkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTGlzdFxuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSB0b2dnbGUgYmFja2dyb3VuZCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIGhlaWdodC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgIH1cbiAgfVxuICAmLmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxcmVtO1xuICB9XG4gICYuYWxpZ24tcmlnaHQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG59XG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG5cbiAgLmFjY29yZGlvbi1tZW51IHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmc7XG4gICAgfVxuICAgIFxuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudSBhIHtcbiAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbiwgcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1hcnJvd3Mge1xuICAgICAgQGluY2x1ZGUgemYtYWNjb3JkaW9uLW1lbnUtbGVmdC1yaWdodC1hcnJvd3M7XG5cbiAgICAgIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gYTo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1hY2NvcmRpb24tc3VibWVudSBsaSB7XG4gICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuaGFzLXN1Ym1lbnUtdG9nZ2xlID4gYSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICB9XG5cbiAgLy8gU3VibWVudSB0b2dnbGVcbiAgLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgd2lkdGg6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICAgIGhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0O1xuXG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI7XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aGUgYXJyb3cgdG8gdGhlIHRvZ2dsZVxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcblxuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJvdGF0ZSB0aGUgYXJyb3cgd2hlbiBtZW51IGlzIG9wZW5cbiAgLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICB9XG5cbiAgLnN1Ym1lbnUtdG9nZ2xlLXRleHQge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBpdGVtcyBpbiBhIHBpbGwgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gbWFyZ2luIGZvciBpdGVtcyBpbiBhIHNpbXBsZSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbiBob3ZlcmVkIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgc3RhdGUuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGBhY3RpdmVgIHdpdGggYGlzLWFjdGl2ZWAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBhY3RpdmVgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgY2VudGVyZWQuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGAubWVudS1jZW50ZXJlZCA+IC5tZW51YCB3aXRoIGAubWVudS5hbGlnbi1jZW50ZXJgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNpbmcgYGljb24tKmAgY2xhc3NlcyB3aXRob3V0IGAuaWNvbnNgIGNsYXNzZXNcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cblxuICBhLFxuICAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbXMtcGFkZGluZztcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiBtZW51IGl0ZW1zLlxuQG1peGluIG1lbnUtYWxpZ24oJGFsaWdubWVudCkge1xuICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gY2VudGVyIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBUaGlzIGVmZmVjdHMgdGhlIHNpZGUgb2YgdGhlIGA8bGk+YCB0aGF0IHJlY2VpdmVzIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LXNpbXBsZS1tYXJnaW5dIC0gVGhlIG1hcmdpbiB0byBhcHBseSB0byBlYWNoIGA8bGk+YC5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQsICRtYXJnaW46ICRtZW51LXNpbXBsZS1tYXJnaW4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi0jeyRkaXJ9OiAkbWFyZ2luO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LW5lc3RlZC1tYXJnaW5dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbmVzdGVkLWFsaWdubWVudCBbbGVmdF0gLSBBbGlnbm1lbnQgb2YgdGhlIG5lc3RlZCBjbGFzc1xuQG1peGluIG1lbnUtbmVzdGVkKFxuICAkbWFyZ2luOiAkbWVudS1uZXN0ZWQtbWFyZ2luLFxuICAkbmVzdGVkLWFsaWdubWVudDogbGVmdFxuKSB7XG4gIEBpZiAkbmVzdGVkLWFsaWdubWVudCA9PSByaWdodCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtYXJnaW47XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbiAgfVxuXG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgaWNvbnMgaW4gbWVudXMuXG5AbWl4aW4gbWVudS1pY29ucygpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgaW1nLFxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICsgc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHBvc2l0aW9uIGNsYXNzZXMgZm9yIGljb25zIHdpdGhpbiBhIG1lbnUuXG5AbWl4aW4gbWVudS1pY29uLXBvc2l0aW9uKCRwb3NpdGlvbjogbGVmdCwgJHNwYWNpbmc6ICRtZW51LWljb24tc3BhY2luZykge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2luZyBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gbWVudS1zdGF0ZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICBjb2xvcjogJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuXG4gICAgLy8gRGVmYXVsdCBvcmllbnRhdGlvbjogaG9yaXpvbnRhbFxuICAgICYsICYuaG9yaXpvbnRhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBvcmllbnRhdGlvbiBtb2RpZmllclxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEJyZWFrcG9pbnQgc3BlY2lmaWMgdmVyc2lvbnNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXNpbXBsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJhc2UgU3R5bGVzXG4gICAgJi5pY29ucyB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1pY29ucy1iYWNrLWNvbXBhdCB7XG4gICAgICAmLmljb24tdG9wLFxuICAgICAgJi5pY29uLXJpZ2h0LFxuICAgICAgJi5pY29uLWJvdHRvbSxcbiAgICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJY29uIExlZnRcbiAgICAmLmljb24tbGVmdCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBSaWdodFxuICAgICYuaWNvbi1yaWdodCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24ocmlnaHQpO1xuICAgIH1cblxuICAgIC8vIEljb24gVG9wXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24odG9wKTtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJvdHRvbVxuICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGJvdHRvbSk7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgfVxuICAgIFxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1zdGF0ZS1iYWNrLWNvbXBhdCB7XG4gICAgICAuYWN0aXZlID4gYSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGxlZnRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1sZWZ0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24ocmlnaHQpO1xuXG4gICAgICAubmVzdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJG5lc3RlZC1hbGlnbm1lbnQ6IHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjZW50ZXJcbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLm1lbnUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0IHtcbiAgICAubWVudS1jZW50ZXJlZCB7XG4gICAgICA+IC5tZW51IHtcbiAgICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYmFkZ2Vcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGEgYmFkZ2UuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgYmFkZ2UuXG5AbWl4aW4gYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogJGJhZGdlLW1pbndpZHRoO1xuICBwYWRkaW5nOiAkYmFkZ2UtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJhZGdlIHtcbiAgLmJhZGdlIHtcbiAgICBAaW5jbHVkZSBiYWRnZTtcblxuICAgIGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFkZ2UtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRiYWRnZS1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRiYWRnZS1jb2xvciwgJGJhZGdlLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcbi8vLy9cblxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBkaXNhYmxlZCBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBhIHNlcGVyYXRvciBiZXR3ZWVuIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2ggaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCkge1xuICAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoO1xufVxuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbTogJy8nICFkZWZhdWx0O1xuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvciBpbiBydGwgbW9kZS5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJyAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvciBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3I7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBicmVhZGNydW1icyBjb250YWluZXIsIGFsb25nIHdpdGggdGhlIHN0eWxlcyBmb3IgdGhlIGA8bGk+YCBhbmQgYDxhPmAgZWxlbWVudHMgaW5zaWRlIG9mIGl0LlxuQG1peGluIGJyZWFkY3J1bWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRicmVhZGNydW1icy1tYXJnaW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLy8gSXRlbSB3cmFwcGVyXG4gIGxpIHtcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3Ige1xuICAgICAgLy8gTmVlZCB0byBlc2NhcGUgdGhlIGJhY2tzbGFzaFxuICAgICAgJHNlcGFyYXRvcjogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0sICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bCk7XG5cbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMCAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbnRlbnQ6ICRzZXBhcmF0b3I7XG4gICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1icmVhZGNydW1icyB7XG4gIC5icmVhZGNydW1icyB7XG4gICAgQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcbi8vLy9cblxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJyAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gICN7JGNoaWxkLXNlbGVjdG9yfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICB9XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmcsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRzcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIE9uZSBjaGlsZFxuICAgICAgJjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC8vIFR3byBvciBtb3JlIGNoaWxkcmVlblxuICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYnV0dG9uZ3JvdXAtZXhwYW5kLW1heCB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAmLCAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygje3BlcmNlbnRhZ2UoMSAvICRpKX0gLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBVbi1zdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtdW5zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwIHtcbiAgLmJ1dHRvbi1ncm91cCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIEdyb3VwXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQsXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCxcbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3RhY2s7XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIGZvcmNlLWVsZW1lbnQtbmVzdGluZ1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhbGxvdXRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmYWRlIHZhbHVlIGZvciBjYWxsb3V0IGJhY2tncm91bmRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZSBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgaW5uZXIgcGFkZGluZyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMsIGlmIHRoZSBjYWxsb3V0IGhhcyBhIGRhcmsgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQW1vdW50IHRvIHRpbnQgbGlua3MgdXNlZCB3aXRoaW4gY29sb3JlZCBwYW5lbHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLlxuLy8vIEB0eXBlIE51bWJlciB8IEJvb2xlYW5cbiRjYWxsb3V0LWxpbmstdGludDogMzAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGEgY2FsbG91dCwgaW5jbHVkaW5nIHBhZGRpbmcgYW5kIG1hcmdpbi5cbkBtaXhpbiBjYWxsb3V0LWJhc2UoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6ICRjYWxsb3V0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkY2FsbG91dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRjYWxsb3V0LXJhZGl1cztcblxuICAvLyBSZXNwZWN0IHRoZSBwYWRkaW5nLCBmb29sLlxuICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHF1aWNrIHN0eWxlcyBmb3IgYSBjYWxsb3V0IHVzaW5nIGEgc2luZ2xlIGNvbG9yIGFzIGEgYmFzZWxpbmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0LXN0eWxlKCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICAkYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGUpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRjYWxsb3V0LWZvbnQtY29sb3IsICRjYWxsb3V0LWZvbnQtY29sb3ItYWx0KSk7XG59XG5cbkBtaXhpbiBjYWxsb3V0LXNpemUoJHBhZGRpbmcpIHtcbiAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xuICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYWxsb3V0LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dCgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgQGluY2x1ZGUgY2FsbG91dC1iYXNlO1xuICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhbGxvdXQge1xuICAuY2FsbG91dCB7XG4gICAgQGluY2x1ZGUgY2FsbG91dDtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc21hbGwge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDAuNXJlbSk7XG4gICAgfVxuXG4gICAgJi5sYXJnZSB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoM3JlbSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYXJkXG4vLy8vXG5cbi8vLyBEZWZ1YWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FyZHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWRpdmlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZS5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY2FyZCBzaGFkb3cuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtc2hhZG93OiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luLlxuLy8vIEB0eXBlIG51bWJlclxuJGNhcmQtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gZm9udCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiAtIEJvdHRvbSBtYXJnaW4gb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkYm9yZGVyIC0gQm9yZGVyIGFyb3VuZCB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYWRpdXMgLSBib3JkZXIgcmFkaXVzIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHNoYWRvdyAtIGJveCBzaGFkb3cgb2YgdGhlIGNhcmQuXG5AbWl4aW4gY2FyZC1jb250YWluZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRjYXJkLWZvbnQtY29sb3IsXG4gICRtYXJnaW46ICRjYXJkLW1hcmdpbi1ib3R0b20sXG4gICRib3JkZXI6ICRjYXJkLWJvcmRlcixcbiAgJHJhZGl1czogJGNhcmQtYm9yZGVyLXJhZGl1cyxcbiAgJHNoYWRvdzogJGNhcmQtc2hhZG93XG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgfVxuXG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIGRpdmlkZXIuXG5AbWl4aW4gY2FyZC1kaXZpZGVyKFxuICAkYmFja2dyb3VuZDogJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kLFxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZ1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIHNlY3Rpb24uXG5AbWl4aW4gY2FyZC1zZWN0aW9uKFxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZ1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG5cbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhcmQge1xuICAuY2FyZCB7XG4gICAgQGluY2x1ZGUgY2FyZC1jb250YWluZXI7XG4gIH1cblxuICAuY2FyZC1kaXZpZGVyIHtcbiAgICBAaW5jbHVkZSBjYXJkLWRpdmlkZXI7XG4gIH1cblxuICAuY2FyZC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBjYXJkLXNlY3Rpb247XG4gIH1cblxuICAvLyBGb3IgSUUgMTEgLSBGbGV4YnVnXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MvaXNzdWVzLzc1XG4gIC5jYXJkLWltYWdlIHtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuXG4vLy8gR2V0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBjbG9zZSBidXR0b24uIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIG51bWJlciwgdGhlIG51bWJlciBpcyByZXR1cm5lZC4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgY29uZmlnIG1hcCBhbmQgdGhlIG1hcCBoYXMgdGhlIGtleSBgJHNpemVgLCB0aGUgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICR2YWx1ZSAtIEEgbnVtYmVyIG9yIG1hcCB0aGF0IHJlcHJlc2VudHMgdGhlIHNpemUgb3IgcG9zaXRpb24gdmFsdWUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gVGhlIHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbiB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBnaXZlbiBudW1iZXIgb3IgdGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gLXpmLWdldC1zaXplLXZhbCgkdmFsdWUsICRzaXplKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAvLyBJZiBpdCBpcywganVzdCByZXR1cm4gdGhlIG51bWJlclxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHNpemUgbmFtZSBleGlzdHMgaW4gdGhlIHZhbHVlIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkdmFsdWUsICRzaXplKSB7XG4gICAgLy8gSWYgaXQgZG9lcywgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkdmFsdWUsICRzaXplKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgYSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbbWVkaXVtXSAtIFRoZSBzaXplIHRvIHVzZS4gU2V0IHRvIGBzbWFsbGAgdG8gY3JlYXRlIGEgc21hbGwgY2xvc2UgYnV0dG9uLiBUaGUgJ21lZGl1bScgdmFsdWVzIGRlZmluZWQgaW4gYCRjbG9zZWJ1dHRvbi0qYCB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gY2xvc2UtYnV0dG9uLXNpemUoJHNpemUpIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgI3skeH06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsLCAkc2l6ZSk7XG4gICN7JHl9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWwsICRzaXplKTtcbiAgZm9udC1zaXplOiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1zaXplLCAkc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0LCAkc2l6ZSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uIHtcbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuXG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKHNtYWxsKSB9XG4gICAgJiwgJi5tZWRpdW0geyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShtZWRpdW0pIH1cbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbWVudS1pY29uIHtcbiAgLm1lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogJHRpdGxlYmFyLWljb24tY29sb3IsICRjb2xvci1ob3ZlcjogJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXIpO1xuICB9XG5cbiAgLm1lbnUtaWNvbi5kYXJrIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyaWxsZG93blxuLy8vL1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eSB0byB1c2UgZm9yIGFuaW1hdGluZyBtZW51cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGFycm93cyB0byBkcmlsbGRvd24gaXRlbXMgd2l0aCBzdWJtZW51cywgYXMgd2VsbCBhcyB0aGUgYmFjayBidXR0b24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcgaW4gdGhlIHN1Ym1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHN1Ym1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWRyaWxsZG93bi1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcmlsbGRvd24tYXJyb3ctc2l6ZTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICB9XG5cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuYW5pbWF0ZS1oZWlnaHQge1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIHRvcCBsZXZlbCA8dWw+XG4gIC5kcmlsbGRvd24ge1xuICAgIGEge1xuICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFwcGxpZWQgdG8gc3VibWVudSA8dWw+c1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgICB6LWluZGV4OiAtMTtcblxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICAgIHRyYW5zaXRpb246ICRkcmlsbGRvd24tdHJhbnNpdGlvbjtcblxuICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFN1Ym1lbnUgaXRlbSBwYWRkaW5nXG4gICAgICBhIHtcbiAgICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJpbGxkb3duLW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgIC5kcmlsbGRvd24tc3VibWVudS1jb3Zlci1wcmV2aW91cyB7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG5cbiAgICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtbGVmdCk7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG5cbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuXG4gIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nO1xuXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tYmFja2dyb3VuZDtcblxuICBmb250LXNpemU6ICRkcm9wZG93bi1mb250LXNpemU7XG5cblxuICAvLyBBbGxvdyBhbiBpbnRlcm1pdHRlbnQgc3RhdGUgdG8gZG8gcG9zaXRpb25pbmcgYmVmb3JlIG1ha2luZyB2aXNpYmxlLlxuICAmLmlzLW9wZW5pbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJi5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xuICAgIC5kcm9wZG93bi1wYW5lLiN7JG5hbWV9IHtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgcGFkZGluZyBmb3IgYWxpZ25pbmcgdGhlIGFycm93IGNvcnJlY3RseS5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBzdWItbWVudSBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDtcblxuICAgIC5kcm9wZG93biAmIGEge1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8gV0FSTklORzogV2lsbCBiZSByZW1vdmVkIGluIHZlcnNpb24gNi40XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpbzogZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LXZpZGVvIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkKCkuIGZvdW5kYXRpb24tZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG59XG5cbkBtaXhpbiBmbGV4LXZpZGVvKCRyYXRpbzogJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW8pIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgcmVzcG9uc2l2ZS1lbWJlZCgpLiBmbGV4LXZpZGVvKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gRmluZHMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYSAtIEZpcnN0IG51bWJlciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYiAtIFNlY29uZCBudW1iZXIgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvci5cbkBmdW5jdGlvbiBnY2QoJGEsICRiKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9HcmVhdGVzdF9jb21tb25fZGl2aXNvciNKYXZhU2NyaXB0XG4gIEBpZiAoJGIgIT0gMCkge1xuICAgIEByZXR1cm4gZ2NkKCRiLCAkYSAlICRiKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBhYnMoJGEpO1xuICB9XG59XG5cbi8vLyBIYW5kbGVzIGRlY2ltYWwgZXhwb25lbnRzIGJ5IHRyeWluZyB0byBjb252ZXJ0IHRoZW0gaW50byBhIGZyYWN0aW9uIGFuZCB0aGVuIHVzZSBhIG50aC1yb290LWFsZ29yaXRobSBmb3IgcGFydHMgb2YgdGhlIGNhbGN1bGF0aW9uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgYmFzZSBudW1iZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBvbmVudCAtIFRoZSBleHBvbmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBwcm9kdWN0IG9mIHRoZSBleHBvbmVudGlhdGlvbi5cbkBmdW5jdGlvbiBwb3coJGJhc2UsICRleHBvbmVudCwgJHByZWM6IDE2KSB7XG4gIEBpZiAoZmxvb3IoJGV4cG9uZW50KSAhPSAkZXhwb25lbnQpIHtcbiAgICAkcHJlYzIgOiBwb3coMTAsICRwcmVjKTtcbiAgICAkZXhwb25lbnQ6IHJvdW5kKCRleHBvbmVudCAqICRwcmVjMik7XG4gICAgJGRlbm9taW5hdG9yOiBnY2QoJGV4cG9uZW50LCAkcHJlYzIpO1xuICAgIEByZXR1cm4gbnRoLXJvb3QocG93KCRiYXNlLCAkZXhwb25lbnQgLyAkZGVub21pbmF0b3IpLCAkcHJlYzIgLyAkZGVub21pbmF0b3IsICRwcmVjKTtcbiAgfVxuXG4gICR2YWx1ZTogJGJhc2U7XG4gIEBpZiAkZXhwb25lbnQgPiAxIHtcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqICRiYXNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZXhwb25lbnQgPCAxIHtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgLyAkYmFzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIG50aC1yb290KCRudW0sICRuOiAyLCAkcHJlYzogMTIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL050aF9yb290I0phdmFTY3JpcHRcbiAgJHg6IDE7XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkcHJlYyB7XG4gICAgJHg6IDEgLyAkbiAqICgoJG4gLSAxKSAqICR4ICsgKCRudW0gLyBwb3coJHgsICRuIC0gMSkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHg7XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSB3aWR0aCBmb3IgYSBnaXZlbiByYXRpby5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IHJlbGF0aXZlIHRvIHRoZSB3aWR0aCBvZiBhIHJlc3BvbnNpdmUgY29udGFpbmVyLlxuQGZ1bmN0aW9uIHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKSB7XG4gICR3OiBudGgoJHJhdGlvLCAxKTtcbiAgJGg6IG50aCgkcmF0aW8sIDMpO1xuICBAcmV0dXJuICRoIC8gJHcgKiAxMDAlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXG5AbWl4aW4gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XG5cbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbGFiZWwtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkbGFiZWwtY29sb3IsICRsYWJlbC1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lZGlhLW9iamVjdFxuLy8vL1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIExlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb24gc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgaW1hZ2VzIHdpdGhpbiBhIG1lZGlhIG9iamVjdCwgd2hlbiB0aGUgb2JqZWN0IGlzIHN0YWNrZWQgdmVydGljYWxseS4gU2V0IHRvICdhdXRvJyB0byB1c2UgdGhlIGltYWdlJ3MgbmF0dXJhbCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbWVkaWEgb2JqZWN0IGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3QtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCBibG9jayk7XG4gIG1hcmdpbi1ib3R0b206ICRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXNlY3Rpb24oJHBhZGRpbmc6ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmcpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJHBhZGRpbmc7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBzdGFjayBzZWN0aW9ucyBvZiBhIG1lZGlhIG9iamVjdC4gQXBwbHkgdGhpcyB0byB0aGUgc2VjdGlvbiBlbGVtZW50cywgbm90IHRoZSBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXN0YWNrIHtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1ib3R0b206ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0IHtcbiAgLm1lZGlhLW9iamVjdCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LWNvbnRhaW5lcjtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXN0YWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXNlY3Rpb247XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICYubWFpbi1zZWN0aW9uIHtcbiAgICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJi5taWRkbGUge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuXG4gICAgICAmLmJvdHRvbSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBtYXAgb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgbWFwIG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgb3ZlcmxhcCBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgc2l6ZSBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IGNvbG9yIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIGNvbnRlbnQgb3ZlcmxheS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMyAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG5cbiAgLy8vIFRyYW5zZm9ybSBkZXByZWNhdGVkIHNpemUgc2V0dGluZ3MgaW50byBtYXAgJiBzaG93IHdhcm5pbmdcbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy1zaXplcyBpbnN0ZWFkJztcbiAgfVxuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzIGluc3RlYWQnO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHRoZSB6LWluZGV4ZXMgYW5kIGluY3JlYXNlIHRoZW0gZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvdmVybGF5J3Mgei1pbmRleCBpcyBuZXcgc2luY2UgdjYuNCBhbmQgbWF5IGJlIGlkZW50aWNhbCB0byB0aGUgdXNlciBjdXN0b20gc2V0dGluZ3Mgb2YgdGhlIHB1c2ggei1pbmRleC5cbiAgQGlmICRvZmZjYW52YXMtcHVzaC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcHVzaC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggPD0gJG9mZmNhbnZhcy1wdXNoLXppbmRleCB7ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG5cbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyB3cmFwcGVyLlxuQG1peGluIG9mZi1jYW52YXMtd3JhcHBlcigpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlKFxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxuICAkdHJhbnNpdGlvbjogJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLFxuICAkZml4ZWQ6IHRydWVcbikge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgQGlmICRmaXhlZCA9PSB0cnVlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC8vIFNldCB0aGUgb2ZmLWNhbnZhcyB6LWluZGV4LlxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIEhpZGUgaW5hY3RpdmUgb2ZmLWNhbnZhcyB3aXRoaW4gdGhlIGNvbnRlbnQgdGhhdCBoYXZlIHRoZSBzYW1lIHBvc2l0aW9uXG4gICYuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZXM6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemVzLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUgaXMgc2V0LCBhZGQgaW5uZXIgYm94LXNoYWRvdy5cbiAgLy8gVGhpcyBtaW1pY3MgdGhlIG9mZi1jYW52YXMgcGFuZWwgaGF2aW5nIGEgbG93ZXIgei1pbmRleCwgd2l0aG91dCBoYXZpbmcgdG8gaGF2ZSBvbmUuXG4gIEBpZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIHtcbiAgICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhyaWdodCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cobGVmdCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGJvdHRvbSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KHRvcCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8vLyBTZXRzIHRoZSBzdHlsZXMgZm9yIHRoZSBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiBvZmYtY2FudmFzLWNvbnRlbnQoKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC8vIFRyYW5zZm9ybSBzY29wZSB1bnRpbCB0aGUgZWxlbWVudCBpcyBjbG9zZWQgKG1ha2VzIHN1cmUgdHJhbnNpdGlvbmVuZCBnZXRzIHRyaWdnZXJlZClcbiAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIGVsZW1lbnQgJiBjb250ZW50LCBuZXN0ZWQgaW4gYW5vdGhlciBjb250ZW50XG4gIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuJHBvc2l0aW9uOiBsZWZ0LFxuJHppbmRleDogJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LFxuJGNvbnRlbnQ6ICRtYWluY29udGVudC1jbGFzcyxcbiRicmVha3BvaW50OiBzbWFsbFxuKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgei1pbmRleDogJHppbmRleDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcblxuICBAaWYgbm90ICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgcmV2ZWFsZWQgZWxlbWVudCBpcyBuZXN0ZWQgaW4gY29udGVudFxuICAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIEBhdC1yb290IC4jeyRjb250ZW50fS5oYXMtcmV2ZWFsLSN7JHBvc2l0aW9ufSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKHByaW9yIHRvIHY2LjQpXG4gICYgfiAuI3skY29udGVudH0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxufVxuXG4vLy8gT3ZlcnJpZGVzIHRoZSBvZmYtY2FudmFzIHN0eWxlc1xuQG1peGluIGluLWNhbnZhcygpIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICB3aWR0aDogaW5oZXJpdDtcbiAgb3ZlcmZsb3c6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IGluaGVyaXQ7XG5cbiAgLy8gSW5jcmVhc2UgQ1NTIHNwZWNpZmljaXR5XG4gICYucG9zaXRpb24tbGVmdCxcbiAgJi5wb3NpdGlvbi1yaWdodCxcbiAgJi5wb3NpdGlvbi10b3AsXG4gICYucG9zaXRpb24tYm90dG9tIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb2ZmLWNhbnZhcyB7XG4gIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzaWNzO1xuXG4gIC8vIE9mZi1jYW52YXMgd3JhcHBlclxuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXdyYXBwZXI7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuXG4gICAgLy8gRm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgZm9yIG5lc3RlZCBvZmYtY2FudmFzIGJlY2F1c2UgZml4ZWQgZG9lc24ndCB3b3JrIGZvciBwdXNoIHRyYW5zaXRpb24gd2l0aGluIHRoZSB0cmFuc2Zvcm0gc2NvcGUuXG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICAgIC8vIE5PVEU6IHNpbmNlIG92ZXJsYXAgdHJhbnNpdGlvbiBpcyBjdXJyZW50bHkgZm9yY2VkIGlmIG5lc3RlZCwgdGhlcmUncyBubyBuZWVkIHRvIGZvcmNlIHBvc2l0aW9uIGFic29sdXRlIHVudGlsIG5lc3RlZCBwdXNoIHRyYW5zaXRpb24gaXMgc3VwcG9ydGVkLlxuICAgICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyIHdpdGggYWJzb2x1dGUgcG9zaXRpb25cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZSgkZml4ZWQ6IGZhbHNlKTtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgcG9zaXRpb24gY2xhc3Nlc1xuICAucG9zaXRpb24tbGVmdCAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24obGVmdCwgICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tcmlnaHQgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24ocmlnaHQsICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tdG9wICAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24odG9wLCAgICB2ZXJ0aWNhbCk7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbSAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGJvdHRvbSwgdmVydGljYWwpOyB9XG5cbiAgLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1jb250ZW50O1xuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgcGFuZWwgb24gbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChsZWZ0LCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0LCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbCh0b3AsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGJvdHRvbSwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1vdmUgaW4tY2FudmFzIGZvciBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGluLWNhbnZhcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7IC8vIFByZXZlbnQgRk9VQyBieSBub3Qgc2hvd2luZyB1bnRpbCBKUyBzZXRzIGhlaWdodFxuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcGFnaW5hdGlvblxuLy8vL1xuXG4vLy8gRm9udCBzaXplIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFnaW5hdGlvbiBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBlbGxpcHNpcyBpbiBhIHBhZ2luYXRpb24gbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgcGFnZSBudW1iZXIgbGlua3Mgb24gbW9iaWxlLCBvbmx5IG5leHQvcHJldmlvdXMgbGlua3Ncbi8vLyBhbmQgb3B0aW9uYWxseSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXkgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb24gbW9iaWxlIGV2ZW4gaWYgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4vLy8gVGhpcyBwYXJhbWV0ZXIgd2lsbCBvbmx5IG92ZXJyaWRlIHRoZSB2aXNpYmlsaXR5IHNldHRpbmcgb2YgdGhlIGN1cnJlbnQgaXRlbSBmb3IgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7YCxcbi8vLyBpdCB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdmlzaWJpbGl0eSB3aGVuIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgdHJ1ZWAuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIgKFxuICAkbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbSxcbiAgJGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplLFxuICAkc3BhY2luZzogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nLFxuICAkcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXMsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcixcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbSB7XG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgY3VycmVudCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCxcbiAgJGNvbG9yLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jdXJyZW50O1xuICBjb2xvcjogJGNvbG9yLWN1cnJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29sb3I6ICRjb2xvcjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGVsbGlwc2lzIGZvciB1c2UgaW4gYSBwYWdpbmF0aW9uIGxpc3QuXG5AbWl4aW4gcGFnaW5hdGlvbi1lbGxpcHNpcyAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3Jcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29udGVudDogJ1xcMjAyNic7XG4gIGNvbG9yOiAkY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXBhZ2luYXRpb24ge1xuICAucGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXI7XG5cbiAgICAuY3VycmVudCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudDtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1lbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZ2luYXRpb24tYXJyb3dzIHtcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBhYic7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbiAgICAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGJiJztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcHJvZ3Jlc3MgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiBwcm9ncmVzcy1jb250YWluZXIge1xuICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206ICRwcm9ncmVzcy1tYXJnaW4tYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgbWV0ZXIgb2YgYSBwcm9ncmVzcyBiYXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0ZXh0IGluIHRoZSBwcm9ncmVzcyBtZXRlci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgQGluY2x1ZGUgYWJzb2x1dGUtY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb2dyZXNzLWJhciB7XG4gIC8vIFByb2dyZXNzIGJhclxuICAucHJvZ3Jlc3Mge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLWNvbnRhaW5lcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJbm5lciBtZXRlclxuICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyO1xuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXIgdGV4dFxuICAucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXItdGV4dDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIFtUT0RPXSBDaGVjayBob3cgcGx1Z2luIGNvbmZpcm1zIGRpc2FibGVkIG9yIHZlcnRpY2FsIHN0YXR1c1xuLy8gW1RPRE9dIENoZWNrIGlmIHRyYW5zaXRpb246IGFsbDsgaXMgbmVjZXNzYXJ5XG5cbi8vLy9cbi8vLyBAZ3JvdXAgc2xpZGVyXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHNsaWRlciB3aWR0aCBvZiBhIHZlcnRpY2FsIHNsaWRlci4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0aWVzIHRvIGFwcGx5IHRvIHRoZSBzbGlkZXIgaGFuZGxlIGFuZCBmaWxsLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDIuMjVyZW07XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgYWN0aXZlIGZpbGwgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWZpbGwtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHNsaWRlci10cmFuc2l0aW9uO1xuXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0aGUgc2xpZGVyIGhhbmRsZXMuXG5AbWl4aW4gc2xpZGVyLWhhbmRsZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHNsaWRlci10cmFuc2l0aW9uO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgfVxuXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG4gIH1cbn1cblxuQG1peGluIHNsaWRlci1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuQG1peGluIHNsaWRlci12ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gIGhlaWdodDogMTIuNXJlbTtcbiAgbWFyZ2luOiAwIDEuMjVyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zbGlkZXIge1xuICAvLyBDb250YWluZXJcbiAgLnNsaWRlciB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIEZpbGwgYXJlYVxuICAuc2xpZGVyLWZpbGwge1xuICAgIEBpbmNsdWRlIHNsaWRlci1maWxsO1xuICB9XG5cbiAgLy8gRHJhZ2dhYmxlIGhhbmRsZVxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWhhbmRsZTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gIC5zbGlkZXIuZGlzYWJsZWQsXG4gIC5zbGlkZXJbZGlzYWJsZWRdIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBzbGlkZXJcbiAgLnNsaWRlci52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gUlRMIHN1cHBvcnRcbiAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAuc2xpZGVyOm5vdCgudmVydGljYWwpIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XG4gIC5zdGlja3ktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgLnN0aWNreS5pcy1zdHVjayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmlzLWF0LXRvcCB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgc3dpdGNoXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgc3dpdGNoLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgYWN0aXZlIGNvbG9yIG9mIGEgc3dpdGNoLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAudGlueSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5zbWFsbCBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLmxhcmdlIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaFxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHN3aXRjaCBjb250YWluZXIgYW5kIHBhZGRsZS5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGEgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2ggcGFkZGxlXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gc3dpdGNoIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vIG1ha2UgdGhlbSB2YXJpYWJsZXNcbi8vIGFzayBhYm91dCBhY2Nlc3NpYmlsaXR5IG9uIGxhYmVsXG4vLyBjaGFuZ2UgY2xhc3MgbmFtZSBmb3IgdGV4dFxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGNvbnRhaW5lciBjbGFzcy5cbkBtaXhpbiBzd2l0Y2gtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAkc3dpdGNoLW1hcmdpbjtcbiAgb3V0bGluZTogMDtcblxuICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhc2NhZGUgZG93biB0byB0aGUgc3dpdGNoIHRleHRcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGlucHV0LiBBcHBseSB0aGlzIHRvIGFuIGA8aW5wdXQ+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBwYWRkbGUgb2YgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gYSBgPGxhYmVsPmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1wYWRkbGUge1xuICAkc3dpdGNoLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAqIDI7XG4gICRwYWRkbGUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6ICRzd2l0Y2gtd2lkdGg7XG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1yYWRpdXM7XG4gIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcblxuICAvLyBSZXNldHRpbmcgdGhlc2UgPGxhYmVsPiBwcmVzZXRzIHNvIHR5cGUgc3R5bGVzIGNhc2NhZGUgZG93blxuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIE5lZWRlZCB0byBvdmVycmlkZSBzcGVjaWZpY2l0eVxuICBpbnB1dCArICYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIFRoZSBwYWRkbGUgaXRzZWxmXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXBhZGRsZS1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gQ2hhbmdlIHRoZSB2aXN1YWwgc3R5bGUgd2hlbiB0aGUgc3dpdGNoIGlzIGFjdGl2ZVxuICBpbnB1dDpjaGVja2VkIH4gJiB7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICAgIH1cbiAgfVxuXG4gIGlucHV0OmZvY3VzIH4gJiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhY3RpdmUvaW5hY3RpdmUgdGV4dCBpbnNpZGUgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gdGV4dCBlbGVtZW50cyBpbnNpZGUgdGhlIHN3aXRjaCBgPGxhYmVsPmAuXG5AbWl4aW4gc3dpdGNoLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1hY3RpdmUge1xuICAjeyRnbG9iYWwtbGVmdH06IDglO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWluYWN0aXZlIHtcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMTUlO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNpemUgb2YgYSBzd2l0Y2ggYnkgbW9kaWZ5aW5nIHRoZSBzaXplIG9mIHRoZSBib2R5IGFuZCBwYWRkbGUuIEFwcGx5IHRoaXMgdG8gYSBzd2l0Y2ggY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZm9udC1zaXplIFsxcmVtXSAtIEZvbnQgc2l6ZSBvZiBsYWJlbCB0ZXh0IHdpdGhpbiB0aGUgc3dpdGNoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3dpdGNoLWhlaWdodCBbMnJlbV0gLSBIZWlnaHQgb2YgdGhlIHN3aXRjaCBib2R5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGxlLW9mZnNldCBbMC4yNXJlbV0gLSBTcGFjaW5nIGJldHdlZW4gdGhlIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBzd2l0Y2ggYm9keS5cbkBtaXhpbiBzd2l0Y2gtc2l6ZShcbiAgJGZvbnQtc2l6ZTogMXJlbSxcbiAgJHN3aXRjaC1oZWlnaHQ6IDJyZW0sXG4gICRwYWRkbGUtb2Zmc2V0OiAwLjI1cmVtXG4pIHtcblxuICAkc3dpdGNoLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAqIDI7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHBhZGRsZS1vZmZzZXQ7XG5cbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6ICRzd2l0Y2gtd2lkdGg7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIH1cblxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogJHBhZGRsZS1vZmZzZXQ7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLW9mZnNldDtcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc3dpdGNoIHtcbiAgLy8gQ29udGFpbmVyIGNsYXNzXG4gIC5zd2l0Y2gge1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIDxpbnB1dD4gZWxlbWVudFxuICAuc3dpdGNoLWlucHV0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtaW5wdXQ7XG4gIH1cblxuICAvLyA8bGFiZWw+IGVsZW1lbnRcbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1wYWRkbGU7XG4gIH1cblxuICAvLyBCYXNlIGxhYmVsIHRleHQgc3R5bGVzXG4gICVzd2l0Y2gtdGV4dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQ7XG4gIH1cblxuICAvLyBBY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWFjdGl2ZTtcbiAgfVxuXG4gIC8vIEluYWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWluYWN0aXZlO1xuICB9XG5cbiAgLy8gU3dpdGNoIHNpemVzXG4gIC5zd2l0Y2gudGlueSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTApLCAkc3dpdGNoLWhlaWdodC10aW55LCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5zbWFsbCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTIpLCAkc3dpdGNoLWhlaWdodC1zbWFsbCwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2gubGFyZ2Uge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDE2KSwgJHN3aXRjaC1oZWlnaHQtbGFyZ2UsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBmb3JjZS1lbGVtZW50LW5lc3RpbmcsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggc3RhY2tlZCB0YWJsZSBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0ciB7XG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS11bnN0cmlwZSgpIHtcbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICR0YWJsZS1pcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFja2VkIHRhYmxlLiBVc2VmdWwgZm9yIHNtYWxsLXNjcmVlbiBsYXlvdXRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGhlYWRlciBbJHNob3ctaGVhZGVyLWZvci1zdGFja2VkXSAtIFNob3cgdGhlIGZpcnN0IHRoIG9mIGhlYWRlciB3aGVuIHN0YWNrZWQuXG5AbWl4aW4gdGFibGUtc3RhY2soJGhlYWRlcjogJHNob3ctaGVhZGVyLWZvci1zdGFja2VkKSB7XG4gIEBpZiAkaGVhZGVyIHtcbiAgICB0aGVhZCB7XG4gICAgICB0aCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgdGhlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRyLFxuICB0aCxcbiAgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFibGUoJG5lc3Q6IGZhbHNlKSB7XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSB0YWJsZSgkbmVzdDogJG5lc3QpO1xuICB9XG5cbiAgdGFibGUuc3RhY2sge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQgZG93bikge1xuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgdGFibGUuc2Nyb2xsIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1zY3JvbGw7XG4gIH1cblxuICB0YWJsZS5ob3ZlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XG4gIH1cblxuICAudGFibGUtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgdGFibGUge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbiRjb250cmFzdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGx1bWluYW5jZSBvZi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG5AZnVuY3Rpb24gY29sb3ItbHVtaW5hbmNlKCRjb2xvcikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWZcbiAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICRyZ2JhMjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcbiAgICAkcmdiOiAkcmdiIC8gMjU1O1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86ICRsdW1pbmFuY2UxIC8gJGx1bWluYW5jZTI7XG5cbiAgQGlmICRsdW1pbmFuY2UyID4gJGx1bWluYW5jZTEge1xuICAgICRyYXRpbzogMSAvICRyYXRpbztcbiAgfVxuXG4gICRyYXRpbzogcm91bmQoJHJhdGlvICogMTApIC8gMTA7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuIFwiQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH1cIjtcbiAgfVxuXG4gIEByZXR1cm4gJGJlc3Q7XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBkYXJrZXIgaWYgaXQncyBsaWdodCwgb3IgbGlnaHRlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgbWFwIGludG8gdmFyaWFibGVzLCBzdWNoIGFzIGAkcHJpbWFyeS1jb2xvcmAgYW5kIGAkc2Vjb25kYXJ5LWNvbG9yYC4gQ2FsbCB0aGlzIG1peGluIGJlbG93IHRoZSBHbG9iYWwgc2VjdGlvbiBvZiB5b3VyIHNldHRpbmdzIGZpbGUgdG8gcHJvcGVybHkgbWlncmF0ZSB5b3VyIGNvZGViYXNlLlxuQG1peGluIGFkZC1mb3VuZGF0aW9uLWNvbG9ycygpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgICAkcHJpbWFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFic1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gb2YgdGhlIHRhYiBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYWN0aXZlLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0YWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYSB0YWIgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGBleHBhbmQtbmAgY2xhc3NlcyB0byBpbmNsdWRlIGluIHRoZSBDU1MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHRhYnMtY29udGFpbmVyIChcbiAgJG1hcmdpbjogJHRhYi1tYXJnaW4sXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWJhY2tncm91bmQsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkbWFyZ2luO1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGFpbmVyIHRvIGhhdmUgdmVydGljYWwgdGFicy4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250YWluZXIoKWAuXG5AbWl4aW4gdGFicy1jb250YWluZXItdmVydGljYWwge1xuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBsaW5rcyB3aXRoaW4gYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBgPGxpPmAgZWxlbWVudHMgaW5zaWRlIGEgdGFiIGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXRpdGxlIChcbiAgJHBhZGRpbmc6ICR0YWItaXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkdGFiLWl0ZW0tZm9udC1zaXplLFxuICAkY29sb3I6ICR0YWItY29sb3IsXG4gICRjb2xvci1hY3RpdmU6ICR0YWItYWN0aXZlLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXIsXG4gICRiYWNrZ3JvdW5kLWFjdGl2ZTogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZVxuKSB7XG4gIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICZbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB3cmFwcGVyIHRoYXQgc3Vycm91bmRzIGEgdGFiIGdyb3VwJ3MgY29udGVudCBwYW5lcy5cbkBtaXhpbiB0YWJzLWNvbnRlbnQgKFxuICAkYmFja2dyb3VuZDogJHRhYi1jb250ZW50LWJhY2tncm91bmQsXG4gICRjb2xvcjogJHRhYi1jb250ZW50LWNvbG9yLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250ZW50IGNvbnRhaW5lciB0byBoYXZlIGEgdmVydGljYWwgc3R5bGUsIGJ5IHNoaWZ0aW5nIHRoZSBib3JkZXIgYXJvdW5kLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRlbnQoKWAuXG5AbWl4aW4gdGFicy1jb250ZW50LXZlcnRpY2FsIChcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gaW5kaXZpZHVhbCB0YWIgY29udGVudCBwYW5lbCB3aXRoaW4gdGhlIHRhYiBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXBhbmVsIChcbiAgJHBhZGRpbmc6ICR0YWItY29udGVudC1wYWRkaW5nXG4pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYnMge1xuICAudGFicyB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXI7XG4gIH1cblxuICAvLyBWZXJ0aWNhbFxuICAudGFicy52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBTaW1wbGVcbiAgLnRhYnMuc2ltcGxlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJpbWFyeSBjb2xvclxuICAudGFicy5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkcHJpbWFyeS1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYnMtdGl0bGUge1xuICAgIEBpbmNsdWRlIHRhYnMtdGl0bGU7XG4gIH1cblxuICAudGFicy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQ7XG4gIH1cblxuICAudGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQtdmVydGljYWw7XG4gIH1cblxuICAudGFicy1wYW5lbCB7XG4gICAgQGluY2x1ZGUgdGFicy1wYW5lbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGh1bWJuYWlsXG4vLy8vXG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wcnRpZXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRodW1ibmFpbCBzdHlsZXMgdG8gYW4gZWxlbWVudC5cbkBtaXhpbiB0aHVtYm5haWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tO1xuXG4gIGJvcmRlcjogJHRodW1ibmFpbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICR0aHVtYm5haWwtcmFkaXVzO1xuICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdztcblxuICBsaW5lLWhlaWdodDogMDtcbn1cblxuQG1peGluIHRodW1ibmFpbC1saW5rIHtcbiAgdHJhbnNpdGlvbjogJHRodW1ibmFpbC10cmFuc2l0aW9uO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgaW1hZ2Uge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGh1bWJuYWlsIHtcbiAgLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsO1xuICB9XG5cbiAgYS50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbC1saW5rO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aXRsZS1iYXJcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBXZWlnaHRcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhciBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiB0aGUgbWVudSBpY29uIGFuZCB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRpdGxlLWJhciB7XG4gIC50aXRsZS1iYXIge1xuICAgIHBhZGRpbmc6ICR0aXRsZWJhci1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICR0aXRsZWJhci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGl0bGViYXItY29sb3I7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICAubWVudS1pY29uIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICB9XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAudGl0bGUtYmFyLWxlZnQsXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudGl0bGUtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAudGl0bGUtYmFyLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXdlaWdodDogJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvb2x0aXBcbi8vLy9cblxuLy8vIERlZmF1bHQgY3Vyc29yIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhhcy10aXAtY3Vyc29yOiBoZWxwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYm90dG9tIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgTGlzdFxuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGZvbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgb2YgdGhlIHRvb2x0aXAgdGV4dC4gQnkgZGVmYXVsdCwgd2UgcmVjb21tZW5kIGEgc21hbGxlciBmb250IHNpemUgdGhhbiB0aGUgYm9keSBjb3B5LlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgd2lkdGggZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgaGVpZ2h0IGZvciB0b29sdGlwcy4gVGhpcyBpcyBoZWxwZnVsIGZvciBjYWxjdWxhdGluZyB0aGUgZGlzdGFuY2Ugb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9vbHRpcCB3b3JkLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gaGFzLXRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJvcmRlci1ib3R0b206ICRoYXMtdGlwLWJvcmRlci1ib3R0b207XG4gIGZvbnQtd2VpZ2h0OiAkaGFzLXRpcC1mb250LXdlaWdodDtcbiAgY3Vyc29yOiAkaGFzLXRpcC1jdXJzb3I7XG59XG5cbkBtaXhpbiB0b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArICN7JHRvb2x0aXAtcGlwLWhlaWdodH0pO1xuICB6LWluZGV4OiAxMjAwO1xuXG4gIG1heC13aWR0aDogJHRvb2x0aXAtbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAkdG9vbHRpcC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICR0b29sdGlwLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgZm9udC1zaXplOiAkdG9vbHRpcC1mb250LXNpemU7XG4gIGNvbG9yOiAkdG9vbHRpcC1jb2xvcjtcblxuICAmOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gICYuYm90dG9tIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgdXApO1xuICAgICAgYm90dG9tOiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYudG9wIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5sZWZ0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgcmlnaHQpO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYucmlnaHQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tdG9wOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDEwJTtcbiAgfVxuXG4gICYuYWxpZ24tYm90dG9tOjpiZWZvcmUge1xuICAgIGJvdHRvbTogMTAlO1xuICAgIHRvcDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tbGVmdDo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0OjpiZWZvcmUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b29sdGlwIHtcbiAgLmhhcy10aXAge1xuICAgIEBpbmNsdWRlIGhhcy10aXA7XG4gIH1cblxuICAudG9vbHRpcCB7XG4gICAgQGluY2x1ZGUgdG9vbHRpcDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9wLWJhclxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyLiBUaGlzIGNvbG9yIGFsc28gY2FzY2FkZXMgdG8gbWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBzdWJtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuIFVzZWZ1bGwgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIHRyYW5zcGFyZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBmb3IgdGhlIHRvcCBiYXIgdGl0bGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBgPGlucHV0PmAgZWxlbWVudHMgaW5zaWRlIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHRvcCBiYXIgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0b3AgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiB0b3AtYmFyLWNvbnRhaW5lciB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgcGFkZGluZzogJHRvcGJhci1wYWRkaW5nO1xuXG4gICYsXG4gIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgZGlmZmVybnQgZnJvbSAkdG9wYmFyLWJhY2tncm91bmQtc3VibWVudVxuICBAaWYgKCR0b3BiYXItYmFja2dyb3VuZCAhPSAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZCkge1xuICAgIHVsIHVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RyYWluIHdpZHRoIG9mIGlucHV0cyBieSBkZWZhdWx0IHRvIG1ha2UgdGhlbSBlYXNpZXIgdG8gYXJyYW5nZVxuICBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAkdG9wYmFyLWlucHV0LXdpZHRoO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICB9XG5cbiAgLy8gVGhlIGFib3ZlIHN0eWxlcyBzaG91bGRuJ3QgYXBwbHkgdG8gaW5wdXQgZ3JvdXAgZmllbGRzXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gIH1cblxuICBpbnB1dC5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gTWFrZXMgc2VjdGlvbnMgb2YgYSB0b3AgYmFyIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuQG1peGluIHRvcC1iYXItc3RhY2tlZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVW5kb2VzIHRoZSBDU1MgYXBwbGllZCBieSB0aGUgYHRvcC1iYXItc3RhY2tlZCgpYCBtaXhpbi5cbkBtaXhpbiB0b3AtYmFyLXVuc3RhY2sge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvcC1iYXIge1xuICAvLyBUb3AgYmFyIGNvbnRhaW5lclxuICAudG9wLWJhciB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci1jb250YWluZXI7XG5cbiAgICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zIGJ5IGRlZmF1bHRcbiAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XG4gICAgICBAaW5jbHVkZSB0b3AtYmFyLXVuc3RhY2s7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgY2xhc3NlcyBmb3Igc3RhY2tpbmcgb24gZWFjaCBzY3JlZW4gc2l6ZSAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzKVxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgJi5zdGFja2VkLWZvci0jeyRzaXplfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZzogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuXG4gICAgICAubWVudS1pY29uIHtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gKDEgLyAxNik7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAoMSAvIDE2KTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvLy8gQXBwbGllcyBiYXNpYyB0cmFuc2l0aW9uIHNldHRpbmdzIHRvIGFuIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gdHJhbnNpdGlvbi1iYXNpY3MoXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgQGluY2x1ZGUgLW1vdGlvbi11aS1kZWZhdWx0cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZztcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIHNldHVwIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gc2V0dXAgZm9yIHRyYW5zaXRpb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBhY3RpdmUgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBhY3RpdmF0ZSBhIHRyYW5zaXRpb24gb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpciksIHRydWUpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFnZ2VyIGFuaW1hdGlvbiwgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbmd1bGFyJ3MgYG5nLXJlcGVhdGAuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5LWFtb3VudCAtIEFtb3VudCBvZiB0aW1lIGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIHRvIGFkZCBiZXR3ZWVuIGVhY2ggaXRlbSdzIGFuaW1hdGlvbi5cbkBtaXhpbiBzdGFnZ2VyKCRkZWxheS1hbW91bnQpIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMDsgLy8gUHJldmVudCBhY2NpZGVudGFsIENTUyBpbmhlcml0YW5jZVxufVxuIiwiLy8gc2Nzcy1saW50OmRpc2FibGUgSW1wb3J0YW50UnVsZSwgU3BhY2VBZnRlckNvbW1hLCBTaW5nbGVMaW5lUGVyUHJvcGVydHlcblxuQG1peGluIC1tb3Rpb24tdWktZGVmYXVsdHMge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IG1hcC1nZXQoJG1vdGlvbi11aS1lYXNpbmdzLCBkZWZhdWx0KTtcbn1cblxuLy8gVHJhbnNpdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLXRyYW5zaXRpb25zIHtcbiAgLy8gU2xpZGVcbiAgLnNsaWRlLWluLWRvd24gICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBkb3duKTsgfVxuICAuc2xpZGUtaW4tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHJpZ2h0KTsgfVxuICAuc2xpZGUtaW4tdXAgICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHVwKTsgfVxuICAuc2xpZGUtaW4tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGxlZnQpOyB9XG4gIC5zbGlkZS1vdXQtZG93biAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgZG93bik7IH1cbiAgLnNsaWRlLW91dC1yaWdodCAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCByaWdodCk7IH1cbiAgLnNsaWRlLW91dC11cCAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCB1cCk7IH1cbiAgLnNsaWRlLW91dC1sZWZ0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBsZWZ0KTsgfVxuXG4gIC8vIEZhZGVcbiAgLmZhZGUtaW4gIHsgQGluY2x1ZGUgbXVpLWZhZGUoaW4sICAwLCAxKTsgfVxuICAuZmFkZS1vdXQgeyBAaW5jbHVkZSBtdWktZmFkZShvdXQsIDEsIDApOyB9XG5cbiAgLy8gSGluZ2VcbiAgLmhpbmdlLWluLWZyb20tdG9wICAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3ApOyB9XG4gIC5oaW5nZS1pbi1mcm9tLXJpZ2h0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWJvdHRvbSAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgYm90dG9tKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1sZWZ0ICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGxlZnQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS14ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS15ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0LCBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS10b3AgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tYm90dG9tICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGJvdHRvbSk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBsZWZ0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXggeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCwgY2VudGVyKTsgfVxuXG4gIC8vIFNjYWxlXG4gIC5zY2FsZS1pbi11cCAgICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMC41LCAxKTsgfVxuICAuc2NhbGUtaW4tZG93biAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDEuNSwgMSk7IH1cbiAgLnNjYWxlLW91dC11cCAgIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAxLjUpOyB9XG4gIC5zY2FsZS1vdXQtZG93biB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMC41KTsgfVxuXG4gIC8vIFNwaW5cbiAgLnNwaW4taW4gICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjdyk7IH1cbiAgLnNwaW4tb3V0ICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjdyk7IH1cbiAgLnNwaW4taW4tY2N3ICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY2N3KTsgfVxuICAuc3Bpbi1vdXQtY2N3IHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjY3cpOyB9XG5cbiAgLy8gVHJhbnNpdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyB0cmFuc2l0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBbmltYXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS1hbmltYXRpb25zIHtcbiAgLnNoYWtlICAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzaGFrZSk7IH1cbiAgLnNwaW4tY3cgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKTsgfVxuICAuc3Bpbi1jY3cgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4oY2N3KSk7IH1cbiAgLndpZ2dsZSAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbih3aWdnbGUpOyB9XG5cbiAgLnNoYWtlLFxuICAuc3Bpbi1jdyxcbiAgLnNwaW4tY2N3LFxuICAud2lnZ2xlIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB9XG5cbiAgLy8gQW5pbWF0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuICAuaW5maW5pdGUgeyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyBhbmltYXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8gRm9ybWF0IGZvciBDU1MgY2xhc3NlcyBjcmVhdGVkIHdpdGggTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBhcHBlbmQgW3RydWVdIC0gRGVmaW5lcyBpZiBzZWxlY3RvcnMgYXJlIGNoYWluZWQgdG8gdGhlIHNlbGVjdG9yIChgLmNsYXNzLmVudGVyYCksIG9yIGFwcGVuZGVkIGFzIGEgbmV3IGNsYXNzIChgLmNsYXNzLWVudGVyYCkuXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnbXVpLSddIC0gUHJlZml4IHRvIGFkZCBiZWZvcmUgdGhlIHN0YXRlIG9mIGEgY2xhc3MuIEVudGVyIGFuIGVtcHR5IHN0cmluZyB0byB1c2Ugbm8gcHJlZml4LlxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJy1hY3RpdmUnXSAtIFN1ZmZpeCB0byBhZGQgdG8gdGhlIGFjdGl2ZSBzdGF0ZSBjbGFzcy5cbiRtb3Rpb24tdWktY2xhc3NlczogKFxuICBjaGFpbjogdHJ1ZSxcbiAgcHJlZml4OiAnbXVpLScsXG4gIGFjdGl2ZTogJy1hY3RpdmUnLFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRlIG5hbWVzIHRvIHJlZmVyZW5jZSB3aGVuIHdyaXRpbmcgbW90aW9uIGNsYXNzZXMuIFRvIHVzZSBtdWx0aXBsZSBjbGFzcyBuYW1lcyBmb3Igb25lIHN0YXRlLCBlbnRlciBhIGxpc3Qgb2Ygc3RyaW5ncyBpbnN0ZWFkIG9mIG9uZSBzdHJpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXN0YXRlczogKFxuICBpbjogJ2VudGVyJyxcbiAgb3V0OiAnbGVhdmUnLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3BlZWQgdGhhdCB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucyBwbGF5IGF0LCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIHNwZWVkLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1zcGVlZHM6IChcbiAgZGVmYXVsdDogNTAwbXMsXG4gIHNsb3c6IDc1MG1zLFxuICBmYXN0OiAyNTBtcyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRlbGF5IHRvIGFkZCBiZWZvcmUgbW90aW9uLCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGRlbGF5LlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1kZWxheXM6IChcbiAgZGVmYXVsdDogMCxcbiAgc2hvcnQ6IDMwMG1zLFxuICBsb25nOiA3MDBtcyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGVhc2luZyBmb3IgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZWFzaW5nLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1lYXNpbmdzOiAoXG4gIGRlZmF1bHQ6IGxpbmVhcixcbiAgbGluZWFyOiBsaW5lYXIsXG4gIGVhc2U6IGVhc2UsXG4gIGVhc2UtaW46IGVhc2UtaW4sXG4gIGVhc2Utb3V0OiBlYXNlLW91dCxcbiAgZWFzZS1pbi1vdXQ6IGVhc2UtaW4tb3V0LFxuICBib3VuY2UtaW46IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSxcbiAgYm91bmNlLW91dDogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSxcbiAgYm91bmNlLWluLW91dDogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpLFxuKSAhZGVmYXVsdDtcblxuLy8vIE1pc2NlbGxhbmVvdXMgc2V0dGluZ3MgcmVsYXRlZCB0byBNb3Rpb24gVUkuXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFtmYWxzZV0gLSBEZWZpbmVzIGlmIHNsaWRlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgaGluZ2UgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzY2FsZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNwaW4gbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbiRtb3Rpb24tdWktc2V0dGluZ3M6IChcbiAgc2xpZGUtYW5kLWZhZGU6IGZhbHNlLFxuICBoaW5nZS1hbmQtZmFkZTogdHJ1ZSxcbiAgc2NhbGUtYW5kLWZhZGU6IHRydWUsXG4gIHNwaW4tYW5kLWZhZGU6IHRydWUsXG4gIGFjdGl2YXRlLXF1ZXVlLWNsYXNzOiAnaXMtYW5pbWF0aW5nJyxcbikgIWRlZmF1bHQ7XG4iLCIvLyBJbnRlcm5hbCBjb3VudGVyIGZvciBjcmVhdGluZyB1bmlxdWUga2V5ZnJhbWUgbmFtZXNcbiQtbXVpLWN1c3RvbTogMDtcblxuLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMuIFVzZSB0aGlzIGZ1bmN0aW9uIGluc3RlYWQgb2YgYG11aS1hbmltYXRpb25gIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGtleWZyYW1lIGFuaW1hdGlvbiAqd2l0aG91dCogYXV0b21hdGljYWxseSBhc3NpZ25pbmcgaXQgdG8gdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUga2V5ZnJhbWUuXG4vLy8gQHBhcmFtIHtGdW5jdGlvbn0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1rZXlmcmFtZXMoJG5hbWUsICRlZmZlY3RzLi4uKSB7XG4gICRvYmo6IC1tdWktcHJvY2Vzcy1hcmdzKCRlZmZlY3RzLi4uKTtcbiAgJG9iajogbWFwLXJlbW92ZSgkb2JqLCBuYW1lKTtcblxuICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAvLyBOb3cgaXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIEBlYWNoICRwY3QsICRwcm9wcyBpbiAkb2JqIHtcbiAgICAgICN7LW11aS1rZXlmcmFtZS1wY3QoJHBjdCl9IHtcbiAgICAgICAgLy8gTGFzdGx5LCBpdGVyYXRlIHRocm91Z2ggZWFjaCBDU1MgcHJvcGVydHkgd2l0aGluIGEgcGVyY2VudGFnZSBhbmQgcHJpbnQgaXQgb3V0XG4gICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BzIHtcbiAgICAgICAgICAjeyRwcm9wfTogI3skdmFsdWV9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc3RyaW5nIGZvciBhIENTUyBrZXlmcmFtZSwgYnkgY29udmVydGluZyBhIGxpc3Qgb2YgbnVtYmVycyB0byBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRpbnB1dCAtIExpc3Qgb2YgbnVtYmVycyB0byB1c2UuXG4vLy8gQHJldHVybiB7U3RyaW5nfSBBIHNldCBvZiBjb21tYS1zZXBhcmF0ZWQgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1wY3QoJGlucHV0KSB7XG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ251bWJlcicge1xuICAgICRvdXRwdXQ6ICgkaW5wdXQgKiAxJSk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkaW5wdXQpID09ICdsaXN0JyB7XG4gICAgQGVhY2ggJGkgaW4gJGlucHV0IHtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAoJGkgKiAxJSksIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBQcmludHMgdGhlIENTUyBwcm9wZXJ0aWVzIGZyb20gYSBzcGVjaWZpYyBrZXkgaW4gYSBrZXlmcmFtZXMgbWFwLiBVc2VkIHRvIGJvcnJvdyBDU1MgZnJvbSBrZXlmcmFtZSBmdW5jdGlvbnMgZm9yIHVzZSBpbiB0cmFuc2l0aW9ucy5cbi8vLyBAcGFyYW0ge01hcH0gJGtmIC0gS2V5ZnJhbWUgbWFwIHRvIGV4dHJhY3QgZnJvbS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGtleSAtIEtleSBpbiB0aGUgbWFwIHRvIHByaW50IHRoZSBDU1Mgb2YuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLW11aS1rZXlmcmFtZS1nZXQoJGtmLCAka2V5KSB7XG4gICRtYXA6IG1hcC1nZXQoJGtmLCAka2V5KTtcblxuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRtYXAgb3IgKCkge1xuICAgIC8vIFNvbWUga2V5ZnJhbWUgbWFwcyBzdG9yZSB0cmFuc2Zvcm1zIGFzIHF1b3RlZCBzdHJpbmdzXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkdmFsdWU6IHVucXVvdGUoJHZhbHVlKTtcbiAgICB9XG4gICAgI3skcHJvcH06ICR2YWx1ZTtcbiAgfVxufVxuXG4vLy8gUmVmb3JtYXRzIGEgbWFwIGNvbnRhaW5pbmcga2V5cyB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMsIHNvIHRoYXQgZWFjaCBrZXkgaXMgYSBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gc3BsaXQgdXAuXG4vLy8gQHJldHVybiB7TWFwfSBBIHJlZm9ybWF0dGVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIFNwbGl0IGtleXMgd2l0aCBtdWx0aXBsZSB2YWx1ZXMgaW50byBpbmRpdmlkdWFsIGtleXNcbiAgQGVhY2ggJGtleSwgJGl0ZW0gaW4gJG1hcCB7XG4gICAgJGtleS10eXBlOiB0eXBlLW9mKCRrZXkpO1xuXG4gICAgQGlmICRrZXktdHlwZSA9PSAnbnVtYmVyJyB7XG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJGl0ZW0pKTtcbiAgICB9IEBlbHNlIGlmICRrZXktdHlwZSA9PSAnbGlzdCcge1xuICAgICAgQGVhY2ggJGsgaW4gJGtleSB7XG4gICAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgkazogJGl0ZW0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgYSBzZXJpZXMgb2Yga2V5ZnJhbWUgb2JqZWN0cyBpbnRvIG9uZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcHMuLi4gLSBBIHNlcmllcyBvZiBtYXBzIHRvIG1lcmdlLCBhcyBpbmRpdmlkdWFsIHBhcmFtZXRlcnMuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIGtleWZyYW1lIG9iamVjdC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLWNvbWJpbmUoJG1hcHMuLi4pIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIG1hcCBwYXNzZWQgaW5cbiAgQGVhY2ggJG1hcCBpbiAkbWFwcyB7XG4gICAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ3N0cmluZycge1xuICAgICAgJG1hcDogY2FsbCgkbWFwKTtcbiAgICB9XG5cbiAgICAkbWFwOiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgaW4gdGhlIG1hcFxuICAgIC8vICRrZXkgaXMgdGhlIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICAvLyAkdmFsdWUgaXMgYSBtYXAgb2YgQ1NTIHByb3BlcnRpZXNcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgICAkbmV3LXZhbHVlOiAoKTtcblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRuZXctbWFwLCAka2V5KSB7XG4gICAgICAgIC8vIElmIHRoZSBtYXAgYWxyZWFkeSBoYXMgdGhlIGtleWZyYW1lICUsIGFwcGVuZCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6IC1tdWktbWVyZ2UtcHJvcGVydGllcyhtYXAtZ2V0KCRuZXctbWFwLCAka2V5KSwgJHZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSBhIG5ldyBtYXAgd2l0aCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6ICR2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluYWxseSwgbWVyZ2UgdGhlIG1vZGlmaWVkIGtleWZyYW1lIHZhbHVlIGludG8gdGhlIG91dHB1dCBtYXBcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkbmV3LXZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFrZSBhIG5hbWUgZm9yIHRoZSBrZXlmcmFtZXNcbiAgJC1tdWktY3VzdG9tOiAkLW11aS1jdXN0b20gKyAxICFnbG9iYWw7XG4gICRtYXAtbmFtZTogKG5hbWU6ICdjdXN0b20tI3skLW11aS1jdXN0b219Jyk7XG4gICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICRtYXAtbmFtZSk7XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIHR3byBtYXBzIG9mIENTUyBwcm9wZXJ0aWVzIGludG8gb25lIG1hcC4gSWYgYm90aCBtYXBzIGhhdmUgYSB0cmFuc2Zvcm0gcHJvcGVydHksIHRoZSB2YWx1ZXMgZnJvbSBlYWNoIHdpbGwgYmUgY29tYmluZWQgaW50byBvbmUgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtNYXB9ICRvbmUgLSBGaXJzdCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHBhcmFtIHtNYXB9ICR0d28gLSBTZWNvbmQgbWFwIHRvIG1lcmdlLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1tZXJnZS1wcm9wZXJ0aWVzKCRvbmUsICR0d28pIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRvbmUsIHRyYW5zZm9ybSkgYW5kIG1hcC1oYXMta2V5KCR0d28sIHRyYW5zZm9ybSkge1xuICAgICR0cmFuc2Zvcm06IGpvaW4obWFwLWdldCgkb25lLCB0cmFuc2Zvcm0pLCBtYXAtZ2V0KCR0d28sIHRyYW5zZm9ybSkpO1xuICAgICRvbmU6IG1hcC1tZXJnZSgkb25lLCAodHJhbnNmb3JtOiAkdHJhbnNmb3JtKSk7XG4gICAgJHR3bzogbWFwLXJlbW92ZSgkdHdvLCB0cmFuc2Zvcm0pO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJG9uZSwgJHR3byk7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNsaWRpbmcgdHJhbnNpdGlvbiBieSB0cmFuc2xhdGluZyB0aGUgZWxlbWVudCBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2xlZnRdIC0gRGlyZWN0aW9uIHRvIHNsaWRlIHRvLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRhbW91bnQgWzEwMCVdIC0gTGVuZ3RoIG9mIHRoZSBzbGlkZSBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc2xpZGUgKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiBsZWZ0LFxuICAkYW1vdW50OiAxMDAlLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzbGlkZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNsaWRlOiBzbGlkZSgkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xuXG4gIC8vIENTUyBPdXRwdXRcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cblxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBmYWRlIHRyYW5zaXRpb24gYnkgYWRqdXN0aW5nIHRoZSBvcGFjaXR5IG9mIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMF0gLSBPcGFjaXR5IHRvIHN0YXJ0IGF0LiBNdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvIFsxXSAtIE9wYWNpdHkgdG8gZW5kIG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWZhZGUoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiAwLFxuICAkdG86IDEsXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGZhZGU6IGZhZGUoJGZyb20sICR0byk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDApO1xuXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRmYWRlLCAxMDApO1xuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIGVmZmVjdCBieSByb3RhdGluZyB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmcm9tIFtsZWZ0XSAtIEVkZ2Ugb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIGZyb20uIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRheGlzIFtlZGdlXSAtIEF4aXMgb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIG9uLiBDYW4gYmUgYGVkZ2VgIG9yIGBjZW50ZXJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGVyc3BlY3RpdmUgWzIwMDBweF0gLSBQZXJjZWl2ZWQgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdmlld2VyIGFuZCB0aGUgZWxlbWVudC4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgbWFrZSB0aGUgcm90YXRpb24gZWZmZWN0IG1vcmUgcHJvbm91bmNlZC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0dXJuLW9yaWdpbiBbZnJvbS1iYWNrXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuXG5AZnVuY3Rpb24gaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFja1xuKSB7XG4gIC8vIFJvdGF0aW9uIGRpcmVjdGlvbnMgd2hlbiBoaW5naW5nIGZyb20gYmFjayB2cy4gZnJvbnRcbiAgJHJvdGF0aW9uLWFtb3VudDogOTBkZWc7XG4gICRyb3RhdGlvbnMtYmFjazogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICk7XG4gICRyb3RhdGlvbnMtZnJvbTogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICk7XG5cbiAgLy8gUm90YXRpb24gb3JpZ2luXG4gICRyb3RhdGlvbjogJyc7XG4gIEBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1mcm9udCB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtZnJvbSwgJGZyb20pO1xuICB9IEBlbHNlIGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWJhY2sge1xuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zLWJhY2ssICRmcm9tKTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJyR0dXJuLW9yaWdpbiBtdXN0IGJlIGVpdGhlciBcImZyb20tYmFja1wiIG9yIFwiZnJvbS1mcm9udFwiJztcbiAgfVxuXG4gIC8vIFN0YXJ0IGFuZCBlbmQgc3RhdGVcbiAgJHN0YXJ0OiAnJztcbiAgJGVuZDogJyc7XG4gIEBpZiAkc3RhdGUgPT0gaW4ge1xuICAgICRzdGFydDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSByb3RhdGUoMGRlZyk7XG4gIH0gQGVsc2Uge1xuICAgICRzdGFydDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSByb3RhdGUoMGRlZyk7XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gIH1cblxuICAvLyBUdXJuIGF4aXNcbiAgJG9yaWdpbjogJyc7XG4gIEBpZiAkYXhpcyA9PSBlZGdlIHtcbiAgICAkb3JpZ2luOiAkZnJvbTtcbiAgfSBAZWxzZSB7XG4gICAgJG9yaWdpbjogY2VudGVyO1xuICB9XG5cbiAgJGtleWZyYW1lczogKFxuICAgIG5hbWU6ICdoaW5nZS0jeyRzdGF0ZX0tI3skZnJvbX0tI3skYXhpc30tI3skdHVybi1vcmlnaW59JyxcbiAgICAwOiAodHJhbnNmb3JtOiAkc3RhcnQsIHRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW4pLFxuICAgIDEwMDogKHRyYW5zZm9ybTogJGVuZCksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBoaW5nZSB0cmFuc2l0aW9uIGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtmcm9tLWJhY2tdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWhpbmdlIChcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IGxlZnQsXG4gICRheGlzOiBlZGdlLFxuICAkcGVyc3BlY3RpdmU6IDIwMDBweCxcbiAgJHR1cm4tb3JpZ2luOiBmcm9tLWJhY2ssXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIGhpbmdlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkaGluZ2U6IGhpbmdlKCRzdGF0ZSwgJGZyb20sICRheGlzLCAkcGVyc3BlY3RpdmUsICR0dXJuLW9yaWdpbik7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRoaW5nZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBzY2FsaW5nIHRyYW5zaXRpb24uIEEgc2NhbGUgb2YgYDFgIG1lYW5zIHRoZSBlbGVtZW50IGlzIHRoZSBzYW1lIHNpemUuIExhcmdlciBudW1iZXJzIG1ha2UgdGhlIGVsZW1lbnQgYmlnZ2VyLCB3aGlsZSBudW1iZXJzIGxlc3MgdGhhbiAxIG1ha2UgdGhlIGVsZW1lbnQgc21hbGxlci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzEuNV0gLSBTaXplIHRvIHN0YXJ0IGF0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMV0gLSBTaXplIHRvIGVuZCBhdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXpvb20oXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiAxLjUsXG4gICR0bzogMSxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2NhbGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzY2FsZTogem9vbSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNjYWxlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNwaW5uaW5nIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuIFRoZSBgdHVybmAgdW5pdCBpcyB1c2VkIHRvIHNwZWNpZnkgaG93IGZhciB0byByb3RhdGUuIGAxdHVybmAgaXMgZXF1YWwgdG8gYSAzNjAtZGVncmVlIHNwaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZGlyZWN0aW9uIFtjd10gLSBEaXJlY3Rpb24gdG8gc3Bpbi4gU2hvdWxkIGJlIGBjd2AgKGNsb2Nrd2lzZSkgb3IgYGNjd2AgKGNvdW50ZXJjbG9ja3dpc2UpLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYW1vdW50IFswLjc1dHVybl0gLSBBbW91bnQgdG8gZWxlbWVudCB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zcGluKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiBjdyxcbiAgJGFtb3VudDogMC43NXR1cm4sXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNwaW4tYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzcGluOiBzcGluKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNwaW4sIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNwaW4sIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEga2V5ZnJhbWUgZnJvbSBvbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIGFuZCBhc3NpZ25zIGl0IHRvIHRoZSBlbGVtZW50IGJ5IGFkZGluZyB0aGUgYGFuaW1hdGlvbi1uYW1lYCBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWFuaW1hdGlvbigkYXJncy4uLikge1xuICAkbmFtZTogbWFwLWdldCgtbXVpLXByb2Nlc3MtYXJncygkYXJncy4uLiksIG5hbWUpO1xuICBAaW5jbHVkZSBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkYXJncy4uLik7XG4gIGFuaW1hdGlvbi1uYW1lOiB1bnF1b3RlKCRuYW1lKTtcbn1cbiIsIkBjaGFyc2V0ICd1dGYtOCc7XG5cbkBpbXBvcnQgXCJnbG9iYWwvY29sb3JzXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL2ZvbnRzXCI7XG5cbkBpbXBvcnQgJ3NldHRpbmdzJztcbkBpbXBvcnQgJ2ZvdW5kYXRpb24nO1xuQGltcG9ydCAnbW90aW9uLXVpJztcblxuQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcblxuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mb3Jtcztcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcmFuZ2UtaW5wdXQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG5cbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7XG5cbkBpbmNsdWRlIG1vdGlvbi11aS10cmFuc2l0aW9ucztcbkBpbmNsdWRlIG1vdGlvbi11aS1hbmltYXRpb25zO1xuXG4vKlxuICBNeSBjdXN0b20gc3R5bGVzOlxuICBBZGQgeW91ciBzY3NzIGZpbGVzIGJlbG93IHRvIHN0cnVjdHVyZSB5b3VyIHByb2plY3Qgc3R5bGVzXG4qL1xuXG4vLyBHbG9iYWxcbkBpbXBvcnQgXCJnbG9iYWwvYWNjZXNzaWJpbGl0eVwiO1xuLy9AaW1wb3J0IFwiZ2xvYmFsL2d1dGVuYmVyZ1wiO1xuQGltcG9ydCBcImdsb2JhbC90eXBlXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL3dwLWFkbWluXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL3dwLW92ZXJyaWRlc1wiO1xuXG4vLyBWZW5kb3JcbkBpbXBvcnQgXCJwbHVnaW5zL2ZhY2V0d3AtZnJvbnRcIjtcbkBpbXBvcnQgXCJwbHVnaW5zL3NsaWNrXCI7XG5AaW1wb3J0IFwicGx1Z2lucy9zbGljay1jb29sLXRpbWVsaW5lLXByb1wiO1xuQGltcG9ydCBcInBsdWdpbnMvc2xpY2stdGhlbWVcIjtcbkBpbXBvcnQgXCJwbHVnaW5zL3NpbXBsZWJhclwiO1xuXG5cbi8vIE1vZHVsZXNcbkBpbXBvcnQgXCJtb2R1bGVzL2NvbnRlbnRcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2Zvb3RlclwiO1xuQGltcG9ydCBcIm1vZHVsZXMvaGVhZGVyXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9lZGl0b3Itc3R5bGVcIjtcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvbGlua3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3V0aWxpdGllc1wiO1xuXG4vLyBUZW1wbGF0ZXNcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvZnJvbnRcIjtcbiIsIi8vIFRleHQgbWVhbnQgb25seSBmb3Igc2NyZWVuIHJlYWRlcnMuIEFkZHJlc3NlcyBwYXJ0IG9mIHRoZW1lLWNoZWNrIGlzc3VlICM4NDAuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vQXV0b21hdHRpYy9fcy9ibG9iL21hc3Rlci9zdHlsZS5jc3Ncbi5zY3JlZW4tcmVhZGVyLXRleHQge1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE3NTliO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1cHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRvcDogNXB4O1xuICB3aWR0aDogYXV0bztcbiAgei1pbmRleDogMTAwMDAwOyAvLyBBYm92ZSBXUCB0b29sYmFyLlxufVxuIiwiLy8gZm9udCBtaXhpbnNcbkBtaXhpbiBib2xkKCkge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbkBtaXhpbiBpdGFsaWMoKSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLy8gaGVhZGVyc1xuaDEge1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4uaGRyLXNlY3Rpb24ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuaDIuaGRyLXNlY3Rpb24ge1xuICBmb250LXNpemU6IHJlbS1jYWxjKDI0cHgpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyOHB4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygzNHB4KTtcbiAgfVxufVxuaDMuaGRyLXNlY3Rpb24ge1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE4cHgpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMXB4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNHB4KTtcbiAgfVxufVxuXG4vLyBoZWFkZXIgbGFiZWxcbi5oZHItbGFiZWwge1xuICBmb250LWZhbWlseTogJGxhYmVsLWZvbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE4cHgpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMHB4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMnB4KTtcbiAgfVxuXG59XG5cbi5oZHItbGFiZWwuaGRyLWxhYmVsLWxnIHtcbiAgQGV4dGVuZCAuaGRyLWxhYmVsO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDIwcHgpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMnB4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNHB4KTtcbiAgfVxufVxuXG4vLyB0ZXh0IGxhYmVsXG4udHh0LWxhYmVsIHtcbiAgZm9udC1mYW1pbHk6ICRsYWJlbC1mb250O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxOHB4KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjBweCk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjJweCk7XG4gIH1cbn1cblxuLy8gYm9keVxuQG1peGluIHAtcmVnKCkge1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE2cHgpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxN3B4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygkZ2xvYmFsLWZvbnQtc2l6ZSk7IC8vIDE4XG4gIH1cbn1cbnAsXG4ucC1yZWcge1xuICBAaW5jbHVkZSBwLXJlZygpO1xufVxuXG5AbWl4aW4gcC1zbSgpIHtcbiAgLy9AZXh0ZW5kIHA7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTRweCk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE1cHgpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2cHgpO1xuICB9XG59XG4ucC1zbSB7XG4gIEBpbmNsdWRlIHAtc20oKTtcbn1cblxuQG1peGluIHAtbGcoKSB7XG4gIC8vQGV4dGVuZCBwO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDIwcHgpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMnB4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNHB4KTtcbiAgfVxufVxuLnAtbGcge1xuICBAaW5jbHVkZSBwLWxnKCk7XG59XG4ucC1pbnRybyB7XG4gIEBpbmNsdWRlIHAtbGcoKTtcbiAgQGluY2x1ZGUgYm9sZCgpO1xufVxuXG5cblxuXG5cblxuXG5cbi8vIGxpc3RcbnVsLCBvbCB7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE0cHgpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNXB4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcbiAgfVxuXG59XG5cblxuQG1peGluIGxpc3QoKSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xuXG4gIHVsLCBvbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjFyZW07XG4gIH1cblxuICBsaSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXDIwMjJcIjsgIC8qIEFkZCBjb250ZW50OiBcXDIwMjIgaXMgdGhlIENTUyBDb2RlL3VuaWNvZGUgZm9yIGEgYnVsbGV0ICovXG4gICAgICBjb2xvcjogIzk5OTsgLyogQ2hhbmdlIHRoZSBjb2xvciAqL1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IC8qIElmIHlvdSB3YW50IGl0IHRvIGJlIGJvbGQgKi9cbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogTmVlZGVkIHRvIGFkZCBzcGFjZSBiZXR3ZWVuIHRoZSBidWxsZXQgYW5kIHRoZSB0ZXh0ICovXG4gICAgICB3aWR0aDogMS4yZW07IC8qIEFsc28gbmVlZGVkIGZvciBzcGFjZSAodHdlYWsgaWYgbmVlZGVkKSAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xLjJlbTsgLyogQWxzbyBuZWVkZWQgZm9yIHNwYWNlICh0d2VhayBpZiBuZWVkZWQpICovXG4gICAgfVxuICB9XG4gIGxpIGxpIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcMjAxNFwiO1xuICAgIH1cbiAgfVxuXG59XG51bC5saXN0IHtcbiAgQGluY2x1ZGUgbGlzdCgpO1xufVxuXG5cbkBtaXhpbiBsaXN0LWxnKCkge1xuICBAaW5jbHVkZSBsaXN0KCk7XG4gIG1hcmdpbi1sZWZ0OiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE2cHgpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOHB4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMHB4KTtcbiAgfVxufVxudWwubGlzdC1sZyB7XG4gIEBpbmNsdWRlIGxpc3QtbGcoKTtcbn1cblxudWwubWVudSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5cbmEge1xuICBjb2xvcjogJHRleHQtbGluay1vcmFuZ2U7XG5cbiAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAkYnV0dG9uLW9yYW5nZTtcbiAgICB9XG4gIH1cblxufVxuXG5hZGRyZXNzIHtcbiAgQGV4dGVuZCBwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cblxudGltZSB7XG4gIGNvbG9yOiAkZG93bC1ncmV5O1xuICBmb250LWZhbWlseTogJGxhYmVsLWZvbnQ7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTZweCk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE3cHgpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4cHgpO1xuICB9XG5cbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgZm9udC1mYW1pbHk6ICRsYWJlbC1mb250O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjBweCk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIycHgpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0cHgpO1xuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDQzcHg7IGhlaWdodDogMThweDtcbiAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29uLXF1b3RlLnN2Zykgbm8tcmVwZWF0O1xuICB9XG5cbn1cbmJvZHkuc2luZ2xlLXBvc3Qge1xuXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMnJlbTtcbiAgfVxuXG59XG5cblxuc2VsZWN0IHtcbiAgY29sb3I6ICM3Nzc7XG59XG5sYWJlbCB7XG4gIG1hcmdpbjogMCAwIDRweCAwO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE1cHgpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogYm9sZDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTZweCk7XG4gIH1cblxufVxuIiwiLy8gRml4IHRoZSBpc3N1ZSB3aGVyZSB0aGUgV1AgYWRtaW4tYmFyIG92ZXJsYXBzIHRoZSBtb2JpbGUgbWVudVxuI3dwYWRtaW5iYXIge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbn1cblxuLy8gTWFrZSBzdXJlIHRoYXQgdGhlIFdQIGFkbWluLWJhciBkb2VzIG5vdCBvdmVybGFwIEZvdW5kYXRpb24gY29tcG9uZW50c1xuYm9keS5hZG1pbi1iYXIge1xuICAvLyBPZmZzZXQgc3RpY2t5IHRvcCBiYXJcbiAgJi5mLXRvcGJhci1maXhlZCB7XG4gICAgLnN0aWNreS5maXhlZCB7XG4gICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygzMik7XG4gICAgfVxuICB9XG4gIC8vIE9mZnNldCBtb2JpbGUgb2ZmLWNhbnZhcyBtZW51XG4gICYub2ZmY2FudmFzIHtcbiAgICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICAgIHRvcDogcmVtLWNhbGMoNDYpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg3ODMpIHtcbiAgICAgICAgdG9wOiByZW0tY2FsYygzMik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBuYXZpZ2F0aW9uXG4ucG9zdC1uYXZpZ2F0aW9uIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi5uYXYtcHJldmlvdXMge1xuICBmbG9hdDpsZWZ0O1xufVxuXG4ubmF2LW5leHQge1xuICBmbG9hdDpyaWdodDtcbn1cblxuXG4vLyBjYXB0aW9uc1xuLndwLWNhcHRpb24gPiBmaWdjYXB0aW9uIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6ICM5OTk7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMDtcbn1cblxucC53cC1jYXB0aW9uLXRleHR7XG4gIGZvbnQtc2l6ZTo5MCU7XG4gIGNvbG9yOiAjNjY2O1xuICBwYWRkaW5nOnJlbS1jYWxjKDEwKSAwO1xufVxuXG5cbi8vIGFsaWduXG4uYWxpZ25sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIG1hcmdpbjogMDtcbn1cblxuLmFsaWducmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uYWxpZ25jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmFsaWdubm9uZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDMwcHggMDtcbn1cblxuXG4ucG9zdC1jb250ZW50IHtcbiAgLy93b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgaW1nLmFsaWdubGVmdCxcbiAgaW1nLmFsaWducmlnaHQge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICB9XG5cbiAgfVxuXG59XG5cblxuXG4vLyBnYWxsZXJ5XG4uZ2FsbGVyeTIge1xuICBAaW5jbHVkZSB4eS1ncmlkO1xuICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggOSB7XG4gICAgJi5nYWxsZXJ5LWNvbHVtbnMtI3skaX0ge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoMiwgJy5nYWxsZXJ5LWl0ZW0nLCB0cnVlKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xuICAgICAgJi5nYWxsZXJ5LWNvbHVtbnMtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCg0LCAnLmdhbGxlcnktaXRlbScsIHRydWUsIChzbWFsbDogMzBweCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAmLmdhbGxlcnktY29sdW1ucy0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRpLCAnLmdhbGxlcnktaXRlbScsIHRydWUsIChzbWFsbDogMzBweCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuZ2FsbGVyeS1pY29uID4gYSB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsO1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbC1saW5rO1xuICB9XG4gIC5nYWxsZXJ5LWljb24gPiBpbWcge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIG1heCB3aWR0aCBjb250YWluZXIsIGRlc2lnbmVkIHRvIGhvdXNlIHlvdXIgZ3JpZCBjb250ZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtY29udGFpbmVyXSAtIGEgd2lkdGggdG8gbGltaXQgdGhlIGNvbnRhaW5lciB0by5cbkBtaXhpbiB4eS1ncmlkLWNvbnRhaW5lcihcbiAgJHdpZHRoOiAkZ3JpZC1jb250YWluZXIsXG4gICRwYWRkaW5nOiAkZ3JpZC1jb250YWluZXItcGFkZGluZ1xuKSB7XG4gIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRwYWRkaW5nLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuXG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIHlvdXIgZmxleCBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbaG9yaXpvbnRhbF0gLSBFaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBkaXJlY3Rpb24gb2YgY2VsbHMgd2l0aGluLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHdyYXAgW3RydWVdIC0gSWYgdGhlIGNlbGxzIHdpdGhpbiBzaG91bGQgd3JhcCBvciBub3QuXG5AbWl4aW4geHktZ3JpZChcbiAgJGRpcmVjdGlvbjogaG9yaXpvbnRhbCxcbiAgJHdyYXA6IHRydWVcbikge1xuICAkZGlyZWN0aW9uOiBpZigkZGlyZWN0aW9uID09ICdob3Jpem9udGFsJywgcm93LCBjb2x1bW4pO1xuICAkd3JhcDogaWYoJHdyYXAsIHdyYXAsIG5vd3JhcCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiAkZGlyZWN0aW9uICR3cmFwO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlIGd1dHRlcnMgZm9yIGEgY2VsbC9jb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGVpdGhlciBtYXJnaW4gb3IgcGFkZGluZy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lZ2F0aXZlIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGFwcGx5IHRoZSBndXR0ZXIgYXMgYSBuZWdhdGl2ZSB2YWx1ZS4gQ29tbW9ubHkgdXNlZCBmb3IgbmVzdGVkIGdyaWRzLlxuQG1peGluIHh5LWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRuZWdhdGl2ZTogZmFsc2Vcbikge1xuICAkb3BlcmF0b3I6IGlmKCRuZWdhdGl2ZSwgJy0nLCAnJyk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBkZWNsYXJlZCBuZWdhdGl2ZSBndXR0ZXJzLCBmb3JjZSB0eXBlIHRvIGBtYXJnaW4uXG4gICRndXR0ZXItdHlwZTogaWYoJG5lZ2F0aXZlLCAnbWFyZ2luJywgJGd1dHRlci10eXBlKTtcblxuICAvLyBPdXRwdXQgb3VyIG1hcmdpbiBndXR0ZXJzLlxuICBAaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJGd1dHRlcnMpIHtcbiAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06ICN7JG9wZXJhdG9yfSRndXR0ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdudW1iZXInKSB7XG4gICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcnMpIC8gMjtcblxuICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIGd1dHRlciBwb3NpdGlvblxuICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06ICN7JG9wZXJhdG9yfSRndXR0ZXI7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBTaXplcyBjaGlsZCBlbGVtZW50cyBzbyB0aGF0IGAkbmAgbnVtYmVyIG9mIGl0ZW1zIGFwcGVhciBvbiBlYWNoIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBlbGVtZW50cyB0byBkaXNwbGF5IHBlciByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJy5jZWxsJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gIG9yIGBwYWRkaW5nYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jZWxsJyxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRzaXplOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoJHNpemUsICRndXR0ZXItb3V0cHV0LCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlIHNpemUgb2YgYSBjZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHNpemUgWyRncmlkLWNvbHVtbnNdIC0gU2l6ZSB0byBtYWtlIHRoZSBjZWxsLiBZb3UgY2FuIHBhc3MgYSB2YWx1ZSBpbiBtdWx0aXBsZSBmb3JtYXRzLCBzdWNoIGFzIGA2YCwgYDUwJWAsIGAxIG9mIDIgb3IgMS8zLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6ICRncmlkLWNvbHVtbnNcbikge1xuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgbiBvZiBuIGFuZCBudW1iZXIgY291bnRzXG4gIEBpZiB0eXBlLW9mKCRzaXplKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJHNpemUpID09ICclJyB7XG4gICAgICAkc2l6ZTogJHNpemU7XG4gICAgfVxuICAgIEBlbHNlIGlmICRzaXplIDwgMSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZSgkc2l6ZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzaXplOiBwZXJjZW50YWdlKCRzaXplIC8gJGdyaWQtY29sdW1ucyk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIG9yIFwibi9uXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2VpZiB0eXBlLW9mKCRzaXplKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJHNpemUpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIHh5LWNlbGwtc2l6ZSgpLiBVc2UgdGhlIGZvcm1hdCBcIm4gb2YgblwiIG9yIFwibi9uXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHNpemU6IHBlcmNlbnRhZ2UobnRoKCRzaXplLCAxKSAvIG50aCgkc2l6ZSwgMykpO1xuICAgIH1cbiAgfVxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIHh5LWNlbGwtc2l6ZSgpLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIgLyBcIm4vblwiLic7XG4gIH1cblxuICBAcmV0dXJuICRzaXplO1xufVxuXG4vLy8gU2V0cyBiYXNlIGZsZXggcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQWNjZXB0cyBgZnVsbGAsIGBhdXRvYCBvciBgc2hyaW5rYC5cbkBtaXhpbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgIC8vIFRoaXMgaXMgdGhlIGJhc2Ugc3R5bGUsIGFsbCBvdGhlcnMgaW5oZXJpdCBmcm9tIGl0XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWluLWhlaWdodDogMHB4O1xuICAgIG1pbi13aWR0aDogMHB4O1xuICB9XG4gIEBlbHNlaWYgKCRzaXplID09ICdhdXRvJykge1xuICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gIH1cbiAgQGVsc2VpZiAoJHNpemUgPT0gJ3NocmluaycpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxufVxuXG4vLy8gUmVzZXRzIGEgY2VsbHMgd2lkdGggKG9yIGhlaWdodCBpZiB2ZXJ0aWNhbCBpcyB0cnVlKSBhcyB3ZWxsIGFzIHN0cmlwcyBpdHMgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXJlc2V0KCR2ZXJ0aWNhbDogdHJ1ZSkge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgd2lkdGgsIGhlaWdodCk7XG4gICN7JGRpcmVjdGlvbn06IGF1dG87XG59XG5cbi8vIFNldHMgb3VyIGNlbGwgd2lkdGhzIG9yIGhlaWdodHMgZGVwZW5kaW5nIG9uIGd1dHRlciB0eXBlLlxuQG1peGluIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICRtYXJnaW4tZ3V0dGVyLCAkdmVydGljYWwpIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIGhlaWdodCwgd2lkdGgpO1xuICBAaWYoJHNpemUgPT0gJ2Z1bGwnKSB7XG4gICAgJHZhbDogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgMTAwJSwgY2FsYygxMDAlIC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgI3skZGlyZWN0aW9ufTogJHZhbDtcbiAgfVxuICBAZWxzZWlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICAjeyRkaXJlY3Rpb259OiBhdXRvO1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsIDEwMCUsIGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICB9XG4gIEBlbHNlaWYgKCRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgJHZhbDogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgI3t4eS1jZWxsLXNpemUoJHNpemUpfSwgY2FsYygje3h5LWNlbGwtc2l6ZSgkc2l6ZSl9IC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgI3skZGlyZWN0aW9ufTogJHZhbDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGNlbGwgZm9yIHlvdXIgZ3JpZC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoZGVmYXVsdCkgZm9yIDEwMCUgd2lkdGgsIGBhdXRvYCB0byB1c2UgdXAgYXZhaWxhYmxlIHNwYWNlIGFuZCBgc2hyaW5rYCB0byB1c2UgdXAgb25seSByZXF1aXJlZCBzcGFjZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICBAaWYoJGJyZWFrcG9pbnQgPT0gbnVsbCkge1xuICAgIC8vIElmIGAkYnAtc2l6ZWAgaXMgYXZhaWxhYmxlIHRoZW4gdXNlIHRoaXMsIG90aGVyd2lzZSByZXZlcnQgdG8gdGhlIHNtYWxsZXN0IGJwLlxuICAgIEBpZih2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgICAkYnJlYWtwb2ludDogJC16Zi1zaXplO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2V0IG91ciBndXR0ZXJzIGZyb20gbWFwIGlmIGF2YWlsYWJsZSwgaWYgbm90IG1hcCBqdXN0IHJldHVybiB0aGUgdmFsdWUuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG5cbiAgLy8gQmFzZSBmbGV4IHByb3BlcnRpZXNcbiAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCRzaXplKTtcblxuICBAaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJGd1dHRlciwgJHZlcnRpY2FsKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgMCwgJHZlcnRpY2FsKTtcbiAgfVxuXG4gIEBpZiAkZ3V0dGVyLW91dHB1dCB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgc2l6ZWQgZ3JpZC4gVXNlZCB0byBnZW5lcmF0ZSBvdXIgZ3JpZCBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgIChkZWZhdWx0KSBmb3IgMTAwJSB3aWR0aCwgYGF1dG9gIHRvIHVzZSB1cCBhdmFpbGFibGUgc3BhY2UgYW5kIGBzaHJpbmtgIHRvIHVzZSB1cCBvbmx5IHJlcXVpcmVkIHNwYWNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtc3RhdGljKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG5cbiAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgJGd1dHRlci1wb3NpdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHRvcCBib3R0b20sIGxlZnQgcmlnaHQpO1xuXG4gIEBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcbiAgICBAaW5jbHVkZSAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkZ3V0dGVyLCAkdmVydGljYWwpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAwLCAkdmVydGljYWwpO1xuICB9XG5cbiAgLy8gSWYgd2Ugd2FudCB0byBvdXRwdXQgdGhlIGd1dHRlcnNcbiAgQGlmKCRndXR0ZXItb3V0cHV0KSB7XG4gICAgLy8gVE9ETzogRmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIHBhc3MgYnJlYWtwb2ludCBpbiBoZXJlIHRvby5cbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXIsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cbiIsIi5mYWNldHdwLWZhY2V0IHtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG4uZmFjZXR3cC1wYWdlci1sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMTJweDtcbn1cblxuLmZhY2V0d3AtcGFnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDBweCA0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmFjZXR3cC1wYWdlLmFjdGl2ZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZmFjZXR3cC1sb2FkaW5nIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbG9hZGluZy5wbmcnKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XG4gICAgYW5pbWF0aW9uOiBzcGluIDcwMG1zIGluZmluaXRlIGxpbmVhcjtcbn1cblxuLmZhY2V0d3Atb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgb3BhY2l0eTogMC42O1xufVxuXG4vKiBDaGVja2JveGVzICovXG5cbi5mYWNldHdwLXR5cGUtY2hlY2tib3hlcyAuZmFjZXR3cC1kZXB0aCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZhY2V0d3AtdHlwZS1jaGVja2JveGVzIC5mYWNldHdwLWRlcHRoLnZpc2libGUge1xuICAgIGRpc3BsYXk6IGluaGVyaXQ7XG59XG5cbi5mYWNldHdwLWNoZWNrYm94IHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9jaGVja2JveC5wbmcnKSAwIDUwJSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxNHB4IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mYWNldHdwLWNoZWNrYm94LmNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2NoZWNrYm94LW9uLnBuZycpO1xufVxuXG4uZmFjZXR3cC1jaGVja2JveC5kaXNhYmxlZCxcbi5mYWNldHdwLXJhZGlvLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZmFjZXR3cC1jaGVja2JveCAuZmFjZXR3cC1leHBhbmQge1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuLyogUmFkaW8gKi9cblxuLmZhY2V0d3AtcmFkaW8ge1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3JhZGlvLnBuZycpIDAgNTAlIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE0cHggMTRweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZhY2V0d3AtcmFkaW8uY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvcmFkaW8tb24ucG5nJyk7XG59XG5cbi8qIERhdGUgcmFuZ2UgKi9cblxuLmZsYXRwaWNrci1jbGVhciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogZlNlbGVjdCAqL1xuXG4uZmFjZXR3cC10eXBlLWZzZWxlY3QgLmZzLXdyYXAsXG4uZmFjZXR3cC10eXBlLWZzZWxlY3QgLmZzLWRyb3Bkb3duIHtcbiAgICB3aWR0aDogMjIwcHg7XG59XG5cbi5mYWNldHdwLXR5cGUtZnNlbGVjdCAuZnMtd3JhcC5mcy1kaXNhYmxlZCAuZnMtb3B0aW9uIHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZmFjZXR3cC10eXBlLWZzZWxlY3QgLmZzLW9wdGlvbiAuZnMtb3B0aW9uLWxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZmFjZXR3cC10eXBlLWZzZWxlY3QgLmZzLW9wdGlvbi5kMSAuZnMtb3B0aW9uLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi5mYWNldHdwLXR5cGUtZnNlbGVjdCAuZnMtb3B0aW9uLmQyIC5mcy1vcHRpb24tbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcbn1cblxuLmZhY2V0d3AtdHlwZS1mc2VsZWN0IC5mcy1vcHRpb24uZDMgLmZzLW9wdGlvbi1sYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xufVxuXG4vKiBIaWVyYXJjaHkgKi9cblxuLmZhY2V0d3AtZGVwdGgge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xufVxuXG4uZmFjZXR3cC1saW5rIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mYWNldHdwLWxpbmsuY2hlY2tlZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZmFjZXR3cC10b2dnbGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZhY2V0d3Atc2VvLFxuLmZhY2V0d3AtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmZhY2V0d3Atc2xpZGVyLXdyYXAge1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xufVxuXG4uZmFjZXR3cC1zbGlkZXItcmVzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDFweCAjZmZmLCBpbnNldCAwIDFweCA3cHggI2ViZWJlYiwgMCAzcHggNnB4IC0zcHggI2JiYjtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogU2VhcmNoICovXG5cbi5mYWNldHdwLXNlYXJjaC13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mYWNldHdwLXNlYXJjaCB7XG4gICAgcGFkZGluZy1yaWdodDogMjhweDtcbn1cblxuLmZhY2V0d3AtYnRuIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG9wYWNpdHk6IDAuNTtcbn1cblxuLmZhY2V0d3AtYnRuOmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9pY29uLXNlYXJjaC5wbmcnKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XG59XG5cbi8qIFByb3hpbWl0eSAqL1xuXG4ubG9jYXRpb24td3JhcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuaW5wdXQuZmFjZXR3cC1sb2NhdGlvbiB7XG4gICAgcGFkZGluZy1yaWdodDogMjhweDtcbiAgICBtaW4td2lkdGg6IDI0MHB4O1xufVxuXG4ubG9jYXRpb24tcmVzdWx0cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkZGQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmxvY2F0aW9uLXJlc3VsdCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNvbG9yOiAjODg4O1xufVxuXG4ubG9jYXRpb24tcmVzdWx0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xufVxuXG4ubG9jYXRpb24tcmVzdWx0LmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VCRjJGRTtcbn1cblxuLnJlc3VsdC1tYWluIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICMyMjI7XG59XG5cbi5sb2NhdGUtbWUge1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3BhY2l0eTogMC41O1xufVxuXG4ubG9jYXRlLW1lOmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9pY29uLWxvY2F0ZS5wbmcnKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XG59XG5cbi5sb2NhdGUtbWUuZi1sb2FkaW5nOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbG9hZGluZy5wbmcnKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XG4gICAgYW5pbWF0aW9uOiBzcGluIDcwMG1zIGluZmluaXRlIGxpbmVhcjtcbn1cblxuLmxvY2F0ZS1tZS5mLXJlc2V0OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvaWNvbi1jbG9zZS5wbmcnKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XG59XG5cbi8qIFJhdGluZyAqL1xuXG4uZmFjZXR3cC1zdGFycyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcGFkZGluZy1yaWdodDogNHB4O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uZmFjZXR3cC1zdGFyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogI2NjYztcbn1cblxuLmZhY2V0d3Atc3Rhcjpob3Zlcixcbi5mYWNldHdwLXN0YXI6aG92ZXIgfiAuZmFjZXR3cC1zdGFyLFxuLmZhY2V0d3Atc3Rhci5zZWxlY3RlZCxcbi5mYWNldHdwLXN0YXIuc2VsZWN0ZWQgfiAuZmFjZXR3cC1zdGFyIHtcbiAgICBjb2xvcjogIzAwMDtcbn1cblxuLmZhY2V0d3Atc3Rhci5zZWxlY3RlZDpob3Zlcixcbi5mYWNldHdwLXN0YXIuc2VsZWN0ZWQ6aG92ZXIgfiAuZmFjZXR3cC1zdGFyIHtcbiAgICBjb2xvcjogcmVkO1xufVxuXG4vKiBDU1MgYW5pbWF0aW9ucyAqL1xuXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuLyogU2VsZWN0aW9ucyBzaG9ydGNvZGUgKi9cblxuLmZhY2V0d3Atc2VsZWN0aW9ucyBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uZmFjZXR3cC1zZWxlY3Rpb25zIC5mYWNldHdwLXNlbGVjdGlvbi12YWx1ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb24tY2xvc2UucG5nJyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDEycHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG59XG4iLCIvKiBTbGlkZXIgKi9cblxuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGN1cnNvcjogaGFuZDtcbiAgICB9XG59XG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKiBjb29sLXRpbWVsaW5lLXBybyAqL1xuXG4uY29vbC10aW1lbGluZS1ob3Jpem9udGFsIC5jbHRfY2Fyb3VzZWxfc2xpZGVyIHVsLnNsaWNrLXNsaWRlciBidXR0b24uY3RsLXNsaWNrLW5leHQsXG4uY29vbC10aW1lbGluZS1ob3Jpem9udGFsIC5jbHRfY2Fyb3VzZWxfc2xpZGVyIHVsLnNsaWNrLXNsaWRlciBidXR0b24uY3RsLXNsaWNrLXByZXYge1xuICBiYWNrZ3JvdW5kOjAgMCFpbXBvcnRhbnQ7XG5cbn1cbi5jdGwtc2xpY2stbmV4dCxcbi5jdGwtc2xpY2stcHJldiB7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBkaXNwbGF5OmJsb2NrO1xuICBwYWRkaW5nOjBcbn1cbi5jdGwtc2xpY2stbmV4dCxcbi5jdGwtc2xpY2stbmV4dDpmb2N1cyxcbi5jdGwtc2xpY2stbmV4dDpob3Zlcixcbi5jdGwtc2xpY2stcHJldixcbi5jdGwtc2xpY2stcHJldjpmb2N1cyxcbi5jdGwtc2xpY2stcHJldjpob3ZlcntcbiAgYmFja2dyb3VuZDojMDAwO1xuICBvdXRsaW5lOjBcbn1cbi5jdGwtc2xpY2stbmV4dCxcbi5jdGwtc2xpY2stcHJldiB7XG4gIGZvbnQtc2l6ZTozMnB4O1xuICBsaW5lLWhlaWdodDowO1xuICBjb2xvcjojMDAwIWltcG9ydGFudDtcbiAgdG9wOjU4JSFpbXBvcnRhbnQ7XG4gIHdpZHRoOjQwcHg7XG4gIGhlaWdodDo0MHB4O1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTUwJSk7XG4gIGN1cnNvcjpwb2ludGVyO1xuICBib3JkZXI6bm9uZVxufVxuLmN0bC1zbGljay1uZXh0OmZvY3VzOmJlZm9yZSxcbi5jdGwtc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUsXG4uY3RsLXNsaWNrLXByZXY6Zm9jdXM6YmVmb3JlLFxuLmN0bC1zbGljay1wcmV2OmhvdmVyOmJlZm9yZSB7XG4gIG9wYWNpdHk6MVxufVxuLmN0bC1zbGljay1uZXh0LnNsaWNrLWRpc2FibGVkLFxuLmN0bC1zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkIHtcbiAgb3BhY2l0eTouMjU7XG4gIGJhY2tncm91bmQ6MCAwIWltcG9ydGFudDtcbiAgY29sb3I6IzAwMFxufVxuLmN0bC1zbGljay1wcmV2IHtcbiAgbGVmdDotNXB4XG59XG4uY3RsLXNsaWNrLW5leHQge1xuICByaWdodDotNXB4XG59XG5idXR0b24uY3RsLXNsaWNrLW5leHQuY3RsLWZsYXQtbGVmdC5zbGljay1hcnJvdyxcbmJ1dHRvbi5jdGwtc2xpY2stcHJldi5jdGwtZmxhdC1yaWdodC5zbGljay1hcnJvdyB7XG4gIGJvcmRlcjoxcHggc29saWQgIzAwMDtcbiAgYm9yZGVyLXJhZGl1czowXG59XG5cblxuXG5cbi8qIGN1c3RvbSBzdHlsaW5nICovXG4uY3RsLXNsaWNrLXByZXYsXG4uY3RsLXNsaWNrLW5leHQge1xuICBpIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgfVxufVxuLmN0bC1zbGljay1uZXh0LnNsaWNrLWRpc2FibGVkLFxuLmN0bC1zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICBpIHtcbiAgICBjb2xvcjogIzY2NjtcbiAgfVxufVxuLmN0bC1zdG9yeS10aW1lIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGZvbnQtZmFtaWx5OiAkaGRyLWZvbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE2cHgpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLnNsaWNrLWN1cnJlbnQge1xuICAuY3RsLXN0b3J5LXRpbWUge1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMnB4KTtcbiAgfVxufVxuLnRpbWVsaW5lLXBvc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDI1cHg7IHBhZGRpbmctYm90dG9tOiAyNDVweDtcbiAgYmFja2dyb3VuZDogI2VlZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmctYm90dG9tOiAyODBweDtcbiAgfVxuXG4gIHRpbWUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgMCAzMHB4IDA7IHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LWZhbWlseTogJGhkci1mb250O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGJhY2tncm91bmQ6ICRkb3dsLXJ1c3Q7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwcHgpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIycHgpO1xuICAgIH1cblxuICB9XG5cbiAgLmZ1bGwtd2lkdGgge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgei1pbmRleDogMTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTZweDsgcmlnaHQ6IDA7IHotaW5kZXg6IDE7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAyMCU7IGhlaWdodDogNnB4O1xuICAgICAgYmFja2dyb3VuZDogJGRvd2wtcnVzdDtcbiAgICB9XG5cbiAgICBpbWcge1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgbWF4LWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cblxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuXG4vLyBTbGljayBpY29uIGVudGl0eSBjb2RlcyBvdXRwdXRzIHRoZSBmb2xsb3dpbmdcbi8vIFwiXFwyMTkwXCIgb3V0cHV0cyBhc2NpaSBjaGFyYWN0ZXIgXCLihpBcIlxuLy8gXCJcXDIxOTJcIiBvdXRwdXRzIGFzY2lpIGNoYXJhY3RlciBcIuKGklwiXG4vLyBcIlxcMjAyMlwiIG91dHB1dHMgYXNjaWkgY2hhcmFjdGVyIFwi4oCiXCJcblxuJHNsaWNrLWZvbnQtcGF0aDogXCIuLi9mb250cy9cIiAhZGVmYXVsdDtcbiRzbGljay1mb250LWZhbWlseTogXCJzbGlja1wiICFkZWZhdWx0O1xuJHNsaWNrLWxvYWRlci1wYXRoOiBcIi4uL2ltYWdlcy9cIiAhZGVmYXVsdDtcbi8vJHNsaWNrLWFycm93LWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcbiRzbGljay1hcnJvdy1jb2xvcjogYmxhY2s7XG4vLyRzbGljay1kb3QtY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvcjogI2NjYztcbiRzbGljay1kb3QtY29sb3ItYWN0aXZlOiAkc2xpY2stZG90LWNvbG9yICFkZWZhdWx0O1xuJHNsaWNrLXByZXYtY2hhcmFjdGVyOiBcIlxcMjE5MFwiICFkZWZhdWx0O1xuJHNsaWNrLW5leHQtY2hhcmFjdGVyOiBcIlxcMjE5MlwiICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jaGFyYWN0ZXI6IFwiXFwyMDIyXCIgIWRlZmF1bHQ7XG4vLyRzbGljay1kb3Qtc2l6ZTogNnB4ICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1zaXplOiAxNHB4O1xuJHNsaWNrLW9wYWNpdHktZGVmYXVsdDogMC43NSAhZGVmYXVsdDtcbi8vJHNsaWNrLW9wYWNpdHktZGVmYXVsdDogMTtcbiRzbGljay1vcGFjaXR5LW9uLWhvdmVyOiAxICFkZWZhdWx0O1xuLy8kc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlOiAwLjI1ICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTogMTtcblxuQGZ1bmN0aW9uIHNsaWNrLWltYWdlLXVybCgkdXJsKSB7XG4gICAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhpbWFnZS11cmwpIHtcbiAgICAgICAgQHJldHVybiBpbWFnZS11cmwoJHVybCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiB1cmwoJHNsaWNrLWxvYWRlci1wYXRoICsgJHVybCk7XG4gICAgfVxufVxuXG5AZnVuY3Rpb24gc2xpY2stZm9udC11cmwoJHVybCkge1xuICAgIEBpZiBmdW5jdGlvbi1leGlzdHMoZm9udC11cmwpIHtcbiAgICAgICAgQHJldHVybiBmb250LXVybCgkdXJsKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIHVybCgkc2xpY2stZm9udC1wYXRoICsgJHVybCk7XG4gICAgfVxufVxuXG4vKiBTbGlkZXIgKi9cblxuLnNsaWNrLWxpc3Qge1xuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmIHNsaWNrLWltYWdlLXVybChcImFqYXgtbG9hZGVyLmdpZlwiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICB9XG59XG5cbi8qIEljb25zICovXG5AaWYgJHNsaWNrLWZvbnQtZmFtaWx5ID09IFwic2xpY2tcIiB7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcInNsaWNrXCI7XG4gICAgICAgIHNyYzogc2xpY2stZm9udC11cmwoXCJzbGljay5lb3RcIik7XG4gICAgICAgIHNyYzogc2xpY2stZm9udC11cmwoXCJzbGljay5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2suc3ZnI3NsaWNrXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIH1cbn1cblxuLyogQXJyb3dzICovXG5cbi5zbGljay1wcmV2LFxuLnNsaWNrLW5leHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAvL3dpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6MzVweDsgaGVpZ2h0OjE1MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgZm9udC1zaXplOiAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnNsaWNrLWRpc2FibGVkOmJlZm9yZSB7XG4gICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU7XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgLypcbiAgICAgICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgY29sb3I6ICRzbGljay1hcnJvdy1jb2xvcjtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgICovXG4gICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG5cbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOjEzcHg7IGhlaWdodDozMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29uLWFydy1zbGlkZXIuc3ZnKSBuby1yZXBlYXQ7XG4gICAgfVxufVxuXG4uc2xpY2stcHJldiB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgLy9sZWZ0OiAtMTNweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogLTI1cHg7XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICAgICAgICAvKmNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgICAgICAqL1xuICAgIH1cbn1cblxuLnNsaWNrLW5leHQge1xuICAgIHJpZ2h0OiAtMjVweDtcbiAgICAvL3JpZ2h0OiAtMTNweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBsZWZ0OiAtMjVweDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgIC8qXG4gICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgICAgICAqL1xuICAgIH1cbn1cblxuLyogRG90cyAqL1xuXG4uc2xpY2stZG90dGVkLnNsaWNrLXNsaWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLnNsaWNrLWRvdHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0yNXB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAwcHg7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktb24taG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAkc2xpY2stZG90LWNoYXJhY3RlcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRzbGljay1kb3Qtc2l6ZTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3I7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuc2xpY2stYWN0aXZlIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktZGVmYXVsdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIltkYXRhLXNpbXBsZWJhcl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLnNpbXBsZWJhci13cmFwcGVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uc2ltcGxlYmFyLW1hc2sge1xuICBkaXJlY3Rpb246IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAwO1xufVxuXG4uc2ltcGxlYmFyLW9mZnNldCB7XG4gIGRpcmVjdGlvbjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHJlc2l6ZTogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5zaW1wbGViYXItY29udGVudC13cmFwcGVyIHtcbiAgZGlyZWN0aW9uOiBpbmhlcml0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTsgLyogUmVxdWlyZWQgZm9yIGhvcml6b250YWwgbmF0aXZlIHNjcm9sbGJhciB0byBub3QgYXBwZWFyIGlmIHBhcmVudCBpcyB0YWxsZXIgdGhhbiBuYXR1cmFsIGhlaWdodCAqL1xuICB3aWR0aDogYXV0bztcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3ZlcmZsb3c6IGF1dG87IC8qIFNjcm9sbCBvbiB0aGlzIGVsZW1lbnQgb3RoZXJ3aXNlIGVsZW1lbnQgY2FuJ3QgaGF2ZSBhIHBhZGRpbmcgYXBwbGllZCBwcm9wZXJseSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIE5vdCByZXF1aXJlZCBmb3IgaG9yaXpvbnRhbCBzY3JvbGwgdG8gdHJpZ2dlciAqL1xuICBtYXgtaGVpZ2h0OiAxMDAlOyAvKiBOZWVkZWQgZm9yIHZlcnRpY2FsIHNjcm9sbCB0byB0cmlnZ2VyICovXG59XG5cbi5zaW1wbGViYXItY29udGVudDpiZWZvcmUsXG4uc2ltcGxlYmFyLWNvbnRlbnQ6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uc2ltcGxlYmFyLXBsYWNlaG9sZGVyIHtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zaW1wbGViYXItaGVpZ2h0LWF1dG8tb2JzZXJ2ZXItd3JhcHBlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1heC1oZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZsZXgtZ3JvdzogaW5oZXJpdDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtYmFzaXM6IDA7XG59XG5cbi5zaW1wbGViYXItaGVpZ2h0LWF1dG8tb2JzZXJ2ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwMCU7XG4gIHdpZHRoOiAxMDAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBtaW4td2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4uc2ltcGxlYmFyLXRyYWNrIHtcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuW2RhdGEtc2ltcGxlYmFyXS5zaW1wbGViYXItZHJhZ2dpbmcgLnNpbXBsZWJhci10cmFjayB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi5zaW1wbGViYXItc2Nyb2xsYmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMnB4O1xuICB3aWR0aDogN3B4O1xuICBtaW4taGVpZ2h0OiAxMHB4O1xufVxuXG4uc2ltcGxlYmFyLXNjcm9sbGJhcjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGxpbmVhcjtcbn1cblxuLnNpbXBsZWJhci10cmFjayAuc2ltcGxlYmFyLXNjcm9sbGJhci5zaW1wbGViYXItdmlzaWJsZTpiZWZvcmUge1xuICAvKiBXaGVuIGhvdmVyZWQsIHJlbW92ZSBhbGwgdHJhbnNpdGlvbnMgZnJvbSBkcmFnIGhhbmRsZSAqL1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMHMgbGluZWFyO1xufVxuXG4uc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci12ZXJ0aWNhbCB7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDExcHg7XG59XG5cbi5zaW1wbGViYXItdHJhY2suc2ltcGxlYmFyLXZlcnRpY2FsIC5zaW1wbGViYXItc2Nyb2xsYmFyOmJlZm9yZSB7XG4gIHRvcDogMnB4O1xuICBib3R0b206IDJweDtcbn1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCB7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTFweDtcbn1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCAuc2ltcGxlYmFyLXNjcm9sbGJhcjpiZWZvcmUge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDJweDtcbiAgcmlnaHQ6IDJweDtcbn1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCAuc2ltcGxlYmFyLXNjcm9sbGJhciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xuICB0b3A6IDJweDtcbiAgaGVpZ2h0OiA3cHg7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1pbi13aWR0aDogMTBweDtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi8qIFJ0bCBzdXBwb3J0ICovXG5bZGF0YS1zaW1wbGViYXItZGlyZWN0aW9uPSdydGwnXSAuc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci12ZXJ0aWNhbCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xufVxuXG4uaHMtZHVtbXktc2Nyb2xsYmFyLXNpemUge1xuICBkaXJlY3Rpb246IHJ0bDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGhlaWdodDogNTAwcHg7XG4gIHdpZHRoOiA1MDBweDtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG4iLCIvKiBwYWdlIGhlYWRsaW5lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmhlYWRlci5wYWdlLWhlYWRlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogJGRvd2wtcnVzdDtcblxuICAvKiBiZyB0cmlhbmdsZSAqL1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgei1pbmRleDogMTtcbiAgICB3aWR0aDogMDsgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA5MHB4IDkwcHggMCAwO1xuICAgIGJvcmRlci1jb2xvcjogJGRvd2wtb3JhbmdlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGJvcmRlci13aWR0aDogMTAwcHggMTAwcHggMCAwO1xuICAgIH1cblxuICB9XG5cbiAgaDEge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiAyMXB4OyBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgcGFkZGluZy10b3A6IDIxcHg7IHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICB9XG5cbn1cblxuXG4vKiBwYWdlIGhlYWRsaW5lLCBjdXJyZW50bHkgdXNlZCBvbiBzaW5nbGUgcG9zdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5oZWFkZXIucGFnZS1oZWFkZXItY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMjJweDtcbiAgYmFja2dyb3VuZDogI2VkYztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4OyBwYWRkaW5nLWJvdHRvbTogMjJweDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7IHBhZGRpbmctYm90dG9tOiAzMnB4O1xuICB9XG5cbiAgaDEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICRkYXJrLXJlZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHRvcDogLTZweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMTBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgdG9wOiAtOXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDEyMHB4O1xuICAgIH1cblxuICB9XG4gIC5wYXJlbnQtc2x1ZyB7XG4gICAgbWFyZ2luOiAwIC0xNXB4IDIwcHggLTE1cHg7XG4gICAgYmFja2dyb3VuZDogJGRhcmstcmVkO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICB9XG5cbn1cblxuLyogaGVhZGVyIGFib3ZlIGNvbnRlbnQ7IHVzZWQgb24gcHJvamVjdCBzaW5nbGUgYW5kIG5ld3MgYXJ0aWNsZSBzaW5nbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaGVhZGVyLmNvbnRlbnQtcGFnZS1oZWFkZXIge1xuICAgIG1hcmdpbjogMCAwIDQwcHggMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM2NjY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHRvcDogLTZweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE0MHB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICB0b3A6IC05cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNTBweDtcbiAgICAgIH1cblxuICAgIH1cbiAgICAucGFyZW50LXNsdWcge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRkYXJrLXJlZDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgIH1cblxuICAgICAgYTpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG5cbiAgICB9XG5cblxufS8vY29udGVudC1wYWdlLWhlYWRlclxuXG5cbi8qIHBhcmVudCBzbHVnIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wYXJlbnQtc2x1ZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIC8vcGFkZGluZzogMTJweCAyMHB4IDhweCAxMHB4O1xuICBwYWRkaW5nOiAxNXB4IDIwcHggMTFweCAxNXB4O1xuICAvL2JhY2tncm91bmQ6ICRkYXJrLXJlZDtcbiAgYmFja2dyb3VuZDogIzY2NjtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiAkaGRyLWZvbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctdG9wOiAxMXB4OyBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gIC5pY29uLXdyYXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTVweDsgaGVpZ2h0OiAxMXB4O1xuICAgIG1hcmdpbjogMCAxMHB4IDAgMDtcblxuICAgIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcbiAgICB9XG5cbiAgICBwYXRoIHtcbiAgICAgIGZpbGw6ICNmZmY7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gIH1cblxufVxuXG5cbi8qIGRlZmF1bHQgc2VjdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDQwcHggMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmc6IDc1cHggMDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZzogMTAwcHggMDtcbiAgfVxuXG4gIC5oZHItc2VjdGlvbiB7XG4gICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIG1hcmdpbjogMCAwIDMwcHggMDtcbiAgICB9XG5cbiAgfVxuXG59XG5cbi8qIHNjcm9sbCBob3Jpem9udGFsIGNvbnRhaW5lciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBodHRwczovL2NvZGVidXJzdC5pby9ob3ctdG8tY3JlYXRlLWhvcml6b250YWwtc2Nyb2xsaW5nLWNvbnRhaW5lcnMtZDgwNjk2NTFlOWM2ICovXG4uc2Nyb2xsaG9yeiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgLnNjcm9sbGhvcnotaXRlbSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IGF1dG87XG4gIH1cblxufVxuXG4vKiBzY3JvbGwgaG9yaXpvbnRhbCBjb250YWluZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpbXBsZWJhci13cmFwcGVyIHtcblxuICBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG59XG4uc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci1ob3Jpem9udGFsIHtcbiAgYmFja2dyb3VuZDogI2FhYTtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuXG4gIC5zaW1wbGViYXItc2Nyb2xsYmFyIHtcbiAgICAvL2xlZnQ6IC0ycHg7XG4gICAgLy9yaWdodDogLTVweDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiAxMXB4O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYmFja2dyb3VuZDogJHRleHQtbGluay1vcmFuZ2U7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICBAYXQtcm9vdCAuaW9zICYge1xuICAgICAgICByaWdodDogLTIwcHg7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG59XG5cblxuLyogdHdpdHRlciBmZWVkcyBwbHVnaW4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiNjdGYgLmN0Zi1pdGVtIHtcbiAgcGFkZGluZzogMTVweCAwO1xufVxuI2N0ZiAuY3RmLXR3ZWV0LW1ldGEge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgY29sb3I6ICM3Nzc7XG4gIGEge1xuICAgIGNvbG9yOiAjNzc3ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5jdGYtdHdpdHRlcmxpbmsge1xuICBjb2xvcjogJHRleHQtbGluay1vcmFuZ2UgIWltcG9ydGFudDtcblxuICBAYXQtcm9vdCAubm8taW9zICY6aG92ZXIge1xuICAgIGNvbG9yOiAkYnV0dG9uLW9yYW5nZSAhaW1wb3J0YW50O1xuICB9XG5cbn1cblxuXG5cblxuLyogc2xpY2sgc2xpZGVzaG93cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2xpY2stZG90cyB7XG5cbiAgYnV0dG9uIHtcbiAgICBAYXQtcm9vdCAubm8taW9zICY6aG92ZXIge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgbGkuc2xpY2stYWN0aXZlIHtcbiAgICBidXR0b24ge1xuXG4gICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1vcmFuZ2UtMTtcbiAgICAgIH1cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLW9yYW5nZS0xO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbn0vLy5zbGljay1kb3RzXG5cblxuLyogZmFuY3kgbGlnaHRib3ggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuI2ZhbmN5Ym94LWxlZnQgc3BhbiB7XG4gICAgbGVmdDogMjBweDtcbn1cbiNmYW5jeWJveC1yaWdodCBzcGFuIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAyMHB4O1xufVxuaHRtbC5pZS0xMSB7XG4gICNmYW5jeWJveC1jb250ZW50IHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIH1cbn1cblxuXG4vKiBhcHAuc3dpZnR5cGUuY29tIHNlYXJjaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc3dpZnR5cGUtc2VhcmNoLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn0vL3N3aWZ0eXBlLXNlYXJjaFxuLnN0LWRlZmF1bHQtc2VhcmNoLWlucHV0IHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDExcHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjY2FjYWNhICFpbXBvcnRhbnQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgLy8gIHdpZHRoOiAyODBweCAhaW1wb3J0YW50O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAvL3dpZHRoOiAzMDBweCAhaW1wb3J0YW50O1xuICB9XG5cbn1cbi5zd2lmdHlwZS1zZWFyY2gtcGFnZSB7XG4gIC5zdC1kZWZhdWx0LXNlYXJjaC1pbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvL3dpZHRoOiBhdXRvO1xuICAgIC8vd2lkdGg6IHVuc2V0O1xuICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuXG4vKiBiZyB0cmlhbmdsZXMgLSBhc3N1bWUgcGFyZW50IGhhcyBwb3NpdGlvbiByZWxhdGl2ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gYmctcHNldWRvLXRyaWFuZ2xlcy1zZXR1cCgpIHtcblxuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDE7XG4gICAgLy9kaXNwbGF5OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwOyBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG5cbiAgICBAYXQtcm9vdCBodG1sLmllICYge1xuICAgICAgbWl4LWJsZW5kLW1vZGU6IHVuc2V0O1xuICAgICAgLy9vcGFjaXR5OiAuNztcbiAgICB9XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBiZy1wc2V1ZG8tdHJpYW5nbGVzLWJvdHRvbShcbiRjb2xvcjpyZ2JhKCNlZWUsMSksXG4kd2lkdGhfc206MjBweCwkd2lkdGhfbWQ6MzBweCwkd2lkdGhfbGc6NjBweCxcbiRoZWlnaHRfc206MTAwcHgsJGhlaWdodF9tZDoxNTBweCwkaGVpZ2h0X2xnOjI2MHB4XG4pIHtcblxuICBAaW5jbHVkZSBiZy1wc2V1ZG8tdHJpYW5nbGVzLXNldHVwKCk7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gIH1cbiAgJjpiZWZvcmUge1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0X3NtIDAgMCAkd2lkdGhfc207XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY29sb3I7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0X21kIDAgMCAkd2lkdGhfbWQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGJvcmRlci13aWR0aDogJGhlaWdodF9sZyAwIDAgJHdpZHRoX2xnO1xuICAgIH1cblxuICB9XG4gICY6YWZ0ZXIge1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvcmRlci13aWR0aDogMCAwICRoZWlnaHRfc20gJHdpZHRoX3NtO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNvbG9yIHRyYW5zcGFyZW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGJvcmRlci13aWR0aDogMCAwICRoZWlnaHRfbWQgJHdpZHRoX21kO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBib3JkZXItd2lkdGg6IDAgMCAkaGVpZ2h0X2xnICR3aWR0aF9sZztcbiAgICB9XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBiZy1wc2V1ZG8tdHJpYW5nbGVzLXRvcChcbiRjb2xvcjpyZ2JhKCNlZWUsMSksXG4kd2lkdGhfc206MjBweCwkd2lkdGhfbWQ6MzBweCwkd2lkdGhfbGc6NjBweCxcbiRoZWlnaHRfc206MTAwcHgsJGhlaWdodF9tZDoxNTBweCwkaGVpZ2h0X2xnOjI2MHB4XG4pIHtcblxuICBAaW5jbHVkZSBiZy1wc2V1ZG8tdHJpYW5nbGVzLXNldHVwKCk7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gIH1cbiAgJjpiZWZvcmUge1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0X3NtICR3aWR0aF9zbSAwIDA7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0X21kICR3aWR0aF9tZCAwIDAgO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBib3JkZXItd2lkdGg6ICRoZWlnaHRfbGcgJHdpZHRoX2xnIDAgMCA7XG4gICAgfVxuXG4gIH1cbiAgJjphZnRlciB7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAwICR3aWR0aF9zbSAkaGVpZ2h0X3NtIDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgYm9yZGVyLXdpZHRoOiAwICR3aWR0aF9tZCAkaGVpZ2h0X21kIDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGJvcmRlci13aWR0aDogMCAkd2lkdGhfbGcgJGhlaWdodF9sZyAwO1xuICAgIH1cblxuICB9XG5cbn1cblxuXG5cbi8qIGJnIHRleHR1cmUgLSBhc3N1bWUgcGFyZW50IGhhcyBwb3NpdGlvbiByZWxhdGl2ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYmctdGV4dHVyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAtMjMwcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxODZweDsgaGVpZ2h0OiA1MTBweDtcblxuICAmLmJnLWxlZnQge1xuICAgIGxlZnQ6IC0xcHg7XG4gIH1cbiAgJi5iZy1yaWdodCB7XG4gICAgcmlnaHQ6IC0xcHg7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICB9XG5cbiAgI3NoYXBlMSxcbiAgI3NoYXBlMyB7XG4gICAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuXG4gICAgQGF0LXJvb3QgaHRtbC5pZSAmIHtcbiAgICAgIG1peC1ibGVuZC1tb2RlOiB1bnNldDtcbiAgICAgIG9wYWNpdHk6IC43O1xuICAgIH1cblxuICB9XG4gICNzaGFwZTIge1xuICAgIG1peC1ibGVuZC1tb2RlOiBzY3JlZW47XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KDE1MTBweCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbn1cblxuXG4vKiBNZWRpYSBzZWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tZWRpYS1zZWN0aW9uIHtcbiAgQGV4dGVuZCAuc2VjdGlvbjtcbiAgcGFkZGluZy10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG5cbiAgLyogdGFiIG5hdiAqL1xuICAudGFicyB7XG4gICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgICB9XG5cbiAgfVxuICAudGFicy10aXRsZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCAzMHB4O1xuXG4gICAgYSB7XG4gICAgICBmb250LWZhbWlseTogJGhkci1mb250O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2cHgpO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4cHgpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwcHgpO1xuICAgICAgfVxuXG4gICAgICBib3JkZXItdG9wOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG4gIC50YWJzLXRpdGxlID4gYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLnRhYnMtdGl0bGUgPiBhOmZvY3VzLFxuICAudGFicy10aXRsZSA+IGFbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkZGFyay1yZWQ7XG4gICAgY29sb3I6ICRkYXJrLXJlZDtcbiAgfVxuXG4gIC8qIHRhYiBjb250ZW50ICovXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxuICAudGFicy1wYW5lbCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8qIHBob3RvIGJveCAqL1xuICAubWVkaWEtcGhvdG8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDEwcHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmctdG9wOiAxMDAlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjsgei1pbmRleDogNDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDYwcHg7IGhlaWdodDogNjBweDtcbiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbi16b29tLnN2Zykgbm8tcmVwZWF0O1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgfVxuXG4gICAgLnNoYWRvdy1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IGJvdHRvbTowOyBsZWZ0OjA7IHotaW5kZXg6MztcbiAgICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKCMwMDAsLjUpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgfVxuICAgIC5waG90by1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDogMDsgbGVmdDogMDsgYm90dG9tOiAwOyB6LWluZGV4OiAyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCMwMDAsIC40KTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBmaWx0ZXI6IGJsdXIoMXB4KTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgfVxuXG4gICAgQGF0LXJvb3QgLm5vLWlvcyAmOmhvdmVyIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgICAgLnNoYWRvdy1vdmVybGF5IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICAgIC5waG90by1vdmVybGF5IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfS8vbWVkaWEtcGhvdG9cblxuICAubWVkaWEtdmlkZW8ge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgICAucmVzcG9uc2l2ZS1lbWJlZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICAudmlkZW8tY2FwdGlvbiB7XG4gICAgICBtYXJnaW46IDVweCAwIDAgMDtcbiAgICB9XG5cbiAgfS8vbWVkaWEtdmlkZW9cblxuXG59XG5cblxuLyogUGhvdG8gR2FsbGVyeSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZ2FsbGVyeSB7XG4gIEBpbmNsdWRlIGdyaWQtcm93KCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA5IHtcbiAgICAmLmdhbGxlcnktY29sdW1ucy0jeyRpfSB7XG4gICAgICAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuICAgICAgfVxuXG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcbiAgICAgICYuZ2FsbGVyeS1jb2x1bW5zLSN7JGl9IHtcbiAgICAgICAgLmdhbGxlcnktaXRlbSB7QGluY2x1ZGUgZ3JpZC1jb2x1bW4oMyk7fVxuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAmLmdhbGxlcnktY29sdW1ucy0jeyRpfSB7XG4gICAgICAgIC5nYWxsZXJ5LWl0ZW0ge0BpbmNsdWRlIGdyaWQtY29sdW1uKDQpO31cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZ2FsbGVyeS1pdGVtIHtcbiAgICBwYWRkaW5nLXRvcDogLjgzMzMzcmVtOyBwYWRkaW5nLWJvdHRvbTogLjgzMzMzcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvL2JhY2tncm91bmQ6ICNjY2M7XG4gIH1cblxufVxuXG5cblxuLyogQWNjb3JkaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5hY2NvcmRpb24tdGl0bGUge1xuICBAZXh0ZW5kIGgzO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICM2NjY7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE4cHgpO1xuICBjb2xvcjogJHRleHQtbGluay1vcmFuZ2U7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIycHgpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0cHgpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6dmlzaXRlZCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICR0ZXh0LWxpbmstb3JhbmdlO1xuICB9XG5cbiAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcblxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICRkYXJrLXJlZDtcbiAgICB9XG5cbiAgfVxuXG4gIC8vIGhpZGUgKy8tXG4gICY6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gaHRtbCBuZWVkcyB0byBiZSBhZGRlZCB0byBhY2NvcmRpb24gaXRlbSBpbiB0ZW1wbGF0ZVxuICAuaWNvbi10b2dnbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IHJpZ2h0OiAxMHB4OyB6LWluZGV4OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDlweDsgaGVpZ2h0OiAyMXB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgd2lkdGg6IDEycHg7IGhlaWdodDogMjhweDtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICB9XG4gICAgcGF0aCB7XG4gICAgICBmaWxsOiAkdGV4dC1saW5rLW9yYW5nZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgfVxuXG4gIH1cblxufVxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM2NjY7XG59XG5cbi5pcy1hY3RpdmUgLmFjY29yZGlvbi10aXRsZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogJGRhcmstcmVkO1xuXG4gICY6YWN0aXZlLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkZGFyay1yZWQ7XG4gIH1cblxuICAuaWNvbi10b2dnbGUge1xuICAgIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgfVxuICAgIHBhdGgge1xuICAgICAgZmlsbDogJGRhcmstcmVkO1xuICAgIH1cbiAgfVxuXG59XG5cbi5hY2NvcmRpb24tY29udGVudCB7XG4gIHVsIHtcbiAgICBAaW5jbHVkZSBsaXN0KCk7XG4gIH1cbn1cblxuLyogc2hhcmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNoYXJlIHtcbiAgbWFyZ2luOiA2MHB4IDAgMCAwOyBwYWRkaW5nOiAyNXB4IDAgMCAwO1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICM2NjY7XG4gIGNvbG9yOiAjNjY2O1xuICBmb250LXdlaWdodDogYm9sZDtcblxuICAuaGRyLFxuICAuc29jaWFsLWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgLy9saW5lLWhlaWdodDogMjBweDtcbiAgICAvL3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG4gIC5oZHIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAtMnB4O1xuICAgIG1hcmdpbjogMCA2cHggMCAwO1xuICB9XG4gIC5zb2NpYWwtaWNvbiB7XG4gICAgLy9kaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDZweDtcblxuICAgIC5zdExhcmdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gIH1cbiAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcbiAgICAuc29jaWFsLWljb24ge1xuICAgICAgb3BhY2l0eTogLjg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC5zdF9mYWNlYm9va19sYXJnZSB7XG4gICAgLnN0QnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxM3B4OyBoZWlnaHQ6IDI1cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tc29jaWFsLWZhY2Vib29rLnN2Zykgbm8tcmVwZWF0O1xuICAgIH1cbiAgfVxuICAuc3RfdHdpdHRlcl9sYXJnZSB7XG4gICAgLnN0QnV0dG9uIHtcbiAgICAgIHdpZHRoOiAyNHB4OyBoZWlnaHQ6IDE5cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tc29jaWFsLXR3aXR0ZXIuc3ZnKSBuby1yZXBlYXQ7XG4gICAgfVxuICB9XG4gIC5zdF9saW5rZWRpbl9sYXJnZSB7XG4gICAgLnN0QnV0dG9uIHtcbiAgICAgIHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDE5cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tc29jaWFsLWxpbmtlZGluLnN2Zykgbm8tcmVwZWF0O1xuICAgIH1cbiAgfVxuXG5cblxufVxuXG5cblxuLyogY29udGVudCBuYXYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNvbnRlbnQtbmF2LWl0ZW0ge1xuICBkaXNwbGF5OiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGEsXG4gIC5jb250ZW50LW5hdi1pdGVtLWJsYW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAvL21pbi1oZWlnaHQ6IDExMHB4O1xuICAgIC8vcGFkZGluZzogNDBweCAwO1xuICAgIHBhZGRpbmc6IDUwcHggMDtcbiAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICMzMzM7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4cHgpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIxcHgpO1xuICAgIH1cbiAgfVxuICBhIHtcbiAgICBjb2xvcjogJGRhcmstZ3JleS0yO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkZGFyay1ncmV5LTI7XG4gICAgfVxuXG4gICAgQGF0LXJvb3QgLm5vLWlvcyAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNjY2M7XG4gICAgfVxuXG4gICAgLmljb24td3JhcCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMjBweDsgaGVpZ2h0OiAxNXB4O1xuICAgIH1cblxuICB9XG5cbn1cbi5jb250ZW50LW5hdi1pdGVtLXBhcmVudCB7XG4gIGEge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG5cbiAgICBAYXQtcm9vdCAubm8taW9zICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2RkZDtcbiAgICB9XG5cbiAgICAuaWNvbi13cmFwIHtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgd2lkdGg6IDIwcHg7IGhlaWdodDogMTVweDtcbiAgICAgIG1hcmdpbjogMCAyMHB4IDAgMDtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcblxuICAgICAgcGF0aCB7XG4gICAgICAgIGZpbGw6ICRkYXJrLWdyZXktMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuLmNvbnRlbnQtbmF2LWl0ZW0tcHJldixcbi5jb250ZW50LW5hdi1pdGVtLW5leHQge1xuICBhLFxuICAuY29udGVudC1uYXYtaXRlbS1ibGFuayB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBkb3R0ZWQgIzMzMztcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICB9XG4gIGEge1xuICAgIC5pY29uLXdyYXAge1xuICAgICAgdG9wOiAycHg7XG4gICAgICB3aWR0aDogOHB4OyBoZWlnaHQ6IDE4cHg7XG5cbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiAkZGFyay1ncmV5LTI7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cbi5jb250ZW50LW5hdi1pdGVtLW5leHQge1xuICBhIHtcbiAgICAuaWNvbi13cmFwIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIH1cbiAgfVxufVxuLmNvbnRlbnQtbmF2LWl0ZW0tcHJldiB7XG4gIGEge1xuICAgIC5pY29uLXdyYXAge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICAgIH1cbiAgfVxufVxuXG4vKiBtaWRkbGUgYmFubmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiRiYW5uZXJtaWRkbGVfaGVpZ2h0OiAoXG4gIHNtYWxsOiAxNTBweCxcbiAgbWVkaXVtOiAzMDBweCxcbiAgbGFyZ2U6IDQyNXB4LFxuKTtcblxuLmJhbm5lci1taWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogbWFwLWdldCgkYmFubmVybWlkZGxlX2hlaWdodCwgc21hbGwpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2JnLXdlYXZlci1yb2FkLmpwZyk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IG1hcC1nZXQoJGJhbm5lcm1pZGRsZV9oZWlnaHQsIG1lZGl1bSk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIGhlaWdodDogbWFwLWdldCgkYmFubmVybWlkZGxlX2hlaWdodCwgbGFyZ2UpO1xuICB9XG5cbiAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICB9XG5cbn1cblxuXG5cbi8qIGJvdHRvbSBiYW5uZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBiYW5uZXIgaGVpZ2h0XG4kYmFubmVyYnRtX2hlaWdodDogKFxuICBzbWFsbDogMTYwcHgsXG4gIG1lZGl1bTogMzAwcHgsXG4gIGxhcmdlOiA0NTBweCxcbik7XG5cbi8vIG9yYW5nZSB0cmlhbmdsZSB3aWR0aCBhbmQgaGVpZ2h0XG4kYmFubmVyYnRtX2JnX3RyaWFuZ2xlMV93aWR0aDogKFxuICBzbWFsbDogMTIwcHgsXG4gIG1lZGl1bTogMjIwcHgsXG4gIGxhcmdlOiAzNjBweCxcbik7XG4kYmFubmVyYnRtX2JnX3RyaWFuZ2xlMV9oZWlnaHQ6IChcbiAgc21hbGw6IG1hcC1nZXQoJGJhbm5lcmJ0bV9oZWlnaHQsIHNtYWxsKSxcbiAgbWVkaXVtOiBtYXAtZ2V0KCRiYW5uZXJidG1faGVpZ2h0LCBtZWRpdW0pLFxuICBsYXJnZTogbWFwLWdldCgkYmFubmVyYnRtX2hlaWdodCwgbGFyZ2UpLFxuKTtcblxuLy8gZ3JheSB0cmlhbmdsZSB3aWR0aCBhbmQgaGVpZ2h0XG4kYmFubmVyYnRtX2JnX3RyaWFuZ2xlMl93aWR0aDogKFxuICBzbWFsbDogMTAwcHgsXG4gIG1lZGl1bTogMTgwcHgsXG4gIGxhcmdlOiAyNzBweCxcbik7XG4kYmFubmVyYnRtX2JnX3RyaWFuZ2xlMl9oZWlnaHQ6IChcbiAgc21hbGw6IDExMHB4LFxuICBtZWRpdW06IDIxMHB4LFxuICBsYXJnZTogMzEwcHgsXG4pO1xuXG4uYmFubmVyLWJ0bSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBtYXAtZ2V0KCRiYW5uZXJidG1faGVpZ2h0LCBzbWFsbCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYmctd2VhdmVyLXJvYWQuanBnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgLy9iYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgMzAwcHg7XG4gIC8vYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC15O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAvL2JhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgLy9iYWNrZ3JvdW5kLXNpemU6IGF1dG87XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBoZWlnaHQ6IG1hcC1nZXQoJGJhbm5lcmJ0bV9oZWlnaHQsIG1lZGl1bSk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIGhlaWdodDogbWFwLWdldCgkYmFubmVyYnRtX2hlaWdodCwgbGFyZ2UpO1xuICB9XG5cbiAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICB9XG5cbiAgLy8gdG9wIHNoYWRvd1xuICAmOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOyBsZWZ0OiAwOyB6LWluZGV4OiAyO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKCMzMzMsLjgpIDAlLHJnYmEoIzMzMywwKSAxMDAlKTtcbiAgfVxuXG4gIC8vIGJhbm5lciBkZWNvciB0cmlhbmdsZXNcbiAgLmJhbm5lci1kZWNvci1sZixcbiAgLmJhbm5lci1kZWNvci1ydCB7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDE7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAwOyBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuXG4gICAgICBAYXQtcm9vdCBodG1sLmllICYge1xuICAgICAgICBtaXgtYmxlbmQtbW9kZTogdW5zZXQ7XG4gICAgICAgIG9wYWNpdHk6IC43O1xuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cbiAgLmJhbm5lci1kZWNvci1sZiB7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBib3R0b206IDA7IGxlZnQ6IDA7XG4gICAgICBib3JkZXItd2lkdGg6IG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTFfaGVpZ2h0LCBzbWFsbCkgMCAwIG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTFfd2lkdGgsc21hbGwpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkZG93bC1vcmFuZ2U7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogbWFwLWdldCgkYmFubmVyYnRtX2JnX3RyaWFuZ2xlMV9oZWlnaHQsbWVkaXVtKSAwIDAgbWFwLWdldCgkYmFubmVyYnRtX2JnX3RyaWFuZ2xlMV93aWR0aCxtZWRpdW0pO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBib3JkZXItd2lkdGg6IG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTFfaGVpZ2h0LGxhcmdlKSAwIDAgbWFwLWdldCgkYmFubmVyYnRtX2JnX3RyaWFuZ2xlMV93aWR0aCxsYXJnZSk7XG4gICAgICB9XG5cbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICB0b3A6IDA7IGxlZnQ6IDA7XG4gICAgICBib3JkZXItd2lkdGg6IG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTJfaGVpZ2h0LCBzbWFsbCkgbWFwLWdldCgkYmFubmVyYnRtX2JnX3RyaWFuZ2xlMl93aWR0aCxzbWFsbCkgMCAwIDtcbiAgICAgIGJvcmRlci1jb2xvcjogIzk5OSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiBtYXAtZ2V0KCRiYW5uZXJidG1fYmdfdHJpYW5nbGUyX2hlaWdodCwgbWVkaXVtKSBtYXAtZ2V0KCRiYW5uZXJidG1fYmdfdHJpYW5nbGUyX3dpZHRoLG1lZGl1bSkgMCAwIDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiBtYXAtZ2V0KCRiYW5uZXJidG1fYmdfdHJpYW5nbGUyX2hlaWdodCwgbGFyZ2UpIG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTJfd2lkdGgsbGFyZ2UpIDAgMCA7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfS8vYmFubmVyLWRlY29yLWxmXG5cbiAgLy8gYmFubmVyIGRlY29yIHJpZ2h0IHNpZGVcbiAgLmJhbm5lci1kZWNvci1ydCB7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICB0b3A6IDA7IHJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwIG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTFfd2lkdGgsc21hbGwpIG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTFfaGVpZ2h0LCBzbWFsbCkgMDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJGRvd2wtb3JhbmdlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgbWFwLWdldCgkYmFubmVyYnRtX2JnX3RyaWFuZ2xlMV93aWR0aCxtZWRpdW0pIG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTFfaGVpZ2h0LG1lZGl1bSkgMDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTFfd2lkdGgsbGFyZ2UpIG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTFfaGVpZ2h0LGxhcmdlKSAwO1xuICAgICAgfVxuXG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgYm90dG9tOiAwOyByaWdodDogMDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAwIG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTJfaGVpZ2h0LCBzbWFsbCkgbWFwLWdldCgkYmFubmVyYnRtX2JnX3RyaWFuZ2xlMl93aWR0aCxzbWFsbCk7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM5OTkgdHJhbnNwYXJlbnQ7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTJfaGVpZ2h0LCBtZWRpdW0pIG1hcC1nZXQoJGJhbm5lcmJ0bV9iZ190cmlhbmdsZTJfd2lkdGgsbWVkaXVtKTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgbWFwLWdldCgkYmFubmVyYnRtX2JnX3RyaWFuZ2xlMl9oZWlnaHQsIGxhcmdlKSBtYXAtZ2V0KCRiYW5uZXJidG1fYmdfdHJpYW5nbGUyX3dpZHRoLGxhcmdlKTtcbiAgICAgIH1cblxuICAgIH1cblxuICB9Ly9iYW5uZXItZGVjb3ItcnRcblxufVxuXG5cblxuLyogZ3JvdXAgbGluayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZ3JvdXAtbGluay5qcy1ob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuXG5cblxuLyogZmVhdHVyZWQgcGhvdG8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmZlYXR1cmVkLXBob3RvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAxMHB4IDAgMzBweCAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IDEwMCU7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvLyBzaWRlIHNoYWRvd3NcbiAgLmZlYXR1cmVkLXBob3RvLXNpZGVzIHtcbiAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG5cbiAgICBAYXQtcm9vdCBodG1sLmllICYge1xuICAgICAgbWl4LWJsZW5kLW1vZGU6IHVuc2V0O1xuICAgICAgb3BhY2l0eTogLjc7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGJvdHRvbTogMDsgei1pbmRleDogMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE1JTsgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKCMzMzMsLjYpIDAlLHJnYmEoIzMzMywwKSAxMDAlKTtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKCMzMzMsLjYpIDAlLHJnYmEoIzMzMywwKSAxMDAlKTtcbiAgICB9XG5cbiAgfVxuXG5cbn1cblxuXG4vKiBQYWdpbmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wYWdpbmF0aW9uIHtcbiAgbWFyZ2luOiAwO1xuICAvL3BhZGRpbmc6IDQwcHggMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcblxuICBsaSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgYSxcbiAgICAuY3VycmVudCB7XG4gICAgICBtYXJnaW46IDJweDsgcGFkZGluZzogMTBweCAxNXB4O1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOHB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgLy9jb2xvcjogJGFxdWEtZGFyaztcbiAgICAgIC8vdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4vKlxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMXB4KTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNHB4KTtcbiAgICAgIH1cbiovXG5cbiAgICB9XG4gICAgYSB7XG4gICAgICBjb2xvcjogJHRleHQtbGluay1vcmFuZ2U7XG4gICAgfVxuICAgIC5jdXJyZW50IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGJhY2tncm91bmQ6ICM4ODg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM4ODg7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAvKiBwcmV2LCBuZXh0ICovXG4gICAgLnByZXYsXG4gICAgLm5leHQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IC0xcHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMCAxNXB4OyBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg2MHB4KTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMXB4KTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMHB4KTtcbiAgICAgIH1cblxuICAgIH1cblxuICB9Ly9saVxuXG59XG5cblxuXG5cbi8qIG5ld3MgYXJjaGl2ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIG5ld3Mgc29jaWFsICovXG4ubmV3cy1zb2NpYWwtc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDQwcHggMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuXG4gIC5wYXJlbnQtc2x1ZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgcGFkZGluZzogMTFweCAyMHB4IDExcHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAkZGFyay1yZWQ7XG4gIH1cblxufVxuLm5ld3Mtc29jaWFsLXNlY3Rpb25fX3NvY2lhbCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbjogNXB4IDE1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICYuZmFjZWJvb2sge1xuICAgICAgd2lkdGg6IDEzcHg7IGhlaWdodDogMjVweDtcbiAgICAgIHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDM0cHg7XG4gICAgfVxuICAgICYubGlua2VkaW4ge1xuICAgICAgd2lkdGg6IDIwcHg7IGhlaWdodDogMTlweDtcbiAgICAgIHdpZHRoOiAyN3B4OyBoZWlnaHQ6IDI2cHg7XG4gICAgfVxuICAgICYuaW5zdGFncmFtIHtcbiAgICAgIHdpZHRoOiAyMXB4OyBoZWlnaHQ6IDIxcHg7XG4gICAgICB3aWR0aDogMjhweDsgaGVpZ2h0OiAyOHB4O1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgcGF0aCB7XG4gICAgICBmaWxsOiAkdGV4dC1saW5rLW9yYW5nZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgfVxuICAgIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogJGRhcmstcmVkO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbn1cblxuLyogbmV3cyBhcmNoaXZlIGludHJvICovXG4ubmV3cy1hcmNoaXZlLWNvbnRlbnQge1xuICBAZXh0ZW5kIC5zZWN0aW9uO1xuXG4gIC5mZWF0dXJlZC1waG90by1zaWRlcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG59XG5cbi8qIG5ld3MgYXJjaGl2ZSBpbnRybyAqL1xuLypcbmJvZHkuaXMtcmV2ZWFsLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbiovXG5ib2R5LmJsb2cge1xuICAubmV3cy1iYXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgYm90dG9tOiAwOyBsZWZ0OjA7IHJpZ2h0OjA7IHotaW5kZXg6IDEwO1xuICAgIHBhZGRpbmc6IDI3cHggMCAyNXB4O1xuICAgIGJhY2tncm91bmQ6ICNkZGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLmhkciB7XG4gICAgICBtYXJnaW46IDAgMCAwIDA7XG4gICAgfVxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC1mYW1pbHk6ICRoZHItZm9udDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgfVxuICAgIH1cbiAgICAudG9nZ2xlLW1vZGFsLXNpZ251cC1uZXdzbGV0dGVyIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgIC5pY29uLXdyYXAge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDMxcHg7XG4gICAgICAgIG1hcmdpbjogMCAxMHB4IDAgMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgLmNpcmNsZSxcbiAgICAgICAgLnRyaWFuZ2xlLWluc2V0IHtcbiAgICAgICAgICBmaWxsOiAkdGV4dC1saW5rLW9yYW5nZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG4gICAgICAgIC5jaXJjbGUsXG4gICAgICAgIC50cmlhbmdsZS1pbnNldCB7XG4gICAgICAgICAgZmlsbDogJGJ1dHRvbi1vcmFuZ2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfS8vbmV3cy1iYXJcbiAgLm1vZGFsLXNpZ251cC1uZXdzbGV0dGVyIHtcbiAgICBwYWRkaW5nOiAycmVtO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAyNXB4IDVweCByZ2JhKCMwMDAsIC4yKTtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIH1cbiAgICAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIHRvcDogLjVyZW07IHJpZ2h0OiAxcmVtO1xuICAgICAgZm9udC1zaXplOiAyZW07XG4gICAgfVxuICAgIC5mcm1fYnV0dG9uX3N1Ym1pdCB7XG4gICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cblxuICB9XG5cbiAgLnNpdGUtZm9vdGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTQwcHg7XG4gIH1cbn1cbi5uZXdzLWFyY2hpdmUtaW50cm8ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgLmhkci1zZWN0aW9uIHtcbiAgICBtYXJnaW46IDA7IHBhZGRpbmc6IDAgMCAzMHB4IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNjY2O1xuICB9XG5cbn1cblxuLyogYXJjaGl2ZSBibG9nIHBvc3QgKi9cbi5ibG9ncG9zdC1hcmNoaXZlIHtcbiAgbWFyZ2luOiA2MHB4IDA7IHBhZGRpbmc6IDAgMCA2MHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzY2NjtcblxuICAucG9zdC1hcmNoaXZlLWNvbnRlbnQge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIH1cblxuICB9XG59XG5cbi8qIGJvdHRvbSBiYW5uZXIgKi9cbi5uZXdzLWJhbm5lci1idG0ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2JnLXJvbGxlZC1wbGFucy5qcGcpO1xufVxuXG4vKiBuZXdzIHNpbmdsZSBwb3N0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaW5nbGUtcG9zdCB7XG4gIC5wYXJlbnQtc2x1Zy1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gIH1cbiAgLmZlYXR1cmVkLXBob3RvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHBhZGRpbmctdG9wOiA0MCU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzNSU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZlYXR1cmVkLXBob3RvLXNpZGVzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gIH1cbiAgaGVhZGVyLmNvbnRlbnQtcGFnZS1oZWFkZXIge1xuXG4gICAgICBoMSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEyMHB4O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTMwcHg7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gIH1cbiAgLnBvc3QtY29udGVudCB7XG4gICAgQGV4dGVuZCAuc2VjdGlvbjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgcGFkZGluZy10b3A6IDkwcHg7XG4gICAgfVxuXG4gIH1cbiAgdGltZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIH1cblxuXG59XG5cblxuLyogUmVsYXRlZCBQcm9qZWN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5yZWxhdGVkLXByb2plY3Qtc2VjdGlvbiB7XG4gIEBleHRlbmQgLnNlY3Rpb247XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMyMjIgMCUsIzMzMyAxMCUsIzQ0NCA2MCUsIzIyMiA2MCUsIzIyMiAxMDAlKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbn1cblxuLnJlbGF0ZWQtcHJvamVjdCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgMCAzMHB4IDA7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgLy9ib3JkZXI6IDVweCBzb2xpZCAjZmZmO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgfVxuXG4gIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIC5yZWxhdGVkLXByb2plY3Qtb3ZlcmxheSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IDEwMCU7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDogMDsgbGVmdDogMDsgYm90dG9tOiAwOyB6LWluZGV4OiA0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAuMyk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblxuICAgIEBhdC1yb290IGh0bWwuaWUgJiB7XG4gICAgICBtaXgtYmxlbmQtbW9kZTogdW5zZXQ7XG4gICAgICBvcGFjaXR5OiAuNztcbiAgICB9XG5cbiAgfVxuXG4gIC5yZWxhdGVkLXByb2plY3Qtc2hhZG93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgcmlnaHQ6IDA7IGxlZnQ6IDA7IGJvdHRvbTogMDsgei1pbmRleDogMztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoIzMzMywuOCkgMCUscmdiYSgjMzMzLDApIDUwJSk7XG4gIH1cblxuICAucmVsYXRlZC1wcm9qZWN0LW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDogMDsgbGVmdDogMDsgYm90dG9tOiAwOyB6LWluZGV4OiAyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAuNCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBmaWx0ZXI6IGJsdXIoMXB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB9XG5cbiAgLnRleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMHB4OyBsZWZ0OiAxMHB4OyB6LWluZGV4OiA4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA4MCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICB0b3A6IDE1cHg7IGxlZnQ6IDE1cHg7XG4gICAgfVxuXG4gIH1cbiAgLnRpdGxlIHtcbiAgICBAZXh0ZW5kIC5oZHItbGFiZWw7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCA4cHggcmdiYSgjMDAwLDEpO1xuXG4gICAgJi50aXRsZS1tb2JpbGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IC43cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgIH1cbiAgICAmLnRpdGxlLWRlc2t0b3Age1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cbiAgLnByb2plY3QtbWV0YS1kYXRhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDVweCAwIDAgMDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDhweCByZ2JhKCMwMDAsMSk7XG4gICAgZm9udC1zaXplOiAuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTdweCk7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKCRnbG9iYWwtZm9udC1zaXplKTsgLy8gMThcbiAgICB9XG5cbiAgfVxuXG59XG5cblxuLyogcHJvamVjdHMgYXJjaGl2ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucHJvamVjdHMtY29udGVudCB7XG4gIEBleHRlbmQgLnNlY3Rpb247XG4gIHBhZGRpbmc6IDI1cHggMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmc6IDc1cHggMDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZzogMTAwcHggMDtcbiAgfVxufVxuXG4ucHJvamVjdHMtZmlsdGVycy13cmFwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC8qIG1vYmlsZSB0b2dnbGUgKi9cbiAgLmhkci1maWx0ZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNjY2O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiA2cHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMjZweDsgaGVpZ2h0OiAyNnB4O1xuICAgICAgbWFyZ2luOiAwIDAgMCA1cHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgICBsaW5lIHtcbiAgICAgICAgc3Ryb2tlOiAkdGV4dC1saW5rLW9yYW5nZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgIH1cbiAgICB9Ly9zdmdcblxuICAgIGEge1xuXG4gICAgICBAYXQtcm9vdCAubm8taW9zICY6aG92ZXIge1xuICAgICAgICBsaW5lIHtcbiAgICAgICAgICBzdHJva2U6ICRidXR0b24tb3JhbmdlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbiB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICB9Ly9oZHItZmlsdGVyXG5cblxufVxuLnByb2plY3QtZmlsdGVycyB7XG4gIG1hcmdpbjogMCAwIDMwcHggMDtcblxuICAvKiBtb2JpbGUgdG9nZ2xlIGZlYXR1cmUgKi9cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5ICkge1xuXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgJi5zaG93IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgfVxuXG4gIH1cblxuICAuZmlsdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDVweCAwO1xuICB9XG4gIC5maWx0ZXItZGl2aWRlciB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5ICkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gIH1cbiAgc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICBtYXJnaW46IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDExcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gIC5idXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgIG1heC13aWR0aDogMjIwcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAxMHB4O1xuICAgIH1cblxuICB9XG5cbn1cblxuXG4vKiBmYWNldCBzdHlsaW5nICovXG5ib2R5IC5mYWNldHdwLWZhY2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbmJvZHkgLmZhY2V0d3AtdHlwZS1mc2VsZWN0IC5mcy13cmFwLFxuYm9keSAuZmFjZXR3cC10eXBlLWZzZWxlY3QgLmZzLWRyb3Bkb3duIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5ib2R5IC5mYWNldHdwLXR5cGUtZnNlbGVjdCAuZnMtZHJvcGRvd24ge1xuXHRtYXgtd2lkdGg6IDI5M3B4O1xufVxuYm9keSAuZnMtb3B0aW9uLmRpc2FibGVkIHtcblx0b3BhY2l0eTogMTtcbn1cblxuXG4vKiBmYWNldCBmaWx0ZXJzICovXG4ucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAvKiBtb2JpbGUgdG9nZ2xlIGZlYXR1cmUgKi9cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgLy9vdmVyZmxvdy15OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgLy9tYXgtaGVpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICAmLnNob3cge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgLy9tYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgIC8vbWF4LWhlaWdodDogYXV0bztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZC1maWx0ZXIge1xuICAgICAgLmZhY2V0d3AtZmFjZXQge1xuICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZnMtZHJvcGRvd24ge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG5cbiAgfVxuXG4gIC8vIGN1c3RvbSBncmlkXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cbiAgICBAaW5jbHVkZSBncmlkLXJvdygxOCkge1xuICAgICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZC1maWx0ZXIge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig0LDApO1xuICAgICAgfVxuICAgICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZC1kaXZpZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMSwwKTtcbiAgICAgIH1cbiAgICAgIC5wcm9qZWN0LWZpbHRlcnMtd2VpZ2h0ZWQtcmVzZXQge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig0LDApO1xuICAgICAgfVxuICAgIH1cblxuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblxuICAgIEBpbmNsdWRlIGdyaWQtcm93KDIwKSB7XG4gICAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkLWZpbHRlciB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDUsMCk7XG4gICAgICB9XG4gICAgICAucHJvamVjdC1maWx0ZXJzLXdlaWdodGVkLWRpdmlkZXIge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxLDApO1xuICAgICAgfVxuICAgICAgLnByb2plY3QtZmlsdGVycy13ZWlnaHRlZC1yZXNldCB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDMsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuXG4gIC5mcy1sYWJlbC13cmFwIHtcblxuICAgIC5mcy1sYWJlbCB7XG4gICAgICBwYWRkaW5nOiAxNXB4IDIycHggMTVweCAxMHB4O1xuICAgICAgY29sb3I6ICM3Nzc7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICAuZnMtYXJyb3cge1xuICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAjNzc3O1xuICAgIH1cblxuICB9Ly9mcy1sYWJlbC13cmFwXG4gIC5mcy1zZWFyY2gge1xuICAgIGlucHV0IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbiAgLmZzLW9wdGlvbnMge1xuICAgIC8vcGFkZGluZzogNXB4IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAuZnMtb3B0aW9ucyAuZnMtb3B0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgJi5zZWxlY3RlZCB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC5mcy1vcHRpb24tbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCI6XCI7XG4gICAgfVxuXG4gICAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuICAuZnMtb3B0aW9uIHtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2RkZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNlbGVjdGVkIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICB9XG5cbiAgLmZpbHRlci1kaXZpZGVyIHtcbiAgICBtYXJnaW46IC02cHggMTBweCAxMHB4O1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW46IDEwcHg7XG4gICAgfVxuXG4gIH1cblxuICAuYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAvL21hcmdpbjogMTBweCBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAvL2Rpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgLy9tYXJnaW46IDEwcHg7XG4gICAgfVxuXG4gIH1cblxufS8vcHJvamVjdC1maWx0ZXJzLXdlaWdodGVkXG5cbi8qIGZhY2V0IHJlc3VsdHMgKi9cbi5wcm9qZWN0cy1jb250ZW50IHtcblxuICAuZmFjZXR3cC10ZW1wbGF0ZSB7XG4gICAgLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBAZXh0ZW5kIC5lbmQ7XG4gICAgfVxuICB9XG5cbn1cblxuXG4vKiBmYWNldCBwYWdpbmF0aW9uICovXG4uZmFjZXR3cC1wYWdlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5mYWNldHdwLXBhZ2VyLWxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5mYWNldHdwLXBhZ2Uge1xuICBtYXJnaW46IDVweDtcbiAgcGFkZGluZzogMTBweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMThweCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICYuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjNzc3O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gICYuZmlyc3QtcGFnZSB7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnZmlyc3QnO1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICB9XG4gIH1cbiAgJi5sYXN0LXBhZ2Uge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdsYXN0JztcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbiAgfVxuXG59XG5cblxuLnByb2plY3RzLWJhbm5lci1idG0ge1xuICAvL2JhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYmctZ2xlbm4tbXVsZG9vbi5qcGcpO1xuICAvL2JhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYmctcHJvamVjdHMuanBnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9iZy1wcm9qZWN0c3YyLmpwZyk7XG59XG5cblxuXG5cbi8qIHByb2plY3RzIHNpbmdsZSBwb3N0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiRwcm9qZWN0X2hlcm9fYmFubmVyX2h0OiAyMDBweDtcbiRwcm9qZWN0X2hlcm9fYmFubmVyX2h0X21kOiAzMDBweDtcbiRwcm9qZWN0X2hlcm9fYmFubmVyX2h0X2xnOiA2MDBweDtcblxuLnNpbmdsZS1kb3dsX3Byb2plY3Qge1xuXG4gIC5mZWF0dXJlZC1waG90byB7XG4gICAgaGVpZ2h0OiAkcHJvamVjdF9oZXJvX2Jhbm5lcl9odDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgcGFkZGluZy10b3A6IDQwJTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGhlaWdodDogJHByb2plY3RfaGVyb19iYW5uZXJfaHRfbWQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGhlaWdodDogJHByb2plY3RfaGVyb19iYW5uZXJfaHRfbGc7XG4gICAgfVxuXG4gIH1cbiAgLnByb2plY3QtaGVyby12aWRlbyB7XG4gICAgbWF4LWhlaWdodDogJHByb2plY3RfaGVyb19iYW5uZXJfaHQ7XG4gICAgLy9tYXJnaW46IDAgMCAzMHB4IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWF4LWhlaWdodDogJHByb2plY3RfaGVyb19iYW5uZXJfaHRfbWQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBtYXgtaGVpZ2h0OiAkcHJvamVjdF9oZXJvX2Jhbm5lcl9odF9sZztcbiAgICB9XG5cbiAgICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgICAuZmxleC12aWRlbyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAgIH1cblxuICB9XG4gIC5wYXJlbnQtc2x1Zy1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gIH1cbiAgLnByb2plY3QtY29udGVudCB7XG4gICAgQGV4dGVuZCAuc2VjdGlvbjtcbiAgICBAaW5jbHVkZSBiZy1wc2V1ZG8tdHJpYW5nbGVzLWJvdHRvbSgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvL3BhZGRpbmctdG9wOiAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHBhZGRpbmctdG9wOiA3NXB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLXRvcDogMTAwcHg7XG4gICAgfVxuICB9XG4gIC5wcm9qZWN0LWNvbnRlbnQtaW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjtcbiAgfVxuICBibG9ja3F1b3RlIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgbWFyZ2luOiAzMHB4IDAgNjBweDtcbiAgICB9XG5cbiAgfVxuICAucHJvamVjdC1kZXRhaWxzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxcHg7XG4gICAgICBwYWRkaW5nOiAzMHB4IDAgMCAwO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjNjY2O1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC02MHB4OyB0b3A6IDA7IGJvdHRvbTogMDsgei1pbmRleDogMTtcbiAgICAgICAgd2lkdGg6IDFweDsgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IGRvdHRlZCAjNjY2O1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmhkciB7XG4gICAgICBAZXh0ZW5kIC5oZHItbGFiZWw7XG4gICAgICBtYXJnaW46IDMwcHggMCAuMnJlbSAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cblxuICAgIH1cbiAgICAuc2VydmljZXMgLmhkciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgfVxuICAgIC5kYXRhLWxpc3QtaXRlbSB7XG4gICAgICBtYXJnaW46IC41cmVtIDA7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cblxuICB9XG4gIC5tZWRpYS1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBiZy1wc2V1ZG8tdHJpYW5nbGVzLXRvcCgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG59XG5cblxuLyogc2VydmljZXMgYXJjaGl2ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5wb3N0LXR5cGUtYXJjaGl2ZS1kb3dsX3NlcnZpY2Uge1xuXG4gIC5zZXJ2aWNlcy1pbnRybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgcGFkZGluZzogNDBweCAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHBhZGRpbmc6IDU1cHggMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgcGFkZGluZzogMTAwcHggMDtcbiAgICB9XG5cbiAgfVxuICAuc2VydmljZXMtY29udGVudCB7XG4gICAgQGV4dGVuZCAuc2VjdGlvbjtcblxuICAgIC5jb2x1bW4tYmxvY2suZW5kIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG4gIC5zZXJ2aWNlLWFyY2hpdmUge1xuICAgIG1hcmdpbjogMCAwIDIwcHggMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7IG1hcmdpbi1yaWdodDogMjBweDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIH1cblxuICAgIEBhdC1yb290IC5uby1pb3MgJi5qcy1ob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRidXR0b24tb3JhbmdlO1xuICAgICAgfVxuICAgICAgaW1nIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCA1cHggMTBweCAwcHggcmdiYSgjNDQ0LC42KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuICAuc2VydmljZS1pY29uIHtcbiAgICAvL3dpZHRoOiA2NXB4OyBoZWlnaHQ6IDY1cHg7XG4gICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDkwcHg7IG1heC1oZWlnaHQ6IDkwcHg7XG4gICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHdpZHRoOiAxMjBweDsgaGVpZ2h0OiAxMjBweDtcbiAgICAgIG1heC13aWR0aDogbm9uZTsgbWF4LWhlaWdodDogbm9uZTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgd2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDE1MHB4O1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAvL2JveC1zaGFkb3c6IDAgNXB4IDEwcHggMHB4IHJnYmEoIzQ0NCwuNik7XG4gICAgfVxuXG4gIH1cbiAgLnNlcnZpY2UtbWV0YS1kYXRhIHtcbiAgICBAaW5jbHVkZSBsaXN0LWxnKCk7XG4gIH1cbiAgLmxpbmstYXJyb3ctd3JhcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbn1cblxuLyogc2VydmljZXMgc2luZ2xlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaW5nbGUtZG93bF9zZXJ2aWNlIHtcblxuICAuZmVhdHVyZWQtcGhvdG8ge1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgcGFkZGluZy10b3A6IDQwJTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzMCU7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJvdyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG4gIC5zZXJ2aWNlLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgYm90dG9tOiAtMjBweDsgei1pbmRleDogMTtcbiAgICB3aWR0aDogOTBweDsgaGVpZ2h0OiA5MHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGJvdHRvbTogLTMwcHg7XG4gICAgICB3aWR0aDogMTIwcHg7IGhlaWdodDogMTIwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGJvdHRvbTogLTQwcHg7XG4gICAgICB3aWR0aDogMTUwcHg7IGhlaWdodDogMTUwcHg7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDEwcHggMHB4IHJnYmEoIzQ0NCwuNik7XG4gICAgfVxuXG4gIH1cbiAgLnBhcmVudC1zbHVnLW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgfVxuICAuc2VydmljZS1pbnRybyB7XG4gICAgQGV4dGVuZCAuc2VjdGlvbjtcbiAgICBAaW5jbHVkZSBiZy1wc2V1ZG8tdHJpYW5nbGVzLWJvdHRvbSgjZGRkKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogI2VlZTtcbiAgfVxuICAuc2VydmljZS1sZWFkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxcHg7XG4gICAgICBtYXJnaW46IDEwcHggMCAzMHB4IDA7XG4gICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICM2NjY7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTI1cHg7IHRvcDogMDsgYm90dG9tOiAwOyB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogMXB4OyBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkb3R0ZWQgIzY2NjtcbiAgICAgIH1cblxuICAgIH1cbiAgICAucG9ydHJhaXQge1xuICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgIH1cbiAgICAubmFtZSB7XG4gICAgICBtYXJnaW46IDAgMCAycHggMDtcbiAgICB9XG4gICAgLnRpdGxlIHtcbiAgICAgIG1hcmdpbjogMCAwIDJweCAwO1xuICAgIH1cbiAgICAucGhvbmUge1xuICAgICAgbWFyZ2luOiAwIDAgMnB4IDA7XG4gICAgfVxuICAgIC5wcm9qZWN0LW1ldGEtc29jaWFsIHtcbiAgICAgIG1hcmdpbjogMTBweCAwIDAgMDtcbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCA1cHggMCAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBwYXRoIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICB9XG4gICAgICAgIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG4gICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkYnV0dG9uLW9yYW5nZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYS5saW5rZWRpbiB7XG4gICAgICB3aWR0aDogMTlweDsgaGVpZ2h0OiAyMHB4O1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICB3aWR0aDogMjdweDsgaGVpZ2h0OiAyNXB4O1xuICAgICAgfVxuXG4gICAgfVxuICAgIGEuZW1haWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDNweDtcbiAgICAgIHdpZHRoOiAyMXB4OyBoZWlnaHQ6IDE5cHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHdpZHRoOiAzMnB4OyBoZWlnaHQ6IDI5cHg7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuICAuc2VydmljZS1jb250ZW50IHtcbiAgICBAZXh0ZW5kIC5zZWN0aW9uO1xuICAgIEBpbmNsdWRlIGJnLXBzZXVkby10cmlhbmdsZXMtdG9wKCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgaDIge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuICAuc2VydmljZS1zdWItcHJhY3RpY2UtYXJlYSB7XG4gICAgbWFyZ2luOiAwIDAgNDBweCAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB3aWR0aDogYXV0bzsgaGVpZ2h0OiAxcHg7XG4gICAgICBtYXgtd2lkdGg6IDY2LjY2NjY3cmVtO1xuICAgICAgbWFyZ2luOiAwIDE0cHggMjBweDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzY2NjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDMwcHg7XG4gICAgICB9XG5cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAmLnNlcnZpY2Utc3ViLXByYWN0aWNlLWFyZWEtMSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5wYS1waG90byB7XG4gICAgICBtYXJnaW46IDAgMCAzMHB4IDA7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICAgIH1cblxuICAgIH1cbiAgICAucGEtaGRyLXNlY3Rpb24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgIC5wYS1kZXRhaWxzLWhkciB7XG4gICAgICBAZXh0ZW5kIGg0O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7IHBhZGRpbmc6IDEwcHggMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjNjY2O1xuICAgICAgICBjb2xvcjogJHRleHQtbGluay1vcmFuZ2U7XG5cbiAgICAgICAgQGF0LXJvb3QgLm5vLWlvcyAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJGJ1dHRvbi1vcmFuZ2U7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGJ1dHRvbi1vcmFuZ2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5vcGVuIHtcbiAgICAgICAgICBjb2xvcjogJGRhcmstcmVkO1xuXG4gICAgICAgICAgLmljb24td3JhcCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGRhcmstcmVkO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIEBhdC1yb290IC5uby1pb3MgJi5vcGVuOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJGRhcmstcmVkO1xuICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGRhcmstcmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9Ly9zbWFsbCBvbmx5XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICB9XG4gICAgICAuaWNvbi13cmFwIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEycHg7IHJpZ2h0OiAxMHB4OyB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiA4cHg7IGhlaWdodDogMThweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiAkdGV4dC1saW5rLW9yYW5nZTtcbiAgICAgIH1cblxuICAgIH1cbiAgICAucGEtZGV0YWlscy1sYXN0IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM2NjY7XG4gICAgICB9XG4gICAgfVxuICAgIC5wYS1kZXRhaWxzLWNvbnRlbnQge1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAgICAgICAmLnNob3cge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgbWF4LWhlaWdodDogMjAwMHB4O1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICB1bCB7XG4gICAgICAgIEBpbmNsdWRlIGxpc3QoKTtcbiAgICAgIH1cblxuICAgICAgLy8gY3VzdG9tIHNob3cvaGlkZSBsaXN0IGl0ZW1zXG4gICAgICAudG9nZ2xlLXNlcnZpY2VzLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblxuICAgICAgICAudG9nZ2xlLXNlcnZpY2VzLWxpc3Qge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIC5zZXJ2aWNlLWl0ZW0tdG9nZ2xlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgfVxuICAgICAgICAmLm9wZW4ge1xuICAgICAgICAgIC5zZXJ2aWNlLWl0ZW0tdG9nZ2xlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDAwcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAucGEtZGVzYyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7XG4gICAgICBwYWRkaW5nOiAwIDAgMTBweCAwO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuICAucGEtbGVhZC1jb250ZW50IHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTVweCk7XG4gICAgfVxuICAgIC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5wb3J0cmFpdC13cmFwIHtcbiAgICAgIG1hcmdpbjogMCAxNXB4IDAgMDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLnBvcnRyYWl0IHtcbiAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICB9XG4gICAgLm5hbWUge1xuICAgICAgbWFyZ2luOiAwIDAgMnB4IDA7XG4gICAgfVxuICAgIC50aXRsZSB7XG4gICAgICBtYXJnaW46IDAgMCAycHggMDtcbiAgICB9XG4gICAgLnBob25lIHtcbiAgICAgIG1hcmdpbjogMCAwIDJweCAwO1xuICAgIH1cbiAgICAucHJvamVjdC1tZXRhLXNvY2lhbCB7XG4gICAgICBtYXJnaW46IDEwcHggMCAwIDA7XG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgNXB4IDAgMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgfVxuICAgICAgICBAYXQtcm9vdCAubm8taW9zICY6aG92ZXIge1xuICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGJ1dHRvbi1vcmFuZ2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGEubGlua2VkaW4ge1xuICAgICAgd2lkdGg6IDE5cHg7IGhlaWdodDogMjBweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgd2lkdGg6IDI3cHg7IGhlaWdodDogMjVweDtcbiAgICAgIH1cblxuICAgIH1cbiAgICBhLmVtYWlsIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAzcHg7XG4gICAgICB3aWR0aDogMjFweDsgaGVpZ2h0OiAxOXB4O1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICB3aWR0aDogMzJweDsgaGVpZ2h0OiAyOXB4O1xuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cbiAgLnNlcnZpY2UtdGVhbSB7XG4gICAgbWFyZ2luOiAyMHB4IDAgMCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG59XG5cblxuLyogUGFnZXM6IGNvbW1vbiBlbGVtZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmJvZHkucGFnZSB7XG5cbiAgLmZlYXR1cmVkLXBob3RvIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBwYWRkaW5nLXRvcDogNDAlO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDIwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuICAucGFnZS1pbnRybyB7XG4gICAgQGV4dGVuZCAuc2VjdGlvbjtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICB9XG4gIC5wYWdlLWNvbnRlbnQge1xuICAgIEBleHRlbmQgLnNlY3Rpb247XG4gIH1cbiAgLnBhZ2UtY2xvc2luZyB7XG4gICAgQGV4dGVuZCAuc2VjdGlvbjtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICB9XG5cbn1cblxuLyogUGFnZXM6IGN1c3RvbSBzZWFyY2ggcmVzdWx0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLXNlYXJjaC1jdXN0b20ge1xuXG4gIC5wYWdlLWNvbnRlbnQge1xuICAgIEBleHRlbmQgLnNlY3Rpb247XG4gIH1cblxuICAuc2VhcmNoLWZvcm0ge1xuICAgIG1hcmdpbjogMCAwIDMwcHggMDsgcGFkZGluZzogMCAwIDMwcHggMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNjY2M7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gICAgfVxuXG4gICAgLmhkci1zZWN0aW9uIHtcbiAgICAgIG1hcmdpbjogMCAwIDVweCAwO1xuICAgIH1cbiAgICBpbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgICAgQGV4dGVuZCBoMjtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDJweCAxMnB4O1xuICAgICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgICBidXR0b24uc3VibWl0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAzcHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAyNXB4OyBoZWlnaHQ6IDI1cHg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgdG9wOiA3cHg7XG4gICAgICAgIHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDMwcHg7XG4gICAgICB9XG5cbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiAjNzc3O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgfVxuXG4gICAgICBAYXQtcm9vdCAubm8taW9zICY6aG92ZXIge1xuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBmaWxsOiAkYnV0dG9uLW9yYW5nZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cbiAgLnN0LXVpLWluamVjdGVkLXNlYXJjaC1zdW1tYXJ5LFxuICAuc3Qtc2VhcmNoLXN1bW1hcnkge1xuICAgIG1hcmdpbjogMCAwIDUwcHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnN0LXVpLXJlc3VsdCB7XG4gICAgbWFyZ2luOiAwIDAgMzBweCAwOyBwYWRkaW5nOiAwIDAgMzBweCAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2NjYztcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICB9XG5cblxuICAgIGVtIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWUgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogNXB4OyBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnN0LXVpLXR5cGUtaGVhZGluZyB7XG4gICAgICBAZXh0ZW5kIGgyO1xuICAgICAgY29sb3I6ICR0ZXh0LWxpbmstb3JhbmdlICFpbXBvcnRhbnQ7XG5cbiAgICAgIGVtIHtcbiAgICAgICAgY29sb3I6ICNhYzNiMDMgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAuc3QtdWktdHlwZS1oZWFkaW5nIHtcbiAgICAgICAgY29sb3I6ICRidXR0b24tb3JhbmdlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnN0LXVpLXR5cGUtZGV0YWlsIHtcbiAgICAgIEBleHRlbmQgcDtcbiAgICAgIG1heC1oZWlnaHQ6IDU5cHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBjb2xvcjogIzMzMyAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5zdC11aS10eXBlLWRldGFpbCB7XG4gICAgICAgIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5zdC11aS10eXBlLWRldGFpbC1ib2xkIHtcbiAgICAgIEBleHRlbmQgcDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7XG4gICAgfVxuXG5cbiAgICAuZW50cnktY29udGVudCB7XG4gICAgICBwIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIH1cblxuICB9XG5cbiAgLnN0LXVpLWNvbnRhaW5lci1mb290ZXJfYmFyIHtcbiAgICBtYXJnaW46IC0zMHB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDMwcHggMCAwIDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjY2NjO1xuICB9XG4gIC5zdC11aS1wYWdpbmF0aW9uLFxuICAuc3Qtc2VhcmNoLXBhZ2luYXRpb24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5zdC11aS1wYWdpbmF0aW9uLWxpbmssXG4gICAgLnN0LXVpLXBhZ2luYXRpb24tbnVtYmVyLWxpbmssXG4gICAgLnN0LXJlc3VsdC1wYWdpbmF0aW9uLWxpbmsge1xuICAgICAgbWFyZ2luOiA1cHg7XG4gICAgICBwYWRkaW5nOiA0cHggMTVweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMThweCk7XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjODg4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgICAgLnN0LXVpLWFycm93IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IC0zcHg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRleHQtbGluay1vcmFuZ2U7XG4gICAgICB9XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLnN0LXVpLWFycm93IHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRidXR0b24tb3JhbmdlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cblxuXG4gIH1cblxufS8vYm9keVxuXG5cblxuXG4vKiBQYWdlczogc2VhcmNoIHJlc3VsdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5ib2R5LnNlYXJjaCB7XG5cbiAgLnNlYXJjaC1mb3JtIHtcbiAgICBtYXJnaW46IDAgMCAzMHB4IDA7IHBhZGRpbmc6IDAgMCAzMHB4IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjY2NjO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgIH1cblxuICAgIC5oZHItc2VjdGlvbiB7XG4gICAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICB9XG4gICAgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICAgIEBleHRlbmQgaDI7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAycHggMTJweDtcbiAgICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgYnV0dG9uLnN1Ym1pdCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogM3B4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMjVweDsgaGVpZ2h0OiAyNXB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHRvcDogN3B4O1xuICAgICAgICB3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4O1xuICAgICAgfVxuXG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogIzc3NztcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgQGF0LXJvb3QgLm5vLWlvcyAmOmhvdmVyIHtcbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgZmlsbDogJGJ1dHRvbi1vcmFuZ2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG4gIC5zZWFyY2gtcmVzdWx0IHtcbiAgICBtYXJnaW46IDAgMCAzMHB4IDA7IHBhZGRpbmc6IDAgMCAzMHB4IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjY2NjO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgIH1cblxuICAgIC5lbnRyeS1jb250ZW50IHtcbiAgICAgIHAgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgfVxuXG4gIH1cblxuICAucGFnZS1jb250ZW50IHtcbiAgICBAZXh0ZW5kIC5zZWN0aW9uO1xuICB9XG5cbn1cblxuXG4vKiBQYWdlOiBMaXN0aW5nIHRlbXBsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmJvZHkucGFnZS10ZW1wbGF0ZS1wYWdlLWxpc3Rpbmcge1xuXG4gIC5saXN0aW5nLWhkciB7XG4gICAgbWFyZ2luOiAwIDAgMzBweCAwO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuICAuYWNjb3JkaW9uLWxpc3Rpbmcge1xuICAgIG1hcmdpbjogMCAwIDQwcHggMDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNzVweDtcbiAgICB9XG4gIH1cbiAgLmFjY29yZGlvbi1pdGVtLWxpc3Rpbmcge1xuICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4IDQwcHggMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDYwcHg7XG4gICAgfVxuXG4gIH0vL2FjY29yZGlvbi1pdGVtLWxpc3RpbmdcblxufVxuXG5cblxuXG5cbi8qIFBhZ2U6IENhcmVlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnBhZ2UtdGVtcGxhdGUtcGFnZS1jYXJlZXJzIHtcblxuICAuZmVhdHVyZWQtcGhvdG8ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLnBhZ2UtaW50cm8tbGluayB7XG4gICAgbWFyZ2luOiAzMHB4IDAgMCAwO1xuXG4gICAgLmljb24td3JhcCBwYXRoIHtcbiAgICAgIGZpbGw6ICNmZmY7XG4gICAgfVxuICAgIGE6aG92ZXIgLmljb24td3JhcCBwYXRoIHtcbiAgICAgIGZpbGw6ICNmZmY7XG4gICAgfVxuICAgIGEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG4gIC5jYXJlZXJzLXNsaWRlciB7XG4gICAgbWFyZ2luOiA0MHB4IDAgMjBweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICB9XG5cbiAgLmJlbmVmaXRzLWhkciB7XG4gICAgbWFyZ2luOiAwIDAgMzBweCAwO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuICAuYmVuZWZpdHMge1xuICAgIG1hcmdpbjogMCAwIDQwcHggMDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNzVweDtcbiAgICB9XG4gIH1cbiAgLmJlbmVmaXQge1xuICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogNTBweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4IDQwcHggNzBweDtcbiAgICAgIH1cblxuICAgICAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBwYXRoLmNpcmNsZSB7XG4gICAgICAgICAgICBmaWxsOiAkZGFyay1yZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIH0vL3Jvb3RcblxuICAgIH1cbiAgICAuaWNvbi13cmFwIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IHotaW5kZXg6IDE7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDtcbiAgICAgIG1hcmdpbjogMCAxMHB4IDAgMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBsZWZ0OiAtNXB4O1xuICAgICAgICB3aWR0aDogNTZweDsgaGVpZ2h0OiA1NnB4O1xuICAgICAgfVxuXG4gICAgfVxuICAgIHBhdGguY2lyY2xlIHtcbiAgICAgIGZpbGw6ICR0ZXh0LWxpbmstb3JhbmdlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHBhdGguY2lyY2xlIHtcbiAgICAgICAgZmlsbDogJGRhcmstcmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA3MHB4O1xuICAgICAgfVxuXG4gICAgfVxuXG4gIH0vL2JlbmVmaXRcblxuICAvLyBleHBhbmRlclxuICAubW9yZS1saW5rLFxuICAubGVzcy1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTNweDsgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDM3cHg7XG4gICAgbWFyZ2luOiAzMHB4IGF1dG8gMDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tYXJ3LXNsaWRlci5zdmcpIG5vLXJlcGVhdDtcbiAgICBvcGFjaXR5OiAuODtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgQGF0LXJvb3QgLm5vLWlvcyAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gIH1cbiAgLm1vcmUtbGluayB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG4gIC5sZXNzLWxpbmsge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIH1cbiAgLmJlbmVmaXRzLWJ1dHRvbi1saW5rIHtcbiAgICAuaWNvbi13cmFwIHBhdGgge1xuICAgICAgZmlsbDogI2ZmZjtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAuaWNvbi13cmFwIHBhdGgge1xuICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8qIFBhZ2U6IENoYXJpdHkgVm90aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuYm9keS5wYWdlLnBhZ2UtdGVtcGxhdGUtcGFnZS1jaGFyaXR5LXZvdGluZyB7XG5cbiAgLyogaGVybyBwaG90byAqL1xuICAuZmVhdHVyZWQtcGhvdG8ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBwYWRkaW5nLXRvcDogMjYlO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDI2JTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyogc2VjdGlvbiBkZWZhdWx0ICovXG4gIC8qXG4gIHBhZGRpbmc6IDQwcHggMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmc6IDc1cHggMDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZzogMTAwcHggMDtcbiAgfVxuICAqL1xuICAlc2VjdGlvbi1jaGFyaXR5IHtcbiAgICAvL3BhZGRpbmc6IDIwcHggMCAzMHB4O1xuICAgIHBhZGRpbmc6IDUwcHggMCA2MHB4O1xuICBcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAvL3BhZGRpbmc6IDQwcHggMCA1MHB4O1xuICAgICAgcGFkZGluZzogNzBweCAwIDkwcHg7XG4gICAgfVxuICB9XG4gIC8qIGZpcnN0IHJvdyAqL1xuICAucGFnZS1jaGFyaXR5LWludHJvIHtcbiAgICBAZXh0ZW5kICVzZWN0aW9uLWNoYXJpdHk7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzMDFweCkge1xuICAgICAgQGluY2x1ZGUgYmctcHNldWRvLXRyaWFuZ2xlcy1ib3R0b20oIHJnYmEoI2VlZSwuNikgKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cbiAgLnBhZ2UtY2hhcml0eS1pbnRyb19fbGVhZCB7XG4gICAgbWF4LXdpZHRoOiA4NTBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnBhZ2UtY2hhcml0eS1pbnRyb19fbGVhZCArIC5jaGFyaXR5LWluZm8ge1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICB9XG4gIH1cbiAgLmNoYXJpdHktaW5mbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAvKiBzZWNvbmQgcm93ICovXG4gIC5wYWdlLWNoYXJpdHktdm90aW5nIHtcbiAgICBAZXh0ZW5kICVzZWN0aW9uLWNoYXJpdHk7XG4gICAgYmFja2dyb3VuZDogI2VlZTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzMDFweCkge1xuICAgICAgQGluY2x1ZGUgYmctcHNldWRvLXRyaWFuZ2xlcy10b3AoIHJnYmEoI2NjYywuNSkgKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cbiAgaW5wdXRbdHlwZT0ndGV4dCddLFxuICBpbnB1dFt0eXBlPSdlbWFpbCddIHtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgfVxuXG4gIC8qIGJvdHRvbSBiYW5uZXIgKi9cbiAgLmJhbm5lci1idG0ge1xuICAgIC8qIHVuZG8gcGFyYWxsYXggKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGluaXRpYWw7XG4gIH1cblxufSAvLyAucGFnZS10ZW1wbGF0ZS1wYWdlLWNoYXJpdHktdm90aW5nXG5cblxuLyogUGFnZTogQ29udGFjdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCB7XG5cbiAgLnBhZ2UtaW50cm8ge1xuICAgIHBhZGRpbmc6IDQwcHggMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBwYWRkaW5nOiA1MHB4IDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIHBhZGRpbmc6IDc1cHggMDtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnNlYXJjaC1vZmZpY2VzIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgfVxuXG4gIC5zdGF0ZS1vZmZpY2VzIHtcbiAgICBtYXJnaW46IDAgMCA0MHB4IDA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICB9Ly9zdGF0ZS1vZmZpY2VzXG4gIC5vZmZpY2Uge1xuICAgIC5jb250YWN0IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWFwIHtcbiAgICAgIG1hcmdpbjogMjVweCAwIDE1cHg7XG4gICAgfVxuICAgIC5yZXNwb25zaXZlLWVtYmVkIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgfVxuXG4gICAgLm9mZmljZS1tYW5hZ2VyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgICBtYXJnaW46IDE1cHggMDsgcGFkZGluZzogMTVweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNXB4KTtcbiAgICAgIH1cblxuICAgIH1cbiAgICAucG9ydHJhaXQge1xuICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgIH1cbiAgICAubmFtZSB7XG4gICAgICBtYXJnaW46IDAgMCAycHggMDtcbiAgICB9XG4gICAgLnRpdGxlIHtcbiAgICAgIG1hcmdpbjogMCAwIDJweCAwO1xuICAgIH1cbiAgICAuY29udGFjdCB7XG4gICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgfVxuICAgIC5waG9uZSB7XG4gICAgICBtYXJnaW46IDAgMCAycHggMDtcbiAgICB9XG4gICAgLnByb2plY3QtbWV0YS1zb2NpYWwge1xuICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwO1xuICAgIH1cbiAgICBhLmVtYWlsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAzNXB4OyBoZWlnaHQ6IDMycHg7XG4gICAgICBwYXRoIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgQGF0LXJvb3QgLm5vLWlvcyAmOmhvdmVyIHtcbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgZmlsbDogJGJ1dHRvbi1vcmFuZ2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH0vL2VtYWlsXG5cbiAgfS8vb2ZmaWNlXG5cblxuXG4gIC5jb250YWN0LWJhciB7XG4gICAgcG9zaXRpb246IGZpeGVkOyBib3R0b206IDA7IGxlZnQ6MDsgcmlnaHQ6MDsgei1pbmRleDogMTA7XG4gICAgcGFkZGluZzogMTVweCAwO1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLmhkciB7XG4gICAgICBtYXJnaW46IDAgMCAwIDA7XG4gICAgfVxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICAucGlwZSB7XG4gICAgICBtYXJnaW46IDAgNXB4O1xuICAgIH1cblxuICB9Ly9jb250YWN0LWJhclxuXG4gIC5zaXRlLWZvb3RlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDE0MHB4O1xuICB9XG5cblxufVxuXG5cblxuLyogUGFnZTogQ29tcGFueSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbXBhbnkge1xuXG4gIC5jb21wYW55LWludHJvIHtcbiAgICBAZXh0ZW5kIC5zZWN0aW9uO1xuICB9XG4gIC5jb21wYW55LWludHJvLW1lZGlhIHtcbiAgICBtYXJnaW46IDAgMCAzMHB4IDA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXG4gICAgfVxuXG4gICAgLnJlc3BvbnNpdmUtZW1iZWQsXG4gICAgLmZsZXgtdmlkZW8ge1xuICAgICAgcGFkZGluZy1ib3R0b206IDU2LjMlO1xuICAgIH1cblxuICB9XG4gIC5jb21wYW55LWludHJvLWNvbnRlbnQge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG5cbiAgICAgIGgyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAuY29tcGFueS12YWx1ZXMge1xuICAgIEBleHRlbmQgLnNlY3Rpb247XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5oZHItc2VjdGlvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxuICB9XG4gIC5jb21wYW55LXZhbHVlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAxMHB4IDA7IHBhZGRpbmc6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtaW4taGVpZ2h0OiAyNTBweDtcbiAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgIH1cblxuICAgIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoIzMzMywuNSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRlY29yIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGJvdHRvbTogMDsgei1pbmRleDogMTtcbiAgICAgIG1hcmdpbjogMTVweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR0ZXh0LWxpbmstb3JhbmdlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgIH1cbiAgICAuaW5uZXIge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgbGVmdDogNTAlOyB6LWluZGV4OiAyO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgICAgICB3aWR0aDogODAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1mYW1pbHk6ICRsYWJlbC1mb250O1xuICAgICAgY29sb3I6ICR0ZXh0LWxpbmstb3JhbmdlO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOHB4KTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjJweCk7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjhweCk7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gICAgLmRlc2Mge1xuICAgICAgQGluY2x1ZGUgcC1zbSgpO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICAgIH1cblxuICAgIH1cbiAgICAudG9nZ2xlLWZsaXBjYXJkLWljb24ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHdpZHRoOiAzMnB4OyBoZWlnaHQ6IDMycHg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAxMHB4OyBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIGxpbmUge1xuICAgICAgICBzdHJva2U6ICR0ZXh0LWxpbmstb3JhbmdlO1xuICAgICAgfVxuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDVweDsgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIHdpZHRoOiA2MHB4OyBoZWlnaHQ6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICAgIC8vIGhvdmVyXG4gICAgJi5qcy1ob3ZlciB7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKCMzMzMsLjUpO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiAkYnV0dG9uLW9yYW5nZTtcbiAgICAgICAgfVxuICAgICAgICAudG9nZ2xlLWZsaXBjYXJkLWljb24ge1xuICAgICAgICAgIGxpbmUge1xuICAgICAgICAgICAgc3Ryb2tlOiAkYnV0dG9uLW9yYW5nZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfS8vbWVkaXVtXG5cbiAgICB9XG5cbiAgICAvLyBmbGlwIGNhcmQgZmVhdHVyZXNcbiAgICAmLmpzLW9wZW4ge1xuICAgICAgcGFkZGluZy10b3A6IDQwcHg7IHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9iZy1ibGFjay1wYXBlci01NTUucG5nKTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDYwcHg7IHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICAgICAgfVxuXG4gICAgICAuZGVjb3Ige1xuICAgICAgICBib3JkZXItY29sb3I6ICM5OTk7XG4gICAgICB9XG4gICAgICAuaW5uZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgIHRvcDogMjAlO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsMCUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCAwIDhweCAwOyBwYWRkaW5nOiAwIDIwcHggOHB4IDIwcHg7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk5OTtcbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5kZXNjIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cbiAgICAgIH1cbiAgICAgIC50b2dnbGUtZmxpcGNhcmQtaWNvbiB7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDVweDsgcmlnaHQ6IDVweDsgei1pbmRleDogMTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIGxpbmUge1xuICAgICAgICAgIHN0cm9rZTogI2ZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JnLWJsYWNrLXBhcGVyLTU1NS5wbmcpO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgLmNvbXBhbnktY2FwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAuc3BhY2VyLXZlcnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM2NjY7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7IHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cbiAgLmNvbXBhbnktY2FwLWdyYXBoaWMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMjBweCBhdXRvO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgfVxuXG4gIC5jb21wYW55LWNvbW1pdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICB9XG4gIC5jb21wYW55LWZlYXR1cmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDMwcHggMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tbGVmdDogMTIwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblxuICAgIH1cblxuICB9XG4gIC5jb21wYW55LWZlYXR1cmUtaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDUxcHg7IGhlaWdodDogNTFweDtcbiAgICBtYXJnaW46IDAgYXV0byAxMHB4IGF1dG87XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDVweDsgbGVmdDogLTEyMHB4OyB6LWluZGV4OiAxO1xuICAgICAgd2lkdGg6IDY4cHg7IGhlaWdodDogNjhweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgfVxuXG4gIC5jb21wYW55LXNsaWRlciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQ6ICMyMjI7XG5cbiAgICAmLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cblxuICAgIC5pbm5lciB7XG4gICAgICAvL2Rpc3BsYXk6IGZsZXg7XG4gICAgICAvL2ZsZXgtZmxvdzogY29sdW1uIHdyYXA7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLnNsaWRlLXBob3RvLFxuICAgIC5zbGlkZS10ZXh0IHtcbiAgICAgIC8qXG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAqL1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC8vd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC5zbGlkZS1waG90byB7XG4gICAgICAvL21pbi1oZWlnaHQ6IDEwMHB4O1xuICAgICAgLy9tYXgtd2lkdGg6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG4gICAgLm92ZXJsYXkge1xuICAgICAgbWluLXdpZHRoOiA3NSU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGRyLWZvbnQ7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgOHB4IHJnYmEoIzAwMCwuOCk7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBwYWRkaW5nOiAzMHB4IDE1cHg7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLnNsaWRlLXRleHQge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JnLWJsYWNrLXBhcGVyLTU1NS5wbmcpO1xuXG4gICAgICBwIHtcbiAgICAgICAgQGluY2x1ZGUgcC1sZygpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDYwcHggMzBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA0NTBweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAvL3BhZGRpbmc6IDE1cHg7XG4gICAgICAgICAgcGFkZGluZzogMTYwcHggMzBweDtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9XG4gICAgLnNsaWNrLWRvdHMge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBib3R0b206IGF1dG87XG4gICAgICBwYWRkaW5nOiA1cHggMCAxMHB4O1xuICAgICAgYmFja2dyb3VuZDogIzIyMjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgdG9wOiAtM3B4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxuICAuY29tcGFueS1oaXN0b3J5IHtcbiAgICBAZXh0ZW5kIC5zZWN0aW9uO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjMjIyO1xuICAgIC8vYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBmYXJ0aGVzdC1zaWRlLCAjNTU1LCAjMjIyKTtcbiAgICAvL2JhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgY2xvc2VzdC1zaWRlLCAjNTU1LCAjMjIyKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgcGFkZGluZy10b3A6IDUwcHg7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IGxlZnQ6IDUwJTsgei1pbmRleDogMTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgd2lkdGg6IDgwJTsgaGVpZ2h0OiA4MCU7XG4gICAgICAvL2JhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgY2xvc2VzdC1zaWRlLCAjNTU1LCAjMjIyKTtcbiAgICAgIC8vYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBmYXJ0aGVzdC1zaWRlLCAjNTU1LCAjMjIyKTtcbiAgICAgIC8vYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNsb3Nlc3Qtc2lkZSwgIzU1NSwgIzIyMik7XG4gICAgfVxuXG4gICAgLmNvbXBhbnktaGlzdG9yeS1pbnRybyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDI7XG4gICAgICBtYXJnaW46IDAgMCAzMHB4IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgICB9XG5cblxuICAgICAgaDIsIHAge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIC50aW1lbGluZS1tb2JpbGUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyO1xuICAgICAgbWFyZ2luOiAyMHB4IDAgNTBweDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jdXN0b21fc3RvcnlfbGJsIHtcbiAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICBjb2xvcjogJGRvd2wtb3JhbmdlO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC50aW1lbGluZS1kZXNrdG9wIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmRvd2wtdGltZWxpbmUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgICAgIH1cblxuICAgICAgLmRvd2wtdGltZWxpbmUtbmF2IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBib3R0b206IDA7IGxlZnQ6IDUwJTsgei1pbmRleDogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgd2lkdGg6IDZweDsgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkZG93bC1vcmFuZ2U7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogNDBweCAwO1xuICAgICAgICAgIGNvbG9yOiAjNzc3O1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkaGRyLWZvbnQ7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMHB4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMnB4KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmpzLWhvdmVyIHtcblxuICAgICAgICAgICAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRkb3dsLW9yYW5nZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIHJpZ2h0OiAtMTBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH1cbiAgICAgICAgICAmLmpzLW9wZW4ge1xuICAgICAgICAgICAgY29sb3I6ICRkb3dsLW9yYW5nZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTUwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAvL2ZvbnQtc2l6ZTogMTc1JTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNjAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICB3aWR0aDogMjVweDsgaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICBsZWZ0OiAtMTJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICByaWdodDogLTEzcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBhdC1yb290IC5uby1pb3MgJiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkZG93bC1vcmFuZ2U7XG5cbiAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZG93bC1vcmFuZ2U7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAyO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJGRvd2wtb3JhbmdlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAtLjQxcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtLjQycmVtO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5ldmVuLFxuICAgICAgICAgICYub2RkIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuZXZlbiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH1cbiAgICAgICAgICAmLm9kZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgfS8vYVxuXG5cbiAgICAgIH0vL2Rvd2wtdGltZWxpbmVcbiAgICAgIC5kb3dsLXRpbWVsaW5lLWVudHJpZXMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgZmFydGhlc3Qtc2lkZSwgIzY2NiwgIzIyMiA2MCUpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGZhcnRoZXN0LXNpZGUsICM2NjYsICMyMjIpO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgIC5kb3dsLXRpbWVsaW5lLWVudHJ5IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIC8vdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICAgIC8vdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2U7XG5cbiAgICAgICAgJi5qcy1vcGVuIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDEyMDBweDtcbiAgICAgICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5kb3dsLXRpbWVsaW5lLXBob3RvIHtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgIH1cbiAgICAgIC5kb3dsLXRpbWVsaW5lLWNvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgIG1hcmdpbjogLTE1JSAwIDAgYXV0bztcbiAgICAgICAgcGFkZGluZzogMzBweCAzMHB4IDYwcHggMzBweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgICAgICAvLyBkZWNvciBsaW5lXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IHJpZ2h0OiAwOyB6LWluZGV4OiAxO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiAyMCU7IGhlaWdodDogNnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRkb3dsLXJ1c3Q7XG4gICAgICAgIH1cblxuICAgICAgICB0aW1lIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMzBweCAwOyBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICRoZHItZm9udDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkZG93bC1ydXN0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTZweCk7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMHB4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMnB4KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9Ly9kb3dsLXRpbWVsaW5lXG5cblxuXG4gIH0vLy5jb21wYW55LWhpc3RvcnlcbiAgLmNvbXBhbnktZnV0dXJlIHtcbiAgICBAZXh0ZW5kIC5zZWN0aW9uO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgfVxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiA1MCU7IHotaW5kZXg6IDE7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAwOyBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAyMHB4IDIwcHggMCAyMHB4O1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMjIyIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC5jb21wYW55LWZ1dHVyZS1ncmFwaGljLWRlc2t0b3Age1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC5jb21wYW55LWZ1dHVyZS1ncmFwaGljLW1vYmlsZSB7XG4gICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDI1cHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5zaW1wbGViYXItd3JhcHBlciB7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAvL3dpZHRoOiAxNzUlO1xuICAgICAgICAgIHdpZHRoOiA1ODBweDtcblxuICAgICAgICAgIEBhdC1yb290IC5pb3MgJiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHggMCAwO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgLmxpbmstd3JhcCB7XG4gICAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgIH1cblxuICB9XG59XG5cblxuLyogUGFnZXM6IFBlb3BsZSBwYWdlcyBjb21tb24gZWxlbWVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBlb3BsZS1wYWxzLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCB7XG4gIC5mZWF0dXJlZC1waG90byB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vKiBQYWdlczogUGVvcGxlIHN1Ym5hdiAqL1xuLnBlb3BsZS1wZy1uYXYge1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuXG4gIC5tZW51IGEge1xuICAgIG1hcmdpbjogMCAxcHg7IHBhZGRpbmc6IDIwcHggNXB4IDE1cHggNXB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiAkaGRyLWZvbnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNHB4KTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW46IDAgMTVweDsgcGFkZGluZzogMzRweCA1cHggMzBweCA1cHg7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4cHgpO1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwcHgpO1xuICAgIH1cblxuICB9XG4gIC5tZW51IC5pcy1hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogJGRhcmstcmVkO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRkYXJrLXJlZDtcbiAgfVxuXG5cbn1cblxuLyogY29udGVudCAqL1xuLnBlb3BsZS1jb250ZW50IHtcbiAgQGV4dGVuZCAuc2VjdGlvbjtcbn1cblxuLyogUGFnZTogUGVvcGxlIFBBTFMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtcGFscyB7XG5cbiAgLnRvcC1oZHItc2VjdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gIH1cbiAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgLy9wYWRkaW5nOiAxLjI1cmVtIDA7XG4gICAgcGFkZGluZzogMS41cmVtIDA7XG4gIH1cbiAgLnByYWN0aWNlLWxlYWQge1xuXG4gICAgLnByYWN0aWNlLWxlYWRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogLTAuODMzMzNyZW07IG1hcmdpbi1yaWdodDogLTAuODMzMzNyZW07IG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODMzMzNyZW07IHBhZGRpbmctcmlnaHQ6IDAuODMzMzNyZW07IHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZiAwJSwjZmZmIDEwJSwjZWVlIDExJSwjZWVlIDEwMCUpO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgICB9XG4gICAgfVxuICAgIC5wb3J0cmFpdCB7XG4gICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgfVxuICAgIC5uYW1lIHtcbiAgICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgfVxuICAgIC50aXRsZSB7XG4gICAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIH1cbiAgICAucGhvbmUge1xuICAgICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB9XG4gICAgLnByb2plY3QtbWV0YS1zb2NpYWwge1xuICAgICAgbWFyZ2luOiAxMHB4IDAgMTBweCAwO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBtYXJnaW46IDIwcHggMCAyMHB4IDA7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCA1cHggMCAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBwYXRoIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICB9XG4gICAgICAgIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG4gICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkYnV0dG9uLW9yYW5nZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYS5saW5rZWRpbiB7XG4gICAgICB3aWR0aDogMTlweDsgaGVpZ2h0OiAyMHB4O1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICB3aWR0aDogMjdweDsgaGVpZ2h0OiAyNXB4O1xuICAgICAgfVxuXG4gICAgfVxuICAgIGEuZW1haWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDNweDtcbiAgICAgIHdpZHRoOiAyMXB4OyBoZWlnaHQ6IDE5cHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHdpZHRoOiAzMnB4OyBoZWlnaHQ6IDI5cHg7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLmJpbyB7XG4gICAgICBtYXJnaW4tdG9wOiAxNXB4OyBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzY2NjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzVweDsgcGFkZGluZy10b3A6IDMwcHg7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbiAgLnRlYW0tbGVhZHMge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIH1cblxuICAgIC50ZWFtLWxlYWQge1xuICAgICAgbWFyZ2luOiAwIDAgNDBweCAwO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC5wb3J0cmFpdC13cmFwIHtcbiAgICAgIG1hcmdpbjogMCAxNXB4IDE1cHggMDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG4gICAgfVxuICAgIC5uYW1lIHtcbiAgICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgfVxuICAgIC50aXRsZSB7XG4gICAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIH1cbiAgICAucGhvbmUge1xuICAgICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB9XG4gICAgLnByb2plY3QtbWV0YS1zb2NpYWwge1xuICAgICAgbWFyZ2luOiAxMHB4IDAgMjBweCAwO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBtYXJnaW46IDIwcHggMCAyMHB4IDA7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCA1cHggMCAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBwYXRoIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICB9XG4gICAgICAgIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG4gICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkYnV0dG9uLW9yYW5nZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYS5saW5rZWRpbiB7XG4gICAgICB3aWR0aDogMTlweDsgaGVpZ2h0OiAyMHB4O1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICB3aWR0aDogMjdweDsgaGVpZ2h0OiAyNXB4O1xuICAgICAgfVxuXG4gICAgfVxuICAgIGEuZW1haWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDNweDtcbiAgICAgIHdpZHRoOiAyMXB4OyBoZWlnaHQ6IDE5cHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHdpZHRoOiAzMnB4OyBoZWlnaHQ6IDI5cHg7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbiAgLnNlcnZpY2UtbGluayB7XG4gICAgbWFyZ2luOiAzMHB4IDAgMzBweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW46IDYwcHggMCA2MHB4IDA7XG4gICAgfVxuXG4gIH1cblxufVxuXG5cbi8qIFBhZ2U6IFBlb3BsZSBDb3Jwb3JhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wZW9wbGUtY29ycCB7XG5cbiAgLnN0YWZmLWNvcnBvcmF0ZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIH1cbiAgLnN0YWZmLXByZXZpZXcge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiA0NS41JTtcbiAgICBtYXJnaW46IDMlIDEuNSU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gIFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgXHRcdHdpZHRoOiA0Ni41JTtcbiAgICAgIC8vbWFyZ2luOiAxLjUlO1xuICBcdH1cbiAgXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICB3aWR0aDogMzAlO1xuICAgICAgbWFyZ2luOiAxJTtcbiAgXHR9XG4gICAgYSB7XG4gICAgICBAYXQtcm9vdCAubm8taW9zICY6aG92ZXIge1xuICAgICAgICAucG9ydHJhaXQge1xuICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAucG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgfVxuICAgIC5qcy1vcGVuIHtcblxuICAgICAgLnN0YWZmLW1ldGEge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAxMHB4O1xuICAgICAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkICRkYXJrLXJlZDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA3cHg7XG4gICAgICBcdH1cblxuICAgICAgfVxuICAgICAgLnBvcnRyYWl0IHtcbiAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMCUpO1xuICAgICAgfVxuICAgICAgLm5hbWUge1xuICAgICAgICBjb2xvcjogJGRhcmstcmVkO1xuICAgICAgfVxuICAgICAgLnRpdGxlIHtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLnN0YWZmLW1ldGEge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICB9XG4gICAgLm5hbWUge1xuICAgICAgbWFyZ2luOiAwIDAgNXB4IDA7XG4gICAgICBjb2xvcjogIzY2NjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTdweCk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4cHgpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE5cHgpO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC50aXRsZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBjb2xvcjogIzY2NjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE1cHgpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxN3B4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuICAuc3RhZmYtZnVsbCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAyLjYlO1xuICBcdGRpc3BsYXk6IGJsb2NrO1xuICBcdHdpZHRoOiA5NS4xJTsgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogMjBweCBhdXRvIDQwcHg7XG4gICAgcGFkZGluZzogMjBweDtcbiAgXHRiYWNrZ3JvdW5kOiAjZWVlO1xuICBcdHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbGVmdDogMS45JTtcbiAgICAgIHdpZHRoOiA5Ni4zJTtcbiAgICAgIHBhZGRpbmc6IDMwcHg7XG4gIFx0fVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGxlZnQ6IDIuNyU7XG4gICAgICB3aWR0aDogOTQuNiU7XG4gIFx0fVxuICB9XG4gIC5zdGFmZi1jb250YWN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDFweDtcbiAgICAgIG1hcmdpbjogMjBweCAwIDIwcHggMDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzY2NjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogLTE1cHg7IHRvcDogMDsgYm90dG9tOiAwOyB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogMXB4OyBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggZG90dGVkICM2NjY7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAucGhvbmUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cblxuICB9XG4gIC5zdGFmZi1iaW8ge1xuICAgIHAge1xuICAgICAgQGluY2x1ZGUgcC1zbSgpO1xuICAgIH1cbiAgfVxuICAucHJvamVjdC1tZXRhLXNvY2lhbCB7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMjRweDsgaGVpZ2h0OiAyMnB4O1xuICAgICAgbWFyZ2luOiAwIDEwcHggMCAwO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICB3aWR0aDogMjlweDsgaGVpZ2h0OiAyNnB4O1xuICAgICAgfVxuXG4gICAgICAmLmVtYWlsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDRweDtcbiAgICAgIH1cblxuICAgICAgQGF0LXJvb3QgLm5vLWlvcyAmOmhvdmVyIHtcbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgZmlsbDogJGJ1dHRvbi1vcmFuZ2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICB9Ly9wcm9qZWN0LW1ldGEtc29jaWFsXG5cbn1cbiIsIi8qIEJ1bGxldGluIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5idWxsZXRpbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDsgbGVmdDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgei1pbmRleDogMTAwO1xuICBwYWRkaW5nOiA0MHB4O1xuICBiYWNrZ3JvdW5kOiAkZGFyay1yZWQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgJi5qcy1oaWRlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTIwJSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAjZmJhYjg0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZkYmM5ZDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gIC5idWxsZXRpbl9fbXNnIHtcbiAgICBtYXgtd2lkdGg6IDExNzBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuXG4gIHA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG5cbn1cbi5idWxsZXRpbl9fY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTBweDsgcmlnaHQ6IDEwcHg7IHotaW5kZXg6IDI7XG4gIHdpZHRoOiAzMnB4OyBoZWlnaHQ6IDMycHg7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBzYXR1cmF0ZSgxMDAlKSBpbnZlcnQoODklKSBzZXBpYSgxNSUpIHNhdHVyYXRlKDU2MDYlKSBodWUtcm90YXRlKDMwN2RlZykgYnJpZ2h0bmVzcygxMDklKSBjb250cmFzdCgxMDQlKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgc2F0dXJhdGUoMTAwJSkgaW52ZXJ0KDk5JSkgc2VwaWEoNTQlKSBzYXR1cmF0ZSgzOTY0JSkgaHVlLXJvdGF0ZSgyOTVkZWcpIGJyaWdodG5lc3MoMTAxJSkgY29udHJhc3QoMTEyJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cblxuLyogRm9vdGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWZvb3RlciB7XG4gIG1hcmdpbjogMDsgcGFkZGluZzogMzBweCAwO1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBwYWRkaW5nOiA0MHB4IDA7XG4gICAgLy9wYWRkaW5nLWJvdHRvbTogMTUwMHB4O1xuICB9XG5cbiAgLyogYWRkIHJvb20gZm9yIGJ1bGxldGluICovXG4gICYuc2l0ZS1mb290ZXItLWJ1bGxldGluLXNtIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzAwcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjAwcHg7XG4gICAgfVxuICB9XG4gICYuc2l0ZS1mb290ZXItLWJ1bGxldGluLW1kIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDAwcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjUwcHg7XG4gICAgfVxuICB9XG4gICYuc2l0ZS1mb290ZXItLWJ1bGxldGluLWxnIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTUwcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzUwcHg7XG4gICAgfVxuICB9XG5cbn1cblxuXG5cbi5mdHItbmF2IHtcbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xuXG4gIGEge1xuICAgIHBhZGRpbmc6IDEwcHggMzBweCAxMHB4IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgICBAYXQtcm9vdCAubm8taW9zICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRkb3dsLW9yYW5nZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxN3B4KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOHB4KTtcbiAgICB9XG5cbiAgfVxuICAubWVudSAuaXMtYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgbGk6bGFzdC1jaGlsZCB7XG4gICAgYSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG59XG5cbi5mdHItZGVzYyxcbi5mdHItbGVnYWwge1xuICBtYXJnaW46IDAgMCA1cHggMDtcbiAgY29sb3I6ICNlZWU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxufVxuXG4uZnRyLWRlc2Mge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbiAgZm9udC1zaXplOiByZW0tY2FsYygxMnB4KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTNweCk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTRweCk7XG4gIH1cbn1cbi5mdHItbGVnYWwge1xuICBmb250LXNpemU6IHJlbS1jYWxjKDEwcHgpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMXB4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMnB4KTtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgQGF0LXJvb3QgLm5vLWlvcyAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkZG93bC1vcmFuZ2U7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgfVxufVxuXG4uZnRyLXNvY2lhbCB7XG4gIG1hcmdpbjogMCAwIDI1cHggMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbjogNXB4IDEwcHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICYuZmFjZWJvb2sge1xuICAgICAgd2lkdGg6IDEzcHg7IGhlaWdodDogMjVweDtcbiAgICB9XG4gICAgJi55b3V0dWJlIHtcbiAgICAgIHdpZHRoOiAyNXB4OyBoZWlnaHQ6IDE3cHg7XG4gICAgfVxuICAgICYuZ2xhc3Nkb29yIHtcbiAgICAgIHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDIzcHg7XG4gICAgfVxuICAgICYudHdpdHRlciB7XG4gICAgICB3aWR0aDogMjRweDsgaGVpZ2h0OiAxOXB4O1xuICAgIH1cbiAgICAmLmxpbmtlZGluIHtcbiAgICAgIHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDE5cHg7XG4gICAgfVxuICAgICYuaW5zdGFncmFtIHtcbiAgICAgIHdpZHRoOiAyMXB4OyBoZWlnaHQ6IDIxcHg7XG4gICAgfVxuICAgICYuZmxpY2tyIHtcbiAgICAgIHdpZHRoOiAyMnB4OyBoZWlnaHQ6IDEwcHg7XG4gICAgfVxuICAgICYudmltZW8ge1xuICAgICAgd2lkdGg6IDIwcHg7IGhlaWdodDogMThweDtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIHBhdGgge1xuICAgICAgZmlsbDogIzY2NjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgfVxuICAgIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogJGRvd2wtb3JhbmdlO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbn1cbiIsIi8vIG1vYmlsZSBvdmVybGF5XG5ib2R5LmpzLW1vYmlsZS1tZW51LWFjdGl2ZSB7XG5cbiAgLm1haW4tY29udGVudCxcbiAgLnNpdGUtZm9vdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIG9wYWNpdHk6IC4xO1xuICB9XG5cbn1cblxuLy8gcGFnZSBoZWFkZXJcblxuLyogbWFrZSByb29tIGZvciBmaXhlZCBuYXYgKi9cbmJvZHkge1xuICBwYWRkaW5nLXRvcDogNjZweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZy10b3A6IDc3cHg7XG4gIH1cblxufVxuLnNpdGUtaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB6LWluZGV4OiA1MDtcbiAgcGFkZGluZzogMTJweCAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBwYWRkaW5nOiAyNHB4IDAgMCAwO1xuICB9XG5cbiAgLy8gc2hhZG93XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyBib3R0b206IC0xMHB4OyByaWdodDogMDsgei1pbmRleDogNTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCggcmdiYSgjMDAwLC41KSwgcmdiYSgjMDAwLDApIDYwJSApO1xuICB9XG5cbn1cbi8qIHB1c2ggZG93biBmb3Igd29yZHByZXNzIGFkbWluIGJhciAqL1xuYm9keS5hZG1pbi1iYXIge1xuICAuc2l0ZS1oZWFkZXIge1xuICAgIHRvcDogMzJweDtcbiAgfVxufVxuXG4vLyBoZWFkZXIgbG9nb1xuLnNpdGUtaGVhZGVyLWxvZ28td3JhcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5zaXRlLWhlYWRlci1sb2dvIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MnB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHdpZHRoOiAxNDBweDsgaGVpZ2h0OiA0OXB4O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogLTEycHg7XG4gICAgd2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDUzcHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMCAxNXB4O1xuICB9XG5cbiAgc3ZnIHtcbiAgICAvL2Rpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG4gIHBhdGgge1xuICAgIGZpbGw6ICMyMjI7XG4gIH1cblxuICBAYXQtcm9vdCAubm8taW9zICYge1xuICAgIHN2ZyxcbiAgICBwb2x5Z29uLFxuICAgIHBhdGgge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NCk7XG4gICAgICB9XG4gICAgICBwYXRoIHtcbiAgICAgIC8vICBmaWxsOiAkZG93bC1vcmFuZ2U7XG4gICAgICB9XG4gICAgICBwb2x5Z29uIHtcbiAgICAgICAgJi5zdDMge1xuICAgICAgICAgIC8vdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTJweCwycHgpO1xuICAgICAgICB9XG4gICAgICAgICYuc3QxIHtcbiAgICAgICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlKDJweCwtMnB4KTtcbiAgICAgICAgICBmaWxsOiAjODg4O1xuICAgICAgICB9XG4gICAgICAgICYuc3QyIHtcbiAgICAgICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsLTJweCk7XG4gICAgICAgICAgZmlsbDogIzQ0NDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxufVxuXG4vLyBTZWFyY2ggdG9nZ2xlXG4uc2l0ZS1oZWFkZXItc2VhcmNoLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDIxcHg7IGhlaWdodDogMjFweDtcbiAgbWFyZ2luOiAxMHB4IDE1cHggMCAwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XG5cbiAgICAvKiBkaXZpZGVyICovXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNHB4OyBsZWZ0OiAtNDBweDsgei1pbmRleDogMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDFweDsgaGVpZ2h0OiAxNXB4O1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkb3R0ZWQgIzY2NjtcbiAgICB9XG5cbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTA2MHB4KSB7XG4gICAgbWFyZ2luLWxlZnQ6IDcwcHg7XG4gICAgJjpiZWZvcmUge1xuICAgICAgbGVmdDogLTUwcHg7XG4gICAgfVxuICB9XG5cbiAgc3ZnIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBAYXQtcm9vdCAubm8taW9zICYge1xuICAgIHBhdGgge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiAkZG93bC1vcmFuZ2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLy8gbW9iaWxlIGhlYWRlciBlbGVtZW50c1xuLnNpdGUtaGVhZGVyLW1vYmlsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbn1cblxuLy8gbW9iaWxlIG1lbnUgdG9nZ2xlXG4uc2l0ZS1oZWFkZXItbWVudS10b2dnbGUtd3JhcCB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIH1cbn1cbi5zaXRlLWhlYWRlci1tZW51LXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMzBweDsgaGVpZ2h0OiAzOHB4O1xuICBtYXJnaW46IDRweCAwIDAgMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBAYXQtcm9vdCAubm8taW9zICYge1xuICAgIHBhdGgge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiAkZG93bC1vcmFuZ2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLy8gbW9iaWxlIG1lbnVcbi5zaXRlLWhlYWRlci1tb2JpbGUtbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA2NnB4ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGJvcmRlcjogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7IHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICB0b3A6IDczcHggIWltcG9ydGFudDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgdG9wOiA3N3B4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBtZW51ICovXG4gIC5tZW51IGEge1xuICAgIHBhZGRpbmc6IC41cmVtIDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1mYW1pbHk6ICRsYWJlbC1mb250O1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMThweCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBhdC1yb290IC5uby1pb3MgJiB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgIGNvbG9yOiAkZG93bC1vcmFuZ2U7XG4gICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gIH1cbiAgLm1lbnUgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2FhYTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICB9XG5cbiAgLyogc3VibWVudSAqL1xuICAubWVudS5zdWJtZW51LFxuICAuYWNjb3JkaW9uLW1lbnUgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjNyZW07XG4gIH1cbiAgLm1lbnUuc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAuNXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTZweCk7XG4gIH1cblxuICAvKiBzdWJtZW51IHRvZ2dsZSAqL1xuICAuc3VibWVudS10b2dnbGU6OmFmdGVyIHtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMjBweDsgaGVpZ2h0OiA5cHg7XG4gICAgbWFyZ2luOiAwIDAgMCBhdXRvO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tY2hldnJvbi5zdmcpIG5vLXJlcGVhdDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICB9XG5cbn0vLy5zaXRlLWhlYWRlci1tb2JpbGUtbWVudVxuXG5cbi8vIHNlYXJjaCBkcm9wZG93blxuLmhkci1zZWFyY2gtZm9ybSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA2NnB4ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGJvcmRlcjogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7IHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICB0b3A6IDczcHggIWltcG9ydGFudDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgdG9wOiA3N3B4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBbdHlwZT0ndGV4dCddOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbn1cbmJvZHkuYWRtaW4tYmFyIHtcbiAgLmhkci1zZWFyY2gtZm9ybSB7XG4gICAgbWFyZ2luLXRvcDogMzFweDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG1lbnVcbi5kZXNrdG9wLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiAxMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgdG9wOiA0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLyogbWVudSAqL1xuICAmLm1lbnUgYSxcbiAgJi5tZW51IGE6Zm9jdXMsXG4gICYubWVudSAuaXMtYWN0aXZlIGEge1xuICAgIC8vbWFyZ2luOiAwIDE1cHg7XG4gICAgbWFyZ2luOiAwIDhweDtcbiAgICBwYWRkaW5nOiAuOHJlbSAuMXJlbTtcbiAgICBjb2xvcjogIzc3NztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiAkbGFiZWwtZm9udDtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE3cHgpO1xuICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDExMzBweCkge1xuICAgICAgbWFyZ2luOiAwIDE1cHg7XG4gICAgfVxuXG4gICAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkZG93bC1vcmFuZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbiAgJi5tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDA7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIC8vY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICB9XG5cbiAgLyogc3VibWVudSAqL1xuICAubWVudS5zdWJtZW51IHtcbiAgICBtYXJnaW46IDA7IHBhZGRpbmc6IC41cmVtIDFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAubWVudS5zdWJtZW51IGEge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAuNXJlbSAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTZweCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbiAgLm1lbnUuc3VibWVudSAuY3VycmVudC1tZW51LWl0ZW0gYSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogIzk5OTtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gIH1cblxuICAvKiBzdWJtZW51IHRvZ2dsZSAqL1xuICAmLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICB3aWR0aDogMTNweDsgaGVpZ2h0OiA2cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbi1jaGV2cm9uLWRlc2t0b3Auc3ZnKSBuby1yZXBlYXQ7XG4gIH1cblxufVxuIiwiYm9keSN0aW55bWNle1xuICBoZWlnaHQ6IGF1dG87IC8vIEZpeCBlZGl0b3Igc3R5bGUgYnVnXG4gIG1heC13aWR0aDogJGdyaWQtcm93LXdpZHRoOyAvLyBHaXZlIHRoZSBlZGl0b3IgYSBtYXgtd2lkdGhcbiAgcGFkZGluZzogcmVtLWNhbGMoMjApICFpbXBvcnRhbnQ7XG59IiwiLyogYnV0dG9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5idXR0b24sXG4uZnJtX2J1dHRvbl9zdWJtaXQge1xuICBtYXJnaW46IDA7IHBhZGRpbmc6IC44cmVtIDEuNHJlbTtcbiAgYmFja2dyb3VuZDogJGJ1dHRvbi1vcmFuZ2U7XG4gIGZvbnQtZmFtaWx5OiAkaGRyLWZvbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE0cHgpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNXB4KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICRidXR0b24tb3JhbmdlO1xuICB9XG4gIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZDogJGRvd2wtb3JhbmdlO1xuICB9XG5cbn1cblxuLyogYnV0dG9uIHdpdGggaWNvbiBiZWZvcmUgdGV4dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYnV0dG9uLmxpbmstZXh0ZXJuYWwge1xuXG4gIC5pY29uLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAtM3B4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMjNweDsgaGVpZ2h0OiAyNHB4O1xuICAgIG1hcmdpbjogMCA1cHggMCAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxufVxuXG5cbi8qIHRleHQgbGluayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubGluayB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiB0ZXh0IGxpbmsgd2l0aCBpY29uIGJlZm9yZSB0ZXh0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5saW5rLWV4dGVybmFsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgLmljb24td3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IC0zcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAyM3B4OyBoZWlnaHQ6IDI0cHg7XG4gICAgbWFyZ2luOiAwIDVweCAwIDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIHBhdGgge1xuICAgICAgZmlsbDogJHRleHQtbGluay1vcmFuZ2U7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIH1cblxuICB9XG4gIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG4gICAgcGF0aCB7XG4gICAgICBmaWxsOiAkYnV0dG9uLW9yYW5nZTtcbiAgICB9XG4gIH1cblxufVxuXG4vKiB0ZXh0IGxpbmsgd2l0aCBhcnJvdyBpY29uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5saW5rLWFycm93IHtcbiAgQGV4dGVuZCAubGluaztcblxuICAuaWNvbi13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTdweDsgaGVpZ2h0OiAxM3B4O1xuICAgIG1hcmdpbjogMCAwIDAgMTBweDtcbiAgfVxuXG4gICYubGluay1hcnJvdy1sZWZ0IHtcbiAgICAuaWNvbi13cmFwIHtcbiAgICAgIG1hcmdpbjogMCAxMHB4IDAgMDtcbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCAubm8taW9zICY6aG92ZXIge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgcGF0aCB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIH1cblxuICAgIHBhdGgge1xuICAgICAgZmlsbDogJGJ1dHRvbi1vcmFuZ2U7XG4gICAgfVxuXG4gIH1cblxufVxuXG4vKiB0ZXh0IGxpbmsgbGlzdCBpdGVtIHdpdGggYXJyb3cgaWNvbiBvbiBsZWZ0IHNpZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmxpc3QtYXJyb3cge1xuICBAZXh0ZW5kIC5saW5rO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgMCAxMHB4IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgLmljb24td3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVmdDogLTMwcHg7IHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDEzcHg7XG4gICAgbWFyZ2luOiAwIDEwcHggMCAwO1xuICB9XG5cbiAgQGF0LXJvb3QgLm5vLWlvcyAmOmhvdmVyIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIHBhdGgge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICB9XG5cbiAgICBwYXRoIHtcbiAgICAgIGZpbGw6ICRidXR0b24tb3JhbmdlO1xuICAgIH1cblxuICB9XG5cbn1cblxuLyogYmFjayB0byB0b3AgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJhY2stdG8tdG9wIHtcbiAgcG9zaXRpb246IGZpeGVkOyBib3R0b206IDYwcHg7IHJpZ2h0OiAzMHB4OyB6LWluZGV4OiA1MDtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgjNDQ0LC40KTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZS1pbi1vdXQ7XG5cbiAgQGF0LXJvb3QgLm5vLWlvcyAmIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoIzQ0NCwxKTtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMTtcblx0fVxuXHQmLnNjcm9sbGluZyB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG4gIC5pY29uLXdyYXAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMXB4OyBoZWlnaHQ6IDIycHg7XG4gICAgbWFyZ2luOiAxM3B4IDEycHggMTJweDtcbiAgfVxuXG59XG4iLCIvLyBBcHBseSBvdXRsaW5lIHN0eWxlcyBvbmx5IHdoZW4gaW5wdXQgbWV0aG9kIGlzIGtleWJvYXJkXG4vLyByZW1vdmUgOmZvY3VzIHN0eWxlIHZpYSBXaGF0IElucHV0IHVzaW5nIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50XG4vLyBzbyA6Zm9jdXMgaXNuJ3QgbGVmdCBicm9rZW4gaWYgSmF2YVNjcmlwdCBmYWlsc1xuXG5bZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSBhOmZvY3VzLCBidXR0b246Zm9jdXNcbltkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdIGE6Zm9jdXMsIGJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4iLCIvLyBicmVha3BvaW50IGluZGljYXRvclxuLmJyZWFrcG9pbnRzIHtcblx0cG9zaXRpb246IGZpeGVkOyBib3R0b206IDVweDsgbGVmdDogNXB4OyB6LWluZGV4OiA1MDAwO1xuXHRwYWRkaW5nOiAuMjVlbSAuNWVtO1xuXHRjb2xvcjogI2ZmZjtcblx0YmFja2dyb3VuZDogIzY2Njtcblx0Zm9udC1zaXplOiAxMHB4O1xuXHRsZXR0ZXItc3BhY2luZzogLjFlbTtcbn1cbiIsIi8qIHBhZ2UgYmFubmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGhvbWVfdmlkZW9fbGdfYnJlYWtwdDogMjAwMHB4O1xuJGhvbWVfdmlkZW9fdmlkZW9faHQ6IDExMDBweDtcblxuLy8kaG9tZV92aWRlb19sZ19icmVha3B0OiA1MDBweDtcbi8vJGhvbWVfdmlkZW9fdmlkZW9faHQ6IDEwMHB4O1xuXG5Aa2V5ZnJhbWVzIGNvbG9yY2hhbmdlXG57XG4gMCUgICB7YmFja2dyb3VuZC1jb2xvcjogIzAwMDt9XG4gNTAlICAge2JhY2tncm91bmQtY29sb3I6ICMwMDA7fVxuIDEwMCUge2JhY2tncm91bmQtY29sb3I6ICNmZmY7fVxufVxuXG4ucGFnZS1oZWFkZXItaG9tZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1zaXplOiAxcHggMXB4O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgLy9tYXgtaGVpZ2h0OiA0MDBweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAvL21pbi1oZWlnaHQ6IDUwMHB4O1xuICAgIC8vbWF4LWhlaWdodDogNTAwcHg7XG4gIH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGhvbWVfdmlkZW9fbGdfYnJlYWtwdCkge1xuICAgIG1heC1oZWlnaHQ6ICRob21lX3ZpZGVvX3ZpZGVvX2h0O1xuICB9XG5cbiAgLmhvbWUtcGctdGl0bGUtcm93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjBweDsgbGVmdDogMDsgcmlnaHQ6IDA7IHotaW5kZXg6IDU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2N3JlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgdG9wOiA0MHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICB0b3A6IDgwcHg7XG4gICAgfVxuXG4gIH1cbiAgaDEge1xuXG4gICAgLypcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDM0cHgpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoIzAwMCwuMyk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg0MHB4KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgd2lkdGg6IDQwJTtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNTBweCk7XG4gICAgfVxuICAgICovXG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG5cbiAgfVxuXG4gIC5yZXNwb25zaXZlLWVtYmVkLFxuICAuZmxleC12aWRlbyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4zJTtcbiAgfVxuXG4gIC5pbnRyby12aWRlby1iZyB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIC8vbWF4LWhlaWdodDogMjUwcHg7XG5cbiAgICAgIC8qIGFkZCBsYXllciB0byBzdG9wIHlvdXR1YmUgaG92ZXIgcmV2ZWFsaW5nIGNvbnRyb2xzICovXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgei1pbmRleDogNTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoIzAwMCwwKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXG4gICAgICBpZnJhbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAvL2FuaW1hdGlvbjogY29sb3JjaGFuZ2UgNnM7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGhvbWVfdmlkZW9fbGdfYnJlYWtwdCkge1xuICAgICAgICAgIG1heC1oZWlnaHQ6ICRob21lX3ZpZGVvX3ZpZGVvX2h0O1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAkaG9tZV92aWRlb192aWRlb19odDtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuICAuaG9tZS1pbnRyby1zbGlkZXNob3cge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gIH1cbiAgLmludHJvLWRlc2Mge1xuICAgIHAge1xuICAgICAgQGluY2x1ZGUgcC1sZygpO1xuICAgICAgQGluY2x1ZGUgYm9sZCgpO1xuICAgIH1cbiAgfVxuXG5cbn1cblxuLmRlbW8taG9tZS12aWQge1xuXG4gICAgLyogYWRkIGxheWVyIHRvIHN0b3AgeW91dHViZSBob3ZlciByZXZlYWxpbmcgY29udHJvbHMgKi9cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB6LWluZGV4OiA1O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgjMDAwLDApO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG59XG5cblxuLyogaW50cm8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmhvbWUtaW50cm8ge1xuICBAZXh0ZW5kIC5zZWN0aW9uO1xuICBAaW5jbHVkZSBiZy1wc2V1ZG8tdHJpYW5nbGVzLWJvdHRvbSggcmdiYSgjZWVlLC42KSApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICBtYXJnaW4tdG9wOiAtN3B4O1xuICB9XG5cblxuICAucm93IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDI7XG4gIH1cbiAgLmludHJvLWRlc2Mge1xuICAgICAgOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICB9XG5cbn1cblxuXG4vKiBzZXJ2aWNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaG9tZS1zZXJ2aWNlcyB7XG4gIEBleHRlbmQgLnNlY3Rpb247XG4gIEBpbmNsdWRlIGJnLXBzZXVkby10cmlhbmdsZXMtdG9wKCByZ2JhKCNjY2MsLjUpICk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI2VlZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC8vIHJvd3NcbiAgLmhvbWUtc2VydmljZXMtcm93LWludHJvIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICB9XG4gIH1cblxuICAuaG9tZS1zZXJ2aWNlcy1yb3ctZmVlZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgfVxuICB9XG5cbiAgLnNlcnZpY2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDAgMCA0MHB4IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgbWluLWhlaWdodDogMTIwcHg7XG4gICAgfVxuXG4gICAgLnNlcnZpY2UtaWNvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB6LWluZGV4OiAxO1xuICAgICAgd2lkdGg6IDc1cHg7IGhlaWdodDogNzVweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHdpZHRoOiA4NXB4OyBoZWlnaHQ6IDg1cHg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHdpZHRoOiA5NXB4OyBoZWlnaHQ6IDk1cHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5zZXJ2aWNlLXRleHQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDk1cHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMDVweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDExNXB4O1xuICAgICAgfVxuXG4gICAgfVxuICAgIC50aXRsZSB7XG4gICAgICBAZXh0ZW5kIC5oZHItbGFiZWw7XG4gICAgICAvL3RleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICB9XG4gICAgYSB7XG4gICAgICBAZXh0ZW5kIC5wLXNtO1xuICAgIH1cblxuICAgIC8vIGpzIGhvdmVyXG4gICAgJi5qcy1ob3ZlciB7XG5cbiAgICAgIEBhdC1yb290IC5uby1pb3MgJiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAuc2VydmljZS1pY29uIHtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCAxMHB4IDFweCByZ2JhKCM2NjYsLjUpO1xuICAgICAgICB9XG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6ICRidXR0b24tb3JhbmdlO1xuICAgICAgICB9XG4gICAgICAgIGEgcGF0aCB7XG4gICAgICAgICAgZmlsbDogJGJ1dHRvbi1vcmFuZ2U7XG4gICAgICAgIH1cbiAgICAgIH0vL2F0LXJvb3RcblxuICAgIH0vLy5qcy1ob3ZlclxuXG4gIH0vL3NlcnZpY2VcblxufVxuXG5cbi8qIHByb2plY3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5ob21lLXByb2plY3RzIHtcbiAgQGV4dGVuZCAuc2VjdGlvbjtcbiAgYmFja2dyb3VuZDogI2NjYztcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzIyMiAwJSwjMzMzIDEwJSwjNDQ0IDQwJSwjMjIyIDQwJSwjMjIyIDEwMCUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMjIyIDAlLCMzMzMgMTAlLCM0NDQgNjAlLCMyMjIgNjAlLCMyMjIgMTAwJSk7XG4gIH1cblxuICBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBjb2xvcjogI2ZmZjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICB9XG5cbiAgfVxuICAuaG9tZS1wcm9qZWN0LXZpc3VhbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5ob21lLXByb2plY3QtcGhvdG8ge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nLXRvcDogNjAlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTAlO1xuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cbiAgLmhvbWUtcHJvamVjdC1waG90by1jYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjBweDsgbGVmdDogMjBweDsgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDIwcHg7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTBweCk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxM3B4KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcbiAgICB9XG4gIH1cblxuICAuaG9tZS1wcm9qZWN0LW1ldGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDAgMCA0MHB4IDA7IHBhZGRpbmc6IDE1cHggMjBweDsgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLmhvbWUtcHJvamVjdC1uYW1lIHtcbiAgICBtYXJnaW46IDAgMCAycHggMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICB9XG4gIC5ob21lLXByb2plY3QtbG9jYXRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICB9XG4gIC5ob21lLXByb2plY3QtbGluayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgcmlnaHQ6IDIwcHg7IHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDE1cHg7XG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIHBhdGgge1xuICAgICAgZmlsbDogI2ZmZjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgfVxuICAgIEBhdC1yb290IC5uby1pb3MgJjpob3ZlciB7XG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogJGRvd2wtb3JhbmdlO1xuICAgICAgfVxuICAgIH1cblxuICB9XG4gIC8vIGpzIGhvdmVyXG4gIC5ob21lLXByb2plY3QtbWV0YS5qcy1ob3ZlciB7XG5cbiAgICBAYXQtcm9vdCAubm8taW9zICYge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAuaG9tZS1wcm9qZWN0LW5hbWUge1xuICAgICAgICBjb2xvcjogJGNyZWFtLTM7XG4gICAgICB9XG4gICAgICAuaG9tZS1wcm9qZWN0LWxvY2F0aW9uIHtcbiAgICAgICAgY29sb3I6ICRjcmVhbS0zO1xuICAgICAgfVxuICAgICAgLmhvbWUtcHJvamVjdC1saW5rIHBhdGgge1xuICAgICAgICBmaWxsOiAkYnV0dG9uLW9yYW5nZTtcbiAgICAgIH1cblxuICAgIH0vL2F0LXJvb3RcblxuICB9Ly8uanMtaG92ZXJcblxuXG59XG5cblxuLyogbmV3cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4kaG9tZV9uZXdzX3RpbWluZzogMC42cztcbi5ob21lLW5ld3Mge1xuICBAZXh0ZW5kIC5zZWN0aW9uO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAvLyBiZ1xuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyB6LWluZGV4OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTMwMHB4KSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgd2lkdGg6IDM2cHg7IGhlaWdodDogMzYwcHg7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9iZy1wYXR0ZXJuLWRpYWctbGluZXMucG5nKSByZXBlYXQteDtcbiAgfVxuICAmOmJlZm9yZSB7IGxlZnQ6IDA7IH1cbiAgJjphZnRlciB7IHJpZ2h0OiAwOyB9XG5cbiAgLmhkci1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgfVxuICB9XG5cbiAgLmhvbWUtbmV3cy1zbGlkZXIge1xuICAgIG1hcmdpbjogMCAxNXB4IDQwcHggMTVweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW46IDAgMCA0MHB4IDA7XG4gICAgfVxuICB9XG4gIC5zbGlkZS1pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMTVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgIHRyYW5zaXRpb246IGFsbCAkaG9tZV9uZXdzX3RpbWluZyBlYXNlO1xuXG4gICAgLyogdHJpYW5nbGUgKi9cbiAgICAmOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDVweDsgYm90dG9tOiA1cHg7IHotaW5kZXg6IDE7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMDsgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAwIDI1cHggMjVweDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzc3NyB0cmFuc3BhcmVudDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAkaG9tZV9uZXdzX3RpbWluZyBlYXNlO1xuICAgIH1cblxuICB9XG5cbiAgLm5ld3MtcGhvdG8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgIHRyYW5zaXRpb246IGFsbCAkaG9tZV9uZXdzX3RpbWluZyBlYXNlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZy10b3A6IDYwJTtcbiAgICB9XG5cbiAgfVxuICAubmV3cy1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxNXB4IDMwcHggMzBweCAxNXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdHJhbnNpdGlvbjogYWxsICRob21lX25ld3NfdGltaW5nIGVhc2U7XG4gIH1cbiAgLnRpdGxlIHtcbiAgICBAZXh0ZW5kIGg0O1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC8vIGFjdGl2ZSBzdGF0ZVxuICBAbWl4aW4gaG9tZS1uZXdzLXNsaWRlLWFjdGl2ZSgpIHtcbiAgICAuc2xpZGUtaW5uZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDJweCByZ2JhKCMzMzMsLjMpO1xuICAgIH1cbiAgICAubmV3cy1waG90byB7XG4gICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwJSk7XG4gICAgfVxuICAgIC5uZXdzLWNvbnRlbnQge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGJ1dHRvbi1vcmFuZ2UgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgLnNsaWNrLWN1cnJlbnQge1xuICAgICAgQGluY2x1ZGUgaG9tZS1uZXdzLXNsaWRlLWFjdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC5ncm91cC1saW5rLmpzLWhvdmVyIHtcbiAgICBAaW5jbHVkZSBob21lLW5ld3Mtc2xpZGUtYWN0aXZlKCk7XG4gIH1cblxufVxuXG4vKiBqb2JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5ob21lLWpvYnMge1xuICBAZXh0ZW5kIC5zZWN0aW9uO1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgLmhkci1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgfVxuICB9XG5cbiAgLmhvbWUtam9icy1zbGlkZXIge1xuICAgIG1hcmdpbjogMCAxNXB4IDQwcHggMTVweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW46IDAgMCA0MHB4IDA7XG4gICAgfVxuICB9XG4gIC5zbGlkZS1pbm5lciB7XG4gICAgbWFyZ2luOiAxNXB4OyBwYWRkaW5nOiA0MHB4IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzY2NjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzY2NjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICB9XG4gIC50aXRsZSB7XG4gICAgQGV4dGVuZCBoNDtcbiAgfVxuICAuZXhjZXJwdCB7XG4gICAgQGluY2x1ZGUgcC1zbSgpO1xuICB9XG4gIC5zbGlkZSBhIHtcbiAgICBAaW5jbHVkZSBwLXNtKCk7XG4gIH1cblxuICAvLyBmZWF0dXJlZCBqb2JcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblxuICAgIC5qcy1ob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgIC5zbGlkZS1pbm5lciB7XG4gICAgICAgIGJvcmRlci13aWR0aDogOHB4O1xuICAgICAgICBib3JkZXItY29sb3I6ICRkYXJrLXJlZDtcbiAgICAgIH1cbiAgICAgIC8qXG4gICAgICAudGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEyNSU7XG4gICAgICB9XG4gICAgICAuZXhjZXJwdCB7XG4gICAgICAgIEBpbmNsdWRlIHAtcmVnKCk7XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgcC1yZWcoKTtcbiAgICAgIH1cbiAgICAgICovXG5cbiAgICB9XG5cbiAgfS8vYnJlYWtwb2ludFxuXG59XG5cbi8qIGJvdHRvbSBiYW5uZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmhvbWUtYmFubmVyLWJ0bSB7XG4gIC8vYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9iZy13ZWF2ZXItcm9hZC5qcGcpO1xufVxuIl19 */
