@charset "UTF-8";
/**
 * Toolkit styles
 */
@import url(https://use.typekit.net/mfx1rog.css);
.f-container {
  overflow-x: hidden; }

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

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

.icon-star:before {
  content: "";
  color: #3996ff; }

.icon-close-menu:before {
  content: ""; }

.icon-search:before {
  content: "";
  color: #fff; }

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

.icon-cart:before {
  content: "";
  color: #fff; }

.icon-circle:before {
  content: "";
  color: #fff; }

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

.icon-checkmark:before {
  content: "";
  color: #fff; }

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary {
  display: block; }

audio,
canvas,
video {
  display: inline-block; }

audio:not([controls]) {
  display: none;
  height: 0; }

[hidden] {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/*
 * 1. Sets default font family to sans-serif.
 * 2. Prevents iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

/* ==========================================================================
   Links
   ========================================================================== */
/*
 * Addresses `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted; }

/*
 * Improves readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* ==========================================================================
   Typography
   ========================================================================== */
/*
 * Addresses `h1` font sizes within `section` and `article` in Firefox 4+,
 * Safari 5, and Chrome.
 */
h1 {
  font-size: 2em; }

/*
 * Addresses styling not present in IE 8/9, Safari 5, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/*
 * Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/*
 * Addresses styling not present in Safari 5 and Chrome.
 */
dfn {
  font-style: italic; }

/*
 * Addresses styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/*
 * Corrects font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em; }

/*
 * Improves readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word; }

/*
 * Sets consistent quote types.
 */
q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

/*
 * Addresses inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* ==========================================================================
   Embedded content
   ========================================================================== */
/*
 * Removes border when inside `a` element in IE 8/9.
 */
img {
  border: 0; }

/*
 * Corrects overflow displayed oddly in IE 9.
 */
svg:not(:root) {
  overflow: hidden; }

/* ==========================================================================
   Figures
   ========================================================================== */
/*
 * Addresses margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0; }

/* ==========================================================================
   Forms
   ========================================================================== */
/*
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/*
 * 1. Corrects color not being inherited in IE 8/9.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/*
 * 1. Corrects font family not being inherited in all browsers.
 * 2. Corrects font size not being inherited in all browsers.
 * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
 */
button,
input,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  margin: 0; }

/*
 * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
button,
input {
  line-height: normal; }

/*
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Corrects inability to style clickable `input` types in iOS.
 * 3. Improves usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/*
 * Re-set default cursor for disabled elements.
 */
button[disabled],
input[disabled] {
  cursor: default; }

/*
 * 1. Addresses box sizing set to `content-box` in IE 8/9.
 * 2. Removes excess padding in IE 8/9.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/*
 * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box; }

/*
 * Removes inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/*
 * Removes inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/*
 * 1. Removes default vertical scrollbar in IE 8/9.
 * 2. Improves readability and alignment in all browsers.
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

/* ==========================================================================
   Tables
   ========================================================================== */
/*
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/*
* Scut, a collection of Sass utilities
* to ease and improve our implementations of common style-code patterns.
* v1.4.0
* Docs at http://davidtheclark.github.io/scut
*/
/**
 * Foundation for Sites by ZURB
 * Version 6.4.1
 * 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: 100%; }

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

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

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

select {
  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; }
  [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: 68.75rem;
  margin-right: auto;
  margin-left: auto; }
  .row::before, .row::after {
    display: table;
    content: ' ';
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .row::after {
    clear: both; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row .row {
    margin-right: -0.625rem;
    margin-left: -0.625rem; }
    @media print, screen and (min-width: 40em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media print, screen and (min-width: 64em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.gutter-small > .column, .row.gutter-small > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem; }
  .row.gutter-medium > .column, .row.gutter-medium > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }

.column, .columns {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .column, .columns {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .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 {
    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.625rem;
  padding-left: 0.625rem; }

.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.9375rem;
    padding-left: 0.9375rem; }
  .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.9375rem;
    padding-left: 0.9375rem; }
  .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.25rem; }
  .column-block > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .column-block {
      margin-bottom: 1.875rem; }
      .column-block > :last-child {
        margin-bottom: 0; } }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
fieldset legend,
.posts-list__header,
.woocommerce-checkout #order_review_heading,
h5,
.gforms-section .gsection_title,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

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

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

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

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

h1,
h2,
h3,
h4,
fieldset legend,
.posts-list__header,
.woocommerce-checkout #order_review_heading,
h5,
.gforms-section .gsection_title,
h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small,
  h2 small,
  h3 small,
  h4 small, fieldset legend small, .posts-list__header small, .woocommerce-checkout #order_review_heading small,
  h5 small, .gforms-section .gsection_title small,
  h6 small {
    line-height: 0;
    color: #cacaca; }

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

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

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

h4, fieldset legend, .posts-list__header, .woocommerce-checkout #order_review_heading {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h5, .gforms-section .gsection_title {
  font-size: 1.0625rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

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

@media print, screen and (min-width: 40em) {
  h1 {
    font-size: 3rem; }
  h2 {
    font-size: 2.5rem; }
  h3 {
    font-size: 1.9375rem; }
  h4, fieldset legend, .posts-list__header, .woocommerce-checkout #order_review_heading {
    font-size: 1.5625rem; }
  h5, .gforms-section .gsection_title {
    font-size: 1.25rem; }
  h6 {
    font-size: 1rem; } }

a {
  line-height: inherit;
  color: #1779ba;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #1468a0; }
  a img {
    border: 0; }

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

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

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

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

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

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

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

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

figure {
  margin: 0; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.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: #1779ba;
  color: #fefefe; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button:hover, .button:focus {
    background-color: #14679e;
    color: #fefefe; }
  .button.tiny {
    font-size: 0.6rem; }
  .button.small {
    font-size: 0.75rem; }
  .button.large {
    font-size: 1.25rem; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button.primary {
    background-color: #1779ba;
    color: #fefefe; }
    .button.primary:hover, .button.primary:focus {
      background-color: #126195;
      color: #fefefe; }
  .button.secondary {
    background-color: #767676;
    color: #fefefe; }
    .button.secondary:hover, .button.secondary:focus {
      background-color: #5e5e5e;
      color: #fefefe; }
  .button.success {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button.success:hover, .button.success:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button.warning {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button.warning:hover, .button.warning:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button.alert {
    background-color: #cc4b37;
    color: #fefefe; }
    .button.alert:hover, .button.alert:focus {
      background-color: #a53b2a;
      color: #fefefe; }
  .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: #1779ba;
      color: #fefefe; }
    .button.disabled.primary, .button[disabled].primary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
        background-color: #1779ba;
        color: #fefefe; }
    .button.disabled.secondary, .button[disabled].secondary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #767676;
        color: #fefefe; }
    .button.disabled.success, .button[disabled].success {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #3adb76;
        color: #0a0a0a; }
    .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: #0a0a0a; }
    .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: #fefefe; }
  .button.hollow {
    border: 1px solid #1779ba;
    color: #1779ba; }
    .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: #0c3d5d;
      color: #0c3d5d; }
      .button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] {
        border: 1px solid #1779ba;
        color: #1779ba; }
    .button.hollow.primary {
      border: 1px solid #1779ba;
      color: #1779ba; }
      .button.hollow.primary:hover, .button.hollow.primary:focus {
        border-color: #0c3d5d;
        color: #0c3d5d; }
        .button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] {
          border: 1px solid #1779ba;
          color: #1779ba; }
    .button.hollow.secondary {
      border: 1px solid #767676;
      color: #767676; }
      .button.hollow.secondary:hover, .button.hollow.secondary:focus {
        border-color: #3b3b3b;
        color: #3b3b3b; }
        .button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] {
          border: 1px solid #767676;
          color: #767676; }
    .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 #1779ba;
    color: #1779ba; }
    .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: #0c3d5d;
      color: #0c3d5d; }
      .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] {
        border: 1px solid #1779ba;
        color: #1779ba; }
    .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 #1779ba;
      color: #1779ba; }
      .button.clear.primary:hover, .button.clear.primary:focus {
        border-color: #0c3d5d;
        color: #0c3d5d; }
        .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
          border: 1px solid #1779ba;
          color: #1779ba; }
      .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 #767676;
      color: #767676; }
      .button.clear.secondary:hover, .button.clear.secondary:focus {
        border-color: #3b3b3b;
        color: #3b3b3b; }
        .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
          border: 1px solid #767676;
          color: #767676; }
      .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: #fefefe transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 1em; }
  .button.dropdown.hollow::after {
    border-top-color: #1779ba; }
  .button.dropdown.hollow.primary::after {
    border-top-color: #1779ba; }
  .button.dropdown.hollow.secondary::after {
    border-top-color: #767676; }
  .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; }

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

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

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

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

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

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

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

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

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

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

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

label > [type='checkbox'], .gforms-section.gray .gsection_title > [type='checkbox'],
label > [type='radio'], .gforms-section.gray .gsection_title > [type='radio'] {
  margin-right: 0.5rem; }

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

label, .gforms-section.gray .gsection_title {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a; }
  label.middle, .gforms-section.gray .middle.gsection_title {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

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

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

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

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

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

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label,
  .input-group-button .gforms-section.gray .gsection_title, .gforms-section.gray
  .input-group-button .gsection_title {
    height: 2.5rem;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1rem; }

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

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

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

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

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

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

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

.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: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1; }

.clearfix::after {
  clear: both; }

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

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

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

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #1779ba; }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: 1px solid #e6e6e6;
    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: 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fefefe;
  color: #0a0a0a; }
  :last-child > .accordion-content:last-child {
    border-bottom: 1px solid #e6e6e6; }

.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: #1779ba transparent transparent;
    position: absolute;
    top: 50%;
    margin-top: -3px;
    right: 1rem; }

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

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

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

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

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

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

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

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

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

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

.button-group {
  margin-bottom: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .button-group::before, .button-group::after {
    display: table;
    content: ' ';
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .button-group::after {
    clear: both; }
  .button-group .button {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 0.9rem;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
    .button-group .button:last-child {
      margin-right: 0; }
  .button-group.tiny .button {
    font-size: 0.6rem; }
  .button-group.small .button {
    font-size: 0.75rem; }
  .button-group.large .button {
    font-size: 1.25rem; }
  .button-group.expanded .button {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .button-group.primary .button {
    background-color: #1779ba;
    color: #fefefe; }
    .button-group.primary .button:hover, .button-group.primary .button:focus {
      background-color: #126195;
      color: #fefefe; }
  .button-group.secondary .button {
    background-color: #767676;
    color: #fefefe; }
    .button-group.secondary .button:hover, .button-group.secondary .button:focus {
      background-color: #5e5e5e;
      color: #fefefe; }
  .button-group.success .button {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button-group.success .button:hover, .button-group.success .button:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button-group.warning .button {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button-group.warning .button:hover, .button-group.warning .button:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button-group.alert .button {
    background-color: #cc4b37;
    color: #fefefe; }
    .button-group.alert .button:hover, .button-group.alert .button:focus {
      background-color: #a53b2a;
      color: #fefefe; }
  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%; }
      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
        margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .button-group.stacked-for-small .button {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 64em) {
    .button-group.stacked-for-medium .button {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      margin-bottom: 0; } }
  @media screen and (max-width: 39.9375em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button {
        display: block;
        margin-right: 0; } }

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

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

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

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

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

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

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

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

.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 #1779ba 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 #1779ba transparent transparent;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem;
  border-left-width: 0; }

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

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

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

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

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

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

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem; }

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1779ba transparent transparent;
  right: 5px;
  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: #1779ba; }

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

@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: #1779ba transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    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 #1779ba 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 #1779ba; } }

@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: #1779ba transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    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 #1779ba 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 #1779ba; } }

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

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

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

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fefefe; }
  .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 #1779ba 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 #1779ba; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

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

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #1779ba;
  color: #fefefe; }
  .label.primary {
    background: #1779ba;
    color: #fefefe; }
  .label.secondary {
    background: #767676;
    color: #fefefe; }
  .label.success {
    background: #3adb76;
    color: #0a0a0a; }
  .label.warning {
    background: #ffae00;
    color: #0a0a0a; }
  .label.alert {
    background: #cc4b37;
    color: #fefefe; }

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

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

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

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

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

.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(254, 254, 254, 0.25);
  opacity: 0;
  visibility: hidden;
  overflow: hidden; }
  .js-off-canvas-overlay.is-visible {
    opacity: 1;
    visibility: visible; }
  .js-off-canvas-overlay.is-closable {
    cursor: pointer; }
  .js-off-canvas-overlay.is-overlay-absolute {
    position: absolute; }
  .js-off-canvas-overlay.is-overlay-fixed {
    position: fixed; }

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

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-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(10, 10, 10, 0.7); }
  .off-canvas.is-open {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0; }
  .off-canvas-absolute.is-transition-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(10, 10, 10, 0.7); }
  .off-canvas-absolute.is-open {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }

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

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

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

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

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

@media print, screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    -webkit-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;
              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;
            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;
              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;
            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;
              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;
            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;
              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;
            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;
              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;
            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;
              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;
            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;
              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;
            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;
              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;
              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;
              transform: none; }
    .off-canvas.in-canvas-for-large .close-button {
      display: none; } }

.orbit {
  position: relative; }

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

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

.orbit-figure {
  margin: 0; }

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

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

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

.orbit-previous {
  left: 0; }

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

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

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
  background-color: #cacaca; }
  .progress.primary .progress-meter {
    background-color: #1779ba; }
  .progress.secondary .progress-meter {
    background-color: #767676; }
  .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: #1779ba; }

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  position: absolute;
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #fefefe;
  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%);
          transform: translateY(-50%);
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background-color: #1779ba;
  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: #14679e; }
  .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);
          transform: scale(1, -1); }
  .slider.vertical .slider-fill {
    top: 0;
    width: 0.5rem;
    max-height: 100%; }
  .slider.vertical .slider-handle {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.4rem;
    height: 1.4rem;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); }

.sticky-container {
  position: relative; }

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

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

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

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

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

.reveal-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1005;
  display: none;
  background-color: rgba(10, 10, 10, 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: #fefefe;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto; }
  [data-whatinput='mouse'] .reveal {
    outline: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal {
      min-height: 0; } }
  .reveal .column, .reveal .columns {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal {
      width: 600px;
      max-width: 68.75rem; } }
  .reveal.collapse {
    padding: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal.tiny {
      width: 30%;
      max-width: 68.75rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.small {
      width: 50%;
      max-width: 68.75rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.large {
      width: 90%;
      max-width: 68.75rem; } }
  .reveal.full {
    top: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    margin-left: 0;
    border: 0;
    border-radius: 0; }
  @media screen and (max-width: 39.9375em) {
    .reveal {
      top: 0;
      left: 0;
      width: 100%;
      max-width: none;
      height: 100%;
      height: 100vh;
      min-height: 100vh;
      margin-left: 0;
      border: 0;
      border-radius: 0; } }
  .reveal.without-overlay {
    position: fixed; }

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

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

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 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: #fefefe;
    transition: all 0.25s ease-out;
    content: ''; }
  input:checked ~ .switch-paddle {
    background: #1779ba; }
    input:checked ~ .switch-paddle::after {
      left: 2.25rem; }
  [data-whatinput='mouse'] input:focus ~ .switch-paddle {
    outline: 0; }

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

.switch-active {
  left: 8%;
  display: none; }
  input:checked + label > .switch-active, .gforms-section.gray input:checked + .gsection_title > .switch-active {
    display: block; }

.switch-inactive {
  right: 15%; }
  input:checked + label > .switch-inactive, .gforms-section.gray input:checked + .gsection_title > .switch-inactive {
    display: none; }

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

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

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

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  table thead,
  table tbody,
  table tfoot {
    border: inherit;
    background-color: #fefefe; }
  table caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold; }
  table thead {
    background: inherit;
    color: #0a0a0a; }
  table tfoot {
    background: inherit;
    color: #0a0a0a; }
  table thead tr,
  table tfoot tr {
    background: transparent; }
  table thead th,
  table thead td,
  table tfoot th,
  table tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  table tbody th,
  table tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }
  table tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: inherit; }
  table.unstriped tbody {
    background-color: #fefefe; }
    table.unstriped tbody tr {
      border-bottom: 0;
      border-bottom: inherit;
      background-color: #fefefe; }

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

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

table.hover thead tr:hover {
  background-color: inherit; }

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

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

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

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

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

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

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

.tabs.primary {
  background: #1779ba; }
  .tabs.primary > li > a {
    color: #fefefe; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #1673b1; }

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

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

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

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

.thumbnail {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 1rem;
  border: solid 4px #fefefe;
  border-radius: 0;
  box-shadow: 0 0 0 1px rgba(10, 10, 10, 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(23, 121, 186, 0.5); }
  a.thumbnail image {
    box-shadow: none; }

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

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

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

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

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

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

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

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

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

/*! * [Unit Space](https://github.com/kevinmack18/SASS-Margin-and-Padding-Starter) */
*, *:before, *:after {
  box-sizing: border-box; }

@media screen and (min-width: 960px) {
  .padding, .padding-top {
    padding-top: 16px !important; } }

@media screen and (max-width: 960px) {
  .padding, .padding-top {
    padding-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding, .padding-right {
    padding-right: 16px !important; } }

@media screen and (max-width: 960px) {
  .padding, .padding-right {
    padding-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding, .padding-bottom {
    padding-bottom: 16px !important; } }

@media screen and (max-width: 960px) {
  .padding, .padding-bottom {
    padding-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding, .padding-left {
    padding-left: 16px !important; } }

@media screen and (max-width: 960px) {
  .padding, .padding-left {
    padding-left: 16px !important; } }

@media screen and (min-width: 960px) {
  .spacing {
    padding-top: 32px !important; } }

@media screen and (max-width: 960px) {
  .spacing {
    padding-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .spacing {
    padding-right: 32px !important; } }

@media screen and (max-width: 960px) {
  .spacing {
    padding-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .spacing {
    padding-bottom: 32px !important; } }

@media screen and (max-width: 960px) {
  .spacing {
    padding-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .spacing {
    padding-left: 32px !important; } }

@media screen and (max-width: 960px) {
  .spacing {
    padding-left: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--2x, .padding-top--2x {
    padding-top: 32px !important; } }

@media screen and (max-width: 960px) {
  .padding--2x, .padding-top--2x {
    padding-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--2x, .padding-right--2x {
    padding-right: 32px !important; } }

@media screen and (max-width: 960px) {
  .padding--2x, .padding-right--2x {
    padding-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--2x, .padding-bottom--2x {
    padding-bottom: 32px !important; } }

@media screen and (max-width: 960px) {
  .padding--2x, .padding-bottom--2x {
    padding-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--2x, .padding-left--2x {
    padding-left: 32px !important; } }

@media screen and (max-width: 960px) {
  .padding--2x, .padding-left--2x {
    padding-left: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--3halves, .padding-top--3halves {
    padding-top: 24px !important; } }

@media screen and (max-width: 960px) {
  .padding--3halves, .padding-top--3halves {
    padding-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--3halves, .padding-right--3halves {
    padding-right: 24px !important; } }

@media screen and (max-width: 960px) {
  .padding--3halves, .padding-right--3halves {
    padding-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--3halves, .padding-bottom--3halves {
    padding-bottom: 24px !important; } }

@media screen and (max-width: 960px) {
  .padding--3halves, .padding-bottom--3halves {
    padding-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .padding--3halves, .padding-left--3halves {
    padding-left: 24px !important; } }

@media screen and (max-width: 960px) {
  .padding--3halves, .padding-left--3halves {
    padding-left: 16px !important; } }

.padding--half, .padding-top--half {
  padding-top: 8px !important; }

.padding--half, .padding-right--half {
  padding-right: 8px !important; }

.padding--half, .padding-bottom--half {
  padding-bottom: 8px !important; }

.padding--half, .padding-left--half {
  padding-left: 8px !important; }

@media screen and (min-width: 960px) {
  .margin, .margin-top, .spacing-verticals {
    margin-top: 16px !important; } }

@media screen and (max-width: 960px) {
  .margin, .margin-top, .spacing-verticals {
    margin-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin, .margin-right {
    margin-right: 16px !important; } }

@media screen and (max-width: 960px) {
  .margin, .margin-right {
    margin-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin, .margin-bottom, .spacing-verticals {
    margin-bottom: 16px !important; } }

@media screen and (max-width: 960px) {
  .margin, .margin-bottom, .spacing-verticals {
    margin-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin, .margin-left {
    margin-left: 16px !important; } }

@media screen and (max-width: 960px) {
  .margin, .margin-left {
    margin-left: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--2x, .margin-top--2x {
    margin-top: 32px !important; } }

@media screen and (max-width: 960px) {
  .margin--2x, .margin-top--2x {
    margin-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--2x, .margin-right--2x {
    margin-right: 32px !important; } }

@media screen and (max-width: 960px) {
  .margin--2x, .margin-right--2x {
    margin-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--2x, .margin-bottom--2x {
    margin-bottom: 32px !important; } }

@media screen and (max-width: 960px) {
  .margin--2x, .margin-bottom--2x {
    margin-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--2x, .margin-left--2x {
    margin-left: 32px !important; } }

@media screen and (max-width: 960px) {
  .margin--2x, .margin-left--2x {
    margin-left: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--3halves, .margin-top--3halves {
    margin-top: 24px !important; } }

@media screen and (max-width: 960px) {
  .margin--3halves, .margin-top--3halves {
    margin-top: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--3halves, .margin-right--3halves {
    margin-right: 24px !important; } }

@media screen and (max-width: 960px) {
  .margin--3halves, .margin-right--3halves {
    margin-right: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--3halves, .margin-bottom--3halves {
    margin-bottom: 24px !important; } }

@media screen and (max-width: 960px) {
  .margin--3halves, .margin-bottom--3halves {
    margin-bottom: 16px !important; } }

@media screen and (min-width: 960px) {
  .margin--3halves, .margin-left--3halves {
    margin-left: 24px !important; } }

@media screen and (max-width: 960px) {
  .margin--3halves, .margin-left--3halves {
    margin-left: 16px !important; } }

.margin--half, .margin-top--half {
  margin-top: 8px !important; }

.margin--half, .margin-right--half {
  margin-right: 8px !important; }

.margin--half, .margin-bottom--half {
  margin-bottom: 8px !important; }

.margin--half, .margin-left--half {
  margin-left: 8px !important; }

@media screen and (min-width: 960px) {
  .padding--verticals {
    padding-top: 16px; } }

@media screen and (max-width: 960px) {
  .padding--verticals {
    padding-top: 16px; } }

@media screen and (min-width: 960px) {
  .padding--verticals {
    padding-bottom: 16px; } }

@media screen and (max-width: 960px) {
  .padding--verticals {
    padding-bottom: 16px; } }

@media screen and (min-width: 960px) {
  .padding--verticals {
    padding-left: 16px; } }

@media screen and (max-width: 960px) {
  .padding--verticals {
    padding-left: 16px; } }

.no-padding {
  padding: 0 !important; }

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

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

.no-margin {
  margin: 0 !important; }

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

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

/*
*IvyJournal*
font-family: ivyjournal,sans-serif;
font-weight: 700;
font-style: normal;

font-family: ivyjournal,sans-serif;
font-weight: 700;
font-style: italic;

*Bold*
font-family: proxima-nova,sans-serif;
font-weight: 700;
font-style: normal;

font-family: proxima-nova,sans-serif;
font-weight: 700;
font-style: italic;

*Semibold*
font-family: proxima-nova,sans-serif;
font-weight: 600;
font-style: normal;

font-family: proxima-nova,sans-serif;
font-weight: 600;
font-style: italic;

*Regular*
font-family: proxima-nova,sans-serif;
font-weight: 400;
font-style: normal;

font-family: proxima-nova,sans-serif;
font-weight: 400;
font-style: italic;

*/
body {
  font-family: proxima-nova,sans-serif;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.33;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  overflow-x: hidden; }

p {
  font-family: proxima-nova,sans-serif;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.33;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }

small {
  font-family: proxima-nova,sans-serif;
  font-size: 13px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.31;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }

h1 {
  font-family: ivyjournal,sans-serif;
  font-size: 37px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }
  @media screen and (max-width: 39.9375em) {
    h1 {
      font-size: 32px;
      line-height: 40px; } }

h2 {
  font-family: ivyjournal,sans-serif;
  font-size: 28px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.2em;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }
  @media screen and (max-width: 39.9375em) {
    h2 {
      font-size: 24px;
      line-height: 32px; } }

h3 {
  font-family: proxima-nova,sans-serif;
  font-size: 24px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.13;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }

h4, fieldset legend, .posts-list__header, .woocommerce-checkout #order_review_heading {
  font-family: proxima-nova,sans-serif;
  font-size: 21px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }

h5, .gforms-section .gsection_title {
  font-family: proxima-nova,sans-serif;
  font-size: 17px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }

/* Links */
a {
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: #0062d1;
  text-decoration: underline; }
  a:hover {
    text-decoration: none; }

body:not(.logged-in) .hide-logged-out {
  display: none !important; }

.entry-title {
  text-align: center;
  margin-bottom: 25px; }

.entry-subtitle {
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: center;
  color: rgba(17, 19, 21, 0.6);
  margin-bottom: 35px; }
  .entry-subtitle.entry-subtitle--big {
    font-size: 18px;
    font-weight: bold;
    color: rgba(17, 19, 21, 0.87);
    margin-top: -14px; }
  .entry-subtitle p {
    margin-bottom: 0px; }

.entry-content > .section {
  width: 100vw;
  margin-left: calc( calc( 100vw - 100% ) / -2);
  margin-right: calc( calc( 100vw - 100% ) / -2); }

.section {
  position: relative;
  padding-top: 60px;
  padding-bottom: 60px; }
  .section .section {
    padding-top: 0px;
    padding-bottom: 0px; }

.entry-content .content-section {
  padding-top: 20px; }

.section__container, .content-area {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }
  .section__container.medium, .content-area.medium {
    max-width: 920px;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }
  .section__container.xmedium, .content-area.xmedium {
    max-width: 830px;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }
  .section__container.small, .content-area.small {
    max-width: 590px;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }
  .section__container.xsmall, .content-area.xsmall {
    max-width: 540px;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }
  .section__container.xxsmall, .content-area.xxsmall {
    max-width: 450px;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }
  @media screen and (max-width: 63.9375em) {
    .section__container, .content-area {
      padding-left: 1rem;
      padding-right: 1rem; } }

.section__column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%; }
  @media print, screen and (min-width: 40em) {
    .section__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.site-content {
  padding-top: 60px;
  padding-bottom: 60px; }

.content-area {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }
  .content-area.medium, .content-area.medium .section__container {
    max-width: 920px;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }
  .content-area.small, .content-area.small .section__container {
    max-width: 590px;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap; }
  .content-area .site-main {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 100%; }
    @media print, screen and (min-width: 40em) {
      .content-area .site-main {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
  .content-area .site-sidebar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 25%; }
    @media print, screen and (min-width: 40em) {
      .content-area .site-sidebar {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
    .content-area .site-sidebar + .site-main {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 75%;
              flex: 0 0 75%;
      max-width: 75%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 75%; }
      @media print, screen and (min-width: 40em) {
        .content-area .site-sidebar + .site-main {
          padding-right: 0.9375rem;
          padding-left: 0.9375rem; } }
      .content-area .site-sidebar + .site-main .entry-title {
        text-align: left;
        margin-bottom: 40px;
        font-family: ivyjournal,sans-serif;
        font-size: 36px;
        font-weight: bold;
        font-style: normal;
        font-stretch: normal;
        line-height: normal;
        letter-spacing: normal;
        color: rgba(17, 19, 21, 0.87);
        line-height: 1.17;
        letter-spacing: normal;
        color: #1d1f21; }
        @media screen and (max-width: 39.9375em) {
          .content-area .site-sidebar + .site-main .entry-title {
            font-size: 32px;
            line-height: 40px; } }
      .content-area .site-sidebar + .site-main .entry-subtitle {
        text-transform: uppercase;
        font-size: 13px;
        font-weight: 600;
        font-style: normal;
        font-stretch: normal;
        line-height: normal;
        letter-spacing: normal;
        color: rgba(17, 19, 21, 0.6); }
    @media screen and (max-width: 39.9375em) {
      .content-area .site-sidebar {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 100%; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .content-area .site-sidebar {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
    @media screen and (max-width: 39.9375em) {
        .content-area .site-sidebar + .site-main {
          -webkit-box-flex: 0;
              -ms-flex: 0 0 100%;
                  flex: 0 0 100%;
          max-width: 100%;
          padding-right: 0.625rem;
          padding-left: 0.625rem;
          max-width: 100%; } }
    @media screen and (max-width: 39.9375em) and (min-width: 40em) {
      .content-area .site-sidebar + .site-main {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }

@media screen and (max-width: 39.9375em) {
  body.with-sidebar .site-sidebar {
    padding: 0px; }
  body.with-sidebar .mobile-dropdown {
    margin: 0 -16px; }
  body.with-sidebar .site-content {
    padding-top: 0px; }
  body.with-sidebar .site-main {
    padding-top: 30px; } }

.page-template-learning-to-use .content-area {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }

.gforms-section {
  margin-top: 10px; }
  .gforms-section.gray {
    border-radius: 6px;
    box-shadow: inset 0 1px 2px 0 rgba(29, 31, 33, 0.2);
    background-color: #ededed;
    padding: 16px 8px 8px 8px;
    padding-right: 30px; }
    .gforms-section.gray .gfield:not(.gsection) label, .gforms-section.gray .gfield:not(.gsection) .gsection_title {
      white-space: nowrap;
      font-size: 13px;
      font-weight: normal; }
  .gforms-section > ul {
    margin: 0px; }

.gfield_label_before_complex {
  display: none; }

.ginput_container_textarea textarea.small {
  height: 170px; }

.gfield_description, .gsection_description {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  font-weight: normal;
  color: rgba(17, 19, 21, 0.4);
  padding: 0px;
  position: relative;
  white-space: normal;
  line-height: 1.3em;
  width: 90%; }

.gfield_html h4, .gfield_html fieldset legend, fieldset .gfield_html legend, .gfield_html .posts-list__header, .gfield_html .woocommerce-checkout #order_review_heading, .woocommerce-checkout .gfield_html #order_review_heading {
  margin-bottom: 10px; }

.ginput_container_checkbox ul {
  margin-left: 0px;
  list-style: none; }
  .ginput_container_checkbox ul > [class^=gchoice]:first-child label, .ginput_container_checkbox ul > [class^=gchoice]:first-child .gforms-section.gray .gsection_title, .gforms-section.gray .ginput_container_checkbox ul > [class^=gchoice]:first-child .gsection_title {
    margin-left: 0px !important; }

.validation_message {
  color: red; }

.validation_error {
  color: darkred;
  padding: 0 8px;
  margin-bottom: 30px; }

.gform_wrapper {
  border-bottom: 1px solid #BFC4CA;
  margin-bottom: 30px; }
  .gform_wrapper .ginput_container_radio {
    margin-top: 12px;
    margin-bottom: 6px; }
  .gform_wrapper .gform_fields {
    list-style: none;
    margin: 0px; }
    .gform_wrapper .gform_fields .ginput_complex {
      margin: 0 -8px; }
  .gform_wrapper .gform_footer input[type=submit] {
    box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
    background-color: #258afe ;
    background-image: none;
    color: #ffffff;
    font-weight: 600; }
    .gform_wrapper .gform_footer input[type=submit]:focus {
      box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
      background-color: #258afe ;
      color: #ffffff; }
    .gform_wrapper .gform_footer input[type=submit]:hover {
      box-shadow: 0 3px 4px 0 rgba(17, 19, 21, 0.3), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
      background-color: #258afe ;
      top: 0px;
      color: #ffffff; }
    .gform_wrapper .gform_footer input[type=submit]:active, .gform_wrapper .gform_footer input[type=submit].active {
      box-shadow: 0 0px 0 0 rgba(17, 19, 21, 0.2), inset 0 0 0 1px rgba(17, 19, 21, 0.4);
      background-color: #0062d1 ;
      top: 1px;
      color: #ffffff; }
    .gform_wrapper .gform_footer input[type=submit]:disabled, .gform_wrapper .gform_footer input[type=submit]:disabled:hover {
      background-color: #258afe ; }

.screenshot-box-style img {
  border-radius: 10px;
  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
  border: 1px solid #d8d8d8;
  box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.16);
  margin-bottom: 10px; }

.button, input[type=submit] {
  max-width: 100%;
  padding: 0px 15px;
  position: relative;
  top: 0px;
  border: none;
  text-decoration: none;
  font-family: proxima-nova,sans-serif;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: center;
  transition: all 0.2s;
  height: 32px;
  line-height: 31px;
  border-radius: 4px;
  padding: 0px 15px;
  font-size: 15px;
  font-weight: normal;
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background-image: linear-gradient(to bottom, #ffffff 0%, #ECEEF0 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ECEEF0',GradientType=0 );
  /* IE6-9 */
  background-color: transparent;
  background-repeat: repeat-x;
  box-shadow: inset 0 0 0 1px rgba(126, 137, 150, 0.5), inset 0 -1px 1px 0 rgba(29, 31, 33, 0.15);
  color: rgba(17, 19, 21, 0.87); }
  .button:focus, .button:hover, .button:active, .button.active, input[type=submit]:focus, input[type=submit]:hover, input[type=submit]:active, input[type=submit].active {
    outline: none; }
  .button:disabled, input[type=submit]:disabled {
    opacity: 0.25; }
  .button:focus, input[type=submit]:focus {
    box-shadow: inset 0 0 0 1px rgba(126, 137, 150, 0.5), inset 0 -1px 1px 0 rgba(29, 31, 33, 0.15);
    color: rgba(17, 19, 21, 0.87);
    background-color: transparent; }
  .button:hover, input[type=submit]:hover {
    box-shadow: inset 0 0 0 1px rgba(126, 137, 150, 0.7), inset 0 -1px 2px 0 rgba(29, 31, 33, 0.3);
    color: rgba(17, 19, 21, 0.87);
    background-color: transparent; }
  .button:active, .button.active, input[type=submit]:active, input[type=submit].active {
    box-shadow: inset 0 0 0 1px rgba(126, 137, 150, 0.7), inset 0 2px 1px 0 rgba(29, 31, 33, 0.15);
    color: rgba(17, 19, 21, 0.87); }
  .button:disabled, .button:disabled:hover, input[type=submit]:disabled, input[type=submit]:disabled:hover {
    color: rgba(17, 19, 21, 0.87); }
  .button.large, input[type=submit].large {
    min-width: 160px;
    height: 42px;
    line-height: 41px;
    border-radius: 6px;
    padding: 0px 15px;
    font-size: 18px;
    font-weight: 600; }
  .button.primary, input[type=submit].primary {
    box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
    background-color: #258afe ;
    background-image: none;
    color: #ffffff;
    font-weight: 600; }
    .button.primary:focus, input[type=submit].primary:focus {
      box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
      background-color: #258afe ;
      color: #ffffff; }
    .button.primary:hover, input[type=submit].primary:hover {
      box-shadow: 0 3px 4px 0 rgba(17, 19, 21, 0.3), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
      background-color: #258afe ;
      top: 0px;
      color: #ffffff; }
    .button.primary:active, .button.primary.active, input[type=submit].primary:active, input[type=submit].primary.active {
      box-shadow: 0 0px 0 0 rgba(17, 19, 21, 0.2), inset 0 0 0 1px rgba(17, 19, 21, 0.4);
      background-color: #0062d1 ;
      top: 1px;
      color: #ffffff; }
    .button.primary:disabled, .button.primary:disabled:hover, input[type=submit].primary:disabled, input[type=submit].primary:disabled:hover {
      background-color: #258afe ; }
  .button.white, input[type=submit].white {
    box-shadow: 0 1px 1px 0 rgba(17, 19, 21, 0.12), inset 0 0 0 1px rgba(17, 19, 21, 0.2);
    background-color: #ffffff;
    background-image: none;
    color: #0062d1;
    border: none;
    font-weight: 600; }
    .button.white:focus, input[type=submit].white:focus {
      box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.12), inset 0 0px 0 1px rgba(17, 19, 21, 0.2);
      background-color: #ffffff;
      color: #0062d1; }
    .button.white:hover, input[type=submit].white:hover {
      box-shadow: 0 3px 4px 0 rgba(17, 19, 21, 0.12), inset 0 0px 0 1px rgba(17, 19, 21, 0.2);
      background-color: #ffffff;
      color: #0062d1;
      top: 0px; }
    .button.white:active, .button.white.active, input[type=submit].white:active, input[type=submit].white.active {
      box-shadow: 0 0px 0 0 rgba(17, 19, 21, 0.1), inset 0 0 0 1px rgba(17, 19, 21, 0.3);
      background-color: #f7f7f7;
      top: 1px; }
  .button.special, input[type=submit].special {
    box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
    background-color: #4cc096;
    background-image: none;
    color: #ffffff;
    font-weight: 600; }
    .button.special:focus, input[type=submit].special:focus {
      box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
      background-color: #4cc096;
      color: #ffffff; }
    .button.special:hover, input[type=submit].special:hover {
      box-shadow: 0 3px 4px 0 rgba(17, 19, 21, 0.3), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
      background-color: #4cc096;
      top: 0px;
      color: #ffffff; }
    .button.special:active, .button.special.active, input[type=submit].special:active, input[type=submit].special.active {
      box-shadow: 0 0px 0 0 rgba(17, 19, 21, 0.2), inset 0 0 0 1px rgba(17, 19, 21, 0.4);
      background-color: #249b70;
      top: 1px;
      color: #ffffff; }
    .button.special:disabled, .button.special:disabled:hover, input[type=submit].special:disabled, input[type=submit].special:disabled:hover {
      background-color: #4cc096; }
  .button.minimal, input[type=submit].minimal {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
    background-color: transparent;
    background-image: none;
    color: #ffffff;
    font-weight: 600; }
    .button.minimal:focus, input[type=submit].minimal:focus {
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
      background-color: transparent;
      color: #ffffff; }
    .button.minimal:hover, input[type=submit].minimal:hover {
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
      background-color: rgba(229, 234, 240, 0.2);
      color: #ffffff; }
    .button.minimal:active, .button.minimal.active, input[type=submit].minimal:active, input[type=submit].minimal.active {
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
      background-color: rgba(229, 234, 240, 0.5);
      color: #ffffff; }
    .button.minimal:disabled, .button.minimal:disabled:hover, input[type=submit].minimal:disabled, input[type=submit].minimal:disabled:hover {
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
      background-color: transparent; }
  .button.minimal-black, input[type=submit].minimal-black {
    box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
    background-color: transparent;
    background-image: none;
    color: rgba(17, 19, 21, 0.87);
    font-weight: 600; }
    .button.minimal-black:focus, input[type=submit].minimal-black:focus {
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
      background-color: transparent;
      color: rgba(17, 19, 21, 0.87); }
    .button.minimal-black:hover, input[type=submit].minimal-black:hover {
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
      background-color: rgba(190, 203, 224, 0.2);
      color: rgba(17, 19, 21, 0.87); }
    .button.minimal-black:active, .button.minimal-black.active, input[type=submit].minimal-black:active, input[type=submit].minimal-black.active {
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
      background-color: rgba(190, 203, 224, 0.5);
      color: rgba(17, 19, 21, 0.87); }
    .button.minimal-black:disabled, .button.minimal-black:disabled:hover, input[type=submit].minimal-black:disabled, input[type=submit].minimal-black:disabled:hover {
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
      background-color: transparent; }

.wp-block-button .wp-block-button__link {
  max-width: 100%;
  padding: 0px 15px;
  position: relative;
  top: 0px;
  border: none;
  text-decoration: none;
  font-family: proxima-nova,sans-serif;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: center;
  transition: all 0.2s;
  min-width: 160px;
  height: 42px;
  line-height: 41px;
  border-radius: 6px;
  padding: 0px 15px;
  font-size: 18px;
  font-weight: 600;
  box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
  background-color: #258afe !important;
  background-image: none;
  color: #ffffff;
  font-weight: 600; }
  .wp-block-button .wp-block-button__link:focus, .wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:active, .wp-block-button .wp-block-button__link.active {
    outline: none; }
  .wp-block-button .wp-block-button__link:disabled {
    opacity: 0.25; }
  .wp-block-button .wp-block-button__link:focus {
    box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
    background-color: #258afe !important;
    color: #ffffff; }
  .wp-block-button .wp-block-button__link:hover {
    box-shadow: 0 3px 4px 0 rgba(17, 19, 21, 0.3), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
    background-color: #258afe !important;
    top: 0px;
    color: #ffffff; }
  .wp-block-button .wp-block-button__link:active, .wp-block-button .wp-block-button__link.active {
    box-shadow: 0 0px 0 0 rgba(17, 19, 21, 0.2), inset 0 0 0 1px rgba(17, 19, 21, 0.4);
    background-color: #0062d1 !important;
    top: 1px;
    color: #ffffff; }
  .wp-block-button .wp-block-button__link:disabled, .wp-block-button .wp-block-button__link:disabled:hover {
    background-color: #258afe !important; }

.f-item-preview > .button {
  margin: 10px; }

.f-item-preview .f-preview-dark {
  display: inline-block;
  margin: 0 -15px;
  padding: 15px;
  border-radius: 9px;
  background-color: #767676; }
  .f-item-preview .f-preview-dark > h4, .f-item-preview fieldset .f-preview-dark > legend, fieldset .f-item-preview .f-preview-dark > legend, .f-item-preview .f-preview-dark > .posts-list__header, .f-item-preview .woocommerce-checkout .f-preview-dark > #order_review_heading, .woocommerce-checkout .f-item-preview .f-preview-dark > #order_review_heading {
    color: white; }
  .f-item-preview .f-preview-dark > .button {
    margin: 10px; }

label, .gforms-section.gray .gsection_title {
  margin-bottom: 4px;
  font-family: proxima-nova,sans-serif;
  font-size: 13px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6);
  text-align: left; }
  label .optional, .gforms-section.gray .gsection_title .optional {
    font-weight: normal;
    color: rgba(17, 19, 21, 0.4); }
  label .required, .gforms-section.gray .gsection_title .required {
    text-decoration: none;
    border: none;
    color: #db3737; }

.f-item-preview > label, .gforms-section.gray .f-item-preview > .gsection_title {
  margin: 10px; }

.price-display {
  text-decoration: none;
  padding: 0px 6px; }
  .price-display > span:nth-child(1) {
    display: block;
    font-size: 18px;
    font-weight: 600;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    text-align: center;
    color: #0062d1; }
  .price-display > span:nth-child(2) {
    display: block;
    font-size: 13px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    text-align: center;
    color: rgba(17, 19, 21, 0.6); }
  .price-display > span:first-child:last-child {
    font-size: 15px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    text-align: center;
    text-decoration: line-through;
    color: rgba(17, 19, 21, 0.6); }
  .price-display.secondary > span:nth-child(1) {
    color: #1e9461; }
  .price-display.large > span:nth-child(1) {
    font-size: 24px; }
  .price-display.large > span:first-child:last-child {
    font-size: 24px;
    color: rgba(17, 19, 21, 0.6); }

.f-item-preview > .price-display {
  display: inline-block;
  margin: 10px; }

.gfield_radio {
  list-style: none;
  margin-left: 0px; }
  .gfield_radio li:not(:first-child) {
    margin-top: 7px; }
  .gfield_radio li label, .gfield_radio li .gforms-section.gray .gsection_title, .gforms-section.gray .gfield_radio li .gsection_title {
    margin: 0px; }

label.radio-checkbox, .gforms-section.gray .radio-checkbox.gsection_title, label.radio-checkbox > label, .gforms-section.gray .radio-checkbox.gsection_title > label, .gforms-section.gray label.radio-checkbox > .gsection_title, .gforms-section.gray .radio-checkbox.gsection_title > .gsection_title, .woocommerce-form__label-for-checkbox, .woocommerce-form__label-for-checkbox > label, .gforms-section.gray .woocommerce-form__label-for-checkbox > .gsection_title, .gfield_radio *[class^=gchoice], .gfield_radio *[class^=gchoice] > label, .gfield_radio .gforms-section.gray *[class^=gchoice] > .gsection_title, .gforms-section.gray .gfield_radio *[class^=gchoice] > .gsection_title, .wc_payment_method, .wc_payment_method > label, .gforms-section.gray .wc_payment_method > .gsection_title, .gfield_checkbox *[class^=gchoice], .gfield_checkbox *[class^=gchoice] > label, .gfield_checkbox .gforms-section.gray *[class^=gchoice] > .gsection_title, .gforms-section.gray .gfield_checkbox *[class^=gchoice] > .gsection_title {
  font-family: proxima-nova,sans-serif;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }

label.radio-checkbox > input[type=checkbox], .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox], label.radio-checkbox > input[type=radio], .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio], .woocommerce-form__label-for-checkbox > input[type=checkbox], .woocommerce-form__label-for-checkbox > input[type=radio], .gfield_radio *[class^=gchoice] > input[type=checkbox], .gfield_radio *[class^=gchoice] > input[type=radio], .wc_payment_method > input[type=checkbox], .wc_payment_method > input[type=radio], .gfield_checkbox *[class^=gchoice] > input[type=checkbox], .gfield_checkbox *[class^=gchoice] > input[type=radio] {
  display: none; }
  label.radio-checkbox > input[type=checkbox] + *, .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox] + *, label.radio-checkbox > input[type=radio] + *, .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio] + *, .woocommerce-form__label-for-checkbox > input[type=checkbox] + *, .woocommerce-form__label-for-checkbox > input[type=radio] + *, .gfield_radio *[class^=gchoice] > input[type=checkbox] + *, .gfield_radio *[class^=gchoice] > input[type=radio] + *, .wc_payment_method > input[type=checkbox] + *, .wc_payment_method > input[type=radio] + *, .gfield_checkbox *[class^=gchoice] > input[type=checkbox] + *, .gfield_checkbox *[class^=gchoice] > input[type=radio] + * {
    position: relative;
    line-height: 18px;
    cursor: pointer; }
    label.radio-checkbox > input[type=checkbox] + *:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox] + *:before, label.radio-checkbox > input[type=radio] + *:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio] + *:before, .woocommerce-form__label-for-checkbox > input[type=checkbox] + *:before, .woocommerce-form__label-for-checkbox > input[type=radio] + *:before, .gfield_radio *[class^=gchoice] > input[type=checkbox] + *:before, .gfield_radio *[class^=gchoice] > input[type=radio] + *:before, .wc_payment_method > input[type=checkbox] + *:before, .wc_payment_method > input[type=radio] + *:before, .gfield_checkbox *[class^=gchoice] > input[type=checkbox] + *:before, .gfield_checkbox *[class^=gchoice] > input[type=radio] + *:before {
      content: '';
      vertical-align: text-bottom;
      margin-right: 7px;
      display: inline-block;
      box-shadow: inset 0 0 0 1px rgba(126, 137, 150, 0.5), inset 0 -1px 1px 0 rgba(29, 31, 33, 0.15);
      color: white;
      width: 18px;
      min-width: 18px;
      height: 18px;
      border-radius: 3px;
      /* FF3.6-15 */
      /* Chrome10-25,Safari5.1-6 */
      background-image: linear-gradient(to bottom, #ffffff 0%, #ECEEF0 100%);
      /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ECEEF0',GradientType=0 );
      /* IE6-9 */
      background-color: transparent;
      background-repeat: repeat-x; }
    label.radio-checkbox > input[type=checkbox] + *:hover:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox] + *:hover:before, label.radio-checkbox > input[type=radio] + *:hover:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio] + *:hover:before, .woocommerce-form__label-for-checkbox > input[type=checkbox] + *:hover:before, .woocommerce-form__label-for-checkbox > input[type=radio] + *:hover:before, .gfield_radio *[class^=gchoice] > input[type=checkbox] + *:hover:before, .gfield_radio *[class^=gchoice] > input[type=radio] + *:hover:before, .wc_payment_method > input[type=checkbox] + *:hover:before, .wc_payment_method > input[type=radio] + *:hover:before, .gfield_checkbox *[class^=gchoice] > input[type=checkbox] + *:hover:before, .gfield_checkbox *[class^=gchoice] > input[type=radio] + *:hover:before {
      box-shadow: inset 0 0 0 1px rgba(126, 137, 150, 0.8), inset 0 -1px 1px 0 rgba(29, 31, 33, 0.15); }
    label.radio-checkbox > input[type=checkbox] + *:active:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox] + *:active:before, label.radio-checkbox > input[type=radio] + *:active:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio] + *:active:before, .woocommerce-form__label-for-checkbox > input[type=checkbox] + *:active:before, .woocommerce-form__label-for-checkbox > input[type=radio] + *:active:before, .gfield_radio *[class^=gchoice] > input[type=checkbox] + *:active:before, .gfield_radio *[class^=gchoice] > input[type=radio] + *:active:before, .wc_payment_method > input[type=checkbox] + *:active:before, .wc_payment_method > input[type=radio] + *:active:before, .gfield_checkbox *[class^=gchoice] > input[type=checkbox] + *:active:before, .gfield_checkbox *[class^=gchoice] > input[type=radio] + *:active:before {
      /* FF3.6-15 */
      /* Chrome10-25,Safari5.1-6 */
      background-image: linear-gradient(to bottom, #ECEEF0 0%, #ffffff 100%);
      /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ECEEF0', endColorstr='#ffffff',GradientType=0 );
      /* IE6-9 */
      background-color: transparent;
      background-repeat: repeat-x; }
  label.radio-checkbox > input[type=checkbox]:checked + *, .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox]:checked + *, label.radio-checkbox > input[type=radio]:checked + *, .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio]:checked + *, .woocommerce-form__label-for-checkbox > input[type=checkbox]:checked + *, .woocommerce-form__label-for-checkbox > input[type=radio]:checked + *, .gfield_radio *[class^=gchoice] > input[type=checkbox]:checked + *, .gfield_radio *[class^=gchoice] > input[type=radio]:checked + *, .wc_payment_method > input[type=checkbox]:checked + *, .wc_payment_method > input[type=radio]:checked + *, .gfield_checkbox *[class^=gchoice] > input[type=checkbox]:checked + *, .gfield_checkbox *[class^=gchoice] > input[type=radio]:checked + * {
    position: relative; }
    label.radio-checkbox > input[type=checkbox]:checked + *:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox]:checked + *:before, label.radio-checkbox > input[type=radio]:checked + *:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio]:checked + *:before, .woocommerce-form__label-for-checkbox > input[type=checkbox]:checked + *:before, .woocommerce-form__label-for-checkbox > input[type=radio]:checked + *:before, .gfield_radio *[class^=gchoice] > input[type=checkbox]:checked + *:before, .gfield_radio *[class^=gchoice] > input[type=radio]:checked + *:before, .wc_payment_method > input[type=checkbox]:checked + *:before, .wc_payment_method > input[type=radio]:checked + *:before, .gfield_checkbox *[class^=gchoice] > input[type=checkbox]:checked + *:before, .gfield_checkbox *[class^=gchoice] > input[type=radio]:checked + *:before {
      /* use !important to prevent issues with browser extensions that change fonts */
      font-family: 'icomoon' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: "";
      text-align: center;
      line-height: 19px;
      font-size: 9.5px;
      font-weight: 100;
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.4);
      background: #0062d1; }
    label.radio-checkbox > input[type=checkbox]:checked + *:hover:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox]:checked + *:hover:before, label.radio-checkbox > input[type=radio]:checked + *:hover:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio]:checked + *:hover:before, .woocommerce-form__label-for-checkbox > input[type=checkbox]:checked + *:hover:before, .woocommerce-form__label-for-checkbox > input[type=radio]:checked + *:hover:before, .gfield_radio *[class^=gchoice] > input[type=checkbox]:checked + *:hover:before, .gfield_radio *[class^=gchoice] > input[type=radio]:checked + *:hover:before, .wc_payment_method > input[type=checkbox]:checked + *:hover:before, .wc_payment_method > input[type=radio]:checked + *:hover:before, .gfield_checkbox *[class^=gchoice] > input[type=checkbox]:checked + *:hover:before, .gfield_checkbox *[class^=gchoice] > input[type=radio]:checked + *:hover:before {
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.1);
      background: #0069e0; }
    label.radio-checkbox > input[type=checkbox]:checked + *:active:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox]:checked + *:active:before, label.radio-checkbox > input[type=radio]:checked + *:active:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio]:checked + *:active:before, .woocommerce-form__label-for-checkbox > input[type=checkbox]:checked + *:active:before, .woocommerce-form__label-for-checkbox > input[type=radio]:checked + *:active:before, .gfield_radio *[class^=gchoice] > input[type=checkbox]:checked + *:active:before, .gfield_radio *[class^=gchoice] > input[type=radio]:checked + *:active:before, .wc_payment_method > input[type=checkbox]:checked + *:active:before, .wc_payment_method > input[type=radio]:checked + *:active:before, .gfield_checkbox *[class^=gchoice] > input[type=checkbox]:checked + *:active:before, .gfield_checkbox *[class^=gchoice] > input[type=radio]:checked + *:active:before {
      box-shadow: inset 0 0 0 2px rgba(17, 19, 21, 0.1);
      background: #0056b8; }
  label.radio-checkbox > input[type=checkbox][type=radio] + *:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox][type=radio] + *:before, label.radio-checkbox > input[type=radio][type=radio] + *:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio][type=radio] + *:before, .woocommerce-form__label-for-checkbox > input[type=checkbox][type=radio] + *:before, .woocommerce-form__label-for-checkbox > input[type=radio][type=radio] + *:before, .gfield_radio *[class^=gchoice] > input[type=checkbox][type=radio] + *:before, .gfield_radio *[class^=gchoice] > input[type=radio][type=radio] + *:before, .wc_payment_method > input[type=checkbox][type=radio] + *:before, .wc_payment_method > input[type=radio][type=radio] + *:before, .gfield_checkbox *[class^=gchoice] > input[type=checkbox][type=radio] + *:before, .gfield_checkbox *[class^=gchoice] > input[type=radio][type=radio] + *:before {
    border-radius: 50%; }
  label.radio-checkbox > input[type=checkbox][type=radio]:checked + *:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox][type=radio]:checked + *:before, label.radio-checkbox > input[type=radio][type=radio]:checked + *:before, .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio][type=radio]:checked + *:before, .woocommerce-form__label-for-checkbox > input[type=checkbox][type=radio]:checked + *:before, .woocommerce-form__label-for-checkbox > input[type=radio][type=radio]:checked + *:before, .gfield_radio *[class^=gchoice] > input[type=checkbox][type=radio]:checked + *:before, .gfield_radio *[class^=gchoice] > input[type=radio][type=radio]:checked + *:before, .wc_payment_method > input[type=checkbox][type=radio]:checked + *:before, .wc_payment_method > input[type=radio][type=radio]:checked + *:before, .gfield_checkbox *[class^=gchoice] > input[type=checkbox][type=radio]:checked + *:before, .gfield_checkbox *[class^=gchoice] > input[type=radio][type=radio]:checked + *:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    line-height: 19px;
    font-size: 7.5px; }

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

.resource-link__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: #0062d1;
  text-decoration: underline; }
  .resource-link__wrapper:hover {
    text-decoration: none; }

.resource-link__icon {
  margin-right: 12px;
  max-height: 46px;
  width: auto;
  min-width: 42px; }

.resource-link__text {
  font-size: 15px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: left;
  color: #0062d1; }

.section-title {
  margin-bottom: 40px;
  text-align: center; }

.section-title__title {
  font-family: proxima-nova,sans-serif;
  font-size: 24px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: center;
  color: rgba(17, 19, 21, 0.87); }

.section-icon-title {
  margin-bottom: 40px;
  text-align: center; }

.section-icon-title--interface .section-icon-title__icon {
  background-image: url("../images/icons/disk-interface.svg"); }

.section-icon-title--stories .section-icon-title__icon {
  background-image: url("../images/icons/disk-stories.svg"); }

.section-icon-title--software .section-icon-title__icon {
  background-image: url("../images/icons/disk-software-tiers.svg"); }

.section-icon-title--flow .section-icon-title__icon {
  background-image: url("../images/icons/disk-flow.svg"); }

.section-icon-title--core-tech .section-icon-title__icon {
  background-image: url("../images/icons/disk-core-tech.svg"); }

.section-icon-title__icon {
  display: inline-block;
  width: 51px;
  height: 51px;
  background-size: contain; }

.section-icon-title__title {
  font-family: ivyjournal,sans-serif;
  font-size: 28px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.2em;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  line-height: 1.29em;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  width: 550px;
  max-width: 100%;
  margin: 0 auto; }
  @media screen and (max-width: 39.9375em) {
    .section-icon-title__title {
      font-size: 24px;
      line-height: 32px; } }

.section-icon-title__subtitle {
  display: inline-block;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.33;
  letter-spacing: normal;
  text-align: center;
  color: rgba(17, 19, 21, 0.6);
  margin: 0 auto;
  width: 580px;
  max-width: 100%;
  margin-top: 15px; }

.f-item-preview > .input-field, .f-item-preview > .form-row, .gform_wrapper .gform_fields .ginput_complex.f-item-preview > *, .gform_wrapper .gform_fields .f-item-preview > .gfield, .gform_wrapper .f-item-preview > .gform_footer {
  width: 260px; }

[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,
.select2-container .select2-selection--single {
  border-radius: 3px;
  box-shadow: 0 0 0 0px rgba(0, 98, 209, 0), inset 0 0 0 1px rgba(126, 137, 150, 0.5), inset 0 1px 2px 0 rgba(29, 31, 33, 0.2);
  max-width: 100%;
  height: 32px;
  padding: 0px 25px 0px 10px;
  background-color: #ffffff;
  border: none !important;
  margin: 0px;
  font-family: proxima-nova,sans-serif;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 32px;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  transition: all 0.2s; }
  [type='text'] .select2-selection__rendered,
  [type='password'] .select2-selection__rendered,
  [type='date'] .select2-selection__rendered,
  [type='datetime'] .select2-selection__rendered,
  [type='datetime-local'] .select2-selection__rendered,
  [type='month'] .select2-selection__rendered,
  [type='week'] .select2-selection__rendered,
  [type='email'] .select2-selection__rendered,
  [type='number'] .select2-selection__rendered,
  [type='search'] .select2-selection__rendered,
  [type='tel'] .select2-selection__rendered,
  [type='time'] .select2-selection__rendered,
  [type='url'] .select2-selection__rendered,
  [type='color'] .select2-selection__rendered,
  textarea .select2-selection__rendered,
  .select2-container .select2-selection--single .select2-selection__rendered {
    padding: 0px;
    height: 32px;
    line-height: 32px; }
  [type='text'] .select2-selection__arrow,
  [type='password'] .select2-selection__arrow,
  [type='date'] .select2-selection__arrow,
  [type='datetime'] .select2-selection__arrow,
  [type='datetime-local'] .select2-selection__arrow,
  [type='month'] .select2-selection__arrow,
  [type='week'] .select2-selection__arrow,
  [type='email'] .select2-selection__arrow,
  [type='number'] .select2-selection__arrow,
  [type='search'] .select2-selection__arrow,
  [type='tel'] .select2-selection__arrow,
  [type='time'] .select2-selection__arrow,
  [type='url'] .select2-selection__arrow,
  [type='color'] .select2-selection__arrow,
  textarea .select2-selection__arrow,
  .select2-container .select2-selection--single .select2-selection__arrow {
    height: 30px; }
  [type='text']::-webkit-input-placeholder,
  [type='password']::-webkit-input-placeholder,
  [type='date']::-webkit-input-placeholder,
  [type='datetime']::-webkit-input-placeholder,
  [type='datetime-local']::-webkit-input-placeholder,
  [type='month']::-webkit-input-placeholder,
  [type='week']::-webkit-input-placeholder,
  [type='email']::-webkit-input-placeholder,
  [type='number']::-webkit-input-placeholder,
  [type='search']::-webkit-input-placeholder,
  [type='tel']::-webkit-input-placeholder,
  [type='time']::-webkit-input-placeholder,
  [type='url']::-webkit-input-placeholder,
  [type='color']::-webkit-input-placeholder,
  textarea::-webkit-input-placeholder,
  .select2-container .select2-selection--single::-webkit-input-placeholder {
    color: rgba(17, 19, 21, 0.4);
    transition: all 0.5s;
    opacity: 1; }
  [type='text']::-moz-placeholder,
  [type='password']::-moz-placeholder,
  [type='date']::-moz-placeholder,
  [type='datetime']::-moz-placeholder,
  [type='datetime-local']::-moz-placeholder,
  [type='month']::-moz-placeholder,
  [type='week']::-moz-placeholder,
  [type='email']::-moz-placeholder,
  [type='number']::-moz-placeholder,
  [type='search']::-moz-placeholder,
  [type='tel']::-moz-placeholder,
  [type='time']::-moz-placeholder,
  [type='url']::-moz-placeholder,
  [type='color']::-moz-placeholder,
  textarea::-moz-placeholder,
  .select2-container .select2-selection--single::-moz-placeholder {
    color: rgba(17, 19, 21, 0.4);
    transition: all 0.5s;
    opacity: 1; }
  [type='text']:-ms-input-placeholder,
  [type='password']:-ms-input-placeholder,
  [type='date']:-ms-input-placeholder,
  [type='datetime']:-ms-input-placeholder,
  [type='datetime-local']:-ms-input-placeholder,
  [type='month']:-ms-input-placeholder,
  [type='week']:-ms-input-placeholder,
  [type='email']:-ms-input-placeholder,
  [type='number']:-ms-input-placeholder,
  [type='search']:-ms-input-placeholder,
  [type='tel']:-ms-input-placeholder,
  [type='time']:-ms-input-placeholder,
  [type='url']:-ms-input-placeholder,
  [type='color']:-ms-input-placeholder,
  textarea:-ms-input-placeholder,
  .select2-container .select2-selection--single:-ms-input-placeholder {
    color: rgba(17, 19, 21, 0.4);
    transition: all 0.5s;
    opacity: 1; }
  [type='text']::placeholder,
  [type='password']::placeholder,
  [type='date']::placeholder,
  [type='datetime']::placeholder,
  [type='datetime-local']::placeholder,
  [type='month']::placeholder,
  [type='week']::placeholder,
  [type='email']::placeholder,
  [type='number']::placeholder,
  [type='search']::placeholder,
  [type='tel']::placeholder,
  [type='time']::placeholder,
  [type='url']::placeholder,
  [type='color']::placeholder,
  textarea::placeholder,
  .select2-container .select2-selection--single::placeholder {
    color: rgba(17, 19, 21, 0.4);
    transition: all 0.5s;
    opacity: 1; }
  [type='text']:not(.select2-search__field):active, [type='text']:not(.select2-search__field):focus, [type='text']:not(.select2-search__field).active, [type='text']:not(.select2-search__field)[aria-expanded=true],
  [type='password']:not(.select2-search__field):active,
  [type='password']:not(.select2-search__field):focus,
  [type='password']:not(.select2-search__field).active,
  [type='password']:not(.select2-search__field)[aria-expanded=true],
  [type='date']:not(.select2-search__field):active,
  [type='date']:not(.select2-search__field):focus,
  [type='date']:not(.select2-search__field).active,
  [type='date']:not(.select2-search__field)[aria-expanded=true],
  [type='datetime']:not(.select2-search__field):active,
  [type='datetime']:not(.select2-search__field):focus,
  [type='datetime']:not(.select2-search__field).active,
  [type='datetime']:not(.select2-search__field)[aria-expanded=true],
  [type='datetime-local']:not(.select2-search__field):active,
  [type='datetime-local']:not(.select2-search__field):focus,
  [type='datetime-local']:not(.select2-search__field).active,
  [type='datetime-local']:not(.select2-search__field)[aria-expanded=true],
  [type='month']:not(.select2-search__field):active,
  [type='month']:not(.select2-search__field):focus,
  [type='month']:not(.select2-search__field).active,
  [type='month']:not(.select2-search__field)[aria-expanded=true],
  [type='week']:not(.select2-search__field):active,
  [type='week']:not(.select2-search__field):focus,
  [type='week']:not(.select2-search__field).active,
  [type='week']:not(.select2-search__field)[aria-expanded=true],
  [type='email']:not(.select2-search__field):active,
  [type='email']:not(.select2-search__field):focus,
  [type='email']:not(.select2-search__field).active,
  [type='email']:not(.select2-search__field)[aria-expanded=true],
  [type='number']:not(.select2-search__field):active,
  [type='number']:not(.select2-search__field):focus,
  [type='number']:not(.select2-search__field).active,
  [type='number']:not(.select2-search__field)[aria-expanded=true],
  [type='search']:not(.select2-search__field):active,
  [type='search']:not(.select2-search__field):focus,
  [type='search']:not(.select2-search__field).active,
  [type='search']:not(.select2-search__field)[aria-expanded=true],
  [type='tel']:not(.select2-search__field):active,
  [type='tel']:not(.select2-search__field):focus,
  [type='tel']:not(.select2-search__field).active,
  [type='tel']:not(.select2-search__field)[aria-expanded=true],
  [type='time']:not(.select2-search__field):active,
  [type='time']:not(.select2-search__field):focus,
  [type='time']:not(.select2-search__field).active,
  [type='time']:not(.select2-search__field)[aria-expanded=true],
  [type='url']:not(.select2-search__field):active,
  [type='url']:not(.select2-search__field):focus,
  [type='url']:not(.select2-search__field).active,
  [type='url']:not(.select2-search__field)[aria-expanded=true],
  [type='color']:not(.select2-search__field):active,
  [type='color']:not(.select2-search__field):focus,
  [type='color']:not(.select2-search__field).active,
  [type='color']:not(.select2-search__field)[aria-expanded=true],
  textarea:not(.select2-search__field):active,
  textarea:not(.select2-search__field):focus,
  textarea:not(.select2-search__field).active,
  textarea:not(.select2-search__field)[aria-expanded=true],
  .select2-container .select2-selection--single:not(.select2-search__field):active,
  .select2-container .select2-selection--single:not(.select2-search__field):focus,
  .select2-container .select2-selection--single:not(.select2-search__field).active,
  .select2-container .select2-selection--single:not(.select2-search__field)[aria-expanded=true] {
    box-shadow: 0 0 0 2px rgba(0, 98, 209, 0.6), inset 0 0 0 1px #0062d1, inset 0 1px 2px 0 rgba(29, 31, 33, 0.2);
    border: none; }
  [type='text'].select2-search__field:active, [type='text'].select2-search__field:focus, [type='text'].select2-search__field.active, [type='text'].select2-search__field,
  [type='password'].select2-search__field:active,
  [type='password'].select2-search__field:focus,
  [type='password'].select2-search__field.active,
  [type='password'].select2-search__field,
  [type='date'].select2-search__field:active,
  [type='date'].select2-search__field:focus,
  [type='date'].select2-search__field.active,
  [type='date'].select2-search__field,
  [type='datetime'].select2-search__field:active,
  [type='datetime'].select2-search__field:focus,
  [type='datetime'].select2-search__field.active,
  [type='datetime'].select2-search__field,
  [type='datetime-local'].select2-search__field:active,
  [type='datetime-local'].select2-search__field:focus,
  [type='datetime-local'].select2-search__field.active,
  [type='datetime-local'].select2-search__field,
  [type='month'].select2-search__field:active,
  [type='month'].select2-search__field:focus,
  [type='month'].select2-search__field.active,
  [type='month'].select2-search__field,
  [type='week'].select2-search__field:active,
  [type='week'].select2-search__field:focus,
  [type='week'].select2-search__field.active,
  [type='week'].select2-search__field,
  [type='email'].select2-search__field:active,
  [type='email'].select2-search__field:focus,
  [type='email'].select2-search__field.active,
  [type='email'].select2-search__field,
  [type='number'].select2-search__field:active,
  [type='number'].select2-search__field:focus,
  [type='number'].select2-search__field.active,
  [type='number'].select2-search__field,
  [type='search'].select2-search__field:active,
  [type='search'].select2-search__field:focus,
  [type='search'].select2-search__field.active,
  [type='search'].select2-search__field,
  [type='tel'].select2-search__field:active,
  [type='tel'].select2-search__field:focus,
  [type='tel'].select2-search__field.active,
  [type='tel'].select2-search__field,
  [type='time'].select2-search__field:active,
  [type='time'].select2-search__field:focus,
  [type='time'].select2-search__field.active,
  [type='time'].select2-search__field,
  [type='url'].select2-search__field:active,
  [type='url'].select2-search__field:focus,
  [type='url'].select2-search__field.active,
  [type='url'].select2-search__field,
  [type='color'].select2-search__field:active,
  [type='color'].select2-search__field:focus,
  [type='color'].select2-search__field.active,
  [type='color'].select2-search__field,
  textarea.select2-search__field:active,
  textarea.select2-search__field:focus,
  textarea.select2-search__field.active,
  textarea.select2-search__field,
  .select2-container .select2-selection--single.select2-search__field:active,
  .select2-container .select2-selection--single.select2-search__field:focus,
  .select2-container .select2-selection--single.select2-search__field.active,
  .select2-container .select2-selection--single.select2-search__field {
    box-shadow: 0 0 0 0px rgba(0, 98, 209, 0), inset 0 0 0 1px #0062d1, inset 0 1px 2px 0 rgba(29, 31, 33, 0.2); }
  [type='text'].error,
  [type='password'].error,
  [type='date'].error,
  [type='datetime'].error,
  [type='datetime-local'].error,
  [type='month'].error,
  [type='week'].error,
  [type='email'].error,
  [type='number'].error,
  [type='search'].error,
  [type='tel'].error,
  [type='time'].error,
  [type='url'].error,
  [type='color'].error,
  textarea.error,
  .select2-container .select2-selection--single.error {
    box-shadow: 0 0 0 0px rgba(0, 98, 209, 0.6), inset 0 0 0 0px #0062d1, inset 0 0 0 1px #db3737; }
    [type='text'].error:active, [type='text'].error:focus, [type='text'].error.active,
    [type='password'].error:active,
    [type='password'].error:focus,
    [type='password'].error.active,
    [type='date'].error:active,
    [type='date'].error:focus,
    [type='date'].error.active,
    [type='datetime'].error:active,
    [type='datetime'].error:focus,
    [type='datetime'].error.active,
    [type='datetime-local'].error:active,
    [type='datetime-local'].error:focus,
    [type='datetime-local'].error.active,
    [type='month'].error:active,
    [type='month'].error:focus,
    [type='month'].error.active,
    [type='week'].error:active,
    [type='week'].error:focus,
    [type='week'].error.active,
    [type='email'].error:active,
    [type='email'].error:focus,
    [type='email'].error.active,
    [type='number'].error:active,
    [type='number'].error:focus,
    [type='number'].error.active,
    [type='search'].error:active,
    [type='search'].error:focus,
    [type='search'].error.active,
    [type='tel'].error:active,
    [type='tel'].error:focus,
    [type='tel'].error.active,
    [type='time'].error:active,
    [type='time'].error:focus,
    [type='time'].error.active,
    [type='url'].error:active,
    [type='url'].error:focus,
    [type='url'].error.active,
    [type='color'].error:active,
    [type='color'].error:focus,
    [type='color'].error.active,
    textarea.error:active,
    textarea.error:focus,
    textarea.error.active,
    .select2-container .select2-selection--single.error:active,
    .select2-container .select2-selection--single.error:focus,
    .select2-container .select2-selection--single.error.active {
      box-shadow: 0 0 0 2px rgba(0, 98, 209, 0.6), inset 0 0 0 1px #0062d1, inset 0 1px 2px 0 rgba(29, 31, 33, 0.2);
      border: none; }

select {
  border-radius: 3px;
  box-shadow: 0 0 0 0px rgba(0, 98, 209, 0), inset 0 0 0 1px rgba(126, 137, 150, 0.5), inset 0 1px 2px 0 rgba(29, 31, 33, 0.2);
  max-width: 100%;
  height: 32px;
  padding: 0px 25px 0px 10px;
  background-color: #ffffff;
  border: none !important;
  margin: 0px;
  font-family: proxima-nova,sans-serif;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 32px;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  transition: all 0.2s;
  background-image: url("../images/caret.svg");
  background-size: 8px 5px; }
  select .select2-selection__rendered {
    padding: 0px;
    height: 32px;
    line-height: 32px; }
  select .select2-selection__arrow {
    height: 30px; }
  select::-webkit-input-placeholder {
    color: rgba(17, 19, 21, 0.4);
    transition: all 0.5s;
    opacity: 1; }
  select::-moz-placeholder {
    color: rgba(17, 19, 21, 0.4);
    transition: all 0.5s;
    opacity: 1; }
  select:-ms-input-placeholder {
    color: rgba(17, 19, 21, 0.4);
    transition: all 0.5s;
    opacity: 1; }
  select::placeholder {
    color: rgba(17, 19, 21, 0.4);
    transition: all 0.5s;
    opacity: 1; }
  select:not(.select2-search__field):active, select:not(.select2-search__field):focus, select:not(.select2-search__field).active, select:not(.select2-search__field)[aria-expanded=true] {
    box-shadow: 0 0 0 2px rgba(0, 98, 209, 0.6), inset 0 0 0 1px #0062d1, inset 0 1px 2px 0 rgba(29, 31, 33, 0.2);
    border: none; }
  select.select2-search__field:active, select.select2-search__field:focus, select.select2-search__field.active, select.select2-search__field {
    box-shadow: 0 0 0 0px rgba(0, 98, 209, 0), inset 0 0 0 1px #0062d1, inset 0 1px 2px 0 rgba(29, 31, 33, 0.2); }
  select.shadowed {
    box-shadow: 0 0 0 0px rgba(0, 98, 209, 0), inset 0 0 0 1px rgba(126, 137, 150, 0.5), inset 0 -1px 1px 0 rgba(29, 31, 33, 0.15);
    /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#ffffff+0,dee2e7+100 */
    /* FF3.6-15 */
    /* Chrome10-25,Safari5.1-6 */
    background-image: url("../images/caret.svg"), linear-gradient(to bottom, #ffffff 0%, #ECEEF0 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ECEEF0',GradientType=0 );
    /* IE6-9 */
    background-size: 8px 5px, 100% 100%;
    background-repeat: no-repeat, repeat; }
    select.shadowed:active, select.shadowed:focus, select.shadowed.active {
      box-shadow: 0 0 0 2px rgba(0, 98, 209, 0.4), inset 0 0 0 1px #0062d1, inset 0 1px 2px 0 rgba(29, 31, 33, 0.2);
      border: none; }
  select.error {
    box-shadow: 0 0 0 0px rgba(0, 98, 209, 0.6), inset 0 0 0 0px #0062d1, inset 0 0 0 1px #db3737; }
    select.error:active, select.error:focus, select.error.active {
      box-shadow: 0 0 0 2px rgba(0, 98, 209, 0.6), inset 0 0 0 1px #0062d1, inset 0 1px 2px 0 rgba(29, 31, 33, 0.2);
      border: none; }

.f-item-preview > [type='text'],
.f-item-preview > [type='password'],
.f-item-preview > [type='date'],
.f-item-preview > [type='datetime'],
.f-item-preview > [type='datetime-local'],
.f-item-preview > [type='month'],
.f-item-preview > [type='week'],
.f-item-preview > [type='email'],
.f-item-preview > [type='number'],
.f-item-preview > [type='search'],
.f-item-preview > [type='tel'],
.f-item-preview > [type='time'],
.f-item-preview > [type='url'],
.f-item-preview > [type='color'],
.f-item-preview > textarea,
.f-item-preview > select {
  width: 260px;
  display: inline-block;
  margin: 10px; }

.user-story__subject {
  font-size: 24px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.25;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  margin-bottom: 7px; }
  .user-story__subject:before {
    content: "“"; }
  .user-story__subject:after {
    content: "”"; }

.user-story__content {
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.33;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6); }
  .user-story__content:before {
    content: "“"; }
  .user-story__content:after {
    content: "”"; }

.user-story__author {
  margin-top: 15px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .user-story__author:before {
    content: '';
    display: inline-block;
    background: url("../images/icons/commenter.svg");
    width: 38px;
    height: 38px;
    margin-right: 12px; }
  .user-story__author > * {
    font-size: 13px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.31;
    letter-spacing: normal;
    color: rgba(17, 19, 21, 0.6); }

.user-story__author-name {
  font-weight: 600;
  text-transform: uppercase; }

.user-story__author-insitution:before {
  content: 'at'; }

.f-item-preview > .user-story {
  width: 475px; }

.feature-block {
  padding-left: 25px; }

.feature-block--new .feature-block__title:after {
  content: 'NEW';
  position: absolute;
  border-radius: 12px;
  background-color: #8be6be;
  padding: 3px 11px;
  right: -7px;
  top: -7px;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
  font-size: 12px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: center;
  color: #188154; }

.feature-block--new .feature-block__title-wrapper {
  margin-right: 50px;
  position: relative; }

.feature-block__title {
  display: inline-block;
  position: relative;
  font-size: 18px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.16;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  margin-bottom: 5px; }
  .feature-block__title:before {
    content: '';
    position: absolute;
    left: -16px;
    top: 6px;
    width: 8px;
    height: 8px;
    background-color: #93c6ff; }

.feature-block__content, .feature-block__content p {
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 20px;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6);
  margin-bottom: 0px; }

.f-item-preview > .feature-block {
  width: 345px; }

.shop_table select {
  box-shadow: 0 0 0 0px rgba(0, 98, 209, 0), inset 0 0 0 1px rgba(126, 137, 150, 0.5), inset 0 -1px 1px 0 rgba(29, 31, 33, 0.15);
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#ffffff+0,dee2e7+100 */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background-image: url("../images/caret.svg"), linear-gradient(to bottom, #ffffff 0%, #ECEEF0 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ECEEF0',GradientType=0 );
  /* IE6-9 */
  background-size: 8px 5px, 100% 100%;
  background-repeat: no-repeat, repeat; }
  .shop_table select:active, .shop_table select:focus, .shop_table select.active {
    box-shadow: 0 0 0 2px rgba(0, 98, 209, 0.4), inset 0 0 0 1px #0062d1, inset 0 1px 2px 0 rgba(29, 31, 33, 0.2);
    border: none; }

.shop_table td .button, .shop_table td button {
  margin-bottom: 0px; }

.shop_table thead tr th, .shop_table thead tr td, .shop_table tbody tr th, .shop_table tbody tr td, .shop_table tfoot tr th, .shop_table tfoot tr td {
  padding-left: 0px;
  padding-right: 20px; }
  .shop_table thead tr th, .shop_table thead tr td, .shop_table tbody tr th, .shop_table tbody tr td, .shop_table tfoot tr th, .shop_table tfoot tr td {
    font-size: 15px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    color: rgba(17, 19, 21, 0.87); }
  .shop_table thead tr th > .form-row, .shop_table thead tr .gform_wrapper .gform_fields th.ginput_complex > *, .gform_wrapper .gform_fields .shop_table thead tr th.ginput_complex > *, .shop_table thead tr .gform_wrapper .gform_fields th > .gfield, .gform_wrapper .gform_fields .shop_table thead tr th > .gfield, .shop_table thead tr .gform_wrapper th > .gform_footer, .gform_wrapper .shop_table thead tr th > .gform_footer, .shop_table thead tr td > .form-row, .shop_table thead tr .gform_wrapper .gform_fields td.ginput_complex > *, .gform_wrapper .gform_fields .shop_table thead tr td.ginput_complex > *, .shop_table thead tr .gform_wrapper .gform_fields td > .gfield, .gform_wrapper .gform_fields .shop_table thead tr td > .gfield, .shop_table thead tr .gform_wrapper td > .gform_footer, .gform_wrapper .shop_table thead tr td > .gform_footer, .shop_table tbody tr th > .form-row, .shop_table tbody tr .gform_wrapper .gform_fields th.ginput_complex > *, .gform_wrapper .gform_fields .shop_table tbody tr th.ginput_complex > *, .shop_table tbody tr .gform_wrapper .gform_fields th > .gfield, .gform_wrapper .gform_fields .shop_table tbody tr th > .gfield, .shop_table tbody tr .gform_wrapper th > .gform_footer, .gform_wrapper .shop_table tbody tr th > .gform_footer, .shop_table tbody tr td > .form-row, .shop_table tbody tr .gform_wrapper .gform_fields td.ginput_complex > *, .gform_wrapper .gform_fields .shop_table tbody tr td.ginput_complex > *, .shop_table tbody tr .gform_wrapper .gform_fields td > .gfield, .gform_wrapper .gform_fields .shop_table tbody tr td > .gfield, .shop_table tbody tr .gform_wrapper td > .gform_footer, .gform_wrapper .shop_table tbody tr td > .gform_footer, .shop_table tfoot tr th > .form-row, .shop_table tfoot tr .gform_wrapper .gform_fields th.ginput_complex > *, .gform_wrapper .gform_fields .shop_table tfoot tr th.ginput_complex > *, .shop_table tfoot tr .gform_wrapper .gform_fields th > .gfield, .gform_wrapper .gform_fields .shop_table tfoot tr th > .gfield, .shop_table tfoot tr .gform_wrapper th > .gform_footer, .gform_wrapper .shop_table tfoot tr th > .gform_footer, .shop_table tfoot tr td > .form-row, .shop_table tfoot tr .gform_wrapper .gform_fields td.ginput_complex > *, .gform_wrapper .gform_fields .shop_table tfoot tr td.ginput_complex > *, .shop_table tfoot tr .gform_wrapper .gform_fields td > .gfield, .gform_wrapper .gform_fields .shop_table tfoot tr td > .gfield, .shop_table tfoot tr .gform_wrapper td > .gform_footer, .gform_wrapper .shop_table tfoot tr td > .gform_footer {
    padding-left: 0px !important; }
  .shop_table thead tr th > *:last-child, .shop_table thead tr td > *:last-child, .shop_table tbody tr th > *:last-child, .shop_table tbody tr td > *:last-child, .shop_table tfoot tr th > *:last-child, .shop_table tfoot tr td > *:last-child {
    margin-bottom: 0px; }
  .shop_table thead tr th:last-child, .shop_table thead tr td:last-child, .shop_table tbody tr th:last-child, .shop_table tbody tr td:last-child, .shop_table tfoot tr th:last-child, .shop_table tfoot tr td:last-child {
    text-align: right;
    padding-right: 0px; }

.shop_table thead tr:last-child th, .shop_table thead tr:last-child td, .shop_table tbody tr:last-child th, .shop_table tbody tr:last-child td, .shop_table tfoot tr:last-child th, .shop_table tfoot tr:last-child td {
  border-bottom: solid 1px rgba(126, 137, 150, 0.5); }

.shop_table tfoot tr.recurring-totals th:last-child {
  padding-top: 20px;
  text-align: left;
  border-bottom: solid 1px rgba(126, 137, 150, 0.5); }

.shop_table tfoot tr.order-total td:last-child, .shop_table tfoot tr.order-total td:last-child * {
  font-size: 15px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }
  .shop_table tfoot tr.order-total td:last-child .first-payment-date small, .shop_table tfoot tr.order-total td:last-child * .first-payment-date small {
    display: inline-block;
    font-size: 13px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.15;
    letter-spacing: normal;
    color: rgba(17, 19, 21, 0.87); }

.shop_table thead tr th {
  font-size: 13px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6); }

.shop_table tbody tr td.product-name {
  font-weight: bold; }

.shop_table tfoot tr th {
  font-size: 13px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6); }

.order_details tfoot tr:last-child th:first-child, .order_details tfoot tr:last-child td:first-child {
  border-bottom: none; }

.order_details thead tr th:first-child, .order_details thead tr td:first-child, .order_details tbody tr th:first-child, .order_details tbody tr td:first-child, .order_details tfoot tr th:first-child, .order_details tfoot tr td:first-child {
  width: 50%; }

.order_details thead tr th:nth-child(2), .order_details thead tr td:nth-child(2), .order_details tbody tr th:nth-child(2), .order_details tbody tr td:nth-child(2), .order_details tfoot tr th:nth-child(2), .order_details tfoot tr td:nth-child(2) {
  width: 20%; }

.woocommerce-checkout-review-order-table thead tr th:first-child, .woocommerce-checkout-review-order-table thead tr td:first-child, .woocommerce-checkout-review-order-table tbody tr th:first-child, .woocommerce-checkout-review-order-table tbody tr td:first-child {
  width: 50%; }

.woocommerce-checkout-review-order-table thead tr th:nth-child(2), .woocommerce-checkout-review-order-table thead tr td:nth-child(2), .woocommerce-checkout-review-order-table tbody tr th:nth-child(2), .woocommerce-checkout-review-order-table tbody tr td:nth-child(2) {
  width: 20%; }

.woocommerce-checkout-review-order-table tfoot tr:not(:first-child) th:first-child, .woocommerce-checkout-review-order-table tfoot tr:not(:first-child) td:first-child {
  width: 20%; }

.f-item-preview > .shop_table {
  max-width: 560px; }

.features-table thead tr th span {
  display: block; }

.features-table thead tr th .features-table_product-tier {
  font-size: 13px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal; }

.features-table thead tr th .features-table_product-name {
  font-size: 15px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }

.features-table thead tr th .features-table_product-by {
  font-size: 13px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.4); }

.features-table thead tr th:nth-child(2) .features-table_product-tier {
  color: #3db682; }

.features-table thead tr th:nth-child(3) .features-table_product-tier {
  color: #3996ff; }

.features-table tbody {
  background: transparent; }
  .features-table tbody tr td {
    padding-top: 0px;
    padding-bottom: 0px;
    line-height: 1.1em;
    border-top: solid 1px rgba(126, 137, 150, 0.5);
    padding-top: 12px;
    padding-bottom: 12px; }
    .features-table tbody tr td:first-child {
      padding-left: 0px; }
    .features-table tbody tr td:not(:first-child) {
      padding-left: 30px; }
    .features-table tbody tr td:nth-child(2) i:before {
      color: #3db682; }
    .features-table tbody tr td:nth-child(3) i:before {
      color: #3996ff; }
  .features-table tbody tr:last-child td {
    border-bottom: solid 1px rgba(126, 137, 150, 0.5); }

.product-card {
  padding: 30px;
  border-radius: 8px;
  box-shadow: 0 0 0 1px rgba(29, 31, 33, 0.15), 0 3px 7px 0 rgba(29, 31, 33, 0.2), 0 0 0 1px rgba(29, 31, 33, 0.15), 0 3px 7px 0 rgba(29, 31, 33, 0.2);
  background-color: #ffffff; }
  @media screen and (max-width: 63.9375em) {
    .product-card {
      padding: 30px 22px; } }
  @media screen and (max-width: 39.9375em) {
    .product-card {
      padding: 30px 15px; } }

.product-card_header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 12px; }
  .product-card_header h3 {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin: 0; }
    .product-card_header h3 span {
      display: block;
      font-size: 18px;
      font-weight: normal; }
  .product-card_header .price-display {
    margin-left: 15px;
    -ms-flex-item-align: center;
        align-self: center; }

.product-card_body {
  margin-bottom: 10px; }

.product-card_discount {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 73px;
  border-radius: 6px;
  background-color: rgba(141, 227, 181, 0.4);
  padding: 0 10px 0 20px;
  margin-bottom: 18px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .product-card_discount label, .product-card_discount .gforms-section.gray .gsection_title, .gforms-section.gray .product-card_discount .gsection_title {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    display: inline-block;
    margin: 0px;
    font-size: 13px;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    color: #1e9461; }

.product-card_description {
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: solid 1px rgba(126, 137, 150, 0.5);
  font-size: 13px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.15;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87); }
  .product-card_description p {
    line-height: 1.15;
    margin-bottom: 10px; }
  .product-card_description ul {
    margin-top: 10px;
    margin-bottom: 10px;
    list-style: none; }
    .product-card_description ul li {
      line-height: 1.2em;
      padding-bottom: 6px;
      position: relative; }
      .product-card_description ul li:before {
        /* use !important to prevent issues with browser extensions that change fonts */
        font-family: 'icomoon' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "";
        color: rgba(17, 19, 21, 0.4);
        font-size: 11px;
        position: absolute;
        left: -20px;
        top: 2px; }
  .product-card_description *:last-child {
    margin-bottom: 0px; }

.product-card_footer {
  text-align: right; }
  .product-card_footer .button {
    padding: 0 30px;
    margin-bottom: 0px; }

.f-item-preview > .product-card {
  width: 420px; }

.input-field, .form-row, .gform_wrapper .gform_fields .ginput_complex > *, .gform_wrapper .gform_fields .gfield, .gform_wrapper .gform_footer {
  margin-bottom: 14px; }
  .input-field .input-field-wrapper, .form-row .input-field-wrapper, .gform_wrapper .gform_fields .ginput_complex > * .input-field-wrapper, .gform_wrapper .gform_fields .gfield .input-field-wrapper, .gform_wrapper .gform_footer .input-field-wrapper, .form-row .woocommerce-input-wrapper, .gform_wrapper .gform_fields .ginput_complex > * .woocommerce-input-wrapper, .gform_wrapper .gform_fields .gfield .woocommerce-input-wrapper, .gform_wrapper .gform_footer .woocommerce-input-wrapper {
    display: block;
    width: 100%; }
  .input-field:not(.options-group) .radio-checkbox, .form-row:not(.options-group) .radio-checkbox, .gform_wrapper .gform_fields .ginput_complex > :not(.options-group) .radio-checkbox, .gform_wrapper .gform_fields .gfield:not(.options-group) .radio-checkbox, .gform_wrapper .gform_footer:not(.options-group) .radio-checkbox {
    height: 32px;
    line-height: 32px; }

.f-item-preview > .input-field, .f-item-preview > .form-row, .gform_wrapper .gform_fields .ginput_complex.f-item-preview > *, .gform_wrapper .gform_fields .f-item-preview > .gfield, .gform_wrapper .f-item-preview > .gform_footer {
  width: 260px; }

#site-navigation {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  position: relative; }
  #site-navigation .main-navigation-wrapper {
    margin-right: 10px; }
  #site-navigation .header-navigation__row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin-bottom: 10px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    #site-navigation .header-navigation__row:last-child {
      margin-bottom: 0px; }
    #site-navigation .header-navigation__row > * {
      margin-top: 0px;
      margin-bottom: 0px; }
  #site-navigation .menu-toggle, #site-navigation .menu-close {
    margin: 0px; }
  @media screen and (min-width: 64em) {
    #site-navigation .menu-toggle, #site-navigation .menu-close {
      display: none; } }
  @media screen and (max-width: 63.9375em) {
    #site-navigation {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-pack: end;
          -ms-flex-pack: end;
              justify-content: flex-end; }
      #site-navigation a.button {
        margin: 0px 14px 0 14px;
        -ms-flex-item-align: center;
            align-self: center;
        white-space: nowrap; }
      #site-navigation .header-small-menu {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        padding-top: 20px; }
        #site-navigation .header-small-menu li a {
          padding: 8px 0px;
          font-size: 14px;
          font-weight: normal;
          font-style: normal;
          font-stretch: normal;
          line-height: normal;
          letter-spacing: normal;
          color: rgba(17, 19, 21, 0.6);
          transition: all 0.3s; }
        #site-navigation .header-small-menu li.current-menu-item a, #site-navigation .header-small-menu li:hover a {
          color: #0062d1; }
      #site-navigation .menu-close {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        right: 0px;
        top: 0px;
        width: 40px;
        height: 40px;
        position: absolute; }
        #site-navigation .menu-close:before {
          /* use !important to prevent issues with browser extensions that change fonts */
          font-family: 'icomoon' !important;
          speak: none;
          font-style: normal;
          font-weight: normal;
          font-variant: normal;
          text-transform: none;
          line-height: 1;
          /* Better Font Rendering =========== */
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
          content: "";
          color: rgba(17, 19, 21, 0.4);
          width: 16px;
          height: 16px;
          font-size: 16px; }
        #site-navigation .menu-close:focus, #site-navigation .menu-close:active {
          outline: none; }
      #site-navigation .header-search {
        margin: 0px;
        margin-top: 15px; }
        #site-navigation .header-search .header-search__close {
          display: none; }
      #site-navigation .main-navigation-wrapper {
        margin-right: 0px; }
      #site-navigation .menu-toggle {
        display: inline-block;
        width: 40px;
        height: 40px;
        border-radius: 4px;
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
        position: relative; }
        #site-navigation .menu-toggle .menu-toggle__hamburger {
          position: absolute;
          width: 22px;
          height: 2px;
          background-color: #ffffff;
          top: 50%;
          margin-top: -1px;
          left: 50%;
          margin-left: -11px; }
          #site-navigation .menu-toggle .menu-toggle__hamburger:before, #site-navigation .menu-toggle .menu-toggle__hamburger:after {
            content: '';
            position: absolute;
            display: block;
            width: 22px;
            height: 2px;
            background-color: #ffffff; }
          #site-navigation .menu-toggle .menu-toggle__hamburger:before {
            top: -7px; }
          #site-navigation .menu-toggle .menu-toggle__hamburger:after {
            bottom: -7px; }
        #site-navigation .menu-toggle:focus, #site-navigation .menu-toggle:active {
          outline: none; }
      #site-navigation .site-navigation__menu-wrapper {
        height: 0px;
        position: absolute;
        left: 0px;
        width: 100%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        transition: 0.5s;
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: flex-start;
        -webkit-box-align: end;
            -ms-flex-align: end;
                align-items: flex-end;
        z-index: 100; }
      #site-navigation .site-navigation__menu {
        border-radius: 4px;
        box-shadow: 0 0 0 1px rgba(29, 31, 33, 0), 0 3px 22px 0 rgba(29, 31, 33, 0);
        background-color: #ffffff;
        padding: 0px 30px 0px 30px;
        transition: padding 0.5s, box-shadow 0.5s;
        max-width: 300px;
        width: 80vw;
        overflow: hidden;
        position: relative; }
      #site-navigation .header-navigation__row {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        margin-top: 10px; }
        #site-navigation .header-navigation__row .button {
          margin-top: 10px; }
        #site-navigation .header-navigation__row:last-child {
          margin-top: 0px; }
        #site-navigation .header-navigation__row > *, #site-navigation .header-navigation__row .menu {
          margin-right: 0px;
          margin-left: 0px;
          width: 100%; }
      #site-navigation.toggled .site-navigation__menu-wrapper {
        height: 100vh; }
      #site-navigation.toggled .site-navigation__menu {
        box-shadow: 0 0 0 1px rgba(29, 31, 33, 0.15), 0 3px 22px 0 rgba(29, 31, 33, 0.3);
        padding: 25px 30px 15px 30px;
        height: auto;
        min-height: 10px;
        -ms-flex-negative: 1;
            flex-shrink: 1; } }

div[id*=site-navigation] .f-item-preview {
  background: #1e4375;
  padding: 30px; }

@media screen and (min-width: 64em) {
  .main-menu .menu-item {
    position: relative; }
    .main-menu .menu-item, .main-menu .menu-item a {
      font-family: proxima-nova,sans-serif;
      font-size: 15px;
      font-weight: 600;
      font-style: normal;
      font-stretch: normal;
      line-height: 32px;
      letter-spacing: normal;
      text-align: center;
      color: white;
      padding-top: 0px;
      padding-bottom: 0px;
      transition: all 0.2s; }
    .main-menu .menu-item a:hover {
      opacity: 0.8s; }
    .main-menu .menu-item:hover .sub-menu, .main-menu .menu-item.focus .sub-menu {
      display: block !important; }
  .main-menu .menu-item-has-children > a:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    font-size: 4px;
    color: rgba(255, 255, 255, 0.6);
    vertical-align: middle;
    margin-left: 4px; }
  .main-menu .menu-item-has-children:before {
    content: '';
    position: absolute;
    bottom: -10px;
    height: 10px;
    width: 100%;
    left: 0px; }
  .main-menu .current-menu-item, .main-menu .current-menu-item > a, .main-menu .current-menu-parent, .main-menu .current-menu-parent > a {
    color: white; }
  .main-menu .sub-menu {
    display: none !important;
    position: absolute;
    z-index: 10;
    border-radius: 8px;
    box-shadow: 0 0 0 1px rgba(29, 31, 33, 0.15), 0 3px 7px 0 rgba(29, 31, 33, 0.2);
    background-color: #ffffff;
    padding: 10px 0px;
    margin: 0px;
    list-style: none;
    min-width: 180px;
    max-width: 300px;
    padding: 14px 10px;
    left: -6px;
    top: calc( 100% + 4px); }
    .main-menu .sub-menu:before {
      content: '';
      border: 8px solid transparent;
      border-bottom-color: white;
      position: absolute;
      top: -16px;
      left: 23px;
      box-sizing: content-box;
      display: block;
      z-index: 3; }
    .main-menu .sub-menu:after {
      content: '';
      border: 9px solid transparent;
      border-bottom-color: rgba(29, 31, 33, 0.2);
      position: absolute;
      top: -18px;
      left: 22px;
      box-sizing: content-box;
      display: block;
      z-index: 2; }
    .main-menu .sub-menu .menu-item > a {
      text-align: left;
      font-size: 15px;
      font-weight: 600;
      font-style: normal;
      font-stretch: normal;
      line-height: 1.33;
      letter-spacing: 0.3px;
      color: rgba(17, 19, 21, 0.87);
      padding: 6px 10px; }
      .main-menu .sub-menu .menu-item > a span {
        display: block;
        font-size: 13px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        line-height: 1.31;
        letter-spacing: 0.2px;
        color: rgba(17, 19, 21, 0.6); }
    .main-menu .sub-menu .menu-item.current-menu-item > a, .main-menu .sub-menu .menu-item.current-menu-parent > a, .main-menu .sub-menu .menu-item:hover > a {
      color: #0062d1; }
  .main-menu .sub-menu--descriptions {
    min-width: 180px;
    max-width: 300px;
    padding: 7px;
    left: -6px; }
    .main-menu .sub-menu--descriptions .menu-item a {
      padding: 12px 14px;
      padding-right: 20px;
      border-radius: 1px; }
    .main-menu .sub-menu--descriptions .menu-item, .main-menu .sub-menu--descriptions .menu-item a {
      text-align: left;
      color: rgba(17, 19, 21, 0.87); }
    .main-menu .sub-menu--descriptions .menu-item.current-menu-item, .main-menu .sub-menu--descriptions .menu-item.current-menu-item > a, .main-menu .sub-menu--descriptions .menu-item.current-menu-parent, .main-menu .sub-menu--descriptions .menu-item.current-menu-parent > a, .main-menu .sub-menu--descriptions .menu-item:hover, .main-menu .sub-menu--descriptions .menu-item:hover > a {
      color: #0062d1;
      background-color: #deeeff; }
  .main-menu .menu-item.menu-item__description a {
    padding: 12px 14px;
    padding-right: 20px;
    border-radius: 1px; }
  .main-menu .menu-item.menu-item__description, .main-menu .menu-item.menu-item__description a {
    text-align: left;
    color: rgba(17, 19, 21, 0.87); }
  .main-menu .menu-item.menu-item__description.current-menu-item, .main-menu .menu-item.menu-item__description.current-menu-item > a, .main-menu .menu-item.menu-item__description.current-menu-parent, .main-menu .menu-item.menu-item__description.current-menu-parent > a, .main-menu .menu-item.menu-item__description:hover, .main-menu .menu-item.menu-item__description:hover > a {
    color: #0062d1;
    background-color: #deeeff; } }

@media screen and (max-width: 63.9375em) {
  .main-menu {
    padding: 0;
    margin: 0;
    list-style: none;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    [data-whatinput='mouse'] .main-menu li {
      outline: 0; }
    .main-menu a,
    .main-menu .button {
      line-height: 1;
      text-decoration: none;
      white-space: nowrap;
      display: block;
      padding: 0.7rem 1rem; }
    .main-menu input,
    .main-menu select,
    .main-menu a,
    .main-menu button {
      margin-bottom: 0; }
    .main-menu input {
      display: inline-block; }
    .main-menu > .menu-item {
      position: relative;
      border-bottom: 1px solid #DFE1E5; }
      .main-menu > .menu-item > a {
        font-size: 15px;
        font-weight: 600;
        font-style: normal;
        font-stretch: normal;
        line-height: normal;
        letter-spacing: normal;
        color: #1d1f21;
        padding: 11px 0px;
        transition: all 0.2s; }
        .main-menu > .menu-item > a:focus {
          outline: none; }
        .main-menu > .menu-item > a.current-menu-item, .main-menu > .menu-item > a.current-menu-parent, .main-menu > .menu-item > a:hover {
          color: #0062d1; }
    .main-menu .menu-item-has-children > a {
      position: relative; }
      .main-menu .menu-item-has-children > a:after {
        content: '';
        display: inline-block;
        width: 11px;
        height: 2px;
        position: absolute;
        right: 7px;
        top: 50%;
        margin-top: -1px;
        background: #499eff;
        -webkit-transform: rotateZ(0deg);
                transform: rotateZ(0deg);
        transition: -webkit-transform 0.3s;
        transition: transform 0.3s; }
      .main-menu .menu-item-has-children > a:before {
        content: '';
        display: inline-block;
        width: 11px;
        height: 2px;
        position: absolute;
        right: 7px;
        top: 50%;
        margin-top: -1px;
        background: #499eff;
        -webkit-transform: rotateZ(-90deg);
                transform: rotateZ(-90deg);
        transition: -webkit-transform 0.3s;
        transition: transform 0.3s; }
    .main-menu .menu-item-has-children.open > a:after {
      -webkit-transform: rotateZ(0deg);
              transform: rotateZ(0deg); }
    .main-menu .menu-item-has-children.open > a:before {
      -webkit-transform: rotateZ(0deg);
              transform: rotateZ(0deg); }
    .main-menu .sub-menu {
      list-style: none;
      margin: 0px;
      display: none;
      position: relative;
      top: -5px;
      margin-bottom: 2px; }
      .main-menu .sub-menu > .menu-item {
        position: relative; }
        .main-menu .sub-menu > .menu-item > a {
          font-size: 15px;
          font-weight: normal;
          font-style: normal;
          font-stretch: normal;
          line-height: normal;
          letter-spacing: normal;
          color: rgba(17, 19, 21, 0.87);
          padding: 8px 0px; }
          .main-menu .sub-menu > .menu-item > a span {
            display: none; }
          .main-menu .sub-menu > .menu-item > a:focus {
            outline: none; }
          .main-menu .sub-menu > .menu-item > a.current-menu-item, .main-menu .sub-menu > .menu-item > a.current-menu-parent, .main-menu .sub-menu > .menu-item > a:hover {
            color: #0062d1; } }

div[id*=nav-menu] .f-item-preview {
  padding: 30px; }
  @media screen and (min-width: 64em) {
    div[id*=nav-menu] .f-item-preview {
      background: #1e4375; } }
  @media screen and (max-width: 63.9375em) {
    div[id*=nav-menu] .f-item-preview .main-menu {
      width: 240px; } }

.tabs {
  display: inline-block;
  border: none;
  border-bottom: 1px solid rgba(151, 151, 151, 0.32); }

.tabs__tab {
  display: inline-block;
  padding: 0 10px; }
  .tabs__tab:first-child {
    padding-left: 0px; }
  .tabs__tab:last-child {
    padding-right: 0px; }
  .tabs__tab a {
    border-bottom: 3px solid transparent;
    display: inline-block;
    position: relative;
    top: 2px;
    padding: 10px 0;
    font-size: 13px;
    font-weight: 600;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    text-align: center;
    text-decoration: none;
    color: rgba(17, 19, 21, 0.4);
    transition: all 0.3s; }
    .tabs__tab a:focus {
      outline: none; }
  .tabs__tab.active a {
    border-bottom: 3px solid #5094e0; }
  .tabs__tab.active a, .tabs__tab a:hover {
    color: #217ce3; }

.post-item {
  padding: 30px 0; }

.post-item__category {
  font-size: 13px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  text-transform: uppercase;
  margin-bottom: 6px; }

.post-item__title, .post-item__title a {
  font-size: 19px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.16;
  letter-spacing: normal;
  color: #0062d1;
  text-decoration: underline; }
  .post-item__title:hover, .post-item__title a:hover {
    text-decoration: none; }

.post-item__content, .post-item__content p {
  color: rgba(17, 19, 21, 0.6); }

.post-item__content > *:last-child {
  margin-bottom: 0px; }

.f-item-preview > .post-item {
  width: 800px; }

@media screen and (max-width: 39.9375em) {
  .mobile-dropdown {
    border-bottom: 1px solid #DFE1E5; } }

.mobile-dropdown__trigger {
  cursor: pointer; }
  .mobile-dropdown__trigger span {
    font-size: 15px;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    color: #1d1f21;
    position: relative; }
    .mobile-dropdown__trigger span:before, .mobile-dropdown__trigger span:after {
      content: '';
      position: absolute;
      background: #3996ff;
      width: 7px;
      height: 2px;
      top: 50%;
      transition: all 0.3s; }
    .mobile-dropdown__trigger span:before {
      right: -15px;
      -webkit-transform-origin: center right;
              transform-origin: center right;
      -webkit-transform: rotateZ(45deg) translateX(1px);
              transform: rotateZ(45deg) translateX(1px); }
    .mobile-dropdown__trigger span:after {
      right: -22px;
      -webkit-transform-origin: center left;
              transform-origin: center left;
      -webkit-transform: rotateZ(-45deg) translateX(-1px);
              transform: rotateZ(-45deg) translateX(-1px); }
  @media screen and (max-width: 39.9375em) {
    .mobile-dropdown__trigger {
      padding: 15px; } }
  @media screen and (min-width: 40em) {
    .mobile-dropdown__trigger {
      display: none; } }

.mobile-dropdown.open .mobile-dropdown__trigger span:before {
  -webkit-transform: rotateZ(0deg) translateX(2px);
          transform: rotateZ(0deg) translateX(2px); }

.mobile-dropdown.open .mobile-dropdown__trigger span:after {
  -webkit-transform: rotateZ(0deg) translateX(-2px);
          transform: rotateZ(0deg) translateX(-2px); }

@media screen and (max-width: 39.9375em) {
  .mobile-dropdown__menu {
    padding: 0 35px 20px 35px; } }

@media screen and (min-width: 40em) {
  .mobile-dropdown__menu {
    display: block !important; } }

.pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .pagination .button, .pagination input {
    margin: 0px; }

.pagination__prev {
  margin-right: 20px; }

.pagination__current-page {
  margin-right: 8px; }
  .pagination__current-page input {
    width: 48px;
    text-align: center;
    padding-right: 0px;
    padding-left: 0px; }

.pagination__total-page {
  margin-right: 20px;
  line-height: 32px;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  letter-spacing: normal;
  text-align: center;
  color: rgba(17, 19, 21, 0.6); }

.team-item {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }

.team-item__photo-column {
  margin-right: 60px; }
  @media screen and (max-width: 63.9375em) {
    .team-item__photo-column {
      -ms-flex-negative: 1;
          flex-shrink: 1;
      margin-right: 20px; } }
  @media screen and (max-width: 39.9375em) {
    .team-item__photo-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0;
      padding-left: 0;
      max-width: 100%;
      margin-bottom: 30px; } }

.team-item__photo {
  width: 190px;
  padding-top: 240px;
  border-radius: 5px;
  background-color: #d8d8d8;
  background-size: cover;
  background-position: center; }

.team-item__info-column {
  position: relative;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }
  .team-item__info-column:before {
    content: "";
    display: inline-block;
    position: absolute;
    top: 0px;
    width: 48px;
    height: 3px;
    background-color: #5094e0; }
  @media screen and (max-width: 39.9375em) {
    .team-item__info-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0;
      padding-left: 0;
      max-width: 100%; } }

.team-item__name {
  font-size: 21px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  margin-top: 16px; }

.team-item__position {
  font-size: 15px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.53;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6);
  margin-bottom: 13px; }

.team-item__description, .team-item__description p {
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.4;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6); }

.f-item-preview > .team-item {
  width: 1050px; }

.buttons-group {
  font-size: 0px;
  position: relative;
  left: 1px; }
  @media screen and (max-width: 39.9375em) {
    .buttons-group {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; } }
  .buttons-group .button {
    margin: 0px;
    margin-left: -1px;
    padding-left: 20px;
    padding-right: 20px; }
    @media screen and (max-width: 39.9375em) {
      .buttons-group .button:not(:first-child) {
        margin-top: 10px; } }
    @media screen and (min-width: 40em) {
      .buttons-group .button:not(:first-child) {
        border-top-left-radius: 0px;
        border-bottom-left-radius: 0px; }
      .buttons-group .button:not(:last-child) {
        border-top-right-radius: 0px;
        border-bottom-right-radius: 0px; } }

div[id*=buttons-group] .f-item-preview {
  background: #1e4375;
  padding: 30px; }

.contributors {
  padding-top: 30px;
  padding-bottom: 30px; }

.contributors__column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
  max-width: 33.33333%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 33.33333%; }
  @media print, screen and (min-width: 40em) {
    .contributors__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .contributors__column ul {
    list-style: none;
    margin-left: 30px; }
    .contributors__column ul li {
      padding-bottom: 7px;
      font-size: 15px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      line-height: 1.33;
      letter-spacing: normal;
      color: rgba(17, 19, 21, 0.6); }
  @media screen and (max-width: 63.9375em) {
    .contributors__column ul {
      margin-left: 0px; } }
  @media screen and (max-width: 39.9375em) {
    .contributors__column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .contributors__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
      .contributors__column ul {
        margin-bottom: 0px; } }

.board-item__name {
  font-size: 21px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  margin-bottom: 8px; }

.board-item__content {
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.33;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6); }

.f-item-preview > .board-item {
  width: 800px; }

.core-highlights-item__content {
  color: rgba(17, 19, 21, 0.6); }

.f-item-preview > .core-highlights-item {
  width: 510px; }

.footer-menu {
  width: 100%; }
  @media screen and (min-width: 40em) {
    .footer-menu .nav-menu {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; } }
  @media screen and (min-width: 40em) {
    .footer-menu .nav-menu > .menu-item {
      -webkit-box-flex: 1;
          -ms-flex: 1;
              flex: 1;
      max-width: 250px; } }
  @media screen and (max-width: 39.9375em) {
    .footer-menu .nav-menu > .menu-item {
      width: 50%;
      margin-bottom: 30px; } }
  .footer-menu .nav-menu > .menu-item > a {
    font-size: 13px;
    font-weight: 600;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    color: rgba(255, 255, 255, 0.6);
    text-transform: uppercase;
    padding-bottom: 8px;
    padding-top: 8px; }
    .footer-menu .nav-menu > .menu-item > a:empty:after {
      content: '.';
      font-size: 0px;
      visibility: hidden; }
  .footer-menu .sub-menu {
    margin: 0px;
    list-style: none; }
    .footer-menu .sub-menu > .menu-item > a {
      font-size: 15px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      line-height: normal;
      letter-spacing: normal;
      color: #ffffff;
      transition: all 0.2s;
      padding-bottom: 4px;
      padding-top: 4px; }
      .footer-menu .sub-menu > .menu-item > a:hover {
        text-decoration: underline; }

*[id*=footer-menu] .f-item-preview {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  border-radius: 9px;
  background-color: #383f49;
  padding-top: 20px;
  padding-bottom: 20px; }

.owl-carousel {
  position: relative; }

.owl-stage-outer {
  overflow: hidden; }

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

.owl-dots {
  display: none; }

.owl-nav .owl-prev, .owl-nav .owl-next {
  position: absolute;
  top: 45%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  transition: opacity 0.3s; }
  .owl-nav .owl-prev:focus, .owl-nav .owl-next:focus {
    outline: none; }
  .owl-nav .owl-prev.disabled, .owl-nav .owl-next.disabled {
    opacity: 0.5; }
  .owl-nav .owl-prev span, .owl-nav .owl-next span {
    transition: left 0.2s, right 0.2s;
    position: relative;
    vertical-align: top;
    display: inline-block;
    font-size: 0px;
    height: 55px;
    width: 30px;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center; }

.owl-nav .owl-prev {
  left: -80px; }
  .owl-nav .owl-prev:not(.disabled):hover span {
    left: -5px; }
  .owl-nav .owl-prev span {
    left: 0px;
    background-image: url("../images/icons/carousel-left-arrow.svg"); }

.owl-nav .owl-next {
  right: -80px; }
  .owl-nav .owl-next:not(.disabled):hover span {
    right: -5px; }
  .owl-nav .owl-next span {
    right: 0px;
    background-image: url("../images/icons/carousel-right-arrow.svg"); }

@media screen and (max-width: 74.9375em) {
  .owl-nav .owl-prev span, .owl-nav .owl-next span {
    height: 45px;
    width: 30px; }
  .owl-nav .owl-prev {
    left: -35px; }
  .owl-nav .owl-next {
    right: -35px; } }

.text-image__text-column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 41.66667%;
          flex: 0 0 41.66667%;
  max-width: 41.66667%;
  padding-right: 1.875rem;
  padding-left: 1.875rem;
  max-width: 41.66667%;
  padding-top: 30px; }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) {
    .text-image__text-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 50%; } }
  @media screen and (max-width: 39.9375em) {
    .text-image__text-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .text-image__text-column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.text-image__title {
  position: relative;
  font-size: 24px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.13;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  margin-top: 30px;
  margin-bottom: 10px; }
  .text-image__title:before {
    content: '';
    position: absolute;
    top: -23px;
    width: 48px;
    height: 3px;
    background-color: #5094e0; }

.text-image__content {
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.33;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6); }

.text-image__image-column {
  padding-top: 6px;
  padding-bottom: 14px;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 58.33333%;
          flex: 0 0 58.33333%;
  max-width: 58.33333%;
  padding-right: 1.875rem;
  padding-left: 1.875rem;
  max-width: 58.33333%; }
  .text-image__image-column img {
    border-radius: 5px;
    box-shadow: 0 5px 9px 0 rgba(17, 19, 21, 0.16), 0 0 0 1px rgba(17, 19, 21, 0.09); }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) {
    .text-image__image-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 50%;
      margin-top: calc( calc( 1024px - 99vw ) / 6); } }
  @media screen and (max-width: 39.9375em) {
    .text-image__image-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%;
      margin-top: 30px; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .text-image__image-column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.step-column {
  border-radius: 5px;
  background-color: #ffffff;
  padding-bottom: 0px; }

.step-column__header {
  border-radius: 5px 5px 0 0;
  border: 1px solid #b8c0ca;
  background-color: #1e4375;
  position: relative;
  margin: -1px; }
  .step-column__header:before {
    content: '';
    top: 0px;
    position: absolute;
    border: 7px solid transparent;
    border-left-color: white;
    z-index: 5;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    display: block;
    width: 2px;
    height: 2px;
    box-sizing: content-box;
    left: -1px;
    z-index: 7; }
  .step-column__header:after {
    content: '';
    top: 0px;
    position: absolute;
    border: 7px solid transparent;
    border-left-color: #b8c0ca;
    z-index: 5;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    display: block;
    width: 2px;
    height: 2px;
    box-sizing: content-box;
    left: 0px; }

.step-column__header-inner {
  border-radius: 5px 5px 0 0;
  position: relative;
  height: 75px;
  padding: 0 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .step-column__header-inner:before {
    content: '';
    top: 0px;
    position: absolute;
    border: 8px solid transparent;
    border-left-color: #1e4375;
    z-index: 5;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    display: block;
    width: 2px;
    height: 2px;
    box-sizing: content-box;
    z-index: 7;
    right: -18px; }
  .step-column__header-inner:after {
    content: '';
    top: 0px;
    position: absolute;
    border: 8px solid transparent;
    border-left-color: #b8c0ca;
    z-index: 5;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    display: block;
    width: 2px;
    height: 2px;
    box-sizing: content-box;
    right: -19px; }

.step-column__title {
  font-family: proxima-nova,sans-serif;
  font-size: 15px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: 1;
  letter-spacing: normal;
  color: rgba(255, 255, 255, 0.87);
  text-transform: uppercase;
  margin: 0px; }

.step-column__body {
  box-shadow: 0 0 0 1px rgba(29, 31, 33, 0.15), 0 3px 7px 0 rgba(29, 31, 33, 0.2);
  border-radius: 0 0 5px 5px; }

.step-column__content {
  display: inline-block;
  padding: 17px 20px; }
  .step-column__content > *:last-child {
    margin-bottom: 0px; }

.step-column__footer {
  display: inline-block;
  padding: 17px 20px;
  background-color: rgba(190, 190, 190, 0.22);
  border-radius: 0 0 5px 5px; }
  .step-column__footer > *:last-child {
    margin-bottom: 0px; }
  .step-column__footer ul {
    list-style: none; }
    .step-column__footer ul li {
      position: relative; }
      .step-column__footer ul li:before {
        /* use !important to prevent issues with browser extensions that change fonts */
        font-family: 'icomoon' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "";
        color: #3996ff;
        font-size: 12px;
        position: absolute;
        left: -18px;
        top: 0px; }

.step-column__content,
.step-column__footer {
  width: 100%; }
  .step-column__content p, .step-column__content li,
  .step-column__footer p,
  .step-column__footer li {
    font-size: 13px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.15;
    letter-spacing: normal;
    color: rgba(17, 19, 21, 0.6);
    margin-bottom: 10px; }
  .step-column__content ul,
  .step-column__footer ul {
    margin-left: 18px; }
  .step-column__content strong,
  .step-column__footer strong {
    color: rgba(17, 19, 21, 0.87); }

.f-item-preview > .step-column {
  width: 202px; }

.sidebar-menu, .woocommerce-MyAccount-navigation ul {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  [data-whatinput='mouse'] .sidebar-menu li, [data-whatinput='mouse'] .woocommerce-MyAccount-navigation ul li {
    outline: 0; }
  .sidebar-menu a,
  .sidebar-menu .button, .woocommerce-MyAccount-navigation ul a,
  .woocommerce-MyAccount-navigation ul .button {
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    display: block;
    padding: 0.7rem 1rem; }
  .sidebar-menu input,
  .sidebar-menu select,
  .sidebar-menu a,
  .sidebar-menu button, .woocommerce-MyAccount-navigation ul input,
  .woocommerce-MyAccount-navigation ul select,
  .woocommerce-MyAccount-navigation ul a,
  .woocommerce-MyAccount-navigation ul button {
    margin-bottom: 0; }
  .sidebar-menu input, .woocommerce-MyAccount-navigation ul input {
    display: inline-block; }
  .sidebar-menu .sub-menu, .woocommerce-MyAccount-navigation ul .sub-menu {
    list-style: none;
    margin: 0px;
    padding-top: 3px; }
  .sidebar-menu .woocommerce-MyAccount-navigation-link.menu-item-has-children:after, .sidebar-menu .menu-item.menu-item-has-children:after, .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link.menu-item-has-children:after, .woocommerce-MyAccount-navigation ul .menu-item.menu-item-has-children:after {
    content: '';
    margin: 13px 0px;
    display: block;
    width: 50px;
    height: 1px;
    border-bottom: solid 1px rgba(126, 137, 150, 0.5); }
  .sidebar-menu .woocommerce-MyAccount-navigation-link:not(.menu-item-has-children) + .menu-item-has-children:before, .sidebar-menu .menu-item:not(.menu-item-has-children) + .menu-item-has-children:before, .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link:not(.menu-item-has-children) + .menu-item-has-children:before, .woocommerce-MyAccount-navigation ul .menu-item:not(.menu-item-has-children) + .menu-item-has-children:before {
    content: '';
    margin: 13px 0px;
    display: block;
    width: 50px;
    height: 1px;
    border-bottom: solid 1px rgba(126, 137, 150, 0.5); }
  .sidebar-menu .woocommerce-MyAccount-navigation-link > a, .sidebar-menu .menu-item > a, .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link > a, .woocommerce-MyAccount-navigation ul .menu-item > a {
    padding: 6px 0px;
    text-decoration: none;
    font-size: 15px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    color: rgba(17, 19, 21, 0.87);
    white-space: normal;
    transition: all 0.3s; }
  .sidebar-menu .woocommerce-MyAccount-navigation-link.menu-item-has-children > a, .sidebar-menu .menu-item.menu-item-has-children > a, .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link.menu-item-has-children > a, .woocommerce-MyAccount-navigation ul .menu-item.menu-item-has-children > a {
    font-weight: bold;
    color: rgba(17, 19, 21, 0.87) !important; }
    .sidebar-menu .woocommerce-MyAccount-navigation-link.menu-item-has-children > a:before, .sidebar-menu .menu-item.menu-item-has-children > a:before, .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link.menu-item-has-children > a:before, .woocommerce-MyAccount-navigation ul .menu-item.menu-item-has-children > a:before {
      content: '';
      display: inline-block;
      width: 10px;
      height: 10px;
      background: url("../images/caret.svg");
      background-size: contain;
      background-repeat: no-repeat;
      vertical-align: middle;
      margin-right: 6px;
      transition: all 0.2s;
      -webkit-transform: rotate(-90deg) translateX(2px);
              transform: rotate(-90deg) translateX(2px); }
  .sidebar-menu .woocommerce-MyAccount-navigation-link.menu-item-has-children.is-open > a:before, .sidebar-menu .menu-item.menu-item-has-children.is-open > a:before, .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link.menu-item-has-children.is-open > a:before, .woocommerce-MyAccount-navigation ul .menu-item.menu-item-has-children.is-open > a:before {
    -webkit-transform: rotate(0deg) translateX(0px);
            transform: rotate(0deg) translateX(0px); }
  .sidebar-menu .woocommerce-MyAccount-navigation-link:hover > a, .sidebar-menu .menu-item:hover > a, .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link:hover > a, .woocommerce-MyAccount-navigation ul .menu-item:hover > a {
    color: #0062d1; }
  .sidebar-menu .woocommerce-MyAccount-navigation-link.is-active > a, .sidebar-menu .woocommerce-MyAccount-navigation-link.current-menu-item > a, .sidebar-menu .menu-item.is-active > a, .sidebar-menu .menu-item.current-menu-item > a, .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link.is-active > a, .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link.current-menu-item > a, .woocommerce-MyAccount-navigation ul .menu-item.is-active > a, .woocommerce-MyAccount-navigation ul .menu-item.current-menu-item > a {
    font-weight: bold;
    color: #0062d1; }

.f-item-preview > .sidebar-menu, .f-item-preview > .woocommerce-MyAccount-navigation {
  margin: 20px; }
  .f-item-preview > .sidebar-menu:not(:first-child), .f-item-preview > .woocommerce-MyAccount-navigation:not(:first-child) {
    margin-top: 40px; }

.header-user-menu {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin-right: 20px; }
  @media screen and (min-width: 64em) {
    .header-user-menu li:first-child .sub-menu {
      left: -20px !important; }
    .header-user-menu li:first-child a {
      padding-left: 0px; }
    .header-user-menu li:last-child a {
      padding-right: 0px; } }

div[id*=header-user-menu] .f-item-preview {
  padding: 30px; }
  @media screen and (min-width: 64em) {
    div[id*=header-user-menu] .f-item-preview {
      background: #1e4375; } }
  @media screen and (max-width: 63.9375em) {
    div[id*=header-user-menu] .f-item-preview .main-menu {
      width: 240px; } }

.header-search {
  position: relative;
  width: 90px;
  transition: width 0.5s;
  margin-right: 20px; }
  .header-search input {
    border-radius: 16px;
    transition: all 0.5s !important;
    padding-left: 32px;
    padding-right: 10px; }
  .header-search:not(.open) input {
    background: transparent;
    box-shadow: 0 0 0 0px rgba(0, 98, 209, 0), inset 0 0 0 0px rgba(126, 137, 150, 0.5), inset 0 0px 0px 0 rgba(29, 31, 33, 0.2); }
    .header-search:not(.open) input::-webkit-input-placeholder {
      color: white !important;
      font-weight: 600; }
    .header-search:not(.open) input::-moz-placeholder {
      color: white !important;
      font-weight: 600; }
    .header-search:not(.open) input:-ms-input-placeholder {
      color: white !important;
      font-weight: 600; }
    .header-search:not(.open) input::placeholder {
      color: white !important;
      font-weight: 600; }
  .header-search.open {
    width: 260px; }
    .header-search.open .header-search__close {
      cursor: pointer;
      opacity: 1; }
    .header-search.open .header-search__icon:before {
      color: #A0A1A1; }

.header-search__icon {
  position: absolute;
  top: 50%;
  left: 10px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%); }
  .header-search__icon:before {
    transition: all 0.5s;
    color: #A5B4C8; }

.header-search__close {
  position: absolute;
  top: 50%;
  right: 13px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  opacity: 0;
  transition: all 0.5s;
  font-size: 12px; }
  .header-search__close:before {
    font-size: 12px;
    color: #707172; }

div[id*=header-search] .f-item-preview {
  background: #1e4375;
  padding: 30px; }

.software-tier__content-column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
  max-width: 33.33333%;
  padding-right: 0;
  padding-left: 0;
  max-width: 33.33333%; }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) {
    .software-tier__content-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 41.66667%;
              flex: 0 0 41.66667%;
      max-width: 41.66667%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 41.66667%; } }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) and (min-width: 40em) {
    .software-tier__content-column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
    .software-tier__content-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0;
      padding-left: 0;
      max-width: 100%; } }

.software-tier__image-column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 66.66667%;
          flex: 0 0 66.66667%;
  max-width: 66.66667%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 66.66667%;
  padding-right: 0px !important;
  padding-left: 40px !important; }
  .software-tier__image-column img {
    border-radius: 5px;
    box-shadow: 0 5px 9px 0 rgba(17, 19, 21, 0.16), 0 0 0 1px rgba(17, 19, 21, 0.09);
    background-color: #2d2d30; }
  @media print, screen and (min-width: 40em) {
    .software-tier__image-column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) {
    .software-tier__image-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 58.33333%;
              flex: 0 0 58.33333%;
      max-width: 58.33333%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 58.33333%; } }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) and (min-width: 40em) {
    .software-tier__image-column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
    .software-tier__image-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0;
      padding-left: 0;
      max-width: 100%;
      margin-top: 30px;
      padding-right: 0px !important;
      padding-left: 0px !important; } }

.software-tier__tier {
  font-size: 13px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.4); }

.software-tier__title {
  font-size: 24px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.13;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  margin-bottom: 2px; }

.software-tier.special .software-tier__tier {
  color: #3db682; }

.software-tier.special .software-tier__content ul li:before {
  color: #3db682; }

.software-tier.primary .software-tier__tier {
  color: #3996ff; }

.software-tier.primary .software-tier__content ul li:before {
  color: #3996ff; }

.software-tier__subtitle {
  font-size: 17px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.35;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6);
  display: inline-block;
  margin-bottom: 17px; }

.software-tier__content {
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.33;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6); }
  .software-tier__content p {
    line-height: 1.15;
    margin-bottom: 10px; }
  .software-tier__content ul {
    margin-top: 10px;
    margin-bottom: 10px;
    margin-left: 32px;
    list-style: none; }
    .software-tier__content ul li {
      line-height: 1.2em;
      padding-bottom: 9px;
      position: relative; }
      .software-tier__content ul li:before {
        /* use !important to prevent issues with browser extensions that change fonts */
        font-family: 'icomoon' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "";
        color: rgba(17, 19, 21, 0.4);
        font-size: 14px;
        position: absolute;
        left: -29px;
        top: 2px; }

.software-tier__actions {
  margin-top: 25px; }
  .software-tier__actions .button {
    padding: 0 28px; }

.radio-checkbox-price {
  height: 56px; }
  .radio-checkbox-price input + * {
    height: 56px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 0 10px;
    border-radius: 6px;
    background-color: transparent;
    transition: all 0.3s; }
    .radio-checkbox-price input + * .radio-checkbox_label {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
      .radio-checkbox-price input + * .radio-checkbox_label .radio-checkbox_prica-trial {
        display: block;
        font-size: 13px;
        font-weight: 600;
        font-style: normal;
        font-stretch: normal;
        line-height: 1.15;
        letter-spacing: normal;
        color: #0062d1; }
    .radio-checkbox-price input + * .radio-checkbox_old-price-wrapper {
      margin-right: 12px;
      font-size: 15px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      line-height: normal;
      letter-spacing: normal;
      text-align: center;
      color: rgba(17, 19, 21, 0.6); }
    .radio-checkbox-price input + * .radio-checkbox_price-wrapper {
      text-decoration: none; }
  .radio-checkbox-price input:checked + * {
    background-color: #deeeff; }

.f-item-preview > .radio-checkbox-price {
  width: 360px; }

.options-group {
  margin-bottom: 7px; }
  .options-group label.radio-checkbox, .options-group .gforms-section.gray .radio-checkbox.gsection_title, .gforms-section.gray .options-group .radio-checkbox.gsection_title, .options-group .gfield_checkbox *[class^=gchoice] {
    display: inline-block;
    position: relative;
    margin: 0 5px;
    margin-bottom: 7px; }
    .options-group label.radio-checkbox > *, .options-group .gforms-section.gray .radio-checkbox.gsection_title > *, .gforms-section.gray .options-group .radio-checkbox.gsection_title > *, .options-group .gfield_checkbox *[class^=gchoice] > * {
      margin: 0px; }
    .options-group label.radio-checkbox:first-child, .options-group .gforms-section.gray .radio-checkbox.gsection_title:first-child, .gforms-section.gray .options-group .radio-checkbox.gsection_title:first-child, .options-group .gfield_checkbox *[class^=gchoice]:first-child {
      margin-left: 3px; }
    .options-group label.radio-checkbox > input[type=checkbox] + *, .options-group .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox] + *, .gforms-section.gray .options-group .radio-checkbox.gsection_title > input[type=checkbox] + *, .options-group label.radio-checkbox > input[type=radio] + *, .options-group .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio] + *, .gforms-section.gray .options-group .radio-checkbox.gsection_title > input[type=radio] + *, .options-group .gfield_checkbox *[class^=gchoice] > input[type=checkbox] + *, .options-group .gfield_checkbox *[class^=gchoice] > input[type=radio] + * {
      display: inline-block;
      width: 36px;
      text-align: center;
      padding-bottom: 25px; }
      .options-group label.radio-checkbox > input[type=checkbox] + *:before, .options-group .gforms-section.gray .radio-checkbox.gsection_title > input[type=checkbox] + *:before, .gforms-section.gray .options-group .radio-checkbox.gsection_title > input[type=checkbox] + *:before, .options-group label.radio-checkbox > input[type=radio] + *:before, .options-group .gforms-section.gray .radio-checkbox.gsection_title > input[type=radio] + *:before, .gforms-section.gray .options-group .radio-checkbox.gsection_title > input[type=radio] + *:before, .options-group .gfield_checkbox *[class^=gchoice] > input[type=checkbox] + *:before, .options-group .gfield_checkbox *[class^=gchoice] > input[type=radio] + *:before {
        position: absolute;
        bottom: 0px;
        left: 50%;
        -webkit-transform: translateX(-50%);
                transform: translateX(-50%); }

.f-item-preview > .options-group {
  width: 540px; }

.bg-image-text {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#383f49+52,282f39+55 */
  background: #383f49;
  /* Old browsers */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, #383f49 30%, #282f39 80%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#383f49', endColorstr='#282f39',GradientType=1 );
  /* IE6-9 */
  padding-bottom: 0px;
  padding-top: 0px;
  overflow: hidden; }

.bg-image-text__container {
  padding-top: 60px;
  padding-bottom: 60px;
  position: relative; }
  .bg-image-text__container:after {
    content: '';
    z-index: 1;
    position: absolute;
    background: url("../images/Stethoscope-Background@2x.jpg");
    background-size: 1400px;
    background-position: 100% -100px;
    background-repeat: no-repeat;
    height: 100%;
    width: 100%;
    top: 0px;
    right: -150px; }
  @media screen and (max-width: 74.9375em) {
    .bg-image-text__container:after {
      opacity: 0.6;
      right: -200px; } }
  @media screen and (max-width: 74.9375em) and (orientation: landscape) {
    .bg-image-text__container:after {
      width: 100vw; } }
  @media screen and (max-width: 74.9375em) and (orientation: portrait) {
    .bg-image-text__container:after {
      width: 100vh; } }
  @media screen and (max-width: 39.9375em) {
    .bg-image-text__container:after {
      background-size: 1500px;
      background-position: 100% calc( -100vw / 6); } }

.bg-image-text__column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 66.66667%;
          flex: 0 0 66.66667%;
  max-width: 66.66667%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 66.66667%;
  position: relative;
  z-index: 2; }
  @media print, screen and (min-width: 40em) {
    .bg-image-text__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 63.9375em) {
    .bg-image-text__column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 83.33333%;
              flex: 0 0 83.33333%;
      max-width: 83.33333%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 83.33333%; } }
  @media screen and (max-width: 63.9375em) and (min-width: 40em) {
    .bg-image-text__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 39.9375em) {
    .bg-image-text__column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%; } }
  @media screen and (max-width: 39.9375em) and (min-width: 40em) {
    .bg-image-text__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.bg-image-text__subtitle {
  font-family: proxima-nova,sans-serif;
  text-transform: uppercase;
  font-size: 17px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.29;
  letter-spacing: normal;
  color: #93c6ff;
  margin-bottom: 10px; }

.bg-image-text__title {
  font-family: ivyjournal,sans-serif;
  font-size: 28px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.2;
  letter-spacing: normal;
  color: #ffffff;
  margin-bottom: 20px; }

.bg-image-text__content {
  font-size: 16px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.31;
  letter-spacing: normal;
  color: rgba(255, 255, 255, 0.87);
  margin-bottom: 25px; }

.bg-image-text__actions .button {
  margin-bottom: 0px;
  margin-right: 12px; }

.features {
  padding-top: 50px;
  padding-bottom: 10px;
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#e5efff+0,d5e1f6+100&0.4+0,1+100 */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, rgba(229, 239, 255, 0.4) 0%, #d5e1f6 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#66e5efff', endColorstr='#d5e1f6',GradientType=0 );
  /* IE6-9 */
  box-shadow: inset 0 -1px 0 0 rgba(17, 19, 21, 0.12); }

.features__column {
  font-size: 0px; }
  .features__column .feature-block {
    display: inline-block;
    vertical-align: top;
    margin-bottom: 50px;
    padding-left: 20px;
    padding-right: 30px; }
    @media screen and (min-width: 64em) {
      .features__column .feature-block {
        width: calc( 33.3% + 15px); }
        .features__column .feature-block:nth-child(3n) {
          padding-right: 0px;
          width: calc( 33.3% - 30px); } }
    @media screen and (min-width: 40em) and (max-width: 63.9375em) {
      .features__column .feature-block {
        width: 50%; } }
    @media screen and (max-width: 39.9375em) {
      .features__column .feature-block {
        width: 100%; } }

.top-features {
  padding-top: 105px; }

.top-features__column > h2 {
  width: 100%;
  text-align: center;
  margin-bottom: 40px; }

.product-cards {
  background: #1e4375;
  padding-top: 40px;
  padding-bottom: 70px; }

.product-cards__columns {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  width: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.product-cards__column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  max-width: 50%; }
  .product-cards__column.products-cards__form {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
    padding-right: 1.25rem;
    padding-left: 1.25rem;
    max-width: 75%; }
    .product-cards__column.products-cards__form .product-card {
      width: 610px; }
  .product-cards__column .product-card {
    width: 420px;
    max-width: 100%;
    margin: 0 auto; }
  @media screen and (max-width: 39.9375em) {
    .product-cards__column {
      margin-bottom: 30px; }
      .product-cards__column.products-cards__form, .product-cards__column {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%;
        padding-right: 0;
        padding-left: 0;
        max-width: 100%; }
      .product-cards__column:last-child {
        margin-bottom: 0px; } }

.product-cards__header {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  max-width: 100%;
  text-align: center;
  color: white; }

.product-cards__title {
  font-family: ivyjournal,sans-serif;
  font-size: 38px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  color: white;
  margin-bottom: 18px; }
  @media screen and (max-width: 39.9375em) {
    .product-cards__title {
      font-size: 32px;
      line-height: 40px; } }

.product-cards__header-tabs {
  margin-bottom: 18px; }
  .product-cards__header-tabs + .product-cards__subtitle:not(:empty) {
    margin-top: 20px; }

.product-cards__subtitle {
  width: 390px;
  max-width: 100%;
  margin: 0 auto;
  display: inline-block;
  margin-bottom: 20px; }
  .product-cards__subtitle.full-width {
    width: 100%; }
  .product-cards__subtitle p {
    margin-bottom: 4px; }
  .product-cards__subtitle, .product-cards__subtitle p {
    color: rgba(255, 255, 255, 0.87); }
    .product-cards__subtitle a, .product-cards__subtitle p a {
      color: #afd6ff; }

.product-cards__content {
  padding: 0 30px; }
  .product-cards__content, .product-cards__content p {
    color: rgba(255, 255, 255, 0.87); }

.site-header {
  height: 100px;
  background-color: #1e4375;
  padding: 0 20px;
  position: relative;
  z-index: 20; }

.site-header__container {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  height: 100px; }

.site-header__column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  @media print, screen and (min-width: 40em) {
    .site-header__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.site-branding .site-title {
  margin: 0px; }
  .site-branding .site-title a {
    display: block;
    -webkit-transform: translateY(11%);
            transform: translateY(11%); }
    .site-branding .site-title a img {
      width: 240px;
      height: auto; }

@media screen and (max-width: 39.9375em) {
  .site-header {
    height: 54px;
    padding: 0 0px;
    padding-left: 5px; }
  .site-header__container {
    height: 54px; }
  .site-branding .site-title a img {
    width: 160px; } }

.hero {
  background: #1e4375;
  padding-top: 50px;
  padding-bottom: 50px;
  position: relative;
  z-index: 10; }
  .hero.hero--image + * {
    padding-top: 120px; }

.hero__title {
  width: 900px;
  max-width: 100%;
  margin: 0 auto;
  font-family: ivyjournal,sans-serif;
  font-size: 36px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  line-height: 1.28;
  text-align: center;
  color: #ffffff;
  margin-bottom: 20px; }
  @media screen and (max-width: 39.9375em) {
    .hero__title {
      font-size: 32px;
      line-height: 40px; } }

.hero__content {
  width: 780px;
  max-width: 100%;
  margin: 0 auto;
  font-size: 19px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.37;
  letter-spacing: normal;
  text-align: center;
  color: rgba(255, 255, 255, 0.87);
  margin-bottom: 30px; }

.hero__actions {
  text-align: center;
  display: block; }
  .hero__actions .button {
    margin-left: 9px;
    margin-right: 9px;
    padding-left: 20px;
    padding-right: 20px;
    margin-bottom: 0px; }

.hero__image {
  margin: 0 auto;
  position: relative;
  top: 40px;
  -webkit-transform: translateX(-1.5%);
          transform: translateX(-1.5%);
  padding: 0 20px;
  width: 870px;
  max-width: 100%;
  margin-bottom: -50px; }
  .hero__image img {
    width: 100%; }
  @media screen and (max-width: 39.9375em) {
    .hero__image img {
      width: 115%;
      max-width: 115%;
      -webkit-transform: translateX(-7%);
              transform: translateX(-7%); } }

.highlights {
  box-shadow: inset 0 -1px 0 0 rgba(17, 19, 21, 0.12);
  background-color: #ffffff;
  padding-top: 60px;
  padding-bottom: 60px; }
  .highlights .section-icon-title {
    margin-bottom: 15px; }

.highlights__column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 3.125rem;
  padding-left: 3.125rem;
  max-width: 100%; }
  @media screen and (max-width: 63.9375em) {
    .highlights__column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 100%; } }
  @media screen and (max-width: 63.9375em) and (min-width: 40em) {
    .highlights__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  @media screen and (max-width: 63.9375em) {
      .highlights__column .text-image__container {
        padding: 0px; } }

.highlights__tabs {
  text-align: center; }
  @media screen and (max-width: 63.9375em) {
    .highlights__tabs {
      display: none; } }

.highlights__carousel {
  margin-top: 60px; }
  .highlights__carousel .text-image {
    padding-top: 0px; }

.content-section.light-grey {
  background-color: rgba(232, 240, 253, 0.5); }

.content-section.grey {
  background-color: #e5efff; }

.content-style > h3, .content-style > h4, fieldset .content-style > legend, .content-style > .posts-list__header, .woocommerce-checkout .content-style > #order_review_heading, .content-style > h5, .gforms-section .content-style > .gsection_title, .content-style > p, .content-style > hr, .content-style > ul, .content-style > ol {
  margin-bottom: 0px; }

.content-style > h2 + * {
  margin-top: 30px; }

.content-style > h2 + .wp-block-image {
  margin-top: 20px; }

.content-style > .wp-block-image + * {
  margin-top: 30px; }

.content-style > h3 + * {
  margin-top: 25px; }

.content-style > h4 + *, fieldset .content-style > legend + *, .content-style > .posts-list__header + *, .woocommerce-checkout .content-style > #order_review_heading + * {
  margin-top: 5px; }

.content-style > h4 + h5, fieldset .content-style > legend + h5, .content-style > .posts-list__header + h5, .woocommerce-checkout .content-style > #order_review_heading + h5, .gforms-section .content-style > h4 + .gsection_title, fieldset .gforms-section .content-style > legend + .gsection_title, .gforms-section fieldset .content-style > legend + .gsection_title, .gforms-section .content-style > .posts-list__header + .gsection_title, .woocommerce-checkout .gforms-section .content-style > #order_review_heading + .gsection_title, .gforms-section .woocommerce-checkout .content-style > #order_review_heading + .gsection_title {
  margin-top: 25px; }

.content-style > h4 + ul, fieldset .content-style > legend + ul, .content-style > .posts-list__header + ul, .woocommerce-checkout .content-style > #order_review_heading + ul, .content-style > h4 + ol, fieldset .content-style > legend + ol, .content-style > .posts-list__header + ol, .woocommerce-checkout .content-style > #order_review_heading + ol {
  margin-top: 10px; }

.content-style > h5 + *, .gforms-section .content-style > .gsection_title + * {
  margin-top: 15px; }

.content-style > h5 + p, .gforms-section .content-style > .gsection_title + p {
  margin-top: 10px; }

.content-style > p + * {
  margin-top: 20px; }

.content-style > p + h4, fieldset .content-style > p + legend, .content-style > p + .posts-list__header, .woocommerce-checkout .content-style > p + #order_review_heading {
  margin-top: 25px; }

.content-style > p + ul, .content-style > p + ol {
  margin-top: 10px; }

.content-style > hr {
  margin-top: 30px; }
  .content-style > hr + * {
    margin-top: 30px; }

.content-style > ul, .content-style > ol {
  margin-left: 25px; }
  .content-style > ul + *, .content-style > ol + * {
    margin-top: 40px; }
  .content-style > ul + h4, fieldset .content-style > ul + legend, .content-style > ul + .posts-list__header, .woocommerce-checkout .content-style > ul + #order_review_heading, .content-style > ol + h4, fieldset .content-style > ol + legend, .content-style > ol + .posts-list__header, .woocommerce-checkout .content-style > ol + #order_review_heading {
    margin-top: 25px; }
  .content-style > ul + p, .content-style > ol + p {
    margin-top: 15px; }
  .content-style > ul + .wp-block-image, .content-style > ol + .wp-block-image {
    margin-top: 15px; }
  .content-style > ul li, .content-style > ol li {
    padding-bottom: 7px;
    line-height: 1.33; }

.content-style > ul ul {
  margin-top: 7px; }

.content-style > ul, .content-style > ul ul {
  list-style: none; }
  .content-style > ul li, .content-style > ul ul li {
    position: relative; }
    .content-style > ul li:before, .content-style > ul ul li:before {
      content: '•';
      position: absolute;
      left: -12px; }

.content-style > p, .content-style > ul, .content-style > ol {
  color: rgba(17, 19, 21, 0.6); }

.resources {
  box-shadow: inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
  background-color: #ffffff; }

.resources__links {
  text-align: center;
  max-width: 100%; }
  .resources__links .resource-link {
    margin: 0 25px;
    margin-bottom: 20px;
    font-size: 15px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    color: #0062d1;
    text-decoration: underline; }
    .resources__links .resource-link:hover {
      text-decoration: none; }
  @media screen and (max-width: 39.9375em) {
    .resources__links {
      width: 280px;
      margin: 0 auto; }
      .resources__links .resource-link {
        display: block;
        margin: 0 auto;
        margin-bottom: 20px; } }

.team-management {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#e5efff+0,d5e1f6+100&0.4+0,1+100 */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, rgba(229, 239, 255, 0) 0%, rgba(213, 225, 246, 0.2) 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#66e5efff', endColorstr='#d5e1f6',GradientType=0 );
  /* IE6-9 */
  box-shadow: inset 0 -1px 0 0 rgba(17, 19, 21, 0.12); }

.team-management__title {
  text-align: center;
  margin-bottom: 35px; }

.team-management__items {
  padding-top: 15px; }
  .team-management__items .team-item:not(:last-child) {
    margin-bottom: 40px; }

.user-stories {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#e5efff+0,d5e1f6+100&0+0,0.2+100 */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, rgba(229, 239, 255, 0) 0%, rgba(213, 225, 246, 0.2) 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00e5efff', endColorstr='#33d5e1f6',GradientType=0 );
  /* IE6-9 */
  box-shadow: inset 0 -1px 0 0 rgba(17, 19, 21, 0.2); }

.user-stories__stories {
  font-size: 0px; }
  .user-stories__stories .user-story {
    vertical-align: top;
    display: inline-block;
    margin-top: 55px; }
    @media screen and (min-width: 40em) {
      .user-stories__stories .user-story {
        width: 50%; }
        .user-stories__stories .user-story:nth-child(1), .user-stories__stories .user-story:nth-child(2) {
          margin-top: 0px; }
        .user-stories__stories .user-story:nth-child(2n) {
          padding-left: 55px; }
        .user-stories__stories .user-story:nth-child(2n+1) {
          padding-right: 55px; } }
    @media screen and (min-width: 40em) and (max-width: 63.9375em) {
      .user-stories__stories .user-story:nth-child(2n) {
        padding-left: 20px; }
      .user-stories__stories .user-story:nth-child(2n+1) {
        padding-right: 20px; } }
    @media screen and (max-width: 39.9375em) {
      .user-stories__stories .user-story {
        width: 100%; }
        .user-stories__stories .user-story:nth-child(1) {
          margin-top: 0px; } }

.call-to-action {
  background-color: #e5efff; }
  .call-to-action .section-title__title {
    margin-bottom: 0px; }
  .call-to-action .section-title {
    margin-bottom: 6px; }

.call-to-action__text {
  font-size: 19px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.42;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  text-align: center; }

.call-to-action__actions {
  text-align: center;
  margin-top: 20px; }
  .call-to-action__actions .button {
    padding-left: 25px;
    padding-right: 25px;
    margin-bottom: 0px; }

.login-section {
  background-color: #1e4375;
  padding-bottom: 0px;
  padding-top: 15px;
  position: relative;
  z-index: 2; }
  .login-section + * {
    padding-top: 90px; }

.login-section__card {
  border-radius: 8px;
  box-shadow: 0 0 0 1px rgba(29, 31, 33, 0.15), 0 3px 7px 0 rgba(29, 31, 33, 0.2), 0 0 0 1px rgba(29, 31, 33, 0.15), 0 3px 7px 0 rgba(29, 31, 33, 0.2);
  background-color: #ffffff;
  padding: 28px 30px 21px 30px;
  position: relative;
  bottom: -45px; }

.login-section__title {
  font-size: 24px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.13;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  margin-bottom: 18px; }

.login-section__form .input-field, .login-section__form .form-row, .login-section__form .gform_wrapper .gform_fields .ginput_complex > *, .gform_wrapper .gform_fields .login-section__form .ginput_complex > *, .login-section__form .gform_wrapper .gform_fields .gfield, .gform_wrapper .gform_fields .login-section__form .gfield, .login-section__form .gform_wrapper .gform_footer, .gform_wrapper .login-section__form .gform_footer {
  margin-bottom: 10px; }

.login-section__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 5px; }
  .login-section__actions .button {
    padding-left: 35px;
    padding-right: 35px; }

.login-section__forgot a {
  font-size: 13px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: right;
  color: #0062d1; }

.login-section__prior-account {
  margin-top: 5px;
  font-size: 13px;
  color: rgba(17, 19, 21, 0.6); }

.f-item-preview > .login-section {
  margin-bottom: 45px; }

.login-content-section {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#e5efff+0,d5e1f6+100&0.4+0,1+100 */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, rgba(229, 239, 255, 0.4) 0%, #d5e1f6 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#66e5efff', endColorstr='#d5e1f6',GradientType=0 );
  /* IE6-9 */
  box-shadow: inset 0 -1px 0 0 rgba(17, 19, 21, 0.12);
  padding-bottom: 100px; }

.login-content-section__timestamps {
  border-bottom: 1px solid #B9C0CA;
  margin-bottom: 22px;
  padding-bottom: 22px; }
  .login-content-section__timestamps table {
    width: auto;
    margin: 0px; }
    .login-content-section__timestamps table tbody {
      background: none; }
      .login-content-section__timestamps table tbody tr td {
        padding: 0px;
        padding-right: 10px;
        font-size: 15px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        line-height: 1.33;
        letter-spacing: normal;
        color: rgba(17, 19, 21, 0.87); }

.login-content-section__content {
  margin-bottom: 40px; }

.login-content-section__copyright, .login-content-section__copyright p {
  margin-bottom: 0px;
  font-size: 13px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.62;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.6); }

.site-footer {
  background-color: #383f49;
  padding-top: 45px;
  padding-bottom: 60px; }
  .site-footer .footer-menu {
    margin-left: -16px; }

.site-footer__container {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }

.site-footer__column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%; }
  @media print, screen and (min-width: 40em) {
    .site-footer__column {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.site-footer__branding {
  margin-bottom: 15px; }
  .site-footer__branding a img {
    width: 250px;
    max-width: 100%; }

.site-footer__copyright {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  margin-top: 35px;
  padding-top: 22px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  @media screen and (max-width: 39.9375em) {
    .site-footer__copyright {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start; } }

.site-footer__copyright-text {
  opacity: 0.6;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: #ffffff;
  margin-right: 15px; }

@media screen and (max-width: 39.9375em) {
  .site-footer__copyright-menu {
    margin-top: 10px; }
    .site-footer__copyright-menu .menu {
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; } }

.site-footer__copyright-menu .menu-item a {
  padding: 0px 14px;
  font-size: 15px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: #ffffff; }
  .site-footer__copyright-menu .menu-item a:hover {
    text-decoration: underline; }

@media screen and (max-width: 39.9375em) {
  .site-footer__copyright-menu .menu-item a {
    padding-bottom: 4px;
    padding-top: 4px;
    padding-left: 0px; } }

.step-columns__columns {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  margin: 0 -8px; }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) {
    .step-columns__columns {
      margin-top: -20px; } }

.step-columns__columns-column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 20%;
          flex: 0 0 20%;
  max-width: 20%;
  padding-right: 0.5rem;
  padding-left: 0.5rem;
  max-width: 20%; }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) {
    .step-columns__columns-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%;
      padding-right: 0.5rem;
      padding-left: 0.5rem;
      max-width: 50%;
      margin-top: 20px; } }
  @media screen and (max-width: 39.9375em) {
    .step-columns__columns-column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%;
      padding-right: 0;
      padding-left: 0;
      max-width: 100%;
      margin-top: 20px; } }

.software-tiers {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#e5efff+0,d5e1f6+100&0.4+0,1+100 */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, rgba(229, 239, 255, 0) 0%, rgba(213, 225, 246, 0.2) 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#66e5efff', endColorstr='#d5e1f6',GradientType=0 );
  /* IE6-9 */
  box-shadow: inset 0 -1px 0 0 rgba(17, 19, 21, 0.12); }

.software-tiers__items .software-tier {
  border-bottom: 1px solid #BDC2C9;
  padding: 50px 0; }
  .software-tiers__items .software-tier:first-child {
    padding-top: 0px; }
  .software-tiers__items .software-tier:last-child {
    padding-bottom: 0px;
    border-bottom: none; }

.core-highlights {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#e5efff+0,d5e1f6+100&0.4+0,1+100 */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, rgba(229, 239, 255, 0) 0%, rgba(213, 225, 246, 0.2) 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#66e5efff', endColorstr='#d5e1f6',GradientType=0 );
  /* IE6-9 */
  box-shadow: inset 0 -1px 0 0 rgba(17, 19, 21, 0.12); }

.core-highlights__items {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }
  .core-highlights__items .core-highlights-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 1.40625rem;
    padding-left: 1.40625rem;
    max-width: 50%;
    margin-top: 36px; }
    @media screen and (min-width: 40em) {
      .core-highlights__items .core-highlights-item:nth-child(1), .core-highlights__items .core-highlights-item:nth-child(2) {
        margin-top: 0px; } }
    @media screen and (max-width: 39.9375em) {
      .core-highlights__items .core-highlights-item {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%;
        padding-right: 0;
        padding-left: 0;
        max-width: 100%; }
        .core-highlights__items .core-highlights-item:nth-child(1) {
          margin-top: 0px; } }

.posts-list {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#e5efff+0,d5e1f6+100&0.4+0,1+100 */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, rgba(229, 239, 255, 0) 0%, rgba(213, 225, 246, 0.2) 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#66e5efff', endColorstr='#d5e1f6',GradientType=0 );
  /* IE6-9 */
  box-shadow: inset 0 -1px 0 0 rgba(17, 19, 21, 0.12); }

.posts-list__header {
  margin-bottom: 30px; }

.posts-list__posts .post-item {
  border-bottom: 1px solid #BFC4CA; }
  .posts-list__posts .post-item:first-child {
    border-top: 1px solid #BFC4CA; }

.posts-list__pagination {
  margin-top: 30px; }

.benefits {
  box-shadow: inset 0 -1px 0 0 rgba(17, 19, 21, 0.12);
  background-color: #1b3354; }
  .benefits .section-title__title {
    color: white; }
  .benefits .feature-block__title {
    color: white; }
  .benefits .feature-block__content, .benefits .feature-block__content p {
    color: rgba(255, 255, 255, 0.87); }
    .benefits .feature-block__content a, .benefits .feature-block__content a:hover, .benefits .feature-block__content p a, .benefits .feature-block__content p a:hover {
      color: #afd6ff; }

@media screen and (min-width: 64em) {
  .benefits__items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; } }

@media screen and (max-width: 63.9375em) {
  .benefits__items {
    font-size: 0px; } }

.benefits__items .feature-block {
  padding: 0 15px; }
  .benefits__items .feature-block .feature-block__title {
    font-size: 19px; }
    .benefits__items .feature-block .feature-block__title:before {
      content: none; }
  @media screen and (min-width: 64em) {
    .benefits__items .feature-block {
      -webkit-box-flex: 1;
          -ms-flex: 1;
              flex: 1; } }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) {
    .benefits__items .feature-block {
      display: inline-block;
      width: 50%;
      margin-top: 40px; }
      .benefits__items .feature-block:nth-child(1), .benefits__items .feature-block:nth-child(2) {
        margin-top: 0px; } }
  @media screen and (max-width: 39.9375em) {
    .benefits__items .feature-block {
      padding: 0 0px;
      display: inline-block;
      width: 100%;
      margin-top: 40px; }
      .benefits__items .feature-block:nth-child(1) {
        margin-top: 0px; } }

.board-items__category {
  margin-top: 35px; }
  .board-items__category:first-child {
    margin-top: 0px; }

.board-items__category-title {
  font-size: 17px;
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: #5094e0;
  text-transform: uppercase;
  margin-bottom: 22px; }

.board-items__items .board-item {
  margin-top: 30px; }
  .board-items__items .board-item:first-child {
    margin-top: 0px; }

.woocommerce-checkout .content-area {
  max-width: 590px;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }

.woocommerce-checkout .woocommerce-form-login-toggle {
  margin-bottom: 5px;
  text-align: center; }

.woocommerce-checkout .woocommerce-form-coupon-toggle {
  border-radius: 6px;
  background-color: #deeeff;
  padding: 11px 12px;
  margin-top: 25px; }

.woocommerce-checkout .woocommerce-privacy-policy-text {
  font-size: 12px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.5;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.4);
  margin-top: 15px; }

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row, .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .gform_wrapper .gform_fields .ginput_complex > *, .gform_wrapper .gform_fields .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .ginput_complex > *, .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .gform_wrapper .gform_fields .gfield, .gform_wrapper .gform_fields .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .gfield, .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .gform_wrapper .gform_footer, .gform_wrapper .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .gform_footer {
  padding-left: 0px; }

.woocommerce-checkout .woocommerce-form-login {
  width: 100%;
  padding-top: 30px; }
  .woocommerce-checkout .woocommerce-form-login > p:first-child {
    width: 70%;
    margin: 0 auto;
    margin-bottom: 20px; }

.woocommerce-checkout .woocommerce-form-coupon {
  border-radius: 0px 0px 6px 6px;
  background-color: #deeeff;
  padding: 11px 12px;
  margin-top: -7px;
  font-size: 0px; }
  .woocommerce-checkout .woocommerce-form-coupon button, .woocommerce-checkout .woocommerce-form-coupon p {
    margin: 0px; }
  .woocommerce-checkout .woocommerce-form-coupon p {
    font-size: 15px; }
  .woocommerce-checkout .woocommerce-form-coupon .form-row-first {
    padding-left: 0px;
    padding-right: 0px; }
  .woocommerce-checkout .woocommerce-form-coupon button {
    box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
    background-color: transparent;
    background-image: none;
    color: rgba(17, 19, 21, 0.87);
    font-weight: 600; }
    .woocommerce-checkout .woocommerce-form-coupon button:focus {
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
      background-color: transparent;
      color: rgba(17, 19, 21, 0.87); }
    .woocommerce-checkout .woocommerce-form-coupon button:hover {
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
      background-color: rgba(190, 203, 224, 0.2);
      color: rgba(17, 19, 21, 0.87); }
    .woocommerce-checkout .woocommerce-form-coupon button:active, .woocommerce-checkout .woocommerce-form-coupon button.active {
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
      background-color: rgba(190, 203, 224, 0.5);
      color: rgba(17, 19, 21, 0.87); }
    .woocommerce-checkout .woocommerce-form-coupon button:disabled, .woocommerce-checkout .woocommerce-form-coupon button:disabled:hover {
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
      background-color: transparent; }

.woocommerce-checkout #customer_details {
  margin-bottom: 50px; }

.woocommerce-checkout .woocommerce-checkout {
  margin-top: 40px; }

.woocommerce-checkout #card_info_heading {
  margin-top: 40px;
  margin-bottom: 14px; }

.woocommerce-checkout .woocommerce-checkout-payment fieldset {
  font-size: 0px; }

.woocommerce-checkout .woocommerce-checkout-payment .place-order {
  padding: 0px;
  margin-top: 30px; }
  .woocommerce-checkout .woocommerce-checkout-payment .place-order button {
    box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
    background-color: #258afe ;
    background-image: none;
    color: #ffffff;
    font-weight: 600;
    min-width: 160px;
    height: 42px;
    line-height: 41px;
    border-radius: 6px;
    padding: 0px 15px;
    font-size: 18px;
    font-weight: 600; }
    .woocommerce-checkout .woocommerce-checkout-payment .place-order button:focus {
      box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
      background-color: #258afe ;
      color: #ffffff; }
    .woocommerce-checkout .woocommerce-checkout-payment .place-order button:hover {
      box-shadow: 0 3px 4px 0 rgba(17, 19, 21, 0.3), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
      background-color: #258afe ;
      top: 0px;
      color: #ffffff; }
    .woocommerce-checkout .woocommerce-checkout-payment .place-order button:active, .woocommerce-checkout .woocommerce-checkout-payment .place-order button.active {
      box-shadow: 0 0px 0 0 rgba(17, 19, 21, 0.2), inset 0 0 0 1px rgba(17, 19, 21, 0.4);
      background-color: #0062d1 ;
      top: 1px;
      color: #ffffff; }
    .woocommerce-checkout .woocommerce-checkout-payment .place-order button:disabled, .woocommerce-checkout .woocommerce-checkout-payment .place-order button:disabled:hover {
      background-color: #258afe ; }

.woocommerce-checkout .wc_payment_methods {
  list-style: none;
  margin: 0px; }
  .woocommerce-checkout .wc_payment_methods > li:first-child:last-child > label, .woocommerce-checkout .gforms-section.gray .wc_payment_methods > li:first-child:last-child > .gsection_title, .gforms-section.gray .woocommerce-checkout .wc_payment_methods > li:first-child:last-child > .gsection_title {
    display: none; }
  .woocommerce-checkout .wc_payment_methods .wc_payment_method > label, .woocommerce-checkout .wc_payment_methods .gforms-section.gray .wc_payment_method > .gsection_title, .gforms-section.gray .woocommerce-checkout .wc_payment_methods .wc_payment_method > .gsection_title {
    margin-bottom: 15px; }
    .woocommerce-checkout .wc_payment_methods .wc_payment_method > label img, .woocommerce-checkout .wc_payment_methods .gforms-section.gray .wc_payment_method > .gsection_title img, .gforms-section.gray .woocommerce-checkout .wc_payment_methods .wc_payment_method > .gsection_title img, .woocommerce-checkout .wc_payment_methods .wc_payment_method > label a, .woocommerce-checkout .wc_payment_methods .gforms-section.gray .wc_payment_method > .gsection_title a, .gforms-section.gray .woocommerce-checkout .wc_payment_methods .wc_payment_method > .gsection_title a {
      display: none; }
    .woocommerce-checkout .wc_payment_methods .wc_payment_method > label + .payment_method_paypal, .woocommerce-checkout .wc_payment_methods .gforms-section.gray .wc_payment_method > .gsection_title + .payment_method_paypal, .gforms-section.gray .woocommerce-checkout .wc_payment_methods .wc_payment_method > .gsection_title + .payment_method_paypal {
      display: none; }
  .woocommerce-checkout .wc_payment_methods .wc_payment_method #stripe-payment-data > p {
    color: rgba(17, 19, 21, 0.87); }
    .woocommerce-checkout .wc_payment_methods .wc_payment_method #stripe-payment-data > p, .woocommerce-checkout .wc_payment_methods .wc_payment_method #stripe-payment-data > p * {
      font-size: 13px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      line-height: 1.15;
      letter-spacing: normal; }
  .woocommerce-checkout .wc_payment_methods .wc_payment_method .wc-credit-card-form {
    margin-left: -8px;
    margin-right: -8px; }

.bottom-woocommerce-form-coupon__cell {
  vertical-align: top; }

.bottom-woocommerce-form-coupon {
  margin-left: 2px; }
  .bottom-woocommerce-form-coupon .bottom-woocommerce-form-coupon__form {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
    .bottom-woocommerce-form-coupon .bottom-woocommerce-form-coupon__form button {
      box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
      background-color: transparent;
      background-image: none;
      color: rgba(17, 19, 21, 0.87);
      font-weight: 600; }
      .bottom-woocommerce-form-coupon .bottom-woocommerce-form-coupon__form button:focus {
        box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
        background-color: transparent;
        color: rgba(17, 19, 21, 0.87); }
      .bottom-woocommerce-form-coupon .bottom-woocommerce-form-coupon__form button:hover {
        box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
        background-color: rgba(190, 203, 224, 0.2);
        color: rgba(17, 19, 21, 0.87); }
      .bottom-woocommerce-form-coupon .bottom-woocommerce-form-coupon__form button:active, .bottom-woocommerce-form-coupon .bottom-woocommerce-form-coupon__form button.active {
        box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
        background-color: rgba(190, 203, 224, 0.5);
        color: rgba(17, 19, 21, 0.87); }
      .bottom-woocommerce-form-coupon .bottom-woocommerce-form-coupon__form button:disabled, .bottom-woocommerce-form-coupon .bottom-woocommerce-form-coupon__form button:disabled:hover {
        box-shadow: inset 0 0 0 1px rgba(17, 19, 21, 0.3), inset 0 -1px 1px 0 rgba(17, 19, 21, 0.08);
        background-color: transparent; }
    .bottom-woocommerce-form-coupon .bottom-woocommerce-form-coupon__form input {
      padding-right: 0px; }
    .bottom-woocommerce-form-coupon .bottom-woocommerce-form-coupon__form .form-row-first {
      padding: 0px; }

.woocommerce-NoticeGroup {
  margin-bottom: 40px;
  padding: 20px;
  background-color: #fcf1f1;
  border-radius: 6px; }

ul.woocommerce-error {
  margin-bottom: 0px;
  color: #db3737; }

.form-row, .gform_wrapper .gform_fields .ginput_complex > *, .gform_wrapper .gform_fields .gfield, .gform_wrapper .gform_footer {
  width: 100%;
  padding-left: 8px;
  padding-right: 8px;
  display: inline-block;
  vertical-align: top; }

.form-row-last, .form-row-first, .form-row-half, .gform_wrapper .gform_fields .ginput_complex > *.ginput_left, .gform_wrapper .gform_fields .ginput_complex > *.ginput_right, .gform_wrapper .gform_fields .gfield.half {
  width: 50%; }
  @media screen and (max-width: 39.9375em) {
    .form-row-last, .form-row-first, .form-row-half, .gform_wrapper .gform_fields .ginput_complex > *.ginput_left, .gform_wrapper .gform_fields .ginput_complex > *.ginput_right, .gform_wrapper .gform_fields .gfield.half {
      width: 100%; } }

.form-row-long, .gform_wrapper .gform_fields .gfield.long {
  width: 70%; }

.form-row-short, .gform_wrapper .gform_fields .gfield.short {
  width: 30%; }

@media screen and (min-width: 40em) {
  .form-row-quarter, .gform_wrapper .gform_fields .gfield.quarter {
    width: 25%; } }

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .form-row-quarter, .gform_wrapper .gform_fields .gfield.quarter {
    width: 50%; } }

.woocommerce-fields-section h4, .woocommerce-fields-section fieldset legend, fieldset .woocommerce-fields-section legend, .woocommerce-fields-section .posts-list__header, .woocommerce-fields-section .woocommerce-checkout #order_review_heading, .woocommerce-checkout .woocommerce-fields-section #order_review_heading {
  margin-bottom: 14px; }

.woocommerce-fields-section:not(:first-child) {
  margin-top: 50px; }

.woocommerce-fields-wrapper {
  margin-left: -4px;
  margin-right: -8px; }
  .woocommerce-fields-wrapper .form-row, .woocommerce-fields-wrapper .gform_wrapper .gform_fields .ginput_complex > *, .gform_wrapper .gform_fields .woocommerce-fields-wrapper .ginput_complex > *, .woocommerce-fields-wrapper .gform_wrapper .gform_fields .gfield, .gform_wrapper .gform_fields .woocommerce-fields-wrapper .gfield, .woocommerce-fields-wrapper .gform_wrapper .gform_footer, .gform_wrapper .woocommerce-fields-wrapper .gform_footer {
    margin-left: -4px; }

.woocommerce-account .woocommerce {
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }

.woocommerce-account .woocommerce-MyAccount-sidebar {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 25%; }
  @media print, screen and (min-width: 40em) {
    .woocommerce-account .woocommerce-MyAccount-sidebar {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.woocommerce-account .woocommerce-MyAccount-content {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 75%;
          flex: 0 0 75%;
  max-width: 75%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 75%; }
  @media print, screen and (min-width: 40em) {
    .woocommerce-account .woocommerce-MyAccount-content {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

@media screen and (max-width: 39.9375em) {
  .woocommerce-account .woocommerce-MyAccount-sidebar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
    padding-right: 0;
    padding-left: 0;
    max-width: 100%; }
  .woocommerce-account .woocommerce-MyAccount-content {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
    padding-right: 0;
    padding-left: 0;
    max-width: 100%;
    margin-top: 30px; } }

.woocommerce-account *[name=save_address] {
  box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
  background-color: #258afe ;
  background-image: none;
  color: #ffffff;
  font-weight: 600;
  min-width: 160px;
  height: 42px;
  line-height: 41px;
  border-radius: 6px;
  padding: 0px 15px;
  font-size: 18px;
  font-weight: 600;
  margin-top: 20px; }
  .woocommerce-account *[name=save_address]:focus {
    box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
    background-color: #258afe ;
    color: #ffffff; }
  .woocommerce-account *[name=save_address]:hover {
    box-shadow: 0 3px 4px 0 rgba(17, 19, 21, 0.3), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
    background-color: #258afe ;
    top: 0px;
    color: #ffffff; }
  .woocommerce-account *[name=save_address]:active, .woocommerce-account *[name=save_address].active {
    box-shadow: 0 0px 0 0 rgba(17, 19, 21, 0.2), inset 0 0 0 1px rgba(17, 19, 21, 0.4);
    background-color: #0062d1 ;
    top: 1px;
    color: #ffffff; }
  .woocommerce-account *[name=save_address]:disabled, .woocommerce-account *[name=save_address]:disabled:hover {
    background-color: #258afe ; }

.woocommerce-account .entry-title {
  font-family: ivyjournal,sans-serif;
  font-size: 37px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: rgba(17, 19, 21, 0.87);
  text-align: left; }
  @media screen and (max-width: 39.9375em) {
    .woocommerce-account .entry-title {
      font-size: 32px;
      line-height: 40px; } }

.woocommerce-account .entry-header {
  display: none; }

@media screen and (max-width: 39.9375em) {
  .woocommerce-account .site-sidebar {
    padding: 0px; }
  .woocommerce-account .mobile-dropdown {
    margin: 0 -16px; }
  .woocommerce-account .site-content {
    padding-top: 0px; }
  .woocommerce-account .site-main {
    padding: 0px; } }

.woocommerce-EditAccountForm button[type=submit].woocommerce-Button {
  margin-top: 20px;
  box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
  background-color: #258afe ;
  background-image: none;
  color: #ffffff;
  font-weight: 600;
  min-width: 160px;
  height: 42px;
  line-height: 41px;
  border-radius: 6px;
  padding: 0px 15px;
  font-size: 18px;
  font-weight: 600; }
  .woocommerce-EditAccountForm button[type=submit].woocommerce-Button:focus {
    box-shadow: 0 1px 3px 0 rgba(17, 19, 21, 0.4), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
    background-color: #258afe ;
    color: #ffffff; }
  .woocommerce-EditAccountForm button[type=submit].woocommerce-Button:hover {
    box-shadow: 0 3px 4px 0 rgba(17, 19, 21, 0.3), inset 0 -1px 0 0 rgba(17, 19, 21, 0.2);
    background-color: #258afe ;
    top: 0px;
    color: #ffffff; }
  .woocommerce-EditAccountForm button[type=submit].woocommerce-Button:active, .woocommerce-EditAccountForm button[type=submit].woocommerce-Button.active {
    box-shadow: 0 0px 0 0 rgba(17, 19, 21, 0.2), inset 0 0 0 1px rgba(17, 19, 21, 0.4);
    background-color: #0062d1 ;
    top: 1px;
    color: #ffffff; }
  .woocommerce-EditAccountForm button[type=submit].woocommerce-Button:disabled, .woocommerce-EditAccountForm button[type=submit].woocommerce-Button:disabled:hover {
    background-color: #258afe ; }

body:not(.logged-in).woocommerce-account .content-area {
  max-width: 590px;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }

.woocommerce-form-login {
  width: 350px;
  margin: 0 auto;
  text-align: center; }
  .woocommerce-form-login .lost_password {
    text-align: right; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvb2xraXQuY3NzIiwidG9vbGtpdC5zY3NzIiwiLi4vZm9udHMvX2ZvbnRzLnNjc3MiLCIuLi9mb250cy9pY29tb29uL3N0eWxlLnNjc3MiLCIuLi9mb250cy9pY29tb29uL3ZhcmlhYmxlcy5zY3NzIiwidmVuZG9ycy9fbm9ybWFsaXplLnNjc3MiLCIuLi8uLi92ZW5kb3IvU2N1dC9kaXN0L19zY3V0LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX25vcm1hbGl6ZS1taXhpbi5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192ZXJ0aWNhbC1yaHl0aG0uc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwidmVuZG9ycy9fZm91bmRhdGlvbi1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fc2l6ZS5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jb2x1bW4uc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fbGF5b3V0LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi1tZW51LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYmFkZ2Uuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Jlc3BvbnNpdmUtZW1iZWQuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19sYWJlbC5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vcmJpdC5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zd2l0Y2guc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwiLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwidXRpbHMvbWl4aW5zL19zcGFjaW5nLnNjc3MiLCJnbG9iYWwuc2NzcyIsIm9yZ2FuaXNtcy9fd3Bfd2Nfc3BlY2lmaWMuc2NzcyIsIi4uLy4uL3ZlbmRvci9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MiLCJ1dGlscy9taXhpbnMvX2J1dHRvbi1zdHlsZXMuc2NzcyIsImF0b21zL19idXR0b25zLnNjc3MiLCJ1dGlscy9taXhpbnMvX2hlbHBlcnMuc2NzcyIsImF0b21zL19sYWJlbC5zY3NzIiwiYXRvbXMvX3ByaWNlLWRpc3BsYXkuc2NzcyIsImF0b21zL19yYWRpby1jaGVja2JveC5zY3NzIiwidXRpbHMvbWl4aW5zL19pY29ucy5zY3NzIiwiYXRvbXMvX3Jlc291cmNlLWxpbmsuc2NzcyIsImF0b21zL19zZWN0aW9uLXRpdGxlLnNjc3MiLCJhdG9tcy9fc2VjdGlvbi1pY29uLXRpdGxlLnNjc3MiLCIuLi8uLi92ZW5kb3IvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcm91bmRlZC5zY3NzIiwiYXRvbXMvX2lucHV0LnNjc3MiLCJtb2xlY3VsZXMvX3VzZXItc3Rvcnkuc2NzcyIsIm1vbGVjdWxlcy9fZmVhdHVyZS1ibG9jay5zY3NzIiwibW9sZWN1bGVzL19jaGVja291dC1yZXZpZXctdGFibGUuc2NzcyIsIm1vbGVjdWxlcy9fZmVhdHVyZXMtdGFibGUuc2NzcyIsIm1vbGVjdWxlcy9fcHJvZHVjdC1jYXJkLnNjc3MiLCJtb2xlY3VsZXMvX2lucHV0LWZpZWxkLnNjc3MiLCJtb2xlY3VsZXMvX3NpdGUtbmF2aWdhdGlvbi5zY3NzIiwibW9sZWN1bGVzL19uYXYtbWVudS5zY3NzIiwibW9sZWN1bGVzL190YWJzLnNjc3MiLCJtb2xlY3VsZXMvX3Bvc3QtaXRlbS5zY3NzIiwibW9sZWN1bGVzL19tb2JpbGUtZHJvcGRvd24uc2NzcyIsIm1vbGVjdWxlcy9fcGFnaW5hdGlvbi5zY3NzIiwibW9sZWN1bGVzL190ZWFtLWl0ZW0uc2NzcyIsIm1vbGVjdWxlcy9fYnV0dG9ucy1ncm91cC5zY3NzIiwibW9sZWN1bGVzL19jb250cmlidXRvcnMuc2NzcyIsIm1vbGVjdWxlcy9fYm9hcmQtaXRlbS5zY3NzIiwibW9sZWN1bGVzL19jb3JlLWhpZ2hsaWdodHMtaXRlbS5zY3NzIiwibW9sZWN1bGVzL19mb290ZXItbWVudS5zY3NzIiwibW9sZWN1bGVzL19vd2wtY2Fyb3VzZWwuc2NzcyIsIm1vbGVjdWxlcy9fdGV4dC1pbWFnZS5zY3NzIiwibW9sZWN1bGVzL19zdGVwLWNvbHVtbi5zY3NzIiwibW9sZWN1bGVzL19zaWRlYmFyLW1lbnUuc2NzcyIsIm1vbGVjdWxlcy9faGVhZGVyLXVzZXItbWVudS5zY3NzIiwibW9sZWN1bGVzL19oZWFkZXItc2VhcmNoLnNjc3MiLCJtb2xlY3VsZXMvX3NvZnR3YXJlLXRpZXIuc2NzcyIsIm1vbGVjdWxlcy9fcmFkaW8tY2hlY2tib3gtcHJpY2Uuc2NzcyIsIm1vbGVjdWxlcy9fb3B0aW9ucy1ncm91cC5zY3NzIiwib3JnYW5pc21zL19iZy1pbWFnZS10ZXh0LnNjc3MiLCJvcmdhbmlzbXMvX2ZlYXR1cmVzLnNjc3MiLCJvcmdhbmlzbXMvX3RvcC1mZWF0dXJlcy1zZWN0aW9uLnNjc3MiLCJvcmdhbmlzbXMvX3Byb2R1Y3QtY2FyZHMuc2NzcyIsIm9yZ2FuaXNtcy9faGVhZGVyLnNjc3MiLCJvcmdhbmlzbXMvX2hlcm8uc2NzcyIsIm9yZ2FuaXNtcy9faGlnaGxpZ2h0cy5zY3NzIiwib3JnYW5pc21zL19jb250ZW50LXNlY3Rpb24uc2NzcyIsIm9yZ2FuaXNtcy9fcmVzb3VyY2VzLnNjc3MiLCJvcmdhbmlzbXMvX3RlYW0tbWFuYWdlbWVudC5zY3NzIiwib3JnYW5pc21zL191c2VyLXN0b3JpZXMuc2NzcyIsIm9yZ2FuaXNtcy9fY2FsbC10by1hY3Rpb24uc2NzcyIsIm9yZ2FuaXNtcy9fbG9naW4tc2VjdGlvbi5zY3NzIiwib3JnYW5pc21zL19sb2dpbi1jb250ZW50LXNlY3Rpb24uc2NzcyIsIm9yZ2FuaXNtcy9fZm9vdGVyLnNjc3MiLCJvcmdhbmlzbXMvX3N0ZXAtY29sdW1ucy5zY3NzIiwib3JnYW5pc21zL19zb2Z0d2FyZS10aWVycy5zY3NzIiwib3JnYW5pc21zL19jb3JlLWhpZ2hsaWdodHMuc2NzcyIsIm9yZ2FuaXNtcy9fcG9zdHMtbGlzdC5zY3NzIiwib3JnYW5pc21zL19iZW5lZml0cy5zY3NzIiwib3JnYW5pc21zL19ib2FyZC1pdGVtcy5zY3NzIiwib3JnYW5pc21zL3dvb2NvbW1lcmNlL2NoZWNrb3V0LnNjc3MiLCJvcmdhbmlzbXMvd29vY29tbWVyY2UvZm9ybXMuc2NzcyIsIm9yZ2FuaXNtcy93b29jb21tZXJjZS9teS1hY2NvdW50LnNjc3MiLCJvcmdhbmlzbXMvd29vY29tbWVyY2UvbG9naW4uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakI7O0dBRUc7QUNBSCxpREFBWTtBREVaO0VBQ0UsbUJBQW1CLEVBQ3BCOztBRUpEO0VBQ0UsdUJBQXNDO0VBQ3RDLHNEQUFTO0VBQ1QsdVNBR2dHO0VBQ2hHLG9CQUFvQjtFQUNwQixtQkFBbUIsRUFBQTs7QUhLckI7RUdERSxnRkFBZ0Y7RUFDaEYsa0NBQWlEO0VBQ2pELFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIsZUFBZTtFQUVmLHVDQUF1QztFQUN2QyxvQ0FBb0M7RUFDcEMs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QztFTTdGSixtQkFBbUI7RUFDbkIsZ0JBSG1CLEVOaUdkOztBQUVEO0VNakdKLG1CQUFtQjtFQUNuQixpQkFIbUIsRU5xR2Q7O0FBTUg7RU05RUosaUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosaUJDZXNCLEVMMkVqQjs7QUFJQztFTTdGSixtQkFBbUI7RUFDbkIsZ0JBSG1CLEVOaUdkOztBQUVEO0VNakdKLG1CQUFtQjtFQUNuQixpQkFIbUIsRU5xR2Q7O0FBTUg7RU05RUosdUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosV0Nlc0IsRUwyRWpCOztBQUlDO0VNN0ZKLG1CQUFtQjtFQUNuQixVQUhtQixFTmlHZDs7QUFFRDtFTWpHSixtQkFBbUI7RUFDbkIsV0FIbUIsRU5xR2Q7O0FBTUg7RU05RUosdUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosaUJDZXNCLEVMMkVqQjs7QUFJQztFTTdGSixtQkFBbUI7RUFDbkIsZ0JBSG1CLEVOaUdkOztBQUVEO0VNakdKLG1CQUFtQjtFQUNuQixpQkFIbUIsRU5xR2Q7O0FBTUg7RU05RUosaUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosaUJDZXNCLEVMMkVqQjs7QUFJQztFTTdGSixtQkFBbUI7RUFDbkIsZ0JBSG1CLEVOaUdkOztBQUVEO0VNakdKLG1CQUFtQjtFQUNuQixpQkFIbUIsRU5xR2Q7O0FBTUg7RU05RUosdUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosV0Nlc0IsRUwyRWpCOztBQUlDO0VNN0ZKLG1CQUFtQjtFQUNuQixVQUhtQixFTmlHZDs7QUFFRDtFTWpHSixtQkFBbUI7RUFDbkIsV0FIbUIsRU5xR2Q7O0FBTUg7RU05RUosdUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosaUJDZXNCLEVMMkVqQjs7QUFJQztFTTdGSixtQkFBbUI7RUFDbkIsZ0JBSG1CLEVOaUdkOztBQUVEO0VNakdKLG1CQUFtQjtFQUNuQixpQkFIbUIsRU5xR2Q7O0FBTUg7RU05RUosaUJEYnNCLEVMNkZqQjs7QUFwQkQ7RUl4RkosaUJDZXNCLEVMMkVqQjs7QUFJQztF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QkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLHVCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosV0Nlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLFVBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLFdBSG1CLEVOcUdkO0VBTUg7SU05RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixpQkNlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFTmlHZDtFQUVEO0lNakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRU5xR2Q7RUFNSDtJTTlFSixpQkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLHVCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosV0Nlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLFVBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLFdBSG1CLEVOcUdkO0VBTUg7SU05RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixpQkNlc0IsRUwyRWpCO0VBSUM7SU03RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFTmlHZDtFQUVEO0lNakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRU5xR2Q7RUFNSDtJTTlFSixpQkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLHVCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosWUNlc0Is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RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixXQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsVUFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsV0FIbUIsRU5xR2Q7RUFNSDtJTTlFSix1QkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLGlCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosaUJDZXNCLEVMMkVqQjtFQUlDO0lNN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVOcUdkO0VBTUg7SU05RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixXQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsVUFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsV0FIbUIsRU5xR2Q7RUFNSDtJTTlFSix1QkRic0IsRUw2RmpCO0VBcEJEO0lJeEZKLGlCQ2VzQixFTDJFakI7RUFJQztJTTdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVOaUdkO0VBRUQ7SU1qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFTnFHZDtFQU1IO0lNOUVKLGlCRGJzQixFTDZGakI7RUFwQkQ7SUl4RkosaUJDZXNCLEVMMkVqQjtFQUlDO0lNN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRU5pR2Q7RUFFRDtJTWpHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVOcUdkO0VBTUg7SU05RUosdUJEYnNCLEVMNkZqQjtFQXBCRDtJSXhGSixZQ2VzQixFTDJFakI7RUFnQkQ7SU05RUosdUJEYnNCLEVMNkZqQjtFQUtEO0lPekdGLFlWOEZ1RDtJVTdGdkQsWUFBaUIsRUFpQ2xCO0lBbkNHO01BeUJBLFlBQVksRUFDYjtJQTFCQztNQTZCQSxZQUFZLEVBQ2I7SVA0RUM7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akNEO0VBSUkscUJOdlBVO0VNbVFWLGlCVm5NVztFVTJNWCxjQUFjO0VBT2Qsc0JWak5pQixFVW1OcEI7O0FBakNEO0VBSUksZ0JOdlBVO0VNbVFWLGlCVm5NVztFVTJNWCxjQUFjO0VBT2Qsc0JWak5pQixFVW1OcEI7O0FoQjdNSDtFZ0I0S0U7SUFJSSxnQk52UFUsRU1vUmI7RUFqQ0Q7SUFJSSxrQk52UFUsRU1vUmI7RUFqQ0Q7SUFJSSxxQk52UFUsRU1vUmI7RUFqQ0Q7SUFJSSxxQk52UFUsRU1vUmI7RUFqQ0Q7SUFJSSxtQk52UFUsRU1vUmI7RUFqQ0Q7SUFJSSxnQk52UFUsRU1vUmIsRUFBQTs7QUFNUDtFQUNFLHFCQUFxQjtFQUNyQixlVjdTYztFVThTZCxzQlYzTHlCO0VVNkx6QixnQkFBZ0IsRUFhakI7RUFsQkQ7SUFTSSxlVmxNMEIsRVVzTTNCO0VBYkg7SUFnQkksVUFBVSxFQUNYOztBQUlIO0VBQ0UsWUFBWTtFQUVaLG9CTmxUa0I7RU1tVGxCLFVBQVU7RUFDVixxQlY5TXlCO0VVZ056QixjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLGlDVmpVaUI7RVVrVWpCLGVBQWUsRUFDaEI7O0FBR0Q7OztFQUdFLG9CVnhPMEI7RVV5TzFCLDZCVnZOeUI7RVV3TnpCLGlCVjNPc0IsRVU0T3ZCOztBQUdEO0VBQ0UsbUJBQW1CLEVBQ3BCOztBQUdEO0VBQ0UscUJWak9zQjtFVWtPdEIsc0JWcE9rQixFVXFPbkI7O0FBR0Q7RUFDRSxxQlZ2T3NCLEVVd092Qjs7QUFHRDtFQUVJLHFCVjVPMkI7RVU2TzNCLGlCQUFpQixFQUNsQjs7QUFJSDtFQUNFLG9CVmxQeUIsRVV3UDFCO0VBSkM7SUFDRSxzQlZuUDhCO0lVb1A5QixrQlYvVm1CLEVVZ1dwQjs7QUFJSDtFQUNFLGlCVmpSMEI7RVVrUjFCLHVDTjFXa0I7RU0yV2xCLCtCVnBYaUIsRVUwWGxCO0VBVEQ7SUFNSSxpQlZ2Um9CO0lVd1JwQixlVnZYYSxFVXdYZDs7QUFJSDtFQUNFLGVBQWU7RUFDZixxQk50WGtCO0VNdVhsQixlVi9YZSxFVW9ZaEI7RUFS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MEJkM0VnQjtJYzRFaEIsZWRqRWEsRWNvTU47SUFqQlA7TUEvR0UsMEJBUDhCO01BUTlCLGVkckVXLEVjc0VaO0VBNkdEO0lBbkhBLDBCZDFFa0I7SWMyRWxCLGVkakVhLEVjb01OO0lBakJQO01BL0dFLDBCQVA4QjtNQVE5QixlZHJFVyxFY3NFWjtFQTZHRDtJQW5IQSwwQmR6RWdCO0ljMEVoQixlZGxFYSxFY3FNTjtJQWpCUDtNQS9HRSwwQkFQOEI7TUFROUIsZWR0RVcsRWN1RVo7RUE2R0Q7SUFuSEEsMEJkeEVnQjtJY3lFaEIsZWRsRWEsRWNxTU47SUFqQlA7TUEvR0UsMEJBUDhCO01BUTlCLGVkdEVXLEVjdUVaO0VBNkdEO0lBbkhBLDBCZHZFYztJY3dFZCxlZGpFYSxFY29NTjtJQWpCUDtNQS9HRSwwQkFQOEI7TUFROUIsZWRyRVcsRWNzRVo7RUE2R0Q7SUExREEsY2Q2RzRCO0ljNUc1QixvQkFBb0IsRUFpR2pCO0lBeENIO01BdERFLDBCZHhJYztNY3lJZCxlZDlIVyxFYytIWjtJQW9ERDtNQTFEQSxjZDZHNEI7TWM1RzVCLG9CQUFvQixFQStGYjtNQXRDUDtRQXRERSwwQmR4SWM7UWN5SWQsZWQ5SFcsRWMrSFo7SUFvREQ7TUExREEsY2Q2RzRCO01jNUc1QixvQkFBb0IsRUErRmI7TUF0Q1A7UUF0REUsMEJkdklnQjtRY3dJaEIsZWQ5SFcsRWMrSFo7SUFvREQ7TUExREEsY2Q2RzRCO01jNUc1QixvQkFBb0IsRUErRmI7TUF0Q1A7UUF0REUsMEJkdEljO1FjdUlkLGVkL0hXLEVjZ0laO0lBb0REO01BMURBLGNkNkc0QjtNYzVHNUIsb0JBQW9CLEVBK0ZiO01BdENQO1FBdERFLDBCZHJJYztRY3NJZCxlZC9IVyxFY2dJWjtJQW9ERDtNQTFEQSxjZDZHNEI7TWM1RzVCLG9CQUFvQixFQStGYjtNQXRDUDtRQXRERSwwQmRwSVk7UWNxSVosZWQ5SFcsRWMrSFo7RUFvREQ7SUFuRkEsMEJkM0dnQjtJYzRHaEIsZWQ1R2dCLEVjbVBYO0lBckRMO01BdEdFLDhCQUE4QixFQUMvQjtJQXFHRDtNQS9G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QXFCO0VBQ3JCLGdCQUFnQixFQUtqQjtFQVpEO0lBU0ksZ0JBQWdCO0lBQ2hCLGVBQWUsRUFDaEI7O0FBR0g7RUFLSSxvQkFBb0I7RUFDcEIsY0FBYyxFQUNmOztBQ25GSDtFckM2R0Usb0JqRDFGc0I7TWlEMEZ0Qix3QmpEMUZzQjtVaUQwRnRCLG9CakQxRnNCO0VpRDhGcEIscUJqRDlGb0I7RUZQcEIsaUJBRmtCO0VBR2xCLGdCQUhrQjtFbUR3RWxCLHFCakQvRG9CLEVzRlZ2QjtFbkdpSks7SW1HMUpOO01yQzZHRSxvQmpEMUZzQjtVaUQwRnRCLHdCakQxRnNCO2NpRDBGdEIsb0JqRDFGc0I7TWlEOEZwQixxQmpEOUZvQjtNRlBwQix3QkFGa0I7TUFHbEIsdUJBSGtCO01tRHdFbEIscUJqRC9Eb0IsRXNGVnZCLEVBQUE7RW5HNElLO0ltR3JKTjtNeEZZSSx5QkFGa0I7TUFHbEIsd0JBSGtCLEV3RkRyQixFQUFBO0VuR2lKSztJbUcxSk47TXJDNkdFLG9CakQxRnNCO1VpRDBGdEIsbUJqRDFGc0I7Y2lEMEZ0QixlakQxRnNCO01pRDhGcEIsZ0JqRDlGb0I7TUZQcEIsaUJBRmtCO01BR2xCLGdCQUhrQjtNbUR3RWxCLGdCakQvRG9CLEVzRlZ2QixFQUFBOztBQUVEO0VyQ2tHRSxvQmpEMUZzQjtNaUQwRnRCLHdCakQxRnNCO1VpRDBGdEIsb0JqRDFGc0I7RWlEOEZwQixxQmpEOUZvQjtFRlBwQix3QkFGa0I7RUFHbEIsdUJBSGtCO0VtRHdFbEIscUJqRC9Eb0I7RXNGQXRCLDhCQUE4QjtFQUM5Qiw4QkFBOEIsRUFZL0I7RUFwQkM7SUFDRSxtQkFBbUI7SUFDbkIsaUZBQThEO0lBQzlELDBCQUEwQixFQUMzQjtFbkdxSUc7SW1HMUlOO014RkNJLHlCQUZrQjtNQUdsQix3QkFIa0IsRXdGc0JyQixFQUFBO0VuRzBISztJbUcvSU47TXJDa0dFLG9CakQxRnNCO1VpRDBGdEIsd0JqRDFGc0I7Y2lEMEZ0QixvQmpEMUZzQjtNaUQ4RnBCLHFCakQ5Rm9CO01GUHBCLHdCQUZrQjtNQUdsQix1QkFIa0I7TW1E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O0E1SGlJRztFNEh6SUo7SUFNSSxXQUFXLEVBRWQsRUFBQTs7QUFJQztFQUNFLG9CQUFvQixFQUNyQjs7QUFISDtFQUtJLGlCQUFpQixFQUNsQjs7QUFJSDtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUIsRUFLcEI7RUFIQztJQUNFLGtCQUFrQixFQUNuQjs7QUNyREw7RXBIZ0dFLG9CQ1RvQjtFb0RuRGxCLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFJbEIscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCx3QkFsQm1CO01Ba0JuQixvQkFsQm1CLEUrRHBCcEI7O0FBSkg7RS9Ec0hFLG9CakQxRnNCO01pRDBGdEIsa0JqRDFGc0I7VWlEMEZ0QixjakQxRnNCO0VpRDhGcEIsZWpEOUZvQjtFRlBwQix3QkFGa0I7RUFHbEIsdUJBSGtCO0VtRHdFbEIsZWpEL0RvQixFZ0hyQnJCO0U3SHVKRztJNkg5Sk47TWxIcUJJLHlCQUZrQjtNQUdsQix3QkFIa0IsRWtIWm5CLEVBQUE7O0FBUEg7RS9Ec0hFLG9CakQxRnNCO01pRDBGdEIsa0JqRDFGc0I7VWlEMEZ0QixjakQxRnNCO0VpRDhGcEIsZWpEOUZvQjtFRlBwQix3QkFGa0I7RUFHbEIsdUJBSGtCO0VtRHdFbEIsZWpEL0RvQixFZ0hsQnJCO0U3SG9KRztJNkh0Sko7TWxIYUUseUJBRmtCO01BR2xCLHdCQUhrQixFa0hUbkIsRUFBQTs7QTdIeUpHO0U2SG5LTjtJL0RzSEUsb0JqRDFGc0I7UWlEMEZ0QixtQmpEMUZzQjtZaUQwRnRCLGVqRDFGc0I7SWlEOEZwQixnQmpEOUZvQjtJRlBwQixpQkFGa0I7SUFHbEIsZ0JBSGtCO0ltRHdFbEIsZ0JqRC9Eb0IsRWdIWm5CO0VBQ0Q7SS9EcUdGLG9CakQxRnNCO1FpRDBGdEIsbUJqRDFGc0I7WWlEMEZ0QixlakQxRnNCO0lpRDhGcEIsZ0JqRDlGb0I7SUZQcEIsaUJBRmtCO0lBR2xCLGdCQUhrQjtJbUR3RWxCLGdCakQvRG9CO0lnSFRsQixpQkFBaUIsRUFDbEIsRUFBQTs7QUFwQkw7RTlEa0VFLHNGQUFvRTtFQUNwRSwyQkFBc0M7RUFDdEMsdUJBQXVCO0VBQ3ZCLGVBQWU7RUFDZixpQkFBaUI7RUEwSWpCLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFFbEIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFOEQ1TGYsaUJBQWlCLEVBQ2xCO0VBNUJIO0k5RHlFSSxzRkFBb0U7SUFDcEUsMkJBQXNDO0lBQ3RDLGVBQWUsRUFDaEI7RThEckRrQjtJOUR1RGpCLHNGQUFvRTtJQUNwRSwyQkFBc0M7SUFDdEMsU0FBUztJQUNULGVBQWUsRUFDaEI7RThEM0RrQjtJOUQ2RGpCLG1GQUFpRTtJQUNqRSwyQkFBc0M7SUFDdEMsU0FBUztJQUNULGVBQWUsRUFDaEI7RThEakVrQjtJOURtRWpCLDJCQUFzQyxFQUN2Qzs7QThEN0REO0VqRXFEQSxtQ0FBbUM7RUFDbkMsZ0JBRm1CO0VBR25CLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIscUJBQXFCO0VBQ3JCLG9CQUFvQjtFQUNwQix1QkFBdUI7RUFDdkIsOEJBQVc7RWlFMURULGlCQUFpQixFQUNsQjtFN0hrSUc7STZIcklKO01qRWdFRSxnQkFBZ0I7TUFDaEIsa0JBQWtCLEVpRTlEbkIsRUFBQTs7QUFqQ0g7RUFvQ0ksY0FBYyxFQUNmOztBN0g4SEc7RTZIbktOO0lBeUNNLGFBQWEsRUFDZDtFQUNEO0lBQ0UsZ0JBQWdCLEVBQ2pCO0VBN0NMO0lBK0NNLGlCQUFpQixFQUNsQjtFQWhETDtJQWtETSxhQUFhLEVBQ2QsRUFBQTs7QUFRZ0I7RUFDakIsaUJBQWlCO0U5RE1uQixzRkFBb0U7RUFDcEUsMkJBQXNDO0VBQ3RDLHVCQUF1QjtFQUN2QixlQUFlO0VBQ2YsaUJBQWlCO0VBMElqQixpQkFBaUI7RUFDakIsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBRWxCLGdCQUFnQjtFQUNoQixpQkFBaUIsRThEdkpoQjtFQVJIO0k5RGlCSSxzRkFBb0U7SUFDcEUsMkJBQXNDO0lBQ3RDLGVBQWUsRUFDaEI7RThEcEJIO0k5RHNCSSxzRkFBb0U7SUFDcEUsMkJBQXNDO0lBQ3RDLFNBQVM7SUFDVCxlQUFlLEVBQ2hCO0U4RDFCSDtJOUQ0QkksbUZBQWlFO0lBQ2pFLDJCQUFzQztJQUN0QyxTQUFTO0lBQ1QsZUFBZSxFQUNoQjtFOEQ3QmtCO0k5RCtCakIsMkJBQXNDLEVBQ3ZDOztBK0QzRkg7RXJIZ0dFLGlCcUg3RnVDO0VoRWlDckMsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUlsQixxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLHdCQWxCbUI7TUFrQm5CLG9CQWxCbUIsRWdFcEJsQjs7QUFJTDtFQUNFLGFBQWE7RUFDYixlQUFlO0VBQ2YsbUJBQW1CLEVBSXBCO0VBSEM7SUFDRSxrQkFBa0IsRUFDbkIiLCJmaWxlIjoidG9vbGtpdC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIFRvb2xraXQgc3R5bGVzXG4gKi9cbkBpbXBvcnQgdXJsKGh0dHBzOi8vdXNlLnR5cGVraXQubmV0L21meDFyb2cuY3NzKTtcbi5mLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiaWNvbW9vblwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2ljb21vb24vZm9udHMvaWNvbW9vbi5lb3Q/YWhmOG52XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2ljb21vb24vZm9udHMvaWNvbW9vbi5lb3Q/YWhmOG52I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9pY29tb29uL2ZvbnRzL2ljb21vb24udHRmP2FoZjhudlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvaWNvbW9vbi9mb250cy9pY29tb29uLndvZmY/YWhmOG52XCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL2ljb21vb24vZm9udHMvaWNvbW9vbi5zdmc/YWhmOG52I2ljb21vb25cIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuW2NsYXNzXj1cImljb24tXCJdLCBbY2xhc3MqPVwiIGljb24tXCJdIHtcbiAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgZm9udC1mYW1pbHk6IFwiaWNvbW9vblwiICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4uaWNvbi1zdGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSHXCI7XG4gIGNvbG9yOiAjMzk5NmZmOyB9XG5cbi5pY29uLWNsb3NlLW1lbnU6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIZcIjsgfVxuXG4uaWNvbi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCLupINcIjtcbiAgY29sb3I6ICNmZmY7IH1cblxuLmljb24tY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIRcIjsgfVxuXG4uaWNvbi1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSFXCI7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5pY29uLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kgFwiO1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uaWNvbi1jYXJldDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kgVwiOyB9XG5cbi5pY29uLWNoZWNrbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kglwiO1xuICBjb2xvcjogI2ZmZjsgfVxuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuYXVkaW8sXG5jYW52YXMsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFNldHMgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudHMgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IH1cblxuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkcmVzc2VzIGBvdXRsaW5lYCBpbmNvbnNpc3RlbmN5IGJldHdlZW4gQ2hyb21lIGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuYTpmb2N1cyB7XG4gIG91dGxpbmU6IHRoaW4gZG90dGVkOyB9XG5cbi8qXG4gKiBJbXByb3ZlcyByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFR5cG9ncmFwaHlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkcmVzc2VzIGBoMWAgZm9udCBzaXplcyB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWAgaW4gRmlyZWZveCA0KyxcbiAqIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtOyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzksIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG4vKlxuICogQ29ycmVjdHMgZm9udCBmYW1pbHkgc2V0IG9kZGx5IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbi8qXG4gKiBJbXByb3ZlcyByZWFkYWJpbGl0eSBvZiBwcmUtZm9ybWF0dGVkIHRleHQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDsgfVxuXG4vKlxuICogU2V0cyBjb25zaXN0ZW50IHF1b3RlIHR5cGVzLlxuICovXG5xIHtcbiAgcXVvdGVzOiBcIlxcMjAxQ1wiIFwiXFwyMDFEXCIgXCJcXDIwMThcIiBcIlxcMjAxOVwiOyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qXG4gKiBQcmV2ZW50cyBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmVzIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkuXG4gKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKlxuICogQ29ycmVjdHMgb3ZlcmZsb3cgZGlzcGxheWVkIG9kZGx5IGluIElFIDkuXG4gKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRmlndXJlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGRyZXNzZXMgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpIDUuXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKlxuICogMS4gQ29ycmVjdHMgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLypcbiAqIDEuIENvcnJlY3RzIGZvbnQgZmFtaWx5IG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdHMgZm9udCBzaXplIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuICogMy4gQWRkcmVzc2VzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLypcbiAqIEFkZHJlc3NlcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdHMgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmVzIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLypcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5pbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLypcbiAqIDEuIEFkZHJlc3NlcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS5cbiAqIDIuIFJlbW92ZXMgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LlxuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKlxuICogMS4gQWRkcmVzc2VzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzc2VzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG5cbi8qXG4gKiBSZW1vdmVzIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcbiAqIG9uIE9TIFguXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qXG4gKiBSZW1vdmVzIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKlxuICogMS4gUmVtb3ZlcyBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkuXG4gKiAyLiBJbXByb3ZlcyByZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGluIGFsbCBicm93c2Vycy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAvKiAyICovIH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxuLypcbiogU2N1dCwgYSBjb2xsZWN0aW9uIG9mIFNhc3MgdXRpbGl0aWVzXG4qIHRvIGVhc2UgYW5kIGltcHJvdmUgb3VyIGltcGxlbWVudGF0aW9ucyBvZiBjb21tb24gc3R5bGUtY29kZSBwYXR0ZXJucy5cbiogdjEuNC4wXG4qIERvY3MgYXQgaHR0cDovL2RhdmlkdGhlY2xhcmsuZ2l0aHViLmlvL3NjdXRcbiovXG4vKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi40LjFcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmV2ZWFsLCAucmV2ZWFsLnRpbnksIC5yZXZlYWwuc21hbGwsIC5yZXZlYWwubGFyZ2Uge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuXG4vKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuLyogRG9jdW1lbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAyICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqLyB9XG5cbi8qIFNlY3Rpb25zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmZpZ2NhcHRpb24sXG5maWd1cmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gICAgICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gICAgICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lLXdpZHRoOiAwOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAgICAgKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi8gfVxuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqLyB9XG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDsgfVxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gICAgICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqL1xuICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi8gfVxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi8gfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEhpZGRlblxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gICAgICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZvdW5kYXRpb24tbXEge1xuICBmb250LWZhbWlseTogXCJzbWFsbD0wZW0mbWVkaXVtPTQwZW0mbGFyZ2U9NjRlbSZ4bGFyZ2U9NzVlbSZ4eGxhcmdlPTkwZW1cIjsgfVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxMDAlOyB9XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgfVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5zZWxlY3Qge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4ubWFwX2NhbnZhcyBpbWcsXG4ubWFwX2NhbnZhcyBlbWJlZCxcbi5tYXBfY2FudmFzIG9iamVjdCxcbi5tcWEtZGlzcGxheSBpbWcsXG4ubXFhLWRpc3BsYXkgZW1iZWQsXG4ubXFhLWRpc3BsYXkgb2JqZWN0IHtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7IH1cblxuYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA2OC43NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93OjpiZWZvcmUsIC5yb3c6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAucm93OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW4sIC5yb3cuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLnJvdyAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtOyB9IH1cbiAgICAucm93IC5yb3cuY29sbGFwc2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnJvdy5leHBhbmRlZCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gICAgLnJvdy5leHBhbmRlZCAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5yb3c6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5yb3cuZ3V0dGVyLXNtYWxsID4gLmNvbHVtbiwgLnJvdy5ndXR0ZXItc21hbGwgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTsgfVxuICAucm93Lmd1dHRlci1tZWRpdW0gPiAuY29sdW1uLCAucm93Lmd1dHRlci1tZWRpdW0gPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9XG5cbi5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmNvbHVtbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAuY29sdW1uczpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLmNvbHVtbi5lbmQ6bGFzdC1jaGlsZDpsYXN0LWNoaWxkLCAuZW5kLmNvbHVtbnM6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uY29sdW1uLnJvdy5yb3csIC5yb3cucm93LmNvbHVtbnMge1xuICBmbG9hdDogbm9uZTsgfVxuXG4ucm93IC5jb2x1bW4ucm93LnJvdywgLnJvdyAucm93LnJvdy5jb2x1bW5zIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5zbWFsbC0xIHtcbiAgd2lkdGg6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC04LjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTAge1xuICBtYXJnaW4tbGVmdDogMCU7IH1cblxuLnNtYWxsLTIge1xuICB3aWR0aDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtMyB7XG4gIHdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLXB1c2gtMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMjUlOyB9XG5cbi5zbWFsbC1wdWxsLTMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0yNSU7IH1cblxuLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0zMy4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuXG4uc21hbGwtNSB7XG4gIHdpZHRoOiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC00MS42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtNiB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLXB1c2gtNiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNTAlOyB9XG5cbi5zbWFsbC1wdWxsLTYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC01MCU7IH1cblxuLnNtYWxsLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtNyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC01OC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuXG4uc21hbGwtOCB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtOCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC02Ni42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtOSB7XG4gIHdpZHRoOiA3NSU7IH1cblxuLnNtYWxsLXB1c2gtOSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNzUlOyB9XG5cbi5zbWFsbC1wdWxsLTkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC03NSU7IH1cblxuLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtMTAge1xuICB3aWR0aDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTEwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtMTAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC04My4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4uc21hbGwtMTEge1xuICB3aWR0aDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTExIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtMTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC05MS42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLTEyIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXVwLTEgPiAuY29sdW1uLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC0yID4gLmNvbHVtbiwgLnNtYWxsLXVwLTIgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNTAlOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC0zID4gLmNvbHVtbiwgLnNtYWxsLXVwLTMgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC00ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTQgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMjUlOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC01ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTUgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMjAlOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC02ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTYgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC03ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTcgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTQuMjg1NzElOyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC04ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTggPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTIuNSU7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnNtYWxsLWNvbGxhcHNlIC5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5leHBhbmRlZC5yb3cgLnNtYWxsLWNvbGxhcHNlLnJvdyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH1cblxuLnNtYWxsLWNlbnRlcmVkIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAuc21hbGwtY2VudGVyZWQsIC5zbWFsbC1jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4uc21hbGwtdW5jZW50ZXJlZCxcbi5zbWFsbC1wdXNoLTAsXG4uc21hbGwtcHVsbC0wIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1bGwtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLm1lZGl1bS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTE2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tcHVzaC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tcHVsbC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTI1JTsgfVxuICAubWVkaXVtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1bGwtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0zMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubWVkaXVtLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tcHVsbC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTUwJTsgfVxuICAubWVkaXVtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1bGwtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubWVkaXVtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5tZWRpdW0tcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNzUlOyB9XG4gIC5tZWRpdW0tcHVsbC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTc1JTsgfVxuICAubWVkaXVtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubWVkaXVtLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAubWVkaXVtLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTIgPiAuY29sdW1uLCAubWVkaXVtLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAubWVkaXVtLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTMgPiAuY29sdW1uLCAubWVkaXVtLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTQgPiAuY29sdW1uLCAubWVkaXVtLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTUgPiAuY29sdW1uLCAubWVkaXVtLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTYgPiAuY29sdW1uLCAubWVkaXVtLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTcgPiAuY29sdW1uLCAubWVkaXVtLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAgIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAubWVkaXVtLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTggPiAuY29sdW1uLCAubWVkaXVtLXVwLTggPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tY29sbGFwc2UgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5leHBhbmRlZC5yb3cgLm1lZGl1bS1jb2xsYXBzZS5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9XG4gIC5tZWRpdW0tY2VudGVyZWQge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgIC5tZWRpdW0tY2VudGVyZWQsIC5tZWRpdW0tY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5tZWRpdW0tdW5jZW50ZXJlZCxcbiAgLm1lZGl1bS1wdXNoLTAsXG4gIC5tZWRpdW0tcHVsbC0wIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLmxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTE2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubGFyZ2UtcHVzaC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjUlOyB9XG4gIC5sYXJnZS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubGFyZ2UtcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlOyB9XG4gIC5sYXJnZS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubGFyZ2UtcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNzUlOyB9XG4gIC5sYXJnZS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS11cC0xID4gLmNvbHVtbiwgLmxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTIgPiAuY29sdW1uLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC0zID4gLmNvbHVtbiwgLmxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC5sYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTUgPiAuY29sdW1uLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC02ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC5sYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTggPiAuY29sdW1uLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5sYXJnZS1jb2xsYXBzZSAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmV4cGFuZGVkLnJvdyAubGFyZ2UtY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgLmxhcmdlLWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAubGFyZ2UtY2VudGVyZWQsIC5sYXJnZS1jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmxhcmdlLXVuY2VudGVyZWQsXG4gIC5sYXJnZS1wdXNoLTAsXG4gIC5sYXJnZS1wdWxsLTAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuLmNvbHVtbi1ibG9jayB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbHVtbi1ibG9jayB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICAgICAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbmRpdixcbmRsLFxuZHQsXG5kZCxcbnVsLFxub2wsXG5saSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuZmllbGRzZXQgbGVnZW5kLFxuLnBvc3RzLWxpc3RfX2hlYWRlcixcbi53b29jb21tZXJjZS1jaGVja291dCAjb3JkZXJfcmV2aWV3X2hlYWRpbmcsXG5oNSxcbi5nZm9ybXMtc2VjdGlvbiAuZ3NlY3Rpb25fdGl0bGUsXG5oNixcbnByZSxcbmZvcm0sXG5wLFxuYmxvY2txdW90ZSxcbnRoLFxudGQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxucCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnN0cm9uZyxcbmIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5maWVsZHNldCBsZWdlbmQsXG4ucG9zdHMtbGlzdF9faGVhZGVyLFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNvcmRlcl9yZXZpZXdfaGVhZGluZyxcbmg1LFxuLmdmb3Jtcy1zZWN0aW9uIC5nc2VjdGlvbl90aXRsZSxcbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG4gIGgxIHNtYWxsLFxuICBoMiBzbWFsbCxcbiAgaDMgc21hbGwsXG4gIGg0IHNtYWxsLCBmaWVsZHNldCBsZWdlbmQgc21hbGwsIC5wb3N0cy1saXN0X19oZWFkZXIgc21hbGwsIC53b29jb21tZXJjZS1jaGVja291dCAjb3JkZXJfcmV2aWV3X2hlYWRpbmcgc21hbGwsXG4gIGg1IHNtYWxsLCAuZ2Zvcm1zLXNlY3Rpb24gLmdzZWN0aW9uX3RpdGxlIHNtYWxsLFxuICBoNiBzbWFsbCB7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgY29sb3I6ICNjYWNhY2E7IH1cblxuaDEge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDMge1xuICBmb250LXNpemU6IDEuMTg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg0LCBmaWVsZHNldCBsZWdlbmQsIC5wb3N0cy1saXN0X19oZWFkZXIsIC53b29jb21tZXJjZS1jaGVja291dCAjb3JkZXJfcmV2aWV3X2hlYWRpbmcge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDUsIC5nZm9ybXMtc2VjdGlvbiAuZ3NlY3Rpb25fdGl0bGUge1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbTsgfVxuICBoMiB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMS45Mzc1cmVtOyB9XG4gIGg0LCBmaWVsZHNldCBsZWdlbmQsIC5wb3N0cy1saXN0X19oZWFkZXIsIC53b29jb21tZXJjZS1jaGVja291dCAjb3JkZXJfcmV2aWV3X2hlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMS41NjI1cmVtOyB9XG4gIGg1LCAuZ2Zvcm1zLXNlY3Rpb24gLmdzZWN0aW9uX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMxNzc5YmE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMTQ2OGEwOyB9XG4gIGEgaW1nIHtcbiAgICBib3JkZXI6IDA7IH1cblxuaHIge1xuICBjbGVhcjogYm90aDtcbiAgbWF4LXdpZHRoOiA2OC43NXJlbTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDEuMjVyZW0gYXV0bztcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxudWwsXG5vbCxcbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG51bCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cblxub2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICBkbCBkdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuMTg3NXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2FjYWNhOyB9XG4gIGJsb2NrcXVvdGUsIGJsb2NrcXVvdGUgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBjb2xvcjogIzhhOGE4YTsgfVxuXG5jaXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBjb2xvcjogIzhhOGE4YTsgfVxuICBjaXRlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigJQgXCI7IH1cblxuYWJiciwgYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwYTBhMGE7XG4gIGN1cnNvcjogaGVscDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG5jb2RlIHtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbmtiZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgY29sb3I6ICMwYTBhMGE7IH1cblxuLnN1YmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzhhOGE4YTsgfVxuXG4ubGVhZCB7XG4gIGZvbnQtc2l6ZTogMTI1JTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG4uc3RhdCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuICBwICsgLnN0YXQge1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG5cbnVsLm5vLWJ1bGxldCwgb2wubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1lZGl1bS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWVkaXVtLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lZGl1bS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5sYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuLnNob3ctZm9yLXByaW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSBwcmludCB7XG4gICoge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIHRhYmxlLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRoZWFkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0Ym9keS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdHIuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgdGguc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIC5pciBhOmFmdGVyLFxuICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICBhW2hyZWZePScjJ106YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDAuNWNtOyB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7IH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bzsgfSB9XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IDAuODVlbSAxZW07XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ2NzllO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24udGlueSB7XG4gICAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLmJ1dHRvbi5zbWFsbCB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5idXR0b24ubGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzEyNjE5NTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZTVlNWU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uc3VjY2Vzczpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24uYWxlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNTNiMmE7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC4yNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnksIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnkge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeSwgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnk6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnksIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnk6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnk6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnkge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5LCAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnk6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeSwgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuc3VjY2VzcywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcyB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzLCAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQuc3VjY2Vzczpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2Vzczpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nIHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmcsIC5idXR0b24uZGlzYWJsZWQud2FybmluZzpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbiAgICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydCB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydCwgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydDpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydDpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uaG9sbG93IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMTc3OWJhO1xuICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3csIC5idXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uaG9sbG93LmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMGMzZDVkO1xuICAgICAgY29sb3I6ICMwYzNkNWQ7IH1cbiAgICAgIC5idXR0b24uaG9sbG93OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdzpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdzpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMTc3OWJhO1xuICAgICAgICBjb2xvcjogIzE3NzliYTsgfVxuICAgIC5idXR0b24uaG9sbG93LnByaW1hcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMGMzZDVkO1xuICAgICAgICBjb2xvcjogIzBjM2Q1ZDsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNzc5YmE7XG4gICAgICAgICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc2NzY3NjtcbiAgICAgIGNvbG9yOiAjNzY3Njc2OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzNiM2IzYjtcbiAgICAgICAgY29sb3I6ICMzYjNiM2I7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Njc2NzY7XG4gICAgICAgICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzYWRiNzY7XG4gICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgICAgICAgY29sb3I6ICMxNTc1Mzk7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM4MDU3MDA7XG4gICAgICAgIGNvbG9yOiAjODA1NzAwOyB9XG4gICAgICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgIC5idXR0b24uaG9sbG93LmFsZXJ0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gICAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjcyNTFhO1xuICAgICAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgICAgICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5idXR0b24uY2xlYXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNzc5YmE7XG4gICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgICAuYnV0dG9uLmNsZWFyLCAuYnV0dG9uLmNsZWFyOmhvdmVyLCAuYnV0dG9uLmNsZWFyOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMGMzZDVkO1xuICAgICAgY29sb3I6ICMwYzNkNWQ7IH1cbiAgICAgIC5idXR0b24uY2xlYXI6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNzc5YmE7XG4gICAgICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgLmJ1dHRvbi5jbGVhciwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyOmZvY3VzLCAuYnV0dG9uLmNsZWFyOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNzc5YmE7XG4gICAgICBjb2xvcjogIzE3NzliYTsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMwYzNkNWQ7XG4gICAgICAgIGNvbG9yOiAjMGMzZDVkOyB9XG4gICAgICAgIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMTc3OWJhO1xuICAgICAgICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnByaW1hcnksIC5idXR0b24uY2xlYXIucHJpbWFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cywgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Njc2NzY7XG4gICAgICBjb2xvcjogIzc2NzY3NjsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2IzYjNiO1xuICAgICAgICBjb2xvcjogIzNiM2IzYjsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzY3Njc2O1xuICAgICAgICAgIGNvbG9yOiAjNzY3Njc2OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeSwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuc3VjY2VzcyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTU3NTM5O1xuICAgICAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICAgICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc3VjY2Vzc1tkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmcge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICAgICAgY29sb3I6ICM4MDU3MDA7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gICAgICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uY2xlYXIud2FybmluZywgLmJ1dHRvbi5jbGVhci53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmdbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZzpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5hbGVydCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM2NzI1MWE7XG4gICAgICAgIGNvbG9yOiAjNjcyNTFhOyB9XG4gICAgICAgIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICAgICAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5hbGVydCwgLmJ1dHRvbi5jbGVhci5hbGVydC5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIsIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNGVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmVmZWZlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdzo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMxNzc5YmE7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cucHJpbWFyeTo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMxNzc5YmE7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuc2Vjb25kYXJ5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzc2NzY3NjsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zdWNjZXNzOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzNhZGI3NjsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy53YXJuaW5nOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmYWUwMDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5hbGVydDo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNjYzRiMzc7IH1cbiAgLmJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgdG9wOiAtMC4xZW07XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuW3R5cGU9J3RleHQnXSwgW3R5cGU9J3Bhc3N3b3JkJ10sIFt0eXBlPSdkYXRlJ10sIFt0eXBlPSdkYXRldGltZSddLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSwgW3R5cGU9J21vbnRoJ10sIFt0eXBlPSd3ZWVrJ10sIFt0eXBlPSdlbWFpbCddLCBbdHlwZT0nbnVtYmVyJ10sIFt0eXBlPSdzZWFyY2gnXSwgW3R5cGU9J3RlbCddLCBbdHlwZT0ndGltZSddLCBbdHlwZT0ndXJsJ10sIFt0eXBlPSdjb2xvciddLFxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDEwLCAxMCwgMTAsIDAuMSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWFbcm93c10ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2NhY2FjYTsgfVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cblt0eXBlPSdzdWJtaXQnXSxcblt0eXBlPSdidXR0b24nXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuXG5bdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSBbdHlwZT0nY2hlY2tib3gnXSArIC5nc2VjdGlvbl90aXRsZSxcblt0eXBlPSdyYWRpbyddICsgbGFiZWwsIC5nZm9ybXMtc2VjdGlvbi5ncmF5XG5bdHlwZT0ncmFkaW8nXSArIC5nc2VjdGlvbl90aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbFtmb3JdLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSBbdHlwZT0nY2hlY2tib3gnXSArIFtmb3JdLmdzZWN0aW9uX3RpdGxlLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsW2Zvcl0sIC5nZm9ybXMtc2VjdGlvbi5ncmF5XG4gIFt0eXBlPSdyYWRpbyddICsgW2Zvcl0uZ3NlY3Rpb25fdGl0bGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5sYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAuZ3NlY3Rpb25fdGl0bGUgPiBbdHlwZT0nY2hlY2tib3gnXSxcbmxhYmVsID4gW3R5cGU9J3JhZGlvJ10sIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5nc2VjdGlvbl90aXRsZSA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmxhYmVsLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAuZ3NlY3Rpb25fdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICBsYWJlbC5taWRkbGUsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5taWRkbGUuZ3NlY3Rpb25fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgcGFkZGluZzogMC41NjI1cmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmlucHV0LWdyb3VwID4gOmxhc3QtY2hpbGQgPiAqIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCwgLmlucHV0LWdyb3VwLWZpZWxkLCAuaW5wdXQtZ3JvdXAtYnV0dG9uLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAuZ3NlY3Rpb25fdGl0bGUsIC5nZm9ybXMtc2VjdGlvbi5ncmF5XG4uaW5wdXQtZ3JvdXAtYnV0dG9uIC5nc2VjdGlvbl90aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtZmllbGQge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmbGV4OiAxIDEgMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi13aWR0aDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG4gIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4gIC5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwsXG4gIC5pbnB1dC1ncm91cC1idXR0b24gLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLmdzZWN0aW9uX3RpdGxlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheVxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5nc2VjdGlvbl90aXRsZSB7XG4gICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxubGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuLmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAxLjEyNXJlbSAwO1xuICBwYWRkaW5nOiAxLjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhOyB9XG4gIC5maWVsZHNldCBsZWdlbmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tbGVmdDogLTAuMTg3NXJlbTtcbiAgICBwYWRkaW5nOiAwIDAuMTg3NXJlbTsgfVxuXG5zZWxlY3Qge1xuICBoZWlnaHQ6IDIuNDM3NXJlbTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiByZ2IlMjgxMzgsIDEzOCwgMTM4JTI5Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0xcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBzZWxlY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTsgfSB9XG4gIHNlbGVjdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIHNlbGVjdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIHNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBzZWxlY3RbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuXG4uaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKSB7XG4gIGJvcmRlci1jb2xvcjogI2NjNGIzNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZWNlYTsgfVxuICAuaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICNjYzRiMzc7IH1cblxuLmZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2NjNGIzNzsgfVxuICAuZm9ybS1lcnJvci5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMGVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zaG93LWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7IH1cblxuLnNob3ctb24tZm9jdXM6YWN0aXZlLCAuc2hvdy1vbi1mb2N1czpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGNsaXAtcGF0aDogbm9uZTsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4uY2xlYXJmaXg6OmJlZm9yZSwgLmNsZWFyZml4OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxOyB9XG5cbi5jbGVhcmZpeDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4uYWNjb3JkaW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICAuYWNjb3JkaW9uW2Rpc2FibGVkXSAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5hY2NvcmRpb24taXRlbTpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi10aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMxNzc5YmE7IH1cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgY29udGVudDogJysnOyB9XG4gIC5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXDIwMTMnOyB9XG5cbi5hY2NvcmRpb24tY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIDpsYXN0LWNoaWxkID4gLmFjY29yZGlvbi1jb250ZW50Omxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2OyB9XG5cbi5hY2NvcmRpb24tbWVudSBsaSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5hY2NvcmRpb24tbWVudSBhIHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07IH1cblxuLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudSBhIHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07IH1cblxuLmFjY29yZGlvbi1tZW51IC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudS5hbGlnbi1yaWdodCAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgcmlnaHQ6IDFyZW07IH1cblxuLmFjY29yZGlvbi1tZW51LmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDFyZW07IH1cblxuLmFjY29yZGlvbi1tZW51LmFsaWduLXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsgfVxuXG4uaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5oYXMtc3VibWVudS10b2dnbGUgPiBhIHtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4OyB9XG5cbi5zdWJtZW51LXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4OyB9XG4gIC5zdWJtZW51LXRvZ2dsZTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIG1hcmdpbjogYXV0bzsgfVxuXG4uc3VibWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD0ndHJ1ZSddOjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGVZKC0xKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsgfVxuXG4uc3VibWVudS10b2dnbGUtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7IH1cblxuLmJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDIuMWVtO1xuICBwYWRkaW5nOiAwLjNlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDAuNnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjMTc3OWJhO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYmFkZ2UucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogIzE3NzliYTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYmFkZ2Uuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjNzY3Njc2O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5iYWRnZS5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5iYWRnZS53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5iYWRnZS5hbGVydCB7XG4gICAgYmFja2dyb3VuZDogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4uYnJlYWRjcnVtYnMge1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmJyZWFkY3J1bWJzOjpiZWZvcmUsIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5icmVhZGNydW1icyBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gICAgY29sb3I6ICMwYTBhMGE7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuYnJlYWRjcnVtYnMgbGk6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwIDAuNzVyZW07XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29udGVudDogXCIvXCI7XG4gICAgICBjb2xvcjogI2NhY2FjYTsgfVxuICAuYnJlYWRjcnVtYnMgYSB7XG4gICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgICAuYnJlYWRjcnVtYnMgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuYnJlYWRjcnVtYnMgLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5idXR0b24tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLmJ1dHRvbi1ncm91cDo6YmVmb3JlLCAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5idXR0b24tZ3JvdXAgLmJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBmbGV4OiAwIDAgYXV0bzsgfVxuICAgIC5idXR0b24tZ3JvdXAgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuYnV0dG9uLWdyb3VwLnRpbnkgLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5zbWFsbCAuYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5sYXJnZSAuYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9XG4gIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMjYxOTU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWU1ZTVlO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIyYmI1YjtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzhiMDA7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTUzYjJhO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24ge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24ge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIC5idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuLmNhbGxvdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMCwgMTAsIDEwLCAwLjI1KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0ID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5jYWxsb3V0ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNhbGxvdXQucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q3ZWNmYTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYWVhZWE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNhbGxvdXQuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UxZmFlYTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmM2Q5O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0LmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdlNGUxO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0LnNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtOyB9XG4gIC5jYWxsb3V0LmxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogM3JlbTsgfVxuXG4uY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogIzhhOGE4YTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuY2xvc2UtYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5jbG9zZS1idXR0b246aG92ZXIsIC5jbG9zZS1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jbG9zZS1idXR0b24uc21hbGwge1xuICAgIHJpZ2h0OiAwLjY2cmVtO1xuICAgIHRvcDogMC4zM2VtO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmNsb3NlLWJ1dHRvbiwgLmNsb3NlLWJ1dHRvbi5tZWRpdW0ge1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHRvcDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5pcy1kcmlsbGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmlzLWRyaWxsZG93biBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmlzLWRyaWxsZG93bi5hbmltYXRlLWhlaWdodCB7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7IH1cblxuLmRyaWxsZG93biBhIHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7IH1cblxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWFjdGl2ZSB7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWNsb3Npbmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG4uZHJpbGxkb3duIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5kcmlsbGRvd24gLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgbWluLWhlaWdodDogMTAwJTsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICByaWdodDogMXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMxNzc5YmE7IH1cblxuLmRyaWxsZG93bi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxcmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9XG5cbi5kcmlsbGRvd24uYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDFyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cblxuLmRyaWxsZG93biAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwOyB9XG5cbi5kcm9wZG93bi1wYW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5kcm9wZG93bi1wYW5lLnRpbnkge1xuICB3aWR0aDogMTAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUuc21hbGwge1xuICB3aWR0aDogMjAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUubGFyZ2Uge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtM3B4OyB9XG5cbi5kcm9wZG93bi5tZW51IGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4uZHJvcGRvd24ubWVudSAuaXMtYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzE3NzliYTsgfVxuXG4ubm8tanMgLmRyb3Bkb3duLm1lbnUgdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5kcm9wZG93bi5tZW51IC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiAxMDAlO1xuICBsZWZ0OiBhdXRvO1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IDE0cHg7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogNXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMxNzc5YmE7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMxNzc5YmE7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9IH1cblxuLmRyb3Bkb3duLm1lbnUuYWxpZ24tcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDsgfVxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbC5hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC02cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTsgfVxuICAuZHJvcGRvd24gLmlzLWRyb3Bkb3duLXN1Ym1lbnUgYSB7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSA+IGxpIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5yZXNwb25zaXZlLWVtYmVkLFxuLmZsZXgtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAucmVzcG9uc2l2ZS1lbWJlZCBpZnJhbWUsXG4gIC5yZXNwb25zaXZlLWVtYmVkIG9iamVjdCxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgZW1iZWQsXG4gIC5yZXNwb25zaXZlLWVtYmVkIHZpZGVvLFxuICAuZmxleC12aWRlbyBpZnJhbWUsXG4gIC5mbGV4LXZpZGVvIG9iamVjdCxcbiAgLmZsZXgtdmlkZW8gZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5yZXNwb25zaXZlLWVtYmVkLndpZGVzY3JlZW4sXG4gIC5mbGV4LXZpZGVvLndpZGVzY3JlZW4ge1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IH1cblxuLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJhY2tncm91bmQ6ICMxNzc5YmE7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICM3Njc2NzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmxhYmVsLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmxhYmVsLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG5cbi5tZWRpYS1vYmplY3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAubWVkaWEtb2JqZWN0IGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24gaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICBmbGV4OiAwIDEgYXV0bzsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb246Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uLm1haW4tc2VjdGlvbiB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuXG4ubWVudSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tZW51IGxpIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5tZW51IGEsXG4gIC5tZW51IC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG4gIC5tZW51IGlucHV0LFxuICAubWVudSBzZWxlY3QsXG4gIC5tZW51IGEsXG4gIC5tZW51IGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVudSBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZW51LCAubWVudS5ob3Jpem9udGFsIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubWVudS52ZXJ0aWNhbCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAubWVudS5leHBhbmRlZCBsaSB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuICAubWVudS5zaW1wbGUge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAubWVudS5zaW1wbGUgbGkgKyBsaSB7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgIC5tZW51LnNpbXBsZSBhIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAubWVudS5tZWRpdW0taG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgLm1lbnUubWVkaXVtLXZlcnRpY2FsIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5tZW51Lm1lZGl1bS1leHBhbmRlZCBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9XG4gICAgLm1lbnUubWVkaXVtLXNpbXBsZSBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubWVudS5sYXJnZS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAubWVudS5sYXJnZS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAubWVudS5sYXJnZS1leHBhbmRlZCBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9XG4gICAgLm1lbnUubGFyZ2Utc2ltcGxlIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuICAubWVudS5uZXN0ZWQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAubWVudS5pY29ucyBhIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZW51Lmljb24tbGVmdCBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEgaSxcbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBzdmcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG4gIC5tZW51Lmljb24tcmlnaHQgbGkgYSB7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi1yaWdodCBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgaSxcbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgc3ZnIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtOyB9XG4gIC5tZW51Lmljb24tdG9wIGxpIGEge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgaW1nLFxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgaSxcbiAgICAubWVudS5pY29uLXRvcCBsaSBhIHN2ZyB7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVudS5pY29uLWJvdHRvbSBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIGksXG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBzdmcge1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUgLmlzLWFjdGl2ZSA+IGEge1xuICAgIGJhY2tncm91bmQ6ICMxNzc5YmE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLm1lbnUgLmFjdGl2ZSA+IGEge1xuICAgIGJhY2tncm91bmQ6ICMxNzc5YmE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLm1lbnUuYWxpZ24tbGVmdCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAubWVudS5hbGlnbi1yaWdodCBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5tZW51LmFsaWduLWNlbnRlciBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5tZW51LmFsaWduLWNlbnRlciBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUgLm1lbnUtdGV4dCB7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuLm1lbnUtY2VudGVyZWQgPiAubWVudSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5tZW51LWNlbnRlcmVkID4gLm1lbnUgbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAubWVudS1jZW50ZXJlZCA+IC5tZW51IGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4ubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIHZpc2liaWxpdHkgMC41cyBlYXNlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NCwgMjU0LCAyNTQsIDAuMjUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1jbG9zYWJsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9mZi1jYW52YXMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vZmYtY2FudmFzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogMTI7IH1cbiAgLm9mZi1jYW52YXMuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAxMzsgfVxuICAgIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTAsIDEwLCAxMCwgMC43KTsgfVxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6IDEzOyB9XG4gICAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxMCwgMTAsIDEwLCAwLjcpOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbi5wb3NpdGlvbi1sZWZ0IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMjUwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNTBweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tbGVmdC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1sZWZ0LmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgLTEzcHggMCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLXJpZ2h0IHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDI1MHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNTBweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5pcy1vcGVuLXJpZ2h0Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDEzcHggMCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpO1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi10b3AuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTsgfVxuICAucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMTNweCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1ib3R0b20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tYm90dG9tLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20uaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDEzcHggMjBweCAtMTNweCByZ2JhKDEwLCAxMCwgMTAsIDAuMjUpOyB9XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1sZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNTBweDsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1ib3R0b20ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNTBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNTBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgb3ZlcmZsb3c6IGluaGVyaXQ7XG4gICAgdHJhbnNpdGlvbjogaW5oZXJpdDsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLXJpZ2h0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIHdpZHRoOiBpbmhlcml0O1xuICAgIG92ZXJmbG93OiBpbmhlcml0O1xuICAgIHRyYW5zaXRpb246IGluaGVyaXQ7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tcmlnaHQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4ub3JiaXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLm9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm9yYml0LXNsaWRlLm5vLW1vdGlvbnVpLmlzLWFjdGl2ZSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7IH1cblxuLm9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4ub3JiaXQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLm9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC41KTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuLm9yYml0LXByZXZpb3VzLCAub3JiaXQtbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtcHJldmlvdXMsIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtbmV4dCB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub3JiaXQtcHJldmlvdXM6aG92ZXIsIC5vcmJpdC1uZXh0OmhvdmVyLCAub3JiaXQtcHJldmlvdXM6YWN0aXZlLCAub3JiaXQtbmV4dDphY3RpdmUsIC5vcmJpdC1wcmV2aW91czpmb2N1cywgLm9yYml0LW5leHQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC41KTsgfVxuXG4ub3JiaXQtcHJldmlvdXMge1xuICBsZWZ0OiAwOyB9XG5cbi5vcmJpdC1uZXh0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7IH1cblxuLm9yYml0LWJ1bGxldHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1idWxsZXRzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vcmJpdC1idWxsZXRzIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDEuMnJlbTtcbiAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICBtYXJnaW46IDAuMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTsgfVxuICAgIC5vcmJpdC1idWxsZXRzIGJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE4YThhOyB9XG4gICAgLm9yYml0LWJ1bGxldHMgYnV0dG9uLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE4YThhOyB9XG5cbi5wcm9ncmVzcyB7XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTsgfVxuICAucHJvZ3Jlc3MucHJpbWFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7IH1cbiAgLnByb2dyZXNzLnNlY29uZGFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7IH1cbiAgLnByb2dyZXNzLnN1Y2Nlc3MgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5wcm9ncmVzcy53YXJuaW5nIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuICAucHJvZ3Jlc3MuYWxlcnQgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG5cbi5wcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhOyB9XG5cbi5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMC41cmVtO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLnNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLnNsaWRlci1maWxsLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXItaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjRyZW07XG4gIGhlaWdodDogMS40cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5zbGlkZXItaGFuZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5zbGlkZXItaGFuZGxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ2NzllOyB9XG4gIC5zbGlkZXItaGFuZGxlLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXIuZGlzYWJsZWQsXG4uc2xpZGVyW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLnNsaWRlci52ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDAuNXJlbTtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMC41cmVtO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cblxuLnN0aWNreS1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc3RpY2t5LmlzLXN0dWNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA1O1xuICB3aWR0aDogMTAwJTsgfVxuICAuc3RpY2t5LmlzLXN0dWNrLmlzLWF0LXRvcCB7XG4gICAgdG9wOiAwOyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtYm90dG9tIHtcbiAgICBib3R0b206IDA7IH1cblxuLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87IH1cbiAgLnN0aWNreS5pcy1hbmNob3JlZC5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG5ib2R5LmlzLXJldmVhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5odG1sLmlzLXJldmVhbC1vcGVuLFxuaHRtbC5pcy1yZXZlYWwtb3BlbiBib2R5IHtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4ucmV2ZWFsLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwNTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjQ1KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG5cbi5yZXZlYWwge1xuICB6LWluZGV4OiAxMDA2O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnJldmVhbCB7XG4gICAgb3V0bGluZTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgbWluLWhlaWdodDogMDsgfSB9XG4gIC5yZXZlYWwgLmNvbHVtbiwgLnJldmVhbCAuY29sdW1ucyB7XG4gICAgbWluLXdpZHRoOiAwOyB9XG4gIC5yZXZlYWwgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgd2lkdGg6IDYwMHB4O1xuICAgICAgbWF4LXdpZHRoOiA2OC43NXJlbTsgfSB9XG4gIC5yZXZlYWwuY29sbGFwc2Uge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLnRpbnkge1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIG1heC13aWR0aDogNjguNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwuc21hbGwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1heC13aWR0aDogNjguNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwubGFyZ2Uge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIG1heC13aWR0aDogNjguNzVyZW07IH0gfVxuICAucmV2ZWFsLmZ1bGwge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDsgfSB9XG4gIC5yZXZlYWwud2l0aG91dC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLnN3aXRjaCB7XG4gIGhlaWdodDogMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBvdXRsaW5lOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5zd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnN3aXRjaC1wYWRkbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNHJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjY2FjYWNhO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGlucHV0ICsgLnN3aXRjaC1wYWRkbGUge1xuICAgIG1hcmdpbjogMDsgfVxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgICBjb250ZW50OiAnJzsgfVxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIGJhY2tncm91bmQ6ICMxNzc5YmE7IH1cbiAgICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAgIGxlZnQ6IDIuMjVyZW07IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGlucHV0OmZvY3VzIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIG91dGxpbmU6IDA7IH1cblxuLnN3aXRjaC1hY3RpdmUsIC5zd2l0Y2gtaW5hY3RpdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnN3aXRjaC1hY3RpdmUge1xuICBsZWZ0OiA4JTtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAuc3dpdGNoLWFjdGl2ZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgaW5wdXQ6Y2hlY2tlZCArIC5nc2VjdGlvbl90aXRsZSA+IC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc3dpdGNoLWluYWN0aXZlIHtcbiAgcmlnaHQ6IDE1JTsgfVxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAuc3dpdGNoLWluYWN0aXZlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSBpbnB1dDpjaGVja2VkICsgLmdzZWN0aW9uX3RpdGxlID4gLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uc3dpdGNoLnRpbnkge1xuICBoZWlnaHQ6IDEuNXJlbTsgfVxuICAuc3dpdGNoLnRpbnkgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC42MjVyZW07IH1cbiAgLnN3aXRjaC50aW55IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtOyB9XG4gIC5zd2l0Y2gudGlueSBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAxLjc1cmVtOyB9XG5cbi5zd2l0Y2guc21hbGwge1xuICBoZWlnaHQ6IDEuNzVyZW07IH1cbiAgLnN3aXRjaC5zbWFsbCAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6IDMuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNzVyZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICB3aWR0aDogMS4yNXJlbTtcbiAgICBoZWlnaHQ6IDEuMjVyZW07IH1cbiAgLnN3aXRjaC5zbWFsbCBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAycmVtOyB9XG5cbi5zd2l0Y2gubGFyZ2Uge1xuICBoZWlnaHQ6IDIuNXJlbTsgfVxuICAuc3dpdGNoLmxhcmdlIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogNXJlbTtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICBmb250LXNpemU6IDFyZW07IH1cbiAgLnN3aXRjaC5sYXJnZSAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTsgfVxuICAuc3dpdGNoLmxhcmdlIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIGxlZnQ6IDIuNzVyZW07IH1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICB0YWJsZSB0aGVhZCxcbiAgdGFibGUgdGJvZHksXG4gIHRhYmxlIHRmb290IHtcbiAgICBib3JkZXI6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICB0YWJsZSBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgdGFibGUgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgdGFibGUgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgdGFibGUgdGhlYWQgdHIsXG4gIHRhYmxlIHRmb290IHRyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICB0YWJsZSB0aGVhZCB0aCxcbiAgdGFibGUgdGhlYWQgdGQsXG4gIHRhYmxlIHRmb290IHRoLFxuICB0YWJsZSB0Zm9vdCB0ZCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgdGFibGUgdGJvZHkgdGgsXG4gIHRhYmxlIHRib2R5IHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07IH1cbiAgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cbiAgdGFibGUudW5zdHJpcGVkIHRib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gICAgdGFibGUudW5zdHJpcGVkIHRib2R5IHRyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBib3JkZXItYm90dG9tOiBpbmhlcml0O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgdGFibGUuc3RhY2sgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdHIsXG4gIHRhYmxlLnN0YWNrIHRoLFxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGJvcmRlci10b3A6IDA7IH0gfVxuXG50YWJsZS5zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cblxudGFibGUuaG92ZXIgdGhlYWQgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyB9XG5cbnRhYmxlLmhvdmVyIHRmb290IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsgfVxuXG50YWJsZS5ob3ZlciB0Ym9keSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IH1cblxudGFibGUuaG92ZXI6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYzsgfVxuXG4udGFibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuICAudGFibGUtc2Nyb2xsIHRhYmxlIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuXG4udGFicyB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gIC50YWJzOjpiZWZvcmUsIC50YWJzOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnRhYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4udGFicy52ZXJ0aWNhbCA+IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogYXV0bzsgfVxuXG4udGFicy5zaW1wbGUgPiBsaSA+IGEge1xuICBwYWRkaW5nOiAwOyB9XG4gIC50YWJzLnNpbXBsZSA+IGxpID4gYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLnRhYnMucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMxNzc5YmE7IH1cbiAgLnRhYnMucHJpbWFyeSA+IGxpID4gYSB7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAudGFicy5wcmltYXJ5ID4gbGkgPiBhOmhvdmVyLCAudGFicy5wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxNjczYjE7IH1cblxuLnRhYnMtdGl0bGUge1xuICBmbG9hdDogbGVmdDsgfVxuICAudGFicy10aXRsZSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogIzE3NzliYTsgfVxuICAgIC50YWJzLXRpdGxlID4gYTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgICAgY29sb3I6ICMxNDY4YTA7IH1cbiAgICAudGFicy10aXRsZSA+IGE6Zm9jdXMsIC50YWJzLXRpdGxlID4gYVthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgICAgIGNvbG9yOiAjMTc3OWJhOyB9XG5cbi50YWJzLWNvbnRlbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTsgfVxuXG4udGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLnRhYnMtcGFuZWwge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtOyB9XG4gIC50YWJzLXBhbmVsLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXI6IHNvbGlkIDRweCAjZmVmZWZlO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgxMCwgMTAsIDEwLCAwLjIpO1xuICBsaW5lLWhlaWdodDogMDsgfVxuXG5hLnRodW1ibmFpbCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7IH1cbiAgYS50aHVtYm5haWw6aG92ZXIsIGEudGh1bWJuYWlsOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgNnB4IDFweCByZ2JhKDIzLCAxMjEsIDE4NiwgMC41KTsgfVxuICBhLnRodW1ibmFpbCBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4udGl0bGUtYmFyIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC50aXRsZS1iYXIgLm1lbnUtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG5cbi50aXRsZS1iYXItbGVmdCxcbi50aXRsZS1iYXItcmlnaHQge1xuICBmbGV4OiAxIDEgMHB4OyB9XG5cbi50aXRsZS1iYXItcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGl0bGUtYmFyLXRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uaGFzLXRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICM4YThhOGE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IGhlbHA7IH1cblxuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgMC42NDk1cmVtKTtcbiAgei1pbmRleDogMTIwMDtcbiAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYTtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC50b29sdGlwOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAudG9vbHRpcC5ib3R0b206OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzBhMGEwYTtcbiAgICBib3R0b206IDEwMCU7IH1cbiAgLnRvb2x0aXAuYm90dG9tLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC50b29sdGlwLnRvcDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMGEwYTBhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogMTAwJTtcbiAgICBib3R0b206IGF1dG87IH1cbiAgLnRvb2x0aXAudG9wLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC50b29sdGlwLmxlZnQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzBhMGEwYTtcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC50b29sdGlwLmxlZnQuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnRvb2x0aXAucmlnaHQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzBhMGEwYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC50b29sdGlwLnJpZ2h0LmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC50b29sdGlwLmFsaWduLXRvcDo6YmVmb3JlIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiAxMCU7IH1cbiAgLnRvb2x0aXAuYWxpZ24tYm90dG9tOjpiZWZvcmUge1xuICAgIGJvdHRvbTogMTAlO1xuICAgIHRvcDogYXV0bzsgfVxuICAudG9vbHRpcC5hbGlnbi1sZWZ0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDEwJTtcbiAgICByaWdodDogYXV0bzsgfVxuICAudG9vbHRpcC5hbGlnbi1yaWdodDo6YmVmb3JlIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMCU7IH1cblxuLnRvcC1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAudG9wLWJhcixcbiAgLnRvcC1iYXIgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgLnRvcC1iYXIgaW5wdXQge1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC50b3AtYmFyIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC50b3AtYmFyIGlucHV0LmJ1dHRvbiB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnRvcC1iYXIgLnRvcC1iYXItbGVmdCxcbiAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC50b3AtYmFyIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gICAgICAudG9wLWJhciAudG9wLWJhci1sZWZ0IHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgICAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0gLnRvcC1iYXItbGVmdCxcbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSAudG9wLWJhci1yaWdodCB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIC50b3AtYmFyLWxlZnQsXG4gICAgICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSAudG9wLWJhci1yaWdodCB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuXG4udG9wLWJhci10aXRsZSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW46IDAuNXJlbSAxcmVtIDAuNXJlbSAwOyB9XG5cbi50b3AtYmFyLWxlZnQsXG4udG9wLWJhci1yaWdodCB7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG5cbi8qISAqIFtVbml0IFNwYWNlXShodHRwczovL2dpdGh1Yi5jb20va2V2aW5tYWNrMTgvU0FTUy1NYXJnaW4tYW5kLVBhZGRpbmctU3RhcnRlcikgKi9cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZywgLnBhZGRpbmctdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmcsIC5wYWRkaW5nLXRvcCB7XG4gICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLCAucGFkZGluZy1yaWdodCB7XG4gICAgcGFkZGluZy1yaWdodDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmcsIC5wYWRkaW5nLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZywgLnBhZGRpbmctYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmcsIC5wYWRkaW5nLWJvdHRvbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLCAucGFkZGluZy1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLCAucGFkZGluZy1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5zcGFjaW5nIHtcbiAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnNwYWNpbmcge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAuc3BhY2luZyB7XG4gICAgcGFkZGluZy1yaWdodDogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnNwYWNpbmcge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5zcGFjaW5nIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnNwYWNpbmcge1xuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAuc3BhY2luZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuc3BhY2luZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tMngsIC5wYWRkaW5nLXRvcC0tMngge1xuICAgIHBhZGRpbmctdG9wOiAzMnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tMngsIC5wYWRkaW5nLXRvcC0tMngge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tMngsIC5wYWRkaW5nLXJpZ2h0LS0yeCB7XG4gICAgcGFkZGluZy1yaWdodDogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLTJ4LCAucGFkZGluZy1yaWdodC0tMngge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0yeCwgLnBhZGRpbmctYm90dG9tLS0yeCB7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0yeCwgLnBhZGRpbmctYm90dG9tLS0yeCB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0yeCwgLnBhZGRpbmctbGVmdC0tMngge1xuICAgIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLTJ4LCAucGFkZGluZy1sZWZ0LS0yeCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tM2hhbHZlcywgLnBhZGRpbmctdG9wLS0zaGFsdmVzIHtcbiAgICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLTNoYWx2ZXMsIC5wYWRkaW5nLXRvcC0tM2hhbHZlcyB7XG4gICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0zaGFsdmVzLCAucGFkZGluZy1yaWdodC0tM2hhbHZlcyB7XG4gICAgcGFkZGluZy1yaWdodDogMjRweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLTNoYWx2ZXMsIC5wYWRkaW5nLXJpZ2h0LS0zaGFsdmVzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tM2hhbHZlcywgLnBhZGRpbmctYm90dG9tLS0zaGFsdmVzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLTNoYWx2ZXMsIC5wYWRkaW5nLWJvdHRvbS0tM2hhbHZlcyB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0zaGFsdmVzLCAucGFkZGluZy1sZWZ0LS0zaGFsdmVzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS0zaGFsdmVzLCAucGFkZGluZy1sZWZ0LS0zaGFsdmVzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbi5wYWRkaW5nLS1oYWxmLCAucGFkZGluZy10b3AtLWhhbGYge1xuICBwYWRkaW5nLXRvcDogOHB4ICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctLWhhbGYsIC5wYWRkaW5nLXJpZ2h0LS1oYWxmIHtcbiAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctLWhhbGYsIC5wYWRkaW5nLWJvdHRvbS0taGFsZiB7XG4gIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy0taGFsZiwgLnBhZGRpbmctbGVmdC0taGFsZiB7XG4gIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbiwgLm1hcmdpbi10b3AsIC5zcGFjaW5nLXZlcnRpY2FscyB7XG4gICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbiwgLm1hcmdpbi10b3AsIC5zcGFjaW5nLXZlcnRpY2FscyB7XG4gICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbiwgLm1hcmdpbi1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLCAubWFyZ2luLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4sIC5tYXJnaW4tYm90dG9tLCAuc3BhY2luZy12ZXJ0aWNhbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4sIC5tYXJnaW4tYm90dG9tLCAuc3BhY2luZy12ZXJ0aWNhbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4sIC5tYXJnaW4tbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4sIC5tYXJnaW4tbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4tLTJ4LCAubWFyZ2luLXRvcC0tMngge1xuICAgIG1hcmdpbi10b3A6IDMycHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4tLTJ4LCAubWFyZ2luLXRvcC0tMngge1xuICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4tLTJ4LCAubWFyZ2luLXJpZ2h0LS0yeCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLS0yeCwgLm1hcmdpbi1yaWdodC0tMngge1xuICAgIG1hcmdpbi1yaWdodDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tMngsIC5tYXJnaW4tYm90dG9tLS0yeCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tMngsIC5tYXJnaW4tYm90dG9tLS0yeCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tMngsIC5tYXJnaW4tbGVmdC0tMngge1xuICAgIG1hcmdpbi1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLS0yeCwgLm1hcmdpbi1sZWZ0LS0yeCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4tLTNoYWx2ZXMsIC5tYXJnaW4tdG9wLS0zaGFsdmVzIHtcbiAgICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLS0zaGFsdmVzLCAubWFyZ2luLXRvcC0tM2hhbHZlcyB7XG4gICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tM2hhbHZlcywgLm1hcmdpbi1yaWdodC0tM2hhbHZlcyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLS0zaGFsdmVzLCAubWFyZ2luLXJpZ2h0LS0zaGFsdmVzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tYXJnaW4tLTNoYWx2ZXMsIC5tYXJnaW4tYm90dG9tLS0zaGFsdmVzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFyZ2luLS0zaGFsdmVzLCAubWFyZ2luLWJvdHRvbS0tM2hhbHZlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tM2hhbHZlcywgLm1hcmdpbi1sZWZ0LS0zaGFsdmVzIHtcbiAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm1hcmdpbi0tM2hhbHZlcywgLm1hcmdpbi1sZWZ0LS0zaGFsdmVzIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuLm1hcmdpbi0taGFsZiwgLm1hcmdpbi10b3AtLWhhbGYge1xuICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLS1oYWxmLCAubWFyZ2luLXJpZ2h0LS1oYWxmIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLS1oYWxmLCAubWFyZ2luLWJvdHRvbS0taGFsZiB7XG4gIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tLWhhbGYsIC5tYXJnaW4tbGVmdC0taGFsZiB7XG4gIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tdmVydGljYWxzIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS12ZXJ0aWNhbHMge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLnBhZGRpbmctLXZlcnRpY2FscyB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAucGFkZGluZy0tdmVydGljYWxzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS12ZXJ0aWNhbHMge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWRkaW5nLS12ZXJ0aWNhbHMge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDsgfSB9XG5cbi5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLWxlZnQtbm9uZSB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLXJpZ2h0LW5vbmUge1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLm5vLW1hcmdpbiB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tYm90dG9tLW5vbmUge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLm1hcmdpbi10b3Atbm9uZSB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxuXG4vKlxyXG4qSXZ5Sm91cm5hbCpcclxuZm9udC1mYW1pbHk6IGl2eWpvdXJuYWwsc2Fucy1zZXJpZjtcclxuZm9udC13ZWlnaHQ6IDcwMDtcclxuZm9udC1zdHlsZTogbm9ybWFsO1xyXG5cclxuZm9udC1mYW1pbHk6IGl2eWpvdXJuYWwsc2Fucy1zZXJpZjtcclxuZm9udC13ZWlnaHQ6IDcwMDtcclxuZm9udC1zdHlsZTogaXRhbGljO1xyXG5cclxuKkJvbGQqXHJcbmZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcclxuZm9udC13ZWlnaHQ6IDcwMDtcclxuZm9udC1zdHlsZTogbm9ybWFsO1xyXG5cclxuZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xyXG5mb250LXdlaWdodDogNzAwO1xyXG5mb250LXN0eWxlOiBpdGFsaWM7XHJcblxyXG4qU2VtaWJvbGQqXHJcbmZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcclxuZm9udC13ZWlnaHQ6IDYwMDtcclxuZm9udC1zdHlsZTogbm9ybWFsO1xyXG5cclxuZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xyXG5mb250LXdlaWdodDogNjAwO1xyXG5mb250LXN0eWxlOiBpdGFsaWM7XHJcblxyXG4qUmVndWxhcipcclxuZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xyXG5mb250LXdlaWdodDogNDAwO1xyXG5mb250LXN0eWxlOiBub3JtYWw7XHJcblxyXG5mb250LWZhbWlseTogcHJveGltYS1ub3ZhLHNhbnMtc2VyaWY7XHJcbmZvbnQtd2VpZ2h0OiA0MDA7XHJcbmZvbnQtc3R5bGU6IGl0YWxpYztcclxuXHJcbiovXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG5cbnAge1xuICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG5cbnNtYWxsIHtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjMxO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuXG5oMSB7XG4gIGZvbnQtZmFtaWx5OiBpdnlqb3VybmFsLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMzdweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OyB9IH1cblxuaDIge1xuICBmb250LWZhbWlseTogaXZ5am91cm5hbCxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4yZW07XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OyB9IH1cblxuaDMge1xuICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjEzO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuXG5oNCwgZmllbGRzZXQgbGVnZW5kLCAucG9zdHMtbGlzdF9faGVhZGVyLCAud29vY29tbWVyY2UtY2hlY2tvdXQgI29yZGVyX3Jldmlld19oZWFkaW5nIHtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG5cbmg1LCAuZ2Zvcm1zLXNlY3Rpb24gLmdzZWN0aW9uX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG5cbi8qIExpbmtzICovXG5hIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogIzAwNjJkMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmJvZHk6bm90KC5sb2dnZWQtaW4pIC5oaWRlLWxvZ2dlZC1vdXQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmVudHJ5LXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XG5cbi5lbnRyeS1zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG4gIC5lbnRyeS1zdWJ0aXRsZS5lbnRyeS1zdWJ0aXRsZS0tYmlnIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gICAgbWFyZ2luLXRvcDogLTE0cHg7IH1cbiAgLmVudHJ5LXN1YnRpdGxlIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG4uZW50cnktY29udGVudCA+IC5zZWN0aW9uIHtcbiAgd2lkdGg6IDEwMHZ3O1xuICBtYXJnaW4tbGVmdDogY2FsYyggY2FsYyggMTAwdncgLSAxMDAlICkgLyAtMik7XG4gIG1hcmdpbi1yaWdodDogY2FsYyggY2FsYyggMTAwdncgLSAxMDAlICkgLyAtMik7IH1cblxuLnNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiA2MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNjBweDsgfVxuICAuc2VjdGlvbiAuc2VjdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4OyB9XG5cbi5lbnRyeS1jb250ZW50IC5jb250ZW50LXNlY3Rpb24ge1xuICBwYWRkaW5nLXRvcDogMjBweDsgfVxuXG4uc2VjdGlvbl9fY29udGFpbmVyLCAuY29udGVudC1hcmVhIHtcbiAgbWF4LXdpZHRoOiA2OC43NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAuc2VjdGlvbl9fY29udGFpbmVyLm1lZGl1bSwgLmNvbnRlbnQtYXJlYS5tZWRpdW0ge1xuICAgIG1heC13aWR0aDogOTIwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAuc2VjdGlvbl9fY29udGFpbmVyLnhtZWRpdW0sIC5jb250ZW50LWFyZWEueG1lZGl1bSB7XG4gICAgbWF4LXdpZHRoOiA4MzBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG4gIC5zZWN0aW9uX19jb250YWluZXIuc21hbGwsIC5jb250ZW50LWFyZWEuc21hbGwge1xuICAgIG1heC13aWR0aDogNTkwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAuc2VjdGlvbl9fY29udGFpbmVyLnhzbWFsbCwgLmNvbnRlbnQtYXJlYS54c21hbGwge1xuICAgIG1heC13aWR0aDogNTQwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAuc2VjdGlvbl9fY29udGFpbmVyLnh4c21hbGwsIC5jb250ZW50LWFyZWEueHhzbWFsbCB7XG4gICAgbWF4LXdpZHRoOiA0NTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5zZWN0aW9uX19jb250YWluZXIsIC5jb250ZW50LWFyZWEge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMXJlbTsgfSB9XG5cbi5zZWN0aW9uX19jb2x1bW4ge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNlY3Rpb25fX2NvbHVtbiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5zaXRlLWNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogNjBweDtcbiAgcGFkZGluZy1ib3R0b206IDYwcHg7IH1cblxuLmNvbnRlbnQtYXJlYSB7XG4gIG1heC13aWR0aDogNjguNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7IH1cbiAgLmNvbnRlbnQtYXJlYS5tZWRpdW0sIC5jb250ZW50LWFyZWEubWVkaXVtIC5zZWN0aW9uX19jb250YWluZXIge1xuICAgIG1heC13aWR0aDogOTIwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAuY29udGVudC1hcmVhLnNtYWxsLCAuY29udGVudC1hcmVhLnNtYWxsIC5zZWN0aW9uX19jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTkwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAuY29udGVudC1hcmVhIC5zaXRlLW1haW4ge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuY29udGVudC1hcmVhIC5zaXRlLW1haW4ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmNvbnRlbnQtYXJlYSAuc2l0ZS1zaWRlYmFyIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmNvbnRlbnQtYXJlYSAuc2l0ZS1zaWRlYmFyIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgLmNvbnRlbnQtYXJlYSAuc2l0ZS1zaWRlYmFyICsgLnNpdGUtbWFpbiB7XG4gICAgICBmbGV4OiAwIDAgNzUlO1xuICAgICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmNvbnRlbnQtYXJlYSAuc2l0ZS1zaWRlYmFyICsgLnNpdGUtbWFpbiB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICAgIC5jb250ZW50LWFyZWEgLnNpdGUtc2lkZWJhciArIC5zaXRlLW1haW4gLmVudHJ5LXRpdGxlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGl2eWpvdXJuYWwsc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAzNnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE3O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICBjb2xvcjogIzFkMWYyMTsgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgICAuY29udGVudC1hcmVhIC5zaXRlLXNpZGViYXIgKyAuc2l0ZS1tYWluIC5lbnRyeS10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDsgfSB9XG4gICAgICAuY29udGVudC1hcmVhIC5zaXRlLXNpZGViYXIgKyAuc2l0ZS1tYWluIC5lbnRyeS1zdWJ0aXRsZSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmNvbnRlbnQtYXJlYSAuc2l0ZS1zaWRlYmFyIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29udGVudC1hcmVhIC5zaXRlLXNpZGViYXIge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICAuY29udGVudC1hcmVhIC5zaXRlLXNpZGViYXIgKyAuc2l0ZS1tYWluIHtcbiAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5jb250ZW50LWFyZWEgLnNpdGUtc2lkZWJhciArIC5zaXRlLW1haW4ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIGJvZHkud2l0aC1zaWRlYmFyIC5zaXRlLXNpZGViYXIge1xuICAgIHBhZGRpbmc6IDBweDsgfVxuICBib2R5LndpdGgtc2lkZWJhciAubW9iaWxlLWRyb3Bkb3duIHtcbiAgICBtYXJnaW46IDAgLTE2cHg7IH1cbiAgYm9keS53aXRoLXNpZGViYXIgLnNpdGUtY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6IDBweDsgfVxuICBib2R5LndpdGgtc2lkZWJhciAuc2l0ZS1tYWluIHtcbiAgICBwYWRkaW5nLXRvcDogMzBweDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLWxlYXJuaW5nLXRvLXVzZSAuY29udGVudC1hcmVhIHtcbiAgbWF4LXdpZHRoOiA2OC43NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuXG4uZ2Zvcm1zLXNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gIC5nZm9ybXMtc2VjdGlvbi5ncmF5IHtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XG4gICAgcGFkZGluZzogMTZweCA4cHggOHB4IDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4OyB9XG4gICAgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLmdmaWVsZDpub3QoLmdzZWN0aW9uKSBsYWJlbCwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLmdmaWVsZDpub3QoLmdzZWN0aW9uKSAuZ3NlY3Rpb25fdGl0bGUge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgLmdmb3Jtcy1zZWN0aW9uID4gdWwge1xuICAgIG1hcmdpbjogMHB4OyB9XG5cbi5nZmllbGRfbGFiZWxfYmVmb3JlX2NvbXBsZXgge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5naW5wdXRfY29udGFpbmVyX3RleHRhcmVhIHRleHRhcmVhLnNtYWxsIHtcbiAgaGVpZ2h0OiAxNzBweDsgfVxuXG4uZ2ZpZWxkX2Rlc2NyaXB0aW9uLCAuZ3NlY3Rpb25fZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcbiAgcGFkZGluZzogMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjNlbTtcbiAgd2lkdGg6IDkwJTsgfVxuXG4uZ2ZpZWxkX2h0bWwgaDQsIC5nZmllbGRfaHRtbCBmaWVsZHNldCBsZWdlbmQsIGZpZWxkc2V0IC5nZmllbGRfaHRtbCBsZWdlbmQsIC5nZmllbGRfaHRtbCAucG9zdHMtbGlzdF9faGVhZGVyLCAuZ2ZpZWxkX2h0bWwgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNvcmRlcl9yZXZpZXdfaGVhZGluZywgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5nZmllbGRfaHRtbCAjb3JkZXJfcmV2aWV3X2hlYWRpbmcge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5naW5wdXRfY29udGFpbmVyX2NoZWNrYm94IHVsIHtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuZ2lucHV0X2NvbnRhaW5lcl9jaGVja2JveCB1bCA+IFtjbGFzc149Z2Nob2ljZV06Zmlyc3QtY2hpbGQgbGFiZWwsIC5naW5wdXRfY29udGFpbmVyX2NoZWNrYm94IHVsID4gW2NsYXNzXj1nY2hvaWNlXTpmaXJzdC1jaGlsZCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAuZ3NlY3Rpb25fdGl0bGUsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5naW5wdXRfY29udGFpbmVyX2NoZWNrYm94IHVsID4gW2NsYXNzXj1nY2hvaWNlXTpmaXJzdC1jaGlsZCAuZ3NlY3Rpb25fdGl0bGUge1xuICAgIG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDsgfVxuXG4udmFsaWRhdGlvbl9tZXNzYWdlIHtcbiAgY29sb3I6IHJlZDsgfVxuXG4udmFsaWRhdGlvbl9lcnJvciB7XG4gIGNvbG9yOiBkYXJrcmVkO1xuICBwYWRkaW5nOiAwIDhweDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4uZ2Zvcm1fd3JhcHBlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkZDNENBO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIC5nZm9ybV93cmFwcGVyIC5naW5wdXRfY29udGFpbmVyX3JhZGlvIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDZweDsgfVxuICAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMHB4OyB9XG4gICAgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2lucHV0X2NvbXBsZXgge1xuICAgICAgbWFyZ2luOiAwIC04cHg7IH1cbiAgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2Zvb3RlciBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC40KSwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2Zvb3RlciBpbnB1dFt0eXBlPXN1Ym1pdF06Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgcmdiYSgxNywgMTksIDIxLCAwLjQpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNThhZmUgO1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyIGlucHV0W3R5cGU9c3VibWl0XTpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSA7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2Zvb3RlciBpbnB1dFt0eXBlPXN1Ym1pdF06YWN0aXZlLCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyIGlucHV0W3R5cGU9c3VibWl0XS5hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogMCAwcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDYyZDEgO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9mb290ZXIgaW5wdXRbdHlwZT1zdWJtaXRdOmRpc2FibGVkLCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyIGlucHV0W3R5cGU9c3VibWl0XTpkaXNhYmxlZDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU4YWZlIDsgfVxuXG4uc2NyZWVuc2hvdC1ib3gtc3R5bGUgaW1nIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNik7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLmJ1dHRvbiwgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwcHggMTVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDBweDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBoZWlnaHQ6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAzMXB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDBweCAxNXB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZmZmZiAwJSwgI0VDRUVGMCAxMDAlKTtcbiAgLyogRkYzLjYtMTUgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCAjRUNFRUYwIDEwMCUpO1xuICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmZmZmIDAlLCAjRUNFRUYwIDEwMCUpO1xuICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI0VDRUVGMCcsR3JhZGllbnRUeXBlPTAgKTtcbiAgLyogSUU2LTkgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMjksIDMxLCAzMywgMC4xNSk7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG4gIC5idXR0b246Zm9jdXMsIC5idXR0b246aG92ZXIsIC5idXR0b246YWN0aXZlLCAuYnV0dG9uLmFjdGl2ZSwgaW5wdXRbdHlwZT1zdWJtaXRdOmZvY3VzLCBpbnB1dFt0eXBlPXN1Ym1pdF06aG92ZXIsIGlucHV0W3R5cGU9c3VibWl0XTphY3RpdmUsIGlucHV0W3R5cGU9c3VibWl0XS5hY3RpdmUge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLmJ1dHRvbjpkaXNhYmxlZCwgaW5wdXRbdHlwZT1zdWJtaXRdOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjI1OyB9XG4gIC5idXR0b246Zm9jdXMsIGlucHV0W3R5cGU9c3VibWl0XTpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMjksIDMxLCAzMywgMC4xNSk7XG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmJ1dHRvbjpob3ZlciwgaW5wdXRbdHlwZT1zdWJtaXRdOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgxMjYsIDEzNywgMTUwLCAwLjcpLCBpbnNldCAwIC0xcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjMpO1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b246YWN0aXZlLCAuYnV0dG9uLmFjdGl2ZSwgaW5wdXRbdHlwZT1zdWJtaXRdOmFjdGl2ZSwgaW5wdXRbdHlwZT1zdWJtaXRdLmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC43KSwgaW5zZXQgMCAycHggMXB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjE1KTtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuICAuYnV0dG9uOmRpc2FibGVkLCAuYnV0dG9uOmRpc2FibGVkOmhvdmVyLCBpbnB1dFt0eXBlPXN1Ym1pdF06ZGlzYWJsZWQsIGlucHV0W3R5cGU9c3VibWl0XTpkaXNhYmxlZDpob3ZlciB7XG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7IH1cbiAgLmJ1dHRvbi5sYXJnZSwgaW5wdXRbdHlwZT1zdWJtaXRdLmxhcmdlIHtcbiAgICBtaW4td2lkdGg6IDE2MHB4O1xuICAgIGhlaWdodDogNDJweDtcbiAgICBsaW5lLWhlaWdodDogNDFweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgcGFkZGluZzogMHB4IDE1cHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5LCBpbnB1dFt0eXBlPXN1Ym1pdF0ucHJpbWFyeSB7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgcmdiYSgxNywgMTksIDIxLCAwLjQpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU4YWZlIDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuYnV0dG9uLnByaW1hcnk6Zm9jdXMsIGlucHV0W3R5cGU9c3VibWl0XS5wcmltYXJ5OmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC40KSwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU4YWZlIDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCBpbnB1dFt0eXBlPXN1Ym1pdF0ucHJpbWFyeTpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSA7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSwgLmJ1dHRvbi5wcmltYXJ5LmFjdGl2ZSwgaW5wdXRbdHlwZT1zdWJtaXRdLnByaW1hcnk6YWN0aXZlLCBpbnB1dFt0eXBlPXN1Ym1pdF0ucHJpbWFyeS5hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogMCAwcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDYyZDEgO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5idXR0b24ucHJpbWFyeTpkaXNhYmxlZCwgLmJ1dHRvbi5wcmltYXJ5OmRpc2FibGVkOmhvdmVyLCBpbnB1dFt0eXBlPXN1Ym1pdF0ucHJpbWFyeTpkaXNhYmxlZCwgaW5wdXRbdHlwZT1zdWJtaXRdLnByaW1hcnk6ZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSA7IH1cbiAgLmJ1dHRvbi53aGl0ZSwgaW5wdXRbdHlwZT1zdWJtaXRdLndoaXRlIHtcbiAgICBib3gtc2hhZG93OiAwIDFweCAxcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMTIpLCBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBjb2xvcjogIzAwNjJkMTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5idXR0b24ud2hpdGU6Zm9jdXMsIGlucHV0W3R5cGU9c3VibWl0XS53aGl0ZTpmb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMTIpLCBpbnNldCAwIDBweCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgY29sb3I6ICMwMDYyZDE7IH1cbiAgICAuYnV0dG9uLndoaXRlOmhvdmVyLCBpbnB1dFt0eXBlPXN1Ym1pdF0ud2hpdGU6aG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogMCAzcHggNHB4IDAgcmdiYSgxNywgMTksIDIxLCAwLjEyKSwgaW5zZXQgMCAwcHggMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgIGNvbG9yOiAjMDA2MmQxO1xuICAgICAgdG9wOiAwcHg7IH1cbiAgICAuYnV0dG9uLndoaXRlOmFjdGl2ZSwgLmJ1dHRvbi53aGl0ZS5hY3RpdmUsIGlucHV0W3R5cGU9c3VibWl0XS53aGl0ZTphY3RpdmUsIGlucHV0W3R5cGU9c3VibWl0XS53aGl0ZS5hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogMCAwcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4xKSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gICAgICB0b3A6IDFweDsgfVxuICAuYnV0dG9uLnNwZWNpYWwsIGlucHV0W3R5cGU9c3VibWl0XS5zcGVjaWFsIHtcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuNCksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0Y2MwOTY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmJ1dHRvbi5zcGVjaWFsOmZvY3VzLCBpbnB1dFt0eXBlPXN1Ym1pdF0uc3BlY2lhbDpmb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuNCksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRjYzA5NjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmJ1dHRvbi5zcGVjaWFsOmhvdmVyLCBpbnB1dFt0eXBlPXN1Ym1pdF0uc3BlY2lhbDpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRjYzA5NjtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuYnV0dG9uLnNwZWNpYWw6YWN0aXZlLCAuYnV0dG9uLnNwZWNpYWwuYWN0aXZlLCBpbnB1dFt0eXBlPXN1Ym1pdF0uc3BlY2lhbDphY3RpdmUsIGlucHV0W3R5cGU9c3VibWl0XS5zcGVjaWFsLmFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiAwIDBweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpLCBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI0OWI3MDtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuYnV0dG9uLnNwZWNpYWw6ZGlzYWJsZWQsIC5idXR0b24uc3BlY2lhbDpkaXNhYmxlZDpob3ZlciwgaW5wdXRbdHlwZT1zdWJtaXRdLnNwZWNpYWw6ZGlzYWJsZWQsIGlucHV0W3R5cGU9c3VibWl0XS5zcGVjaWFsOmRpc2FibGVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0Y2MwOTY7IH1cbiAgLmJ1dHRvbi5taW5pbWFsLCBpbnB1dFt0eXBlPXN1Ym1pdF0ubWluaW1hbCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuYnV0dG9uLm1pbmltYWw6Zm9jdXMsIGlucHV0W3R5cGU9c3VibWl0XS5taW5pbWFsOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmJ1dHRvbi5taW5pbWFsOmhvdmVyLCBpbnB1dFt0eXBlPXN1Ym1pdF0ubWluaW1hbDpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjksIDIzNCwgMjQwLCAwLjIpO1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuYnV0dG9uLm1pbmltYWw6YWN0aXZlLCAuYnV0dG9uLm1pbmltYWwuYWN0aXZlLCBpbnB1dFt0eXBlPXN1Ym1pdF0ubWluaW1hbDphY3RpdmUsIGlucHV0W3R5cGU9c3VibWl0XS5taW5pbWFsLmFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjksIDIzNCwgMjQwLCAwLjUpO1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuYnV0dG9uLm1pbmltYWw6ZGlzYWJsZWQsIC5idXR0b24ubWluaW1hbDpkaXNhYmxlZDpob3ZlciwgaW5wdXRbdHlwZT1zdWJtaXRdLm1pbmltYWw6ZGlzYWJsZWQsIGlucHV0W3R5cGU9c3VibWl0XS5taW5pbWFsOmRpc2FibGVkOmhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYnV0dG9uLm1pbmltYWwtYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5taW5pbWFsLWJsYWNrIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjMpLCBpbnNldCAwIC0xcHggMXB4IDAgcmdiYSgxNywgMTksIDIxLCAwLjA4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuYnV0dG9uLm1pbmltYWwtYmxhY2s6Zm9jdXMsIGlucHV0W3R5cGU9c3VibWl0XS5taW5pbWFsLWJsYWNrOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMDgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuICAgIC5idXR0b24ubWluaW1hbC1ibGFjazpob3ZlciwgaW5wdXRbdHlwZT1zdWJtaXRdLm1pbmltYWwtYmxhY2s6aG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4wOCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5MCwgMjAzLCAyMjQsIDAuMik7XG4gICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuICAgIC5idXR0b24ubWluaW1hbC1ibGFjazphY3RpdmUsIC5idXR0b24ubWluaW1hbC1ibGFjay5hY3RpdmUsIGlucHV0W3R5cGU9c3VibWl0XS5taW5pbWFsLWJsYWNrOmFjdGl2ZSwgaW5wdXRbdHlwZT1zdWJtaXRdLm1pbmltYWwtYmxhY2suYWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMDgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOTAsIDIwMywgMjI0LCAwLjUpO1xuICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7IH1cbiAgICAuYnV0dG9uLm1pbmltYWwtYmxhY2s6ZGlzYWJsZWQsIC5idXR0b24ubWluaW1hbC1ibGFjazpkaXNhYmxlZDpob3ZlciwgaW5wdXRbdHlwZT1zdWJtaXRdLm1pbmltYWwtYmxhY2s6ZGlzYWJsZWQsIGlucHV0W3R5cGU9c3VibWl0XS5taW5pbWFsLWJsYWNrOmRpc2FibGVkOmhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMDgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwcHggMTVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDBweDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBoZWlnaHQ6IDQycHg7XG4gIGxpbmUtaGVpZ2h0OiA0MXB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDBweCAxNXB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC40KSwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNThhZmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzLCAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazphY3RpdmUsIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5hY3RpdmUge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjI1OyB9XG4gIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgcmdiYSgxNywgMTksIDIxLCAwLjQpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU4YWZlICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNThhZmUgIWltcG9ydGFudDtcbiAgICB0b3A6IDBweDtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6YWN0aXZlLCAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmsuYWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwIDBweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpLCBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDYyZDEgIWltcG9ydGFudDtcbiAgICB0b3A6IDFweDtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6ZGlzYWJsZWQsIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazpkaXNhYmxlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSAhaW1wb3J0YW50OyB9XG5cbi5mLWl0ZW0tcHJldmlldyA+IC5idXR0b24ge1xuICBtYXJnaW46IDEwcHg7IH1cblxuLmYtaXRlbS1wcmV2aWV3IC5mLXByZXZpZXctZGFyayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIC0xNXB4O1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA5cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7IH1cbiAgLmYtaXRlbS1wcmV2aWV3IC5mLXByZXZpZXctZGFyayA+IGg0LCAuZi1pdGVtLXByZXZpZXcgZmllbGRzZXQgLmYtcHJldmlldy1kYXJrID4gbGVnZW5kLCBmaWVsZHNldCAuZi1pdGVtLXByZXZpZXcgLmYtcHJldmlldy1kYXJrID4gbGVnZW5kLCAuZi1pdGVtLXByZXZpZXcgLmYtcHJldmlldy1kYXJrID4gLnBvc3RzLWxpc3RfX2hlYWRlciwgLmYtaXRlbS1wcmV2aWV3IC53b29jb21tZXJjZS1jaGVja291dCAuZi1wcmV2aWV3LWRhcmsgPiAjb3JkZXJfcmV2aWV3X2hlYWRpbmcsIC53b29jb21tZXJjZS1jaGVja291dCAuZi1pdGVtLXByZXZpZXcgLmYtcHJldmlldy1kYXJrID4gI29yZGVyX3Jldmlld19oZWFkaW5nIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgLmYtaXRlbS1wcmV2aWV3IC5mLXByZXZpZXctZGFyayA+IC5idXR0b24ge1xuICAgIG1hcmdpbjogMTBweDsgfVxuXG5sYWJlbCwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLmdzZWN0aW9uX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICBsYWJlbCAub3B0aW9uYWwsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5nc2VjdGlvbl90aXRsZSAub3B0aW9uYWwge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTsgfVxuICBsYWJlbCAucmVxdWlyZWQsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5nc2VjdGlvbl90aXRsZSAucmVxdWlyZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICNkYjM3Mzc7IH1cblxuLmYtaXRlbS1wcmV2aWV3ID4gbGFiZWwsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5mLWl0ZW0tcHJldmlldyA+IC5nc2VjdGlvbl90aXRsZSB7XG4gIG1hcmdpbjogMTBweDsgfVxuXG4ucHJpY2UtZGlzcGxheSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcGFkZGluZzogMHB4IDZweDsgfVxuICAucHJpY2UtZGlzcGxheSA+IHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzAwNjJkMTsgfVxuICAucHJpY2UtZGlzcGxheSA+IHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpOyB9XG4gIC5wcmljZS1kaXNwbGF5ID4gc3BhbjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpOyB9XG4gIC5wcmljZS1kaXNwbGF5LnNlY29uZGFyeSA+IHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgICBjb2xvcjogIzFlOTQ2MTsgfVxuICAucHJpY2UtZGlzcGxheS5sYXJnZSA+IHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgICBmb250LXNpemU6IDI0cHg7IH1cbiAgLnByaWNlLWRpc3BsYXkubGFyZ2UgPiBzcGFuOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpOyB9XG5cbi5mLWl0ZW0tcHJldmlldyA+IC5wcmljZS1kaXNwbGF5IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDEwcHg7IH1cblxuLmdmaWVsZF9yYWRpbyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwcHg7IH1cbiAgLmdmaWVsZF9yYWRpbyBsaTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXRvcDogN3B4OyB9XG4gIC5nZmllbGRfcmFkaW8gbGkgbGFiZWwsIC5nZmllbGRfcmFkaW8gbGkgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLmdzZWN0aW9uX3RpdGxlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAuZ2ZpZWxkX3JhZGlvIGxpIC5nc2VjdGlvbl90aXRsZSB7XG4gICAgbWFyZ2luOiAwcHg7IH1cblxubGFiZWwucmFkaW8tY2hlY2tib3gsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSwgbGFiZWwucmFkaW8tY2hlY2tib3ggPiBsYWJlbCwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gbGFiZWwsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gLmdzZWN0aW9uX3RpdGxlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAucmFkaW8tY2hlY2tib3guZ3NlY3Rpb25fdGl0bGUgPiAuZ3NlY3Rpb25fdGl0bGUsIC53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3gsIC53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3ggPiBsYWJlbCwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IC5nc2VjdGlvbl90aXRsZSwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSA+IGxhYmVsLCAuZ2ZpZWxkX3JhZGlvIC5nZm9ybXMtc2VjdGlvbi5ncmF5ICpbY2xhc3NePWdjaG9pY2VdID4gLmdzZWN0aW9uX3RpdGxlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAuZ2ZpZWxkX3JhZGlvICpbY2xhc3NePWdjaG9pY2VdID4gLmdzZWN0aW9uX3RpdGxlLCAud2NfcGF5bWVudF9tZXRob2QsIC53Y19wYXltZW50X21ldGhvZCA+IGxhYmVsLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAud2NfcGF5bWVudF9tZXRob2QgPiAuZ3NlY3Rpb25fdGl0bGUsIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0sIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBsYWJlbCwgLmdmaWVsZF9jaGVja2JveCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAqW2NsYXNzXj1nY2hvaWNlXSA+IC5nc2VjdGlvbl90aXRsZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLmdmaWVsZF9jaGVja2JveCAqW2NsYXNzXj1nY2hvaWNlXSA+IC5nc2VjdGlvbl90aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuXG5sYWJlbC5yYWRpby1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAucmFkaW8tY2hlY2tib3guZ3NlY3Rpb25fdGl0bGUgPiBpbnB1dFt0eXBlPWNoZWNrYm94XSwgbGFiZWwucmFkaW8tY2hlY2tib3ggPiBpbnB1dFt0eXBlPXJhZGlvXSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1yYWRpb10sIC53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3ggPiBpbnB1dFt0eXBlPWNoZWNrYm94XSwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IGlucHV0W3R5cGU9cmFkaW9dLCAuZ2ZpZWxkX3JhZGlvICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1jaGVja2JveF0sIC5nZmllbGRfcmFkaW8gKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPXJhZGlvXSwgLndjX3BheW1lbnRfbWV0aG9kID4gaW5wdXRbdHlwZT1jaGVja2JveF0sIC53Y19wYXltZW50X21ldGhvZCA+IGlucHV0W3R5cGU9cmFkaW9dLCAuZ2ZpZWxkX2NoZWNrYm94ICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1jaGVja2JveF0sIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgbGFiZWwucmFkaW8tY2hlY2tib3ggPiBpbnB1dFt0eXBlPWNoZWNrYm94XSArICosIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKiwgbGFiZWwucmFkaW8tY2hlY2tib3ggPiBpbnB1dFt0eXBlPXJhZGlvXSArICosIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9cmFkaW9dICsgKiwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKiwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IGlucHV0W3R5cGU9cmFkaW9dICsgKiwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKiwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9cmFkaW9dICsgKiwgLndjX3BheW1lbnRfbWV0aG9kID4gaW5wdXRbdHlwZT1jaGVja2JveF0gKyAqLCAud2NfcGF5bWVudF9tZXRob2QgPiBpbnB1dFt0eXBlPXJhZGlvXSArICosIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XSArICosIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPXJhZGlvXSArICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICBsYWJlbC5yYWRpby1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjpiZWZvcmUsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjpiZWZvcmUsIGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmJlZm9yZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmJlZm9yZSwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjpiZWZvcmUsIC53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3ggPiBpbnB1dFt0eXBlPXJhZGlvXSArICo6YmVmb3JlLCAuZ2ZpZWxkX3JhZGlvICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1jaGVja2JveF0gKyAqOmJlZm9yZSwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9cmFkaW9dICsgKjpiZWZvcmUsIC53Y19wYXltZW50X21ldGhvZCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjpiZWZvcmUsIC53Y19wYXltZW50X21ldGhvZCA+IGlucHV0W3R5cGU9cmFkaW9dICsgKjpiZWZvcmUsIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XSArICo6YmVmb3JlLCAuZ2ZpZWxkX2NoZWNrYm94ICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMjksIDMxLCAzMywgMC4xNSk7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB3aWR0aDogMThweDtcbiAgICAgIG1pbi13aWR0aDogMThweDtcbiAgICAgIGhlaWdodDogMThweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZmZmZiAwJSwgI0VDRUVGMCAxMDAlKTtcbiAgICAgIC8qIEZGMy42LTE1ICovXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYgMCUsICNFQ0VFRjAgMTAwJSk7XG4gICAgICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZmZmZiAwJSwgI0VDRUVGMCAxMDAlKTtcbiAgICAgIC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICAgICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI0VDRUVGMCcsR3JhZGllbnRUeXBlPTAgKTtcbiAgICAgIC8qIElFNi05ICovXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDsgfVxuICAgIGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1jaGVja2JveF0gKyAqOmhvdmVyOmJlZm9yZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1jaGVja2JveF0gKyAqOmhvdmVyOmJlZm9yZSwgbGFiZWwucmFkaW8tY2hlY2tib3ggPiBpbnB1dFt0eXBlPXJhZGlvXSArICo6aG92ZXI6YmVmb3JlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAucmFkaW8tY2hlY2tib3guZ3NlY3Rpb25fdGl0bGUgPiBpbnB1dFt0eXBlPXJhZGlvXSArICo6aG92ZXI6YmVmb3JlLCAud29vY29tbWVyY2UtZm9ybV9fbGFiZWwtZm9yLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1jaGVja2JveF0gKyAqOmhvdmVyOmJlZm9yZSwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IGlucHV0W3R5cGU9cmFkaW9dICsgKjpob3ZlcjpiZWZvcmUsIC5nZmllbGRfcmFkaW8gKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XSArICo6aG92ZXI6YmVmb3JlLCAuZ2ZpZWxkX3JhZGlvICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmhvdmVyOmJlZm9yZSwgLndjX3BheW1lbnRfbWV0aG9kID4gaW5wdXRbdHlwZT1jaGVja2JveF0gKyAqOmhvdmVyOmJlZm9yZSwgLndjX3BheW1lbnRfbWV0aG9kID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmhvdmVyOmJlZm9yZSwgLmdmaWVsZF9jaGVja2JveCAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjpob3ZlcjpiZWZvcmUsIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPXJhZGlvXSArICo6aG92ZXI6YmVmb3JlIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuOCksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpOyB9XG4gICAgbGFiZWwucmFkaW8tY2hlY2tib3ggPiBpbnB1dFt0eXBlPWNoZWNrYm94XSArICo6YWN0aXZlOmJlZm9yZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1jaGVja2JveF0gKyAqOmFjdGl2ZTpiZWZvcmUsIGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmFjdGl2ZTpiZWZvcmUsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9cmFkaW9dICsgKjphY3RpdmU6YmVmb3JlLCAud29vY29tbWVyY2UtZm9ybV9fbGFiZWwtZm9yLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1jaGVja2JveF0gKyAqOmFjdGl2ZTpiZWZvcmUsIC53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3ggPiBpbnB1dFt0eXBlPXJhZGlvXSArICo6YWN0aXZlOmJlZm9yZSwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjphY3RpdmU6YmVmb3JlLCAuZ2ZpZWxkX3JhZGlvICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmFjdGl2ZTpiZWZvcmUsIC53Y19wYXltZW50X21ldGhvZCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjphY3RpdmU6YmVmb3JlLCAud2NfcGF5bWVudF9tZXRob2QgPiBpbnB1dFt0eXBlPXJhZGlvXSArICo6YWN0aXZlOmJlZm9yZSwgLmdmaWVsZF9jaGVja2JveCAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjphY3RpdmU6YmVmb3JlLCAuZ2ZpZWxkX2NoZWNrYm94ICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmFjdGl2ZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjRUNFRUYwIDAlLCAjZmZmZmZmIDEwMCUpO1xuICAgICAgLyogRkYzLjYtMTUgKi9cbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI0VDRUVGMCAwJSwgI2ZmZmZmZiAxMDAlKTtcbiAgICAgIC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjRUNFRUYwIDAlLCAjZmZmZmZmIDEwMCUpO1xuICAgICAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI0VDRUVGMCcsIGVuZENvbG9yc3RyPScjZmZmZmZmJyxHcmFkaWVudFR5cGU9MCApO1xuICAgICAgLyogSUU2LTkgKi9cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14OyB9XG4gIGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArICosIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqLCBsYWJlbC5yYWRpby1jaGVja2JveCA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAucmFkaW8tY2hlY2tib3guZ3NlY3Rpb25fdGl0bGUgPiBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkICsgKiwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqLCAud29vY29tbWVyY2UtZm9ybV9fbGFiZWwtZm9yLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArICosIC5nZmllbGRfcmFkaW8gKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgKiwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqLCAud2NfcGF5bWVudF9tZXRob2QgPiBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgKiwgLndjX3BheW1lbnRfbWV0aG9kID4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArICosIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgKiwgLmdmaWVsZF9jaGVja2JveCAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBsYWJlbC5yYWRpby1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqOmJlZm9yZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArICo6YmVmb3JlLCBsYWJlbC5yYWRpby1jaGVja2JveCA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqOmJlZm9yZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YmVmb3JlLCAud29vY29tbWVyY2UtZm9ybV9fbGFiZWwtZm9yLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArICo6YmVmb3JlLCAud29vY29tbWVyY2UtZm9ybV9fbGFiZWwtZm9yLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YmVmb3JlLCAuZ2ZpZWxkX3JhZGlvICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArICo6YmVmb3JlLCAuZ2ZpZWxkX3JhZGlvICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YmVmb3JlLCAud2NfcGF5bWVudF9tZXRob2QgPiBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgKjpiZWZvcmUsIC53Y19wYXltZW50X21ldGhvZCA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqOmJlZm9yZSwgLmdmaWVsZF9jaGVja2JveCAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqOmJlZm9yZSwgLmdmaWVsZF9jaGVja2JveCAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqOmJlZm9yZSB7XG4gICAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgICAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICBjb250ZW50OiBcIu6kglwiO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgICBmb250LXNpemU6IDkuNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDA2MmQxOyB9XG4gICAgbGFiZWwucmFkaW8tY2hlY2tib3ggPiBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgKjpob3ZlcjpiZWZvcmUsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqOmhvdmVyOmJlZm9yZSwgbGFiZWwucmFkaW8tY2hlY2tib3ggPiBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkICsgKjpob3ZlcjpiZWZvcmUsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqOmhvdmVyOmJlZm9yZSwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqOmhvdmVyOmJlZm9yZSwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqOmhvdmVyOmJlZm9yZSwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqOmhvdmVyOmJlZm9yZSwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqOmhvdmVyOmJlZm9yZSwgLndjX3BheW1lbnRfbWV0aG9kID4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArICo6aG92ZXI6YmVmb3JlLCAud2NfcGF5bWVudF9tZXRob2QgPiBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkICsgKjpob3ZlcjpiZWZvcmUsIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgKjpob3ZlcjpiZWZvcmUsIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkICsgKjpob3ZlcjpiZWZvcmUge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4xKTtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDY5ZTA7IH1cbiAgICBsYWJlbC5yYWRpby1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqOmFjdGl2ZTpiZWZvcmUsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqOmFjdGl2ZTpiZWZvcmUsIGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YWN0aXZlOmJlZm9yZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YWN0aXZlOmJlZm9yZSwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqOmFjdGl2ZTpiZWZvcmUsIC53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3ggPiBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkICsgKjphY3RpdmU6YmVmb3JlLCAuZ2ZpZWxkX3JhZGlvICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArICo6YWN0aXZlOmJlZm9yZSwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqOmFjdGl2ZTpiZWZvcmUsIC53Y19wYXltZW50X21ldGhvZCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyAqOmFjdGl2ZTpiZWZvcmUsIC53Y19wYXltZW50X21ldGhvZCA+IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqOmFjdGl2ZTpiZWZvcmUsIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgKjphY3RpdmU6YmVmb3JlLCAuZ2ZpZWxkX2NoZWNrYm94ICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YWN0aXZlOmJlZm9yZSB7XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggcmdiYSgxNywgMTksIDIxLCAwLjEpO1xuICAgICAgYmFja2dyb3VuZDogIzAwNTZiODsgfVxuICBsYWJlbC5yYWRpby1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdW3R5cGU9cmFkaW9dICsgKjpiZWZvcmUsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdW3R5cGU9cmFkaW9dICsgKjpiZWZvcmUsIGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1yYWRpb11bdHlwZT1yYWRpb10gKyAqOmJlZm9yZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1yYWRpb11bdHlwZT1yYWRpb10gKyAqOmJlZm9yZSwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdW3R5cGU9cmFkaW9dICsgKjpiZWZvcmUsIC53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3ggPiBpbnB1dFt0eXBlPXJhZGlvXVt0eXBlPXJhZGlvXSArICo6YmVmb3JlLCAuZ2ZpZWxkX3JhZGlvICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1jaGVja2JveF1bdHlwZT1yYWRpb10gKyAqOmJlZm9yZSwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9cmFkaW9dW3R5cGU9cmFkaW9dICsgKjpiZWZvcmUsIC53Y19wYXltZW50X21ldGhvZCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdW3R5cGU9cmFkaW9dICsgKjpiZWZvcmUsIC53Y19wYXltZW50X21ldGhvZCA+IGlucHV0W3R5cGU9cmFkaW9dW3R5cGU9cmFkaW9dICsgKjpiZWZvcmUsIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XVt0eXBlPXJhZGlvXSArICo6YmVmb3JlLCAuZ2ZpZWxkX2NoZWNrYm94ICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1yYWRpb11bdHlwZT1yYWRpb10gKyAqOmJlZm9yZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gIGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1jaGVja2JveF1bdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YmVmb3JlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAucmFkaW8tY2hlY2tib3guZ3NlY3Rpb25fdGl0bGUgPiBpbnB1dFt0eXBlPWNoZWNrYm94XVt0eXBlPXJhZGlvXTpjaGVja2VkICsgKjpiZWZvcmUsIGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1yYWRpb11bdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YmVmb3JlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAucmFkaW8tY2hlY2tib3guZ3NlY3Rpb25fdGl0bGUgPiBpbnB1dFt0eXBlPXJhZGlvXVt0eXBlPXJhZGlvXTpjaGVja2VkICsgKjpiZWZvcmUsIC53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3ggPiBpbnB1dFt0eXBlPWNoZWNrYm94XVt0eXBlPXJhZGlvXTpjaGVja2VkICsgKjpiZWZvcmUsIC53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3ggPiBpbnB1dFt0eXBlPXJhZGlvXVt0eXBlPXJhZGlvXTpjaGVja2VkICsgKjpiZWZvcmUsIC5nZmllbGRfcmFkaW8gKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XVt0eXBlPXJhZGlvXTpjaGVja2VkICsgKjpiZWZvcmUsIC5nZmllbGRfcmFkaW8gKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPXJhZGlvXVt0eXBlPXJhZGlvXTpjaGVja2VkICsgKjpiZWZvcmUsIC53Y19wYXltZW50X21ldGhvZCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdW3R5cGU9cmFkaW9dOmNoZWNrZWQgKyAqOmJlZm9yZSwgLndjX3BheW1lbnRfbWV0aG9kID4gaW5wdXRbdHlwZT1yYWRpb11bdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YmVmb3JlLCAuZ2ZpZWxkX2NoZWNrYm94ICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1jaGVja2JveF1bdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YmVmb3JlLCAuZ2ZpZWxkX2NoZWNrYm94ICpbY2xhc3NePWdjaG9pY2VdID4gaW5wdXRbdHlwZT1yYWRpb11bdHlwZT1yYWRpb106Y2hlY2tlZCArICo6YmVmb3JlIHtcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIGNvbnRlbnQ6IFwi7qSAXCI7XG4gICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgZm9udC1zaXplOiA3LjVweDsgfVxuXG4ucmVzb3VyY2UtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ucmVzb3VyY2UtbGlua19fd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6ICMwMDYyZDE7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5yZXNvdXJjZS1saW5rX193cmFwcGVyOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnJlc291cmNlLWxpbmtfX2ljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIG1heC1oZWlnaHQ6IDQ2cHg7XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4td2lkdGg6IDQycHg7IH1cblxuLnJlc291cmNlLWxpbmtfX3RleHQge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjMDA2MmQxOyB9XG5cbi5zZWN0aW9uLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zZWN0aW9uLXRpdGxlX190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuXG4uc2VjdGlvbi1pY29uLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zZWN0aW9uLWljb24tdGl0bGUtLWludGVyZmFjZSAuc2VjdGlvbi1pY29uLXRpdGxlX19pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Rpc2staW50ZXJmYWNlLnN2Z1wiKTsgfVxuXG4uc2VjdGlvbi1pY29uLXRpdGxlLS1zdG9yaWVzIC5zZWN0aW9uLWljb24tdGl0bGVfX2ljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZGlzay1zdG9yaWVzLnN2Z1wiKTsgfVxuXG4uc2VjdGlvbi1pY29uLXRpdGxlLS1zb2Z0d2FyZSAuc2VjdGlvbi1pY29uLXRpdGxlX19pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Rpc2stc29mdHdhcmUtdGllcnMuc3ZnXCIpOyB9XG5cbi5zZWN0aW9uLWljb24tdGl0bGUtLWZsb3cgLnNlY3Rpb24taWNvbi10aXRsZV9faWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9kaXNrLWZsb3cuc3ZnXCIpOyB9XG5cbi5zZWN0aW9uLWljb24tdGl0bGUtLWNvcmUtdGVjaCAuc2VjdGlvbi1pY29uLXRpdGxlX19pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Rpc2stY29yZS10ZWNoLnN2Z1wiKTsgfVxuXG4uc2VjdGlvbi1pY29uLXRpdGxlX19pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNTFweDtcbiAgaGVpZ2h0OiA1MXB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47IH1cblxuLnNlY3Rpb24taWNvbi10aXRsZV9fdGl0bGUge1xuICBmb250LWZhbWlseTogaXZ5am91cm5hbCxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4yZW07XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xuICBsaW5lLWhlaWdodDogMS4yOWVtO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcbiAgd2lkdGg6IDU1MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5zZWN0aW9uLWljb24tdGl0bGVfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OyB9IH1cblxuLnNlY3Rpb24taWNvbi10aXRsZV9fc3VidGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiA1ODBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAxNXB4OyB9XG5cbi5mLWl0ZW0tcHJldmlldyA+IC5pbnB1dC1maWVsZCwgLmYtaXRlbS1wcmV2aWV3ID4gLmZvcm0tcm93LCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC5naW5wdXRfY29tcGxleC5mLWl0ZW0tcHJldmlldyA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmYtaXRlbS1wcmV2aWV3ID4gLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmYtaXRlbS1wcmV2aWV3ID4gLmdmb3JtX2Zvb3RlciB7XG4gIHdpZHRoOiAyNjBweDsgfVxuXG5bdHlwZT0ndGV4dCddLFxuW3R5cGU9J3Bhc3N3b3JkJ10sXG5bdHlwZT0nZGF0ZSddLFxuW3R5cGU9J2RhdGV0aW1lJ10sXG5bdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSxcblt0eXBlPSdtb250aCddLFxuW3R5cGU9J3dlZWsnXSxcblt0eXBlPSdlbWFpbCddLFxuW3R5cGU9J251bWJlciddLFxuW3R5cGU9J3NlYXJjaCddLFxuW3R5cGU9J3RlbCddLFxuW3R5cGU9J3RpbWUnXSxcblt0eXBlPSd1cmwnXSxcblt0eXBlPSdjb2xvciddLFxudGV4dGFyZWEsXG4uc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMCksIGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSksIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwKSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwKSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzJweDtcbiAgcGFkZGluZzogMHB4IDI1cHggMHB4IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBweDtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7IH1cbiAgW3R5cGU9J3RleHQnXSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkLFxuICBbdHlwZT0ncGFzc3dvcmQnXSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkLFxuICBbdHlwZT0nZGF0ZSddIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQsXG4gIFt0eXBlPSdkYXRldGltZSddIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQsXG4gIFt0eXBlPSdkYXRldGltZS1sb2NhbCddIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQsXG4gIFt0eXBlPSdtb250aCddIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQsXG4gIFt0eXBlPSd3ZWVrJ10gLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCxcbiAgW3R5cGU9J2VtYWlsJ10gLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCxcbiAgW3R5cGU9J251bWJlciddIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQsXG4gIFt0eXBlPSdzZWFyY2gnXSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkLFxuICBbdHlwZT0ndGVsJ10gLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCxcbiAgW3R5cGU9J3RpbWUnXSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkLFxuICBbdHlwZT0ndXJsJ10gLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCxcbiAgW3R5cGU9J2NvbG9yJ10gLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCxcbiAgdGV4dGFyZWEgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCxcbiAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7IH1cbiAgW3R5cGU9J3RleHQnXSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93LFxuICBbdHlwZT0ncGFzc3dvcmQnXSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93LFxuICBbdHlwZT0nZGF0ZSddIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3csXG4gIFt0eXBlPSdkYXRldGltZSddIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3csXG4gIFt0eXBlPSdkYXRldGltZS1sb2NhbCddIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3csXG4gIFt0eXBlPSdtb250aCddIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3csXG4gIFt0eXBlPSd3ZWVrJ10gLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyxcbiAgW3R5cGU9J2VtYWlsJ10gLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyxcbiAgW3R5cGU9J251bWJlciddIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3csXG4gIFt0eXBlPSdzZWFyY2gnXSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93LFxuICBbdHlwZT0ndGVsJ10gLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyxcbiAgW3R5cGU9J3RpbWUnXSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93LFxuICBbdHlwZT0ndXJsJ10gLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyxcbiAgW3R5cGU9J2NvbG9yJ10gLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyxcbiAgdGV4dGFyZWEgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyxcbiAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xuICAgIGhlaWdodDogMzBweDsgfVxuICBbdHlwZT0ndGV4dCddOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0ncGFzc3dvcmQnXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2RhdGUnXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2RhdGV0aW1lJ106Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0nbW9udGgnXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J3dlZWsnXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2VtYWlsJ106Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0ndGVsJ106Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSd0aW1lJ106Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSd1cmwnXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2NvbG9yJ106Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIHRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuICAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGU6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICAgb3BhY2l0eTogMTsgfVxuICBbdHlwZT0ndGV4dCddOjotbW96LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0ncGFzc3dvcmQnXTo6LW1vei1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2RhdGUnXTo6LW1vei1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2RhdGV0aW1lJ106Oi1tb3otcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOjotbW96LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0nbW9udGgnXTo6LW1vei1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J3dlZWsnXTo6LW1vei1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2VtYWlsJ106Oi1tb3otcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdudW1iZXInXTo6LW1vei1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J3NlYXJjaCddOjotbW96LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0ndGVsJ106Oi1tb3otcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSd0aW1lJ106Oi1tb3otcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSd1cmwnXTo6LW1vei1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2NvbG9yJ106Oi1tb3otcGxhY2Vob2xkZXIsXG4gIHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyLFxuICAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGU6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICAgb3BhY2l0eTogMTsgfVxuICBbdHlwZT0ndGV4dCddOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J3Bhc3N3b3JkJ106LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0nZGF0ZSddOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2RhdGV0aW1lJ106LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdtb250aCddOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J3dlZWsnXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdlbWFpbCddOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J251bWJlciddOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J3NlYXJjaCddOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J3RlbCddOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J3RpbWUnXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSd1cmwnXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdjb2xvciddOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgdGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxuICAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGU6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjQpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgW3R5cGU9J3RleHQnXTotbW96LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0ncGFzc3dvcmQnXTotbW96LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0nZGF0ZSddOi1tb3otcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdkYXRldGltZSddOi1tb3otcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOi1tb3otcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdtb250aCddOi1tb3otcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSd3ZWVrJ106LW1vei1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2VtYWlsJ106LW1vei1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J251bWJlciddOi1tb3otcGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdzZWFyY2gnXTotbW96LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0ndGVsJ106LW1vei1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J3RpbWUnXTotbW96LXBsYWNlaG9sZGVyLFxuICBbdHlwZT0ndXJsJ106LW1vei1wbGFjZWhvbGRlcixcbiAgW3R5cGU9J2NvbG9yJ106LW1vei1wbGFjZWhvbGRlcixcbiAgdGV4dGFyZWE6LW1vei1wbGFjZWhvbGRlcixcbiAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlOi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICAgb3BhY2l0eTogMTsgfVxuICBbdHlwZT0ndGV4dCddOjpwbGFjZWhvbGRlcixcbiAgW3R5cGU9J3Bhc3N3b3JkJ106OnBsYWNlaG9sZGVyLFxuICBbdHlwZT0nZGF0ZSddOjpwbGFjZWhvbGRlcixcbiAgW3R5cGU9J2RhdGV0aW1lJ106OnBsYWNlaG9sZGVyLFxuICBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXTo6cGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdtb250aCddOjpwbGFjZWhvbGRlcixcbiAgW3R5cGU9J3dlZWsnXTo6cGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdlbWFpbCddOjpwbGFjZWhvbGRlcixcbiAgW3R5cGU9J251bWJlciddOjpwbGFjZWhvbGRlcixcbiAgW3R5cGU9J3NlYXJjaCddOjpwbGFjZWhvbGRlcixcbiAgW3R5cGU9J3RlbCddOjpwbGFjZWhvbGRlcixcbiAgW3R5cGU9J3RpbWUnXTo6cGxhY2Vob2xkZXIsXG4gIFt0eXBlPSd1cmwnXTo6cGxhY2Vob2xkZXIsXG4gIFt0eXBlPSdjb2xvciddOjpwbGFjZWhvbGRlcixcbiAgdGV4dGFyZWE6OnBsYWNlaG9sZGVyLFxuICAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGU6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjQpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgW3R5cGU9J3RleHQnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCk6YWN0aXZlLCBbdHlwZT0ndGV4dCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTpmb2N1cywgW3R5cGU9J3RleHQnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCkuYWN0aXZlLCBbdHlwZT0ndGV4dCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKVthcmlhLWV4cGFuZGVkPXRydWVdLFxuICBbdHlwZT0ncGFzc3dvcmQnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCk6YWN0aXZlLFxuICBbdHlwZT0ncGFzc3dvcmQnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCk6Zm9jdXMsXG4gIFt0eXBlPSdwYXNzd29yZCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKS5hY3RpdmUsXG4gIFt0eXBlPSdwYXNzd29yZCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKVthcmlhLWV4cGFuZGVkPXRydWVdLFxuICBbdHlwZT0nZGF0ZSddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTphY3RpdmUsXG4gIFt0eXBlPSdkYXRlJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmZvY3VzLFxuICBbdHlwZT0nZGF0ZSddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKS5hY3RpdmUsXG4gIFt0eXBlPSdkYXRlJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0sXG4gIFt0eXBlPSdkYXRldGltZSddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTphY3RpdmUsXG4gIFt0eXBlPSdkYXRldGltZSddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTpmb2N1cyxcbiAgW3R5cGU9J2RhdGV0aW1lJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpLmFjdGl2ZSxcbiAgW3R5cGU9J2RhdGV0aW1lJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0sXG4gIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTphY3RpdmUsXG4gIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTpmb2N1cyxcbiAgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpLmFjdGl2ZSxcbiAgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0sXG4gIFt0eXBlPSdtb250aCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTphY3RpdmUsXG4gIFt0eXBlPSdtb250aCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTpmb2N1cyxcbiAgW3R5cGU9J21vbnRoJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpLmFjdGl2ZSxcbiAgW3R5cGU9J21vbnRoJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0sXG4gIFt0eXBlPSd3ZWVrJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmFjdGl2ZSxcbiAgW3R5cGU9J3dlZWsnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCk6Zm9jdXMsXG4gIFt0eXBlPSd3ZWVrJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpLmFjdGl2ZSxcbiAgW3R5cGU9J3dlZWsnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZClbYXJpYS1leHBhbmRlZD10cnVlXSxcbiAgW3R5cGU9J2VtYWlsJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmFjdGl2ZSxcbiAgW3R5cGU9J2VtYWlsJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmZvY3VzLFxuICBbdHlwZT0nZW1haWwnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCkuYWN0aXZlLFxuICBbdHlwZT0nZW1haWwnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZClbYXJpYS1leHBhbmRlZD10cnVlXSxcbiAgW3R5cGU9J251bWJlciddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTphY3RpdmUsXG4gIFt0eXBlPSdudW1iZXInXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCk6Zm9jdXMsXG4gIFt0eXBlPSdudW1iZXInXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCkuYWN0aXZlLFxuICBbdHlwZT0nbnVtYmVyJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0sXG4gIFt0eXBlPSdzZWFyY2gnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCk6YWN0aXZlLFxuICBbdHlwZT0nc2VhcmNoJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmZvY3VzLFxuICBbdHlwZT0nc2VhcmNoJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpLmFjdGl2ZSxcbiAgW3R5cGU9J3NlYXJjaCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKVthcmlhLWV4cGFuZGVkPXRydWVdLFxuICBbdHlwZT0ndGVsJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmFjdGl2ZSxcbiAgW3R5cGU9J3RlbCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTpmb2N1cyxcbiAgW3R5cGU9J3RlbCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKS5hY3RpdmUsXG4gIFt0eXBlPSd0ZWwnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZClbYXJpYS1leHBhbmRlZD10cnVlXSxcbiAgW3R5cGU9J3RpbWUnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCk6YWN0aXZlLFxuICBbdHlwZT0ndGltZSddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTpmb2N1cyxcbiAgW3R5cGU9J3RpbWUnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCkuYWN0aXZlLFxuICBbdHlwZT0ndGltZSddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKVthcmlhLWV4cGFuZGVkPXRydWVdLFxuICBbdHlwZT0ndXJsJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmFjdGl2ZSxcbiAgW3R5cGU9J3VybCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTpmb2N1cyxcbiAgW3R5cGU9J3VybCddOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKS5hY3RpdmUsXG4gIFt0eXBlPSd1cmwnXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZClbYXJpYS1leHBhbmRlZD10cnVlXSxcbiAgW3R5cGU9J2NvbG9yJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmFjdGl2ZSxcbiAgW3R5cGU9J2NvbG9yJ106bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmZvY3VzLFxuICBbdHlwZT0nY29sb3InXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCkuYWN0aXZlLFxuICBbdHlwZT0nY29sb3InXTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZClbYXJpYS1leHBhbmRlZD10cnVlXSxcbiAgdGV4dGFyZWE6bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmFjdGl2ZSxcbiAgdGV4dGFyZWE6bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmZvY3VzLFxuICB0ZXh0YXJlYTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCkuYWN0aXZlLFxuICB0ZXh0YXJlYTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZClbYXJpYS1leHBhbmRlZD10cnVlXSxcbiAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTphY3RpdmUsXG4gIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCk6Zm9jdXMsXG4gIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZTpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZCkuYWN0aXZlLFxuICAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGU6bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgOTgsIDIwOSwgMC42KSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsIDk4LCAyMDksIDAuNiksIGluc2V0IDAgMCAwIDFweCAjMDA2MmQxLCBpbnNldCAwIDFweCAycHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgOTgsIDIwOSwgMC42KSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgW3R5cGU9J3RleHQnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6YWN0aXZlLCBbdHlwZT0ndGV4dCddLnNlbGVjdDItc2VhcmNoX19maWVsZDpmb2N1cywgW3R5cGU9J3RleHQnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQuYWN0aXZlLCBbdHlwZT0ndGV4dCddLnNlbGVjdDItc2VhcmNoX19maWVsZCxcbiAgW3R5cGU9J3Bhc3N3b3JkJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmFjdGl2ZSxcbiAgW3R5cGU9J3Bhc3N3b3JkJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmZvY3VzLFxuICBbdHlwZT0ncGFzc3dvcmQnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQuYWN0aXZlLFxuICBbdHlwZT0ncGFzc3dvcmQnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQsXG4gIFt0eXBlPSdkYXRlJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmFjdGl2ZSxcbiAgW3R5cGU9J2RhdGUnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6Zm9jdXMsXG4gIFt0eXBlPSdkYXRlJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLmFjdGl2ZSxcbiAgW3R5cGU9J2RhdGUnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQsXG4gIFt0eXBlPSdkYXRldGltZSddLnNlbGVjdDItc2VhcmNoX19maWVsZDphY3RpdmUsXG4gIFt0eXBlPSdkYXRldGltZSddLnNlbGVjdDItc2VhcmNoX19maWVsZDpmb2N1cyxcbiAgW3R5cGU9J2RhdGV0aW1lJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLmFjdGl2ZSxcbiAgW3R5cGU9J2RhdGV0aW1lJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLFxuICBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6YWN0aXZlLFxuICBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6Zm9jdXMsXG4gIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLnNlbGVjdDItc2VhcmNoX19maWVsZC5hY3RpdmUsXG4gIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLnNlbGVjdDItc2VhcmNoX19maWVsZCxcbiAgW3R5cGU9J21vbnRoJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmFjdGl2ZSxcbiAgW3R5cGU9J21vbnRoJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmZvY3VzLFxuICBbdHlwZT0nbW9udGgnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQuYWN0aXZlLFxuICBbdHlwZT0nbW9udGgnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQsXG4gIFt0eXBlPSd3ZWVrJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmFjdGl2ZSxcbiAgW3R5cGU9J3dlZWsnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6Zm9jdXMsXG4gIFt0eXBlPSd3ZWVrJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLmFjdGl2ZSxcbiAgW3R5cGU9J3dlZWsnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQsXG4gIFt0eXBlPSdlbWFpbCddLnNlbGVjdDItc2VhcmNoX19maWVsZDphY3RpdmUsXG4gIFt0eXBlPSdlbWFpbCddLnNlbGVjdDItc2VhcmNoX19maWVsZDpmb2N1cyxcbiAgW3R5cGU9J2VtYWlsJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLmFjdGl2ZSxcbiAgW3R5cGU9J2VtYWlsJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLFxuICBbdHlwZT0nbnVtYmVyJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmFjdGl2ZSxcbiAgW3R5cGU9J251bWJlciddLnNlbGVjdDItc2VhcmNoX19maWVsZDpmb2N1cyxcbiAgW3R5cGU9J251bWJlciddLnNlbGVjdDItc2VhcmNoX19maWVsZC5hY3RpdmUsXG4gIFt0eXBlPSdudW1iZXInXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQsXG4gIFt0eXBlPSdzZWFyY2gnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6YWN0aXZlLFxuICBbdHlwZT0nc2VhcmNoJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmZvY3VzLFxuICBbdHlwZT0nc2VhcmNoJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLmFjdGl2ZSxcbiAgW3R5cGU9J3NlYXJjaCddLnNlbGVjdDItc2VhcmNoX19maWVsZCxcbiAgW3R5cGU9J3RlbCddLnNlbGVjdDItc2VhcmNoX19maWVsZDphY3RpdmUsXG4gIFt0eXBlPSd0ZWwnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6Zm9jdXMsXG4gIFt0eXBlPSd0ZWwnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQuYWN0aXZlLFxuICBbdHlwZT0ndGVsJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLFxuICBbdHlwZT0ndGltZSddLnNlbGVjdDItc2VhcmNoX19maWVsZDphY3RpdmUsXG4gIFt0eXBlPSd0aW1lJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmZvY3VzLFxuICBbdHlwZT0ndGltZSddLnNlbGVjdDItc2VhcmNoX19maWVsZC5hY3RpdmUsXG4gIFt0eXBlPSd0aW1lJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLFxuICBbdHlwZT0ndXJsJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmFjdGl2ZSxcbiAgW3R5cGU9J3VybCddLnNlbGVjdDItc2VhcmNoX19maWVsZDpmb2N1cyxcbiAgW3R5cGU9J3VybCddLnNlbGVjdDItc2VhcmNoX19maWVsZC5hY3RpdmUsXG4gIFt0eXBlPSd1cmwnXS5zZWxlY3QyLXNlYXJjaF9fZmllbGQsXG4gIFt0eXBlPSdjb2xvciddLnNlbGVjdDItc2VhcmNoX19maWVsZDphY3RpdmUsXG4gIFt0eXBlPSdjb2xvciddLnNlbGVjdDItc2VhcmNoX19maWVsZDpmb2N1cyxcbiAgW3R5cGU9J2NvbG9yJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLmFjdGl2ZSxcbiAgW3R5cGU9J2NvbG9yJ10uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLFxuICB0ZXh0YXJlYS5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6YWN0aXZlLFxuICB0ZXh0YXJlYS5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6Zm9jdXMsXG4gIHRleHRhcmVhLnNlbGVjdDItc2VhcmNoX19maWVsZC5hY3RpdmUsXG4gIHRleHRhcmVhLnNlbGVjdDItc2VhcmNoX19maWVsZCxcbiAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlLnNlbGVjdDItc2VhcmNoX19maWVsZDphY3RpdmUsXG4gIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZS5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6Zm9jdXMsXG4gIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZS5zZWxlY3QyLXNlYXJjaF9fZmllbGQuYWN0aXZlLFxuICAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDBweCByZ2JhKDAsIDk4LCAyMDksIDApLCBpbnNldCAwIDAgMCAxcHggIzAwNjJkMSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMCksIGluc2V0IDAgMCAwIDFweCAjMDA2MmQxLCBpbnNldCAwIDFweCAycHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMCksIGluc2V0IDAgMCAwIDFweCAjMDA2MmQxLCBpbnNldCAwIDFweCAycHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7IH1cbiAgW3R5cGU9J3RleHQnXS5lcnJvcixcbiAgW3R5cGU9J3Bhc3N3b3JkJ10uZXJyb3IsXG4gIFt0eXBlPSdkYXRlJ10uZXJyb3IsXG4gIFt0eXBlPSdkYXRldGltZSddLmVycm9yLFxuICBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXS5lcnJvcixcbiAgW3R5cGU9J21vbnRoJ10uZXJyb3IsXG4gIFt0eXBlPSd3ZWVrJ10uZXJyb3IsXG4gIFt0eXBlPSdlbWFpbCddLmVycm9yLFxuICBbdHlwZT0nbnVtYmVyJ10uZXJyb3IsXG4gIFt0eXBlPSdzZWFyY2gnXS5lcnJvcixcbiAgW3R5cGU9J3RlbCddLmVycm9yLFxuICBbdHlwZT0ndGltZSddLmVycm9yLFxuICBbdHlwZT0ndXJsJ10uZXJyb3IsXG4gIFt0eXBlPSdjb2xvciddLmVycm9yLFxuICB0ZXh0YXJlYS5lcnJvcixcbiAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlLmVycm9yIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDBweCByZ2JhKDAsIDk4LCAyMDksIDAuNiksIGluc2V0IDAgMCAwIDBweCAjMDA2MmQxLCBpbnNldCAwIDAgMCAxcHggI2RiMzczNztcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgMCAwIDBweCByZ2JhKDAsIDk4LCAyMDksIDAuNiksIGluc2V0IDAgMCAwIDBweCAjMDA2MmQxLCBpbnNldCAwIDAgMCAxcHggI2RiMzczNztcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwLjYpLCBpbnNldCAwIDAgMCAwcHggIzAwNjJkMSwgaW5zZXQgMCAwIDAgMXB4ICNkYjM3Mzc7IH1cbiAgICBbdHlwZT0ndGV4dCddLmVycm9yOmFjdGl2ZSwgW3R5cGU9J3RleHQnXS5lcnJvcjpmb2N1cywgW3R5cGU9J3RleHQnXS5lcnJvci5hY3RpdmUsXG4gICAgW3R5cGU9J3Bhc3N3b3JkJ10uZXJyb3I6YWN0aXZlLFxuICAgIFt0eXBlPSdwYXNzd29yZCddLmVycm9yOmZvY3VzLFxuICAgIFt0eXBlPSdwYXNzd29yZCddLmVycm9yLmFjdGl2ZSxcbiAgICBbdHlwZT0nZGF0ZSddLmVycm9yOmFjdGl2ZSxcbiAgICBbdHlwZT0nZGF0ZSddLmVycm9yOmZvY3VzLFxuICAgIFt0eXBlPSdkYXRlJ10uZXJyb3IuYWN0aXZlLFxuICAgIFt0eXBlPSdkYXRldGltZSddLmVycm9yOmFjdGl2ZSxcbiAgICBbdHlwZT0nZGF0ZXRpbWUnXS5lcnJvcjpmb2N1cyxcbiAgICBbdHlwZT0nZGF0ZXRpbWUnXS5lcnJvci5hY3RpdmUsXG4gICAgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10uZXJyb3I6YWN0aXZlLFxuICAgIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLmVycm9yOmZvY3VzLFxuICAgIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLmVycm9yLmFjdGl2ZSxcbiAgICBbdHlwZT0nbW9udGgnXS5lcnJvcjphY3RpdmUsXG4gICAgW3R5cGU9J21vbnRoJ10uZXJyb3I6Zm9jdXMsXG4gICAgW3R5cGU9J21vbnRoJ10uZXJyb3IuYWN0aXZlLFxuICAgIFt0eXBlPSd3ZWVrJ10uZXJyb3I6YWN0aXZlLFxuICAgIFt0eXBlPSd3ZWVrJ10uZXJyb3I6Zm9jdXMsXG4gICAgW3R5cGU9J3dlZWsnXS5lcnJvci5hY3RpdmUsXG4gICAgW3R5cGU9J2VtYWlsJ10uZXJyb3I6YWN0aXZlLFxuICAgIFt0eXBlPSdlbWFpbCddLmVycm9yOmZvY3VzLFxuICAgIFt0eXBlPSdlbWFpbCddLmVycm9yLmFjdGl2ZSxcbiAgICBbdHlwZT0nbnVtYmVyJ10uZXJyb3I6YWN0aXZlLFxuICAgIFt0eXBlPSdudW1iZXInXS5lcnJvcjpmb2N1cyxcbiAgICBbdHlwZT0nbnVtYmVyJ10uZXJyb3IuYWN0aXZlLFxuICAgIFt0eXBlPSdzZWFyY2gnXS5lcnJvcjphY3RpdmUsXG4gICAgW3R5cGU9J3NlYXJjaCddLmVycm9yOmZvY3VzLFxuICAgIFt0eXBlPSdzZWFyY2gnXS5lcnJvci5hY3RpdmUsXG4gICAgW3R5cGU9J3RlbCddLmVycm9yOmFjdGl2ZSxcbiAgICBbdHlwZT0ndGVsJ10uZXJyb3I6Zm9jdXMsXG4gICAgW3R5cGU9J3RlbCddLmVycm9yLmFjdGl2ZSxcbiAgICBbdHlwZT0ndGltZSddLmVycm9yOmFjdGl2ZSxcbiAgICBbdHlwZT0ndGltZSddLmVycm9yOmZvY3VzLFxuICAgIFt0eXBlPSd0aW1lJ10uZXJyb3IuYWN0aXZlLFxuICAgIFt0eXBlPSd1cmwnXS5lcnJvcjphY3RpdmUsXG4gICAgW3R5cGU9J3VybCddLmVycm9yOmZvY3VzLFxuICAgIFt0eXBlPSd1cmwnXS5lcnJvci5hY3RpdmUsXG4gICAgW3R5cGU9J2NvbG9yJ10uZXJyb3I6YWN0aXZlLFxuICAgIFt0eXBlPSdjb2xvciddLmVycm9yOmZvY3VzLFxuICAgIFt0eXBlPSdjb2xvciddLmVycm9yLmFjdGl2ZSxcbiAgICB0ZXh0YXJlYS5lcnJvcjphY3RpdmUsXG4gICAgdGV4dGFyZWEuZXJyb3I6Zm9jdXMsXG4gICAgdGV4dGFyZWEuZXJyb3IuYWN0aXZlLFxuICAgIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZS5lcnJvcjphY3RpdmUsXG4gICAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlLmVycm9yOmZvY3VzLFxuICAgIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZS5lcnJvci5hY3RpdmUge1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCA5OCwgMjA5LCAwLjYpLCBpbnNldCAwIDAgMCAxcHggIzAwNjJkMSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCA5OCwgMjA5LCAwLjYpLCBpbnNldCAwIDAgMCAxcHggIzAwNjJkMSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgOTgsIDIwOSwgMC42KSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuXG5zZWxlY3Qge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMCksIGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSksIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwKSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwKSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzJweDtcbiAgcGFkZGluZzogMHB4IDI1cHggMHB4IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBweDtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jYXJldC5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogOHB4IDVweDsgfVxuICBzZWxlY3QgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMzJweDsgfVxuICBzZWxlY3QgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG4gICAgaGVpZ2h0OiAzMHB4OyB9XG4gIHNlbGVjdDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgICBvcGFjaXR5OiAxOyB9XG4gIHNlbGVjdDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgICBvcGFjaXR5OiAxOyB9XG4gIHNlbGVjdDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICAgb3BhY2l0eTogMTsgfVxuICBzZWxlY3Q6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgICBvcGFjaXR5OiAxOyB9XG4gIHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICAgb3BhY2l0eTogMTsgfVxuICBzZWxlY3Q6bm90KC5zZWxlY3QyLXNlYXJjaF9fZmllbGQpOmFjdGl2ZSwgc2VsZWN0Om5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKTpmb2N1cywgc2VsZWN0Om5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKS5hY3RpdmUsIHNlbGVjdDpub3QoLnNlbGVjdDItc2VhcmNoX19maWVsZClbYXJpYS1leHBhbmRlZD10cnVlXSB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCA5OCwgMjA5LCAwLjYpLCBpbnNldCAwIDAgMCAxcHggIzAwNjJkMSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgOTgsIDIwOSwgMC42KSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCA5OCwgMjA5LCAwLjYpLCBpbnNldCAwIDAgMCAxcHggIzAwNjJkMSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICBzZWxlY3Quc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmFjdGl2ZSwgc2VsZWN0LnNlbGVjdDItc2VhcmNoX19maWVsZDpmb2N1cywgc2VsZWN0LnNlbGVjdDItc2VhcmNoX19maWVsZC5hY3RpdmUsIHNlbGVjdC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMCksIGluc2V0IDAgMCAwIDFweCAjMDA2MmQxLCBpbnNldCAwIDFweCAycHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwKSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwKSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTsgfVxuICBzZWxlY3Quc2hhZG93ZWQge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMCksIGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpO1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMCksIGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDBweCByZ2JhKDAsIDk4LCAyMDksIDApLCBpbnNldCAwIDAgMCAxcHggcmdiYSgxMjYsIDEzNywgMTUwLCAwLjUpLCBpbnNldCAwIC0xcHggMXB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjE1KTtcbiAgICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZmZmZmZmKzAsZGVlMmU3KzEwMCAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jYXJldC5zdmdcIiksIC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZmZmZiAwJSwgI0VDRUVGMCAxMDAlKTtcbiAgICAvKiBGRjMuNi0xNSAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jYXJldC5zdmdcIiksIC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZmZmZiAwJSwgI0VDRUVGMCAxMDAlKTtcbiAgICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jYXJldC5zdmdcIiksIGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZmZmZmYgMCUsICNFQ0VFRjAgMTAwJSk7XG4gICAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI0VDRUVGMCcsR3JhZGllbnRUeXBlPTAgKTtcbiAgICAvKiBJRTYtOSAqL1xuICAgIGJhY2tncm91bmQtc2l6ZTogOHB4IDVweCwgMTAwJSAxMDAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDsgfVxuICAgIHNlbGVjdC5zaGFkb3dlZDphY3RpdmUsIHNlbGVjdC5zaGFkb3dlZDpmb2N1cywgc2VsZWN0LnNoYWRvd2VkLmFjdGl2ZSB7XG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsIDk4LCAyMDksIDAuNCksIGluc2V0IDAgMCAwIDFweCAjMDA2MmQxLCBpbnNldCAwIDFweCAycHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XG4gICAgICAtbW96LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsIDk4LCAyMDksIDAuNCksIGluc2V0IDAgMCAwIDFweCAjMDA2MmQxLCBpbnNldCAwIDFweCAycHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCA5OCwgMjA5LCAwLjQpLCBpbnNldCAwIDAgMCAxcHggIzAwNjJkMSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICAgICAgYm9yZGVyOiBub25lOyB9XG4gIHNlbGVjdC5lcnJvciB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwLjYpLCBpbnNldCAwIDAgMCAwcHggIzAwNjJkMSwgaW5zZXQgMCAwIDAgMXB4ICNkYjM3Mzc7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwLjYpLCBpbnNldCAwIDAgMCAwcHggIzAwNjJkMSwgaW5zZXQgMCAwIDAgMXB4ICNkYjM3Mzc7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMC42KSwgaW5zZXQgMCAwIDAgMHB4ICMwMDYyZDEsIGluc2V0IDAgMCAwIDFweCAjZGIzNzM3OyB9XG4gICAgc2VsZWN0LmVycm9yOmFjdGl2ZSwgc2VsZWN0LmVycm9yOmZvY3VzLCBzZWxlY3QuZXJyb3IuYWN0aXZlIHtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgOTgsIDIwOSwgMC42KSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgOTgsIDIwOSwgMC42KSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsIDk4LCAyMDksIDAuNiksIGluc2V0IDAgMCAwIDFweCAjMDA2MmQxLCBpbnNldCAwIDFweCAycHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XG4gICAgICBib3JkZXI6IG5vbmU7IH1cblxuLmYtaXRlbS1wcmV2aWV3ID4gW3R5cGU9J3RleHQnXSxcbi5mLWl0ZW0tcHJldmlldyA+IFt0eXBlPSdwYXNzd29yZCddLFxuLmYtaXRlbS1wcmV2aWV3ID4gW3R5cGU9J2RhdGUnXSxcbi5mLWl0ZW0tcHJldmlldyA+IFt0eXBlPSdkYXRldGltZSddLFxuLmYtaXRlbS1wcmV2aWV3ID4gW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sXG4uZi1pdGVtLXByZXZpZXcgPiBbdHlwZT0nbW9udGgnXSxcbi5mLWl0ZW0tcHJldmlldyA+IFt0eXBlPSd3ZWVrJ10sXG4uZi1pdGVtLXByZXZpZXcgPiBbdHlwZT0nZW1haWwnXSxcbi5mLWl0ZW0tcHJldmlldyA+IFt0eXBlPSdudW1iZXInXSxcbi5mLWl0ZW0tcHJldmlldyA+IFt0eXBlPSdzZWFyY2gnXSxcbi5mLWl0ZW0tcHJldmlldyA+IFt0eXBlPSd0ZWwnXSxcbi5mLWl0ZW0tcHJldmlldyA+IFt0eXBlPSd0aW1lJ10sXG4uZi1pdGVtLXByZXZpZXcgPiBbdHlwZT0ndXJsJ10sXG4uZi1pdGVtLXByZXZpZXcgPiBbdHlwZT0nY29sb3InXSxcbi5mLWl0ZW0tcHJldmlldyA+IHRleHRhcmVhLFxuLmYtaXRlbS1wcmV2aWV3ID4gc2VsZWN0IHtcbiAgd2lkdGg6IDI2MHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMTBweDsgfVxuXG4udXNlci1zdG9yeV9fc3ViamVjdCB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xuICBtYXJnaW4tYm90dG9tOiA3cHg7IH1cbiAgLnVzZXItc3RvcnlfX3N1YmplY3Q6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAnFwiOyB9XG4gIC51c2VyLXN0b3J5X19zdWJqZWN0OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIuKAnVwiOyB9XG5cbi51c2VyLXN0b3J5X19jb250ZW50IHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4zMztcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTsgfVxuICAudXNlci1zdG9yeV9fY29udGVudDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCcXCI7IH1cbiAgLnVzZXItc3RvcnlfX2NvbnRlbnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwi4oCdXCI7IH1cblxuLnVzZXItc3RvcnlfX2F1dGhvciB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLnVzZXItc3RvcnlfX2F1dGhvcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY29tbWVudGVyLnN2Z1wiKTtcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XG4gIC51c2VyLXN0b3J5X19hdXRob3IgPiAqIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpOyB9XG5cbi51c2VyLXN0b3J5X19hdXRob3ItbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnVzZXItc3RvcnlfX2F1dGhvci1pbnNpdHV0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdhdCc7IH1cblxuLmYtaXRlbS1wcmV2aWV3ID4gLnVzZXItc3Rvcnkge1xuICB3aWR0aDogNDc1cHg7IH1cblxuLmZlYXR1cmUtYmxvY2sge1xuICBwYWRkaW5nLWxlZnQ6IDI1cHg7IH1cblxuLmZlYXR1cmUtYmxvY2stLW5ldyAuZmVhdHVyZS1ibG9ja19fdGl0bGU6YWZ0ZXIge1xuICBjb250ZW50OiAnTkVXJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJlNmJlO1xuICBwYWRkaW5nOiAzcHggMTFweDtcbiAgcmlnaHQ6IC03cHg7XG4gIHRvcDogLTdweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjMTg4MTU0OyB9XG5cbi5mZWF0dXJlLWJsb2NrLS1uZXcgLmZlYXR1cmUtYmxvY2tfX3RpdGxlLXdyYXBwZXIge1xuICBtYXJnaW4tcmlnaHQ6IDUwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uZmVhdHVyZS1ibG9ja19fdGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4xNjtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAuZmVhdHVyZS1ibG9ja19fdGl0bGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTE2cHg7XG4gICAgdG9wOiA2cHg7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTNjNmZmOyB9XG5cbi5mZWF0dXJlLWJsb2NrX19jb250ZW50LCAuZmVhdHVyZS1ibG9ja19fY29udGVudCBwIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcbiAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XG5cbi5mLWl0ZW0tcHJldmlldyA+IC5mZWF0dXJlLWJsb2NrIHtcbiAgd2lkdGg6IDM0NXB4OyB9XG5cbi5zaG9wX3RhYmxlIHNlbGVjdCB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMCksIGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpO1xuICAtbW96LWJveC1zaGFkb3c6IDAgMCAwIDBweCByZ2JhKDAsIDk4LCAyMDksIDApLCBpbnNldCAwIDAgMCAxcHggcmdiYSgxMjYsIDEzNywgMTUwLCAwLjUpLCBpbnNldCAwIC0xcHggMXB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjE1KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMCksIGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpO1xuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZmZmZmZmKzAsZGVlMmU3KzEwMCAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvY2FyZXQuc3ZnXCIpLCAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYgMCUsICNFQ0VFRjAgMTAwJSk7XG4gIC8qIEZGMy42LTE1ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jYXJldC5zdmdcIiksIC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZmZmZiAwJSwgI0VDRUVGMCAxMDAlKTtcbiAgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2NhcmV0LnN2Z1wiKSwgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZmZmZiAwJSwgI0VDRUVGMCAxMDAlKTtcbiAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjZmZmZmZmJywgZW5kQ29sb3JzdHI9JyNFQ0VFRjAnLEdyYWRpZW50VHlwZT0wICk7XG4gIC8qIElFNi05ICovXG4gIGJhY2tncm91bmQtc2l6ZTogOHB4IDVweCwgMTAwJSAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7IH1cbiAgLnNob3BfdGFibGUgc2VsZWN0OmFjdGl2ZSwgLnNob3BfdGFibGUgc2VsZWN0OmZvY3VzLCAuc2hvcF90YWJsZSBzZWxlY3QuYWN0aXZlIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsIDk4LCAyMDksIDAuNCksIGluc2V0IDAgMCAwIDFweCAjMDA2MmQxLCBpbnNldCAwIDFweCAycHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCA5OCwgMjA5LCAwLjQpLCBpbnNldCAwIDAgMCAxcHggIzAwNjJkMSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsIDk4LCAyMDksIDAuNCksIGluc2V0IDAgMCAwIDFweCAjMDA2MmQxLCBpbnNldCAwIDFweCAycHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi5zaG9wX3RhYmxlIHRkIC5idXR0b24sIC5zaG9wX3RhYmxlIHRkIGJ1dHRvbiB7XG4gIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG4uc2hvcF90YWJsZSB0aGVhZCB0ciB0aCwgLnNob3BfdGFibGUgdGhlYWQgdHIgdGQsIC5zaG9wX3RhYmxlIHRib2R5IHRyIHRoLCAuc2hvcF90YWJsZSB0Ym9keSB0ciB0ZCwgLnNob3BfdGFibGUgdGZvb3QgdHIgdGgsIC5zaG9wX3RhYmxlIHRmb290IHRyIHRkIHtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgLnNob3BfdGFibGUgdGhlYWQgdHIgdGgsIC5zaG9wX3RhYmxlIHRoZWFkIHRyIHRkLCAuc2hvcF90YWJsZSB0Ym9keSB0ciB0aCwgLnNob3BfdGFibGUgdGJvZHkgdHIgdGQsIC5zaG9wX3RhYmxlIHRmb290IHRyIHRoLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0ZCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuICAuc2hvcF90YWJsZSB0aGVhZCB0ciB0aCA+IC5mb3JtLXJvdywgLnNob3BfdGFibGUgdGhlYWQgdHIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyB0aC5naW5wdXRfY29tcGxleCA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLnNob3BfdGFibGUgdGhlYWQgdHIgdGguZ2lucHV0X2NvbXBsZXggPiAqLCAuc2hvcF90YWJsZSB0aGVhZCB0ciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIHRoID4gLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuc2hvcF90YWJsZSB0aGVhZCB0ciB0aCA+IC5nZmllbGQsIC5zaG9wX3RhYmxlIHRoZWFkIHRyIC5nZm9ybV93cmFwcGVyIHRoID4gLmdmb3JtX2Zvb3RlciwgLmdmb3JtX3dyYXBwZXIgLnNob3BfdGFibGUgdGhlYWQgdHIgdGggPiAuZ2Zvcm1fZm9vdGVyLCAuc2hvcF90YWJsZSB0aGVhZCB0ciB0ZCA+IC5mb3JtLXJvdywgLnNob3BfdGFibGUgdGhlYWQgdHIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyB0ZC5naW5wdXRfY29tcGxleCA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLnNob3BfdGFibGUgdGhlYWQgdHIgdGQuZ2lucHV0X2NvbXBsZXggPiAqLCAuc2hvcF90YWJsZSB0aGVhZCB0ciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIHRkID4gLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuc2hvcF90YWJsZSB0aGVhZCB0ciB0ZCA+IC5nZmllbGQsIC5zaG9wX3RhYmxlIHRoZWFkIHRyIC5nZm9ybV93cmFwcGVyIHRkID4gLmdmb3JtX2Zvb3RlciwgLmdmb3JtX3dyYXBwZXIgLnNob3BfdGFibGUgdGhlYWQgdHIgdGQgPiAuZ2Zvcm1fZm9vdGVyLCAuc2hvcF90YWJsZSB0Ym9keSB0ciB0aCA+IC5mb3JtLXJvdywgLnNob3BfdGFibGUgdGJvZHkgdHIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyB0aC5naW5wdXRfY29tcGxleCA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLnNob3BfdGFibGUgdGJvZHkgdHIgdGguZ2lucHV0X2NvbXBsZXggPiAqLCAuc2hvcF90YWJsZSB0Ym9keSB0ciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIHRoID4gLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuc2hvcF90YWJsZSB0Ym9keSB0ciB0aCA+IC5nZmllbGQsIC5zaG9wX3RhYmxlIHRib2R5IHRyIC5nZm9ybV93cmFwcGVyIHRoID4gLmdmb3JtX2Zvb3RlciwgLmdmb3JtX3dyYXBwZXIgLnNob3BfdGFibGUgdGJvZHkgdHIgdGggPiAuZ2Zvcm1fZm9vdGVyLCAuc2hvcF90YWJsZSB0Ym9keSB0ciB0ZCA+IC5mb3JtLXJvdywgLnNob3BfdGFibGUgdGJvZHkgdHIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyB0ZC5naW5wdXRfY29tcGxleCA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLnNob3BfdGFibGUgdGJvZHkgdHIgdGQuZ2lucHV0X2NvbXBsZXggPiAqLCAuc2hvcF90YWJsZSB0Ym9keSB0ciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIHRkID4gLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuc2hvcF90YWJsZSB0Ym9keSB0ciB0ZCA+IC5nZmllbGQsIC5zaG9wX3RhYmxlIHRib2R5IHRyIC5nZm9ybV93cmFwcGVyIHRkID4gLmdmb3JtX2Zvb3RlciwgLmdmb3JtX3dyYXBwZXIgLnNob3BfdGFibGUgdGJvZHkgdHIgdGQgPiAuZ2Zvcm1fZm9vdGVyLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0aCA+IC5mb3JtLXJvdywgLnNob3BfdGFibGUgdGZvb3QgdHIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyB0aC5naW5wdXRfY29tcGxleCA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLnNob3BfdGFibGUgdGZvb3QgdHIgdGguZ2lucHV0X2NvbXBsZXggPiAqLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIHRoID4gLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0aCA+IC5nZmllbGQsIC5zaG9wX3RhYmxlIHRmb290IHRyIC5nZm9ybV93cmFwcGVyIHRoID4gLmdmb3JtX2Zvb3RlciwgLmdmb3JtX3dyYXBwZXIgLnNob3BfdGFibGUgdGZvb3QgdHIgdGggPiAuZ2Zvcm1fZm9vdGVyLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0ZCA+IC5mb3JtLXJvdywgLnNob3BfdGFibGUgdGZvb3QgdHIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyB0ZC5naW5wdXRfY29tcGxleCA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLnNob3BfdGFibGUgdGZvb3QgdHIgdGQuZ2lucHV0X2NvbXBsZXggPiAqLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIHRkID4gLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0ZCA+IC5nZmllbGQsIC5zaG9wX3RhYmxlIHRmb290IHRyIC5nZm9ybV93cmFwcGVyIHRkID4gLmdmb3JtX2Zvb3RlciwgLmdmb3JtX3dyYXBwZXIgLnNob3BfdGFibGUgdGZvb3QgdHIgdGQgPiAuZ2Zvcm1fZm9vdGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50OyB9XG4gIC5zaG9wX3RhYmxlIHRoZWFkIHRyIHRoID4gKjpsYXN0LWNoaWxkLCAuc2hvcF90YWJsZSB0aGVhZCB0ciB0ZCA+ICo6bGFzdC1jaGlsZCwgLnNob3BfdGFibGUgdGJvZHkgdHIgdGggPiAqOmxhc3QtY2hpbGQsIC5zaG9wX3RhYmxlIHRib2R5IHRyIHRkID4gKjpsYXN0LWNoaWxkLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0aCA+ICo6bGFzdC1jaGlsZCwgLnNob3BfdGFibGUgdGZvb3QgdHIgdGQgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDBweDsgfVxuICAuc2hvcF90YWJsZSB0aGVhZCB0ciB0aDpsYXN0LWNoaWxkLCAuc2hvcF90YWJsZSB0aGVhZCB0ciB0ZDpsYXN0LWNoaWxkLCAuc2hvcF90YWJsZSB0Ym9keSB0ciB0aDpsYXN0LWNoaWxkLCAuc2hvcF90YWJsZSB0Ym9keSB0ciB0ZDpsYXN0LWNoaWxkLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0aDpsYXN0LWNoaWxkLCAuc2hvcF90YWJsZSB0Zm9vdCB0ciB0ZDpsYXN0LWNoaWxkIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7IH1cblxuLnNob3BfdGFibGUgdGhlYWQgdHI6bGFzdC1jaGlsZCB0aCwgLnNob3BfdGFibGUgdGhlYWQgdHI6bGFzdC1jaGlsZCB0ZCwgLnNob3BfdGFibGUgdGJvZHkgdHI6bGFzdC1jaGlsZCB0aCwgLnNob3BfdGFibGUgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZCwgLnNob3BfdGFibGUgdGZvb3QgdHI6bGFzdC1jaGlsZCB0aCwgLnNob3BfdGFibGUgdGZvb3QgdHI6bGFzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSk7IH1cblxuLnNob3BfdGFibGUgdGZvb3QgdHIucmVjdXJyaW5nLXRvdGFscyB0aDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSk7IH1cblxuLnNob3BfdGFibGUgdGZvb3QgdHIub3JkZXItdG90YWwgdGQ6bGFzdC1jaGlsZCwgLnNob3BfdGFibGUgdGZvb3QgdHIub3JkZXItdG90YWwgdGQ6bGFzdC1jaGlsZCAqIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7IH1cbiAgLnNob3BfdGFibGUgdGZvb3QgdHIub3JkZXItdG90YWwgdGQ6bGFzdC1jaGlsZCAuZmlyc3QtcGF5bWVudC1kYXRlIHNtYWxsLCAuc2hvcF90YWJsZSB0Zm9vdCB0ci5vcmRlci10b3RhbCB0ZDpsYXN0LWNoaWxkICogLmZpcnN0LXBheW1lbnQtZGF0ZSBzbWFsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG5cbi5zaG9wX3RhYmxlIHRoZWFkIHRyIHRoIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpOyB9XG5cbi5zaG9wX3RhYmxlIHRib2R5IHRyIHRkLnByb2R1Y3QtbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5zaG9wX3RhYmxlIHRmb290IHRyIHRoIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpOyB9XG5cbi5vcmRlcl9kZXRhaWxzIHRmb290IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsIC5vcmRlcl9kZXRhaWxzIHRmb290IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5vcmRlcl9kZXRhaWxzIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxkLCAub3JkZXJfZGV0YWlscyB0aGVhZCB0ciB0ZDpmaXJzdC1jaGlsZCwgLm9yZGVyX2RldGFpbHMgdGJvZHkgdHIgdGg6Zmlyc3QtY2hpbGQsIC5vcmRlcl9kZXRhaWxzIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxkLCAub3JkZXJfZGV0YWlscyB0Zm9vdCB0ciB0aDpmaXJzdC1jaGlsZCwgLm9yZGVyX2RldGFpbHMgdGZvb3QgdHIgdGQ6Zmlyc3QtY2hpbGQge1xuICB3aWR0aDogNTAlOyB9XG5cbi5vcmRlcl9kZXRhaWxzIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgyKSwgLm9yZGVyX2RldGFpbHMgdGhlYWQgdHIgdGQ6bnRoLWNoaWxkKDIpLCAub3JkZXJfZGV0YWlscyB0Ym9keSB0ciB0aDpudGgtY2hpbGQoMiksIC5vcmRlcl9kZXRhaWxzIHRib2R5IHRyIHRkOm50aC1jaGlsZCgyKSwgLm9yZGVyX2RldGFpbHMgdGZvb3QgdHIgdGg6bnRoLWNoaWxkKDIpLCAub3JkZXJfZGV0YWlscyB0Zm9vdCB0ciB0ZDpudGgtY2hpbGQoMikge1xuICB3aWR0aDogMjAlOyB9XG5cbi53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUgdGhlYWQgdHIgdGg6Zmlyc3QtY2hpbGQsIC53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUgdGhlYWQgdHIgdGQ6Zmlyc3QtY2hpbGQsIC53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUgdGJvZHkgdHIgdGg6Zmlyc3QtY2hpbGQsIC53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQge1xuICB3aWR0aDogNTAlOyB9XG5cbi53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUgdGhlYWQgdHIgdGg6bnRoLWNoaWxkKDIpLCAud29vY29tbWVyY2UtY2hlY2tvdXQtcmV2aWV3LW9yZGVyLXRhYmxlIHRoZWFkIHRyIHRkOm50aC1jaGlsZCgyKSwgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXJldmlldy1vcmRlci10YWJsZSB0Ym9keSB0ciB0aDpudGgtY2hpbGQoMiksIC53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUgdGJvZHkgdHIgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDIwJTsgfVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcmV2aWV3LW9yZGVyLXRhYmxlIHRmb290IHRyOm5vdCg6Zmlyc3QtY2hpbGQpIHRoOmZpcnN0LWNoaWxkLCAud29vY29tbWVyY2UtY2hlY2tvdXQtcmV2aWV3LW9yZGVyLXRhYmxlIHRmb290IHRyOm5vdCg6Zmlyc3QtY2hpbGQpIHRkOmZpcnN0LWNoaWxkIHtcbiAgd2lkdGg6IDIwJTsgfVxuXG4uZi1pdGVtLXByZXZpZXcgPiAuc2hvcF90YWJsZSB7XG4gIG1heC13aWR0aDogNTYwcHg7IH1cblxuLmZlYXR1cmVzLXRhYmxlIHRoZWFkIHRyIHRoIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZmVhdHVyZXMtdGFibGUgdGhlYWQgdHIgdGggLmZlYXR1cmVzLXRhYmxlX3Byb2R1Y3QtdGllciB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7IH1cblxuLmZlYXR1cmVzLXRhYmxlIHRoZWFkIHRyIHRoIC5mZWF0dXJlcy10YWJsZV9wcm9kdWN0LW5hbWUge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuXG4uZmVhdHVyZXMtdGFibGUgdGhlYWQgdHIgdGggLmZlYXR1cmVzLXRhYmxlX3Byb2R1Y3QtYnkge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7IH1cblxuLmZlYXR1cmVzLXRhYmxlIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgyKSAuZmVhdHVyZXMtdGFibGVfcHJvZHVjdC10aWVyIHtcbiAgY29sb3I6ICMzZGI2ODI7IH1cblxuLmZlYXR1cmVzLXRhYmxlIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgzKSAuZmVhdHVyZXMtdGFibGVfcHJvZHVjdC10aWVyIHtcbiAgY29sb3I6ICMzOTk2ZmY7IH1cblxuLmZlYXR1cmVzLXRhYmxlIHRib2R5IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLmZlYXR1cmVzLXRhYmxlIHRib2R5IHRyIHRkIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMWVtO1xuICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSk7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7IH1cbiAgICAuZmVhdHVyZXMtdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7IH1cbiAgICAuZmVhdHVyZXMtdGFibGUgdGJvZHkgdHIgdGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4OyB9XG4gICAgLmZlYXR1cmVzLXRhYmxlIHRib2R5IHRyIHRkOm50aC1jaGlsZCgyKSBpOmJlZm9yZSB7XG4gICAgICBjb2xvcjogIzNkYjY4MjsgfVxuICAgIC5mZWF0dXJlcy10YWJsZSB0Ym9keSB0ciB0ZDpudGgtY2hpbGQoMykgaTpiZWZvcmUge1xuICAgICAgY29sb3I6ICMzOTk2ZmY7IH1cbiAgLmZlYXR1cmVzLXRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSk7IH1cblxuLnByb2R1Y3QtY2FyZCB7XG4gIHBhZGRpbmc6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjksIDMxLCAzMywgMC4xNSksIDAgM3B4IDdweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKSwgMCAwIDAgMXB4IHJnYmEoMjksIDMxLCAzMywgMC4xNSksIDAgM3B4IDdweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAucHJvZHVjdC1jYXJkIHtcbiAgICAgIHBhZGRpbmc6IDMwcHggMjJweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5wcm9kdWN0LWNhcmQge1xuICAgICAgcGFkZGluZzogMzBweCAxNXB4OyB9IH1cblxuLnByb2R1Y3QtY2FyZF9oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tYm90dG9tOiAxMnB4OyB9XG4gIC5wcm9kdWN0LWNhcmRfaGVhZGVyIGgzIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLnByb2R1Y3QtY2FyZF9oZWFkZXIgaDMgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgLnByb2R1Y3QtY2FyZF9oZWFkZXIgLnByaWNlLWRpc3BsYXkge1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjsgfVxuXG4ucHJvZHVjdC1jYXJkX2JvZHkge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5wcm9kdWN0LWNhcmRfZGlzY291bnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDczcHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNDEsIDIyNywgMTgxLCAwLjQpO1xuICBwYWRkaW5nOiAwIDEwcHggMCAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5wcm9kdWN0LWNhcmRfZGlzY291bnQgbGFiZWwsIC5wcm9kdWN0LWNhcmRfZGlzY291bnQgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLmdzZWN0aW9uX3RpdGxlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAucHJvZHVjdC1jYXJkX2Rpc2NvdW50IC5nc2VjdGlvbl90aXRsZSB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogIzFlOTQ2MTsgfVxuXG4ucHJvZHVjdC1jYXJkX2Rlc2NyaXB0aW9uIHtcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSk7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG4gIC5wcm9kdWN0LWNhcmRfZGVzY3JpcHRpb24gcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAucHJvZHVjdC1jYXJkX2Rlc2NyaXB0aW9uIHVsIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIC5wcm9kdWN0LWNhcmRfZGVzY3JpcHRpb24gdWwgbGkge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLnByb2R1Y3QtY2FyZF9kZXNjcmlwdGlvbiB1bCBsaTpiZWZvcmUge1xuICAgICAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgICAgICBmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG4gICAgICAgIHNwZWFrOiBub25lO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgY29udGVudDogXCLupIJcIjtcbiAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0yMHB4O1xuICAgICAgICB0b3A6IDJweDsgfVxuICAucHJvZHVjdC1jYXJkX2Rlc2NyaXB0aW9uICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XG5cbi5wcm9kdWN0LWNhcmRfZm9vdGVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnByb2R1Y3QtY2FyZF9mb290ZXIgLmJ1dHRvbiB7XG4gICAgcGFkZGluZzogMCAzMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG4uZi1pdGVtLXByZXZpZXcgPiAucHJvZHVjdC1jYXJkIHtcbiAgd2lkdGg6IDQyMHB4OyB9XG5cbi5pbnB1dC1maWVsZCwgLmZvcm0tcm93LCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC5naW5wdXRfY29tcGxleCA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2Zvb3RlciB7XG4gIG1hcmdpbi1ib3R0b206IDE0cHg7IH1cbiAgLmlucHV0LWZpZWxkIC5pbnB1dC1maWVsZC13cmFwcGVyLCAuZm9ybS1yb3cgLmlucHV0LWZpZWxkLXdyYXBwZXIsIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdpbnB1dF9jb21wbGV4ID4gKiAuaW5wdXQtZmllbGQtd3JhcHBlciwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5pbnB1dC1maWVsZC13cmFwcGVyLCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyIC5pbnB1dC1maWVsZC13cmFwcGVyLCAuZm9ybS1yb3cgLndvb2NvbW1lcmNlLWlucHV0LXdyYXBwZXIsIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdpbnB1dF9jb21wbGV4ID4gKiAud29vY29tbWVyY2UtaW5wdXQtd3JhcHBlciwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC53b29jb21tZXJjZS1pbnB1dC13cmFwcGVyLCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyIC53b29jb21tZXJjZS1pbnB1dC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaW5wdXQtZmllbGQ6bm90KC5vcHRpb25zLWdyb3VwKSAucmFkaW8tY2hlY2tib3gsIC5mb3JtLXJvdzpub3QoLm9wdGlvbnMtZ3JvdXApIC5yYWRpby1jaGVja2JveCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2lucHV0X2NvbXBsZXggPiA6bm90KC5vcHRpb25zLWdyb3VwKSAucmFkaW8tY2hlY2tib3gsIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdmaWVsZDpub3QoLm9wdGlvbnMtZ3JvdXApIC5yYWRpby1jaGVja2JveCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2Zvb3Rlcjpub3QoLm9wdGlvbnMtZ3JvdXApIC5yYWRpby1jaGVja2JveCB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4OyB9XG5cbi5mLWl0ZW0tcHJldmlldyA+IC5pbnB1dC1maWVsZCwgLmYtaXRlbS1wcmV2aWV3ID4gLmZvcm0tcm93LCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC5naW5wdXRfY29tcGxleC5mLWl0ZW0tcHJldmlldyA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmYtaXRlbS1wcmV2aWV3ID4gLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmYtaXRlbS1wcmV2aWV3ID4gLmdmb3JtX2Zvb3RlciB7XG4gIHdpZHRoOiAyNjBweDsgfVxuXG4jc2l0ZS1uYXZpZ2F0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICNzaXRlLW5hdmlnYXRpb24gLm1haW4tbmF2aWdhdGlvbi13cmFwcGVyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgI3NpdGUtbmF2aWdhdGlvbiAuaGVhZGVyLW5hdmlnYXRpb25fX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICNzaXRlLW5hdmlnYXRpb24gLmhlYWRlci1uYXZpZ2F0aW9uX19yb3c6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgICAjc2l0ZS1uYXZpZ2F0aW9uIC5oZWFkZXItbmF2aWdhdGlvbl9fcm93ID4gKiB7XG4gICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgI3NpdGUtbmF2aWdhdGlvbiAubWVudS10b2dnbGUsICNzaXRlLW5hdmlnYXRpb24gLm1lbnUtY2xvc2Uge1xuICAgIG1hcmdpbjogMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAjc2l0ZS1uYXZpZ2F0aW9uIC5tZW51LXRvZ2dsZSwgI3NpdGUtbmF2aWdhdGlvbiAubWVudS1jbG9zZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgI3NpdGUtbmF2aWdhdGlvbiB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgICAgI3NpdGUtbmF2aWdhdGlvbiBhLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMHB4IDE0cHggMCAxNHB4O1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAgICNzaXRlLW5hdmlnYXRpb24gLmhlYWRlci1zbWFsbC1tZW51IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDsgfVxuICAgICAgICAjc2l0ZS1uYXZpZ2F0aW9uIC5oZWFkZXItc21hbGwtbWVudSBsaSBhIHtcbiAgICAgICAgICBwYWRkaW5nOiA4cHggMHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zczsgfVxuICAgICAgICAjc2l0ZS1uYXZpZ2F0aW9uIC5oZWFkZXItc21hbGwtbWVudSBsaS5jdXJyZW50LW1lbnUtaXRlbSBhLCAjc2l0ZS1uYXZpZ2F0aW9uIC5oZWFkZXItc21hbGwtbWVudSBsaTpob3ZlciBhIHtcbiAgICAgICAgICBjb2xvcjogIzAwNjJkMTsgfVxuICAgICAgI3NpdGUtbmF2aWdhdGlvbiAubWVudS1jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICByaWdodDogMHB4O1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgICAgICNzaXRlLW5hdmlnYXRpb24gLm1lbnUtY2xvc2U6YmVmb3JlIHtcbiAgICAgICAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICAgICAgICBzcGVhazogbm9uZTtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICAgIGNvbnRlbnQ6IFwi7qSGXCI7XG4gICAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcbiAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4OyB9XG4gICAgICAgICNzaXRlLW5hdmlnYXRpb24gLm1lbnUtY2xvc2U6Zm9jdXMsICNzaXRlLW5hdmlnYXRpb24gLm1lbnUtY2xvc2U6YWN0aXZlIHtcbiAgICAgICAgICBvdXRsaW5lOiBub25lOyB9XG4gICAgICAjc2l0ZS1uYXZpZ2F0aW9uIC5oZWFkZXItc2VhcmNoIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHg7IH1cbiAgICAgICAgI3NpdGUtbmF2aWdhdGlvbiAuaGVhZGVyLXNlYXJjaCAuaGVhZGVyLXNlYXJjaF9fY2xvc2Uge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICNzaXRlLW5hdmlnYXRpb24gLm1haW4tbmF2aWdhdGlvbi13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7IH1cbiAgICAgICNzaXRlLW5hdmlnYXRpb24gLm1lbnUtdG9nZ2xlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAjc2l0ZS1uYXZpZ2F0aW9uIC5tZW51LXRvZ2dsZSAubWVudS10b2dnbGVfX2hhbWJ1cmdlciB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMXB4OyB9XG4gICAgICAgICAgI3NpdGUtbmF2aWdhdGlvbiAubWVudS10b2dnbGUgLm1lbnUtdG9nZ2xlX19oYW1idXJnZXI6YmVmb3JlLCAjc2l0ZS1uYXZpZ2F0aW9uIC5tZW51LXRvZ2dsZSAubWVudS10b2dnbGVfX2hhbWJ1cmdlcjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgICAgICAgICAjc2l0ZS1uYXZpZ2F0aW9uIC5tZW51LXRvZ2dsZSAubWVudS10b2dnbGVfX2hhbWJ1cmdlcjpiZWZvcmUge1xuICAgICAgICAgICAgdG9wOiAtN3B4OyB9XG4gICAgICAgICAgI3NpdGUtbmF2aWdhdGlvbiAubWVudS10b2dnbGUgLm1lbnUtdG9nZ2xlX19oYW1idXJnZXI6YWZ0ZXIge1xuICAgICAgICAgICAgYm90dG9tOiAtN3B4OyB9XG4gICAgICAgICNzaXRlLW5hdmlnYXRpb24gLm1lbnUtdG9nZ2xlOmZvY3VzLCAjc2l0ZS1uYXZpZ2F0aW9uIC5tZW51LXRvZ2dsZTphY3RpdmUge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgICAgICNzaXRlLW5hdmlnYXRpb24gLnNpdGUtbmF2aWdhdGlvbl9fbWVudS13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdHJhbnNpdGlvbjogMC41cztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIHotaW5kZXg6IDEwMDsgfVxuICAgICAgI3NpdGUtbmF2aWdhdGlvbiAuc2l0ZS1uYXZpZ2F0aW9uX19tZW51IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyOSwgMzEsIDMzLCAwKSwgMCAzcHggMjJweCAwIHJnYmEoMjksIDMxLCAzMywgMCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIHBhZGRpbmc6IDBweCAzMHB4IDBweCAzMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuNXMsIGJveC1zaGFkb3cgMC41cztcbiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgICAgd2lkdGg6IDgwdnc7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgI3NpdGUtbmF2aWdhdGlvbiAuaGVhZGVyLW5hdmlnYXRpb25fX3JvdyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgICAgICAgI3NpdGUtbmF2aWdhdGlvbiAuaGVhZGVyLW5hdmlnYXRpb25fX3JvdyAuYnV0dG9uIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gICAgICAgICNzaXRlLW5hdmlnYXRpb24gLmhlYWRlci1uYXZpZ2F0aW9uX19yb3c6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMHB4OyB9XG4gICAgICAgICNzaXRlLW5hdmlnYXRpb24gLmhlYWRlci1uYXZpZ2F0aW9uX19yb3cgPiAqLCAjc2l0ZS1uYXZpZ2F0aW9uIC5oZWFkZXItbmF2aWdhdGlvbl9fcm93IC5tZW51IHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAjc2l0ZS1uYXZpZ2F0aW9uLnRvZ2dsZWQgLnNpdGUtbmF2aWdhdGlvbl9fbWVudS13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDsgfVxuICAgICAgI3NpdGUtbmF2aWdhdGlvbi50b2dnbGVkIC5zaXRlLW5hdmlnYXRpb25fX21lbnUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyOSwgMzEsIDMzLCAwLjE1KSwgMCAzcHggMjJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4zKTtcbiAgICAgICAgcGFkZGluZzogMjVweCAzMHB4IDE1cHggMzBweDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMHB4O1xuICAgICAgICBmbGV4LXNocmluazogMTsgfSB9XG5cbmRpdltpZCo9c2l0ZS1uYXZpZ2F0aW9uXSAuZi1pdGVtLXByZXZpZXcge1xuICBiYWNrZ3JvdW5kOiAjMWU0Mzc1O1xuICBwYWRkaW5nOiAzMHB4OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm1haW4tbWVudSAubWVudS1pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAubWFpbi1tZW51IC5tZW51LWl0ZW0sIC5tYWluLW1lbnUgLm1lbnUtaXRlbSBhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7IH1cbiAgICAubWFpbi1tZW51IC5tZW51LWl0ZW0gYTpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjhzOyB9XG4gICAgLm1haW4tbWVudSAubWVudS1pdGVtOmhvdmVyIC5zdWItbWVudSwgLm1haW4tbWVudSAubWVudS1pdGVtLmZvY3VzIC5zdWItbWVudSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5tYWluLW1lbnUgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhOmFmdGVyIHtcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIGNvbnRlbnQ6IFwi7qSBXCI7XG4gICAgZm9udC1zaXplOiA0cHg7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7IH1cbiAgLm1haW4tbWVudSAubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0xMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsZWZ0OiAwcHg7IH1cbiAgLm1haW4tbWVudSAuY3VycmVudC1tZW51LWl0ZW0sIC5tYWluLW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYSwgLm1haW4tbWVudSAuY3VycmVudC1tZW51LXBhcmVudCwgLm1haW4tbWVudSAuY3VycmVudC1tZW51LXBhcmVudCA+IGEge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAubWFpbi1tZW51IC5zdWItbWVudSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjksIDMxLCAzMywgMC4xNSksIDAgM3B4IDdweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIHBhZGRpbmc6IDEwcHggMHB4O1xuICAgIG1hcmdpbjogMHB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAxODBweDtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTBweDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHRvcDogY2FsYyggMTAwJSArIDRweCk7IH1cbiAgICAubWFpbi1tZW51IC5zdWItbWVudTpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBib3JkZXI6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMTZweDtcbiAgICAgIGxlZnQ6IDIzcHg7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgei1pbmRleDogMzsgfVxuICAgIC5tYWluLW1lbnUgLnN1Yi1tZW51OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYm9yZGVyOiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xOHB4O1xuICAgICAgbGVmdDogMjJweDtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB6LWluZGV4OiAyOyB9XG4gICAgLm1haW4tbWVudSAuc3ViLW1lbnUgLm1lbnUtaXRlbSA+IGEge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xuICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gICAgICBwYWRkaW5nOiA2cHggMTBweDsgfVxuICAgICAgLm1haW4tbWVudSAuc3ViLW1lbnUgLm1lbnUtaXRlbSA+IGEgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMxO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG4gICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7IH1cbiAgICAubWFpbi1tZW51IC5zdWItbWVudSAubWVudS1pdGVtLmN1cnJlbnQtbWVudS1pdGVtID4gYSwgLm1haW4tbWVudSAuc3ViLW1lbnUgLm1lbnUtaXRlbS5jdXJyZW50LW1lbnUtcGFyZW50ID4gYSwgLm1haW4tbWVudSAuc3ViLW1lbnUgLm1lbnUtaXRlbTpob3ZlciA+IGEge1xuICAgICAgY29sb3I6ICMwMDYyZDE7IH1cbiAgLm1haW4tbWVudSAuc3ViLW1lbnUtLWRlc2NyaXB0aW9ucyB7XG4gICAgbWluLXdpZHRoOiAxODBweDtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIHBhZGRpbmc6IDdweDtcbiAgICBsZWZ0OiAtNnB4OyB9XG4gICAgLm1haW4tbWVudSAuc3ViLW1lbnUtLWRlc2NyaXB0aW9ucyAubWVudS1pdGVtIGEge1xuICAgICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsgfVxuICAgIC5tYWluLW1lbnUgLnN1Yi1tZW51LS1kZXNjcmlwdGlvbnMgLm1lbnUtaXRlbSwgLm1haW4tbWVudSAuc3ViLW1lbnUtLWRlc2NyaXB0aW9ucyAubWVudS1pdGVtIGEge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG4gICAgLm1haW4tbWVudSAuc3ViLW1lbnUtLWRlc2NyaXB0aW9ucyAubWVudS1pdGVtLmN1cnJlbnQtbWVudS1pdGVtLCAubWFpbi1tZW51IC5zdWItbWVudS0tZGVzY3JpcHRpb25zIC5tZW51LWl0ZW0uY3VycmVudC1tZW51LWl0ZW0gPiBhLCAubWFpbi1tZW51IC5zdWItbWVudS0tZGVzY3JpcHRpb25zIC5tZW51LWl0ZW0uY3VycmVudC1tZW51LXBhcmVudCwgLm1haW4tbWVudSAuc3ViLW1lbnUtLWRlc2NyaXB0aW9ucyAubWVudS1pdGVtLmN1cnJlbnQtbWVudS1wYXJlbnQgPiBhLCAubWFpbi1tZW51IC5zdWItbWVudS0tZGVzY3JpcHRpb25zIC5tZW51LWl0ZW06aG92ZXIsIC5tYWluLW1lbnUgLnN1Yi1tZW51LS1kZXNjcmlwdGlvbnMgLm1lbnUtaXRlbTpob3ZlciA+IGEge1xuICAgICAgY29sb3I6ICMwMDYyZDE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlZWZmOyB9XG4gIC5tYWluLW1lbnUgLm1lbnUtaXRlbS5tZW51LWl0ZW1fX2Rlc2NyaXB0aW9uIGEge1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDFweDsgfVxuICAubWFpbi1tZW51IC5tZW51LWl0ZW0ubWVudS1pdGVtX19kZXNjcmlwdGlvbiwgLm1haW4tbWVudSAubWVudS1pdGVtLm1lbnUtaXRlbV9fZGVzY3JpcHRpb24gYSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuICAubWFpbi1tZW51IC5tZW51LWl0ZW0ubWVudS1pdGVtX19kZXNjcmlwdGlvbi5jdXJyZW50LW1lbnUtaXRlbSwgLm1haW4tbWVudSAubWVudS1pdGVtLm1lbnUtaXRlbV9fZGVzY3JpcHRpb24uY3VycmVudC1tZW51LWl0ZW0gPiBhLCAubWFpbi1tZW51IC5tZW51LWl0ZW0ubWVudS1pdGVtX19kZXNjcmlwdGlvbi5jdXJyZW50LW1lbnUtcGFyZW50LCAubWFpbi1tZW51IC5tZW51LWl0ZW0ubWVudS1pdGVtX19kZXNjcmlwdGlvbi5jdXJyZW50LW1lbnUtcGFyZW50ID4gYSwgLm1haW4tbWVudSAubWVudS1pdGVtLm1lbnUtaXRlbV9fZGVzY3JpcHRpb246aG92ZXIsIC5tYWluLW1lbnUgLm1lbnUtaXRlbS5tZW51LWl0ZW1fX2Rlc2NyaXB0aW9uOmhvdmVyID4gYSB7XG4gICAgY29sb3I6ICMwMDYyZDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZWVmZjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAubWFpbi1tZW51IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tYWluLW1lbnUgbGkge1xuICAgICAgb3V0bGluZTogMDsgfVxuICAgIC5tYWluLW1lbnUgYSxcbiAgICAubWFpbi1tZW51IC5idXR0b24ge1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAgIC5tYWluLW1lbnUgaW5wdXQsXG4gICAgLm1haW4tbWVudSBzZWxlY3QsXG4gICAgLm1haW4tbWVudSBhLFxuICAgIC5tYWluLW1lbnUgYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAubWFpbi1tZW51IGlucHV0IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5tYWluLW1lbnUgPiAubWVudS1pdGVtIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjREZFMUU1OyB9XG4gICAgICAubWFpbi1tZW51ID4gLm1lbnUtaXRlbSA+IGEge1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgIGNvbG9yOiAjMWQxZjIxO1xuICAgICAgICBwYWRkaW5nOiAxMXB4IDBweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7IH1cbiAgICAgICAgLm1haW4tbWVudSA+IC5tZW51LWl0ZW0gPiBhOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiBub25lOyB9XG4gICAgICAgIC5tYWluLW1lbnUgPiAubWVudS1pdGVtID4gYS5jdXJyZW50LW1lbnUtaXRlbSwgLm1haW4tbWVudSA+IC5tZW51LWl0ZW0gPiBhLmN1cnJlbnQtbWVudS1wYXJlbnQsIC5tYWluLW1lbnUgPiAubWVudS1pdGVtID4gYTpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICMwMDYyZDE7IH1cbiAgICAubWFpbi1tZW51IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5tYWluLW1lbnUgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDExcHg7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiA3cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNDk5ZWZmO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzOyB9XG4gICAgICAubWFpbi1tZW51IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMTFweDtcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDdweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0OTllZmY7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlWigtOTBkZWcpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zczsgfVxuICAgIC5tYWluLW1lbnUgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ub3BlbiA+IGE6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpOyB9XG4gICAgLm1haW4tbWVudSAubWVudS1pdGVtLWhhcy1jaGlsZHJlbi5vcGVuID4gYTpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpOyB9XG4gICAgLm1haW4tbWVudSAuc3ViLW1lbnUge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLTVweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJweDsgfVxuICAgICAgLm1haW4tbWVudSAuc3ViLW1lbnUgPiAubWVudS1pdGVtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5tYWluLW1lbnUgLnN1Yi1tZW51ID4gLm1lbnUtaXRlbSA+IGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gICAgICAgICAgcGFkZGluZzogOHB4IDBweDsgfVxuICAgICAgICAgIC5tYWluLW1lbnUgLnN1Yi1tZW51ID4gLm1lbnUtaXRlbSA+IGEgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgICAgLm1haW4tbWVudSAuc3ViLW1lbnUgPiAubWVudS1pdGVtID4gYTpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lOyB9XG4gICAgICAgICAgLm1haW4tbWVudSAuc3ViLW1lbnUgPiAubWVudS1pdGVtID4gYS5jdXJyZW50LW1lbnUtaXRlbSwgLm1haW4tbWVudSAuc3ViLW1lbnUgPiAubWVudS1pdGVtID4gYS5jdXJyZW50LW1lbnUtcGFyZW50LCAubWFpbi1tZW51IC5zdWItbWVudSA+IC5tZW51LWl0ZW0gPiBhOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMDA2MmQxOyB9IH1cblxuZGl2W2lkKj1uYXYtbWVudV0gLmYtaXRlbS1wcmV2aWV3IHtcbiAgcGFkZGluZzogMzBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgZGl2W2lkKj1uYXYtbWVudV0gLmYtaXRlbS1wcmV2aWV3IHtcbiAgICAgIGJhY2tncm91bmQ6ICMxZTQzNzU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICBkaXZbaWQqPW5hdi1tZW51XSAuZi1pdGVtLXByZXZpZXcgLm1haW4tbWVudSB7XG4gICAgICB3aWR0aDogMjQwcHg7IH0gfVxuXG4udGFicyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxNTEsIDE1MSwgMTUxLCAwLjMyKTsgfVxuXG4udGFic19fdGFiIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLnRhYnNfX3RhYjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7IH1cbiAgLnRhYnNfX3RhYjpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7IH1cbiAgLnRhYnNfX3RhYiBhIHtcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDJweDtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgICAudGFic19fdGFiIGE6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTsgfVxuICAudGFic19fdGFiLmFjdGl2ZSBhIHtcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgIzUwOTRlMDsgfVxuICAudGFic19fdGFiLmFjdGl2ZSBhLCAudGFic19fdGFiIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjMjE3Y2UzOyB9XG5cbi5wb3N0LWl0ZW0ge1xuICBwYWRkaW5nOiAzMHB4IDA7IH1cblxuLnBvc3QtaXRlbV9fY2F0ZWdvcnkge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiA2cHg7IH1cblxuLnBvc3QtaXRlbV9fdGl0bGUsIC5wb3N0LWl0ZW1fX3RpdGxlIGEge1xuICBmb250LXNpemU6IDE5cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjE2O1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogIzAwNjJkMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLnBvc3QtaXRlbV9fdGl0bGU6aG92ZXIsIC5wb3N0LWl0ZW1fX3RpdGxlIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4ucG9zdC1pdGVtX19jb250ZW50LCAucG9zdC1pdGVtX19jb250ZW50IHAge1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpOyB9XG5cbi5wb3N0LWl0ZW1fX2NvbnRlbnQgPiAqOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cblxuLmYtaXRlbS1wcmV2aWV3ID4gLnBvc3QtaXRlbSB7XG4gIHdpZHRoOiA4MDBweDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLm1vYmlsZS1kcm9wZG93biB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNERkUxRTU7IH0gfVxuXG4ubW9iaWxlLWRyb3Bkb3duX190cmlnZ2VyIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5tb2JpbGUtZHJvcGRvd25fX3RyaWdnZXIgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgY29sb3I6ICMxZDFmMjE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLm1vYmlsZS1kcm9wZG93bl9fdHJpZ2dlciBzcGFuOmJlZm9yZSwgLm1vYmlsZS1kcm9wZG93bl9fdHJpZ2dlciBzcGFuOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZDogIzM5OTZmZjtcbiAgICAgIHdpZHRoOiA3cHg7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgICAubW9iaWxlLWRyb3Bkb3duX190cmlnZ2VyIHNwYW46YmVmb3JlIHtcbiAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlWig0NWRlZykgdHJhbnNsYXRlWCgxcHgpOyB9XG4gICAgLm1vYmlsZS1kcm9wZG93bl9fdHJpZ2dlciBzcGFuOmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAtMjJweDtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBsZWZ0O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKC00NWRlZykgdHJhbnNsYXRlWCgtMXB4KTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAubW9iaWxlLWRyb3Bkb3duX190cmlnZ2VyIHtcbiAgICAgIHBhZGRpbmc6IDE1cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1vYmlsZS1kcm9wZG93bl9fdHJpZ2dlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLm1vYmlsZS1kcm9wZG93bi5vcGVuIC5tb2JpbGUtZHJvcGRvd25fX3RyaWdnZXIgc3BhbjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZykgdHJhbnNsYXRlWCgycHgpOyB9XG5cbi5tb2JpbGUtZHJvcGRvd24ub3BlbiAubW9iaWxlLWRyb3Bkb3duX190cmlnZ2VyIHNwYW46YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZykgdHJhbnNsYXRlWCgtMnB4KTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLm1vYmlsZS1kcm9wZG93bl9fbWVudSB7XG4gICAgcGFkZGluZzogMCAzNXB4IDIwcHggMzVweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vYmlsZS1kcm9wZG93bl9fbWVudSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDsgfVxuICAucGFnaW5hdGlvbiAuYnV0dG9uLCAucGFnaW5hdGlvbiBpbnB1dCB7XG4gICAgbWFyZ2luOiAwcHg7IH1cblxuLnBhZ2luYXRpb25fX3ByZXYge1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH1cblxuLnBhZ2luYXRpb25fX2N1cnJlbnQtcGFnZSB7XG4gIG1hcmdpbi1yaWdodDogOHB4OyB9XG4gIC5wYWdpbmF0aW9uX19jdXJyZW50LXBhZ2UgaW5wdXQge1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7IH1cblxuLnBhZ2luYXRpb25fX3RvdGFsLXBhZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTsgfVxuXG4udGVhbS1pdGVtIHtcbiAgbWF4LXdpZHRoOiA2OC43NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuXG4udGVhbS1pdGVtX19waG90by1jb2x1bW4ge1xuICBtYXJnaW4tcmlnaHQ6IDYwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnRlYW0taXRlbV9fcGhvdG8tY29sdW1uIHtcbiAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnRlYW0taXRlbV9fcGhvdG8tY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH0gfVxuXG4udGVhbS1pdGVtX19waG90byB7XG4gIHdpZHRoOiAxOTBweDtcbiAgcGFkZGluZy10b3A6IDI0MHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOGQ4ZDg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgfVxuXG4udGVhbS1pdGVtX19pbmZvLWNvbHVtbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMTsgfVxuICAudGVhbS1pdGVtX19pbmZvLWNvbHVtbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDNweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTA5NGUwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC50ZWFtLWl0ZW1fX2luZm8tY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG5cbi50ZWFtLWl0ZW1fX25hbWUge1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xuICBtYXJnaW4tdG9wOiAxNnB4OyB9XG5cbi50ZWFtLWl0ZW1fX3Bvc2l0aW9uIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41MztcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcbiAgbWFyZ2luLWJvdHRvbTogMTNweDsgfVxuXG4udGVhbS1pdGVtX19kZXNjcmlwdGlvbiwgLnRlYW0taXRlbV9fZGVzY3JpcHRpb24gcCB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTsgfVxuXG4uZi1pdGVtLXByZXZpZXcgPiAudGVhbS1pdGVtIHtcbiAgd2lkdGg6IDEwNTBweDsgfVxuXG4uYnV0dG9ucy1ncm91cCB7XG4gIGZvbnQtc2l6ZTogMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDFweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYnV0dG9ucy1ncm91cCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0gfVxuICAuYnV0dG9ucy1ncm91cCAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmJ1dHRvbnMtZ3JvdXAgLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5idXR0b25zLWdyb3VwIC5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDsgfVxuICAgICAgLmJ1dHRvbnMtZ3JvdXAgLmJ1dHRvbjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDsgfSB9XG5cbmRpdltpZCo9YnV0dG9ucy1ncm91cF0gLmYtaXRlbS1wcmV2aWV3IHtcbiAgYmFja2dyb3VuZDogIzFlNDM3NTtcbiAgcGFkZGluZzogMzBweDsgfVxuXG4uY29udHJpYnV0b3JzIHtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4OyB9XG5cbi5jb250cmlidXRvcnNfX2NvbHVtbiB7XG4gIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29udHJpYnV0b3JzX19jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuY29udHJpYnV0b3JzX19jb2x1bW4gdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7IH1cbiAgICAuY29udHJpYnV0b3JzX19jb2x1bW4gdWwgbGkge1xuICAgICAgcGFkZGluZy1ib3R0b206IDdweDtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLmNvbnRyaWJ1dG9yc19fY29sdW1uIHVsIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuY29udHJpYnV0b3JzX19jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbnRyaWJ1dG9yc19fY29sdW1uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAuY29udHJpYnV0b3JzX19jb2x1bW4gdWwge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH0gfVxuXG4uYm9hcmQtaXRlbV9fbmFtZSB7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gIG1hcmdpbi1ib3R0b206IDhweDsgfVxuXG4uYm9hcmQtaXRlbV9fY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7IH1cblxuLmYtaXRlbS1wcmV2aWV3ID4gLmJvYXJkLWl0ZW0ge1xuICB3aWR0aDogODAwcHg7IH1cblxuLmNvcmUtaGlnaGxpZ2h0cy1pdGVtX19jb250ZW50IHtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTsgfVxuXG4uZi1pdGVtLXByZXZpZXcgPiAuY29yZS1oaWdobGlnaHRzLWl0ZW0ge1xuICB3aWR0aDogNTEwcHg7IH1cblxuLmZvb3Rlci1tZW51IHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5mb290ZXItbWVudSAubmF2LW1lbnUge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZm9vdGVyLW1lbnUgLm5hdi1tZW51ID4gLm1lbnUtaXRlbSB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgbWF4LXdpZHRoOiAyNTBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5mb290ZXItbWVudSAubmF2LW1lbnUgPiAubWVudS1pdGVtIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9IH1cbiAgLmZvb3Rlci1tZW51IC5uYXYtbWVudSA+IC5tZW51LWl0ZW0gPiBhIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmctdG9wOiA4cHg7IH1cbiAgICAuZm9vdGVyLW1lbnUgLm5hdi1tZW51ID4gLm1lbnUtaXRlbSA+IGE6ZW1wdHk6YWZ0ZXIge1xuICAgICAgY29udGVudDogJy4nO1xuICAgICAgZm9udC1zaXplOiAwcHg7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLmZvb3Rlci1tZW51IC5zdWItbWVudSB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIC5mb290ZXItbWVudSAuc3ViLW1lbnUgPiAubWVudS1pdGVtID4gYSB7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgICAgcGFkZGluZy10b3A6IDRweDsgfVxuICAgICAgLmZvb3Rlci1tZW51IC5zdWItbWVudSA+IC5tZW51LWl0ZW0gPiBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuKltpZCo9Zm9vdGVyLW1lbnVdIC5mLWl0ZW0tcHJldmlldyB7XG4gIG1heC13aWR0aDogNjguNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4M2Y0OTtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG5cbi5vd2wtY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLm93bC1zdGFnZS1vdXRlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm93bC1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5vd2wtZG90cyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm93bC1uYXYgLm93bC1wcmV2LCAub3dsLW5hdiAub3dsLW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDUlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgfVxuICAub3dsLW5hdiAub3dsLXByZXY6Zm9jdXMsIC5vd2wtbmF2IC5vd2wtbmV4dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAub3dsLW5hdiAub3dsLXByZXYuZGlzYWJsZWQsIC5vd2wtbmF2IC5vd2wtbmV4dC5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41OyB9XG4gIC5vd2wtbmF2IC5vd2wtcHJldiBzcGFuLCAub3dsLW5hdiAub3dsLW5leHQgc3BhbiB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAwLjJzLCByaWdodCAwLjJzO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDBweDtcbiAgICBoZWlnaHQ6IDU1cHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOyB9XG5cbi5vd2wtbmF2IC5vd2wtcHJldiB7XG4gIGxlZnQ6IC04MHB4OyB9XG4gIC5vd2wtbmF2IC5vd2wtcHJldjpub3QoLmRpc2FibGVkKTpob3ZlciBzcGFuIHtcbiAgICBsZWZ0OiAtNXB4OyB9XG4gIC5vd2wtbmF2IC5vd2wtcHJldiBzcGFuIHtcbiAgICBsZWZ0OiAwcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Nhcm91c2VsLWxlZnQtYXJyb3cuc3ZnXCIpOyB9XG5cbi5vd2wtbmF2IC5vd2wtbmV4dCB7XG4gIHJpZ2h0OiAtODBweDsgfVxuICAub3dsLW5hdiAub3dsLW5leHQ6bm90KC5kaXNhYmxlZCk6aG92ZXIgc3BhbiB7XG4gICAgcmlnaHQ6IC01cHg7IH1cbiAgLm93bC1uYXYgLm93bC1uZXh0IHNwYW4ge1xuICAgIHJpZ2h0OiAwcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Nhcm91c2VsLXJpZ2h0LWFycm93LnN2Z1wiKTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgLm93bC1uYXYgLm93bC1wcmV2IHNwYW4sIC5vd2wtbmF2IC5vd2wtbmV4dCBzcGFuIHtcbiAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgd2lkdGg6IDMwcHg7IH1cbiAgLm93bC1uYXYgLm93bC1wcmV2IHtcbiAgICBsZWZ0OiAtMzVweDsgfVxuICAub3dsLW5hdiAub3dsLW5leHQge1xuICAgIHJpZ2h0OiAtMzVweDsgfSB9XG5cbi50ZXh0LWltYWdlX190ZXh0LWNvbHVtbiB7XG4gIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gIG1heC13aWR0aDogNDEuNjY2NjclO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjg3NXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxLjg3NXJlbTtcbiAgbWF4LXdpZHRoOiA0MS42NjY2NyU7XG4gIHBhZGRpbmctdG9wOiAzMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAudGV4dC1pbWFnZV9fdGV4dC1jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAudGV4dC1pbWFnZV9fdGV4dC1jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRleHQtaW1hZ2VfX3RleHQtY29sdW1uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLnRleHQtaW1hZ2VfX3RpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4xMztcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgLnRleHQtaW1hZ2VfX3RpdGxlOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTIzcHg7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUwOTRlMDsgfVxuXG4udGV4dC1pbWFnZV9fY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7IH1cblxuLnRleHQtaW1hZ2VfX2ltYWdlLWNvbHVtbiB7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNHB4O1xuICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICBtYXgtd2lkdGg6IDU4LjMzMzMzJTtcbiAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG4gIHBhZGRpbmctbGVmdDogMS44NzVyZW07XG4gIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG4gIC50ZXh0LWltYWdlX19pbWFnZS1jb2x1bW4gaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm94LXNoYWRvdzogMCA1cHggOXB4IDAgcmdiYSgxNywgMTksIDIxLCAwLjE2KSwgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4wOSk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC50ZXh0LWltYWdlX19pbWFnZS1jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKCBjYWxjKCAxMDI0cHggLSA5OXZ3ICkgLyA2KTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC50ZXh0LWltYWdlX19pbWFnZS1jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiAzMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC50ZXh0LWltYWdlX19pbWFnZS1jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uc3RlcC1jb2x1bW4ge1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7IH1cblxuLnN0ZXAtY29sdW1uX19oZWFkZXIge1xuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2I4YzBjYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlNDM3NTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IC0xcHg7IH1cbiAgLnN0ZXAtY29sdW1uX19oZWFkZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB0b3A6IDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyOiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHdoaXRlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAycHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgbGVmdDogLTFweDtcbiAgICB6LWluZGV4OiA3OyB9XG4gIC5zdGVwLWNvbHVtbl9faGVhZGVyOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB0b3A6IDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyOiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNiOGMwY2E7XG4gICAgei1pbmRleDogNTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDJweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBsZWZ0OiAwcHg7IH1cblxuLnN0ZXAtY29sdW1uX19oZWFkZXItaW5uZXIge1xuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDc1cHg7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuc3RlcC1jb2x1bW5fX2hlYWRlci1pbm5lcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRvcDogMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXI6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogIzFlNDM3NTtcbiAgICB6LWluZGV4OiA1O1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMnB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIHotaW5kZXg6IDc7XG4gICAgcmlnaHQ6IC0xOHB4OyB9XG4gIC5zdGVwLWNvbHVtbl9faGVhZGVyLWlubmVyOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB0b3A6IDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNiOGMwY2E7XG4gICAgei1pbmRleDogNTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDJweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICByaWdodDogLTE5cHg7IH1cblxuLnN0ZXAtY29sdW1uX190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbjogMHB4OyB9XG5cbi5zdGVwLWNvbHVtbl9fYm9keSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpLCAwIDNweCA3cHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA1cHggNXB4OyB9XG5cbi5zdGVwLWNvbHVtbl9fY29udGVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMTdweCAyMHB4OyB9XG4gIC5zdGVwLWNvbHVtbl9fY29udGVudCA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XG5cbi5zdGVwLWNvbHVtbl9fZm9vdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxN3B4IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTkwLCAxOTAsIDE5MCwgMC4yMik7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA1cHggNXB4OyB9XG4gIC5zdGVwLWNvbHVtbl9fZm9vdGVyID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgLnN0ZXAtY29sdW1uX19mb290ZXIgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICAuc3RlcC1jb2x1bW5fX2Zvb3RlciB1bCBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5zdGVwLWNvbHVtbl9fZm9vdGVyIHVsIGxpOmJlZm9yZSB7XG4gICAgICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICBjb250ZW50OiBcIu6kh1wiO1xuICAgICAgICBjb2xvcjogIzM5OTZmZjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0xOHB4O1xuICAgICAgICB0b3A6IDBweDsgfVxuXG4uc3RlcC1jb2x1bW5fX2NvbnRlbnQsXG4uc3RlcC1jb2x1bW5fX2Zvb3RlciB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5zdGVwLWNvbHVtbl9fY29udGVudCBwLCAuc3RlcC1jb2x1bW5fX2NvbnRlbnQgbGksXG4gIC5zdGVwLWNvbHVtbl9fZm9vdGVyIHAsXG4gIC5zdGVwLWNvbHVtbl9fZm9vdGVyIGxpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgLnN0ZXAtY29sdW1uX19jb250ZW50IHVsLFxuICAuc3RlcC1jb2x1bW5fX2Zvb3RlciB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE4cHg7IH1cbiAgLnN0ZXAtY29sdW1uX19jb250ZW50IHN0cm9uZyxcbiAgLnN0ZXAtY29sdW1uX19mb290ZXIgc3Ryb25nIHtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuXG4uZi1pdGVtLXByZXZpZXcgPiAuc3RlcC1jb2x1bW4ge1xuICB3aWR0aDogMjAycHg7IH1cblxuLnNpZGViYXItbWVudSwgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5zaWRlYmFyLW1lbnUgbGksIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgbGkge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLnNpZGViYXItbWVudSBhLFxuICAuc2lkZWJhci1tZW51IC5idXR0b24sIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBhLFxuICAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgLmJ1dHRvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07IH1cbiAgLnNpZGViYXItbWVudSBpbnB1dCxcbiAgLnNpZGViYXItbWVudSBzZWxlY3QsXG4gIC5zaWRlYmFyLW1lbnUgYSxcbiAgLnNpZGViYXItbWVudSBidXR0b24sIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBpbnB1dCxcbiAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIHNlbGVjdCxcbiAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIGEsXG4gIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnNpZGViYXItbWVudSBpbnB1dCwgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLnNpZGViYXItbWVudSAuc3ViLW1lbnUsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCAuc3ViLW1lbnUge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgcGFkZGluZy10b3A6IDNweDsgfVxuICAuc2lkZWJhci1tZW51IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46YWZ0ZXIsIC5zaWRlYmFyLW1lbnUgLm1lbnUtaXRlbS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmFmdGVyLCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmsubWVudS1pdGVtLWhhcy1jaGlsZHJlbjphZnRlciwgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIC5tZW51LWl0ZW0ubWVudS1pdGVtLWhhcy1jaGlsZHJlbjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgbWFyZ2luOiAxM3B4IDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggcmdiYSgxMjYsIDEzNywgMTUwLCAwLjUpOyB9XG4gIC5zaWRlYmFyLW1lbnUgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbms6bm90KC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuKSArIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSwgLnNpZGViYXItbWVudSAubWVudS1pdGVtOm5vdCgubWVudS1pdGVtLWhhcy1jaGlsZHJlbikgKyAubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpiZWZvcmUsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluazpub3QoLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4pICsgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46YmVmb3JlLCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgLm1lbnUtaXRlbTpub3QoLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4pICsgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBtYXJnaW46IDEzcHggMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSk7IH1cbiAgLnNpZGViYXItbWVudSAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluayA+IGEsIC5zaWRlYmFyLW1lbnUgLm1lbnUtaXRlbSA+IGEsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluayA+IGEsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCAubWVudS1pdGVtID4gYSB7XG4gICAgcGFkZGluZzogNnB4IDBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOyB9XG4gIC5zaWRlYmFyLW1lbnUgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmsubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEsIC5zaWRlYmFyLW1lbnUgLm1lbnUtaXRlbS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYSwgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhLCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgLm1lbnUtaXRlbS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44NykgIWltcG9ydGFudDsgfVxuICAgIC5zaWRlYmFyLW1lbnUgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmsubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGE6YmVmb3JlLCAuc2lkZWJhci1tZW51IC5tZW51LWl0ZW0ubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGE6YmVmb3JlLCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmsubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGE6YmVmb3JlLCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgLm1lbnUtaXRlbS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYTpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9jYXJldC5zdmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZVgoMnB4KTsgfVxuICAuc2lkZWJhci1tZW51IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4uaXMtb3BlbiA+IGE6YmVmb3JlLCAuc2lkZWJhci1tZW51IC5tZW51LWl0ZW0ubWVudS1pdGVtLWhhcy1jaGlsZHJlbi5pcy1vcGVuID4gYTpiZWZvcmUsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluay5tZW51LWl0ZW0taGFzLWNoaWxkcmVuLmlzLW9wZW4gPiBhOmJlZm9yZSwgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIC5tZW51LWl0ZW0ubWVudS1pdGVtLWhhcy1jaGlsZHJlbi5pcy1vcGVuID4gYTpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHRyYW5zbGF0ZVgoMHB4KTsgfVxuICAuc2lkZWJhci1tZW51IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rOmhvdmVyID4gYSwgLnNpZGViYXItbWVudSAubWVudS1pdGVtOmhvdmVyID4gYSwgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rOmhvdmVyID4gYSwgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIC5tZW51LWl0ZW06aG92ZXIgPiBhIHtcbiAgICBjb2xvcjogIzAwNjJkMTsgfVxuICAuc2lkZWJhci1tZW51IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rLmlzLWFjdGl2ZSA+IGEsIC5zaWRlYmFyLW1lbnUgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmsuY3VycmVudC1tZW51LWl0ZW0gPiBhLCAuc2lkZWJhci1tZW51IC5tZW51LWl0ZW0uaXMtYWN0aXZlID4gYSwgLnNpZGViYXItbWVudSAubWVudS1pdGVtLmN1cnJlbnQtbWVudS1pdGVtID4gYSwgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rLmlzLWFjdGl2ZSA+IGEsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluay5jdXJyZW50LW1lbnUtaXRlbSA+IGEsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCAubWVudS1pdGVtLmlzLWFjdGl2ZSA+IGEsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCAubWVudS1pdGVtLmN1cnJlbnQtbWVudS1pdGVtID4gYSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICMwMDYyZDE7IH1cblxuLmYtaXRlbS1wcmV2aWV3ID4gLnNpZGViYXItbWVudSwgLmYtaXRlbS1wcmV2aWV3ID4gLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcbiAgbWFyZ2luOiAyMHB4OyB9XG4gIC5mLWl0ZW0tcHJldmlldyA+IC5zaWRlYmFyLW1lbnU6bm90KDpmaXJzdC1jaGlsZCksIC5mLWl0ZW0tcHJldmlldyA+IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXRvcDogNDBweDsgfVxuXG4uaGVhZGVyLXVzZXItbWVudSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5oZWFkZXItdXNlci1tZW51IGxpOmZpcnN0LWNoaWxkIC5zdWItbWVudSB7XG4gICAgICBsZWZ0OiAtMjBweCAhaW1wb3J0YW50OyB9XG4gICAgLmhlYWRlci11c2VyLW1lbnUgbGk6Zmlyc3QtY2hpbGQgYSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDBweDsgfVxuICAgIC5oZWFkZXItdXNlci1tZW51IGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7IH0gfVxuXG5kaXZbaWQqPWhlYWRlci11c2VyLW1lbnVdIC5mLWl0ZW0tcHJldmlldyB7XG4gIHBhZGRpbmc6IDMwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIGRpdltpZCo9aGVhZGVyLXVzZXItbWVudV0gLmYtaXRlbS1wcmV2aWV3IHtcbiAgICAgIGJhY2tncm91bmQ6ICMxZTQzNzU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICBkaXZbaWQqPWhlYWRlci11c2VyLW1lbnVdIC5mLWl0ZW0tcHJldmlldyAubWFpbi1tZW51IHtcbiAgICAgIHdpZHRoOiAyNDBweDsgfSB9XG5cbi5oZWFkZXItc2VhcmNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogOTBweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC41cztcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9XG4gIC5oZWFkZXItc2VhcmNoIGlucHV0IHtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgLmhlYWRlci1zZWFyY2g6bm90KC5vcGVuKSBpbnB1dCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgOTgsIDIwOSwgMCksIGluc2V0IDAgMCAwIDBweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSksIGluc2V0IDAgMHB4IDBweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTsgfVxuICAgIC5oZWFkZXItc2VhcmNoOm5vdCgub3BlbikgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmhlYWRlci1zZWFyY2g6bm90KC5vcGVuKSBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuaGVhZGVyLXNlYXJjaDpub3QoLm9wZW4pIGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuaGVhZGVyLXNlYXJjaDpub3QoLm9wZW4pIGlucHV0Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmhlYWRlci1zZWFyY2g6bm90KC5vcGVuKSBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5oZWFkZXItc2VhcmNoLm9wZW4ge1xuICAgIHdpZHRoOiAyNjBweDsgfVxuICAgIC5oZWFkZXItc2VhcmNoLm9wZW4gLmhlYWRlci1zZWFyY2hfX2Nsb3NlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuaGVhZGVyLXNlYXJjaC5vcGVuIC5oZWFkZXItc2VhcmNoX19pY29uOmJlZm9yZSB7XG4gICAgICBjb2xvcjogI0EwQTFBMTsgfVxuXG4uaGVhZGVyLXNlYXJjaF9faWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDEwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAuaGVhZGVyLXNlYXJjaF9faWNvbjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgIGNvbG9yOiAjQTVCNEM4OyB9XG5cbi5oZWFkZXItc2VhcmNoX19jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAxM3B4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICBmb250LXNpemU6IDEycHg7IH1cbiAgLmhlYWRlci1zZWFyY2hfX2Nsb3NlOmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjNzA3MTcyOyB9XG5cbmRpdltpZCo9aGVhZGVyLXNlYXJjaF0gLmYtaXRlbS1wcmV2aWV3IHtcbiAgYmFja2dyb3VuZDogIzFlNDM3NTtcbiAgcGFkZGluZzogMzBweDsgfVxuXG4uc29mdHdhcmUtdGllcl9fY29udGVudC1jb2x1bW4ge1xuICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnNvZnR3YXJlLXRpZXJfX2NvbnRlbnQtY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gICAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc29mdHdhcmUtdGllcl9fY29udGVudC1jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuc29mdHdhcmUtdGllcl9fY29udGVudC1jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cblxuLnNvZnR3YXJlLXRpZXJfX2ltYWdlLWNvbHVtbiB7XG4gIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gIG1heC13aWR0aDogNjYuNjY2NjclO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7XG4gIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDQwcHggIWltcG9ydGFudDsgfVxuICAuc29mdHdhcmUtdGllcl9faW1hZ2UtY29sdW1uIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDlweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4xNiksIDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMDkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDJkMzA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc29mdHdhcmUtdGllcl9faW1hZ2UtY29sdW1uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5zb2Z0d2FyZS10aWVyX19pbWFnZS1jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICAgIG1heC13aWR0aDogNTguMzMzMzMlO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zb2Z0d2FyZS10aWVyX19pbWFnZS1jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuc29mdHdhcmUtdGllcl9faW1hZ2UtY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG4uc29mdHdhcmUtdGllcl9fdGllciB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7IH1cblxuLnNvZnR3YXJlLXRpZXJfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMTM7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xuICBtYXJnaW4tYm90dG9tOiAycHg7IH1cblxuLnNvZnR3YXJlLXRpZXIuc3BlY2lhbCAuc29mdHdhcmUtdGllcl9fdGllciB7XG4gIGNvbG9yOiAjM2RiNjgyOyB9XG5cbi5zb2Z0d2FyZS10aWVyLnNwZWNpYWwgLnNvZnR3YXJlLXRpZXJfX2NvbnRlbnQgdWwgbGk6YmVmb3JlIHtcbiAgY29sb3I6ICMzZGI2ODI7IH1cblxuLnNvZnR3YXJlLXRpZXIucHJpbWFyeSAuc29mdHdhcmUtdGllcl9fdGllciB7XG4gIGNvbG9yOiAjMzk5NmZmOyB9XG5cbi5zb2Z0d2FyZS10aWVyLnByaW1hcnkgLnNvZnR3YXJlLXRpZXJfX2NvbnRlbnQgdWwgbGk6YmVmb3JlIHtcbiAgY29sb3I6ICMzOTk2ZmY7IH1cblxuLnNvZnR3YXJlLXRpZXJfX3N1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxN3B4OyB9XG5cbi5zb2Z0d2FyZS10aWVyX19jb250ZW50IHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4zMztcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTsgfVxuICAuc29mdHdhcmUtdGllcl9fY29udGVudCBwIHtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5zb2Z0d2FyZS10aWVyX19jb250ZW50IHVsIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIC5zb2Z0d2FyZS10aWVyX19jb250ZW50IHVsIGxpIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5zb2Z0d2FyZS10aWVyX19jb250ZW50IHVsIGxpOmJlZm9yZSB7XG4gICAgICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICBjb250ZW50OiBcIu6kglwiO1xuICAgICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjQpO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTI5cHg7XG4gICAgICAgIHRvcDogMnB4OyB9XG5cbi5zb2Z0d2FyZS10aWVyX19hY3Rpb25zIHtcbiAgbWFyZ2luLXRvcDogMjVweDsgfVxuICAuc29mdHdhcmUtdGllcl9fYWN0aW9ucyAuYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAwIDI4cHg7IH1cblxuLnJhZGlvLWNoZWNrYm94LXByaWNlIHtcbiAgaGVpZ2h0OiA1NnB4OyB9XG4gIC5yYWRpby1jaGVja2JveC1wcmljZSBpbnB1dCArICoge1xuICAgIGhlaWdodDogNTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zczsgfVxuICAgIC5yYWRpby1jaGVja2JveC1wcmljZSBpbnB1dCArICogLnJhZGlvLWNoZWNrYm94X2xhYmVsIHtcbiAgICAgIGZsZXgtZ3JvdzogMTsgfVxuICAgICAgLnJhZGlvLWNoZWNrYm94LXByaWNlIGlucHV0ICsgKiAucmFkaW8tY2hlY2tib3hfbGFiZWwgLnJhZGlvLWNoZWNrYm94X3ByaWNhLXRyaWFsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgIGNvbG9yOiAjMDA2MmQxOyB9XG4gICAgLnJhZGlvLWNoZWNrYm94LXByaWNlIGlucHV0ICsgKiAucmFkaW8tY2hlY2tib3hfb2xkLXByaWNlLXdyYXBwZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpOyB9XG4gICAgLnJhZGlvLWNoZWNrYm94LXByaWNlIGlucHV0ICsgKiAucmFkaW8tY2hlY2tib3hfcHJpY2Utd3JhcHBlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnJhZGlvLWNoZWNrYm94LXByaWNlIGlucHV0OmNoZWNrZWQgKyAqIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlZWZmOyB9XG5cbi5mLWl0ZW0tcHJldmlldyA+IC5yYWRpby1jaGVja2JveC1wcmljZSB7XG4gIHdpZHRoOiAzNjBweDsgfVxuXG4ub3B0aW9ucy1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDdweDsgfVxuICAub3B0aW9ucy1ncm91cCBsYWJlbC5yYWRpby1jaGVja2JveCwgLm9wdGlvbnMtZ3JvdXAgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAub3B0aW9ucy1ncm91cCAucmFkaW8tY2hlY2tib3guZ3NlY3Rpb25fdGl0bGUsIC5vcHRpb25zLWdyb3VwIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7IH1cbiAgICAub3B0aW9ucy1ncm91cCBsYWJlbC5yYWRpby1jaGVja2JveCA+ICosIC5vcHRpb25zLWdyb3VwIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+ICosIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5vcHRpb25zLWdyb3VwIC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+ICosIC5vcHRpb25zLWdyb3VwIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiAqIHtcbiAgICAgIG1hcmdpbjogMHB4OyB9XG4gICAgLm9wdGlvbnMtZ3JvdXAgbGFiZWwucmFkaW8tY2hlY2tib3g6Zmlyc3QtY2hpbGQsIC5vcHRpb25zLWdyb3VwIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZTpmaXJzdC1jaGlsZCwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLm9wdGlvbnMtZ3JvdXAgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlOmZpcnN0LWNoaWxkLCAub3B0aW9ucy1ncm91cCAuZ2ZpZWxkX2NoZWNrYm94ICpbY2xhc3NePWdjaG9pY2VdOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7IH1cbiAgICAub3B0aW9ucy1ncm91cCBsYWJlbC5yYWRpby1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKiwgLm9wdGlvbnMtZ3JvdXAgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1jaGVja2JveF0gKyAqLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAub3B0aW9ucy1ncm91cCAucmFkaW8tY2hlY2tib3guZ3NlY3Rpb25fdGl0bGUgPiBpbnB1dFt0eXBlPWNoZWNrYm94XSArICosIC5vcHRpb25zLWdyb3VwIGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqLCAub3B0aW9ucy1ncm91cCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAucmFkaW8tY2hlY2tib3guZ3NlY3Rpb25fdGl0bGUgPiBpbnB1dFt0eXBlPXJhZGlvXSArICosIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5vcHRpb25zLWdyb3VwIC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9cmFkaW9dICsgKiwgLm9wdGlvbnMtZ3JvdXAgLmdmaWVsZF9jaGVja2JveCAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKiwgLm9wdGlvbnMtZ3JvdXAgLmdmaWVsZF9jaGVja2JveCAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9cmFkaW9dICsgKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMzZweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyNXB4OyB9XG4gICAgICAub3B0aW9ucy1ncm91cCBsYWJlbC5yYWRpby1jaGVja2JveCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjpiZWZvcmUsIC5vcHRpb25zLWdyb3VwIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjpiZWZvcmUsIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC5vcHRpb25zLWdyb3VwIC5yYWRpby1jaGVja2JveC5nc2VjdGlvbl90aXRsZSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjpiZWZvcmUsIC5vcHRpb25zLWdyb3VwIGxhYmVsLnJhZGlvLWNoZWNrYm94ID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmJlZm9yZSwgLm9wdGlvbnMtZ3JvdXAgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmJlZm9yZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLm9wdGlvbnMtZ3JvdXAgLnJhZGlvLWNoZWNrYm94LmdzZWN0aW9uX3RpdGxlID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqOmJlZm9yZSwgLm9wdGlvbnMtZ3JvdXAgLmdmaWVsZF9jaGVja2JveCAqW2NsYXNzXj1nY2hvaWNlXSA+IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgKjpiZWZvcmUsIC5vcHRpb25zLWdyb3VwIC5nZmllbGRfY2hlY2tib3ggKltjbGFzc149Z2Nob2ljZV0gPiBpbnB1dFt0eXBlPXJhZGlvXSArICo6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDBweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cblxuLmYtaXRlbS1wcmV2aWV3ID4gLm9wdGlvbnMtZ3JvdXAge1xuICB3aWR0aDogNTQwcHg7IH1cblxuLmJnLWltYWdlLXRleHQge1xuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jMzgzZjQ5KzUyLDI4MmYzOSs1NSAqL1xuICBiYWNrZ3JvdW5kOiAjMzgzZjQ5O1xuICAvKiBPbGQgYnJvd3NlcnMgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgIzM4M2Y0OSAzMCUsICMyODJmMzkgODAlKTtcbiAgLyogRkYzLjYtMTUgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgIzM4M2Y0OSAzMCUsICMyODJmMzkgODAlKTtcbiAgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMzgzZjQ5IDMwJSwgIzI4MmYzOSA4MCUpO1xuICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyMzODNmNDknLCBlbmRDb2xvcnN0cj0nIzI4MmYzOScsR3JhZGllbnRUeXBlPTEgKTtcbiAgLyogSUU2LTkgKi9cbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgcGFkZGluZy10b3A6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uYmctaW1hZ2UtdGV4dF9fY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmJnLWltYWdlLXRleHRfX2NvbnRhaW5lcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgei1pbmRleDogMTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL1N0ZXRob3Njb3BlLUJhY2tncm91bmRAMnguanBnXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTQwMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTEwMHB4O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtMTUwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgLmJnLWltYWdlLXRleHRfX2NvbnRhaW5lcjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICByaWdodDogLTIwMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuYmctaW1hZ2UtdGV4dF9fY29udGFpbmVyOmFmdGVyIHtcbiAgICAgIHdpZHRoOiAxMDB2dzsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuYmctaW1hZ2UtdGV4dF9fY29udGFpbmVyOmFmdGVyIHtcbiAgICAgIHdpZHRoOiAxMDB2aDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5iZy1pbWFnZS10ZXh0X19jb250YWluZXI6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxNTAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIGNhbGMoIC0xMDB2dyAvIDYpOyB9IH1cblxuLmJnLWltYWdlLXRleHRfX2NvbHVtbiB7XG4gIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gIG1heC13aWR0aDogNjYuNjY2NjclO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5iZy1pbWFnZS10ZXh0X19jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuYmctaW1hZ2UtdGV4dF9fY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5iZy1pbWFnZS10ZXh0X19jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYmctaW1hZ2UtdGV4dF9fY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5iZy1pbWFnZS10ZXh0X19jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uYmctaW1hZ2UtdGV4dF9fc3VidGl0bGUge1xuICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLHNhbnMtc2VyaWY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMjk7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiAjOTNjNmZmO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5iZy1pbWFnZS10ZXh0X190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBpdnlqb3VybmFsLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5iZy1pbWFnZS10ZXh0X19jb250ZW50IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4zMTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7IH1cblxuLmJnLWltYWdlLXRleHRfX2FjdGlvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XG5cbi5mZWF0dXJlcyB7XG4gIHBhZGRpbmctdG9wOiA1MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHA6Ly9jb2xvcnppbGxhLmNvbS9ncmFkaWVudC1lZGl0b3IvI2U1ZWZmZiswLGQ1ZTFmNisxMDAmMC40KzAsMSsxMDAgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDIyOSwgMjM5LCAyNTUsIDAuNCkgMCUsICNkNWUxZjYgMTAwJSk7XG4gIC8qIEZGMy42LTE1ICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksIDIzOSwgMjU1LCAwLjQpIDAlLCAjZDVlMWY2IDEwMCUpO1xuICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDIyOSwgMjM5LCAyNTUsIDAuNCkgMCUsICNkNWUxZjYgMTAwJSk7XG4gIC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzY2ZTVlZmZmJywgZW5kQ29sb3JzdHI9JyNkNWUxZjYnLEdyYWRpZW50VHlwZT0wICk7XG4gIC8qIElFNi05ICovXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjEyKTsgfVxuXG4uZmVhdHVyZXNfX2NvbHVtbiB7XG4gIGZvbnQtc2l6ZTogMHB4OyB9XG4gIC5mZWF0dXJlc19fY29sdW1uIC5mZWF0dXJlLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmZlYXR1cmVzX19jb2x1bW4gLmZlYXR1cmUtYmxvY2sge1xuICAgICAgICB3aWR0aDogY2FsYyggMzMuMyUgKyAxNXB4KTsgfVxuICAgICAgICAuZmVhdHVyZXNfX2NvbHVtbiAuZmVhdHVyZS1ibG9jazpudGgtY2hpbGQoM24pIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoIDMzLjMlIC0gMzBweCk7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC5mZWF0dXJlc19fY29sdW1uIC5mZWF0dXJlLWJsb2NrIHtcbiAgICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAuZmVhdHVyZXNfX2NvbHVtbiAuZmVhdHVyZS1ibG9jayB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnRvcC1mZWF0dXJlcyB7XG4gIHBhZGRpbmctdG9wOiAxMDVweDsgfVxuXG4udG9wLWZlYXR1cmVzX19jb2x1bW4gPiBoMiB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuLnByb2R1Y3QtY2FyZHMge1xuICBiYWNrZ3JvdW5kOiAjMWU0Mzc1O1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDcwcHg7IH1cblxuLnByb2R1Y3QtY2FyZHNfX2NvbHVtbnMge1xuICBtYXgtd2lkdGg6IDY4Ljc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLnByb2R1Y3QtY2FyZHNfX2NvbHVtbiB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIG1heC13aWR0aDogNTAlO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gIG1heC13aWR0aDogNTAlOyB9XG4gIC5wcm9kdWN0LWNhcmRzX19jb2x1bW4ucHJvZHVjdHMtY2FyZHNfX2Zvcm0ge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cbiAgICAucHJvZHVjdC1jYXJkc19fY29sdW1uLnByb2R1Y3RzLWNhcmRzX19mb3JtIC5wcm9kdWN0LWNhcmQge1xuICAgICAgd2lkdGg6IDYxMHB4OyB9XG4gIC5wcm9kdWN0LWNhcmRzX19jb2x1bW4gLnByb2R1Y3QtY2FyZCB7XG4gICAgd2lkdGg6IDQyMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAucHJvZHVjdC1jYXJkc19fY29sdW1uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgICAgIC5wcm9kdWN0LWNhcmRzX19jb2x1bW4ucHJvZHVjdHMtY2FyZHNfX2Zvcm0sIC5wcm9kdWN0LWNhcmRzX19jb2x1bW4ge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgLnByb2R1Y3QtY2FyZHNfX2NvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4OyB9IH1cblxuLnByb2R1Y3QtY2FyZHNfX2hlYWRlciB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4ucHJvZHVjdC1jYXJkc19fdGl0bGUge1xuICBmb250LWZhbWlseTogaXZ5am91cm5hbCxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDM4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5wcm9kdWN0LWNhcmRzX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICBsaW5lLWhlaWdodDogNDBweDsgfSB9XG5cbi5wcm9kdWN0LWNhcmRzX19oZWFkZXItdGFicyB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgLnByb2R1Y3QtY2FyZHNfX2hlYWRlci10YWJzICsgLnByb2R1Y3QtY2FyZHNfX3N1YnRpdGxlOm5vdCg6ZW1wdHkpIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi5wcm9kdWN0LWNhcmRzX19zdWJ0aXRsZSB7XG4gIHdpZHRoOiAzOTBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIC5wcm9kdWN0LWNhcmRzX19zdWJ0aXRsZS5mdWxsLXdpZHRoIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAucHJvZHVjdC1jYXJkc19fc3VidGl0bGUgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4OyB9XG4gIC5wcm9kdWN0LWNhcmRzX19zdWJ0aXRsZSwgLnByb2R1Y3QtY2FyZHNfX3N1YnRpdGxlIHAge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpOyB9XG4gICAgLnByb2R1Y3QtY2FyZHNfX3N1YnRpdGxlIGEsIC5wcm9kdWN0LWNhcmRzX19zdWJ0aXRsZSBwIGEge1xuICAgICAgY29sb3I6ICNhZmQ2ZmY7IH1cblxuLnByb2R1Y3QtY2FyZHNfX2NvbnRlbnQge1xuICBwYWRkaW5nOiAwIDMwcHg7IH1cbiAgLnByb2R1Y3QtY2FyZHNfX2NvbnRlbnQsIC5wcm9kdWN0LWNhcmRzX19jb250ZW50IHAge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpOyB9XG5cbi5zaXRlLWhlYWRlciB7XG4gIGhlaWdodDogMTAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTQzNzU7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyMDsgfVxuXG4uc2l0ZS1oZWFkZXJfX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNjguNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGhlaWdodDogMTAwcHg7IH1cblxuLnNpdGUtaGVhZGVyX19jb2x1bW4ge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXJfX2NvbHVtbiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5zaXRlLWJyYW5kaW5nIC5zaXRlLXRpdGxlIHtcbiAgbWFyZ2luOiAwcHg7IH1cbiAgLnNpdGUtYnJhbmRpbmcgLnNpdGUtdGl0bGUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDExJSk7IH1cbiAgICAuc2l0ZS1icmFuZGluZyAuc2l0ZS10aXRsZSBhIGltZyB7XG4gICAgICB3aWR0aDogMjQwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5zaXRlLWhlYWRlciB7XG4gICAgaGVpZ2h0OiA1NHB4O1xuICAgIHBhZGRpbmc6IDAgMHB4O1xuICAgIHBhZGRpbmctbGVmdDogNXB4OyB9XG4gIC5zaXRlLWhlYWRlcl9fY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDU0cHg7IH1cbiAgLnNpdGUtYnJhbmRpbmcgLnNpdGUtdGl0bGUgYSBpbWcge1xuICAgIHdpZHRoOiAxNjBweDsgfSB9XG5cbi5oZXJvIHtcbiAgYmFja2dyb3VuZDogIzFlNDM3NTtcbiAgcGFkZGluZy10b3A6IDUwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwOyB9XG4gIC5oZXJvLmhlcm8tLWltYWdlICsgKiB7XG4gICAgcGFkZGluZy10b3A6IDEyMHB4OyB9XG5cbi5oZXJvX190aXRsZSB7XG4gIHdpZHRoOiA5MDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgZm9udC1mYW1pbHk6IGl2eWpvdXJuYWwsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAzNnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5oZXJvX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICBsaW5lLWhlaWdodDogNDBweDsgfSB9XG5cbi5oZXJvX19jb250ZW50IHtcbiAgd2lkdGg6IDc4MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBmb250LXNpemU6IDE5cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjM3O1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbi5oZXJvX19hY3Rpb25zIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAuaGVyb19fYWN0aW9ucyAuYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogOXB4O1xuICAgIG1hcmdpbi1yaWdodDogOXB4O1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG4uaGVyb19faW1hZ2Uge1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDQwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMS41JSk7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgd2lkdGg6IDg3MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IC01MHB4OyB9XG4gIC5oZXJvX19pbWFnZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5oZXJvX19pbWFnZSBpbWcge1xuICAgICAgd2lkdGg6IDExNSU7XG4gICAgICBtYXgtd2lkdGg6IDExNSU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTclKTsgfSB9XG5cbi5oaWdobGlnaHRzIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBwYWRkaW5nLXRvcDogNjBweDtcbiAgcGFkZGluZy1ib3R0b206IDYwcHg7IH1cbiAgLmhpZ2hsaWdodHMgLnNlY3Rpb24taWNvbi10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXG4uaGlnaGxpZ2h0c19fY29sdW1uIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMy4xMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMy4xMjVyZW07XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuaGlnaGxpZ2h0c19fY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5oaWdobGlnaHRzX19jb2x1bW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC5oaWdobGlnaHRzX19jb2x1bW4gLnRleHQtaW1hZ2VfX2NvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDBweDsgfSB9XG5cbi5oaWdobGlnaHRzX190YWJzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5oaWdobGlnaHRzX190YWJzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uaGlnaGxpZ2h0c19fY2Fyb3VzZWwge1xuICBtYXJnaW4tdG9wOiA2MHB4OyB9XG4gIC5oaWdobGlnaHRzX19jYXJvdXNlbCAudGV4dC1pbWFnZSB7XG4gICAgcGFkZGluZy10b3A6IDBweDsgfVxuXG4uY29udGVudC1zZWN0aW9uLmxpZ2h0LWdyZXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMiwgMjQwLCAyNTMsIDAuNSk7IH1cblxuLmNvbnRlbnQtc2VjdGlvbi5ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZWZmZjsgfVxuXG4uY29udGVudC1zdHlsZSA+IGgzLCAuY29udGVudC1zdHlsZSA+IGg0LCBmaWVsZHNldCAuY29udGVudC1zdHlsZSA+IGxlZ2VuZCwgLmNvbnRlbnQtc3R5bGUgPiAucG9zdHMtbGlzdF9faGVhZGVyLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLmNvbnRlbnQtc3R5bGUgPiAjb3JkZXJfcmV2aWV3X2hlYWRpbmcsIC5jb250ZW50LXN0eWxlID4gaDUsIC5nZm9ybXMtc2VjdGlvbiAuY29udGVudC1zdHlsZSA+IC5nc2VjdGlvbl90aXRsZSwgLmNvbnRlbnQtc3R5bGUgPiBwLCAuY29udGVudC1zdHlsZSA+IGhyLCAuY29udGVudC1zdHlsZSA+IHVsLCAuY29udGVudC1zdHlsZSA+IG9sIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XG5cbi5jb250ZW50LXN0eWxlID4gaDIgKyAqIHtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuXG4uY29udGVudC1zdHlsZSA+IGgyICsgLndwLWJsb2NrLWltYWdlIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4uY29udGVudC1zdHlsZSA+IC53cC1ibG9jay1pbWFnZSArICoge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi5jb250ZW50LXN0eWxlID4gaDMgKyAqIHtcbiAgbWFyZ2luLXRvcDogMjVweDsgfVxuXG4uY29udGVudC1zdHlsZSA+IGg0ICsgKiwgZmllbGRzZXQgLmNvbnRlbnQtc3R5bGUgPiBsZWdlbmQgKyAqLCAuY29udGVudC1zdHlsZSA+IC5wb3N0cy1saXN0X19oZWFkZXIgKyAqLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLmNvbnRlbnQtc3R5bGUgPiAjb3JkZXJfcmV2aWV3X2hlYWRpbmcgKyAqIHtcbiAgbWFyZ2luLXRvcDogNXB4OyB9XG5cbi5jb250ZW50LXN0eWxlID4gaDQgKyBoNSwgZmllbGRzZXQgLmNvbnRlbnQtc3R5bGUgPiBsZWdlbmQgKyBoNSwgLmNvbnRlbnQtc3R5bGUgPiAucG9zdHMtbGlzdF9faGVhZGVyICsgaDUsIC53b29jb21tZXJjZS1jaGVja291dCAuY29udGVudC1zdHlsZSA+ICNvcmRlcl9yZXZpZXdfaGVhZGluZyArIGg1LCAuZ2Zvcm1zLXNlY3Rpb24gLmNvbnRlbnQtc3R5bGUgPiBoNCArIC5nc2VjdGlvbl90aXRsZSwgZmllbGRzZXQgLmdmb3Jtcy1zZWN0aW9uIC5jb250ZW50LXN0eWxlID4gbGVnZW5kICsgLmdzZWN0aW9uX3RpdGxlLCAuZ2Zvcm1zLXNlY3Rpb24gZmllbGRzZXQgLmNvbnRlbnQtc3R5bGUgPiBsZWdlbmQgKyAuZ3NlY3Rpb25fdGl0bGUsIC5nZm9ybXMtc2VjdGlvbiAuY29udGVudC1zdHlsZSA+IC5wb3N0cy1saXN0X19oZWFkZXIgKyAuZ3NlY3Rpb25fdGl0bGUsIC53b29jb21tZXJjZS1jaGVja291dCAuZ2Zvcm1zLXNlY3Rpb24gLmNvbnRlbnQtc3R5bGUgPiAjb3JkZXJfcmV2aWV3X2hlYWRpbmcgKyAuZ3NlY3Rpb25fdGl0bGUsIC5nZm9ybXMtc2VjdGlvbiAud29vY29tbWVyY2UtY2hlY2tvdXQgLmNvbnRlbnQtc3R5bGUgPiAjb3JkZXJfcmV2aWV3X2hlYWRpbmcgKyAuZ3NlY3Rpb25fdGl0bGUge1xuICBtYXJnaW4tdG9wOiAyNXB4OyB9XG5cbi5jb250ZW50LXN0eWxlID4gaDQgKyB1bCwgZmllbGRzZXQgLmNvbnRlbnQtc3R5bGUgPiBsZWdlbmQgKyB1bCwgLmNvbnRlbnQtc3R5bGUgPiAucG9zdHMtbGlzdF9faGVhZGVyICsgdWwsIC53b29jb21tZXJjZS1jaGVja291dCAuY29udGVudC1zdHlsZSA+ICNvcmRlcl9yZXZpZXdfaGVhZGluZyArIHVsLCAuY29udGVudC1zdHlsZSA+IGg0ICsgb2wsIGZpZWxkc2V0IC5jb250ZW50LXN0eWxlID4gbGVnZW5kICsgb2wsIC5jb250ZW50LXN0eWxlID4gLnBvc3RzLWxpc3RfX2hlYWRlciArIG9sLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLmNvbnRlbnQtc3R5bGUgPiAjb3JkZXJfcmV2aWV3X2hlYWRpbmcgKyBvbCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLmNvbnRlbnQtc3R5bGUgPiBoNSArICosIC5nZm9ybXMtc2VjdGlvbiAuY29udGVudC1zdHlsZSA+IC5nc2VjdGlvbl90aXRsZSArICoge1xuICBtYXJnaW4tdG9wOiAxNXB4OyB9XG5cbi5jb250ZW50LXN0eWxlID4gaDUgKyBwLCAuZ2Zvcm1zLXNlY3Rpb24gLmNvbnRlbnQtc3R5bGUgPiAuZ3NlY3Rpb25fdGl0bGUgKyBwIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4uY29udGVudC1zdHlsZSA+IHAgKyAqIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4uY29udGVudC1zdHlsZSA+IHAgKyBoNCwgZmllbGRzZXQgLmNvbnRlbnQtc3R5bGUgPiBwICsgbGVnZW5kLCAuY29udGVudC1zdHlsZSA+IHAgKyAucG9zdHMtbGlzdF9faGVhZGVyLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLmNvbnRlbnQtc3R5bGUgPiBwICsgI29yZGVyX3Jldmlld19oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMjVweDsgfVxuXG4uY29udGVudC1zdHlsZSA+IHAgKyB1bCwgLmNvbnRlbnQtc3R5bGUgPiBwICsgb2wge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi5jb250ZW50LXN0eWxlID4gaHIge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG4gIC5jb250ZW50LXN0eWxlID4gaHIgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi5jb250ZW50LXN0eWxlID4gdWwsIC5jb250ZW50LXN0eWxlID4gb2wge1xuICBtYXJnaW4tbGVmdDogMjVweDsgfVxuICAuY29udGVudC1zdHlsZSA+IHVsICsgKiwgLmNvbnRlbnQtc3R5bGUgPiBvbCArICoge1xuICAgIG1hcmdpbi10b3A6IDQwcHg7IH1cbiAgLmNvbnRlbnQtc3R5bGUgPiB1bCArIGg0LCBmaWVsZHNldCAuY29udGVudC1zdHlsZSA+IHVsICsgbGVnZW5kLCAuY29udGVudC1zdHlsZSA+IHVsICsgLnBvc3RzLWxpc3RfX2hlYWRlciwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5jb250ZW50LXN0eWxlID4gdWwgKyAjb3JkZXJfcmV2aWV3X2hlYWRpbmcsIC5jb250ZW50LXN0eWxlID4gb2wgKyBoNCwgZmllbGRzZXQgLmNvbnRlbnQtc3R5bGUgPiBvbCArIGxlZ2VuZCwgLmNvbnRlbnQtc3R5bGUgPiBvbCArIC5wb3N0cy1saXN0X19oZWFkZXIsIC53b29jb21tZXJjZS1jaGVja291dCAuY29udGVudC1zdHlsZSA+IG9sICsgI29yZGVyX3Jldmlld19oZWFkaW5nIHtcbiAgICBtYXJnaW4tdG9wOiAyNXB4OyB9XG4gIC5jb250ZW50LXN0eWxlID4gdWwgKyBwLCAuY29udGVudC1zdHlsZSA+IG9sICsgcCB7XG4gICAgbWFyZ2luLXRvcDogMTVweDsgfVxuICAuY29udGVudC1zdHlsZSA+IHVsICsgLndwLWJsb2NrLWltYWdlLCAuY29udGVudC1zdHlsZSA+IG9sICsgLndwLWJsb2NrLWltYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4OyB9XG4gIC5jb250ZW50LXN0eWxlID4gdWwgbGksIC5jb250ZW50LXN0eWxlID4gb2wgbGkge1xuICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzM7IH1cblxuLmNvbnRlbnQtc3R5bGUgPiB1bCB1bCB7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuXG4uY29udGVudC1zdHlsZSA+IHVsLCAuY29udGVudC1zdHlsZSA+IHVsIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY29udGVudC1zdHlsZSA+IHVsIGxpLCAuY29udGVudC1zdHlsZSA+IHVsIHVsIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY29udGVudC1zdHlsZSA+IHVsIGxpOmJlZm9yZSwgLmNvbnRlbnQtc3R5bGUgPiB1bCB1bCBsaTpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAtMTJweDsgfVxuXG4uY29udGVudC1zdHlsZSA+IHAsIC5jb250ZW50LXN0eWxlID4gdWwsIC5jb250ZW50LXN0eWxlID4gb2wge1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpOyB9XG5cbi5yZXNvdXJjZXMge1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4ucmVzb3VyY2VzX19saW5rcyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5yZXNvdXJjZXNfX2xpbmtzIC5yZXNvdXJjZS1saW5rIHtcbiAgICBtYXJnaW46IDAgMjVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgY29sb3I6ICMwMDYyZDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAucmVzb3VyY2VzX19saW5rcyAucmVzb3VyY2UtbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnJlc291cmNlc19fbGlua3Mge1xuICAgICAgd2lkdGg6IDI4MHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAgIC5yZXNvdXJjZXNfX2xpbmtzIC5yZXNvdXJjZS1saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9IH1cblxuLnRlYW0tbWFuYWdlbWVudCB7XG4gIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyNlNWVmZmYrMCxkNWUxZjYrMTAwJjAuNCswLDErMTAwICovXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksIDIzOSwgMjU1LCAwKSAwJSwgcmdiYSgyMTMsIDIyNSwgMjQ2LCAwLjIpIDEwMCUpO1xuICAvKiBGRjMuNi0xNSAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjI5LCAyMzksIDI1NSwgMCkgMCUsIHJnYmEoMjEzLCAyMjUsIDI0NiwgMC4yKSAxMDAlKTtcbiAgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyMjksIDIzOSwgMjU1LCAwKSAwJSwgcmdiYSgyMTMsIDIyNSwgMjQ2LCAwLjIpIDEwMCUpO1xuICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyM2NmU1ZWZmZicsIGVuZENvbG9yc3RyPScjZDVlMWY2JyxHcmFkaWVudFR5cGU9MCApO1xuICAvKiBJRTYtOSAqL1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4xMik7IH1cblxuLnRlYW0tbWFuYWdlbWVudF9fdGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cblxuLnRlYW0tbWFuYWdlbWVudF9faXRlbXMge1xuICBwYWRkaW5nLXRvcDogMTVweDsgfVxuICAudGVhbS1tYW5hZ2VtZW50X19pdGVtcyAudGVhbS1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuLnVzZXItc3RvcmllcyB7XG4gIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyNlNWVmZmYrMCxkNWUxZjYrMTAwJjArMCwwLjIrMTAwICovXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksIDIzOSwgMjU1LCAwKSAwJSwgcmdiYSgyMTMsIDIyNSwgMjQ2LCAwLjIpIDEwMCUpO1xuICAvKiBGRjMuNi0xNSAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjI5LCAyMzksIDI1NSwgMCkgMCUsIHJnYmEoMjEzLCAyMjUsIDI0NiwgMC4yKSAxMDAlKTtcbiAgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyMjksIDIzOSwgMjU1LCAwKSAwJSwgcmdiYSgyMTMsIDIyNSwgMjQ2LCAwLjIpIDEwMCUpO1xuICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyMwMGU1ZWZmZicsIGVuZENvbG9yc3RyPScjMzNkNWUxZjYnLEdyYWRpZW50VHlwZT0wICk7XG4gIC8qIElFNi05ICovXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpOyB9XG5cbi51c2VyLXN0b3JpZXNfX3N0b3JpZXMge1xuICBmb250LXNpemU6IDBweDsgfVxuICAudXNlci1zdG9yaWVzX19zdG9yaWVzIC51c2VyLXN0b3J5IHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiA1NXB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnVzZXItc3Rvcmllc19fc3RvcmllcyAudXNlci1zdG9yeSB7XG4gICAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAgICAgLnVzZXItc3Rvcmllc19fc3RvcmllcyAudXNlci1zdG9yeTpudGgtY2hpbGQoMSksIC51c2VyLXN0b3JpZXNfX3N0b3JpZXMgLnVzZXItc3Rvcnk6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwcHg7IH1cbiAgICAgICAgLnVzZXItc3Rvcmllc19fc3RvcmllcyAudXNlci1zdG9yeTpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDU1cHg7IH1cbiAgICAgICAgLnVzZXItc3Rvcmllc19fc3RvcmllcyAudXNlci1zdG9yeTpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDU1cHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC51c2VyLXN0b3JpZXNfX3N0b3JpZXMgLnVzZXItc3Rvcnk6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsgfVxuICAgICAgLnVzZXItc3Rvcmllc19fc3RvcmllcyAudXNlci1zdG9yeTpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC51c2VyLXN0b3JpZXNfX3N0b3JpZXMgLnVzZXItc3Rvcnkge1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAudXNlci1zdG9yaWVzX19zdG9yaWVzIC51c2VyLXN0b3J5Om50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMHB4OyB9IH1cblxuLmNhbGwtdG8tYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZWZmZjsgfVxuICAuY2FsbC10by1hY3Rpb24gLnNlY3Rpb24tdGl0bGVfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgLmNhbGwtdG8tYWN0aW9uIC5zZWN0aW9uLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7IH1cblxuLmNhbGwtdG8tYWN0aW9uX190ZXh0IHtcbiAgZm9udC1zaXplOiAxOXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40MjtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uY2FsbC10by1hY3Rpb25fX2FjdGlvbnMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgLmNhbGwtdG8tYWN0aW9uX19hY3Rpb25zIC5idXR0b24ge1xuICAgIHBhZGRpbmctbGVmdDogMjVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG4ubG9naW4tc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTQzNzU7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7IH1cbiAgLmxvZ2luLXNlY3Rpb24gKyAqIHtcbiAgICBwYWRkaW5nLXRvcDogOTBweDsgfVxuXG4ubG9naW4tc2VjdGlvbl9fY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjksIDMxLCAzMywgMC4xNSksIDAgM3B4IDdweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKSwgMCAwIDAgMXB4IHJnYmEoMjksIDMxLCAzMywgMC4xNSksIDAgM3B4IDdweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZzogMjhweCAzMHB4IDIxcHggMzBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3R0b206IC00NXB4OyB9XG5cbi5sb2dpbi1zZWN0aW9uX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjEzO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcbiAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuXG4ubG9naW4tc2VjdGlvbl9fZm9ybSAuaW5wdXQtZmllbGQsIC5sb2dpbi1zZWN0aW9uX19mb3JtIC5mb3JtLXJvdywgLmxvZ2luLXNlY3Rpb25fX2Zvcm0gLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2lucHV0X2NvbXBsZXggPiAqLCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC5sb2dpbi1zZWN0aW9uX19mb3JtIC5naW5wdXRfY29tcGxleCA+ICosIC5sb2dpbi1zZWN0aW9uX19mb3JtIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAubG9naW4tc2VjdGlvbl9fZm9ybSAuZ2ZpZWxkLCAubG9naW4tc2VjdGlvbl9fZm9ybSAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyLCAuZ2Zvcm1fd3JhcHBlciAubG9naW4tc2VjdGlvbl9fZm9ybSAuZ2Zvcm1fZm9vdGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4ubG9naW4tc2VjdGlvbl9fYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5sb2dpbi1zZWN0aW9uX19hY3Rpb25zIC5idXR0b24ge1xuICAgIHBhZGRpbmctbGVmdDogMzVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNXB4OyB9XG5cbi5sb2dpbi1zZWN0aW9uX19mb3Jnb3QgYSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGNvbG9yOiAjMDA2MmQxOyB9XG5cbi5sb2dpbi1zZWN0aW9uX19wcmlvci1hY2NvdW50IHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7IH1cblxuLmYtaXRlbS1wcmV2aWV3ID4gLmxvZ2luLXNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiA0NXB4OyB9XG5cbi5sb2dpbi1jb250ZW50LXNlY3Rpb24ge1xuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZTVlZmZmKzAsZDVlMWY2KzEwMCYwLjQrMCwxKzEwMCAqL1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjI5LCAyMzksIDI1NSwgMC40KSAwJSwgI2Q1ZTFmNiAxMDAlKTtcbiAgLyogRkYzLjYtMTUgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDIyOSwgMjM5LCAyNTUsIDAuNCkgMCUsICNkNWUxZjYgMTAwJSk7XG4gIC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjI5LCAyMzksIDI1NSwgMC40KSAwJSwgI2Q1ZTFmNiAxMDAlKTtcbiAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjNjZlNWVmZmYnLCBlbmRDb2xvcnN0cj0nI2Q1ZTFmNicsR3JhZGllbnRUeXBlPTAgKTtcbiAgLyogSUU2LTkgKi9cbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMTIpO1xuICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7IH1cblxuLmxvZ2luLWNvbnRlbnQtc2VjdGlvbl9fdGltZXN0YW1wcyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQjlDMENBO1xuICBtYXJnaW4tYm90dG9tOiAyMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjJweDsgfVxuICAubG9naW4tY29udGVudC1zZWN0aW9uX190aW1lc3RhbXBzIHRhYmxlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDBweDsgfVxuICAgIC5sb2dpbi1jb250ZW50LXNlY3Rpb25fX3RpbWVzdGFtcHMgdGFibGUgdGJvZHkge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICAgICAgLmxvZ2luLWNvbnRlbnQtc2VjdGlvbl9fdGltZXN0YW1wcyB0YWJsZSB0Ym9keSB0ciB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zMztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7IH1cblxuLmxvZ2luLWNvbnRlbnQtc2VjdGlvbl9fY29udGVudCB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuLmxvZ2luLWNvbnRlbnQtc2VjdGlvbl9fY29weXJpZ2h0LCAubG9naW4tY29udGVudC1zZWN0aW9uX19jb3B5cmlnaHQgcCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS42MjtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTsgfVxuXG4uc2l0ZS1mb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzgzZjQ5O1xuICBwYWRkaW5nLXRvcDogNDVweDtcbiAgcGFkZGluZy1ib3R0b206IDYwcHg7IH1cbiAgLnNpdGUtZm9vdGVyIC5mb290ZXItbWVudSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNnB4OyB9XG5cbi5zaXRlLWZvb3Rlcl9fY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA2OC43NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuXG4uc2l0ZS1mb290ZXJfX2NvbHVtbiB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2l0ZS1mb290ZXJfX2NvbHVtbiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5zaXRlLWZvb3Rlcl9fYnJhbmRpbmcge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gIC5zaXRlLWZvb3Rlcl9fYnJhbmRpbmcgYSBpbWcge1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLnNpdGUtZm9vdGVyX19jb3B5cmlnaHQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBtYXJnaW4tdG9wOiAzNXB4O1xuICBwYWRkaW5nLXRvcDogMjJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuc2l0ZS1mb290ZXJfX2NvcHlyaWdodCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH0gfVxuXG4uc2l0ZS1mb290ZXJfX2NvcHlyaWdodC10ZXh0IHtcbiAgb3BhY2l0eTogMC42O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5zaXRlLWZvb3Rlcl9fY29weXJpZ2h0LW1lbnUge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgICAuc2l0ZS1mb290ZXJfX2NvcHlyaWdodC1tZW51IC5tZW51IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5zaXRlLWZvb3Rlcl9fY29weXJpZ2h0LW1lbnUgLm1lbnUtaXRlbSBhIHtcbiAgcGFkZGluZzogMHB4IDE0cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLnNpdGUtZm9vdGVyX19jb3B5cmlnaHQtbWVudSAubWVudS1pdGVtIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuc2l0ZS1mb290ZXJfX2NvcHlyaWdodC1tZW51IC5tZW51LWl0ZW0gYSB7XG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgIHBhZGRpbmctbGVmdDogMHB4OyB9IH1cblxuLnN0ZXAtY29sdW1uc19fY29sdW1ucyB7XG4gIG1heC13aWR0aDogNjguNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1hcmdpbjogMCAtOHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuc3RlcC1jb2x1bW5zX19jb2x1bW5zIHtcbiAgICAgIG1hcmdpbi10b3A6IC0yMHB4OyB9IH1cblxuLnN0ZXAtY29sdW1uc19fY29sdW1ucy1jb2x1bW4ge1xuICBmbGV4OiAwIDAgMjAlO1xuICBtYXgtd2lkdGg6IDIwJTtcbiAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5zdGVwLWNvbHVtbnNfX2NvbHVtbnMtY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnN0ZXAtY29sdW1uc19fY29sdW1ucy1jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMjBweDsgfSB9XG5cbi5zb2Z0d2FyZS10aWVycyB7XG4gIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyNlNWVmZmYrMCxkNWUxZjYrMTAwJjAuNCswLDErMTAwICovXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksIDIzOSwgMjU1LCAwKSAwJSwgcmdiYSgyMTMsIDIyNSwgMjQ2LCAwLjIpIDEwMCUpO1xuICAvKiBGRjMuNi0xNSAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjI5LCAyMzksIDI1NSwgMCkgMCUsIHJnYmEoMjEzLCAyMjUsIDI0NiwgMC4yKSAxMDAlKTtcbiAgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyMjksIDIzOSwgMjU1LCAwKSAwJSwgcmdiYSgyMTMsIDIyNSwgMjQ2LCAwLjIpIDEwMCUpO1xuICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyM2NmU1ZWZmZicsIGVuZENvbG9yc3RyPScjZDVlMWY2JyxHcmFkaWVudFR5cGU9MCApO1xuICAvKiBJRTYtOSAqL1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4xMik7IH1cblxuLnNvZnR3YXJlLXRpZXJzX19pdGVtcyAuc29mdHdhcmUtdGllciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkRDMkM5O1xuICBwYWRkaW5nOiA1MHB4IDA7IH1cbiAgLnNvZnR3YXJlLXRpZXJzX19pdGVtcyAuc29mdHdhcmUtdGllcjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDBweDsgfVxuICAuc29mdHdhcmUtdGllcnNfX2l0ZW1zIC5zb2Z0d2FyZS10aWVyOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4uY29yZS1oaWdobGlnaHRzIHtcbiAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHA6Ly9jb2xvcnppbGxhLmNvbS9ncmFkaWVudC1lZGl0b3IvI2U1ZWZmZiswLGQ1ZTFmNisxMDAmMC40KzAsMSsxMDAgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDIyOSwgMjM5LCAyNTUsIDApIDAlLCByZ2JhKDIxMywgMjI1LCAyNDYsIDAuMikgMTAwJSk7XG4gIC8qIEZGMy42LTE1ICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksIDIzOSwgMjU1LCAwKSAwJSwgcmdiYSgyMTMsIDIyNSwgMjQ2LCAwLjIpIDEwMCUpO1xuICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDIyOSwgMjM5LCAyNTUsIDApIDAlLCByZ2JhKDIxMywgMjI1LCAyNDYsIDAuMikgMTAwJSk7XG4gIC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzY2ZTVlZmZmJywgZW5kQ29sb3JzdHI9JyNkNWUxZjYnLEdyYWRpZW50VHlwZT0wICk7XG4gIC8qIElFNi05ICovXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjEyKTsgfVxuXG4uY29yZS1oaWdobGlnaHRzX19pdGVtcyB7XG4gIG1heC13aWR0aDogNjguNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7IH1cbiAgLmNvcmUtaGlnaGxpZ2h0c19faXRlbXMgLmNvcmUtaGlnaGxpZ2h0cy1pdGVtIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNDA2MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjQwNjI1cmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIG1hcmdpbi10b3A6IDM2cHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuY29yZS1oaWdobGlnaHRzX19pdGVtcyAuY29yZS1oaWdobGlnaHRzLWl0ZW06bnRoLWNoaWxkKDEpLCAuY29yZS1oaWdobGlnaHRzX19pdGVtcyAuY29yZS1oaWdobGlnaHRzLWl0ZW06bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5jb3JlLWhpZ2hsaWdodHNfX2l0ZW1zIC5jb3JlLWhpZ2hsaWdodHMtaXRlbSB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICAgIC5jb3JlLWhpZ2hsaWdodHNfX2l0ZW1zIC5jb3JlLWhpZ2hsaWdodHMtaXRlbTpudGgtY2hpbGQoMSkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDBweDsgfSB9XG5cbi5wb3N0cy1saXN0IHtcbiAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHA6Ly9jb2xvcnppbGxhLmNvbS9ncmFkaWVudC1lZGl0b3IvI2U1ZWZmZiswLGQ1ZTFmNisxMDAmMC40KzAsMSsxMDAgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDIyOSwgMjM5LCAyNTUsIDApIDAlLCByZ2JhKDIxMywgMjI1LCAyNDYsIDAuMikgMTAwJSk7XG4gIC8qIEZGMy42LTE1ICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksIDIzOSwgMjU1LCAwKSAwJSwgcmdiYSgyMTMsIDIyNSwgMjQ2LCAwLjIpIDEwMCUpO1xuICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDIyOSwgMjM5LCAyNTUsIDApIDAlLCByZ2JhKDIxMywgMjI1LCAyNDYsIDAuMikgMTAwJSk7XG4gIC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzY2ZTVlZmZmJywgZW5kQ29sb3JzdHI9JyNkNWUxZjYnLEdyYWRpZW50VHlwZT0wICk7XG4gIC8qIElFNi05ICovXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjEyKTsgfVxuXG4ucG9zdHMtbGlzdF9faGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4ucG9zdHMtbGlzdF9fcG9zdHMgLnBvc3QtaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkZDNENBOyB9XG4gIC5wb3N0cy1saXN0X19wb3N0cyAucG9zdC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0JGQzRDQTsgfVxuXG4ucG9zdHMtbGlzdF9fcGFnaW5hdGlvbiB7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cblxuLmJlbmVmaXRzIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWIzMzU0OyB9XG4gIC5iZW5lZml0cyAuc2VjdGlvbi10aXRsZV9fdGl0bGUge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAuYmVuZWZpdHMgLmZlYXR1cmUtYmxvY2tfX3RpdGxlIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgLmJlbmVmaXRzIC5mZWF0dXJlLWJsb2NrX19jb250ZW50LCAuYmVuZWZpdHMgLmZlYXR1cmUtYmxvY2tfX2NvbnRlbnQgcCB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7IH1cbiAgICAuYmVuZWZpdHMgLmZlYXR1cmUtYmxvY2tfX2NvbnRlbnQgYSwgLmJlbmVmaXRzIC5mZWF0dXJlLWJsb2NrX19jb250ZW50IGE6aG92ZXIsIC5iZW5lZml0cyAuZmVhdHVyZS1ibG9ja19fY29udGVudCBwIGEsIC5iZW5lZml0cyAuZmVhdHVyZS1ibG9ja19fY29udGVudCBwIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNhZmQ2ZmY7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuYmVuZWZpdHNfX2l0ZW1zIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5iZW5lZml0c19faXRlbXMge1xuICAgIGZvbnQtc2l6ZTogMHB4OyB9IH1cblxuLmJlbmVmaXRzX19pdGVtcyAuZmVhdHVyZS1ibG9jayB7XG4gIHBhZGRpbmc6IDAgMTVweDsgfVxuICAuYmVuZWZpdHNfX2l0ZW1zIC5mZWF0dXJlLWJsb2NrIC5mZWF0dXJlLWJsb2NrX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxOXB4OyB9XG4gICAgLmJlbmVmaXRzX19pdGVtcyAuZmVhdHVyZS1ibG9jayAuZmVhdHVyZS1ibG9ja19fdGl0bGU6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5iZW5lZml0c19faXRlbXMgLmZlYXR1cmUtYmxvY2sge1xuICAgICAgZmxleDogMTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAuYmVuZWZpdHNfX2l0ZW1zIC5mZWF0dXJlLWJsb2NrIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiA0MHB4OyB9XG4gICAgICAuYmVuZWZpdHNfX2l0ZW1zIC5mZWF0dXJlLWJsb2NrOm50aC1jaGlsZCgxKSwgLmJlbmVmaXRzX19pdGVtcyAuZmVhdHVyZS1ibG9jazpudGgtY2hpbGQoMikge1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAuYmVuZWZpdHNfX2l0ZW1zIC5mZWF0dXJlLWJsb2NrIHtcbiAgICAgIHBhZGRpbmc6IDAgMHB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiA0MHB4OyB9XG4gICAgICAuYmVuZWZpdHNfX2l0ZW1zIC5mZWF0dXJlLWJsb2NrOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweDsgfSB9XG5cbi5ib2FyZC1pdGVtc19fY2F0ZWdvcnkge1xuICBtYXJnaW4tdG9wOiAzNXB4OyB9XG4gIC5ib2FyZC1pdGVtc19fY2F0ZWdvcnk6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDBweDsgfVxuXG4uYm9hcmQtaXRlbXNfX2NhdGVnb3J5LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogIzUwOTRlMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogMjJweDsgfVxuXG4uYm9hcmQtaXRlbXNfX2l0ZW1zIC5ib2FyZC1pdGVtIHtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuICAuYm9hcmQtaXRlbXNfX2l0ZW1zIC5ib2FyZC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwcHg7IH1cblxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5jb250ZW50LWFyZWEge1xuICBtYXgtd2lkdGg6IDU5MHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG5cbi53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlZWVmZjtcbiAgcGFkZGluZzogMTFweCAxMnB4O1xuICBtYXJnaW4tdG9wOiAyNXB4OyB9XG5cbi53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtcHJpdmFjeS1wb2xpY3ktdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcbiAgbWFyZ2luLXRvcDogMTVweDsgfVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLXRlcm1zLWFuZC1jb25kaXRpb25zLXdyYXBwZXIgLmZvcm0tcm93LCAud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLXRlcm1zLWFuZC1jb25kaXRpb25zLXdyYXBwZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2lucHV0X2NvbXBsZXggPiAqLCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtdGVybXMtYW5kLWNvbmRpdGlvbnMtd3JhcHBlciAuZ2lucHV0X2NvbXBsZXggPiAqLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLXRlcm1zLWFuZC1jb25kaXRpb25zLXdyYXBwZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtdGVybXMtYW5kLWNvbmRpdGlvbnMtd3JhcHBlciAuZ2ZpZWxkLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLXRlcm1zLWFuZC1jb25kaXRpb25zLXdyYXBwZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2Zvb3RlciwgLmdmb3JtX3dyYXBwZXIgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS10ZXJtcy1hbmQtY29uZGl0aW9ucy13cmFwcGVyIC5nZm9ybV9mb290ZXIge1xuICBwYWRkaW5nLWxlZnQ6IDBweDsgfVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tbG9naW4ge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDMwcHg7IH1cbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWxvZ2luID4gcDpmaXJzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDcwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24ge1xuICBib3JkZXItcmFkaXVzOiAwcHggMHB4IDZweCA2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZWVlZmY7XG4gIHBhZGRpbmc6IDExcHggMTJweDtcbiAgbWFyZ2luLXRvcDogLTdweDtcbiAgZm9udC1zaXplOiAwcHg7IH1cbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiBidXR0b24sIC53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24gcCB7XG4gICAgbWFyZ2luOiAwcHg7IH1cbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiBwIHtcbiAgICBmb250LXNpemU6IDE1cHg7IH1cbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiAuZm9ybS1yb3ctZmlyc3Qge1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDsgfVxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIGJ1dHRvbiB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4wOCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiBidXR0b246Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4wOCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiBidXR0b246aG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4wOCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5MCwgMjAzLCAyMjQsIDAuMik7XG4gICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTsgfVxuICAgIC53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24gYnV0dG9uOmFjdGl2ZSwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiBidXR0b24uYWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMDgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOTAsIDIwMywgMjI0LCAwLjUpO1xuICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7IH1cbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIGJ1dHRvbjpkaXNhYmxlZCwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiBidXR0b246ZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4wOCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgI2N1c3RvbWVyX2RldGFpbHMge1xuICBtYXJnaW4tYm90dG9tOiA1MHB4OyB9XG5cbi53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtY2hlY2tvdXQge1xuICBtYXJnaW4tdG9wOiA0MHB4OyB9XG5cbi53b29jb21tZXJjZS1jaGVja291dCAjY2FyZF9pbmZvX2hlYWRpbmcge1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNHB4OyB9XG5cbi53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCBmaWVsZHNldCB7XG4gIGZvbnQtc2l6ZTogMHB4OyB9XG5cbi53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAucGxhY2Utb3JkZXIge1xuICBwYWRkaW5nOiAwcHg7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5wbGFjZS1vcmRlciBidXR0b24ge1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC40KSwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgaGVpZ2h0OiA0MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBwYWRkaW5nOiAwcHggMTVweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAucGxhY2Utb3JkZXIgYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC40KSwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU4YWZlIDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5wbGFjZS1vcmRlciBidXR0b246aG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogMCAzcHggNHB4IDAgcmdiYSgxNywgMTksIDIxLCAwLjMpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNThhZmUgO1xuICAgICAgdG9wOiAwcHg7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAucGxhY2Utb3JkZXIgYnV0dG9uOmFjdGl2ZSwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5wbGFjZS1vcmRlciBidXR0b24uYWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMHB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMiksIGluc2V0IDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2MmQxIDtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgLnBsYWNlLW9yZGVyIGJ1dHRvbjpkaXNhYmxlZCwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5wbGFjZS1vcmRlciBidXR0b246ZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSA7IH1cblxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDBweDsgfVxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgLndjX3BheW1lbnRfbWV0aG9kcyA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQgPiBsYWJlbCwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5nZm9ybXMtc2VjdGlvbi5ncmF5IC53Y19wYXltZW50X21ldGhvZHMgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkID4gLmdzZWN0aW9uX3RpdGxlLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAud29vY29tbWVyY2UtY2hlY2tvdXQgLndjX3BheW1lbnRfbWV0aG9kcyA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQgPiAuZ3NlY3Rpb25fdGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMgLndjX3BheW1lbnRfbWV0aG9kID4gbGFiZWwsIC53b29jb21tZXJjZS1jaGVja291dCAud2NfcGF5bWVudF9tZXRob2RzIC5nZm9ybXMtc2VjdGlvbi5ncmF5IC53Y19wYXltZW50X21ldGhvZCA+IC5nc2VjdGlvbl90aXRsZSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMgLndjX3BheW1lbnRfbWV0aG9kID4gLmdzZWN0aW9uX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMgLndjX3BheW1lbnRfbWV0aG9kID4gbGFiZWwgaW1nLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLndjX3BheW1lbnRfbWV0aG9kcyAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAud2NfcGF5bWVudF9tZXRob2QgPiAuZ3NlY3Rpb25fdGl0bGUgaW1nLCAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAud29vY29tbWVyY2UtY2hlY2tvdXQgLndjX3BheW1lbnRfbWV0aG9kcyAud2NfcGF5bWVudF9tZXRob2QgPiAuZ3NlY3Rpb25fdGl0bGUgaW1nLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLndjX3BheW1lbnRfbWV0aG9kcyAud2NfcGF5bWVudF9tZXRob2QgPiBsYWJlbCBhLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLndjX3BheW1lbnRfbWV0aG9kcyAuZ2Zvcm1zLXNlY3Rpb24uZ3JheSAud2NfcGF5bWVudF9tZXRob2QgPiAuZ3NlY3Rpb25fdGl0bGUgYSwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMgLndjX3BheW1lbnRfbWV0aG9kID4gLmdzZWN0aW9uX3RpdGxlIGEge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC53b29jb21tZXJjZS1jaGVja291dCAud2NfcGF5bWVudF9tZXRob2RzIC53Y19wYXltZW50X21ldGhvZCA+IGxhYmVsICsgLnBheW1lbnRfbWV0aG9kX3BheXBhbCwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLndjX3BheW1lbnRfbWV0aG9kID4gLmdzZWN0aW9uX3RpdGxlICsgLnBheW1lbnRfbWV0aG9kX3BheXBhbCwgLmdmb3Jtcy1zZWN0aW9uLmdyYXkgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMgLndjX3BheW1lbnRfbWV0aG9kID4gLmdzZWN0aW9uX3RpdGxlICsgLnBheW1lbnRfbWV0aG9kX3BheXBhbCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC53b29jb21tZXJjZS1jaGVja291dCAud2NfcGF5bWVudF9tZXRob2RzIC53Y19wYXltZW50X21ldGhvZCAjc3RyaXBlLXBheW1lbnQtZGF0YSA+IHAge1xuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMgLndjX3BheW1lbnRfbWV0aG9kICNzdHJpcGUtcGF5bWVudC1kYXRhID4gcCwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Y19wYXltZW50X21ldGhvZHMgLndjX3BheW1lbnRfbWV0aG9kICNzdHJpcGUtcGF5bWVudC1kYXRhID4gcCAqIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgLndjX3BheW1lbnRfbWV0aG9kcyAud2NfcGF5bWVudF9tZXRob2QgLndjLWNyZWRpdC1jYXJkLWZvcm0ge1xuICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgIG1hcmdpbi1yaWdodDogLThweDsgfVxuXG4uYm90dG9tLXdvb2NvbW1lcmNlLWZvcm0tY291cG9uX19jZWxsIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4uYm90dG9tLXdvb2NvbW1lcmNlLWZvcm0tY291cG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDsgfVxuICAuYm90dG9tLXdvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5ib3R0b20td29vY29tbWVyY2UtZm9ybS1jb3Vwb25fX2Zvcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5ib3R0b20td29vY29tbWVyY2UtZm9ybS1jb3Vwb24gLmJvdHRvbS13b29jb21tZXJjZS1mb3JtLWNvdXBvbl9fZm9ybSBidXR0b24ge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4wOCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAgIC5ib3R0b20td29vY29tbWVyY2UtZm9ybS1jb3Vwb24gLmJvdHRvbS13b29jb21tZXJjZS1mb3JtLWNvdXBvbl9fZm9ybSBidXR0b246Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjMpLCBpbnNldCAwIC0xcHggMXB4IDAgcmdiYSgxNywgMTksIDIxLCAwLjA4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG4gICAgICAuYm90dG9tLXdvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5ib3R0b20td29vY29tbWVyY2UtZm9ybS1jb3Vwb25fX2Zvcm0gYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4wOCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTkwLCAyMDMsIDIyNCwgMC4yKTtcbiAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7IH1cbiAgICAgIC5ib3R0b20td29vY29tbWVyY2UtZm9ybS1jb3Vwb24gLmJvdHRvbS13b29jb21tZXJjZS1mb3JtLWNvdXBvbl9fZm9ybSBidXR0b246YWN0aXZlLCAuYm90dG9tLXdvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5ib3R0b20td29vY29tbWVyY2UtZm9ybS1jb3Vwb25fX2Zvcm0gYnV0dG9uLmFjdGl2ZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMDgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5MCwgMjAzLCAyMjQsIDAuNSk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpOyB9XG4gICAgICAuYm90dG9tLXdvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5ib3R0b20td29vY29tbWVyY2UtZm9ybS1jb3Vwb25fX2Zvcm0gYnV0dG9uOmRpc2FibGVkLCAuYm90dG9tLXdvb2NvbW1lcmNlLWZvcm0tY291cG9uIC5ib3R0b20td29vY29tbWVyY2UtZm9ybS1jb3Vwb25fX2Zvcm0gYnV0dG9uOmRpc2FibGVkOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4wOCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJvdHRvbS13b29jb21tZXJjZS1mb3JtLWNvdXBvbiAuYm90dG9tLXdvb2NvbW1lcmNlLWZvcm0tY291cG9uX19mb3JtIGlucHV0IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDBweDsgfVxuICAgIC5ib3R0b20td29vY29tbWVyY2UtZm9ybS1jb3Vwb24gLmJvdHRvbS13b29jb21tZXJjZS1mb3JtLWNvdXBvbl9fZm9ybSAuZm9ybS1yb3ctZmlyc3Qge1xuICAgICAgcGFkZGluZzogMHB4OyB9XG5cbi53b29jb21tZXJjZS1Ob3RpY2VHcm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2YxZjE7XG4gIGJvcmRlci1yYWRpdXM6IDZweDsgfVxuXG51bC53b29jb21tZXJjZS1lcnJvciB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgY29sb3I6ICNkYjM3Mzc7IH1cblxuLmZvcm0tcm93LCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC5naW5wdXRfY29tcGxleCA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdmaWVsZCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2Zvb3RlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLmZvcm0tcm93LWxhc3QsIC5mb3JtLXJvdy1maXJzdCwgLmZvcm0tcm93LWhhbGYsIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdpbnB1dF9jb21wbGV4ID4gKi5naW5wdXRfbGVmdCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2lucHV0X2NvbXBsZXggPiAqLmdpbnB1dF9yaWdodCwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmhhbGYge1xuICB3aWR0aDogNTAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5mb3JtLXJvdy1sYXN0LCAuZm9ybS1yb3ctZmlyc3QsIC5mb3JtLXJvdy1oYWxmLCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC5naW5wdXRfY29tcGxleCA+ICouZ2lucHV0X2xlZnQsIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdpbnB1dF9jb21wbGV4ID4gKi5naW5wdXRfcmlnaHQsIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdmaWVsZC5oYWxmIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmZvcm0tcm93LWxvbmcsIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdmaWVsZC5sb25nIHtcbiAgd2lkdGg6IDcwJTsgfVxuXG4uZm9ybS1yb3ctc2hvcnQsIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdmaWVsZC5zaG9ydCB7XG4gIHdpZHRoOiAzMCU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZm9ybS1yb3ctcXVhcnRlciwgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLnF1YXJ0ZXIge1xuICAgIHdpZHRoOiAyNSU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5mb3JtLXJvdy1xdWFydGVyLCAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC5nZmllbGQucXVhcnRlciB7XG4gICAgd2lkdGg6IDUwJTsgfSB9XG5cbi53b29jb21tZXJjZS1maWVsZHMtc2VjdGlvbiBoNCwgLndvb2NvbW1lcmNlLWZpZWxkcy1zZWN0aW9uIGZpZWxkc2V0IGxlZ2VuZCwgZmllbGRzZXQgLndvb2NvbW1lcmNlLWZpZWxkcy1zZWN0aW9uIGxlZ2VuZCwgLndvb2NvbW1lcmNlLWZpZWxkcy1zZWN0aW9uIC5wb3N0cy1saXN0X19oZWFkZXIsIC53b29jb21tZXJjZS1maWVsZHMtc2VjdGlvbiAud29vY29tbWVyY2UtY2hlY2tvdXQgI29yZGVyX3Jldmlld19oZWFkaW5nLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLWZpZWxkcy1zZWN0aW9uICNvcmRlcl9yZXZpZXdfaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDE0cHg7IH1cblxuLndvb2NvbW1lcmNlLWZpZWxkcy1zZWN0aW9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXRvcDogNTBweDsgfVxuXG4ud29vY29tbWVyY2UtZmllbGRzLXdyYXBwZXIge1xuICBtYXJnaW4tbGVmdDogLTRweDtcbiAgbWFyZ2luLXJpZ2h0OiAtOHB4OyB9XG4gIC53b29jb21tZXJjZS1maWVsZHMtd3JhcHBlciAuZm9ybS1yb3csIC53b29jb21tZXJjZS1maWVsZHMtd3JhcHBlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC5naW5wdXRfY29tcGxleCA+ICosIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLndvb2NvbW1lcmNlLWZpZWxkcy13cmFwcGVyIC5naW5wdXRfY29tcGxleCA+ICosIC53b29jb21tZXJjZS1maWVsZHMtd3JhcHBlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIC5nZmllbGQsIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLndvb2NvbW1lcmNlLWZpZWxkcy13cmFwcGVyIC5nZmllbGQsIC53b29jb21tZXJjZS1maWVsZHMtd3JhcHBlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyLCAuZ2Zvcm1fd3JhcHBlciAud29vY29tbWVyY2UtZmllbGRzLXdyYXBwZXIgLmdmb3JtX2Zvb3RlciB7XG4gICAgbWFyZ2luLWxlZnQ6IC00cHg7IH1cblxuLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIHtcbiAgbWF4LXdpZHRoOiA2OC43NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuXG4ud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LXNpZGViYXIge1xuICBmbGV4OiAwIDAgMjUlO1xuICBtYXgtd2lkdGg6IDI1JTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMjUlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1zaWRlYmFyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcbiAgZmxleDogMCAwIDc1JTtcbiAgbWF4LXdpZHRoOiA3NSU7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDc1JTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtY29udGVudCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LXNpZGViYXIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDMwcHg7IH0gfVxuXG4ud29vY29tbWVyY2UtYWNjb3VudCAqW25hbWU9c2F2ZV9hZGRyZXNzXSB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC40KSwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNThhZmUgO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBsaW5lLWhlaWdodDogNDFweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nOiAwcHggMTVweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gIC53b29jb21tZXJjZS1hY2NvdW50ICpbbmFtZT1zYXZlX2FkZHJlc3NdOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuNCksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNThhZmUgO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC53b29jb21tZXJjZS1hY2NvdW50ICpbbmFtZT1zYXZlX2FkZHJlc3NdOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNThhZmUgO1xuICAgIHRvcDogMHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC53b29jb21tZXJjZS1hY2NvdW50ICpbbmFtZT1zYXZlX2FkZHJlc3NdOmFjdGl2ZSwgLndvb2NvbW1lcmNlLWFjY291bnQgKltuYW1lPXNhdmVfYWRkcmVzc10uYWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwIDBweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpLCBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDYyZDEgO1xuICAgIHRvcDogMXB4O1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC53b29jb21tZXJjZS1hY2NvdW50ICpbbmFtZT1zYXZlX2FkZHJlc3NdOmRpc2FibGVkLCAud29vY29tbWVyY2UtYWNjb3VudCAqW25hbWU9c2F2ZV9hZGRyZXNzXTpkaXNhYmxlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSA7IH1cblxuLndvb2NvbW1lcmNlLWFjY291bnQgLmVudHJ5LXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IGl2eWpvdXJuYWwsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAzN3B4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLndvb2NvbW1lcmNlLWFjY291bnQgLmVudHJ5LXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OyB9IH1cblxuLndvb2NvbW1lcmNlLWFjY291bnQgLmVudHJ5LWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC53b29jb21tZXJjZS1hY2NvdW50IC5zaXRlLXNpZGViYXIge1xuICAgIHBhZGRpbmc6IDBweDsgfVxuICAud29vY29tbWVyY2UtYWNjb3VudCAubW9iaWxlLWRyb3Bkb3duIHtcbiAgICBtYXJnaW46IDAgLTE2cHg7IH1cbiAgLndvb2NvbW1lcmNlLWFjY291bnQgLnNpdGUtY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6IDBweDsgfVxuICAud29vY29tbWVyY2UtYWNjb3VudCAuc2l0ZS1tYWluIHtcbiAgICBwYWRkaW5nOiAwcHg7IH0gfVxuXG4ud29vY29tbWVyY2UtRWRpdEFjY291bnRGb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF0ud29vY29tbWVyY2UtQnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgcmdiYSgxNywgMTksIDIxLCAwLjQpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBoZWlnaHQ6IDQycHg7XG4gIGxpbmUtaGVpZ2h0OiA0MXB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDBweCAxNXB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLndvb2NvbW1lcmNlLUVkaXRBY2NvdW50Rm9ybSBidXR0b25bdHlwZT1zdWJtaXRdLndvb2NvbW1lcmNlLUJ1dHRvbjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgcmdiYSgxNywgMTksIDIxLCAwLjQpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU4YWZlIDtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAud29vY29tbWVyY2UtRWRpdEFjY291bnRGb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF0ud29vY29tbWVyY2UtQnV0dG9uOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNThhZmUgO1xuICAgIHRvcDogMHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC53b29jb21tZXJjZS1FZGl0QWNjb3VudEZvcm0gYnV0dG9uW3R5cGU9c3VibWl0XS53b29jb21tZXJjZS1CdXR0b246YWN0aXZlLCAud29vY29tbWVyY2UtRWRpdEFjY291bnRGb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF0ud29vY29tbWVyY2UtQnV0dG9uLmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogMCAwcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2MmQxIDtcbiAgICB0b3A6IDFweDtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAud29vY29tbWVyY2UtRWRpdEFjY291bnRGb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF0ud29vY29tbWVyY2UtQnV0dG9uOmRpc2FibGVkLCAud29vY29tbWVyY2UtRWRpdEFjY291bnRGb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF0ud29vY29tbWVyY2UtQnV0dG9uOmRpc2FibGVkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU4YWZlIDsgfVxuXG5ib2R5Om5vdCgubG9nZ2VkLWluKS53b29jb21tZXJjZS1hY2NvdW50IC5jb250ZW50LWFyZWEge1xuICBtYXgtd2lkdGg6IDU5MHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG5cbi53b29jb21tZXJjZS1mb3JtLWxvZ2luIHtcbiAgd2lkdGg6IDM1MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC53b29jb21tZXJjZS1mb3JtLWxvZ2luIC5sb3N0X3Bhc3N3b3JkIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuIiwiLyoqXG4gKiBUb29sa2l0IHN0eWxlc1xuICovXG5cbi5mLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuJHNlY3Rpb24td2lkdGgtbWVkaXVtOiA5MjBweDtcbiRzZWN0aW9uLXdpZHRoLXhtZWRpdW06IDgzMHB4O1xuJHNlY3Rpb24td2lkdGgtc21hbGw6IDU5MHB4O1xuJHNlY3Rpb24td2lkdGgteHNtYWxsOiA1NDBweDtcbiRzZWN0aW9uLXdpZHRoLXh4c21hbGw6IDQ1MHB4O1xuXG5cblxuLy8gRm9udHNcbkBpbXBvcnQgJy4uL2ZvbnRzL2ZvbnRzJztcblxuLy8gMS4gQ29uZmlndXJhdGlvbiBhbmQgaGVscGVyc1xuXG5cbi8vIDIuIFZlbmRvcnNcbkBpbXBvcnRcbiAgJ3ZlbmRvcnMvdmVuZG9ycycsXG4gICcuLi8uLi92ZW5kb3IvU2N1dC9kaXN0L3NjdXQnLFxuICAnLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uJztcblxuQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbkBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbi8vIFV0aWxpdGllc1xuQGltcG9ydCAndXRpbHMvdXRpbHMnO1xuXG5AaW1wb3J0ICdnbG9iYWwuc2Nzcyc7XG5cbkBpbXBvcnQgJ29yZ2FuaXNtcy93cF93Y19zcGVjaWZpYyc7XG5cbi8vIFBhdHRuZXJzXG5AaW1wb3J0ICdhdG9tcy9hdG9tcyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvbW9sZWN1bGVzJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9vcmdhbmlzbXMnO1xuIiwiJGljb21vb24tZm9udC1wYXRoOiAnLi4vZm9udHMvaWNvbW9vbi9mb250cyc7XG5cbkBpbXBvcnQgdXJsKGh0dHBzOi8vdXNlLnR5cGVraXQubmV0L21meDFyb2cuY3NzKTtcblxuLy8gRm9udHNcbkBpbXBvcnQgJ2ljb21vb24vc3R5bGUuc2Nzcyc7IiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICcjeyRpY29tb29uLWZvbnQtZmFtaWx5fSc7XG4gIHNyYzogIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9LyN7JGljb21vb24tZm9udC1mYW1pbHl9LmVvdD9haGY4bnYnKTtcbiAgc3JjOiAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vI3skaWNvbW9vbi1mb250LWZhbWlseX0uZW90P2FoZjhudiNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS8jeyRpY29tb29uLWZvbnQtZmFtaWx5fS50dGY/YWhmOG52JykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9LyN7JGljb21vb24tZm9udC1mYW1pbHl9LndvZmY/YWhmOG52JykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vI3skaWNvbW9vbi1mb250LWZhbWlseX0uc3ZnP2FoZjhudiMjeyRpY29tb29uLWZvbnQtZmFtaWx5fScpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuW2NsYXNzXj1cImljb24tXCJdLCBbY2xhc3MqPVwiIGljb24tXCJdIHtcbiAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgZm9udC1mYW1pbHk6ICcjeyRpY29tb29uLWZvbnQtZmFtaWx5fScgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcblxuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5pY29uLXN0YXIge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tc3RhcjsgICAgIFxuICAgIGNvbG9yOiAjMzk5NmZmO1xuICB9XG59XG4uaWNvbi1jbG9zZS1tZW51IHtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWNsb3NlLW1lbnU7IFxuICB9XG59XG4uaWNvbi1zZWFyY2gge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tc2VhcmNoOyAgICAgXG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cbi5pY29uLWNsb3NlIHtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRpY29uLWNsb3NlOyBcbiAgfVxufVxuLmljb24tY2FydCB7XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1jYXJ0OyAgICAgXG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cbi5pY29uLWNpcmNsZSB7XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkaWNvbi1jaXJjbGU7ICAgICBcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxufVxuLmljb24tY2FyZXQge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tY2FyZXQ7IFxuICB9XG59XG4uaWNvbi1jaGVja21hcmsge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGljb24tY2hlY2ttYXJrOyAgICAgXG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cblxuIiwiJGljb21vb24tZm9udC1mYW1pbHk6IFwiaWNvbW9vblwiICFkZWZhdWx0O1xuJGljb21vb24tZm9udC1wYXRoOiBcImZvbnRzXCIgIWRlZmF1bHQ7XG5cbiRpY29uLXN0YXI6IFwiXFxlOTA3XCI7XG4kaWNvbi1jbG9zZS1tZW51OiBcIlxcZTkwNlwiO1xuJGljb24tc2VhcmNoOiBcIlxcZTkwM1wiO1xuJGljb24tY2xvc2U6IFwiXFxlOTA0XCI7XG4kaWNvbi1jYXJ0OiBcIlxcZTkwNVwiO1xuJGljb24tY2lyY2xlOiBcIlxcZTkwMFwiO1xuJGljb24tY2FyZXQ6IFwiXFxlOTAxXCI7XG4kaWNvbi1jaGVja21hcms6IFwiXFxlOTAyXCI7XG5cbiIsIi8vICEgbm9ybWFsaXplLmNzcyB2Mi4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemVcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICAgSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQ29ycmVjdHMgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBDb3JyZWN0cyBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cblxuYXVkaW8sXG5jYW52YXMsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLy8gUHJldmVudHMgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4vLyBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8vIEFkZHJlc3NlcyBzdHlsaW5nIGZvciBgaGlkZGVuYCBhdHRyaWJ1dGUgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJhc2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBTZXRzIGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnRzIGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8vIDEgXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxufVxuXG4vLyBSZW1vdmVzIGRlZmF1bHQgbWFyZ2luLlxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRyZXNzZXMgYG91dGxpbmVgIGluY29uc2lzdGVuY3kgYmV0d2VlbiBDaHJvbWUgYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmE6Zm9jdXMge1xuICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbn1cblxuLypcbiAqIEltcHJvdmVzIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVHlwb2dyYXBoeVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZHJlc3NlcyBgaDFgIGZvbnQgc2l6ZXMgd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgIGluIEZpcmVmb3ggNCssXG4gKiBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuXG4vKlxuICogQ29ycmVjdHMgZm9udCBmYW1pbHkgc2V0IG9kZGx5IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qXG4gKiBJbXByb3ZlcyByZWFkYWJpbGl0eSBvZiBwcmUtZm9ybWF0dGVkIHRleHQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4vKlxuICogU2V0cyBjb25zaXN0ZW50IHF1b3RlIHR5cGVzLlxuICovXG5cbnEge1xuICBxdW90ZXM6IFwiXFwyMDFDXCIgXCJcXDIwMURcIiBcIlxcMjAxOFwiIFwiXFwyMDE5XCI7XG59XG5cbi8qXG4gKiBBZGRyZXNzZXMgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qXG4gKiBQcmV2ZW50cyBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlcyBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLypcbiAqIENvcnJlY3RzIG92ZXJmbG93IGRpc3BsYXllZCBvZGRseSBpbiBJRSA5LlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZpZ3VyZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRyZXNzZXMgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpIDUuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qXG4gKiAxLiBDb3JyZWN0cyBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKlxuICogMS4gQ29ycmVjdHMgZm9udCBmYW1pbHkgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0cyBmb250IHNpemUgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAzLiBBZGRyZXNzZXMgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWVcbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgZm9udC1zaXplOiAxMDAlOyAvLyAyXG4gIG1hcmdpbjogMDsgLy8gM1xufVxuXG4vKlxuICogQWRkcmVzc2VzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0cyBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZXMgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5pbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qXG4gKiAxLiBBZGRyZXNzZXMgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmVzIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLypcbiAqIDEuIEFkZHJlc3NlcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3NlcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8gMlxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLypcbiAqIFJlbW92ZXMgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogb24gT1MgWC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLypcbiAqIFJlbW92ZXMgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gKiAxLiBSZW1vdmVzIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS5cbiAqIDIuIEltcHJvdmVzIHJlYWRhYmlsaXR5IGFuZCBhbGlnbm1lbnQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IHRvcDsgLyogMiAqL1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59IiwiLypcbiogU2N1dCwgYSBjb2xsZWN0aW9uIG9mIFNhc3MgdXRpbGl0aWVzXG4qIHRvIGVhc2UgYW5kIGltcHJvdmUgb3VyIGltcGxlbWVudGF0aW9ucyBvZiBjb21tb24gc3R5bGUtY29kZSBwYXR0ZXJucy5cbiogdjEuNC4wXG4qIERvY3MgYXQgaHR0cDovL2RhdmlkdGhlY2xhcmsuZ2l0aHViLmlvL3NjdXRcbiovXG5cbkBtaXhpbiBzY3V0LWNsZWFyZml4IHtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG5cbn1cblxuJXNjdXQtY2xlYXJmaXgge1xuICBAaW5jbHVkZSBzY3V0LWNsZWFyZml4O1xufVxuQG1peGluIHNjdXQtbGlzdC11bnN0eWxlZChcbiAgJG5vLW1hcmdpbjogdHJ1ZVxuKSB7XG5cbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgQGlmICRuby1tYXJnaW4ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG59XG5cbiVzY3V0LWxpc3QtdW5zdHlsZWQge1xuICBAaW5jbHVkZSBzY3V0LWxpc3QtdW5zdHlsZWQoKTtcbn1cbi8vIERlcGVuZHMgb24gYGxpc3QtdW5zdHlsZWRgIGFuZCBgY2xlYXJmaXhgLlxuXG5AbWl4aW4gc2N1dC1saXN0LWZsb2F0ZWQgKFxuICAkc3BhY2U6IGZhbHNlLFxuICAkZGlyOiBsZWZ0LFxuICAkbm8tbWFyZ2luOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSBzY3V0LWxpc3QtdW5zdHlsZWQoJG5vLW1hcmdpbik7XG4gIEBpbmNsdWRlIHNjdXQtY2xlYXJmaXg7XG5cbiAgJiA+IGxpIHtcbiAgICBmbG9hdDogJGRpcjtcbiAgfVxuXG4gIEBpZiAkc3BhY2Uge1xuICAgICYgPiBsaSArIGxpIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJ9OiAkc3BhY2U7XG4gICAgfVxuICB9XG5cbn1cblxuJXNjdXQtbGlzdC1mbG9hdGVkIHtcbiAgQGluY2x1ZGUgc2N1dC1saXN0LWZsb2F0ZWQ7XG59XG5cbkBmdW5jdGlvbiBzY3V0LWF1dG9PclZhbHVlICgkdmFsKSB7XG4gIEBpZiAkdmFsID09IGEgb3IgJHZhbCA9PSBhdXRvIHtcbiAgICBAcmV0dXJuIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHZhbDtcbiAgfVxufVxuXG5AbWl4aW4gc2N1dC1jb29yZHMgKFxuICAkY29vcmRpbmF0ZXM6IG4gbiBuIG5cbikge1xuXG4gICR0b3A6IG50aCgkY29vcmRpbmF0ZXMsIDEpO1xuICAkcmlnaHQ6IG50aCgkY29vcmRpbmF0ZXMsIDIpO1xuICAkYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKTtcbiAgJGxlZnQ6IG50aCgkY29vcmRpbmF0ZXMsIDQpO1xuXG4gIEBpZiAkdG9wICE9IG4ge1xuICAgIHRvcDogc2N1dC1hdXRvT3JWYWx1ZSgkdG9wKTtcbiAgfVxuICBAaWYgJHJpZ2h0ICE9IG4ge1xuICAgIHJpZ2h0OiBzY3V0LWF1dG9PclZhbHVlKCRyaWdodCk7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbiB7XG4gICAgYm90dG9tOiBzY3V0LWF1dG9PclZhbHVlKCRib3R0b20pO1xuICB9XG4gIEBpZiAkbGVmdCAhPSBuIHtcbiAgICBsZWZ0OiBzY3V0LWF1dG9PclZhbHVlKCRsZWZ0KTtcbiAgfVxuXG59XG5AZnVuY3Rpb24gc2N1dC1zdHJpcC11bml0IChcbiAgJG51bVxuKSB7XG5cbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG5cbn1cbi8vIERlcGVuZHMgb24gYHNjdXQtc3RyaXAtdW5pdGAuXG5cbiRzY3V0LWVtLWJhc2U6IDE2ICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gc2N1dC1lbSAoXG4gICRwaXhlbHMsXG4gICRiYXNlOiAkc2N1dC1lbS1iYXNlXG4pIHtcblxuICAvLyAkYmFzZSBjb3VsZCBiZSBpbiBlbSBvciBweCAobm8gdW5pdCA9IHB4KS5cbiAgLy8gQWRqdXN0IGFjY29yZGluZ2x5IHRvIGNyZWF0ZSBhICRkaXZpc29yIHRoYXRcbiAgLy8gc2VydmVzIGFzIGNvbnRleHQgZm9yICRwaXhlbHMuXG4gICRtdWx0aXBsaWVyOiBpZih1bml0KCRiYXNlKSA9PSBlbSwgMTYsIDEpO1xuICAkZGl2aXNvcjogc2N1dC1zdHJpcC11bml0KCRiYXNlKSAqICRtdWx0aXBsaWVyO1xuXG4gICRlbS12YWxzOiAoKTtcbiAgQGVhY2ggJHZhbCBpbiAkcGl4ZWxzIHtcbiAgICAkdmFsLWluLWVtczogKHNjdXQtc3RyaXAtdW5pdCgkdmFsKSAvICRkaXZpc29yKSAqIDFlbTtcbiAgICAkZW0tdmFsczogYXBwZW5kKCRlbS12YWxzLCAkdmFsLWluLWVtcyk7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRlbS12YWxzKSA9PSAxIHtcbiAgICAvLyByZXR1cm4gYSBzaW5nbGUgdmFsdWUgaW5zdGVhZCBvZiBhIGxpc3QsXG4gICAgLy8gc28gaXQgY2FuIGJlIHVzZWQgaW4gY2FsY3VsYXRpb25zXG4gICAgQHJldHVybiBudGgoJGVtLXZhbHMsIDEpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRlbS12YWxzO1xuICB9XG5cbn1cbi8vIERlcGVuZHMgb24gYHNjdXQtc3RyaXAtdW5pdGAuXG5cbiRzY3V0LXJlbS1iYXNlOiAxNiAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIHNjdXQtcmVtIChcbiAgJHBpeGVsc1xuKSB7XG5cbiAgJHJlbS12YWxzOiAoKTtcbiAgQGVhY2ggJHZhbCBpbiAkcGl4ZWxzIHtcbiAgICAkdmFsLWluLXJlbXM6IHNjdXQtc3RyaXAtdW5pdCgkdmFsKSAvICRzY3V0LXJlbS1iYXNlICogMXJlbTtcbiAgICAkcmVtLXZhbHM6IGFwcGVuZCgkcmVtLXZhbHMsICR2YWwtaW4tcmVtcyk7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRyZW0tdmFscykgPT0gMSB7XG4gICAgLy8gcmV0dXJuIGEgc2luZ2xlIHZhbHVlIGluc3RlYWQgb2YgYSBsaXN0LFxuICAgIC8vIHNvIGl0IGNhbiBiZSB1c2VkIGluIGNhbGN1bGF0aW9uc1xuICAgIEByZXR1cm4gbnRoKCRyZW0tdmFscywgMSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHJlbS12YWxzO1xuICB9XG5cbn1cbkBtaXhpbiBzY3V0LWJvcmRlciAoXG4gICRzdHlsZSxcbiAgJHNpZGVzOiBuIHlcbikge1xuXG4gIEBpZiBsZW5ndGgoJHNpZGVzKSA9PSAyIHtcbiAgICBAaWYgbnRoKCRzaWRlcywgMSkgIT0gbiB7XG4gICAgICBib3JkZXItdG9wOiAkc3R5bGU7XG4gICAgICBib3JkZXItYm90dG9tOiAkc3R5bGU7XG4gICAgfVxuICAgIEBpZiBudGgoJHNpZGVzLCAyKSAhPSBuIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkc3R5bGU7XG4gICAgICBib3JkZXItcmlnaHQ6ICRzdHlsZTtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiBsZW5ndGgoJHNpZGVzKSA9PSA0IHtcbiAgICBAaWYgbnRoKCRzaWRlcywgMSkgIT0gbiB7XG4gICAgICBib3JkZXItdG9wOiAkc3R5bGU7XG4gICAgfVxuICAgIEBpZiBudGgoJHNpZGVzLCAyKSAhPSBuIHtcbiAgICAgIGJvcmRlci1yaWdodDogJHN0eWxlO1xuICAgIH1cbiAgICBAaWYgbnRoKCRzaWRlcywgMykgIT0gbiB7XG4gICAgICBib3JkZXItYm90dG9tOiAkc3R5bGU7XG4gICAgfVxuICAgIEBpZiBudGgoJHNpZGVzLCA0KSAhPSBuIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkc3R5bGU7XG4gICAgfVxuICB9XG5cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiU2N1dC1ib3JkZXIgcmVxdWlyZXMgYSAkc2lkZXMgYXJndW1lbnQgb2YgMiBvciA0IHZhbHVlcy5cIlxuICB9XG5cbn1cbkBtaXhpbiBzY3V0LWNpcmNsZSAoXG4gICRzaXplLFxuICAkY29sb3I6IGluaGVyaXRcbikge1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIEBpZiAkY29sb3IgPT0gaW5oZXJpdCB7XG4gICAgLy8gSWYgdXNlciB3YW50cyB0byBpbmhlcml0IHRoZSBjb2xvcixcbiAgICAvLyB0YWtlIGFkdmFudGFnZSBvZiB0aGUgZmFjdCB0aGF0IGJvcmRlclxuICAgIC8vIGNvbG9yIGRlZmF1bHRzIHRvIHRoZSB0ZXh0IGNvbG9yIG9mIHRoZSBlbGVtZW50LlxuICAgIGJvcmRlci13aWR0aDogJHNpemUgLyAyO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBPdGhlcndpc2UsIGp1c3QgdXNlIGJhY2tncm91bmQtY29sb3IuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgd2lkdGg6ICRzaXplO1xuICB9XG5cbn1cbkBtaXhpbiBzY3V0LWNvbG9yLXN3YXAgKFxuICAkb2ZmLFxuICAkb24sXG4gICRkdXJhdGlvbjogMCxcbiAgJGJnOiBmYWxzZVxuKSB7XG5cbiAgJHRyYW5zaXRpb24tcHJvcGVydGllczogbnVsbDtcbiAgJG9mZi1pcy1saXN0OiB0eXBlLW9mKCRvZmYpID09IGxpc3Q7XG4gICRvbi1pcy1saXN0OiB0eXBlLW9mKCRvbikgPT0gbGlzdDtcblxuICAvLyBJZiAkb2ZmIElTIGEgbGlzdCxcbiAgLy8gYXNzaWduIGNvbG9yIGFuZCBiYWNrZ3JvdW5kLWNvbG9yLlxuICBAaWYgJG9mZi1pcy1saXN0IHtcbiAgICBjb2xvcjogbnRoKCRvZmYsIDEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG50aCgkb2ZmLCAyKTtcbiAgICAkdHJhbnNpdGlvbi1wcm9wZXJ0aWVzOiBiYWNrZ3JvdW5kLWNvbG9yLCBjb2xvcjtcbiAgfVxuXG4gIC8vIElmICRvZmYgSVMgTk9UIGEgbGlzdCBhbmQgJGJnIGlzIFRSVUUsXG4gIC8vIGFzc2lnbiBiYWNrZ3JvdW5kLWNvbG9yLlxuICBAZWxzZSBpZiAkYmcgYW5kIG5vdCgkb2ZmLWlzLWxpc3QpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmO1xuICAgICR0cmFuc2l0aW9uLXByb3BlcnRpZXM6IGJhY2tncm91bmQtY29sb3I7XG4gIH1cblxuICAvLyBJZiAkb2ZmIElTIE5PVCBhIGxpc3QgYW5kICRiZyBpcyBGQUxTRSxcbiAgLy8gYXNzaWduIGNvbG9yLlxuICBAZWxzZSB7XG4gICAgY29sb3I6ICRvZmY7XG4gICAgJHRyYW5zaXRpb24tcHJvcGVydGllczogY29sb3I7XG4gIH1cblxuICAvLyBPbmx5IHNldC11cCB0cmFuc2l0aW9uIGlmICRkdXJhdGlvbiAhPSAwLlxuICBAaWYgJGR1cmF0aW9uICE9IDAge1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6ICR0cmFuc2l0aW9uLXByb3BlcnRpZXM7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG5cbiAgICAvLyAkb24gaXMgdHJlYXRlZCB0aGUgc2FtZSBhcyAkb2ZmLCBhYm92ZS5cbiAgICBAaWYgJG9uLWlzLWxpc3Qge1xuICAgICAgY29sb3I6IG50aCgkb24sIDEpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbnRoKCRvbiwgMik7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGJnIGFuZCBub3QoJG9uLWlzLWxpc3QpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvbjtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJG9uO1xuICAgIH1cbiAgfVxuXG59XG5AbWl4aW4gc2N1dC1oZC1icCAoXG4gICRyYXRpbzogMS4zXG4pIHtcblxuICBAbWVkaWEgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICgkcmF0aW8gLyAxKSksXG4gICAgICAgICAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICAgICAgICAgKG1pbi1yZXNvbHV0aW9uOiAocm91bmQoOTYgKiAkcmF0aW8pICogMWRwaSkpIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG59XG5cbkBtaXhpbiBzY3V0LWhpZGUtdmlzdWFsbHkge1xuXG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuXG59XG5cbiVzY3V0LWhpZGUtdmlzdWFsbHkge1xuICBAaW5jbHVkZSBzY3V0LWhpZGUtdmlzdWFsbHk7XG59XG5AbWl4aW4gc2N1dC1pbWFnZS1yZXBsYWNlIHtcblxuICB0ZXh0LWluZGVudDogMTAyJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcblxufVxuXG4lc2N1dC1pbWFnZS1yZXBsYWNlIHtcbiAgQGluY2x1ZGUgc2N1dC1pbWFnZS1yZXBsYWNlO1xufVxuXG4vLyBEZXBlbmRzIG9uIHNjdXQtcmVtIGFuZCBzY3V0LXN0cmlwLXVuaXRcblxuQG1peGluIHNjdXQtcmVtLWZhbGxiYWNrIChcbiAgJHBpeGVscyxcbiAgJHByb3BlcnR5OiBmb250LXNpemVcbikge1xuXG4gICRweC12YWxzOiBudWxsO1xuICBAZWFjaCAkdmFsIGluICRwaXhlbHMge1xuICAgICR2YWwtaW4tcHg6IHNjdXQtc3RyaXAtdW5pdCgkdmFsKSAqIDFweDtcbiAgICAkcHgtdmFsczogYXBwZW5kKCRweC12YWxzLCAkdmFsLWluLXB4KTtcbiAgfVxuICAkcmVtLXZhbHM6IHNjdXQtcmVtKCRwaXhlbHMpO1xuXG4gICN7JHByb3BlcnR5fTogJHB4LXZhbHM7XG4gICN7JHByb3BlcnR5fTogJHJlbS12YWxzO1xuXG59XG5AbWl4aW4gc2N1dC1yZXNldC1ib3JkZXItYm94IHtcbiAgLy8gTWFrZSBldmVyeXRoaW5nIGEgYm9yZGVyLWJveCwgYmVjYXVzZSB3aHkgbm90P1xuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG4gICosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG59XG5cbkBtaXhpbiBzY3V0LXJlc2V0LWFudGlhbGlhcyB7XG4gIC8vIEFudGlhbGlhcyFcbiAgYm9keSB7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIH1cbiAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGluaGVyaXQ7XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtc2VtYW50aWNpemUge1xuICAvLyBNYWtlIGhlYWRlcnMgYW5kIDxiPiBzZW1hbnRpYywgbm90IHByZXNlbnRhdGlvbmFsLlxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBiIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG59XG5cbkBtaXhpbiBzY3V0LXJlc2V0LXBvaW50ZXIge1xuICAvLyBDbGlja2FibGUgZm9ybSBlbGVtZW50cyBzaG91bGQgaGF2ZSBhIHBvaW50ZXIuXG4gIGxhYmVsLFxuICBzZWxlY3QsXG4gIG9wdGlvbixcbiAgYnV0dG9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtZm9ybSB7XG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgdGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtYnV0dG9uIHtcbiAgLy8gUmVzZXQgZGVmYXVsdCBidXR0b24gc3R5bGVzLCB3aGljaCBhcmUgbmV2ZXIgdXNlZC5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtcGFyYWdyYXBoIHtcbiAgLy8gU29tZSBwYXJhZ3JhcGggbWFyZ2lucyBqdXN0IGdldCBpbiB0aGUgd2F5LlxuICBwOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgcDpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtbWVkaWEge1xuICAvLyBZb3Ugd2FudCB0aGVzZSBlbGVtZW50cyBmbHVpZCwgcHJvYmFibHkuXG4gIGltZyxcbiAgdmlkZW8ge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtZmlndXJlIHtcbiAgLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2lucy5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLy8gQ2FsbCB0aGVtIGFsbCwgbWludXMgZXhjbHVzaW9ucyFcbkBtaXhpbiBzY3V0LXJlc2V0ICgkZXhjbHVkZTogZmFsc2UpIHtcbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgYm9yZGVyLWJveCkpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LWJvcmRlci1ib3g7XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgYW50aWFsaWFzKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtYW50aWFsaWFzO1xuICB9XG4gIEBpZiBub3QoaW5kZXgoJGV4Y2x1ZGUsIHNlbWFudGljaXplKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtc2VtYW50aWNpemU7XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgcG9pbnRlcikpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LXBvaW50ZXI7XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgZm9ybSkpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LWZvcm07XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgYnV0dG9uKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtYnV0dG9uO1xuICB9XG4gIEBpZiBub3QoaW5kZXgoJGV4Y2x1ZGUsIHBhcmFncmFwaCkpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LXBhcmFncmFwaDtcbiAgfVxuICBAaWYgbm90KGluZGV4KCRleGNsdWRlLCBtZWRpYSkpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LW1lZGlhO1xuICB9XG4gIEBpZiBub3QoaW5kZXgoJGV4Y2x1ZGUsIGZpZ3VyZSkpIHtcbiAgICBAaW5jbHVkZSBzY3V0LXJlc2V0LWZpZ3VyZTtcbiAgfVxufVxuXG5AbWl4aW4gc2N1dC1zZWxlY3RlZCAoXG4gICRhY3RpdmU6IGZhbHNlXG4pIHtcblxuICBAaWYgJGFjdGl2ZSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59XG5AbWl4aW4gc2N1dC10cmlhbmdsZSAoXG4gICRkaXJlY3Rpb246IHJpZ2h0LFxuICAkc2l6ZTogMC43NWVtLFxuICAkY29sb3I6IGluaGVyaXRcbikge1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcbiAgLy8gRm9yIGltcHJvdmVkIGFwcGVhcmFuY2UgaW4gc29tZSBXZWJraXQgYnJvd3NlcnNcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuXG4gIC8vIFNldCB1cCBzb21lIHZhcmlhYmxlc1xuICAkd2lkdGg6IG51bGw7XG4gICRoZWlnaHQ6IG51bGw7XG4gICRib3JkZXItd2lkdGhzOiBudWxsO1xuXG4gIEBpZiB0eXBlLW9mKCRzaXplKSA9PSBsaXN0IHtcbiAgICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICAgJGhlaWdodDogbnRoKCRzaXplLCAyKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHdpZHRoOiAkc2l6ZTtcbiAgICAkaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikge1xuICAgIC8vIEZvciB1cCBhbmQgZG93biwgd2lkdGggZ2V0cyB0d28gYm9yZGVycyBidXQgaGVpZ2h0IG9ubHkgb25lLFxuICAgIC8vIHNvIGRpdmlkZSBzZWNvbmQgYm9yZGVyLXdpZHRoIHZhbHVlIGJ5IDJcbiAgICAkYm9yZGVyLXdpZHRoczogJGhlaWdodCAoJHdpZHRoIC8gMik7XG4gIH1cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAvLyBGb3IgcmlnaHQgYW5kIGxlZnQsIGhlaWdodCBnZXRzIHR3byBib3JkZXJzIGJ1dCB3aWR0aCBvbmx5IG9uZSxcbiAgICAvLyBzbyBkaXZpZGUgZmlyc3QgYm9yZGVyLXdpZHRoIHZhbHVlIGJ5IDJcbiAgICAkYm9yZGVyLXdpZHRoczogKCRoZWlnaHQgLyAyKSAkd2lkdGg7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIEZvciByaWdodCB0cmlhbmdsZXMgKHRoZSByZXN0KSwgYm90aCBzaWRlcyBnZXQgdHdvIGJvcmRlcnMsXG4gICAgLy8gc28gZGl2aWRlIGJvdGggYnkgMlxuICAgICRib3JkZXItd2lkdGhzOiAoJGhlaWdodCAvIDIpICgkd2lkdGggLyAyKTtcbiAgfVxuXG4gIGJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aHM7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG5cblxuICAvLyBTVEFOREFSRCBUUklBTkdMRVNcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuXG4gIC8vIENPUk5FUiBUUklBTkdMRVNcblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB0b3AtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHRvcC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIEBpZiAkZGlyZWN0aW9uID09IHRvcC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gICAgQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB0b3AtbGVmdCB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogJGNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBib3R0b20tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGJvdHRvbS1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgIEBpZiAkZGlyZWN0aW9uID09IGJvdHRvbS1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gICAgQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBib3R0b20tbGVmdCB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogJGNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxufVxuXG4lc2N1dC10cmlhbmdsZSB7XG4gIEBpbmNsdWRlIHNjdXQtdHJpYW5nbGU7XG59XG5AbWl4aW4gc2N1dC1jZW50ZXItYWJzb2x1dGVseSAoXG4gICRkaW1lbnNpb25zXG4pIHtcblxuICAkd2lkdGg6IG50aCgkZGltZW5zaW9ucywgMSk7XG4gICRoZWlnaHQ6IG50aCgkZGltZW5zaW9ucywgMik7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIEBpZiAkd2lkdGggIT0gbiB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6ICgtJHdpZHRoIC8gMik7XG4gIH1cblxuICBAaWYgJGhlaWdodCAhPSBuIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogKC0kaGVpZ2h0IC8gMik7XG4gIH1cblxufVxuQG1peGluIHNjdXQtY2VudGVyLWJsb2NrIChcbiAgJG1heC13aWR0aDogZmFsc2Vcbikge1xuXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIEBpZiAkbWF4LXdpZHRoIHtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIH1cblxufVxuXG4lc2N1dC1jZW50ZXItYmxvY2sge1xuICBAaW5jbHVkZSBzY3V0LWNlbnRlci1ibG9jaztcbn1cblxuQG1peGluIHNjdXQtY2VudGVyLXRyYW5zZm9ybSAoXG4gICRheGlzOiBmYWxzZSAvLyBvciB4IG9yIHlcbikge1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICBAaWYgJGF4aXMgIT0geCB7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICB9XG5cbiAgQGlmICRheGlzICE9IHkge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAkdHJhbnNsYXRlLXZhbDogbnVsbDtcblxuICBAaWYgbm90KCRheGlzKSB7XG4gICAgJHRyYW5zbGF0ZS12YWw6IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgfVxuICBAZWxzZSBpZiAkYXhpcyAhPSB4IHtcbiAgICAkdHJhbnNsYXRlLXZhbDogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuICBAZWxzZSBpZiAkYXhpcyAhPSB5IHtcbiAgICAkdHJhbnNsYXRlLXZhbDogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxuXG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNsYXRlLXZhbDtcbiAgLW1zLXRyYW5zZm9ybTogJHRyYW5zbGF0ZS12YWw7XG4gIHRyYW5zZm9ybTogJHRyYW5zbGF0ZS12YWw7XG59XG5cbiVzY3V0LWNlbnRlci10cmFuc2Zvcm0ge1xuICBAaW5jbHVkZSBzY3V0LWNlbnRlci10cmFuc2Zvcm07XG59XG5cbiVzY3V0LWNlbnRlci10cmFuc2Zvcm0teCB7XG4gIEBpbmNsdWRlIHNjdXQtY2VudGVyLXRyYW5zZm9ybSh4KTtcbn1cblxuJXNjdXQtY2VudGVyLXRyYW5zZm9ybS15IHtcbiAgQGluY2x1ZGUgc2N1dC1jZW50ZXItdHJhbnNmb3JtKHkpO1xufVxuXG5AbWl4aW4gc2N1dC1maWxsIChcbiAgJHdpZHRoLWhlaWdodDogZmFsc2Vcbikge1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBAaWYgJHdpZHRoLWhlaWdodCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gIH1cblxufVxuXG4lc2N1dC1maWxsIHtcbiAgQGluY2x1ZGUgc2N1dC1maWxsO1xufVxuQG1peGluIHNjdXQtbGlzdC1jdXN0b20gKFxuICAkY29udGVudDogXCJcXDIwMjJcIixcbiAgJG1hcmtlci13aWR0aDogMC43NWVtLFxuICAkcGFkOiAwLFxuICAkbm8tbWFyZ2luOiBmYWxzZVxuKSB7XG5cbiAgJGNvbnRlbnQtdmFsOiBudWxsO1xuICAkY291bnRlcjogaW5kZXgoJGNvbnRlbnQsIGNvdW50KTtcbiAgQGlmICRjb3VudGVyIHtcbiAgICBAaWYgbGVuZ3RoKCRjb250ZW50KSA9PSAzIHtcbiAgICAgICRjb250ZW50LXZhbDogY291bnRlcihzY3V0bGlzdGNvdW50ZXIsIG50aCgkY29udGVudCwgMykpbnRoKCRjb250ZW50LDIpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBsZW5ndGgoJGNvbnRlbnQpID09IDIge1xuICAgICAgJGNvbnRlbnQtdmFsOiBjb3VudGVyKHNjdXRsaXN0Y291bnRlciludGgoJGNvbnRlbnQsMik7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRjb250ZW50LXZhbDogY291bnRlcihzY3V0bGlzdGNvdW50ZXIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJGNvbnRlbnQtdmFsOiAkY29udGVudDtcbiAgfVxuXG4gIHBhZGRpbmctbGVmdDogJG1hcmtlci13aWR0aCArICRwYWQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICBAaWYgJG5vLW1hcmdpbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJiA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGlmICRjb3VudGVyIHtcbiAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBzY3V0bGlzdGNvdW50ZXI7XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRjb250ZW50LXZhbDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogLSRtYXJrZXItd2lkdGg7XG4gICAgICB3aWR0aDogJG1hcmtlci13aWR0aDtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59XG4vLyBEZXBlbmRzIG9uIGBsaXN0LWZsb2F0ZWRgLCB3aGljaCBkZXBlbmRzIGluIHR1cm4gb24gYGxpc3QtdW5zdHlsZWRgIGFuZCBgY2xlYXJmaXhgLlxuXG5AbWl4aW4gc2N1dC1saXN0LWRpdmlkZWQgKFxuICAkZGl2aWRlcjogXCJ8XCIsXG4gICRzcGFjZTogMC41ZW0sXG4gICRkaXI6IGxlZnQsXG4gICRoZWlnaHQ6IGZhbHNlLFxuICAkbm8tbWFyZ2luOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSBzY3V0LWxpc3QtZmxvYXRlZCgkZGlyOiAkZGlyLCAkbm8tbWFyZ2luOiAkbm8tbWFyZ2luKTtcblxuICAkcHNldWRvOiBpZigkZGlyID09IGxlZnQsICdiZWZvcmUnLCAnYWZ0ZXInKTtcblxuICAvLyBJZiBhbiBleHBsaWNpdCBoZWlnaHQgaXMgcGFzc2VkLFxuICAvLyB0aGluZ3MgYXJlIGRpZmZlcmVudDogQWxsIDxsaT5zXG4gIC8vIG5lZWQgdGhlIHBzZXVkby1lbGVtZW50ICh0byBmb3JjZSBoZWlnaHQpLFxuICAvLyBidXQgdGhlIGZpcnN0J3MgbXVzdCBiZSBoaWRkZW4uXG5cbiAgQGlmICRoZWlnaHQge1xuICAgICYgPiBsaSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICAgICYgPiBsaTojeyRwc2V1ZG99IHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIGNvbnRlbnQ6ICRkaXZpZGVyO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgICAmID4gbGk6Zmlyc3QtY2hpbGQ6I3skcHNldWRvfSB7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgJiA+IGxpICsgbGk6I3skcHNldWRvfSB7XG4gICAgQGlmIG5vdCgkaGVpZ2h0KSB7XG4gICAgICBjb250ZW50OiAkZGl2aWRlcjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgICBtYXJnaW4tbGVmdDogJHNwYWNlO1xuICAgIG1hcmdpbi1yaWdodDogJHNwYWNlO1xuICB9XG5cbn1cblxuJXNjdXQtbGlzdC1iYXIge1xuICBAaW5jbHVkZSBzY3V0LWxpc3QtZGl2aWRlZDtcbn1cblxuJXNjdXQtbGlzdC1icmVhZGNydW1iIHtcbiAgQGluY2x1ZGUgc2N1dC1saXN0LWRpdmlkZWQoXCIvXCIpO1xufVxuLy8gRGVwZW5kcyBvbiBgbGlzdC11bnN0eWxlZGAuXG5cbkBtaXhpbiBzY3V0LWxpc3QtaW5saW5lIChcbiAgJHNwYWNlOiBmYWxzZSxcbiAgJG5vLW1hcmdpbjogdHJ1ZVxuKSB7XG5cbiAgQGluY2x1ZGUgc2N1dC1saXN0LXVuc3R5bGVkKCRuby1tYXJnaW4pO1xuXG4gICYgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgQGlmICRzcGFjZSB7XG4gICAgJiA+IGxpICsgbGkge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRzcGFjZTtcbiAgICB9XG4gIH1cblxufVxuXG4lc2N1dC1saXN0LWlubGluZSB7XG4gIEBpbmNsdWRlIHNjdXQtbGlzdC1pbmxpbmU7XG59XG4vLyBEZXBlbmRzIG9uIGBsaXN0LXVuc3R5bGVkYC5cblxuQG1peGluIHNjdXQtbGlzdC1wdW5jdHVhdGVkIChcbiAgJGRpdmlkZXI6IFwiLCBcIixcbiAgJGRpc3BsYXk6IGlubGluZSxcbiAgJG5vLW1hcmdpbjogdHJ1ZVxuKSB7XG5cbiAgQGluY2x1ZGUgc2N1dC1saXN0LXVuc3R5bGVkKCRuby1tYXJnaW4pO1xuXG4gICYgPiBsaSB7XG4gICAgZGlzcGxheTogJGRpc3BsYXk7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICRkaXZpZGVyO1xuICAgIH1cbiAgfVxuXG59XG5cbiVzY3V0LWxpc3QtY29tbWEge1xuICBAaW5jbHVkZSBzY3V0LWxpc3QtcHVuY3R1YXRlZDtcbn1cbkBtaXhpbiBzY3V0LW1hcmdpbiAoXG4gICRtYXJnaW5cbikge1xuXG4gIEBpZiBsZW5ndGgoJG1hcmdpbikgPT0gMSBhbmQgJG1hcmdpbiAhPSBuIHtcbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luO1xuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkbWFyZ2luKSA9PSAyIHtcbiAgICAkbWFyZ2luLXk6IG50aCgkbWFyZ2luLCAxKTtcbiAgICAkbWFyZ2luLXg6IG50aCgkbWFyZ2luLCAyKTtcbiAgICBAaWYgJG1hcmdpbi15ICE9IG4ge1xuICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi15O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi15O1xuICAgIH1cbiAgICBAaWYgJG1hcmdpbi14ICE9IG4ge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4teDtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbi14O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBsZW5ndGgoJG1hcmdpbikgPT0gMyB7XG4gICAgJG1hcmdpbi15LXRvcDogbnRoKCRtYXJnaW4sIDEpO1xuICAgICRtYXJnaW4teDogbnRoKCRtYXJnaW4sIDIpO1xuICAgICRtYXJnaW4teS1ib3R0b206IG50aCgkbWFyZ2luLCAzKTtcbiAgICBAaWYgJG1hcmdpbi15LXRvcCAhPSBuIHtcbiAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4teS10b3A7XG4gICAgfVxuICAgIEBpZiAkbWFyZ2luLXggIT0gbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4teDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLXg7XG4gICAgfVxuICAgIEBpZiAkbWFyZ2luLXktYm90dG9tICE9IG4ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi15LWJvdHRvbTtcbiAgICB9XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRtYXJnaW4pID09IDQge1xuICAgICRtYXJnaW4tdG9wOiBudGgoJG1hcmdpbiwgMSk7XG4gICAgJG1hcmdpbi1yaWdodDogbnRoKCRtYXJnaW4sIDIpO1xuICAgICRtYXJnaW4tYm90dG9tOiBudGgoJG1hcmdpbiwgMyk7XG4gICAgJG1hcmdpbi1sZWZ0OiBudGgoJG1hcmdpbiwgNCk7XG4gICAgQGlmICRtYXJnaW4tdG9wICE9IG4ge1xuICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgfVxuICAgIEBpZiAkbWFyZ2luLXJpZ2h0ICE9IG4ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luLXJpZ2h0O1xuICAgIH1cbiAgICBAaWYgJG1hcmdpbi1ib3R0b20gIT0gbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcbiAgICB9XG4gICAgQGlmICRtYXJnaW4tbGVmdCAhPSBuIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLWxlZnQ7XG4gICAgfVxuICB9XG5cbn1cbkBtaXhpbiBzY3V0LXBhZGRpbmcgKFxuICAkcGFkZGluZ1xuKSB7XG5cbiAgQGlmIGxlbmd0aCgkcGFkZGluZykgPT0gMSBhbmQgJHBhZGRpbmcgIT0gbiB7XG4gICAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkcGFkZGluZykgPT0gMiB7XG4gICAgJHBhZGRpbmcteTogbnRoKCRwYWRkaW5nLCAxKTtcbiAgICAkcGFkZGluZy14OiBudGgoJHBhZGRpbmcsIDIpO1xuICAgIEBpZiAkcGFkZGluZy15ICE9IG4ge1xuICAgICAgcGFkZGluZy10b3A6ICRwYWRkaW5nLXk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcteTtcbiAgICB9XG4gICAgQGlmICRwYWRkaW5nLXggIT0gbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLXg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZy14O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHBhZGRpbmcpID09IDMge1xuICAgICRwYWRkaW5nLXktdG9wOiBudGgoJHBhZGRpbmcsIDEpO1xuICAgICRwYWRkaW5nLXg6IG50aCgkcGFkZGluZywgMik7XG4gICAgJHBhZGRpbmcteS1ib3R0b206IG50aCgkcGFkZGluZywgMyk7XG4gICAgQGlmICRwYWRkaW5nLXktdG9wICE9IG4ge1xuICAgICAgcGFkZGluZy10b3A6ICRwYWRkaW5nLXktdG9wO1xuICAgIH1cbiAgICBAaWYgJHBhZGRpbmcteCAhPSBuIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLXg7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLXg7XG4gICAgfVxuICAgIEBpZiAkcGFkZGluZy15LWJvdHRvbSAhPSBuIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZy15LWJvdHRvbTtcbiAgICB9XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRwYWRkaW5nKSA9PSA0IHtcbiAgICAkcGFkZGluZy10b3A6IG50aCgkcGFkZGluZywgMSk7XG4gICAgJHBhZGRpbmctcmlnaHQ6IG50aCgkcGFkZGluZywgMik7XG4gICAgJHBhZGRpbmctYm90dG9tOiBudGgoJHBhZGRpbmcsIDMpO1xuICAgICRwYWRkaW5nLWxlZnQ6IG50aCgkcGFkZGluZywgNCk7XG4gICAgQGlmICRwYWRkaW5nLXRvcCAhPSBuIHtcbiAgICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZy10b3A7XG4gICAgfVxuICAgIEBpZiAkcGFkZGluZy1yaWdodCAhPSBuIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLXJpZ2h0O1xuICAgIH1cbiAgICBAaWYgJHBhZGRpbmctYm90dG9tICE9IG4ge1xuICAgICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nLWJvdHRvbTtcbiAgICB9XG4gICAgQGlmICRwYWRkaW5nLWxlZnQgIT0gbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLWxlZnQ7XG4gICAgfVxuICB9XG59XG4vLyBEZXBlbmRzIG9uIGBwb3NpdGlvbmluZy1jb29yZGluYXRlc2AuXG5cbkBtaXhpbiBzY3V0LWFic29sdXRlIChcbiAgJGNvb3JkaW5hdGVzOiAwIG4gbiAwXG4pIHtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIEBpbmNsdWRlIHNjdXQtY29vcmRzKCRjb29yZGluYXRlcyk7XG5cbn1cblxuJXNjdXQtYWJzb2x1dGUge1xuICBAaW5jbHVkZSBzY3V0LWFic29sdXRlO1xufVxuLy8gRGVwZW5kcyBvbiBgcG9zaXRpb25pbmctY29vcmRpbmF0ZXNgLlxuXG5AbWl4aW4gc2N1dC1maXhlZCAoXG4gICRjb29yZGluYXRlczogMCBuIG4gMFxuKSB7XG5cbiAgcG9zaXRpb246IGZpeGVkO1xuICBAaW5jbHVkZSBzY3V0LWNvb3JkcygkY29vcmRpbmF0ZXMpO1xuXG59XG5cbiVzY3V0LWZpeGVkIHtcbiAgQGluY2x1ZGUgc2N1dC1maXhlZDtcbn1cbi8vIERlcGVuZHMgb24gYHBvc2l0aW9uaW5nLWNvb3JkaW5hdGVzYC5cblxuQG1peGluIHNjdXQtcmVsYXRpdmUgKFxuICAkY29vcmRpbmF0ZXM6IG4gbiBuIG5cbikge1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGluY2x1ZGUgc2N1dC1jb29yZHMoJGNvb3JkaW5hdGVzKTtcblxufVxuQG1peGluIHNjdXQtcmF0aW8tYm94IChcbiAgJHJhdGlvOiAxLzFcbikge1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBUaGUgY29udGFpbmVyJ3MgaGVpZ2h0LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlXG4gIC8vIGNvbnRhaW5lcidzIHdpZHRoLCBpcyBzZXQgYnkgYXNzaWduaW5nXG4gIC8vIHBhZGRpbmctdG9wIHRvIGEgcHNldWRvLWVsZW1lbnQuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogKDEgLyAkcmF0aW8pICogMTAwJTtcbiAgfVxuXG59XG5cbiVzY3V0LXJhdGlvLWJveCB7XG4gIEBpbmNsdWRlIHNjdXQtcmF0aW8tYm94O1xufVxuQG1peGluIHNjdXQtc2l6ZShcbiAgJHNpemVcbikge1xuXG4gIEBpZiBsZW5ndGgoJHNpemUpID09IDEge1xuICAgIHdpZHRoOiAgJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuICBAZWxzZSBpZiBsZW5ndGgoJHNpemUpID09IDIge1xuICAgIHdpZHRoOiAgbnRoKCRzaXplLCAxKTtcbiAgICBoZWlnaHQ6IG50aCgkc2l6ZSwgMik7XG4gIH1cblxufVxuQG1peGluIHNjdXQtc3RpY2t5LWZvb3Rlci1maXhlZCAoXG4gICRoZWlnaHQsXG4gICR3cmFwcGVyOiBcIi53cmFwcGVyXCIsXG4gICRmb290ZXI6IFwiLnNjdXQtc3RpY2t5XCJcbikge1xuXG4gIGh0bWwsXG4gIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICN7JHdyYXBwZXJ9IHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IC0kaGVpZ2h0O1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gICN7JHdyYXBwZXJ9OmFmdGVyLFxuICAjeyRmb290ZXJ9IHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cblxufVxuXG4vLyBkZXByZWNhdGVkXG5AbWl4aW4gc2N1dC1zdGlja3ktZm9vdGVyIChcbiAgJGhlaWdodCxcbiAgJHdyYXBwZXI6IFwiLndyYXBwZXJcIixcbiAgJGZvb3RlcjogXCIuc2N1dC1zdGlja3lcIlxuKXtcbiAgQGluY2x1ZGUgc2N1dC1zdGlja3ktZm9vdGVyLWZpeGVkKCRoZWlnaHQsICR3cmFwcGVyLCAkZm9vdGVyKTtcbn1cbkBtaXhpbiBzY3V0LXN0aWNreS1mb290ZXItZmx1aWQgKFxuICAkd3JhcHBlcjogXCIud3JhcHBlclwiLFxuICAkZm9vdGVyOiBcIi5zY3V0LXN0aWNreVwiXG4pIHtcblxuICBodG1sLFxuICBib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAjeyR3cmFwcGVyfSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgI3skZm9vdGVyfSB7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgIGhlaWdodDogMXB4O1xuICB9XG5cbn1cbkBtaXhpbiBzY3V0LXZjZW50ZXItaWIgKFxuICAkaW5uZXIuLi5cbikge1xuXG4gIC8vIFRoZSBpbm5lciBlbGVtZW50IGlzIHZlcnRpY2FsbHkgY2VudGVyZWRcbiAgLy8gYnkgbWlkZGxlLWFsaWduaW5nIGl0IHdpdGggYW4gaW5saW5lIHBzZXVkby1lbGVtZW50XG4gIC8vIHdob3NlIGhlaWdodCBpcyAxMDAlLlxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAvLyBBIHNtYWxsIG5lZ2F0aXZlIHJpZ2h0IG1hcmdpbiBpcyBzZXRcbiAgICAvLyB0byBhY2NvdW50IGZvciB0aGUgZGVmYXVsdFxuICAgIC8vIHdvcmQtc3BhY2luZyBvZiBpbmxpbmUtYmxvY2suXG4gICAgbWFyZ2luLXJpZ2h0OiAtMC4yNWVtO1xuICB9XG5cbiAgJGlubmVyOiBpZihsZW5ndGgoJGlubmVyKSA9PSAwLCBcIi5zY3V0LWlubmVyXCIsICRpbm5lcik7XG4gIEBlYWNoICRjZWxsLXNlbGVjdG9yIGluICRpbm5lciB7XG4gICAgJGNlbGwtc2VsZWN0b3I6IHVucXVvdGUoJGNlbGwtc2VsZWN0b3IpO1xuICAgICYgPiAjeyRjZWxsLXNlbGVjdG9yfSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG59XG5cbiVzY3V0LXZjZW50ZXItaWIge1xuICBAaW5jbHVkZSBzY3V0LXZjZW50ZXItaWI7XG59XG5cbkBtaXhpbiBzY3V0LXZjZW50ZXItbGggKFxuICAkaGVpZ2h0XG4pIHtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaGVpZ2h0O1xuXG59XG5AbWl4aW4gc2N1dC12Y2VudGVyLXRkIChcbiAgJGlubmVyLi4uXG4pIHtcblxuICBkaXNwbGF5OiB0YWJsZTtcblxuICAkaW5uZXI6IGlmKGxlbmd0aCgkaW5uZXIpID09IDAsIFwiLnNjdXQtaW5uZXJcIiwgJGlubmVyKTtcbiAgQGVhY2ggJGNlbGwtc2VsZWN0b3IgaW4gJGlubmVyIHtcbiAgICAkY2VsbC1zZWxlY3RvcjogdW5xdW90ZSgkY2VsbC1zZWxlY3Rvcik7XG4gICAgJiA+ICN7JGNlbGwtc2VsZWN0b3J9IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG59XG5cblxuJXNjdXQtdmNlbnRlci10ZCB7XG4gIEBpbmNsdWRlIHNjdXQtdmNlbnRlci10ZDtcbn1cblxuLy8gRGVwZW5kcyBvbiBzY3V0LWNlbnRlci10cmFuc2Zvcm1cblxuQG1peGluIHNjdXQtdmNlbnRlci10dCAoKSB7XG4gIEBpbmNsdWRlIHNjdXQtY2VudGVyLXRyYW5zZm9ybSh5KTtcbn1cblxuJXNjdXQtdmNlbnRlci10dCB7XG4gIEBpbmNsdWRlIHNjdXQtdmNlbnRlci10dDtcbn1cbi8vIHNwYWNlXG4kc2N1dC1zcGFjZTogXCJcXDAwMjBcIjtcbi8vIG5vbi1icmVha2luZyBzcGFjZVxuJHNjdXQtbmJzcDogXCJcXDAwYTBcIjtcblxuLy8gcXVvdGF0aW9uIG1hcmtcbiRzY3V0LXF1b3Q6IFwiXFwwMDIyXCI7XG4vLyBsZWZ0IHNpbmdsZSBjdXJseSBxdW90ZVxuJHNjdXQtbHNxdW86IFwiXFwyMDE4XCI7XG4vLyByaWdodCBzaW5nbGUgY3VybHkgcXVvdGVcbiRzY3V0LXJzcXVvOiBcIlxcMjAxOVwiO1xuLy8gbGVmdCBkb3VibGUgY3VybHkgcXVvdGVcbiRzY3V0LWxkcXVvOiBcIlxcMjAxQ1wiO1xuLy8gcmlnaHQgZG91YmxlIGN1cmx5IHF1b3RlXG4kc2N1dC1yZHF1bzogXCJcXDIwMURcIjtcbi8vIGxlZnQgc2luZ2xlIGFuZ2xlIHF1b3RlIChndWlsbGVtZXQpXG4kc2N1dC1sc2FxdW86IFwiXFwyMDM5XCI7XG4vLyByaWdodCBzaW5nbGUgYW5nbGUgcXVvdGUgKGd1aWxsZW1ldClcbiRzY3V0LXJzYXF1bzogXCJcXDIwM0FcIjtcbi8vIGxlZnQgZG91YmxlIGFuZ2xlIHF1b3RlIChndWlsbGVtZXQpXG4kc2N1dC1sYXF1bzogXCJcXDAwYWJcIjtcbi8vIHJpZ2h0IGRvdWJsZSBhbmdsZSBxdW90ZSAoZ3VpbGxlbWV0KVxuJHNjdXQtcmFxdW86IFwiXFwwMGJiXCI7XG5cbi8vIGVtIGRhc2ggKG11dHRvbilcbiRzY3V0LW1kYXNoOiBcIlxcMjAxNFwiO1xuLy8gZW4gZGFzaCAobnV0KVxuJHNjdXQtbmRhc2g6IFwiXFwyMDEzXCI7XG4vLyBoeXBoZW5cbiRzY3V0LWh5cGhlbjogXCJcXDIwMTBcIjtcblxuLy8gYW1wZXJzYW5kXG4kc2N1dC1hbXA6IFwiXFwwMDI2XCI7XG4vLyBncmVhdGVyIHRoYW5cbiRzY3V0LWd0OiBcIlxcMDAzZVwiO1xuLy8gbGVzcyB0aGFuXG4kc2N1dC1sdDogXCJcXDAwM2NcIjtcbi8vIHRpbWVzXG4kc2N1dC10aW1lczogXCJcXDAwRDdcIjtcbi8vIGJpZyB0aW1lc1xuJHNjdXQtYmlndGltZXM6IFwiXFwyNzE1XCI7XG4vLyBjaGVja21hcmtcbiRzY3V0LWNoZWNrbWFyazogXCJcXDI3MTNcIjtcblxuLy8gc2VjdGlvbiBzaWduIChkb3VibGUgUywgaHVycmljYW5lLCBzZWN0aW9uYWwgc3ltYm9sLCB0aGUgbGVnYWwgZG91Z2hudXQsIHNpZ251bSBzZWN0aW9uaXMpXG4kc2N1dC1zZWN0OiBcIlxcMDBhN1wiO1xuLy8gcGFyYWdyYXBoIHN5bWJvbCAocGlsY3JvdylcbiRzY3V0LXBhcmE6IFwiXFwwMGI2XCI7XG5cbi8vIG1pZGRvdCAoaW50ZXJwdW5jdCwgaW50ZXJwb2ludClcbiRzY3V0LW1pZGRvdDogXCJcXDAwYjdcIjtcbi8vIG8tc2xhc2ggKHNsYXNoZWQgbylcbiRzY3V0LW9zbGFzaDogXCJcXDAwZjhcIjtcbi8vIGJ1bGxldFxuJHNjdXQtYnVsbDogXCJcXDIwMjJcIjtcbi8vIHdoaXRlIGJ1bGxldFxuJHNjdXQtd2hpYnVsbDogXCJcXDI1RTZcIjtcbi8vIGhvcml6b250YWwgZWxsaXBzaXNcbiRzY3V0LWhlbGxpcDogXCJcXDIwMjZcIjtcbi8vIHZlcnRpY2FsIGVsbGlwc2lzXG4kc2N1dC12ZWxsaXA6IFwiXFwyMkVFXCI7XG4vLyBtaWRsaW5lIGhvcml6b250YWwgZWxsaXBzaXNcbiRzY3V0LW1pZGhlbGxpcDogXCJcXDIyRUZcIjtcblxuLy8gdXAtcG9pbnRpbmcgdHJpYW5nbGVcbiRzY3V0LXV0cmk6IFwiXFwyNWIyXCI7XG4vLyBkb3duLXBvaW50aW5nIHRyaWFuZ2xlXG4kc2N1dC1kdHJpOiBcIlxcMjViY1wiO1xuLy8gbGVmdC1wb2ludGluZyB0cmlhbmdsZVxuJHNjdXQtbHRyaTogXCJcXDI1YzBcIjtcbi8vIHJpZ2h0LXBvaW50aW5nIHRyaWFuZ2xlXG4kc2N1dC1ydHJpOiBcIlxcMjViNlwiO1xuLy8gdXAtcG9pbnRpbmcgc21hbGwgdHJpYW5nbGVcbiRzY3V0LXVzdHJpOiBcIlxcMjViNFwiO1xuLy8gZG93bi1wb2ludGluZyBzbWFsbCB0cmlhbmdsZVxuJHNjdXQtZHN0cmk6IFwiXFwyNWJlXCI7XG4vLyBsZWZ0LXBvaW50aW5nIHNtYWxsIHRyaWFuZ2xlXG4kc2N1dC1sc3RyaTogXCJcXDI1YzJcIjtcbi8vIHJpZ2h0LXBvaW50aW5nIHNtYWxsIHRyaWFuZ2xlXG4kc2N1dC1yc3RyaTogXCJcXDI1YjhcIjtcbi8vIGRpYW1vbmRcbiRzY3V0LWRpYW1vbmQ6IFwiXFwyNWM2XCI7XG4vLyBmaXNoZXllXG4kc2N1dC1maXNoZXllOiBcIlxcMjVjOVwiO1xuLy8gYnVsbHNleWVcbiRzY3V0LWJ1bGxzZXllOiBcIlxcMjVjZVwiO1xuLy8gY2lyY2xlXG4kc2N1dC1jaXJjbGU6IFwiXFwyNWNmXCI7XG4vLyB3aGl0ZSBjaXJjbGVcbiRzY3V0LXdoaXRlY2lyY2xlOiBcIlxcMjVjYlwiO1xuLy8gc3F1YXJlXG4kc2N1dC1zcXVhcmU6IFwiXFwyNWEwXCI7XG4vLyB3aGl0ZSBzcXVhcmVcbiRzY3V0LXdoaXRlc3F1YXJlOiBcIlxcMjVhMVwiO1xuLy8gc21hbGwgc3F1YXJlXG4kc2N1dC1zc3F1YXJlOiBcIlxcMjVhYVwiO1xuLy8gc21hbGwgd2hpdGUgc3F1YXJlXG4kc2N1dC1zd2hpdGVzcXVhcmU6IFwiXFwyNWFiXCI7XG5cbi8vIGdlbmVyYWwgY3VycmVuY3lcbiRzY3V0LWN1cnJlbmN5OiBcIlxcMDBhNFwiO1xuLy8gY2VudFxuJHNjdXQtY2VudDogXCJcXDAwYTJcIjtcbi8vIGRvbGxhclxuJHNjdXQtZG9sbGFyOiBcIlxcMDAyNFwiO1xuLy8gcG91bmRcbiRzY3V0LXBvdW5kOiBcIlxcMDBhM1wiO1xuLy8gZXVyb1xuJHNjdXQtZXVybzogXCJcXDIwYWNcIjtcbi8vIHllblxuJHNjdXQteWVuOiBcIlxcMDBhNVwiO1xuLy8gcnVwZWVcbiRzY3V0LXJ1cGVlOiBcIlxcMjBCOVwiO1xuQGZ1bmN0aW9uIG1haW4tc3JjKCRmb3JtYXRzLCAkZmlsZS1wYXRoLCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gUmV0dXJuIHRoZSBsaXN0IG9mIGBzcmNgIHZhbHVlcywgaW4gb3JkZXIsIHRoYXRcbiAgLy8gYSBnb29kIGBAZm9udC1mYWNlYCB3aWxsIG5lZWQsIGluY2x1ZGluZyBvbmx5XG4gIC8vIHRob3NlIGZvcm1hdHMgc3BlY2lmaWVkIGluIHRoZSBsaXN0IGAkZm9ybWF0c2AuXG4gICRyZXN1bHQ6ICgpO1xuICBAaWYgaW5kZXgoJGZvcm1hdHMsIGVvdCkge1xuICAgICRlb3QtdmFsOiB1cmwoJyN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKTtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgJGVvdC12YWwsIGNvbW1hKTtcbiAgfVxuICBAaWYgaW5kZXgoJGZvcm1hdHMsIHdvZmYyKSB7XG4gICAgJHdvZmYyLXZhbDogdXJsKCcjeyRmaWxlLXBhdGh9LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkd29mZjItdmFsLCBjb21tYSk7XG4gIH1cbiAgQGlmIGluZGV4KCRmb3JtYXRzLCB3b2ZmKSB7XG4gICAgJHdvZmYtdmFsOiB1cmwoJyN7JGZpbGUtcGF0aH0ud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkd29mZi12YWwsIGNvbW1hKTtcbiAgfVxuICBAaWYgaW5kZXgoJGZvcm1hdHMsIHR0Zikge1xuICAgICR0dGYtdmFsOiB1cmwoJyN7JGZpbGUtcGF0aH0udHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkdHRmLXZhbCwgY29tbWEpO1xuICB9XG4gIEBpZiBpbmRleCgkZm9ybWF0cywgc3ZnKSB7XG4gICAgJHN2Zy12YWw6IHVybCgnI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9JykgZm9ybWF0KCdzdmcnKTtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgJHN2Zy12YWwsIGNvbW1hKTtcbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbkBtaXhpbiBzY3V0LWZvbnQtZmFjZSAoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmdcbikge1xuXG4gIEBpZiBpbmRleCgnaXRhbGljJyAnb2JsaXF1ZScsICR3ZWlnaHQpIHtcbiAgICAkc3R5bGU6ICR3ZWlnaHQ7XG4gICAgJHdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG5cbiAgICBAaWYgaW5kZXgoJGZvcm1hdHMsIGVvdCkge1xuICAgICAgc3JjOiB1cmwoJyN7JGZpbGUtcGF0aH0uZW90Jyk7XG4gICAgfVxuICAgIHNyYzogbWFpbi1zcmMoJGZvcm1hdHMsICRmaWxlLXBhdGgsICRmb250LWZhbWlseSk7XG4gIH1cblxufVxuXG5AbWl4aW4gc2N1dC1oYW5naW5nLWluZGVudCAoXG4gICRpbmRlbnQ6IDFlbVxuKSB7XG5cbiAgLy8gcGFkZGluZy1sZWZ0IGNyZWF0ZXMgdGhlIGluZGVudCxcbiAgLy8gd2hpbGUgdGV4dC1pbmRlbnQgcHVsbHMgdGhlIGZpcnN0IGxpbmVcbiAgLy8gYmFjayB0byB0aGUgZWRnZS5cblxuICBwYWRkaW5nLWxlZnQ6ICRpbmRlbnQ7XG4gIHRleHQtaW5kZW50OiAtJGluZGVudDtcblxufVxuXG4lc2N1dC1oYW5naW5nLWluZGVudCB7XG4gIEBpbmNsdWRlIHNjdXQtaGFuZ2luZy1pbmRlbnQ7XG59XG5AbWl4aW4gc2N1dC1pbmRlbnRlZC1wcyAoXG4gICRpbmRlbnQ6IDEuNWVtLFxuICAkbm8tZmlyc3QtaW5kZW50OiB0cnVlXG4pIHtcblxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1pbmRlbnQ6ICRpbmRlbnQ7XG4gIH1cblxuICBAaWYgJG5vLWZpcnN0LWluZGVudCB7XG4gICAgcDpmaXJzdC1vZi10eXBlIHtcbiAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgIH1cbiAgfVxuXG59XG5cbiVzY3V0LWluZGVudGVkLXBzIHtcbiAgQGluY2x1ZGUgc2N1dC1pbmRlbnRlZC1wcztcbn1cbkBtaXhpbiBzY3V0LWtleS12YWwgKFxuICAkZGl2aWRlcjogXCI6XCIsXG4gICRwYWQ6IDAuMjVlbSxcbiAgJGluZGVudDogMWVtLFxuICAkc3BhY2luZzogMCxcbiAgJHBhZC1sZWZ0OiAwXG4pIHtcblxuICAmID4gZHQge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJGRpdmlkZXI7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRwYWQ7XG4gICAgICBAaWYgJHBhZC1sZWZ0ICE9IDAge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHBhZC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYgPiBkZCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRpbmRlbnQ7XG4gICAgQGlmICRzcGFjaW5nICE9IDAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgfVxuICB9XG5cbn1cblxuJXNjdXQta2V5LXZhbCB7XG4gIEBpbmNsdWRlIHNjdXQta2V5LXZhbDtcbn1cbkBtaXhpbiBzY3V0LWxpbmstYmIgKFxuICAkY29sb3I6IGluaGVyaXQsXG4gICRzdHlsZTogc29saWQsXG4gICR3aWR0aDogMXB4XG4pIHtcblxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogJHdpZHRoO1xuICBib3JkZXItYm90dG9tLXN0eWxlOiAkc3R5bGU7XG4gIEBpZiAkY29sb3IgIT0gaW5oZXJpdCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICB9XG5cbn1cblxuJXNjdXQtbGluay1iYiB7XG4gIEBpbmNsdWRlIHNjdXQtbGluay1iYjtcbn1cbi8vIFNDVVQgTElOSyBVTlNUWUxFRFxuLy8gaHR0cDovL2RhdmlkdGhlY2xhcmsuZ2l0aHViLmlvL3NjdXQvI2xpbmstdW5zdHlsZWRcblxuQG1peGluIHNjdXQtbGluay11bnN0eWxlZCgpIHtcblxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG59XG5cbiVzY3V0LWxpbmstdW5zdHlsZWQge1xuICBAaW5jbHVkZSBzY3V0LWxpbmstdW5zdHlsZWQoKTtcbn1cblxuQG1peGluIHNjdXQtcmV2ZXJzZS1pdGFsaWNzIChcbiAgJGVsZW1lbnRzOiBudWxsXG4pIHtcblxuICAkZWxlbWVudC1saXN0OiBlbSwgY2l0ZSwgaTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICAje2pvaW4oJGVsZW1lbnQtbGlzdCwgJGVsZW1lbnRzKX0ge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuXG59XG5cbiVzY3V0LXJldmVyc2UtaXRhbGljcyB7XG4gIEBpbmNsdWRlIHNjdXQtcmV2ZXJzZS1pdGFsaWNzO1xufVxuXG5AbWl4aW4gc2N1dC1zaWRlLWxpbmVkIChcbiAgJGhlaWdodDogMXB4LFxuICAkc3BhY2U6IDAuNWVtLFxuICAkY29sb3I6IGluaGVyaXQsXG4gICRzdHlsZTogc29saWQsXG4gICR2LWFkanVzdDogZmFsc2UsXG4gICRkb3VibGU6IGZhbHNlXG4pIHtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNTAlO1xuXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogJHN0eWxlO1xuICAgIGJvcmRlci10b3Atd2lkdGg6ICRoZWlnaHQ7XG5cbiAgICBAaWYgJGNvbG9yICE9IGluaGVyaXQge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAkdi1hZGp1c3QgIT0gZmFsc2Uge1xuICAgICAgYm90dG9tOiAkdi1hZGp1c3Q7XG4gICAgfVxuXG4gICAgQGlmICRkb3VibGUgIT0gZmFsc2Uge1xuICAgICAgaGVpZ2h0OiAkZG91YmxlO1xuICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogJHN0eWxlO1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogJGhlaWdodDtcbiAgICAgIEBpZiAkY29sb3IgIT0gaW5oZXJpdCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgcmlnaHQ6ICRzcGFjZTtcbiAgICBtYXJnaW4tbGVmdDogLTUwJTtcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBsZWZ0OiAkc3BhY2U7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNTAlO1xuICB9XG5cbn1cblxuJXNjdXQtc2lkZS1saW5lZCB7XG4gIEBpbmNsdWRlIHNjdXQtc2lkZS1saW5lZDtcbn1cbkBtaXhpbiBzY3V0LXRydW5jYXRlIHtcblxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxufVxuXG4lc2N1dC10cnVuY2F0ZSB7XG4gIEBpbmNsdWRlIHNjdXQtdHJ1bmNhdGU7XG59IiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuNC4xXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBEZXBlbmRlbmNpZXNcbkBpbXBvcnQgJy4uL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyBTZXR0aW5nc1xuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyBTYXNzIHV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZVxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuXG4gIEBpZiAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG4gIH1cblxuICBAaWYgJHByb3RvdHlwZSB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlcztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnWW91ciBzbWFsbGVzdCBicmVha3BvaW50IChkZWZpbmVkIGluICRicmVha3BvaW50cykgbXVzdCBiZSBzZXQgdG8gXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJyc7XG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XG4gICRuYW1lZDogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG4gIEBlbHNlIGlmICRicCA9PSAncmV0aW5hJyB7XG4gICAgQHJldHVybiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSc7XG4gIH1cblxuICAvLyBUcnkgdG8gcHVsbCBhIG5hbWVkIGJyZWFrcG9pbnQgb3V0IG9mIHRoZSAkYnJlYWtwb2ludHMgbWFwXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgIH1cblxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgICRuYW1lZDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciAkYnJlYWtwb2ludHMgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXG4gICRicDogLXpmLWJwLXRvLWVtKCRicCk7XG4gIEBpZiAkYnAtbWF4IHtcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAoMS8xNik7XG4gIH1cblxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cbiAgLy8gLSBJdCdzIGEgbmFtZWQgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBkb3duXCIgb3IgXCIwIHVwXCJcbiAgLy8gLSBJdCdzIGEgbnVtZXJpYyBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIFwiICsgYW55dGhpbmdcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gYG9ubHlgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pYFxuICAgIEBpZiAkZGlyID09ICdvbmx5JyB7XG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcbiAgICAgIEBpZiAkbmFtZWQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWluLXdpZHRoXCIgaWYgdGhlIGZsb29yIGlzIGdyZWF0ZXIgdGhhbiAwXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG5cbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JGJwLW1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYGRvd25gIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1heC13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGRpciA9PSAnZG93bicge1xuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xuXG4gICAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIGlucHV0IHZhbHVlIGlzIGV4YWN0bHkgXCIwIGRvd25cIixcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcbiAgICAgIEBpZiAkbmFtZWQgb3IgJGJwID4gMGVtIHtcbiAgICAgICAgQGlmICRtYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgdXBgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcbiAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICR2YWx1ZSk7XG4gICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuXG4gIC8vIE1ha2UgYnJlYWtwb2ludCBzaXplIGF2YWlsYWJsZSBhcyBhIHZhcmlhYmxlXG4gICRvbGQtemYtc2l6ZTogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgQGlmICRzdHIgPT0gJycge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgQGVsc2Uge1xuICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcbiAgICBAaWYgJGJwICE9IG51bGwgYW5kICRicCA8PSAkcGJwIHtcbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGJyZWFrcG9pbnQgc2l6ZVxuICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kX2tleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZF9rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kX2tleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW5nIC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2luZy5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cblxuLy8gUGxhY2Vob2xkZXIgc2VsZWN0b3IgZm9yIG1lZGl1bS1hbmQtdXAgbW9kYWxzXG4vLyBQcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIHdoZW4gZGVmaW5pbmcgbXVsdGlwbGUgUmV2ZWFsIHNpemVzXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAlcmV2ZWFsLWNlbnRlcmVkIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1vZGFsIG92ZXJsYXkuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG92ZXJsYXkuXG5AbWl4aW4gcmV2ZWFsLW92ZXJsYXkoJGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcblxuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgQGV4dGVuZCAlcmV2ZWFsLWNlbnRlcmVkO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG4gIC8vIFtUT0RPXSBJcyB0aGlzIG5lY2Vzc2FyeT9cbiAgYm9keS5pcy1yZXZlYWwtb3BlbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBodG1sIGdldHMgdGhpcyBjbGFzcyBvbmx5IGluIGlPU1xuICBodG1sLmlzLXJldmVhbC1vcGVuLFxuICBodG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAvLyBPdmVybGF5XG4gIC5yZXZlYWwtb3ZlcmxheSB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW92ZXJsYXk7XG4gIH1cblxuICAvLyBNb2RhbCBjb250YWluZXJcbiAgLnJldmVhbCB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKCRyZXZlYWwtd2lkdGgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gUmVtb3ZlIHBhZGRpbmdcbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHRoZSBub3JtYWxpemUoKSBtaXhpbi5cbkBmdW5jdGlvbiBfbm9ybWFsaXplLWluY2x1ZGUoJHNlY3Rpb24sICRleGNsdWRlOiBudWxsKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGdsb2JhbCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRoaXMgZnVuY3Rpb24uXG4gIEBpZiBub3QgZ2xvYmFsX3ZhcmlhYmxlX2V4aXN0cyhfbm9ybWFsaXplLWluY2x1ZGUpIHtcbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiAoKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6ICgpICFnbG9iYWw7XG4gIH1cbiAgLy8gU2luY2Ugd2UgYXJlIGdpdmVuIDIgcGFyYW1ldGVycywgc2V0IHRoZSBnbG9iYWwgdmFyaWFibGVzLlxuICBAaWYgJGV4Y2x1ZGUgIT0gbnVsbCB7XG4gICAgJGluY2x1ZGU6ICRzZWN0aW9uO1xuICAgIC8vIFNhc3MgZG9lc24ndCBoYXZlIHN0YXRpYyB2YXJpYWJsZXMsIHNvIHRoZSB3b3JrLWFyb3VuZCBpcyB0byBzdHVmZiB0aGVzZVxuICAgIC8vIHZhbHVlcyBpbnRvIGdsb2JhbCB2YXJpYWJsZXMgc28gd2UgY2FuIGFjY2VzcyB0aGVtIGluIGZ1dHVyZSBjYWxscy5cbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiBpZih0eXBlLW9mKCRpbmNsdWRlKSA9PSAnbGlzdCcsICRpbmNsdWRlLCAoJGluY2x1ZGUpKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6IGlmKHR5cGUtb2YoJGV4Y2x1ZGUpID09ICdsaXN0JywgJGV4Y2x1ZGUsICgkZXhjbHVkZSkpICFnbG9iYWw7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHNlY3Rpb24gaXMgaW4gdGhlICRpbmNsdWRlIGxpc3QuXG4gIEBpZiBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCAkc2VjdGlvbikge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBJZiAkaW5jbHVkZSBpcyBzZXQgdG8gKGFsbCksIG1ha2Ugc3VyZSAkc2VjdGlvbiBpcyBub3QgaW4gJGV4Y2x1ZGUuXG4gIEBlbHNlIGlmIG5vdCBpbmRleCgkX25vcm1hbGl6ZS1leGNsdWRlLCAkc2VjdGlvbikgYW5kIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsIGFsbCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplKCRpbmNsdWRlOiAoYWxsKSwgJGV4Y2x1ZGU6ICgpKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGhlbHBlciBmdW5jdGlvbiBieSBwYXNzaW5nIGl0IHRoaXMgbWl4aW4ncyBwYXJhbWV0ZXJzLlxuICAkaW5pdDogX25vcm1hbGl6ZS1pbmNsdWRlKCRpbmNsdWRlLCAkZXhjbHVkZSk7XG5cbiAgLy8gSWYgd2UndmUgY3VzdG9taXplZCBhbnkgZm9udCB2YXJpYWJsZXMsIHdlJ2xsIG5lZWQgZXh0cmEgcHJvcGVydGllcy5cbiAgQGlmICRiYXNlLWZvbnQtc2l6ZSAhPSAxNnB4XG4gICAgb3IgJGJhc2UtbGluZS1oZWlnaHQgIT0gMjRweFxuICAgIG9yICRiYXNlLXVuaXQgIT0gJ2VtJ1xuICAgIG9yICRoMS1mb250LXNpemUgIT0gMiAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMi1mb250LXNpemUgIT0gMS41ICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMy1mb250LXNpemUgIT0gMS4xNyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNC1mb250LXNpemUgIT0gMSAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNS1mb250LXNpemUgIT0gMC44MyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNi1mb250LXNpemUgIT0gMC42NyAqICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShkb2N1bWVudCkge1xuICAgIC8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cblxuICAgIGh0bWwge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvLyBDb3JyZWN0IG9sZCBicm93c2VyIGJ1ZyB0aGF0IHByZXZlbnRlZCBhY2Nlc3NpYmxlIHJlc2l6aW5nIG9mIHRleHRcbiAgICAgICAgLy8gd2hlbiByb290IGZvbnQtc2l6ZSBpcyBzZXQgd2l0aCBweCBvciBlbS5cbiAgICAgICAgZm9udC1zaXplOiAoJGJhc2UtZm9udC1zaXplIC8gMTZweCkgKiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2VjdGlvbnMpIHtcbiAgICAvKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGJvZHkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXJ0aWNsZSxcbiAgICBhc2lkZSxcbiAgICBmb290ZXIsXG4gICAgaGVhZGVyLFxuICAgIG5hdixcbiAgICBzZWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgaDEge1xuICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDEtZm9udC1zaXplKTtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLyogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuICovXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgaDIge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDItZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDMtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDQtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDUtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDYge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDYtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGdyb3VwaW5nKSB7XG4gICAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuXG4gICAgICBkbCxcbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgKi9cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIG9sLFxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRkIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgZmlnY2FwdGlvbixcbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuXG4gICAgZmlndXJlIHtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMWVtICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5cbiAgICBociB7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICAgICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgbWFpbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIHAsXG4gICAgICBwcmUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBwcmUge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUobGlua3MpIHtcbiAgICAvKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuXG4gICAgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgYTphY3RpdmUsXG4gICAgYTpob3ZlciB7XG4gICAgICBvdXRsaW5lLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUodGV4dCkge1xuICAgIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYWJiclt0aXRsZV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBzYW1wIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5cbiAgICBkZm4ge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1hcmsge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3ViLFxuICAgIHN1cCB7XG4gICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cblxuICAgIHN1YiB7XG4gICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgfVxuXG4gICAgc3VwIHtcbiAgICAgIHRvcDogLTAuNWVtO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZW1iZWRkZWQpIHtcbiAgICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXVkaW8sXG4gICAgdmlkZW8ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5cbiAgICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIGltZyB7XG4gICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBzdmc6bm90KDpyb290KSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZm9ybXMpIHtcbiAgICAvKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBpbnB1dCxcbiAgICBvcHRncm91cCxcbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemUpICogMWVtOyAvKiAxICovXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gICAgICB9XG4gICAgICBtYXJnaW46IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbiB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgc2VsZWN0IHsgLyogMSAqL1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgW3R5cGU9XCJidXR0b25cIl0sXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuXG4gICAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqL1xuXG4gICAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5cbiAgICBpbnB1dCB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqL1xuXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAgICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIGxlZ2VuZCB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAzICovXG4gICAgICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5cbiAgICBwcm9ncmVzcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGludGVyYWN0aXZlKSB7XG4gICAgLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBkZXRhaWxzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3VtbWFyeSB7XG4gICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qXG4gICAgICAgICAqIDEuIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgICAqIDIuIFNldCBjb25zaXN0ZW50IHNwYWNlIGZvciB0aGUgbGlzdCBzdHlsZSBpbWFnZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApOyAvKiAxICovXG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50OyAvKiAyICovXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICAgKi9cblxuICAgICAgICBtZW51ICYsXG4gICAgICAgIG9sICYsXG4gICAgICAgIHVsICYge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2NyaXB0aW5nKSB7XG4gICAgLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgY2FudmFzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIHRlbXBsYXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShoaWRkZW4pIHtcbiAgICAvKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBWYXJpYWJsZXNcbi8vXG4vLyBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHZhbHVlcyBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZXMgaW4geW91ciBTYXNzXG4vLyBiZWZvcmUgaW1wb3J0aW5nIHRoZSBub3JtYWxpemUtc2NzcyBsaWJyYXJ5LlxuXG4vLyBUaGUgZm9udCBzaXplIHNldCBvbiB0aGUgcm9vdCBodG1sIGVsZW1lbnQuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNlIGxpbmUgaGVpZ2h0IGRldGVybWluZXMgdGhlIGJhc2ljIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtLlxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBsZW5ndGggdW5pdCBpbiB3aGljaCB0byBvdXRwdXQgdmVydGljYWwgcmh5dGhtIHZhbHVlcy5cbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxuJGJhc2UtdW5pdDogJ2VtJyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udCBmYW1pbHkuXG4kYmFzZS1mb250LWZhbWlseTogc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbnQgc2l6ZXMgZm9yIGgxLWg2LlxuJGgxLWZvbnQtc2l6ZTogMiAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IDEuNSAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOiAxLjE3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogMSAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IDAuODMgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAwLjY3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLyBUaGUgYW1vdW50IGxpc3RzIGFuZCBibG9ja3F1b3RlcyBhcmUgaW5kZW50ZWQuXG4kaW5kZW50LWFtb3VudDogNDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBjb250cm9scyB3aGV0aGVyIG5vcm1hbGl6ZS1zY3NzIHdpbGwgb3V0cHV0XG4vLyBmb250LXNpemVzLCBsaW5lLWhlaWdodHMgYW5kIGJsb2NrLWxldmVsIHRvcC9ib3R0b20gbWFyZ2lucyB0aGF0IGZvcm0gYSBiYXNpY1xuLy8gdmVydGljYWwgcmh5dGhtIG9uIHRoZSBwYWdlLCB3aGljaCBkaWZmZXJzIGZyb20gdGhlIG9yaWdpbmFsIE5vcm1hbGl6ZS5jc3MuXG4vLyBIb3dldmVyLCBjaGFuZ2luZyBhbnkgb2YgdGhlIHZhcmlhYmxlcyBhYm92ZSB3aWxsIGNhdXNlXG4vLyAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB0byBiZSBhdXRvbWF0aWNhbGx5IHNldCB0byB0cnVlLlxuJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IGZhbHNlICFkZWZhdWx0O1xuIiwiLy9cbi8vIFZlcnRpY2FsIFJoeXRobVxuLy9cbi8vIFRoaXMgaXMgdGhlIG1pbmltYWwgYW1vdW50IG9mIGNvZGUgbmVlZGVkIHRvIGNyZWF0ZSB2ZXJ0aWNhbCByaHl0aG0gaW4gb3VyXG4vLyBDU1MuIElmIHlvdSBhcmUgbG9va2luZyBmb3IgYSByb2J1c3Qgc29sdXRpb24sIGxvb2sgYXQgdGhlIGV4Y2VsbGVudCBUeXBleVxuLy8gbGlicmFyeS4gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vanB0YXJhbnRvL3R5cGV5XG5cbkBmdW5jdGlvbiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUsICR1bml0OiAkYmFzZS11bml0KSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gcHgge1xuICAgIEBlcnJvciBcIlRoZSBub3JtYWxpemUgdmVydGljYWwtcmh5dGhtIG1vZHVsZSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIEBpZiAkdW5pdCA9PSByZW0ge1xuICAgIEByZXR1cm4gKCR2YWx1ZSAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxcmVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09IGVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkcmVsYXRpdmUtdG8pICogMWVtO1xuICB9XG4gIEBlbHNlIHsgLy8gJHVuaXQgPT0gcHhcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxufVxuXG5AbWl4aW4gbm9ybWFsaXplLWZvbnQtc2l6ZSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3B4JyB7XG4gICAgQGVycm9yIFwibm9ybWFsaXplLWZvbnQtc2l6ZSgpIG9ubHkgc3VwcG9ydHMgcHggaW5wdXRzLiBUaGUgdHlwZXkgbGlicmFyeSBpcyBiZXR0ZXIuXCI7XG4gIH1cbiAgZm9udC1zaXplOiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1yaHl0aG0oJHByb3BlcnR5LCAkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICAkdmFsdWUtbGlzdDogJHZhbHVlcztcbiAgJHNlcDogc3BhY2U7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09ICdsaXN0JyB7XG4gICAgJHNlcDogbGlzdC1zZXBhcmF0b3IoJHZhbHVlcyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWx1ZS1saXN0OiBhcHBlbmQoKCksICR2YWx1ZXMpO1xuICB9XG5cbiAgJG5vcm1hbGl6ZWQtdmFsdWVzOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZS1saXN0IHtcbiAgICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgJHZhbHVlICE9IDAge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiBub3JtYWxpemUtcmh5dGhtKCRiYXNlLWxpbmUtaGVpZ2h0LCAkcmVsYXRpdmUtdG8pO1xuICAgIH1cbiAgICAkbm9ybWFsaXplZC12YWx1ZXM6IGFwcGVuZCgkbm9ybWFsaXplZC12YWx1ZXMsICR2YWx1ZSwgJHNlcCk7XG4gIH1cbiAgI3skcHJvcGVydHl9OiAkbm9ybWFsaXplZC12YWx1ZXM7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtbWFyZ2luKCR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obWFyZ2luLCAkdmFsdWVzLCAkcmVsYXRpdmUtdG8pO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRtaW4tbGluZS1wYWRkaW5nOiAycHgpIHtcbiAgJGxpbmVzOiBjZWlsKCRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCk7XG4gIC8vIElmIGxpbmVzIGFyZSBjcmFtcGVkIGluY2x1ZGUgc29tZSBleHRyYSBsZWFkaW5nLlxuICBAaWYgKCRsaW5lcyAqICRiYXNlLWxpbmUtaGVpZ2h0IC0gJGZvbnQtc2l6ZSkgPCAoJG1pbi1saW5lLXBhZGRpbmcgKiAyKSB7XG4gICAgJGxpbmVzOiAkbGluZXMgKyAxO1xuICB9XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obGluZS1oZWlnaHQsICRsaW5lcywgJGZvbnQtc2l6ZSk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtYXR0cmlidXRlLW5lc3RpbmcsIGZvcmNlLXBzZXVkby1uZXN0aW5nLCBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLy8gR2xvYmFsIHRvbGVyYW5jZSBmb3IgY29sb3IgcGljayBjb250cmFzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbiRwcmltYXJ5LWNvbG9yOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kc2Vjb25kYXJ5LWNvbG9yOiBnZXQtY29sb3Ioc2Vjb25kYXJ5KTtcbiRzdWNjZXNzLWNvbG9yOiBnZXQtY29sb3Ioc3VjY2Vzcyk7XG4kd2FybmluZy1jb2xvcjogZ2V0LWNvbG9yKHdhcm5pbmcpO1xuJGFsZXJ0LWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgLXpmLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcbiAgc2VsZWN0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gU3R5bGVzIEdvb2dsZSBNYXBzIGFuZCBNYXBRdWVzdCBlbWJlZHMgcHJvcGVybHlcbiAgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1pZHNcbiAgLm1hcF9jYW52YXMsXG4gIC5tcWEtZGlzcGxheSB7XG4gICAgaW1nLFxuICAgIGVtYmVkLFxuICAgIG9iamVjdCB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCA8YnV0dG9uPiBzdHlsZXMgY3JlYXRlZCBieSBtb3N0IGJyb3dzZXJzXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gICAgcGFkZGluZzogMDtcblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBQcmV2ZW50IHRleHQgb3ZlcmZsb3cgb24gcHJlXG4gIHByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvLyBNYWtlIHJlc2V0IGluaGVyaXQgZm9udC1mYW1pbHkgaW5zdGVhZCBvZiBzZXR0aW5ncyBzYW5zLXNlcmlmXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIExvYWRzIG5vcm1hbGl6ZS5jc3MuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLXpmLW5vcm1hbGl6ZSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZSgpO1xufVxuIiwiLy8gIEZvdW5kYXRpb24gZm9yIFNpdGVzIFNldHRpbmdzXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XG4vL1xuLy8gICAxLiBHbG9iYWxcbi8vICAgMi4gQnJlYWtwb2ludHNcbi8vICAgMy4gVGhlIEdyaWRcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gICA2LiBBYmlkZVxuLy8gICA3LiBBY2NvcmRpb25cbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcbi8vICAgOS4gQmFkZ2Vcbi8vICAxMC4gQnJlYWRjcnVtYnNcbi8vICAxMS4gQnV0dG9uXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxuLy8gIDEzLiBDYWxsb3V0XG4vLyAgMTQuIENhcmRcbi8vICAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAgMTYuIERyaWxsZG93blxuLy8gIDE3LiBEcm9wZG93blxuLy8gIDE4LiBEcm9wZG93biBNZW51XG4vLyAgMTkuIEZsZXhib3ggVXRpbGl0aWVzXG4vLyAgMjAuIEZvcm1zXG4vLyAgMjEuIExhYmVsXG4vLyAgMjIuIE1lZGlhIE9iamVjdFxuLy8gIDIzLiBNZW51XG4vLyAgMjQuIE1ldGVyXG4vLyAgMjUuIE9mZi1jYW52YXNcbi8vICAyNi4gT3JiaXRcbi8vICAyNy4gUGFnaW5hdGlvblxuLy8gIDI4LiBQcm9ncmVzcyBCYXJcbi8vICAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAgMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAgMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gIDMyLiBQcm90b3R5cGUgQm9yZGVyZWRcbi8vICAzMy4gUHJvdG90eXBlIERpc3BsYXlcbi8vICAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXG4vLyAgMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vICAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vICAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxuLy8gIDQwLiBQcm90b3R5cGUgU2hhZG93XG4vLyAgNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vICA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcbi8vICA0My4gUHJvdG90eXBlIFRleHQtRGVjb3JhdGlvblxuLy8gIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxuLy8gIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vICA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gIDQ3LiBSZXZlYWxcbi8vICA0OC4gU2xpZGVyXG4vLyAgNDkuIFN3aXRjaFxuLy8gIDUwLiBUYWJsZVxuLy8gIDUxLiBUYWJzXG4vLyAgNTIuIFRodW1ibmFpbFxuLy8gIDUzLiBUaXRsZSBCYXJcbi8vICA1NC4gVG9vbHRpcFxuLy8gIDU1LiBUb3AgQmFyXG4vLyAgNTYuIFh5IEdyaWRcblxuQGltcG9ydCAnLi4vLi4vLi4vdmVuZG9yL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL3V0aWwnO1xuXG4vLyAxLiBHbG9iYWxcbi8vIC0tLS0tLS0tLVxuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTtcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDExMDApO1xuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjU7XG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pO1xuXG4kbGlnaHQtZ3JheTogI2U2ZTZlNjtcbiRtZWRpdW0tZ3JheTogI2NhY2FjYTtcbiRkYXJrLWdyYXk6ICM4YThhOGE7XG4kYmxhY2s6ICMwYTBhMGE7XG4kd2hpdGU6ICNmZWZlZmU7XG5cbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZTtcbiRnbG9iYWwtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC1wYWRkaW5nOiAxcmVtO1xuJGdsb2JhbC1wb3NpdGlvbjogMXJlbTtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsO1xuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZDtcbiRnbG9iYWwtcmFkaXVzOiAwO1xuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHI7XG4kZ2xvYmFsLWZsZXhib3g6IHRydWU7XG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2U7XG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwO1xuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlO1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbiRjb2xvcnM6IChcbiAgcHJpbWFyeTogJHByaW1hcnktY29sb3IsXG4gIHNlY29uZGFyeTogJHNlY29uZGFyeS1jb2xvcixcbiAgc3VjY2VzczogJHN1Y2Nlc3MtY29sb3IsXG4gIHdhcm5pbmc6ICR3YXJuaW5nLWNvbG9yLFxuICBhbGVydDogJGFsZXJ0LWNvbG9yLFxuXG4gIGxpZ2h0LWdyYXk6ICRsaWdodC1ncmF5LFxuICBtZWRpdW0tZ3JheTogJG1lZGl1bS1ncmF5LFxuICBkYXJrLWdyYXk6ICRkYXJrLWdyYXksXG4gIGJsYWNrOiAkYmxhY2ssXG4gIHdoaXRlOiAkd2hpdGVcbik7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pO1xuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKTtcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xuJGdyaWQtY29sdW1uLWFsaWFzOiAnY29sdW1ucyc7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pO1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJHNtYWxsLWZvbnQtc2l6ZTogODAlO1xuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKTtcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbDtcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbDtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHg7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJhZGdlLWNvbG9yOiAkd2hpdGU7XG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2s7XG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XG5cbi8vIDEwLiBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtO1xuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06ICcvJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cbi8vIDExLiBCdXR0b25cbi8vIC0tLS0tLS0tLS1cblxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdDtcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbTtcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRidXR0b24tZmlsbDogc29saWQ7XG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjaztcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4O1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKTtcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCU7XG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCU7XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNjtcbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZTtcblxuLy8gMTMuIENhbGxvdXRcbi8vIC0tLS0tLS0tLS0tXG5cbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xuJGNhbGxvdXQtcGFkZGluZzogMXJlbTtcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJTtcblxuLy8gMTQuIENhcmRcbi8vIC0tLS0tLS0tXG5cbiRjYXJkLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYXJkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kY2FyZC1zaGFkb3c6IG5vbmU7XG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRjYXJkLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wO1xuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXG4gIHNtYWxsOiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICBzbWFsbDogMC4zM2VtLFxuICBtZWRpdW06IDAuNXJlbSxcbik7XG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XG5cbi8vIDE2LiBEcmlsbGRvd25cbi8vIC0tLS0tLS0tLS0tLS1cblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHg7XG5cbi8vIDE3LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbTtcbiRkcm9wZG93bi13aWR0aDogMzAwcHg7XG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pO1xuXG4vLyAxOC4gRHJvcGRvd24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWU7XG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHg7XG4kZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc6IDEuNXJlbTtcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweDtcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDA7XG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XG5cbi8vIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNjtcbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWU7XG5cbi8vIDIwLiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSk7XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBMYWJlbFxuLy8gLS0tLS0tLS0tXG5cbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRsYWJlbC1jb2xvcjogJHdoaXRlO1xuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrO1xuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW07XG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjIuIE1lZGlhIE9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJTtcblxuLy8gMjMuIE1lbnVcbi8vIC0tLS0tLS0tXG5cbiRtZW51LW1hcmdpbjogMDtcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtO1xuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZTtcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZTtcbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlO1xuXG4vLyAyNC4gTWV0ZXJcbi8vIC0tLS0tLS0tLVxuXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XG4kbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yO1xuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XG5cbi8vIDI1LiBPZmYtY2FudmFzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4O1xuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplOiAyNTBweDtcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNyk7XG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4O1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExO1xuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTI7XG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMztcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTI7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZTtcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCc7XG5cbi8vIDI2LiBPcmJpdFxuLy8gLS0tLS0tLS0tXG5cbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheTtcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcblxuLy8gMjcuIFBhZ2luYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApO1xuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGU7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtcbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlO1xuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xuXG4vLyAyOC4gUHJvZ3Jlc3MgQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW07XG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDI5LiBQcm90b3R5cGUgQXJyb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zOiAoXG4gIGRvd24sXG4gIHVwLFxuICByaWdodCxcbiAgbGVmdFxuKTtcbiRwcm90b3R5cGUtYXJyb3ctc2l6ZTogMC40Mzc1cmVtO1xuJHByb3RvdHlwZS1hcnJvdy1jb2xvcjogJGJsYWNrO1xuXG4vLyAzMC4gUHJvdG90eXBlIEJvcmRlci1Cb3hcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ib3gtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuXG4vLyAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYm9yZGVyLW5vbmUtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuXG4vLyAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYm9yZGVyZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpO1xuJHByb3RvdHlwZS1ib3JkZXItdHlwZTogc29saWQ7XG4kcHJvdG90eXBlLWJvcmRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAzMy4gUHJvdG90eXBlIERpc3BsYXlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWRpc3BsYXktYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1kaXNwbGF5OiAoXG4gIGlubGluZSxcbiAgaW5saW5lLWJsb2NrLFxuICBibG9jayxcbiAgdGFibGUsXG4gIHRhYmxlLWNlbGxcbik7XG5cbi8vIDM0LiBQcm90b3R5cGUgRm9udC1TdHlsaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nOiByZW0tY2FsYyg0KTtcbiRwcm90b3R5cGUtZm9udC1ub3JtYWw6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRwcm90b3R5cGUtZm9udC1ib2xkOiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQ6IChcbiAgZGlzYyxcbiAgY2lyY2xlLFxuICBzcXVhcmVcbik7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZDogKFxuICBkZWNpbWFsLFxuICBsb3dlci1hbHBoYSxcbiAgbG93ZXItbGF0aW4sXG4gIGxvd2VyLXJvbWFuLFxuICB1cHBlci1hbHBoYSxcbiAgdXBwZXItbGF0aW4sXG4gIHVwcGVyLXJvbWFuXG4pO1xuXG4vLyAzNi4gUHJvdG90eXBlIE92ZXJmbG93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1vdmVyZmxvdzogKFxuICB2aXNpYmxlLFxuICBoaWRkZW4sXG4gIHNjcm9sbFxuKTtcblxuLy8gMzcuIFByb3RvdHlwZSBQb3NpdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtcG9zaXRpb246IChcbiAgc3RhdGljLFxuICByZWxhdGl2ZSxcbiAgYWJzb2x1dGUsXG4gIGZpeGVkXG4pO1xuJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4OiA5NzU7XG5cbi8vIDM4LiBQcm90b3R5cGUgUm91bmRlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpO1xuXG4vLyAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ246IGNlbnRlcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodDogcmVtLWNhbGMoMik7XG4kcHJvdG90eXBlLXNlcGFyYXRvci13aWR0aDogM3JlbTtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG5cbi8vIDQwLiBQcm90b3R5cGUgU2hhZG93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNoYWRvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjE2KSxcbiAgICAgICAgICAgICAgICAgICAgICAgMCAycHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKTtcblxuLy8gNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2l6aW5nOiAoXG4gIHdpZHRoLFxuICBoZWlnaHRcbik7XG4kcHJvdG90eXBlLXNpemVzOiAoXG4gIDI1OiAyNSUsXG4gIDUwOiA1MCUsXG4gIDc1OiA3NSUsXG4gIDEwMDogMTAwJVxuKTtcblxuLy8gNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc3BhY2Vycy1jb3VudDogMztcblxuLy8gNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZGVjb3JhdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pO1xuXG4vLyA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjogKFxuICBsb3dlcmNhc2UsXG4gIHVwcGVyY2FzZSxcbiAgY2FwaXRhbGl6ZVxuKTtcblxuLy8gNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4vLyA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbik7XG5cbi8vIDQ3LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA2MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KTtcblxuLy8gNDguIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDQ5LiBTd2l0Y2hcbi8vIC0tLS0tLS0tLS1cblxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcblxuLy8gNTAuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XG4kdGFibGUtYm9yZGVyOiBpbmhlcml0O1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IGluaGVyaXQ7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogaW5oZXJpdDtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogaW5oZXJpdDtcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IGluaGVyaXQ7XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGluaGVyaXQ7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDU2LiBYeSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4keHktZ3JpZDogdHJ1ZTtcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKTtcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiRibG9jay1ncmlkLW1heDogODtcblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vLyBcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gV2lkdGggZm9yIHRoZSB0YXJnZXQgc2lkZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciBvZiB0aGUgc2hhZG93LlxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxuICAkc2lkZTogYm90dG9tLFxuICAkc2l6ZTogMjBweCxcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcbikge1xuXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XG5cbiAgQGlmICgkc2lkZSA9PSB0b3ApIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxuICBAZWxzZWlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbiAgQGVsc2VpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG4gIEBlbHNlaWYgKCRzaWRlID09IGJvdHRvbSkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGNsaXAtcGF0aDogbm9uZTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IHRydWUsICRhdXRvLWluc2VydC1icmVha3BvaW50czogdHJ1ZSkge1xuICAkbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcblxuICBAaWYgbm90ICRzbWFsbCB7XG4gICAgJGxpc3Q6IHNsLXJlbW92ZSgkbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUgaW4gJGxpc3Qge1xuICAgICQtemYtc2l6ZTogJG5hbWUgIWdsb2JhbDtcblxuICAgIEBpZiAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIGZvdW5kYXRpb24tZ3JpZChcbiAgJHJvdzogJ3JvdycsXG4gICRjb2x1bW46ICdjb2x1bW4nLFxuICAkY29sdW1uLXJvdzogJ2NvbHVtbi1yb3cnLFxuICAkZ3V0dGVyOiAnZ3V0dGVyJyxcbiAgJHB1c2g6ICdwdXNoJyxcbiAgJHB1bGw6ICdwdWxsJyxcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcbiAgJHVuY2VudGVyOiAndW5jZW50ZXJlZCcsXG4gICRjb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcbiAgJG9mZnNldDogJ29mZnNldCcsXG4gICRlbmQ6ICdlbmQnLFxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCcsXG4gICRibG9jazogJ2Jsb2NrJ1xuKSB7XG4gIC8vIFJvd1xuICAuI3skcm93fSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAvLyBDb2xsYXBzaW5nXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGdyaWQtY29sdW1uLWd1dHRlcik7XG5cbiAgICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCAoZnVsbC13aWR0aCkgcm93XG4gICAgJi4jeyRleHBhbmRlZH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLiN7JGV4cGFuZGVkfSkgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRncmlkLWNvbHVtbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgIC8vIFN0YXRpYyAodW5yZXNwb25zaXZlKSByb3cgZ3V0dGVyc1xuICAgICAgLy9cbiAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGdyaWQtY29sdW1uLWd1dHRlciB7XG4gICAgICAgICYuI3skZ3V0dGVyfS0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLiN7JGNvbHVtbn0ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sO1xuXG4gICAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAgICYuI3skZW5kfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAuI3skcm93fSAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXNpemUoJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygkaSk7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LSN7JG9mZnNldH0tI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGksICcuI3skY29sdW1ufScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLiN7JGV4cGFuZGVkfS4jeyRyb3d9IC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9LiN7JHJvd30ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG5cbiAgICAvLyBQb3NpdGlvbmluZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY2VudGVyfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICB9XG5cbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jZW50ZXJ9LFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tMCxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LTAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtdW5wb3M7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC4jeyRjb2x1bW59LSN7JGJsb2NrfSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgQGlmICRjb2x1bW4gPT0gJ2NvbHVtbicgYW5kIGhhcy12YWx1ZSgkZ3JpZC1jb2x1bW4tYWxpYXMpIHtcbiAgICAuI3skZ3JpZC1jb2x1bW4tYWxpYXN9IHtcbiAgICAgIC8vIHNhc3MtbGludDpkaXNhYmxlLWJsb2NrIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuICAgICAgQGV4dGVuZCAuY29sdW1uO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpIC8gMiAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXRzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlcm4gdGhlbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJGd1dHRlciBbYXV0b11cbi8vLyAgIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkZ3V0dGVycyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkZ3V0dGVycyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkZ3V0dGVyLCAkZ3V0dGVycykge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG59XG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoMCk7XG59XG5cbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2x1bW4tZ3V0dGVyKCkuIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbC1ndXR0ZXIoKS4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIHdpZHRoIG9mIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkd2lkdGggWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCB0byBtYWtlIHRoZSBjb2x1bW4uIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXNpemUoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcbkBtaXhpbiBncmlkLWNvbC1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiYXNlZCBvbiBhIG51bWJlciBvZiBmYWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGNvbHVtbnNcbi8vLyAgIFdpZHRoIG9mIHRoZSBjb2x1bW4uIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBtYWtlIHRoZSBjb2x1bW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIHNpbmdsZSBkaWdpdCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBzcGFuIHRoYXQgbnVtYmVyIG9mIGNvbHVtbnMgd2lkZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgY29sdW1uIGNvdW50IG9mIHRoZSBwYXJlbnQgcm93LlxuLy8vICAgLSBBIGxpc3Qgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiICh3aXRob3V0IHF1b3Rlcykgd2lsbCBtYWtlIGEgY29sdW1uIHRoYXQgaXMgKngqIGNvbHVtbnMgd2lkZSwgYXNzdW1pbmcgKnkqIHRvdGFsIGNvbHVtbnMgZm9yIHRoZSBwYXJlbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIGNhbGN1bGF0ZWQgcGVyY2VudGFnZSB2YWx1ZS5cbkBmdW5jdGlvbiBncmlkLWNvbHVtbigkY29sdW1ucykge1xuICAkd2lkdGg6IDAlO1xuXG4gIC8vIFBhcnNpbmcgcGVyY2VudHMsIGRlY2ltYWxzLCBhbmQgY29sdW1uIGNvdW50c1xuICBAaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRjb2x1bW5zKSA9PSAnJScge1xuICAgICAgJHdpZHRoOiAkY29sdW1ucztcbiAgICB9XG4gICAgQGVsc2UgaWYgJGNvbHVtbnMgPCAxIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRncmlkLWNvbHVtbi1jb3VudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdsaXN0JyB7XG4gICAgQGlmIGxlbmd0aCgkY29sdW1ucykgIT0gMyB7XG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIi4nO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UobnRoKCRjb2x1bW5zLCAxKSAvIG50aCgkY29sdW1ucywgMykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFueXRoaW5nIGVsc2UgaXMgaW5jb3JyZWN0XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiLic7XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gTGFzdCBjb2x1bW4gYWxpZ25tZW50XG4gIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLXJvdztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAmLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBmdW5jdGlvbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEByZXR1cm4gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AbWl4aW4gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVycyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gRGlyZWN0aW9uIGFuZCBhbW91bnQgdG8gbW92ZS4gVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnQgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC4gU2V0IHRvIGNlbnRlciB0byBjZW50ZXIgdGhlIGNvbHVtbi5cbkBtaXhpbiBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgb3IgY2VudGVyLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTaXplcyBjaGlsZCBlbGVtZW50cyBzbyB0aGF0IGAkbmAgbnVtYmVyIG9mIGl0ZW1zIGFwcGVhciBvbiBlYWNoIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBlbGVtZW50cyB0byBkaXNwbGF5IHBlciByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJy5jb2x1bW4nXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGd1dHRlclxuLy8vICAgVGhlIGd1dHRlciB0byBhcHBseSB0byBjaGlsZCBlbGVtZW50cy4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtICRncmlkLWNvbHVtbi1ndXR0ZXIgd2lsbCB1c2UgdGhlIHZhbHVlcyBpbiB0aGUgJGdyaWQtY29sdW1uLWd1dHRlciBtYXAsIGluY2x1ZGluZyBicmVha3BvaW50IHNpemVzLlxuLy8vICAgLSBBIGZpeGVkIG51bWVyaWMgdmFsdWUgd2lsbCBhcHBseSB0aGlzIGd1dHRlciB0byBhbGwgYnJlYWtwb2ludHMuXG5AbWl4aW4gZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY29sdW1uJyxcbiAgJGd1dHRlcjogbnVsbFxuKSB7XG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICAvLyBJZiBhICRndXR0ZXIgdmFsdWUgaXMgcGFzc2VkXG4gICAgQGlmKCRndXR0ZXIpIHtcbiAgICAgIC8vIEd1dHRlcnNcbiAgICAgIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJHZhbHVlKSAvIDI7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoI3skbn1uKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBleHRyYSBDU1MgdG8gYmxvY2sgZ3JpZCBjaGlsZHJlbiBzbyB0aGUgbGFzdCBpdGVtcyBpbiB0aGUgcm93IGNlbnRlciBhdXRvbWF0aWNhbGx5LiBBcHBseSB0aGlzIHRvIHRoZSBjb2x1bW5zLCBub3QgdGhlIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBpdGVtcyB0aGF0IGFwcGVhciBpbiBlYWNoIHJvdy5cbkBtaXhpbiBncmlkLWxheW91dC1jZW50ZXItbGFzdCgkbikge1xuICBAZm9yICRpIGZyb20gMSB0byAkbiB7XG4gICAgQGlmICRpID09IDEge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gMTAwLyRuICogJGkpIC8gMiAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7ICBcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZW9jcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQc2V1ZG8gY29udGVudCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgIHNtYWxsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XG4gICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcbiAgICAgICAgI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcblxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcblxuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSB7XG4gICAgJixcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzcyxcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZChcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuXG4gIEBpZiAkc3R5bGUgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbjtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcblxuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQoJGNvbG9yLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbGxvdyBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xlYXIgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGNsZWFyIHtcbiAgICAgICYuY2xlYXIge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuXG4gICAgICAgICAgICAmLCAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICYsXG4gICAgICAgICAgICAgICYuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZm9jdXNlZCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBmb2N1c2VkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgdG8gdXNlIHdoZW4gaG92ZXJpbmcgb3ZlciBhIGRpc2FibGVkIHRleHQgaW5wdXQuXG4vLy8gQHR5cGUgQ3Vyc29yXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBmb3JtIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuXG4gICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmW2Zvcl0ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXRzIGluc2lkZSBsYWJlbHNcbiAgbGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbiAgbGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxuICBbdHlwZT0nZmlsZSddIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGZvcm0gbGFiZWxzLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIHNwYWNlIGJldHdlZW4gdGhlIGxhYmVsIGFuZCBpdHMgaW5wdXQgZmllbGQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAkZm9ybS1zcGFjaW5nICogMS41KTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzKTtcbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gKDEgLyAxNik7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAoMSAvIDE2KTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICZbZGlzYWJsZWRdIHtcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaXN0IGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbiB1bC5cbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemUsXG4gICRjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAmIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgQGlmICRhY2NvcmRpb24tcGx1c21pbnVzIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICB9XG5cbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTMnO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFjY29yZGlvbiBjb250ZW50LiBBcHBseSB0aGlzIHRvIHRoZSBjb250ZW50IHBhbmUgYmVsb3cgYW4gYWNjb3JkaW9uIGl0ZW0ncyB0aXRsZS5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyxcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1jb2xvclxuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZCA+ICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taXRlbTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBhY2NvcmRpb24gbWVudXMgaGF2ZSB0aGUgZGVmYXVsdCBhcnJvdyBzdHlsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIGJvcmRlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBMaXN0XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgaGVpZ2h0LlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtYWNjb3JkaW9uLW1lbnUtbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgfVxuICB9XG4gICYuYWxpZ24tbGVmdCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDFyZW07XG4gIH1cbiAgJi5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gIH1cbn1cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51IHtcblxuICAuYWNjb3JkaW9uLW1lbnUge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgICBib3JkZXItdG9wOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgfVxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiAgICB9XG4gICAgXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGEge1xuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luLCByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGxpIHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5oYXMtc3VibWVudS10b2dnbGUgPiBhIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4gIH1cblxuICAvLyBTdWJtZW51IHRvZ2dsZVxuICAuc3VibWVudS10b2dnbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICB3aWR0aDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ7XG5cbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjtcblxuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLy8gQWRkIHRoZSBhcnJvdyB0byB0aGUgdG9nZ2xlXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuXG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLy8gUm90YXRlIHRoZSBhcnJvdyB3aGVuIG1lbnUgaXMgb3BlblxuICAuc3VibWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD0ndHJ1ZSddOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gIH1cblxuICAuc3VibWVudS10b2dnbGUtdGV4dCB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFuIGhvdmVyZWQgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYGFjdGl2ZWAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBjZW50ZXJlZC4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYC5tZW51LWNlbnRlcmVkID4gLm1lbnVgIHdpdGggYC5tZW51LmFsaWduLWNlbnRlcmAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBtZW51LWNlbnRlcmVkYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxuXG4gIGEsXG4gIC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW1zLXBhZGRpbmc7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWxpZ24gbWVudSBpdGVtcy5cbkBtaXhpbiBtZW51LWFsaWduKCRhbGlnbm1lbnQpIHtcbiAgQGlmICRhbGlnbm1lbnQgPT0gbGVmdCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGNlbnRlciB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudS4gVGhpcyBlZmZlY3RzIHRoZSBzaWRlIG9mIHRoZSBgPGxpPmAgdGhhdCByZWNlaXZlcyB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIFskbWVudS1zaW1wbGUtbWFyZ2luXSAtIFRoZSBtYXJnaW4gdG8gYXBwbHkgdG8gZWFjaCBgPGxpPmAuXG5AbWl4aW4gbWVudS1zaW1wbGUoJGRpcjogJGdsb2JhbC1sZWZ0LCAkbWFyZ2luOiAkbWVudS1zaW1wbGUtbWFyZ2luKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBsaSArIGxpIHtcbiAgICBtYXJnaW4tI3skZGlyfTogJG1hcmdpbjtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkbWFyZ2luIFskbWVudS1uZXN0ZWQtbWFyZ2luXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG5lc3RlZC1hbGlnbm1lbnQgW2xlZnRdIC0gQWxpZ25tZW50IG9mIHRoZSBuZXN0ZWQgY2xhc3NcbkBtaXhpbiBtZW51LW5lc3RlZChcbiAgJG1hcmdpbjogJG1lbnUtbmVzdGVkLW1hcmdpbixcbiAgJG5lc3RlZC1hbGlnbm1lbnQ6IGxlZnRcbikge1xuICBAaWYgJG5lc3RlZC1hbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWFyZ2luO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG4gIH1cblxufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGljb25zIGluIG1lbnVzLlxuQG1peGluIG1lbnUtaWNvbnMoKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGltZyxcbiAgICBpLFxuICAgIHN2ZyB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICArIHNwYW4ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBwb3NpdGlvbiBjbGFzc2VzIGZvciBpY29ucyB3aXRoaW4gYSBtZW51LlxuQG1peGluIG1lbnUtaWNvbi1wb3NpdGlvbigkcG9zaXRpb246IGxlZnQsICRzcGFjaW5nOiAkbWVudS1pY29uLXNwYWNpbmcpIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJHNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmcgYXV0byAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIG1lbnUtc3RhdGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgY29sb3I6ICRtZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIG1vZGlmaWVyIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBCcmVha3BvaW50IHNwZWNpZmljIHZlcnNpb25zXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1zaW1wbGUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCYXNlIFN0eWxlc1xuICAgICYuaWNvbnMge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICB9XG5cbiAgICAvLyBJY29uIExlZnRcbiAgICAmLmljb24tbGVmdCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBSaWdodFxuICAgICYuaWNvbi1yaWdodCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24ocmlnaHQpO1xuICAgIH1cblxuICAgIC8vIEljb24gVG9wXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24odG9wKTtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJvdHRvbVxuICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGJvdHRvbSk7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgfVxuICAgIFxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1zdGF0ZS1iYWNrLWNvbXBhdCB7XG4gICAgICAuYWN0aXZlID4gYSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGxlZnRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1sZWZ0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24ocmlnaHQpO1xuXG4gICAgICAubmVzdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJG5lc3RlZC1hbGlnbm1lbnQ6IHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjZW50ZXJcbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLm1lbnUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0IHtcbiAgICAubWVudS1jZW50ZXJlZCB7XG4gICAgICA+IC5tZW51IHtcbiAgICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYmFkZ2Vcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGEgYmFkZ2UuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgYmFkZ2UuXG5AbWl4aW4gYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogJGJhZGdlLW1pbndpZHRoO1xuICBwYWRkaW5nOiAkYmFkZ2UtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJhZGdlIHtcbiAgLmJhZGdlIHtcbiAgICBAaW5jbHVkZSBiYWRnZTtcblxuICAgIGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFkZ2UtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRiYWRnZS1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRiYWRnZS1jb2xvciwgJGJhZGdlLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcbi8vLy9cblxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBkaXNhYmxlZCBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBhIHNlcGVyYXRvciBiZXR3ZWVuIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2ggaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCkge1xuICAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoO1xufVxuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbTogJy8nICFkZWZhdWx0O1xuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvciBpbiBydGwgbW9kZS5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJyAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvciBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3I7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBicmVhZGNydW1icyBjb250YWluZXIsIGFsb25nIHdpdGggdGhlIHN0eWxlcyBmb3IgdGhlIGA8bGk+YCBhbmQgYDxhPmAgZWxlbWVudHMgaW5zaWRlIG9mIGl0LlxuQG1peGluIGJyZWFkY3J1bWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRicmVhZGNydW1icy1tYXJnaW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLy8gSXRlbSB3cmFwcGVyXG4gIGxpIHtcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3Ige1xuICAgICAgLy8gTmVlZCB0byBlc2NhcGUgdGhlIGJhY2tzbGFzaFxuICAgICAgJHNlcGFyYXRvcjogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0sICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bCk7XG5cbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMCAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbnRlbnQ6ICRzZXBhcmF0b3I7XG4gICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1icmVhZGNydW1icyB7XG4gIC5icmVhZGNydW1icyB7XG4gICAgQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcbi8vLy9cblxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJyAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gICN7JGNoaWxkLXNlbGVjdG9yfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICB9XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmcsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRzcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIE9uZSBjaGlsZFxuICAgICAgJjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtZWxlbWVudC1uZXN0aW5nXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICRjYWxsb3V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGNhbGxvdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGNhbGxvdXQtcmFkaXVzO1xuXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGNhbGxvdXQtZm9udC1jb2xvciwgJGNhbGxvdXQtZm9udC1jb2xvci1hbHQpKTtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoMC41cmVtKTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgzcmVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuXG4vLy8gR2V0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBjbG9zZSBidXR0b24uIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIG51bWJlciwgdGhlIG51bWJlciBpcyByZXR1cm5lZC4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgY29uZmlnIG1hcCBhbmQgdGhlIG1hcCBoYXMgdGhlIGtleSBgJHNpemVgLCB0aGUgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICR2YWx1ZSAtIEEgbnVtYmVyIG9yIG1hcCB0aGF0IHJlcHJlc2VudHMgdGhlIHNpemUgb3IgcG9zaXRpb24gdmFsdWUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gVGhlIHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbiB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBnaXZlbiBudW1iZXIgb3IgdGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gLXpmLWdldC1zaXplLXZhbCgkdmFsdWUsICRzaXplKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAvLyBJZiBpdCBpcywganVzdCByZXR1cm4gdGhlIG51bWJlclxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHNpemUgbmFtZSBleGlzdHMgaW4gdGhlIHZhbHVlIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkdmFsdWUsICRzaXplKSB7XG4gICAgLy8gSWYgaXQgZG9lcywgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkdmFsdWUsICRzaXplKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgYSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbbWVkaXVtXSAtIFRoZSBzaXplIHRvIHVzZS4gU2V0IHRvIGBzbWFsbGAgdG8gY3JlYXRlIGEgc21hbGwgY2xvc2UgYnV0dG9uLiBUaGUgJ21lZGl1bScgdmFsdWVzIGRlZmluZWQgaW4gYCRjbG9zZWJ1dHRvbi0qYCB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gY2xvc2UtYnV0dG9uLXNpemUoJHNpemUpIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgI3skeH06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsLCAkc2l6ZSk7XG4gICN7JHl9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWwsICRzaXplKTtcbiAgZm9udC1zaXplOiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1zaXplLCAkc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0LCAkc2l6ZSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uIHtcbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuXG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKHNtYWxsKSB9XG4gICAgJiwgJi5tZWRpdW0geyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShtZWRpdW0pIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZyBpbiB0aGUgc3VibWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gc3VibWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tbGVmdCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gIH1cblxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudSB7XG4gIC8vIEFwcGxpZWQgdG8gdGhlIE1lbnUgY29udGFpbmVyXG4gIC5pcy1kcmlsbGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5hbmltYXRlLWhlaWdodCB7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41cztcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgdG9wIGxldmVsIDx1bD5cbiAgLmRyaWxsZG93biB7XG4gICAgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLy8gQXBwbGllZCB0byBzdWJtZW51IDx1bD5zXG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgICB9XG5cbiAgICAgICYuaXMtY2xvc2luZyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3VibWVudSBpdGVtIHBhZGRpbmdcbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmICRkcmlsbGRvd24tYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWRyaWxsZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcblxuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXG4vLy8gQHR5cGUgTWFwXG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcblxuXG4gIC8vIEFsbG93IGFuIGludGVybWl0dGVudCBzdGF0ZSB0byBkbyBwb3NpdGlvbmluZyBiZWZvcmUgbWFraW5nIHZpc2libGUuXG4gICYuaXMtb3BlbmluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICRkcm9wZG93bi1zaXplcyB7XG4gICAgLmRyb3Bkb3duLXBhbmUuI3skbmFtZX0ge1xuICAgICAgd2lkdGg6ICRzaXplO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBwYWRkaW5nIGZvciBhbGlnbmluZyB0aGUgYXJyb3cgY29ycmVjdGx5LlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHN1Yi1tZW51IGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBCb3JkZXIgd2lkdGggZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vIFVzZWQgdG8gYWRqdXN0IHRvcCBtYXJnaW4gb2YgYSBzdWItbWVudSBpZiBhIGJvcmRlciBpcyB1c2VkLlxuLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aDogbnRoKCRkcm9wZG93bm1lbnUtYm9yZGVyLCAxKTtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gIH1cblxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICB9XG5cbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cbn1cblxuQG1peGluIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgPiBsaS5vcGVucy1sZWZ0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZztcbiAgICAgIH1cblxuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDtcblxuICAgIC5kcm9wZG93biAmIGEge1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8gV0FSTklORzogV2lsbCBiZSByZW1vdmVkIGluIHZlcnNpb24gNi40XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpbzogZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LXZpZGVvIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkKCkuIGZvdW5kYXRpb24tZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG59XG5cbkBtaXhpbiBmbGV4LXZpZGVvKCRyYXRpbzogJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW8pIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgcmVzcG9uc2l2ZS1lbWJlZCgpLiBmbGV4LXZpZGVvKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gRmluZHMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYSAtIEZpcnN0IG51bWJlciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYiAtIFNlY29uZCBudW1iZXIgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvci5cbkBmdW5jdGlvbiBnY2QoJGEsICRiKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9HcmVhdGVzdF9jb21tb25fZGl2aXNvciNKYXZhU2NyaXB0XG4gIEBpZiAoJGIgIT0gMCkge1xuICAgIEByZXR1cm4gZ2NkKCRiLCAkYSAlICRiKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBhYnMoJGEpO1xuICB9XG59XG5cbi8vLyBIYW5kbGVzIGRlY2ltYWwgZXhwb25lbnRzIGJ5IHRyeWluZyB0byBjb252ZXJ0IHRoZW0gaW50byBhIGZyYWN0aW9uIGFuZCB0aGVuIHVzZSBhIG50aC1yb290LWFsZ29yaXRobSBmb3IgcGFydHMgb2YgdGhlIGNhbGN1bGF0aW9uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgYmFzZSBudW1iZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBvbmVudCAtIFRoZSBleHBvbmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBwcm9kdWN0IG9mIHRoZSBleHBvbmVudGlhdGlvbi5cbkBmdW5jdGlvbiBwb3coJGJhc2UsICRleHBvbmVudCwgJHByZWM6IDE2KSB7XG4gIEBpZiAoZmxvb3IoJGV4cG9uZW50KSAhPSAkZXhwb25lbnQpIHtcbiAgICAkcHJlYzIgOiBwb3coMTAsICRwcmVjKTtcbiAgICAkZXhwb25lbnQ6IHJvdW5kKCRleHBvbmVudCAqICRwcmVjMik7XG4gICAgJGRlbm9taW5hdG9yOiBnY2QoJGV4cG9uZW50LCAkcHJlYzIpO1xuICAgIEByZXR1cm4gbnRoLXJvb3QocG93KCRiYXNlLCAkZXhwb25lbnQgLyAkZGVub21pbmF0b3IpLCAkcHJlYzIgLyAkZGVub21pbmF0b3IsICRwcmVjKTtcbiAgfVxuXG4gICR2YWx1ZTogJGJhc2U7XG4gIEBpZiAkZXhwb25lbnQgPiAxIHtcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqICRiYXNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZXhwb25lbnQgPCAxIHtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgLyAkYmFzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIG50aC1yb290KCRudW0sICRuOiAyLCAkcHJlYzogMTIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL050aF9yb290I0phdmFTY3JpcHRcbiAgJHg6IDE7XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkcHJlYyB7XG4gICAgJHg6IDEgLyAkbiAqICgoJG4gLSAxKSAqICR4ICsgKCRudW0gLyBwb3coJHgsICRuIC0gMSkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHg7XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSB3aWR0aCBmb3IgYSBnaXZlbiByYXRpby5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IHJlbGF0aXZlIHRvIHRoZSB3aWR0aCBvZiBhIHJlc3BvbnNpdmUgY29udGFpbmVyLlxuQGZ1bmN0aW9uIHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKSB7XG4gICR3OiBudGgoJHJhdGlvLCAxKTtcbiAgJGg6IG50aCgkcmF0aW8sIDMpO1xuICBAcmV0dXJuICRoIC8gJHcgKiAxMDAlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXG5AbWl4aW4gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XG5cbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbGFiZWwtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkbGFiZWwtY29sb3IsICRsYWJlbC1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lZGlhLW9iamVjdFxuLy8vL1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIExlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb24gc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgaW1hZ2VzIHdpdGhpbiBhIG1lZGlhIG9iamVjdCwgd2hlbiB0aGUgb2JqZWN0IGlzIHN0YWNrZWQgdmVydGljYWxseS4gU2V0IHRvICdhdXRvJyB0byB1c2UgdGhlIGltYWdlJ3MgbmF0dXJhbCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbWVkaWEgb2JqZWN0IGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3QtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCBibG9jayk7XG4gIG1hcmdpbi1ib3R0b206ICRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXNlY3Rpb24oJHBhZGRpbmc6ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmcpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJHBhZGRpbmc7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBzdGFjayBzZWN0aW9ucyBvZiBhIG1lZGlhIG9iamVjdC4gQXBwbHkgdGhpcyB0byB0aGUgc2VjdGlvbiBlbGVtZW50cywgbm90IHRoZSBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXN0YWNrIHtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1ib3R0b206ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0IHtcbiAgLm1lZGlhLW9iamVjdCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LWNvbnRhaW5lcjtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXN0YWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXNlY3Rpb247XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICYubWFpbi1zZWN0aW9uIHtcbiAgICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJi5taWRkbGUge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuXG4gICAgICAmLmJvdHRvbSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBvZiBhIGxlZnQvcmlnaHQgb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtc2l6ZTogMjUwcHggIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSB0b3AvYm90dG9tIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemU6IDI1MHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgb3ZlcmxhcCBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgc2l6ZSBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IGNvbG9yIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIGNvbnRlbnQgb3ZlcmxheS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMyAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG5cbiAgLy8gQ2hlY2tzIHRoZSB6LWluZGV4ZXMgYW5kIGluY3JlYXNlIHRoZW0gZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvdmVybGF5J3Mgei1pbmRleCBpcyBuZXcgc2luY2UgdjYuNCBhbmQgbWF5IGJlIGlkZW50aWNhbCB0byB0aGUgdXNlciBjdXN0b20gc2V0dGluZ3Mgb2YgdGhlIHB1c2ggei1pbmRleC5cbiAgQGlmICRvZmZjYW52YXMtcHVzaC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcHVzaC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggPD0gJG9mZmNhbnZhcy1wdXNoLXppbmRleCB7ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG5cbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gICAgXG4gICAgJi5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgd3JhcHBlci5cbkBtaXhpbiBvZmYtY2FudmFzLXdyYXBwZXIoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtYmFzZShcbiAgJGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZCxcbiAgJHRyYW5zaXRpb246ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZyxcbiAgJGZpeGVkOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAvLyBTZXQgdGhlIG9mZi1jYW52YXMgei1pbmRleC5cbiAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAvLyBIaWRlIGluYWN0aXZlIG9mZi1jYW52YXMgd2l0aGluIHRoZSBjb250ZW50IHRoYXQgaGF2ZSB0aGUgc2FtZSBwb3NpdGlvblxuICAmLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gT3ZlcmxhcCBvbmx5IHN0eWxlcy5cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg7XG5cbiAgICAmLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3c7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0cyB0cmFuc2Zvcm0gdG8gMCB0byBzaG93IGFuIG9mZi1jYW52YXMgcGFuZWwuXG4gICYuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHBvc2l0aW9uIGFuIG9mZi1jYW52YXMgcGFuZWwgdG8gdGhlIGxlZnQvcmlnaHQvdG9wL2JvdHRvbS5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCxcbiAgJHNpemU6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemUsICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSlcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIFxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBcbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHNpemU7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIGlzIHNldCwgYWRkIGlubmVyIGJveC1zaGFkb3cuXG4gIC8vIFRoaXMgbWltaWNzIHRoZSBvZmYtY2FudmFzIHBhbmVsIGhhdmluZyBhIGxvd2VyIHotaW5kZXgsIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgb25lLlxuICBAaWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cocmlnaHQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGxlZnQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhib3R0b20sICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyh0b3AsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9ICAgIFxuICB9XG5cbn1cblxuLy8vIFNldHMgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIG9mZi1jYW52YXMtY29udGVudCgpIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgLy8gVHJhbnNmb3JtIHNjb3BlIHVudGlsIHRoZSBlbGVtZW50IGlzIGNsb3NlZCAobWFrZXMgc3VyZSB0cmFuc2l0aW9uZW5kIGdldHMgdHJpZ2dlcmVkKVxuICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgZWxlbWVudCAmIGNvbnRlbnQsIG5lc3RlZCBpbiBhbm90aGVyIGNvbnRlbnRcbiAgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRoYXQgcmV2ZWFsIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1yZXZlYWwoXG4kcG9zaXRpb246IGxlZnQsXG4kemluZGV4OiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsXG4kY29udGVudDogJG1haW5jb250ZW50LWNsYXNzXG4pIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB6LWluZGV4OiAkemluZGV4O1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gIEBpZiBub3QgJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBDb25zaWRlciByZXZlYWxlZCBlbGVtZW50IGlzIG5lc3RlZCBpbiBjb250ZW50XG4gIC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgQGF0LXJvb3QgLiN7JGNvbnRlbnR9Lmhhcy1yZXZlYWwtI3skcG9zaXRpb259IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAkb2ZmY2FudmFzLXNpemU7XG4gIH1cblxuICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAocHJpb3IgdG8gdjYuNClcbiAgJiB+IC4jeyRjb250ZW50fSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogJG9mZmNhbnZhcy1zaXplO1xuICB9XG59XG5cbi8vLyBPdmVycmlkZXMgdGhlIG9mZi1jYW52YXMgc3R5bGVzXG5AbWl4aW4gaW4tY2FudmFzKCkge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBvdmVyZmxvdzogaW5oZXJpdDtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5wb3NpdGlvbi1sZWZ0LFxuICAmLnBvc2l0aW9uLXJpZ2h0LFxuICAmLnBvc2l0aW9uLXRvcCxcbiAgJi5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vZmYtY2FudmFzIHtcbiAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNpY3M7XG5cbiAgLy8gT2ZmLWNhbnZhcyB3cmFwcGVyXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtd3JhcHBlcjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyXG4gIC5vZmYtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2U7XG5cbiAgICAvLyBGb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSBmb3IgbmVzdGVkIG9mZi1jYW52YXMgYmVjYXVzZSBmaXhlZCBkb2Vzbid0IHdvcmsgZm9yIHB1c2ggdHJhbnNpdGlvbiB3aXRoaW4gdGhlIHRyYW5zZm9ybSBzY29wZS5cbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgICAgLy8gTk9URTogc2luY2Ugb3ZlcmxhcCB0cmFuc2l0aW9uIGlzIGN1cnJlbnRseSBmb3JjZWQgaWYgbmVzdGVkLCB0aGVyZSdzIG5vIG5lZWQgdG8gZm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgdW50aWwgbmVzdGVkIHB1c2ggdHJhbnNpdGlvbiBpcyBzdXBwb3J0ZWQuXG4gICAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXIgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvblxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlKCRmaXhlZDogZmFsc2UpO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBwb3NpdGlvbiBjbGFzc2VzXG4gIC5wb3NpdGlvbi1sZWZ0ICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0LCAgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi1yaWdodCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCwgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi10b3AgICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbih0b3AsICAgIHZlcnRpY2FsKTsgfVxuICAucG9zaXRpb24tYm90dG9tICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24oYm90dG9tLCB2ZXJ0aWNhbCk7IH1cblxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBwYW5lbCBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwoYm90dG9tKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1vdmUgaW4tY2FudmFzIGZvciBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGluLWNhbnZhcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7IC8vIFByZXZlbnQgRk9VQyBieSBub3Qgc2hvd2luZyB1bnRpbCBKUyBzZXRzIGhlaWdodFxuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwcm9ncmVzcyBiYXIgY29udGFpbmVyLlxuQG1peGluIHByb2dyZXNzLWNvbnRhaW5lciB7XG4gIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBtZXRlciBvZiBhIHByb2dyZXNzIGJhci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRleHQgaW4gdGhlIHByb2dyZXNzIG1ldGVyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyLXRleHQge1xuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyIHtcbiAgLy8gUHJvZ3Jlc3MgYmFyXG4gIC5wcm9ncmVzcyB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyXG4gIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XG4gIH1cblxuICAvLyBJbm5lciBtZXRlciB0ZXh0XG4gIC5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlci10ZXh0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gW1RPRE9dIENoZWNrIGhvdyBwbHVnaW4gY29uZmlybXMgZGlzYWJsZWQgb3IgdmVydGljYWwgc3RhdHVzXG4vLyBbVE9ET10gQ2hlY2sgaWYgdHJhbnNpdGlvbjogYWxsOyBpcyBuZWNlc3NhcnlcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgc2xpZGVyIHdpZHRoIG9mIGEgdmVydGljYWwgc2xpZGVyLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRoZSBzbGlkZXIgaGFuZGxlcy5cbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuICB9XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG5AbWl4aW4gc2xpZGVyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG5cbiAgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXNsaWRlciB7XG4gIC8vIENvbnRhaW5lclxuICAuc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItY29udGFpbmVyO1xuICB9XG5cbiAgLy8gRmlsbCBhcmVhXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWZpbGw7XG4gIH1cblxuICAvLyBEcmFnZ2FibGUgaGFuZGxlXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLnNsaWRlci5kaXNhYmxlZCxcbiAgLnNsaWRlcltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxuICAuc2xpZGVyLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBSVEwgc3VwcG9ydFxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgIC5zbGlkZXI6bm90KC52ZXJ0aWNhbCkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tc3RpY2t5IHtcbiAgLnN0aWNreS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGlja3kge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzd2l0Y2hcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBhY3RpdmUgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC50aW55IGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnNtYWxsIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAubGFyZ2UgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lciBhbmQgcGFkZGxlLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaCBwYWRkbGVcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBzd2l0Y2ggdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gbWFrZSB0aGVtIHZhcmlhYmxlc1xuLy8gYXNrIGFib3V0IGFjY2Vzc2liaWxpdHkgb24gbGFiZWxcbi8vIGNoYW5nZSBjbGFzcyBuYW1lIGZvciB0ZXh0XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgY29udGFpbmVyIGNsYXNzLlxuQG1peGluIHN3aXRjaC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206ICRzd2l0Y2gtbWFyZ2luO1xuICBvdXRsaW5lOiAwO1xuXG4gIC8vIFRoZXNlIHByb3BlcnRpZXMgY2FzY2FkZSBkb3duIHRvIHRoZSBzd2l0Y2ggdGV4dFxuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggaW5wdXQuIEFwcGx5IHRoaXMgdG8gYW4gYDxpbnB1dD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGJhY2tncm91bmQgYW5kIHBhZGRsZSBvZiBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byBhIGA8bGFiZWw+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXBhZGRsZSB7XG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXJhZGl1cztcbiAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuXG4gIC8vIFJlc2V0dGluZyB0aGVzZSA8bGFiZWw+IHByZXNldHMgc28gdHlwZSBzdHlsZXMgY2FzY2FkZSBkb3duXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gTmVlZGVkIHRvIG92ZXJyaWRlIHNwZWNpZmljaXR5XG4gIGlucHV0ICsgJiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gVGhlIHBhZGRsZSBpdHNlbGZcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcGFkZGxlLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBDaGFuZ2UgdGhlIHZpc3VhbCBzdHlsZSB3aGVuIHRoZSBzd2l0Y2ggaXMgYWN0aXZlXG4gIGlucHV0OmNoZWNrZWQgfiAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzd2l0Y2gtaGVpZ2h0IFsycmVtXSAtIEhlaWdodCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtb2Zmc2V0IFswLjI1cmVtXSAtIFNwYWNpbmcgYmV0d2VlbiB0aGUgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHN3aXRjaCBib2R5LlxuQG1peGluIHN3aXRjaC1zaXplKFxuICAkZm9udC1zaXplOiAxcmVtLFxuICAkc3dpdGNoLWhlaWdodDogMnJlbSxcbiAgJHBhZGRsZS1vZmZzZXQ6IDAuMjVyZW1cbikge1xuXG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkcGFkZGxlLW9mZnNldDtcblxuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAkcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtb2Zmc2V0O1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xuICAvLyBDb250YWluZXIgY2xhc3NcbiAgLnN3aXRjaCB7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gPGlucHV0PiBlbGVtZW50XG4gIC5zd2l0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1pbnB1dDtcbiAgfVxuXG4gIC8vIDxsYWJlbD4gZWxlbWVudFxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXBhZGRsZTtcbiAgfVxuXG4gIC8vIEJhc2UgbGFiZWwgdGV4dCBzdHlsZXNcbiAgJXN3aXRjaC10ZXh0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dDtcbiAgfVxuXG4gIC8vIEFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtYWN0aXZlO1xuICB9XG5cbiAgLy8gSW5hY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtaW5hY3RpdmU7XG4gIH1cblxuICAvLyBTd2l0Y2ggc2l6ZXNcbiAgLnN3aXRjaC50aW55IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMCksICRzd2l0Y2gtaGVpZ2h0LXRpbnksICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMiksICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWVsZW1lbnQtbmVzdGluZywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCB0YWJsZXMgYXJlIHN0cmlwZWQgYnkgZGVmYXVsdCBhbmQgYW4gLnVuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLiBJZiBgZmFsc2VgLCBhIC5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHN0cmlwZWQgcm93cy5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLiBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnkgb3RoZXIgdmFsdWUsIHRoZSB0YWJsZSByb3dzIHdpbGwgaGF2ZSBubyBzdHJpcGluZy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb290ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCBzdGFja2VkIHRhYmxlIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG5AbWl4aW4gLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRyIHtcbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsICRpcy1zdHJpcGVkOiAkdGFibGUtaXMtc3RyaXBlZCkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRib2R5IHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIHN0cmlwZWRcbiAgQGlmICRpcy1zdHJpcGVkID09IHRydWUge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgfVxuXG4gICAgJi51bnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBub3Qgc3RyaXBlZFxuICBAZWxzZSBpZiAkaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgfVxuXG4gICAgJi5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdGhlYWQgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGZvb3QgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZm9vdC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgQGlmICR0YWJsZS1pcy1zdHJpcGVkID09IHRydWUge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBmb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBgZXhwYW5kLW5gIGNsYXNzZXMgdG8gaW5jbHVkZSBpbiB0aGUgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcbiAgLnRhYnMge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gVmVydGljYWxcbiAgLnRhYnMudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gU2ltcGxlXG4gIC50YWJzLnNpbXBsZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW1hcnkgY29sb3JcbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJzLXRpdGxlIHtcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xuICB9XG5cbiAgLnRhYnMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcblxuJGNvbnRyYXN0LXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6ICRyZ2IgLyAyNTU7XG5cbiAgICAkcmdiOiBpZigkcmdiIDwgMC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAwLjA1NSkgLyAxLjA1NSwgMi40KSk7XG5cbiAgICAkcmdiYTI6IGFwcGVuZCgkcmdiYTIsICRyZ2IpO1xuICB9XG5cbiAgQHJldHVybiAwLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIDAuNzE1MiAqIG50aCgkcmdiYTIsIDIpICsgMC4wNzIyICogbnRoKCRyZ2JhMiwgMyk7XG59XG5cbi8vLyBDaGVja3MgdGhlIGNvbnRyYXN0IHJhdGlvIG9mIHR3byBjb2xvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IxIC0gRmlyc3QgY29sb3IgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IyIC0gU2Vjb25kIGNvbG9yIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgY29udHJhc3QgcmF0aW8gb2YgdGhlIGNvbXBhcmVkIGNvbG9ycy5cbkBmdW5jdGlvbiBjb2xvci1jb250cmFzdCgkY29sb3IxLCAkY29sb3IyKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNjb250cmFzdC1yYXRpb2RlZlxuICAkbHVtaW5hbmNlMTogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjEpICsgMC4wNTtcbiAgJGx1bWluYW5jZTI6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IyKSArIDAuMDU7XG4gICRyYXRpbzogJGx1bWluYW5jZTEgLyAkbHVtaW5hbmNlMjtcblxuICBAaWYgJGx1bWluYW5jZTIgPiAkbHVtaW5hbmNlMSB7XG4gICAgJHJhdGlvOiAxIC8gJHJhdGlvO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgLyAxMDtcblxuICBAcmV0dXJuICRyYXRpbztcbn1cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkYmFzZWAsIGFuZCByZXR1cm5zIHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhc2UgLSBDb2xvciB0byBjaGVjayBsdW1pbmFuY2UuXG4vLy8gQHBhcmFtIHtMaXN0fSAkY29sb3JzIFsoJHdoaXRlLCAkYmxhY2spXSAtIENvbG9ycyB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9sZXJhbmNlIFskZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlXSAtIENvbnRyYXN0IHRvbGVyYW5jZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG5AZnVuY3Rpb24gY29sb3ItcGljay1jb250cmFzdCgkYmFzZSwgJGNvbG9yczogKCR3aGl0ZSwgJGJsYWNrKSwgJHRvbGVyYW5jZTogJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZSkge1xuICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgMSkpO1xuICAkYmVzdDogbnRoKCRjb2xvcnMsIDEpO1xuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRjb2xvcnMpIHtcbiAgICAkY3VycmVudC1jb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgIEBpZiAoJGN1cnJlbnQtY29udHJhc3QgLSAkY29udHJhc3QgPiAkdG9sZXJhbmNlKSB7XG4gICAgICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICAgICRiZXN0OiBudGgoJGNvbG9ycywgJGkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGNvbnRyYXN0LXdhcm5pbmdzIGFuZCAkY29udHJhc3QgPCAzKSB7XG4gICAgQHdhcm4gXCJDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fVwiO1xuICB9XG5cbiAgQHJldHVybiAkYmVzdDtcbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGRhcmtlciBpZiBpdCdzIGxpZ2h0LCBvciBsaWdodGVyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBHZXQgY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEBwYXJhbSB7a2V5fSBjb2xvciBrZXkgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbkBmdW5jdGlvbiBnZXQtY29sb3IoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdnaXZlbiAka2V5IGlzIG5vdCBhdmFpbGFibGUgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSc7XG4gIH1cbn1cblxuLy8vIFRyYW5zZmVycyB0aGUgY29sb3JzIGluIHRoZSBgJGZvdW5kYXRpb24tcGFsZXR0ZWBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2VzcykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykge1xuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSB7XG4gICAgJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRpdGxlLWJhclxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIFdlaWdodFxuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIHRoZSBtZW51IGljb24gYW5kIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdGl0bGUtYmFyIHtcbiAgLnRpdGxlLWJhciB7XG4gICAgcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0aXRsZWJhci1jb2xvcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIC5tZW51LWljb24ge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50aXRsZS1iYXItbGVmdCxcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50aXRsZS1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZS1iYXItdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkdGl0bGViYXItdGV4dC1mb250LXdlaWdodDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9vbHRpcFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjdXJzb3Igb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4IHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLW1heC13aWR0aDogMTByZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCBoZWlnaHQgZm9yIHRvb2x0aXBzLiBUaGlzIGlzIGhlbHBmdWwgZm9yIGNhbGN1bGF0aW5nIHRoZSBkaXN0YW5jZSBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b29sdGlwIHdvcmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcbiAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xuICBjdXJzb3I6ICRoYXMtdGlwLWN1cnNvcjtcbn1cblxuQG1peGluIHRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgI3skdG9vbHRpcC1waXAtaGVpZ2h0fSk7XG4gIHotaW5kZXg6IDEyMDA7XG5cbiAgbWF4LXdpZHRoOiAkdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgJi5ib3R0b20ge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgICBib3R0b206IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi50b3Age1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBkb3duKTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLmxlZnQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5yaWdodCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGxlZnQpO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi10b3A6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogMTAlO1xuICB9XG5cbiAgJi5hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgdG9wOiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1sZWZ0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDEwJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQ6OmJlZm9yZSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvb2x0aXAge1xuICAuaGFzLXRpcCB7XG4gICAgQGluY2x1ZGUgaGFzLXRpcDtcbiAgfVxuXG4gIC50b29sdGlwIHtcbiAgICBAaW5jbHVkZSB0b29sdGlwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b3AtYmFyXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXIuIFRoaXMgY29sb3IgYWxzbyBjYXNjYWRlcyB0byBtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHN1Ym1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci4gVXNlZnVsbCBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgdHJhbnNwYXJlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGZvciB0aGUgdG9wIGJhciB0aXRsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRvcCBiYXIgY29udGFpbmVyLlxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XG4gICAgdWwgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXG4gIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cblxuICAvLyBUaGUgYWJvdmUgc3R5bGVzIHNob3VsZG4ndCBhcHBseSB0byBpbnB1dCBncm91cCBmaWVsZHNcbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgfVxuXG4gIGlucHV0LmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBNYWtlcyBzZWN0aW9ucyBvZiBhIHRvcCBiYXIgc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG5AbWl4aW4gdG9wLWJhci1zdGFja2VkIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbmRvZXMgdGhlIENTUyBhcHBsaWVkIGJ5IHRoZSBgdG9wLWJhci1zdGFja2VkKClgIG1peGluLlxuQG1peGluIHRvcC1iYXItdW5zdGFjayB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcblxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWItc2VjdGlvbnNcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBtYXJnaW46ICR0b3BiYXItdGl0bGUtc3BhY2luZztcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICAgIC5tZW51LWljb24ge1xuICAgICAgICBib3R0b206IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBTcGFjaW5nL1VuaXQgVmFyaWFibGVzIGFuZCBPYmplY3RzXG4vL1xuXG4kdW5pdHNfX2RlZmF1bHQtdW5pdDogMTZweDtcbiRkZWZhdWx0LXVuaXQ6ICR1bml0c19fZGVmYXVsdC11bml0O1xuJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQ6IDk2MHB4O1xuJHVuaXRzX19pbmNsdWRlLWJveC1zaXppbmc6IHRydWU7XG5cbi8vIE9QVElPTlM6XG4vLyAqIFwic2VsZWN0b3ItbmFtZVwiOiBTdHJpbmcgKG5vIHNwYWNlcyBhbmQgY2FuJ3Qgc3RhcnQgd2l0aCBhIG51bWJlcikuIE9wdGlvbmFsLiBVc2VkIHRvIGNoYW5nZSBvdXRwdXQgc2VsZWN0b3IgbmFtZS5cbi8vICogXCJzZWxlY3Rvci1zdWZmaXhcIjogU3RyaW5nIChubyBzcGFjZXMpLiBPcHRpb25hbC4gVGhpcyBpcyBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRoZSBvdXRwdXQgc2VsZWN0b3Jcbi8vICogXCJtZWRpYS1xdWVyeS1tYXhcIjogTnVtYmVyLiBPcHRpb25hbC4gVXNlcyBgQG1lZGlhIHNjcmVlbiAobWF4LXdpZHRoOiBcInRoaXMgdmFsdWVcIil7fWBcbi8vICogXCJ1bml0LS1tZWRpYS1xdWVyeS1tYXhcIjpOdW1iZXIuIE9wdGlvbmFsOyBSZXF1aXJlZCB3aGVuIGBtZWRpYS1xdWVyeS1tYXhgIGlzIHVzZWQuIElzIGFwcGxpZWQgdW5pdCB0byBgdmFyaWF0aW9uYCBvcHRpb25zIHdpdGhpbiB0aGUgbWVkaWEgcXVlcnkuIEZhbGxiYWNrIHVuaXQgaXMgYHVuaXRgLlxuLy8gKiBcIm1lZGlhLXF1ZXJ5LW1pblwiOiBOdW1iZXIuIE9wdGlvbmFsLiBVc2VzIGBAbWVkaWEgc2NyZWVuIChtaW4td2lkdGg6IFwidGhpcyB2YWx1ZVwiKXt9YGBcbi8vICogXCJ1bml0LS1tZWRpYS1xdWVyeS1taW5cIjogTnVtYmVyLiBPcHRpb25hbDsgUmVxdWlyZWQgd2hlbiBgbWVkaWEtcXVlcnktbWluYCBpcyB1c2VkLiBJcyBhcHBsaWVkIHVuaXQgdG8gYHZhcmlhdGlvbmAgb3B0aW9ucyB3aXRoaW4gdGhlIG1lZGlhIHF1ZXJ5LiBGYWxsYmFjayB1bml0IGlzIGB1bml0YC5cbi8vICogXCJ1bml0XCI6IFJlcXVpcmVkLiBOdW1iZXIuIFJlcXVpcmVkLiBEZWZhdWx0IHVuaXQuIElzIGZhbGxiYWNrIHVuaXQgZm9yIGB1bml0LS1tZWRpYS1xdWVyeS1taW5gIGFuZCBgdW5pdC0tbWVkaWEtcXVlcnktbWF4YCB3aGVuIGBtZWRpYS1xdWVyeS1taW5gIGFuZCBgbWVkaWEtcXVlcnktbWF4YCBhcmUgdXNlZCBhbmQgbm8gdW5pdCBpcyBhcHBsaWVkLlxuLy8gKiBcInZhcmlhdGlvbnNcIjogU2FzcyBNYXAuIFJlcXVpcmVkLiBDb250YWlucyB0aGUgdmFyaWF0aW9ucyBvZiBvdXRwdXQgcHJvcGVyaXRlcy5cbi8vICogIFwiYmFzZVwiOiBPcHRpb25zOiB0cnVlIHwgZmFsc2UgfCBzaG9ydC4gUmVxdWlyZWQuIE91dHB1dHMgZGVmYXVsdCB1bml0LiBXaGVuIHZhbHVlIGlzIGBzaG9ydGAgdGhpcyBrZXkgaXMgdXNlZCB0byBvdXRwdXQgYHBhZGRpbmdgIGFuZCBgbWFyZ2luYCBwcm9wZXJ0eSdzIHNob3J0aGFuZC5cbi8vICogIFwidG9wXCI6IEJvb2xlYW4uIFJlcXVpcmVkLiBPdXRwdXRzIHZhcmlhdGlvbiBvZiBwcm9wZXJ0eSAoYHBhZGRpbmctdG9wYCwgYG1hcmdpbi10b3BgKVxuLy8gKiAgXCJyaWdodFwiOiBCb29sZWFuLiBSZXF1aXJlZC4gT3V0cHV0cyB2YXJpYXRpb24gb2YgcHJvcGVydHkgKGBwYWRkaW5nLXJpZ2h0YCwgYG1hcmdpbi1yaWdodGApXG4vLyAqICBcImJvdHRvbVwiOiBCb29sZWFuLiBSZXF1aXJlZC4gT3V0cHV0cyB2YXJpYXRpb24gb2YgcHJvcGVydHkgKGBwYWRkaW5nLWJvdHRvbWAsIGBtYXJnaW4tYm90dG9tYClcbi8vICogIFwibGVmdFwiOiBCb29sZWFuLiBSZXF1aXJlZC4gT3V0cHV0cyB2YXJpYXRpb24gb2YgcHJvcGVydHkgKGBwYWRkaW5nLWxlZnRgLCBgbWFyZ2luLWxlZnRgKVxuXG4kdW5pdHM6IChcbiAgXCJwYWRkaW5nXCI6ICggLy8gb3B0aW9uYWwga2V5LCB1c2VkIHRvIG91dCBwYWRkaW5nIHVuaXRzXG4gICAgXCJkZWZhdWx0XCI6ICggLy8gXCJgZGVmYXVsdGAgaXMgcmVxdWlyZWRcIiB1bmRlciBcInBhZGRpbmdcIiBrZXlcbiAgICAgIFwibWVkaWEtcXVlcnktbWF4XCI6ICR1bml0c19fZGVmYXVsdC1icmVha3BvaW50LCBcbiAgICAgIFwidW5pdC0tbWVkaWEtcXVlcnktbWF4XCI6ICRkZWZhdWx0LXVuaXQsIFxuICAgICAgXCJtZWRpYS1xdWVyeS1taW5cIjogJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQsXG4gICAgICBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1pblwiOiAkZGVmYXVsdC11bml0LFxuICAgICAgXCJ1bml0XCI6ICRkZWZhdWx0LXVuaXQsXG4gICAgICBcInZhcmlhdGlvbnNcIjogKFxuICAgICAgICBcImJhc2VcIjogdHJ1ZSxcbiAgICAgICAgXCJ0b3BcIjogdHJ1ZSxcbiAgICAgICAgXCJyaWdodFwiOiB0cnVlLFxuICAgICAgICBcImJvdHRvbVwiOiB0cnVlLFxuICAgICAgICBcImxlZnRcIjogdHJ1ZVxuICAgICAgKVxuICAgICksXG4gICAgXCJjdXN0b20tbmFtZS1kZW1vXCI6ICggXG4gICAgICBcInNlbGVjdG9yLW5hbWVcIjogXCJzcGFjaW5nXCIsXG4gICAgICBcIm1lZGlhLXF1ZXJ5LW1heFwiOiAkdW5pdHNfX2RlZmF1bHQtYnJlYWtwb2ludCwgXG4gICAgICBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1heFwiOiAkZGVmYXVsdC11bml0LCBcbiAgICAgIFwibWVkaWEtcXVlcnktbWluXCI6ICR1bml0c19fZGVmYXVsdC1icmVha3BvaW50LFxuICAgICAgXCJ1bml0LS1tZWRpYS1xdWVyeS1taW5cIjogJGRlZmF1bHQtdW5pdCArICRkZWZhdWx0LXVuaXQsXG4gICAgICBcInVuaXRcIjogJGRlZmF1bHQtdW5pdCArICRkZWZhdWx0LXVuaXQsXG4gICAgICBcInZhcmlhdGlvbnNcIjogKFxuICAgICAgICBcImJhc2VcIjogdHJ1ZSxcbiAgICAgICAgXCJ0b3BcIjogZmFsc2UsXG4gICAgICAgIFwicmlnaHRcIjogZmFsc2UsXG4gICAgICAgIFwiYm90dG9tXCI6IGZhbHNlLFxuICAgICAgICBcImxlZnRcIjogZmFsc2VcbiAgICAgIClcbiAgICApLFxuICAgIFwidHdvLXRpbWVzXCI6IChcbiAgICAgIFwic3VmZml4XCI6IFwiLS0yeFwiLFxuICAgICAgXCJtZWRpYS1xdWVyeS1tYXhcIjogJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQsIFxuICAgICAgXCJ1bml0LS1tZWRpYS1xdWVyeS1tYXhcIjogJGRlZmF1bHQtdW5pdCwgXG4gICAgICBcIm1lZGlhLXF1ZXJ5LW1pblwiOiAkdW5pdHNfX2RlZmF1bHQtYnJlYWtwb2ludCxcbiAgICAgIFwidW5pdC0tbWVkaWEtcXVlcnktbWluXCI6ICRkZWZhdWx0LXVuaXQgKiAyLFxuICAgICAgXCJ1bml0XCI6ICRkZWZhdWx0LXVuaXQgKiAyLFxuICAgICAgXCJ2YXJpYXRpb25zXCI6IChcbiAgICAgICAgXCJiYXNlXCI6IHRydWUsXG4gICAgICAgIFwidG9wXCI6IHRydWUsXG4gICAgICAgIFwicmlnaHRcIjogdHJ1ZSxcbiAgICAgICAgXCJib3R0b21cIjogdHJ1ZSxcbiAgICAgICAgXCJsZWZ0XCI6IHRydWVcbiAgICAgIClcbiAgICApLFxuICAgIFwib25lLWhhbGYtdGltZXNcIjogKFxuICAgICAgXCJzdWZmaXhcIjogXCItLTNoYWx2ZXNcIixcbiAgICAgIFwibWVkaWEtcXVlcnktbWF4XCI6ICR1bml0c19fZGVmYXVsdC1icmVha3BvaW50LCBcbiAgICAgIFwidW5pdC0tbWVkaWEtcXVlcnktbWF4XCI6ICRkZWZhdWx0LXVuaXQsIFxuICAgICAgXCJtZWRpYS1xdWVyeS1taW5cIjogJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQsXG4gICAgICBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1pblwiOiAkZGVmYXVsdC11bml0ICogMS41LFxuICAgICAgXCJ1bml0XCI6ICRkZWZhdWx0LXVuaXQgKiAyLFxuICAgICAgXCJ2YXJpYXRpb25zXCI6IChcbiAgICAgICAgXCJiYXNlXCI6IHRydWUsXG4gICAgICAgIFwidG9wXCI6IHRydWUsXG4gICAgICAgIFwicmlnaHRcIjogdHJ1ZSxcbiAgICAgICAgXCJib3R0b21cIjogdHJ1ZSxcbiAgICAgICAgXCJsZWZ0XCI6IHRydWVcbiAgICAgIClcbiAgICApLFxuICAgIFwiaGFsZi1zaXplZFwiOiAoXG4gICAgICBcInN1ZmZpeFwiOiBcIi0taGFsZlwiLFxuICAgICAgXCJ1bml0XCI6ICRkZWZhdWx0LXVuaXQgLyAyLFxuICAgICAgXCJ2YXJpYXRpb25zXCI6IChcbiAgICAgICAgXCJiYXNlXCI6IHRydWUsXG4gICAgICAgIFwidG9wXCI6IHRydWUsXG4gICAgICAgIFwicmlnaHRcIjogdHJ1ZSxcbiAgICAgICAgXCJib3R0b21cIjogdHJ1ZSxcbiAgICAgICAgXCJsZWZ0XCI6IHRydWVcbiAgICAgIClcbiAgICApXG4gICksXG4gIFwibWFyZ2luXCI6ICggLy8gb3B0aW9uYWwga2V5LCB1c2VkIHRvIG91dCBwYWRkaW5nIHVuaXRzXG4gICAgXCJkZWZhdWx0XCI6ICggLy8gXCJgZGVmYXVsdGAgaXMgcmVxdWlyZWRcIiB1bmRlciBcInBhZGRpbmdcIiBrZXlcbiAgICAgIFwibWVkaWEtcXVlcnktbWF4XCI6ICR1bml0c19fZGVmYXVsdC1icmVha3BvaW50LCBcbiAgICAgIFwidW5pdC0tbWVkaWEtcXVlcnktbWF4XCI6ICRkZWZhdWx0LXVuaXQsIFxuICAgICAgXCJtZWRpYS1xdWVyeS1taW5cIjogJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQsXG4gICAgICBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1pblwiOiAkZGVmYXVsdC11bml0LFxuICAgICAgXCJ1bml0XCI6ICRkZWZhdWx0LXVuaXQsXG4gICAgICBcInZhcmlhdGlvbnNcIjogKFxuICAgICAgICBcImJhc2VcIjogdHJ1ZSxcbiAgICAgICAgXCJ0b3BcIjogdHJ1ZSxcbiAgICAgICAgXCJyaWdodFwiOiB0cnVlLFxuICAgICAgICBcImJvdHRvbVwiOiB0cnVlLFxuICAgICAgICBcImxlZnRcIjogdHJ1ZVxuICAgICAgKVxuICAgICksXG4gICAgXCJ0d28tdGltZXNcIjogKFxuICAgICAgXCJzdWZmaXhcIjogXCItLTJ4XCIsXG4gICAgICBcIm1lZGlhLXF1ZXJ5LW1heFwiOiAkdW5pdHNfX2RlZmF1bHQtYnJlYWtwb2ludCwgXG4gICAgICBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1heFwiOiAkZGVmYXVsdC11bml0LCBcbiAgICAgIFwibWVkaWEtcXVlcnktbWluXCI6ICR1bml0c19fZGVmYXVsdC1icmVha3BvaW50LFxuICAgICAgXCJ1bml0LS1tZWRpYS1xdWVyeS1taW5cIjogJGRlZmF1bHQtdW5pdCAqIDIsXG4gICAgICBcInVuaXRcIjogJGRlZmF1bHQtdW5pdCAqIDIsXG4gICAgICBcInZhcmlhdGlvbnNcIjogKFxuICAgICAgICBcImJhc2VcIjogdHJ1ZSxcbiAgICAgICAgXCJ0b3BcIjogdHJ1ZSxcbiAgICAgICAgXCJyaWdodFwiOiB0cnVlLFxuICAgICAgICBcImJvdHRvbVwiOiB0cnVlLFxuICAgICAgICBcImxlZnRcIjogdHJ1ZVxuICAgICAgKVxuICAgICksXG4gICAgXCJvbmUtaGFsZi10aW1lc1wiOiAoXG4gICAgICBcInN1ZmZpeFwiOiBcIi0tM2hhbHZlc1wiLFxuICAgICAgXCJtZWRpYS1xdWVyeS1tYXhcIjogJHVuaXRzX19kZWZhdWx0LWJyZWFrcG9pbnQsIFxuICAgICAgXCJ1bml0LS1tZWRpYS1xdWVyeS1tYXhcIjogJGRlZmF1bHQtdW5pdCwgXG4gICAgICBcIm1lZGlhLXF1ZXJ5LW1pblwiOiAkdW5pdHNfX2RlZmF1bHQtYnJlYWtwb2ludCxcbiAgICAgIFwidW5pdC0tbWVkaWEtcXVlcnktbWluXCI6ICRkZWZhdWx0LXVuaXQgKiAxLjUsXG4gICAgICBcInVuaXRcIjogJGRlZmF1bHQtdW5pdCAqIDEuNSxcbiAgICAgIFwidmFyaWF0aW9uc1wiOiAoXG4gICAgICAgIFwiYmFzZVwiOiB0cnVlLFxuICAgICAgICBcInRvcFwiOiB0cnVlLFxuICAgICAgICBcInJpZ2h0XCI6IHRydWUsXG4gICAgICAgIFwiYm90dG9tXCI6IHRydWUsXG4gICAgICAgIFwibGVmdFwiOiB0cnVlXG4gICAgICApXG4gICAgKSxcbiAgICBcImhhbGYtc2l6ZWRcIjogKFxuICAgICAgXCJzdWZmaXhcIjogXCItLWhhbGZcIixcbiAgICAgIFwidW5pdFwiOiAkZGVmYXVsdC11bml0IC8gMixcbiAgICAgIFwidmFyaWF0aW9uc1wiOiAoXG4gICAgICAgIFwiYmFzZVwiOiB0cnVlLFxuICAgICAgICBcInRvcFwiOiB0cnVlLFxuICAgICAgICBcInJpZ2h0XCI6IHRydWUsXG4gICAgICAgIFwiYm90dG9tXCI6IHRydWUsXG4gICAgICAgIFwibGVmdFwiOiB0cnVlXG4gICAgICApXG4gICAgKVxuICApXG4pO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qISAqIFtVbml0IFNwYWNlXShodHRwczovL2dpdGh1Yi5jb20va2V2aW5tYWNrMTgvU0FTUy1NYXJnaW4tYW5kLVBhZGRpbmctU3RhcnRlcikgKi9cbiAvLyAqIEdpdGh1YjogaHR0cHM6Ly9naXRodWIuY29tL2tldmlubWFjazE4L1NBU1MtTWFyZ2luLWFuZC1QYWRkaW5nLVN0YXJ0ZXJcbiAvLyAqIERlbW86IGh0dHA6Ly9rZXZpbm1hY2sxOC5naXRodWIuaW8vU0FTUy1NYXJnaW4tYW5kLVBhZGRpbmctU3RhcnRlci9cbiAvLyAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuIC8vICogaHR0cHM6Ly9naXRodWIuY29tL2tldmlubWFjazE4L1NBU1MtTWFyZ2luLWFuZC1QYWRkaW5nLVN0YXJ0ZXIvYmxvYi9tYXN0ZXIvTElDRU5TRVxuIC8vICogVmVyc2lvbjogdjMuMC4xXG4gLy8gKiBEYXRlOiAyMDE1LTA3LTMwXG5cbkBpZiAoICR1bml0c19faW5jbHVkZS1ib3gtc2l6aW5nICkge1xuICAqLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuXG5AbWl4aW4gZ2VuZXJhdGVVbml0cygkcHJvcGVydHk6IHBhZGRpbmcsICR2ZXJzaW9uOiBkZWZhdWx0LCAkdmFyaWF0aW9uOiBiYXNlICkge1xuICAkdmVyc2lvbnM6IG1hcC1nZXQoJHVuaXRzLCAkcHJvcGVydHkpO1xuICAkdmFsdWVzOiBtYXAtZ2V0KCR2ZXJzaW9ucywgJHZlcnNpb24pO1xuICAkdW5pdDogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJ1bml0XCIpLG1hcC1nZXQoJHZhbHVlcywgXCJ1bml0XCIpLCRkZWZhdWx0LXVuaXQpO1xuICAkc2VsZWN0b3ItYmFzZTogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJzZWxlY3Rvci1uYW1lXCIpLG1hcC1nZXQoJHZhbHVlcywgXCJzZWxlY3Rvci1uYW1lXCIpLCRwcm9wZXJ0eSk7XG4gICR2YXJpYXRpb25zOiBtYXAtZ2V0KCR2YWx1ZXMsIFwidmFyaWF0aW9uc1wiKTtcbiAgJHNlbGVjdG9yLXN1ZmZpeDogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJzdWZmaXhcIiksbWFwLWdldCgkdmFsdWVzLCBcInN1ZmZpeFwiKSxcIlwiKTtcbiAgJG1lZGlhLXF1ZXJ5LW1pbjogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJtZWRpYS1xdWVyeS1taW5cIiksbWFwLWdldCgkdmFsdWVzLCBcIm1lZGlhLXF1ZXJ5LW1pblwiKSxmYWxzZSk7XG4gICR1bml0LS1tZWRpYS1xdWVyeS1taW46IGlmKG1hcC1oYXMta2V5KCR2YWx1ZXMsIFwidW5pdC0tbWVkaWEtcXVlcnktbWluXCIpLG1hcC1nZXQoJHZhbHVlcywgXCJ1bml0LS1tZWRpYS1xdWVyeS1taW5cIiksJHVuaXQpO1xuICAkbWVkaWEtcXVlcnktbWF4OiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcIm1lZGlhLXF1ZXJ5LW1heFwiKSxtYXAtZ2V0KCR2YWx1ZXMsIFwibWVkaWEtcXVlcnktbWF4XCIpLGZhbHNlKTtcbiAgJHVuaXQtLW1lZGlhLXF1ZXJ5LW1heDogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJ1bml0LS1tZWRpYS1xdWVyeS1tYXhcIiksbWFwLWdldCgkdmFsdWVzLCBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1heFwiKSwkdW5pdCk7XG4gICR1bml0cy1hcmUtY29udHJvbGxlZC1ieS1icmVha3BvaW50czogKCRtZWRpYS1xdWVyeS1taW4gIT0gZmFsc2UgYW5kICRtZWRpYS1xdWVyeS1tYXggIT0gZmFsc2UpO1xuXG5cbiAgQGVhY2ggJHZhcmlhdGlvbiwgJGJvb2xlYW4gaW4gJHZhcmlhdGlvbnMge1xuXG4gICAgQGlmKCAkdmFyaWF0aW9uICE9IFwiYmFzZVwiICkge1xuXG4gICAgICAvLyBjcmVhdGUgY3VzdG9tIHBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciB2ZXJzaW9uaW5nIGVhY2ggZ3JvdXAgaW4gQGV4dGVuZFxuICAgICAgJGlkOiBpZigkdmVyc2lvbiA9PSBcImRlZmF1bHRcIiwgXCJcIiwgJHZlcnNpb24pO1xuXG4gICAgICAvLyBDaGVjayB0byBzZWUgaWYgYm90aCBoYXZlIGJyZWFrcG9pbnRzXG4gICAgICBAaWYgKCR1bml0cy1hcmUtY29udHJvbGxlZC1ieS1icmVha3BvaW50cyA9PSBmYWxzZSkge1xuICAgICAgICAlI3skc2VsZWN0b3ItYmFzZX0tI3skdmFyaWF0aW9ufSN7JHNlbGVjdG9yLXN1ZmZpeH0jeyRpZH0ge1xuICAgICAgICAgICN7JHByb3BlcnR5fS0jeyR2YXJpYXRpb259OiAkdW5pdCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICUjeyRzZWxlY3Rvci1iYXNlfSN7JHNlbGVjdG9yLXN1ZmZpeH0ge1xuICAgICAgICBAaWYgKG1hcC1nZXQoJHZhcmlhdGlvbnMsIFwiYmFzZVwiKSA9PSB0cnVlIGFuZCAobWFwLWdldCgkdmFyaWF0aW9ucywgXCJiYXNlXCIpICE9IFwic2hvcnRcIikgKSB7XG4gICAgICAgICAgQGV4dGVuZCAlI3skc2VsZWN0b3ItYmFzZX0tI3skdmFyaWF0aW9ufSN7JHNlbGVjdG9yLXN1ZmZpeH0jeyRpZH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICgkbWVkaWEtcXVlcnktbWluKSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtZWRpYS1xdWVyeS1taW4pIHtcbiAgICAgICAgICAlI3skc2VsZWN0b3ItYmFzZX0tI3skdmFyaWF0aW9ufSN7JHNlbGVjdG9yLXN1ZmZpeH0jeyRpZH0ge1xuICAgICAgICAgICAgI3skcHJvcGVydHl9LSN7JHZhcmlhdGlvbn06ICR1bml0LS1tZWRpYS1xdWVyeS1taW4gIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpZiAoJG1lZGlhLXF1ZXJ5LW1heCkge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWVkaWEtcXVlcnktbWF4KSB7XG4gICAgICAgICAgJSN7JHNlbGVjdG9yLWJhc2V9LSN7JHZhcmlhdGlvbn0jeyRzZWxlY3Rvci1zdWZmaXh9I3skaWR9IHtcbiAgICAgICAgICAgICN7JHByb3BlcnR5fS0jeyR2YXJpYXRpb259OiAkdW5pdC0tbWVkaWEtcXVlcnktbWF4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmKCAkdmFyaWF0aW9uID09IFwiYmFzZVwiICkge1xuICAgICAgQGlmIChtYXAtZ2V0KCR2YXJpYXRpb25zLCBcImJhc2VcIikgPT0gXCJzaG9ydFwiKSB7XG4gICAgICAgICUjeyRzZWxlY3Rvci1iYXNlfSN7JHNlbGVjdG9yLXN1ZmZpeH0ge1xuICAgICAgICAgICN7JHByb3BlcnR5fTogJHVuaXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRtZWRpYS1xdWVyeS1taW4pIHtcbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWVkaWEtcXVlcnktbWluKSB7XG4gICAgICAgICAgICAlI3skc2VsZWN0b3ItYmFzZX0jeyRzZWxlY3Rvci1zdWZmaXh9IHtcbiAgICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkdW5pdC0tbWVkaWEtcXVlcnktbWluO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCRtZWRpYS1xdWVyeS1tYXgpIHtcbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWVkaWEtcXVlcnktbWF4KSB7XG4gICAgICAgICAgICAlI3skc2VsZWN0b3ItYmFzZX0jeyRzZWxlY3Rvci1zdWZmaXh9IHtcbiAgICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkdW5pdC0tbWVkaWEtcXVlcnktbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuI3skc2VsZWN0b3ItYmFzZX0jeyRzZWxlY3Rvci1zdWZmaXh9IHtcbiAgICAgICAgQGV4dGVuZCAlI3skc2VsZWN0b3ItYmFzZX0jeyRzZWxlY3Rvci1zdWZmaXh9ICFvcHRpb25hbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYoICR2YXJpYXRpb24gIT0gXCJiYXNlXCIgYW5kIChtYXAtZ2V0KCR2YXJpYXRpb25zLCAkdmFyaWF0aW9uKSA9PSB0cnVlKSApIHtcbiAgICAgICRpZDogaWYoJHZlcnNpb24gPT0gXCJkZWZhdWx0XCIsIFwiXCIsICR2ZXJzaW9uKTtcblxuICAgICAgLiN7JHNlbGVjdG9yLWJhc2V9LSN7JHZhcmlhdGlvbn0jeyRzZWxlY3Rvci1zdWZmaXh9IHtcbiAgICAgICAgQGV4dGVuZCAlI3skc2VsZWN0b3ItYmFzZX0tI3skdmFyaWF0aW9ufSN7JHNlbGVjdG9yLXN1ZmZpeH0jeyRpZH0gIW9wdGlvbmFsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIG91dHB1dCBzcGVjaWZpYyBwcm9wZXJpdGVzIG9ubHlcbkBtaXhpbiB1bml0cygkcHJvcGVydHk6IFwicGFkZGluZ1wiLCAkdmVyc2lvbjogXCJkZWZhdWx0XCIsICR2YXJpYXRpb246IChiYXNlOiB0cnVlLCB0b3A6IHRydWUsIHJpZ2h0OiB0cnVlLCBib3R0b206IHRydWUsIGxlZnQ6IHRydWUpKSB7XG4gICR2YXJpYXRpb24tY29udHJvbHM6ICR2YXJpYXRpb247XG4gICR2ZXJzaW9uczogbWFwLWdldCgkdW5pdHMsICRwcm9wZXJ0eSk7XG4gICR2YWx1ZXM6IG1hcC1nZXQoJHZlcnNpb25zLCAkdmVyc2lvbik7XG4gICR1bml0OiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcInVuaXRcIiksbWFwLWdldCgkdmFsdWVzLCBcInVuaXRcIiksJGRlZmF1bHQtdW5pdCk7XG4gICRzZWxlY3Rvci1iYXNlOiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcInNlbGVjdG9yLW5hbWVcIiksbWFwLWdldCgkdmFsdWVzLCBcInNlbGVjdG9yLW5hbWVcIiksJHByb3BlcnR5KTtcbiAgJHZhcmlhdGlvbnM6IG1hcC1nZXQoJHZhbHVlcywgXCJ2YXJpYXRpb25zXCIpO1xuICAkc2VsZWN0b3Itc3VmZml4OiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcInN1ZmZpeFwiKSxtYXAtZ2V0KCR2YWx1ZXMsIFwic3VmZml4XCIpLFwiXCIpO1xuICAkbWVkaWEtcXVlcnktbWluOiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcIm1lZGlhLXF1ZXJ5LW1pblwiKSxtYXAtZ2V0KCR2YWx1ZXMsIFwibWVkaWEtcXVlcnktbWluXCIpLGZhbHNlKTtcbiAgJHVuaXQtLW1lZGlhLXF1ZXJ5LW1pbjogaWYobWFwLWhhcy1rZXkoJHZhbHVlcywgXCJ1bml0LS1tZWRpYS1xdWVyeS1taW5cIiksbWFwLWdldCgkdmFsdWVzLCBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1pblwiKSwkdW5pdCk7XG4gICRtZWRpYS1xdWVyeS1tYXg6IGlmKG1hcC1oYXMta2V5KCR2YWx1ZXMsIFwibWVkaWEtcXVlcnktbWF4XCIpLG1hcC1nZXQoJHZhbHVlcywgXCJtZWRpYS1xdWVyeS1tYXhcIiksZmFsc2UpO1xuICAkdW5pdC0tbWVkaWEtcXVlcnktbWF4OiBpZihtYXAtaGFzLWtleSgkdmFsdWVzLCBcInVuaXQtLW1lZGlhLXF1ZXJ5LW1heFwiKSxtYXAtZ2V0KCR2YWx1ZXMsIFwidW5pdC0tbWVkaWEtcXVlcnktbWF4XCIpLCR1bml0KTtcbiAgJHVuaXRzLWFyZS1jb250cm9sbGVkLWJ5LWJyZWFrcG9pbnRzOiAoJG1lZGlhLXF1ZXJ5LW1pbiAhPSBmYWxzZSBhbmQgJG1lZGlhLXF1ZXJ5LW1heCAhPSBmYWxzZSk7XG5cbiAgQGVhY2ggJHZhcmlhdGlvbiwgJGJvb2xlYW4gaW4gJHZhcmlhdGlvbi1jb250cm9scyB7XG5cbiAgICAkaW5jbHVkZVZhcmlhdGlvbjogbWFwLWdldCgkdmFyaWF0aW9uLWNvbnRyb2xzLCAkdmFyaWF0aW9uKTtcbiAgICAkYmFzZURvZXNOb3RPdmVyaWRlOiBpZihtYXAtZ2V0KCR2YXJpYXRpb24tY29udHJvbHMsIFwiYmFzZVwiKSwgZmFsc2UsIHRydWUpO1xuICAgICRpc0Jhc2U6ICgkdmFyaWF0aW9uID09IFwiYmFzZVwiKTtcblxuICAgIEBpZiggJGluY2x1ZGVWYXJpYXRpb24gKSB7XG5cbiAgICAgIEBpZiAoJHVuaXRzLWFyZS1jb250cm9sbGVkLWJ5LWJyZWFrcG9pbnRzID09IGZhbHNlKSB7XG4gICAgICAgIEBpZiAoJGJhc2VEb2VzTm90T3ZlcmlkZSkge1xuICAgICAgICAgICN7JHByb3BlcnR5fS0jeyR2YXJpYXRpb259OiAkdW5pdDtcbiAgICAgICAgfSBAZWxzZSBpZiAoJGlzQmFzZSkge1xuICAgICAgICAgICN7JHByb3BlcnR5fTogJHVuaXQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgKCRtZWRpYS1xdWVyeS1taW4pIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJG1lZGlhLXF1ZXJ5LW1pbikge1xuICAgICAgICAgIEBpZiAoICRiYXNlRG9lc05vdE92ZXJpZGUgKSB7XG4gICAgICAgICAgICAjeyRwcm9wZXJ0eX0tI3skdmFyaWF0aW9ufTogJHVuaXQtLW1lZGlhLXF1ZXJ5LW1pbjtcbiAgICAgICAgICB9IEBlbHNlIGlmICgkaXNCYXNlKSB7XG4gICAgICAgICAgICAjeyRwcm9wZXJ0eX06ICR1bml0LS1tZWRpYS1xdWVyeS1taW47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAoJG1lZGlhLXF1ZXJ5LW1heCkge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWVkaWEtcXVlcnktbWF4KSB7XG4gICAgICAgICAgQGlmICggJGJhc2VEb2VzTm90T3ZlcmlkZSApIHtcbiAgICAgICAgICAgICN7JHByb3BlcnR5fS0jeyR2YXJpYXRpb259OiAkdW5pdC0tbWVkaWEtcXVlcnktbWF4O1xuICAgICAgICAgIH0gQGVsc2UgaWYgKCRpc0Jhc2UpIHtcbiAgICAgICAgICAgICN7JHByb3BlcnR5fTogJHVuaXQtLW1lZGlhLXF1ZXJ5LW1heDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AZWFjaCAkcHJvcGVydHksICRpdGVtcyBpbiAkdW5pdHMge1xuXG4gICR2ZXJzaW9uczogbWFwLWdldCgkdW5pdHMsICRwcm9wZXJ0eSk7XG5cbiAgQGVhY2ggJHZlcnNpb24sICRvcHRpb25zIGluICAkdmVyc2lvbnMge1xuXG4gICAgQGluY2x1ZGUgZ2VuZXJhdGVVbml0cygkcHJvcGVydHksICR2ZXJzaW9uLCAkdmFyaWF0aW9uOiBcImluaGVyaXRcIik7XG5cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBERU1PU1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuJW5vLW1hcmdpbiB7XG4gICN7aDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcH0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLnNwYWNpbmctdmVydGljYWxzIHtcbiAgQGV4dGVuZCAlbWFyZ2luLXRvcDtcbiAgQGV4dGVuZCAlbWFyZ2luLWJvdHRvbTtcbn1cblxuLnBhZGRpbmctLXZlcnRpY2FscyB7XG4gIEBpbmNsdWRlIHVuaXRzKCR2YXJpYXRpb246ICh0b3A6IHRydWUsIGJvdHRvbTogdHJ1ZSwgbGVmdDogdHJ1ZSkpO1xufVxuXG4ubm8tcGFkZGluZyB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctbGVmdC1ub25lIHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLXJpZ2h0LW5vbmUge1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5uby1tYXJnaW4ge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi1ib3R0b20tbm9uZSB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi10b3Atbm9uZSB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn0iLCIvKlxyXG4qSXZ5Sm91cm5hbCpcclxuZm9udC1mYW1pbHk6IGl2eWpvdXJuYWwsc2Fucy1zZXJpZjtcclxuZm9udC13ZWlnaHQ6IDcwMDtcclxuZm9udC1zdHlsZTogbm9ybWFsO1xyXG5cclxuZm9udC1mYW1pbHk6IGl2eWpvdXJuYWwsc2Fucy1zZXJpZjtcclxuZm9udC13ZWlnaHQ6IDcwMDtcclxuZm9udC1zdHlsZTogaXRhbGljO1xyXG5cclxuKkJvbGQqXHJcbmZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcclxuZm9udC13ZWlnaHQ6IDcwMDtcclxuZm9udC1zdHlsZTogbm9ybWFsO1xyXG5cclxuZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xyXG5mb250LXdlaWdodDogNzAwO1xyXG5mb250LXN0eWxlOiBpdGFsaWM7XHJcblxyXG4qU2VtaWJvbGQqXHJcbmZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcclxuZm9udC13ZWlnaHQ6IDYwMDtcclxuZm9udC1zdHlsZTogbm9ybWFsO1xyXG5cclxuZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xyXG5mb250LXdlaWdodDogNjAwO1xyXG5mb250LXN0eWxlOiBpdGFsaWM7XHJcblxyXG4qUmVndWxhcipcclxuZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xyXG5mb250LXdlaWdodDogNDAwO1xyXG5mb250LXN0eWxlOiBub3JtYWw7XHJcblxyXG5mb250LWZhbWlseTogcHJveGltYS1ub3ZhLHNhbnMtc2VyaWY7XHJcbmZvbnQtd2VpZ2h0OiA0MDA7XHJcbmZvbnQtc3R5bGU6IGl0YWxpYztcclxuXHJcbiovXHJcblxyXG5AbWl4aW4gZGVmYXVsdC10ZXh0LXN0eWxlIHtcclxuICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbn1cclxuXHJcbkBtaXhpbiBzbWFsbC10ZXh0LXN0eWxlIHtcclxuICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjMxO1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbn1cclxuXHJcbkBtaXhpbiBzZWNvbmRhcnktdGV4dC1jb2xvciB7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcclxufVxyXG5cclxuQG1peGluIG11dGVkLXRleHQtc3R5bGUge1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XHJcbn1cclxuXHJcblxyXG5ib2R5IHtcclxuICBAaW5jbHVkZSBkZWZhdWx0LXRleHQtc3R5bGUoKTtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbn1cclxuXHJcbnAge1xyXG4gIEBpbmNsdWRlIGRlZmF1bHQtdGV4dC1zdHlsZSgpO1xyXG59XHJcblxyXG5zbWFsbCB7XHJcbiAgQGluY2x1ZGUgc21hbGwtdGV4dC1zdHlsZSgpO1xyXG59XHJcblxyXG5AbWl4aW4gaDEoJHNpemU6IDM3cHgpIHtcclxuICBmb250LWZhbWlseTogaXZ5am91cm5hbCxzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogJHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuXHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICBsaW5lLWhlaWdodDogNDBweDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBoMigkc2l6ZTogMjhweCkge1xyXG4gIGZvbnQtZmFtaWx5OiBpdnlqb3VybmFsLHNhbnMtc2VyaWY7IFxyXG4gIGZvbnQtc2l6ZTogJHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XHJcbiAgfVxyXG59XHJcblxyXG5oMSB7XHJcbiAgQGluY2x1ZGUgaDEoKTtcclxufVxyXG5cclxuaDIge1xyXG4gIEBpbmNsdWRlIGgyKCk7XHJcbn1cclxuXHJcbmgzIHtcclxuICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAyNHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4xMztcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG59XHJcblxyXG5oNCB7XHJcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMjFweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbn1cclxuaDUge1xyXG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcclxuICBmb250LXNpemU6IDE3cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG59XHJcblxyXG5maWVsZHNldCBsZWdlbmQge1xyXG4gIEBleHRlbmQgaDQ7XHJcbn1cclxuXHJcblxyXG4vKiBMaW5rcyAqL1xyXG5cclxuYSB7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogIzAwNjJkMTtcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgfVxyXG59XHJcbiIsIlxyXG5cclxuYm9keTpub3QoLmxvZ2dlZC1pbil7XHJcbiAgLmhpZGUtbG9nZ2VkLW91dCB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBQYWdlIGxheW91dFxyXG5cclxuLmVudHJ5LXRpdGxlIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxufVxyXG5cclxuLmVudHJ5LXN1YnRpdGxlIHtcclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XHJcblxyXG4gICYuZW50cnktc3VidGl0bGUtLWJpZyB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gICAgbWFyZ2luLXRvcDogLTE0cHg7XHJcbiAgfVxyXG4gIFxyXG4gIHAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5lbnRyeS1jb250ZW50IHtcclxuICA+IC5zZWN0aW9uIHtcclxuICAgIHdpZHRoOiAxMDB2dztcclxuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCBjYWxjKCAxMDB2dyAtIDEwMCUgKSAvIC0yICk7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoIGNhbGMoIDEwMHZ3IC0gMTAwJSApIC8gLTIgKTtcclxuICB9XHJcbn1cclxuLnNlY3Rpb24ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nLXRvcDogNjBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcclxuXHJcbiAgLnNlY3Rpb24ge1xyXG4gICAgcGFkZGluZy10b3A6IDBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZW50cnktY29udGVudCB7XHJcbiAgLmNvbnRlbnQtc2VjdGlvbiB7XHJcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICB9IFxyXG59XHJcblxyXG4vLyAuc2NyZWVuc2hvdC1ib3gtc3R5bGUge1xyXG4vLyAgIGJvcmRlci1yYWRpdXM6IDEwcHggMTBweCAxMHB4IDEwcHg7XHJcbi8vICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4IDEwcHggMTBweCAxMHB4O1xyXG4vLyAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweCAxMHB4IDEwcHggMTBweDtcclxuLy8gICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xyXG4vLyAgIGJveC1zaGFkb3c6IDBweCAxMHB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNik7XHJcbi8vICAgb3ZlcmZsb3c6aGlkZGVuO1xyXG4vLyB9XHJcblxyXG4uc2VjdGlvbl9fY29udGFpbmVyLCAuY29udGVudC1hcmVhIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcblxyXG4gICYubWVkaXVtIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coJHNpemU6ICRzZWN0aW9uLXdpZHRoLW1lZGl1bSk7XHJcbiAgfVxyXG4gICYueG1lZGl1bSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCRzaXplOiAkc2VjdGlvbi13aWR0aC14bWVkaXVtKTtcclxuICB9XHJcbiAgJi5zbWFsbCB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCRzaXplOiAkc2VjdGlvbi13aWR0aC1zbWFsbCk7XHJcbiAgfVxyXG4gICYueHNtYWxsIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coJHNpemU6ICRzZWN0aW9uLXdpZHRoLXhzbWFsbCk7XHJcbiAgfVxyXG4gICYueHhzbWFsbCB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCRzaXplOiAkc2VjdGlvbi13aWR0aC14eHNtYWxsKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgfVxyXG59XHJcblxyXG4uc2VjdGlvbl9fY29sdW1uIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcclxufVxyXG5cclxuLnNpdGUtY29udGVudCB7XHJcbiAgcGFkZGluZy10b3A6IDYwcHg7IFxyXG4gIHBhZGRpbmctYm90dG9tOiA2MHB4OyBcclxufVxyXG5cclxuLmNvbnRlbnQtYXJlYSB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG4gIFxyXG4gICYubWVkaXVtIHtcclxuICAgICYsIC5zZWN0aW9uX19jb250YWluZXIge1xyXG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCRzaXplOiAkc2VjdGlvbi13aWR0aC1tZWRpdW0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAmLnNtYWxsIHtcclxuICAgICYsIC5zZWN0aW9uX19jb250YWluZXIge1xyXG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCRzaXplOiAkc2VjdGlvbi13aWR0aC1zbWFsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2l0ZS1tYWluIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gIH1cclxuXHJcbiAgLnNpdGUtc2lkZWJhciB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDMpO1xyXG5cclxuICAgICYgKyAuc2l0ZS1tYWluIHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig5KTtcclxuXHJcblxyXG4gICAgICAuZW50cnktdGl0bGUge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgaDEoMzZweCk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTc7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgICBjb2xvcjogIzFkMWYyMTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgLmVudHJ5LXN1YnRpdGxlIHtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgICAgXHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gIFxyXG4gICAgICAmICsgLnNpdGUtbWFpbiB7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG5ib2R5LndpdGgtc2lkZWJhciB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAuc2l0ZS1zaWRlYmFyIHtcclxuICAgICAgcGFkZGluZzogMHB4O1xyXG4gICAgfVxyXG4gICAgLm1vYmlsZS1kcm9wZG93biB7XHJcbiAgICAgIG1hcmdpbjogMCAtMTZweDtcclxuICAgIH1cclxuICAgIC5zaXRlLWNvbnRlbnR7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwcHg7XHJcbiAgICB9XHJcbiAgICAuc2l0ZS1tYWluIHtcclxuICAgICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ucGFnZS10ZW1wbGF0ZS1sZWFybmluZy10by11c2Uge1xyXG4gIC5jb250ZW50LWFyZWEge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4vLyBHcmF2aXR5IEZvcm1zXHJcblxyXG5cclxuLmdmb3Jtcy1zZWN0aW9uIHtcclxuXHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxuXHJcbiAgLmdzZWN0aW9uX3RpdGxlIHtcclxuICAgIEBleHRlbmQgaDU7XHJcbiAgfVxyXG5cclxuICAmLmdyYXkge1xyXG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDtcclxuICAgIHBhZGRpbmc6IDE2cHggOHB4IDhweCA4cHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xyXG4gICAgXHJcbiAgICAuZ3NlY3Rpb25fdGl0bGUge1xyXG4gICAgICBAZXh0ZW5kIGxhYmVsO1xyXG4gICAgfVxyXG5cclxuICAgIC5nZmllbGQ6bm90KC5nc2VjdGlvbikge1xyXG4gICAgICBsYWJlbCB7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgPiB1bCB7XHJcbiAgICBtYXJnaW46IDBweDtcclxuICB9XHJcbn1cclxuXHJcbi5nZmllbGRfbGFiZWxfYmVmb3JlX2NvbXBsZXgge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5naW5wdXRfY29udGFpbmVyX3RleHRhcmVhIHtcclxuICB0ZXh0YXJlYS5zbWFsbCB7XHJcbiAgICBoZWlnaHQ6IDE3MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmdmaWVsZF9kZXNjcmlwdGlvbiwgLmdzZWN0aW9uX2Rlc2NyaXB0aW9uIHtcclxuICBAaW5jbHVkZSBsYWJlbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XHJcbiAgcGFkZGluZzogMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAvLyB0b3A6IC03cHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4zZW07XHJcbiAgd2lkdGg6IDkwJTtcclxufVxyXG4uZ2ZpZWxkX2h0bWwge1xyXG4gIGg0IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZ2lucHV0X2NvbnRhaW5lcl9jaGVja2JveCB1bCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDBweDtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG5cclxuICAmID4gW2NsYXNzXj1nY2hvaWNlXTpmaXJzdC1jaGlsZCBsYWJlbCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4udmFsaWRhdGlvbl9tZXNzYWdlIHtcclxuICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4udmFsaWRhdGlvbl9lcnJvciB7XHJcbiAgY29sb3I6IGRhcmtyZWQ7XHJcbiAgcGFkZGluZzogMCA4cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxufVxyXG5cclxuLmdmb3JtX3dyYXBwZXIge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkZDNENBO1xyXG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblxyXG4gIC5naW5wdXRfY29udGFpbmVyX3JhZGlvIHtcclxuICAgIG1hcmdpbi10b3A6IDEycHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XHJcbiAgfVxyXG5cclxuICAuZ2Zvcm1fZmllbGRzIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBtYXJnaW46IDBweDtcclxuICAgIFxyXG4gICAgLmdpbnB1dF9jb21wbGV4IHtcclxuICAgICAgbWFyZ2luOiAwIC04cHg7XHJcblxyXG4gICAgICAmID4gKiB7XHJcbiAgICAgICAgQGV4dGVuZCAuZm9ybS1yb3c7XHJcbiAgICAgICAgXHJcbiAgICAgICAgJi5naW5wdXRfbGVmdCwgJi5naW5wdXRfcmlnaHQge1xyXG4gICAgICAgICAgQGV4dGVuZCAuZm9ybS1yb3ctaGFsZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLmdmaWVsZCAge1xyXG4gICAgICBAZXh0ZW5kIC5mb3JtLXJvdztcclxuXHJcbiAgICAgIFxyXG4gICAgICAmLmhhbGYge1xyXG4gICAgICAgICBAZXh0ZW5kIC5mb3JtLXJvdy1oYWxmO1xyXG4gICAgICB9IFxyXG4gICAgICAmLnNob3J0IHtcclxuICAgICAgICAgQGV4dGVuZCAuZm9ybS1yb3ctc2hvcnQ7XHJcbiAgICAgIH0gXHJcbiAgICAgICYubG9uZyB7XHJcbiAgICAgICAgIEBleHRlbmQgLmZvcm0tcm93LWxvbmc7XHJcbiAgICAgIH0gXHJcbiAgICAgICYucXVhcnRlciB7XHJcbiAgICAgICAgIEBleHRlbmQgLmZvcm0tcm93LXF1YXJ0ZXI7XHJcbiAgICAgIH0gXHJcbiAgICB9XHJcbiAgfVxyXG4gIC5nZm9ybV9mb290ZXIgIHtcclxuICAgIEBleHRlbmQgLmZvcm0tcm93O1xyXG5cclxuICAgIGlucHV0W3R5cGU9c3VibWl0XSB7XHJcbiAgICAgIEBpbmNsdWRlIHByaW1hcnktYnV0dG9uLXN0eWxlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi5zY3JlZW5zaG90LWJveC1zdHlsZSBpbWcge1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xyXG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNik7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbGV4LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBmb3IgdGhpcyByb3cuIElmIHNldCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSwgdGhlIGdsb2JhbCBjb2x1bW4gY291bnQgd2lsbCBiZSB1c2VkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBiYXNpYyBzdHlsZXMgZnJvbSBiZWluZyBvdXRwdXQuIFVzZWZ1bCBpZiB5b3UncmUgY2FsbGluZyB0aGlzIG1peGluIG9uIHRoZSBzYW1lIGVsZW1lbnQgdHdpY2UsIGFzIGl0IHByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgb3V0cHV0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJhc2U6IHRydWUsXG4gICR3cmFwOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRiYXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93ICR3cmFwO1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucywgJGJhc2UpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgYGZsZXhgIHByb3BlcnR5IGZvciBhIGZsZXggZ3JpZCBjb2x1bW4uIEl0IGFjY2VwdHMgYWxsIG9mIHRoZSBzYW1lIHZhbHVlcyBhcyB0aGUgYmFzaWMgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHR3byBleHRyYXM6XG4vLy8gICAtIGBleHBhbmRgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXG4vLy8gICAtIGBzaHJpbmtgIHdpbGwgbWFrZSB0aGUgY29sdW1uIGNvbnRyYWN0LCBzbyBpdCBvbmx5IHRha2VzIHVwIHRoZSBob3Jpem9udGFsIHNwYWNlIGl0IG5lZWRzLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IGV4cGFuZCkge1xuICAkZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcblxuICBAaWYgJGNvbHVtbnMgPT0gc2hyaW5rIHtcbiAgICAkZmxleDogMCAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgJGNvbHVtbnMgIT0gZXhwYW5kIHtcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxuXG4gIEByZXR1cm4gJGZsZXg7XG59XG5cbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMgd2lkdGguIFNlZSB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcmAgbWl4aW4uXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6IGV4cGFuZCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAvLyBCYXNlIHByb3BlcnRpZXNcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXNpemUoJGNvbHVtbnMpO1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gZml4ZXMgcmVjZW50IENocm9tZSB2ZXJzaW9uIG5vdCBsaW1pdGluZyBjaGlsZCB3aWR0aFxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNDkzNDU4Ni93aGl0ZS1zcGFjZS1ub3dyYXAtYW5kLWZsZXhib3gtZGlkLW5vdC13b3JrLWluLWNocm9tZVxuICBAaWYgJGNvbHVtbnMgPT0gZXhwYW5kIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cbiAgLy8gbWF4LXdpZHRoIGZpeGVzIElFIDEwLzExIG5vdCByZXNwZWN0aW5nIHRoZSBmbGV4LWJhc2lzIHByb3BlcnR5XG4gIEBpZiAkY29sdW1ucyAhPSBleHBhbmQgYW5kICRjb2x1bW5zICE9IHNocmluayB7XG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBibG9jayBncmlkIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5IG9uIGVhY2ggcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgLSBTZWxlY3RvciB0byB1c2UgdG8gdGFyZ2V0IGNvbHVtbnMgd2l0aGluIHRoZSByb3cuXG5AbWl4aW4gZmxleC1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nXG4pIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gID4gI3skc2VsZWN0b3J9IHtcbiAgICAkcGN0OiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgZmxleDogMCAwICRwY3Q7XG4gICAgbWF4LXdpZHRoOiAkcGN0O1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSB3aWR0aCBmbGV4IGdyaWQgY29sdW1uLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZmxleC1ncmlkLXNpemUoJGNvbHVtbnM6IG51bGwpIHtcbiAgJGNvbHVtbnM6ICRjb2x1bW5zIG9yIGV4cGFuZDtcblxuICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zKTtcblxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IGV4cGFuZCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtZ3JpZCB7XG4gIC8vIFJvd1xuICAucm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuXG4gICAgLy8gTmVzdGluZyBiZWhhdmlvclxuICAgICYgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KG5lc3QsICRiYXNlOiBmYWxzZSk7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW5kbyBuZWdhdGl2ZSBtYXJnaW5zXG4gICAgLy8gRnJvbSBjb2xsYXBzZWQgY2hpbGRcbiAgICAmLmlzLWNvbGxhcHNlLWNoaWxkLFxuICAgICYuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC5yb3cgLmNvbHVtbi5yb3cucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtbGF5b3V0KCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC8vIFNpemluZyAoZXhwYW5kKVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS1leHBhbmQge1xuICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBdXRvLXN0YWNraW5nL3Vuc3RhY2tpbmdcbiAgICAgIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuICAgICAgICAucm93LiN7JC16Zi1zaXplfS11bnN0YWNrIHtcbiAgICAgICAgICA+IC5jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigxMDAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LXVuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgKHNocmluaylcbiAgLnNocmluayB7XG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWQgY29sdW1uc1xuICAuY29sdW1uLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICAuY29sdW1ucyB7XG4gICAgQGV4dGVuZCAuY29sdW1uOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuXG4gIH1cbn1cbiIsIlxyXG5AbWl4aW4gYnV0dG9uLXN0eWxlIHtcclxuICAvLyBCb3hcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZzogMHB4IDE1cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRvcDogMHB4O1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgXHJcbiAgLy8gVGV4dFxyXG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgLy8gVHJhbnNpdGlvblxyXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xyXG5cclxuICAvLyBTdGF0ZXNcclxuICAmOmZvY3VzLCAmOmhvdmVyLCAmOmFjdGl2ZSwgJi5hY3RpdmUge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcbiAgJjpkaXNhYmxlZCB7XHJcbiAgICBvcGFjaXR5OiAwLjI1O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG5vcm1hbC1idXR0b24tc2l6ZSB7XHJcbiAgaGVpZ2h0OiAzMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzMXB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBwYWRkaW5nOiAwcHggMTVweDtcclxuICBcclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuQG1peGluIG5vcm1hbC1idXR0b24tc3R5bGUge1xyXG4gIEBpbmNsdWRlIHNoYWRvdy1iYWNrZ3JvdW5kO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpO1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG5cclxuICAmOmZvY3VzIHtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpO1xyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICB9XHJcbiAgJjpob3ZlciB7XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgxMjYsIDEzNywgMTUwLCAwLjcpLCBpbnNldCAwIC0xcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjMpO1xyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICB9XHJcbiAgJjphY3RpdmUsICYuYWN0aXZlIHtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNyksIGluc2V0IDAgMnB4IDFweCAwIHJnYmEoMjksIDMxLCAzMywgMC4xNSk7XHJcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICB9XHJcbiAgJjpkaXNhYmxlZCwgJjpkaXNhYmxlZDpob3ZlciB7XHJcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBwcmltYXJ5LWJ1dHRvbi1zdHlsZSgkaW1wb3JhbnQ6JycpIHtcclxuICBib3gtc2hhZG93OiAwIDFweCAzcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuNCksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNThhZmUgI3skaW1wb3JhbnR9O1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuNCksIGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSAjeyRpbXBvcmFudH07ICAgIFxyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgfVxyXG4gICY6aG92ZXIge1xyXG4gICAgYm94LXNoYWRvdzogMCAzcHggNHB4IDAgcmdiYSgxNywgMTksIDIxLCAwLjMpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNThhZmUgI3skaW1wb3JhbnR9O1xyXG4gICAgdG9wOiAwcHg7IC8vIE9mZlxyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgfVxyXG4gICY6YWN0aXZlLCAmLmFjdGl2ZSB7XHJcbiAgICBib3gtc2hhZG93OiAwIDBweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpLCBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjJkMSAjeyRpbXBvcmFudH07XHJcbiAgICB0b3A6IDFweDtcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gIH1cclxuICAmOmRpc2FibGVkLCAmOmRpc2FibGVkOmhvdmVyIHsgIFxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI1OGFmZSAjeyRpbXBvcmFudH07XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gc3BlY2lhbC1idXR0b24tc3R5bGUge1xyXG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC40KSwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMik7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYzA5NjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIGNvbG9yOiAjZmZmZmZmO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgcmdiYSgxNywgMTksIDIxLCAwLjQpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0Y2MwOTY7ICAgIFxyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgfVxyXG4gICY6aG92ZXIge1xyXG4gICAgYm94LXNoYWRvdzogMCAzcHggNHB4IDAgcmdiYSgxNywgMTksIDIxLCAwLjMpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0Y2MwOTY7XHJcbiAgICB0b3A6IDBweDsgLy8gT2ZmXHJcbiAgICBjb2xvcjogI2ZmZmZmZjtcclxuICB9XHJcbiAgJjphY3RpdmUsICYuYWN0aXZlIHtcclxuICAgIGJveC1zaGFkb3c6IDAgMHB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMiksIGluc2V0IDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQ5YjcwO1xyXG4gICAgdG9wOiAxcHg7XHJcbiAgICBjb2xvcjogI2ZmZmZmZjtcclxuICB9XHJcbiAgJjpkaXNhYmxlZCwgJjpkaXNhYmxlZDpob3ZlciB7ICBcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0Y2MwOTY7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbkBtaXhpbiBtaW5pbWFsLWJ1dHRvbi1zdHlsZSB7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIGNvbG9yOiAjZmZmZmZmO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgfVxyXG4gICY6aG92ZXIge1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI5LCAyMzQsIDI0MCwgMC4yKTtcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gIH1cclxuICAmOmFjdGl2ZSwgJi5hY3RpdmUge1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI5LCAyMzQsIDI0MCwgMC41KTtcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gIH1cclxuICAmOmRpc2FibGVkLCAmOmRpc2FibGVkOmhvdmVyIHsgIFxyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1pbmltYWwtYmxhY2stYnV0dG9uLXN0eWxlIHtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjMpLCBpbnNldCAwIC0xcHggMXB4IDAgcmdiYSgxNywgMTksIDIxLCAwLjA4KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4wOCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gIH1cclxuICAmOmhvdmVyIHtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMyksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMDgpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOTAsIDIwMywgMjI0LCAwLjIpO1xyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbiAgfVxyXG4gICY6YWN0aXZlLCAmLmFjdGl2ZSB7XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjMpLCBpbnNldCAwIC0xcHggMXB4IDAgcmdiYSgxNywgMTksIDIxLCAwLjA4KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTkwLCAyMDMsIDIyNCwgMC41KTtcclxuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gIH1cclxuICAmOmRpc2FibGVkLCAmOmRpc2FibGVkOmhvdmVyIHsgIFxyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4zKSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4wOCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzZWNvbmRhcnktYnV0dG9uLXN0eWxlIHtcclxuICBib3gtc2hhZG93OiAwIDFweCAxcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMTIpLCBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjIpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICBjb2xvcjogIzAwNjJkMTtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggMCByZ2JhKDE3LCAxOSwgMjEsIDAuMTIpLCBpbnNldCAwIDBweCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMik7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAgICBcclxuICAgIGNvbG9yOiAjMDA2MmQxO1xyXG4gIH1cclxuICAmOmhvdmVyIHtcclxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDRweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4xMiksIGluc2V0IDAgMHB4IDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgICBjb2xvcjogIzAwNjJkMTtcclxuICAgIHRvcDogMHB4OyAvLyBPZmZcclxuICB9XHJcbiAgJjphY3RpdmUsICYuYWN0aXZlIHtcclxuICAgIGJveC1zaGFkb3c6IDAgMHB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMSksIGluc2V0IDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMyk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oI2ZmZmZmZiwgMyk7XHJcbiAgICB0b3A6IDFweDtcclxuICB9XHJcbn0gXHJcblxyXG5AbWl4aW4gbGFyZ2UtYnV0dG9uIHtcclxuICBtaW4td2lkdGg6IDE2MHB4O1xyXG4gIGhlaWdodDogNDJweDtcclxuICBsaW5lLWhlaWdodDogNDFweDtcclxuICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgcGFkZGluZzogMHB4IDE1cHg7XHJcbiAgXHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn0iLCJcclxuLmJ1dHRvbiwgaW5wdXRbdHlwZT1zdWJtaXRdIHtcclxuICBAaW5jbHVkZSBidXR0b24tc3R5bGU7XHJcblxyXG4gIEBpbmNsdWRlIG5vcm1hbC1idXR0b24tc2l6ZTtcclxuICBAaW5jbHVkZSBub3JtYWwtYnV0dG9uLXN0eWxlO1xyXG5cclxuXHJcbiAgJi5sYXJnZSB7XHJcbiAgICBAaW5jbHVkZSBsYXJnZS1idXR0b247XHJcbiAgfVxyXG5cclxuICAmLnByaW1hcnkge1xyXG4gICAgQGluY2x1ZGUgcHJpbWFyeS1idXR0b24tc3R5bGU7XHJcbiAgfVxyXG4gICYud2hpdGUge1xyXG4gICAgQGluY2x1ZGUgc2Vjb25kYXJ5LWJ1dHRvbi1zdHlsZTtcclxuICB9XHJcbiAgJi5zcGVjaWFsIHtcclxuICAgIEBpbmNsdWRlIHNwZWNpYWwtYnV0dG9uLXN0eWxlO1xyXG4gIH1cclxuICAmLm1pbmltYWwge1xyXG4gICAgQGluY2x1ZGUgbWluaW1hbC1idXR0b24tc3R5bGU7XHJcbiAgfVxyXG4gICYubWluaW1hbC1ibGFjayB7XHJcbiAgICBAaW5jbHVkZSBtaW5pbWFsLWJsYWNrLWJ1dHRvbi1zdHlsZTtcclxuICB9XHJcbn1cclxuXHJcbi53cC1ibG9jay1idXR0b24ge1xyXG4gIC53cC1ibG9jay1idXR0b25fX2xpbmsge1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGU7XHJcbiAgICBAaW5jbHVkZSBsYXJnZS1idXR0b247XHJcblxyXG4gICAgQGluY2x1ZGUgcHJpbWFyeS1idXR0b24tc3R5bGUoJyFpbXBvcnRhbnQnKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFByZXZpZXdcclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgJiA+IC5idXR0b24ge1xyXG4gICAgbWFyZ2luOiAxMHB4O1xyXG4gIH1cclxuICAuZi1wcmV2aWV3LWRhcmsge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luOiAwIC0xNXB4O1xyXG4gICAgcGFkZGluZzogMTVweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDlweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XHJcbiAgICBcclxuICAgID4gaDQge1xyXG4gICAgICBjb2xvcjp3aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgICAmID4gLmJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMTBweDtcclxuICAgIH1cclxuICB9XHJcbn0iLCJAbWl4aW4gcm91bmRlZCgkcmFkaXVzOiAwLjVlbSkge1xyXG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJHJhZGl1cztcclxuICAtbW96LWJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcclxufVxyXG5cclxuQG1peGluIGdyYWRpZW50KCRmcm9tLCAkdG8pIHtcclxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKCRmcm9tKSwgdG8oJHRvKSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAgJGZyb20sICR0byk7XHJcbiAgZmlsdGVyOiAgcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7JGZyb219JywgZW5kQ29sb3JzdHI9JyN7JHRvfScpO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xyXG4gIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcclxuICBib3gtc2hhZG93OiAkc2hhZG93O1xyXG59XHJcblxyXG5AbWl4aW4gc2hhZG93LWJhY2tncm91bmQge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZmZmZiAwJSwgI0VDRUVGMCAxMDAlKTsgLyogRkYzLjYtMTUgKi9cclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYgMCUsI0VDRUVGMCAxMDAlKTsgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmZmZmIDAlLCNFQ0VFRjAgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xyXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjZmZmZmZmJywgZW5kQ29sb3JzdHI9JyNFQ0VFRjAnLEdyYWRpZW50VHlwZT0wICk7IC8qIElFNi05ICovXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG59XHJcblxyXG5AbWl4aW4gc2hhZG93LWJhY2tncm91bmQtZmxpcCB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjRUNFRUYwIDAlLCAjZmZmZmZmIDEwMCUpOyAvKiBGRjMuNi0xNSAqL1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI0VDRUVGMCAwJSwjZmZmZmZmIDEwMCUpOyAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNFQ0VFRjAgMCUsI2ZmZmZmZiAxMDAlKTsgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXHJcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNFQ0VFRjAnLCBlbmRDb2xvcnN0cj0nI2ZmZmZmZicsR3JhZGllbnRUeXBlPTAgKTsgLyogSUU2LTkgKi9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn0iLCJsYWJlbCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gIFxyXG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjs7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gIC5vcHRpb25hbCB7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcclxuICB9XHJcbiAgLnJlcXVpcmVkIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGNvbG9yOiAjZGIzNzM3O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIFByZXZpZXdcclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgJiA+IGxhYmVsIHtcclxuICAgIG1hcmdpbjogMTBweDtcclxuICB9XHJcbn0iLCJcclxuLnByaWNlLWRpc3BsYXkge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBwYWRkaW5nOiAwcHggNnB4O1xyXG5cclxuICA+IHNwYW46bnRoLWNoaWxkKDEpIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogIzAwNjJkMTtcclxuICB9XHJcbiAgPiBzcGFuOm50aC1jaGlsZCgyKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcclxuICB9XHJcbiAgPiBzcGFuOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcclxuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7XHJcbiAgfVxyXG5cclxuICAmLnNlY29uZGFyeSB7XHJcbiAgICA+IHNwYW46bnRoLWNoaWxkKDEpIHtcclxuICAgICAgY29sb3I6ICMxZTk0NjE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmxhcmdlIHtcclxuICAgID4gc3BhbjpudGgtY2hpbGQoMSkge1xyXG4gICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICB9XHJcbiAgICA+IHNwYW46bnRoLWNoaWxkKDIpIHtcclxuICAgIH1cclxuICAgID4gc3BhbjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4vLyBQcmV2aWV3XHJcblxyXG4uZi1pdGVtLXByZXZpZXcge1xyXG4gICYgPiAucHJpY2UtZGlzcGxheSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW46IDEwcHg7XHJcbiAgfVxyXG59IiwiXHJcblxyXG4uZ2ZpZWxkX3JhZGlvIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XHJcbiBcclxuICBsaSB7XHJcbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgICAgbWFyZ2luLXRvcDogN3B4OyBcclxuICAgIH1cclxuICAgIGxhYmVsIHtcclxuICAgICAgbWFyZ2luOiAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5sYWJlbC5yYWRpby1jaGVja2JveCwgLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCwgLmdmaWVsZF9yYWRpbyAqW2NsYXNzXj1nY2hvaWNlXSwgLndjX3BheW1lbnRfbWV0aG9kLCAuZ2ZpZWxkX2NoZWNrYm94ICpbY2xhc3NePWdjaG9pY2VdIHtcclxuICBcclxuICAmLCA+IGxhYmVsIHtcclxuICAgIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgJiA+IGlucHV0W3R5cGU9Y2hlY2tib3hdLCAmID4gaW5wdXRbdHlwZT1yYWRpb10ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAmICsgKiB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7XHJcbiAgICAgICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgxMjYsIDEzNywgMTUwLCAwLjUpLCBpbnNldCAwIC0xcHggMXB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjE1KTtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcblxyXG4gICAgICAgIHdpZHRoOiAxOHB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMThweDtcclxuICAgICAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgICAgIEBpbmNsdWRlIHNoYWRvdy1iYWNrZ3JvdW5kKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuOCksIGluc2V0IDAgLTFweCAxcHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgQGluY2x1ZGUgc2hhZG93LWJhY2tncm91bmQtZmxpcCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAmOmNoZWNrZWQgKyAqIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgJjpiZWZvcmUgeyAgXHJcbiAgICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWNoZWNrbWFyayk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogOS41cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcclxuXHJcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjMDA2MmQxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgxNywgMTksIDIxLCAwLjEpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigjMDA2MmQxLCAzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCByZ2JhKDE3LCAxOSwgMjEsIDAuMSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oIzAwNjJkMSwgNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJlt0eXBlPXJhZGlvXSArICoge1xyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJlt0eXBlPXJhZGlvXTpjaGVja2VkICsgKiB7XHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBAaW5jbHVkZSBpY29tb29uLWljb24oJGljb24tY2lyY2xlKTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTlweDtcclxuICAgICAgICBmb250LXNpemU6IDcuNXB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59ICIsIlxuQG1peGluIGljb24tc2l6ZSggJHNpemUgKXtcblx0Zm9udC1zaXplOiBtYXAtZ2V0KCAkaWNvbi1zaXplcywgJHNpemUgKTtcbn1cblxuQG1peGluIGljb21vb24taWNvbiggJGljb246ZmFsc2UsICRzaXplOmZhbHNlICkge1xuXHQvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuXHRmb250LWZhbWlseTogJ2ljb21vb24nICFpbXBvcnRhbnQ7XG5cdHNwZWFrOiBub25lO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cblx0LyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG5cdEBpZiAkc2l6ZSB7XG5cdFx0QGluY2x1ZGUgaWNvbi1zaXplKCAkc2l6ZSApO1xuXHR9XG5cdEBpZiAkaWNvbiB7XG5cdFx0Y29udGVudDogJGljb247XG5cdH1cbn1cblxuIiwiXHJcblxyXG4ucmVzb3VyY2UtbGluayB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4ucmVzb3VyY2UtbGlua19fd3JhcHBlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiAjMDA2MmQxO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5yZXNvdXJjZS1saW5rX19pY29uIHtcclxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XHJcbiAgbWF4LWhlaWdodDogNDZweDtcclxuICB3aWR0aDogYXV0bztcclxuICBtaW4td2lkdGg6IDQycHg7XHJcbn1cclxuXHJcbi5yZXNvdXJjZS1saW5rX190ZXh0IHtcclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgY29sb3I6ICMwMDYyZDE7XHJcbn0iLCJcclxuLnNlY3Rpb24tdGl0bGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uc2VjdGlvbi10aXRsZV9fdGl0bGUge1xyXG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcclxuICBmb250LXNpemU6IDI0cHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbn0iLCJcclxuLnNlY3Rpb24taWNvbi10aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5zZWN0aW9uLWljb24tdGl0bGUtLWludGVyZmFjZSB7IFxyXG4gIC5zZWN0aW9uLWljb24tdGl0bGVfX2ljb24ge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvZGlzay1pbnRlcmZhY2Uuc3ZnJyk7XHJcbiAgfVxyXG59XHJcbi5zZWN0aW9uLWljb24tdGl0bGUtLXN0b3JpZXMgeyBcclxuICAuc2VjdGlvbi1pY29uLXRpdGxlX19pY29uIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Rpc2stc3Rvcmllcy5zdmcnKTtcclxuICB9XHJcbn1cclxuLnNlY3Rpb24taWNvbi10aXRsZS0tc29mdHdhcmUgeyBcclxuICAuc2VjdGlvbi1pY29uLXRpdGxlX19pY29uIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Rpc2stc29mdHdhcmUtdGllcnMuc3ZnJyk7XHJcbiAgfVxyXG59XHJcbi5zZWN0aW9uLWljb24tdGl0bGUtLWZsb3cgeyBcclxuICAuc2VjdGlvbi1pY29uLXRpdGxlX19pY29uIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Rpc2stZmxvdy5zdmcnKTtcclxuICB9XHJcbn1cclxuLnNlY3Rpb24taWNvbi10aXRsZS0tY29yZS10ZWNoIHsgXHJcbiAgLnNlY3Rpb24taWNvbi10aXRsZV9faWNvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9kaXNrLWNvcmUtdGVjaC5zdmcnKTtcclxuICB9XHJcbn1cclxuXHJcbi5zZWN0aW9uLWljb24tdGl0bGVfX2ljb24ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogNTFweDtcclxuICBoZWlnaHQ6IDUxcHg7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG59XHJcblxyXG4uc2VjdGlvbi1pY29uLXRpdGxlX190aXRsZSB7XHJcbiAgQGluY2x1ZGUgaDIoKTtcclxuICBsaW5lLWhlaWdodDogMS4yOWVtO1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbiAgd2lkdGg6IDU1MHB4O1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDAgYXV0bztcclxufVxyXG4uc2VjdGlvbi1pY29uLXRpdGxlX19zdWJ0aXRsZSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4zMztcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHdpZHRoOiA1ODBweDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuXHJcblxyXG4vLyBQcmV2aWV3XHJcblxyXG4uZi1pdGVtLXByZXZpZXcge1xyXG4gID4gLmlucHV0LWZpZWxkIHtcclxuICAgIHdpZHRoOiAyNjBweDtcclxuICB9XHJcbn0iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcm91bmRlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igcm91bmRlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1yYWRpdXNgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuXG4vLy8gUm91bmRlZCB1dGlsaXR5IChhbGwgY29ybmVycyk6IEFkZHMgcmFkaXVzIGNvcm5lcnMgKGFsbCBjb3JuZXJzKSB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpdXMgWyRwcm90b3R5cGUtYm9yZGVyLXJhZGl1c10gQm9yZGVyIHJhZGl1cyAoYWxsIGNvcm5lcnMpXG5AbWl4aW4gYm9yZGVyLXJhZGl1cyhcbiAgJHJhZGl1czogJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzXG4pIHtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuLy8vIFJvdW5kZWQgc3F1YXJlIHV0aWxpdHkgb3IgcmVjdGFuZ2xlIHV0aWxpdHkgKGFsbCBjb3JuZXJzKTogUm91bmRzIGFsbCBjb3JuZXJzIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCB0byBtYWtlIGEgcGlsbCBzaGFwZS5cbkBtaXhpbiBib3JkZXItcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMDBweCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcm91bmRlZCB7XG4gIC5yb3VuZGVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcbiAgfVxuXG4gIC5yYWRpdXMge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXJvdW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJvdW5kZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1yYWRpdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgcm91bmRlZC1yYWRpdXM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJcclxuJGFycm93LXVybDogXCIuLi9pbWFnZXMvY2FyZXQuc3ZnXCI7XHJcblxyXG5AbWl4aW4gaW5wdXQtc3R5bGUge1xyXG5cclxuICAvLyBCb3hcclxuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDNweCk7XHJcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwKSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KSwgaW5zZXQgMCAxcHggMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpKTtcclxuICAvLyBtaW4td2lkdGg6IDI2MHB4O1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDMycHg7XHJcbiAgcGFkZGluZzogMHB4IDI1cHggMHB4IDEwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcclxuICBtYXJnaW46IDBweDtcclxuXHJcbiAgLy8gVGV4dFxyXG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjs7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcblxyXG4gIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG4gICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XHJcbiAgfVxyXG4gIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgLy8gUGxhY2Vob2xkZXIgVGV4dCBcclxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgIFxyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7ICBcclxuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgIFxyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbiAgJjotbW96LXBsYWNlaG9sZGVyIHsgIFxyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbiAgJjo6cGxhY2Vob2xkZXIgeyAgXHJcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjQpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuXHJcbiAgLy8gVHJhbnNpdGlvblxyXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xyXG5cclxuICAvLyBTdGF0ZXNcclxuICAmOm5vdCguc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkKSB7XHJcbiAgICAmOmFjdGl2ZSwgJjpmb2N1cywgJi5hY3RpdmUsICZbYXJpYS1leHBhbmRlZD10cnVlXSB7XHJcbiAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCAwIDAgMnB4IHJnYmEoMCwgOTgsIDIwOSwgMC42KSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKSk7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbiAgJi5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xyXG4gICAgJjphY3RpdmUsICY6Zm9jdXMsICYuYWN0aXZlLCAmIHtcclxuICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwKSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1peGluIHNlbGVjdC1zaGFkb3dlZC1zdHlsZSB7XHJcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwKSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KSwgaW5zZXQgMCAtMXB4IDFweCAwIHJnYmEoMjksIDMxLCAzMywgMC4xNSkpO1xyXG5cclxuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZmZmZmZmKzAsZGVlMmU3KzEwMCAqL1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkYXJyb3ctdXJsKSwgLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCAjRUNFRUYwIDEwMCUpOyAvKiBGRjMuNi0xNSAqL1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkYXJyb3ctdXJsKSwgLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCNFQ0VFRjAgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRhcnJvdy11cmwpLCBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmZmZmIDAlLCNFQ0VFRjAgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xyXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjZmZmZmZmJywgZW5kQ29sb3JzdHI9JyNFQ0VFRjAnLEdyYWRpZW50VHlwZT0wICk7IC8qIElFNi05ICovXHJcblxyXG4gIGJhY2tncm91bmQtc2l6ZTogOHB4IDVweCwgMTAwJSAxMDAlO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcclxuXHJcbiAgLy8gU3RhdGVzXHJcbiAgJjphY3RpdmUsICY6Zm9jdXMsICYuYWN0aXZlIHtcclxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCAwIDAgMnB4IHJnYmEoMCwgOTgsIDIwOSwgMC40KSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKSk7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1peGluIGlucHV0LWVycm9yLXN0eWxlIHtcclxuICBAaW5jbHVkZSBib3gtc2hhZG93KDAgMCAwIDBweCByZ2JhKDAsIDk4LCAyMDksIDAuNiksIGluc2V0IDAgMCAwIDBweCAjMDA2MmQxLCBpbnNldCAwIDAgMCAxcHggI2RiMzczNyk7XHJcbiAgXHJcbiAgLy8gU3RhdGVzXHJcbiAgJjphY3RpdmUsICY6Zm9jdXMsICYuYWN0aXZlIHtcclxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCAwIDAgMnB4IHJnYmEoMCwgOTgsIDIwOSwgMC42KSwgaW5zZXQgMCAwIDAgMXB4ICMwMDYyZDEsIGluc2V0IDAgMXB4IDJweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKSk7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG4vLyBUZXh0IGlucHV0XHJcblxyXG5bdHlwZT0ndGV4dCddLCBcclxuW3R5cGU9J3Bhc3N3b3JkJ10sIFxyXG5bdHlwZT0nZGF0ZSddLCBcclxuW3R5cGU9J2RhdGV0aW1lJ10sIFxyXG5bdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSwgXHJcblt0eXBlPSdtb250aCddLCBcclxuW3R5cGU9J3dlZWsnXSwgXHJcblt0eXBlPSdlbWFpbCddLCBcclxuW3R5cGU9J251bWJlciddLCBcclxuW3R5cGU9J3NlYXJjaCddLCBcclxuW3R5cGU9J3RlbCddLCBcclxuW3R5cGU9J3RpbWUnXSwgXHJcblt0eXBlPSd1cmwnXSwgXHJcblt0eXBlPSdjb2xvciddLCBcclxudGV4dGFyZWEgLFxyXG4uc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xyXG4gIEBpbmNsdWRlIGlucHV0LXN0eWxlO1xyXG5cclxuICAmLmVycm9yIHtcclxuICAgIEBpbmNsdWRlIGlucHV0LWVycm9yLXN0eWxlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2VsZWN0IGlucHV0XHJcblxyXG5zZWxlY3Qge1xyXG4gIEBpbmNsdWRlIGlucHV0LXN0eWxlO1xyXG5cclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJGFycm93LXVybCk7XHJcbiAgYmFja2dyb3VuZC1zaXplOiA4cHggNXB4O1xyXG5cclxuICAmLnNoYWRvd2VkIHtcclxuICAgIEBpbmNsdWRlIHNlbGVjdC1zaGFkb3dlZC1zdHlsZTtcclxuICB9XHJcbiAgJi5lcnJvciB7XHJcbiAgICBAaW5jbHVkZSBpbnB1dC1lcnJvci1zdHlsZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbi8vIFByZXZpZXdcclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgJiA+IFt0eXBlPSd0ZXh0J10sIFxyXG4gICYgPiBbdHlwZT0ncGFzc3dvcmQnXSwgXHJcbiAgJiA+IFt0eXBlPSdkYXRlJ10sIFxyXG4gICYgPiBbdHlwZT0nZGF0ZXRpbWUnXSwgXHJcbiAgJiA+IFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBcclxuICAmID4gW3R5cGU9J21vbnRoJ10sIFxyXG4gICYgPiBbdHlwZT0nd2VlayddLCBcclxuICAmID4gW3R5cGU9J2VtYWlsJ10sIFxyXG4gICYgPiBbdHlwZT0nbnVtYmVyJ10sIFxyXG4gICYgPiBbdHlwZT0nc2VhcmNoJ10sIFxyXG4gICYgPiBbdHlwZT0ndGVsJ10sIFxyXG4gICYgPiBbdHlwZT0ndGltZSddLCBcclxuICAmID4gW3R5cGU9J3VybCddLCBcclxuICAmID4gW3R5cGU9J2NvbG9yJ10sIFxyXG4gICYgPiB0ZXh0YXJlYSxcclxuICBcclxuICAmID4gc2VsZWN0IHtcclxuICAgIHdpZHRoOiAyNjBweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbjogMTBweDtcclxuICB9XHJcbn0iLCJcclxuLnVzZXItc3Rvcnkge1xyXG59XHJcblxyXG4udXNlci1zdG9yeV9fc3ViamVjdCB7XHJcbiAgZm9udC1zaXplOiAyNHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbiAgbWFyZ2luLWJvdHRvbTogN3B4O1xyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIuKAnFwiO1xyXG4gIH1cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwi4oCdXCI7XHJcbiAgfVxyXG59XHJcblxyXG4udXNlci1zdG9yeV9fY29udGVudCB7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCLigJxcIjtcclxuICB9XHJcbiAgJjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIuKAnVwiO1xyXG4gIH1cclxufVxyXG5cclxuLnVzZXItc3RvcnlfX2F1dGhvciB7XHJcbiAgbWFyZ2luLXRvcDogMTVweDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDonJzsgXHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9jb21tZW50ZXIuc3ZnJyk7XHJcbiAgICB3aWR0aDogMzhweDtcclxuICAgIGhlaWdodDogMzhweDtcclxuICAgIG1hcmdpbi1yaWdodDogMTJweDtcclxuICB9XHJcblxyXG4gID4gKiB7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zMTtcclxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG4gIH1cclxufVxyXG5cclxuLnVzZXItc3RvcnlfX2F1dGhvci1pbmZvIHtcclxuICBcclxufVxyXG5cclxuLnVzZXItc3RvcnlfX2F1dGhvci1uYW1lIHtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuXHJcbi51c2VyLXN0b3J5X19hdXRob3ItaW5zaXR1dGlvbiB7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJ2F0JztcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuLy8gUHJldmlld1xyXG5cclxuLmYtaXRlbS1wcmV2aWV3IHtcclxuICA+IC51c2VyLXN0b3J5IHtcclxuICAgIHdpZHRoOiA0NzVweDtcclxuICB9XHJcbn0iLCJcclxuLmZlYXR1cmUtYmxvY2sge1xyXG4gIHBhZGRpbmctbGVmdDogMjVweDtcclxufVxyXG5cclxuLmZlYXR1cmUtYmxvY2stLW5ldyB7XHJcbiAgLmZlYXR1cmUtYmxvY2tfX3RpdGxlIHtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiAnTkVXJztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJlNmJlO1xyXG4gICAgICBwYWRkaW5nOiAzcHggMTFweDtcclxuICAgICAgcmlnaHQ6IC03cHg7XHJcbiAgICAgIHRvcDogLTdweDtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xyXG4gIFxyXG4gICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGNvbG9yOiAjMTg4MTU0O1xyXG4gICAgfVxyXG4gIH1cclxuICAuZmVhdHVyZS1ibG9ja19fdGl0bGUtd3JhcHBlciB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDUwcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBcclxuICB9XHJcbn1cclxuXHJcbi5mZWF0dXJlLWJsb2NrX190aXRsZSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTY7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogLTE2cHg7XHJcbiAgICB0b3A6IDZweDtcclxuICAgIHdpZHRoOiA4cHg7XHJcbiAgICBoZWlnaHQ6IDhweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5M2M2ZmY7XHJcbiAgfVxyXG59XHJcblxyXG4uZmVhdHVyZS1ibG9ja19fY29udGVudCB7XHJcbiAgJiwgcCB7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuLy8gUHJldmlld1xyXG5cclxuLmYtaXRlbS1wcmV2aWV3IHtcclxuICA+IC5mZWF0dXJlLWJsb2NrIHtcclxuICAgIHdpZHRoOiAzNDVweDtcclxuICB9XHJcbn0iLCJcclxuXHJcbi5zaG9wX3RhYmxlIHtcclxuICBzZWxlY3Qge1xyXG4gICAgQGluY2x1ZGUgc2VsZWN0LXNoYWRvd2VkLXN0eWxlO1xyXG4gIH1cclxuXHJcbiAgdGQge1xyXG4gICAgLmJ1dHRvbiwgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGhlYWQsIHRib2R5LCB0Zm9vdCB7XHJcbiAgICB0ciB7XHJcbiAgICAgIHRoLCB0ZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuXHJcblxyXG4gICAgICAgICYge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICAgICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgID4gLmZvcm0tcm93IHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgID4gKjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICB0aGVhZCwgdGJvZHksIHRmb290IHtcclxuICAgIHRyOmxhc3QtY2hpbGQge1xyXG4gICAgICB0aCwgdGQge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgdGZvb3Qge1xyXG4gICAgdHIucmVjdXJyaW5nLXRvdGFscyB7XHJcbiAgICAgIHRoOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdHIub3JkZXItdG90YWwge1xyXG4gICAgICB0ZDpsYXN0LWNoaWxkIHtcclxuICAgICAgICAmLCAqIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG5cclxuICAgICAgICAgIC5maXJzdC1wYXltZW50LWRhdGUgc21hbGwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICB0aGVhZCB7XHJcbiAgICB0ciB7XHJcbiAgICAgIHRoIHtcclxuICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9ICBcclxuXHJcbiAgdGJvZHkge1xyXG4gICAgdHIge1xyXG4gICAgICB0ZC5wcm9kdWN0LW5hbWUge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0Zm9vdCB7XHJcbiAgICB0ciB7XHJcbiAgICAgIHRoIHtcclxuICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbi5vcmRlcl9kZXRhaWxzIHtcclxuICB0Zm9vdCB7XHJcbiAgICB0cjpsYXN0LWNoaWxkIHtcclxuICAgICAgdGg6Zmlyc3QtY2hpbGQsIHRkOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIHRoZWFkLCB0Ym9keSwgdGZvb3Qge1xyXG4gICAgdHIge1xyXG4gICAgICB0aDpmaXJzdC1jaGlsZCwgdGQ6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgIH1cclxuICAgICAgdGg6bnRoLWNoaWxkKDIpLCB0ZDpudGgtY2hpbGQoMikge1xyXG4gICAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUge1xyXG5cclxuICBcclxuICB0aGVhZCwgdGJvZHkge1xyXG4gICAgdHIge1xyXG4gICAgICB0aDpmaXJzdC1jaGlsZCwgdGQ6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgIH1cclxuICAgICAgdGg6bnRoLWNoaWxkKDIpLCB0ZDpudGgtY2hpbGQoMikge1xyXG4gICAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgdGZvb3Qge1xyXG4gICAgdHI6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICB0aDpmaXJzdC1jaGlsZCwgdGQ6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbi8vIFByZXZpZXdcclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgJiA+IC5zaG9wX3RhYmxlIHtcclxuICAgIG1heC13aWR0aDogNTYwcHg7XHJcbiAgfVxyXG59IiwiXHJcbi5mZWF0dXJlcy10YWJsZSB7XHJcbiAgdGhlYWQge1xyXG4gICAgdHIge1xyXG4gICAgICB0aCB7XHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5mZWF0dXJlcy10YWJsZV9wcm9kdWN0LXRpZXIge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZmVhdHVyZXMtdGFibGVfcHJvZHVjdC1uYW1lIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZmVhdHVyZXMtdGFibGVfcHJvZHVjdC1ieSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBcclxuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgICAuZmVhdHVyZXMtdGFibGVfcHJvZHVjdC10aWVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICMzZGI2ODI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6bnRoLWNoaWxkKDMpIHtcclxuICAgICAgICAgIC5mZWF0dXJlcy10YWJsZV9wcm9kdWN0LXRpZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogIzM5OTZmZjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgdGJvZHkge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBcclxuICAgIHRyIHtcclxuICAgICAgdGQge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDBweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS4xZW07XHJcbiAgICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KTtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgICBpOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjM2RiNjgyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmOm50aC1jaGlsZCgzKSB7XHJcbiAgICAgICAgICBpOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMzk5NmZmO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcbi5wcm9kdWN0LWNhcmQge1xyXG4gIHBhZGRpbmc6IDMwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpLCAwIDNweCA3cHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMiksIDAgMCAwIDFweCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpLCAwIDNweCA3cHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICBwYWRkaW5nOiAzMHB4IDIycHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgcGFkZGluZzogMzBweCAxNXB4O1xyXG4gIH1cclxufVxyXG4ucHJvZHVjdC1jYXJkX2hlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG5cclxuICBoMyB7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJpY2UtZGlzcGxheSB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICB9XHJcbn1cclxuLnByb2R1Y3QtY2FyZF9ib2R5IHsgIFxyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuLnByb2R1Y3QtY2FyZF9kaXNjb3VudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBoZWlnaHQ6IDczcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTQxLCAyMjcsIDE4MSwgMC40KTtcclxuICBwYWRkaW5nOiAwIDEwcHggMCAyMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgbGFiZWwge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luOiAwcHg7XHJcbiAgICBcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgIGNvbG9yOiAjMWU5NDYxO1xyXG4gIH1cclxufVxyXG4ucHJvZHVjdC1jYXJkX2Rlc2NyaXB0aW9uIHtcclxuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDEyNiwgMTM3LCAxNTAsIDAuNSk7XHJcblxyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4xNTtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG5cclxuICBwIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDZweDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIEBpbmNsdWRlIGljb21vb24taWNvbigkaWNvbi1jaGVja21hcmspO1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAtMjBweDtcclxuICAgICAgICB0b3A6IDJweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgKjpsYXN0LWNoaWxkIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICB9XHJcbn1cclxuLnByb2R1Y3QtY2FyZF9mb290ZXIge1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAuYnV0dG9uIHtcclxuICAgIHBhZGRpbmc6IDAgMzBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4vLyBQcmV2aWV3XHJcblxyXG4uZi1pdGVtLXByZXZpZXcge1xyXG4gICYgPiAucHJvZHVjdC1jYXJkIHsgIFxyXG4gICAgd2lkdGg6IDQyMHB4O1xyXG4gIH1cclxufSIsIlxyXG4uaW5wdXQtZmllbGQge1xyXG4gIG1hcmdpbi1ib3R0b206IDE0cHg7XHJcblxyXG4gIC5pbnB1dC1maWVsZC13cmFwcGVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAmOm5vdCgub3B0aW9ucy1ncm91cCkge1xyXG4gICAgLnJhZGlvLWNoZWNrYm94IHtcclxuICAgICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMzJweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuLy8gUHJldmlld1xyXG5cclxuLmYtaXRlbS1wcmV2aWV3IHtcclxuICA+IC5pbnB1dC1maWVsZCB7XHJcbiAgICB3aWR0aDogMjYwcHg7XHJcbiAgfVxyXG59IiwiXHJcbiNzaXRlLW5hdmlnYXRpb24ge1xyXG4gIFxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIC5tYWluLW5hdmlnYXRpb24td3JhcHBlciB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgfVxyXG4gICAgXHJcbiAgLmhlYWRlci1uYXZpZ2F0aW9uX19yb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgID4gKiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAubWVudS10b2dnbGUsIC5tZW51LWNsb3NlIHtcclxuICAgIG1hcmdpbjogMHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xyXG4gICAgLm1lbnUtdG9nZ2xlLCAubWVudS1jbG9zZSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBcclxuXHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cclxuXHJcbiAgICBhLmJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMHB4IDE0cHggMCAxNHB4O1xyXG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC5oZWFkZXItc21hbGwtbWVudSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBwYWRkaW5nOiA4cHggMHB4O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICAgICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuY3VycmVudC1tZW51LWl0ZW0sICY6aG92ZXIge1xyXG4gICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMDA2MmQxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tZW51LWNsb3NlIHtcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIEBpbmNsdWRlIGljb21vb24taWNvbigkaWNvbi1jbG9zZS1tZW51KTtcclxuICAgICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjQpO1xyXG4gICAgICAgIHdpZHRoOiAxNnB4O1xyXG4gICAgICAgIGhlaWdodDogMTZweDtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyBcclxuICAgICAgcmlnaHQ6IDBweDtcclxuICAgICAgdG9wOiAwcHg7XHJcbiAgICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcbiAgICAgICY6Zm9jdXMsICY6YWN0aXZlIHtcclxuICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmhlYWRlci1zZWFyY2gge1xyXG4gICAgICBtYXJnaW46IDBweDtcclxuICAgICAgbWFyZ2luLXRvcDogMTVweDtcclxuXHJcbiAgICAgIC5oZWFkZXItc2VhcmNoX19jbG9zZSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tYWluLW5hdmlnYXRpb24td3JhcHBlciB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubWVudS10b2dnbGUge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgLm1lbnUtdG9nZ2xlX19oYW1idXJnZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB3aWR0aDogMjJweDtcclxuICAgICAgICBoZWlnaHQ6IDJweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTFweDtcclxuXHJcbiAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xyXG4gICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHdpZHRoOiAyMnB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICB0b3A6IC03cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgYm90dG9tOiAtN3B4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgJjpmb2N1cywgJjphY3RpdmUge1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2l0ZS1uYXZpZ2F0aW9uX19tZW51LXdyYXBwZXIge1xyXG4gICAgICBoZWlnaHQ6IDBweDtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBsZWZ0OiAwcHg7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICB0cmFuc2l0aW9uOiAwLjVzO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgXHJcbiAgICAgIHotaW5kZXg6IDEwMDtcclxuICAgIH1cclxuICAgIC5zaXRlLW5hdmlnYXRpb25fX21lbnUge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI5LCAzMSwgMzMsIDAuMCksIDAgM3B4IDIycHggMCByZ2JhKDI5LCAzMSwgMzMsIDApO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICBwYWRkaW5nOiAwcHggMzBweCAwcHggMzBweDtcclxuICAgICAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjVzLCBib3gtc2hhZG93IDAuNXM7XHJcbiAgICAgIG1heC13aWR0aDogMzAwcHg7XHJcbiAgICAgIHdpZHRoOiA4MHZ3O1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcbiAgICAuaGVhZGVyLW5hdmlnYXRpb25fX3JvdyB7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgICAuYnV0dG9uIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAmOmxhc3QtY2hpbGQgeyBcclxuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XHJcbiAgICAgIH1cclxuICAgICAgPiAqLCAubWVudSB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcclxuXHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH0gXHJcblxyXG4gICAgJi50b2dnbGVkIHtcclxuICAgICAgLnNpdGUtbmF2aWdhdGlvbl9fbWVudS13cmFwcGVyIHtcclxuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgICB9XHJcbiAgICAgIC5zaXRlLW5hdmlnYXRpb25fX21lbnUge1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpLCAwIDNweCAyMnB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjMpO1xyXG4gICAgICAgIHBhZGRpbmc6IDI1cHggMzBweCAxNXB4IDMwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwcHg7XHJcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuZGl2W2lkKj1zaXRlLW5hdmlnYXRpb25dIHsgXHJcbiAgXHJcbiAgLy8gUHJldmlld1xyXG5cclxuICAuZi1pdGVtLXByZXZpZXcge1xyXG4gICAgYmFja2dyb3VuZDogIzFlNDM3NTtcclxuICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgfVxyXG59IiwiQG1peGluIHN1Ym1lbnUge1xyXG5cclxuICB6LWluZGV4OiAxMDtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjksIDMxLCAzMywgMC4xNSksIDAgM3B4IDdweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gIHBhZGRpbmc6IDEwcHggMHB4O1xyXG4gIG1hcmdpbjogMHB4O1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgbWluLXdpZHRoOiAxODBweDtcclxuICBtYXgtd2lkdGg6IDMwMHB4O1xyXG4gIHBhZGRpbmc6IDE0cHggMTBweDtcclxuICBsZWZ0OiAtNnB4O1xyXG4gIHRvcDogY2FsYyggMTAwJSArIDRweCApO1xyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGJvcmRlcjogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogd2hpdGU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0xNnB4O1xyXG4gICAgbGVmdDogMjNweDtcclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB6LWluZGV4OiAzO1xyXG4gIH1cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgYm9yZGVyOiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0xOHB4O1xyXG4gICAgbGVmdDogMjJweDtcclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4ubWFpbi1tZW51IHtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XHJcblxyXG4gICAgLm1lbnUtaXRlbSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgXHJcbiAgICAgICYsIGEge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsc2Fucy1zZXJpZjtcclxuICAgICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDBweDtcclxuXHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgb3BhY2l0eTogMC44cztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXIsICYuZm9jdXMge1xyXG4gICAgICAgIC5zdWItbWVudSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcclxuICAgICAgPiBhOmFmdGVyIHtcclxuICAgICAgICBAaW5jbHVkZSBpY29tb29uLWljb24oJGljb24tY2FyZXQpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNHB4O1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogLTEwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGxlZnQ6IDBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jdXJyZW50LW1lbnUtaXRlbSwgLmN1cnJlbnQtbWVudS1wYXJlbnQge1xyXG4gICAgICAmLCA+IGEge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zdWItbWVudSB7XHJcblxyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHN1Ym1lbnUoKTtcclxuXHJcbiAgICAgIC5tZW51LWl0ZW0ge1xyXG4gICAgICAgID4gYSB7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7XHJcbiAgICAgICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICAgICAgICAgIHBhZGRpbmc6IDZweCAxMHB4O1xyXG5cclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zMTtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xyXG4gICAgICAgICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAmLmN1cnJlbnQtbWVudS1pdGVtLCAmLmN1cnJlbnQtbWVudS1wYXJlbnQsICY6aG92ZXIge1xyXG4gICAgICAgICAgPiBhIHsgXHJcbiAgICAgICAgICAgIGNvbG9yOiAjMDA2MmQxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcclxuICAgIFxyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgLmN1cnJlbnQtbWVudS1pdGVtIHtcclxuICAgIFxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgLnN1Yi1tZW51LS1kZXNjcmlwdGlvbnMge1xyXG5cclxuICAgICAgbWluLXdpZHRoOiAxODBweDtcclxuICAgICAgbWF4LXdpZHRoOiAzMDBweDtcclxuICAgICAgcGFkZGluZzogN3B4O1xyXG4gICAgICBsZWZ0OiAtNnB4O1xyXG4gICAgICBcclxuICAgICAgLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLCBhIHtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgJi5jdXJyZW50LW1lbnUtaXRlbSwgJi5jdXJyZW50LW1lbnUtcGFyZW50LCAmOmhvdmVyIHtcclxuICAgICAgICAgICYsID4gYSB7IFxyXG4gICAgICAgICAgICBjb2xvcjogIzAwNjJkMTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZWVmZjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICAubWVudS1pdGVtLm1lbnUtaXRlbV9fZGVzY3JpcHRpb24ge1xyXG4gICAgICBhIHtcclxuICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbiAgICAgIH1cclxuICAgICAgJiwgYSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgJi5jdXJyZW50LW1lbnUtaXRlbSwgJi5jdXJyZW50LW1lbnUtcGFyZW50LCAmOmhvdmVyIHtcclxuICAgICAgICAmLCA+IGEgeyBcclxuICAgICAgICAgIGNvbG9yOiAjMDA2MmQxO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZWVmZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfSAvLyBMYXJnZSB1cFxyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcclxuICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcclxuXHJcbiAgICBcclxuICAgID4gLm1lbnUtaXRlbSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNERkUxRTU7XHJcbiAgICAgIFxyXG4gICAgICA+IGEge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICAgICAgY29sb3I6ICMxZDFmMjE7XHJcbiAgICAgICAgcGFkZGluZzogMTFweCAwcHg7XHJcblxyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xyXG5cclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuY3VycmVudC1tZW51LWl0ZW0sICYuY3VycmVudC1tZW51LXBhcmVudCwgJjpob3ZlciB7XHJcbiAgICAgICAgICBjb2xvcjogIzAwNjJkMTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBcclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiAxMXB4O1xyXG4gICAgICAgIGhlaWdodDogMnB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICByaWdodDogN3B4O1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzQ5OWVmZjtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XHJcbiAgICAgIH1cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aWR0aDogMTFweDtcclxuICAgICAgICBoZWlnaHQ6IDJweDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6IDdweDtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICM0OTllZmY7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKC05MGRlZyk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuLm9wZW4gPiBhIHtcclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xyXG4gICAgICB9XHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3ViLW1lbnUge1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBtYXJnaW46IDBweDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB0b3A6IC01cHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcclxuXHJcbiAgICAgID4gLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIFxyXG4gICAgICAgID4gYSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gICAgICAgICAgcGFkZGluZzogOHB4IDBweDtcclxuXHJcbiAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgJi5jdXJyZW50LW1lbnUtaXRlbSwgJi5jdXJyZW50LW1lbnUtcGFyZW50LCAmOmhvdmVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICMwMDYyZDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbmRpdltpZCo9bmF2LW1lbnVdIHsgXHJcbiAgXHJcbiAgLy8gUHJldmlld1xyXG5cclxuICAuZi1pdGVtLXByZXZpZXcge1xyXG4gICAgcGFkZGluZzogMzBweDtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcclxuICAgICAgYmFja2dyb3VuZDogIzFlNDM3NTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgICAgLm1haW4tbWVudSB7XHJcbiAgICAgICAgd2lkdGg6IDI0MHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcbi50YWJzIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE1MSwgMTUxLCAxNTEsIDAuMzIpO1xyXG59XHJcblxyXG4udGFic19fdGFiIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZzogMCAxMHB4O1xyXG5cclxuICAmOmZpcnN0LWNoaWxkIHtcclxuICAgIHBhZGRpbmctbGVmdDogMHB4O1xyXG4gIH1cclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDJweDtcclxuICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG5cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuICAmLmFjdGl2ZSBhe1xyXG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICM1MDk0ZTA7XHJcbiAgfVxyXG4gICYuYWN0aXZlIGEsIGE6aG92ZXIge1xyXG4gICAgY29sb3I6ICMyMTdjZTM7XHJcbiAgfVxyXG59IiwiXHJcblxyXG4ucG9zdC1pdGVtIHtcclxuICBwYWRkaW5nOiAzMHB4IDA7XHJcbn1cclxuXHJcbi5wb3N0LWl0ZW1fX2NhdGVnb3J5IHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xyXG59XHJcblxyXG4ucG9zdC1pdGVtX190aXRsZSB7XHJcblxyXG4gICYsIGEge1xyXG4gICAgZm9udC1zaXplOiAxOXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMTY7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgY29sb3I6ICMwMDYyZDE7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnBvc3QtaXRlbV9fY29udGVudCB7XHJcbiAgJiwgcCB7XHJcbiAgICBAaW5jbHVkZSBzZWNvbmRhcnktdGV4dC1jb2xvcigpO1xyXG4gIH1cclxuXHJcbiAgJiA+ICo6bGFzdC1jaGlsZCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi8vIFByZXZpZXdcclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgPiAucG9zdC1pdGVtIHtcclxuICAgIHdpZHRoOiA4MDBweDtcclxuICB9XHJcbn0iLCJcclxuXHJcbi5tb2JpbGUtZHJvcGRvd24ge1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNERkUxRTU7XHJcbiAgfVxyXG59XHJcblxyXG4ubW9iaWxlLWRyb3Bkb3duX190cmlnZ2VyIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgY29sb3I6ICMxZDFmMjE7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjMzk5NmZmO1xyXG4gICAgICB3aWR0aDogN3B4O1xyXG4gICAgICBoZWlnaHQ6IDJweDtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgfVxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICByaWdodDogLTE1cHg7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDQ1ZGVnKSB0cmFuc2xhdGVYKDFweCk7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgcmlnaHQ6IC0yMnB4O1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKC00NWRlZykgdHJhbnNsYXRlWCgtMXB4KTtcclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4ubW9iaWxlLWRyb3Bkb3duIHtcclxuICAmLm9wZW4ge1xyXG4gICAgLm1vYmlsZS1kcm9wZG93bl9fdHJpZ2dlciB7XHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWigwZGVnKSB0cmFuc2xhdGVYKDJweCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpIHRyYW5zbGF0ZVgoLTJweCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubW9iaWxlLWRyb3Bkb3duX19tZW51IHtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIHBhZGRpbmc6IDAgMzVweCAyMHB4IDM1cHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gIH1cclxufSIsIlxyXG5cclxuLnBhZ2luYXRpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gIC5idXR0b24sIGlucHV0IHtcclxuICAgIG1hcmdpbjogMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnBhZ2luYXRpb25fX3ByZXYge1xyXG4gIG1hcmdpbi1yaWdodDogMjBweDtcclxufVxyXG5cclxuLnBhZ2luYXRpb25fX2N1cnJlbnQtcGFnZSB7XHJcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcblxyXG4gIGlucHV0IHtcclxuICAgIHdpZHRoOiA0OHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucGFnaW5hdGlvbl9fdG90YWwtcGFnZSB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xyXG5cclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcclxufVxyXG5cclxuLnBhZ2luYXRpb25fX25leHQge1xyXG5cclxufSIsIlxyXG5cclxuLnRlYW0taXRlbSB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG59XHJcblxyXG4udGVhbS1pdGVtX19waG90by1jb2x1bW4ge1xyXG4gIG1hcmdpbi1yaWdodDogNjBweDtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICBmbGV4LXNocmluazogMTtcclxuICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyLDApO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICB9XHJcbn1cclxuXHJcbi50ZWFtLWl0ZW1fX3Bob3RvIHtcclxuICB3aWR0aDogMTkwcHg7XHJcbiAgcGFkZGluZy10b3A6IDI0MHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkOGQ4O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIFxyXG59XHJcblxyXG4udGVhbS1pdGVtX19pbmZvLWNvbHVtbiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsZXg6IDE7XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDBweDtcclxuXHJcbiAgICB3aWR0aDogNDhweDtcclxuICAgIGhlaWdodDogM3B4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUwOTRlMDtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyLDApO1xyXG4gIH1cclxufVxyXG5cclxuLnRlYW0taXRlbV9fbmFtZSB7XHJcbiAgZm9udC1zaXplOiAyMXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICBtYXJnaW4tdG9wOiAxNnB4O1xyXG59XHJcblxyXG4udGVhbS1pdGVtX19wb3NpdGlvbiB7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjUzO1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcclxuICBtYXJnaW4tYm90dG9tOiAxM3B4O1xyXG59XHJcblxyXG4udGVhbS1pdGVtX19kZXNjcmlwdGlvbiB7XHJcbiAgJiwgcCB7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi8vIFByZXZpZXdcclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgPiAudGVhbS1pdGVtIHtcclxuICAgIHdpZHRoOiAxMDUwcHg7XHJcbiAgfVxyXG59IiwiXHJcbi5idXR0b25zLWdyb3VwIHtcclxuICBmb250LXNpemU6IDBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbGVmdDogMXB4O1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgbWFyZ2luOiAwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xyXG4gICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XHJcbiAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcclxuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XHJcbiAgICAgIH1cclxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuZGl2W2lkKj1idXR0b25zLWdyb3VwXSB7IFxyXG4gIFxyXG4gIC8vIFByZXZpZXdcclxuXHJcbiAgLmYtaXRlbS1wcmV2aWV3IHtcclxuICAgIGJhY2tncm91bmQ6ICMxZTQzNzU7XHJcbiAgICBwYWRkaW5nOiAzMHB4O1xyXG4gIH1cclxufSIsIlxyXG5cclxuLmNvbnRyaWJ1dG9ycyB7XHJcbiAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XHJcbn1cclxuXHJcbi5jb250cmlidXRvcnNfX2NvbnRhaW5lciB7XHJcblxyXG59XHJcblxyXG4uY29udHJpYnV0b3JzX19jb2x1bW4ge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNCk7XHJcblxyXG4gIHVsIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XHJcblxyXG4gICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgdWwge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG5cclxuICAgIHVsIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufSIsIlxyXG5cclxuLmJvYXJkLWl0ZW0ge1xyXG4gIFxyXG59XHJcblxyXG4uYm9hcmQtaXRlbV9fbmFtZSB7XHJcbiAgZm9udC1zaXplOiAyMXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcbn1cclxuXHJcbi5ib2FyZC1pdGVtX19jb250ZW50IHtcclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG59XHJcblxyXG5cclxuXHJcbi8vIFByZXZpZXdcclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgPiAuYm9hcmQtaXRlbSB7XHJcbiAgICB3aWR0aDogODAwcHg7XHJcbiAgfVxyXG59IiwiXHJcbi5jb3JlLWhpZ2hsaWdodHMtaXRlbSB7XHJcblxyXG59XHJcblxyXG4uY29yZS1oaWdobGlnaHRzLWl0ZW1fX3RpdGxlIHtcclxuXHJcbn1cclxuXHJcbi5jb3JlLWhpZ2hsaWdodHMtaXRlbV9fY29udGVudCB7XHJcbiAgQGluY2x1ZGUgc2Vjb25kYXJ5LXRleHQtY29sb3IoKTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuLy8gUHJldmlld1xyXG5cclxuLmYtaXRlbS1wcmV2aWV3IHtcclxuICA+IC5jb3JlLWhpZ2hsaWdodHMtaXRlbSB7XHJcbiAgICB3aWR0aDogNTEwcHg7XHJcbiAgfVxyXG59IiwiXHJcblxyXG4uZm9vdGVyLW1lbnUge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICAubmF2LW1lbnUge1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkgeyBcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikgeyBcclxuXHJcbiAgICB9XHJcblxyXG4gICAgPiAubWVudS1pdGVtIHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHsgXHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xyXG4gICAgICB9XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikgeyBcclxuICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgIH1cclxuICAgICAgXHJcblxyXG4gICAgICA+IGEge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XHJcblxyXG4gICAgICAgICY6ZW1wdHkge1xyXG4gICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcuJztcclxuICAgICAgICAgICAgZm9udC1zaXplOiAwcHg7XHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLnN1Yi1tZW51IHtcclxuICAgIG1hcmdpbjogMHB4O1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgICA+IC5tZW51LWl0ZW0ge1xyXG4gICAgICA+IGEge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XHJcblxyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuLy8gUHJldmlld1xyXG5cclxuKltpZCo9Zm9vdGVyLW1lbnVdIHtcclxuICAuZi1pdGVtLXByZXZpZXcge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOXB4OyAgXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzgzZjQ5O1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuICB9XHJcbn0iLCJcclxuLm93bC1jYXJvdXNlbCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4ub3dsLXN0YWdlLW91dGVyIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ub3dsLWl0ZW0ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLm93bC1kb3RzIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ub3dsLW5hdiB7XHJcblxyXG4gIC5vd2wtcHJldiwgLm93bC1uZXh0IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNDUlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xyXG5cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICYuZGlzYWJsZWQge1xyXG4gICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICB9XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4ycywgcmlnaHQgMC4ycztcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIGZvbnQtc2l6ZTogMHB4O1xyXG4gICAgICBoZWlnaHQ6IDU1cHg7XHJcbiAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIH1cclxuICB9XHJcbiAgLm93bC1wcmV2IHtcclxuICAgIGxlZnQ6IC04MHB4O1xyXG4gICAgXHJcbiAgICAmOm5vdCguZGlzYWJsZWQpIHtcclxuICAgICAgJjpob3ZlciBzcGFuIHtcclxuICAgICAgICBsZWZ0OiAtNXB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGxlZnQ6IDBweDtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvY2Fyb3VzZWwtbGVmdC1hcnJvdy5zdmcnKTtcclxuICAgIH1cclxuICB9XHJcbiAgLm93bC1uZXh0IHtcclxuICAgIHJpZ2h0OiAtODBweDtcclxuICAgIFxyXG4gICAgJjpub3QoLmRpc2FibGVkKSB7XHJcbiAgICAgICY6aG92ZXIgc3BhbiB7XHJcbiAgICAgICAgcmlnaHQ6IC01cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgcmlnaHQ6IDBweDtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvY2Fyb3VzZWwtcmlnaHQtYXJyb3cuc3ZnJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pIHtcclxuICAgIFxyXG4gICAgLm93bC1wcmV2LCAub3dsLW5leHQge1xyXG4gICAgICBzcGFuIHtcclxuICAgICAgICBoZWlnaHQ6IDQ1cHg7XHJcbiAgICAgICAgd2lkdGg6IDMwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5vd2wtcHJldiB7XHJcbiAgICAgIGxlZnQ6IC0zNXB4O1xyXG4gICAgfVxyXG4gICAgLm93bC1uZXh0IHtcclxuICAgICAgcmlnaHQ6IC0zNXB4O1xyXG4gICAgfVxyXG4gIH1cclxufSIsIlxyXG4udGV4dC1pbWFnZSB7XHJcblxyXG59XHJcblxyXG4udGV4dC1pbWFnZV9fY29udGFpbmVyIHtcclxuICBcclxufVxyXG5cclxuLnRleHQtaW1hZ2VfX3RleHQtY29sdW1uIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDUsIDYwKTtcclxuICBwYWRkaW5nLXRvcDogMzBweDtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBvbmx5KSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYsIDIwKTtcclxuICB9XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbi50ZXh0LWltYWdlX190aXRsZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZvbnQtc2l6ZTogMjRweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTM7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMjNweDtcclxuICAgIHdpZHRoOiA0OHB4O1xyXG4gICAgaGVpZ2h0OiAzcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTA5NGUwO1xyXG4gIH1cclxufVxyXG5cclxuLnRleHQtaW1hZ2VfX2NvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4zMztcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7XHJcbn1cclxuXHJcbi50ZXh0LWltYWdlX19pbWFnZS1jb2x1bW4ge1xyXG5cclxuICBwYWRkaW5nLXRvcDogNnB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAxNHB4O1xyXG5cclxuICBpbWcge1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgYm94LXNoYWRvdzogMCA1cHggOXB4IDAgcmdiYSgxNywgMTksIDIxLCAwLjE2KSwgMCAwIDAgMXB4IHJnYmEoMTcsIDE5LCAyMSwgMC4wOSk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDcsIDYwKTtcclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBvbmx5KSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYsIDIwKTtcclxuXHJcbiAgICBtYXJnaW4tdG9wOiBjYWxjKCBjYWxjKCAje21hcC1nZXQoJGJyZWFrcG9pbnRzLCAnbGFyZ2UnKX0gLSA5OXZ3ICkgLyA2ICk7XHJcbiAgfVxyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XHJcblxyXG4gICAgbWFyZ2luLXRvcDogMzBweDtcclxuICB9XHJcbn0iLCJcclxuXHJcbi5zdGVwLWNvbHVtbiB7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgcGFkZGluZy1ib3R0b206IDBweDtcclxufVxyXG5cclxuQG1peGluIGFycm93KCRjb2xvciwgJHNpemUpIHtcclxuICBjb250ZW50OiAnJztcclxuICB0b3A6IDBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm9yZGVyOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItbGVmdC1jb2xvcjogJGNvbG9yO1xyXG4gIHotaW5kZXg6IDU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAycHg7XHJcbiAgaGVpZ2h0OiAycHg7XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7ICBcclxufVxyXG5cclxuLnN0ZXAtY29sdW1uX19oZWFkZXIge1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNiOGMwY2E7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlNDM3NTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIGFycm93KHdoaXRlLCA3cHgpO1xyXG4gICAgbGVmdDogLTFweDtcclxuICAgIHotaW5kZXg6IDc7XHJcbiAgfVxyXG4gICY6YWZ0ZXIge1xyXG4gICAgQGluY2x1ZGUgYXJyb3coI2I4YzBjYSwgN3B4KTtcclxuICAgIGxlZnQ6IDBweDtcclxuICB9XHJcbiAgbWFyZ2luOiAtMXB4OyBcclxufVxyXG5cclxuLnN0ZXAtY29sdW1uX19oZWFkZXItaW5uZXIge1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBoZWlnaHQ6IDc1cHg7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBcclxuICAmOmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBhcnJvdygjMWU0Mzc1LCA4cHgpO1xyXG4gICAgei1pbmRleDogNztcclxuICAgIHJpZ2h0OiAtMThweDtcclxuICB9XHJcbiAgJjphZnRlciB7XHJcbiAgICBAaW5jbHVkZSBhcnJvdygjYjhjMGNhLCA4cHgpO1xyXG4gICAgcmlnaHQ6IC0xOXB4O1xyXG4gIH1cclxufVxyXG5cclxuLnN0ZXAtY29sdW1uX190aXRsZSB7XHJcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbWFyZ2luOiAwcHg7XHJcbn1cclxuXHJcbi5zdGVwLWNvbHVtbl9fYm9keSB7XHJcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjksIDMxLCAzMywgMC4xNSksIDAgM3B4IDdweCAwIHJnYmEoMjksIDMxLCAzMywgMC4yKTtcclxuICBib3JkZXItcmFkaXVzOiAwIDAgNXB4IDVweDtcclxufVxyXG5cclxuLnN0ZXAtY29sdW1uX19jb250ZW50IHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZzogMTdweCAyMHB4O1xyXG5cclxuICAmID4gKjpsYXN0LWNoaWxkIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICB9XHJcbn1cclxuXHJcbi5zdGVwLWNvbHVtbl9fZm9vdGVyIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZzogMTdweCAyMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTkwLCAxOTAsIDE5MCwgMC4yMik7XHJcbiAgYm9yZGVyLXJhZGl1czogMCAwIDVweCA1cHg7XHJcbiAgXHJcbiAgJiA+ICo6bGFzdC1jaGlsZCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgfVxyXG4gIHVsIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBsaSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBAaW5jbHVkZSBpY29tb29uLWljb24oJGljb24tc3Rhcik7XHJcbiAgICAgICAgY29sb3I6ICMzOTk2ZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAtMThweDtcclxuICAgICAgICB0b3A6IDBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnN0ZXAtY29sdW1uX19jb250ZW50LFxyXG4uc3RlcC1jb2x1bW5fX2Zvb3RlciB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gIHAsIGxpIHtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIH1cclxuICB1bCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMThweDtcclxuICB9XHJcbiAgc3Ryb25nIHtcclxuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gUHJldmlld1xyXG5cclxuLmYtaXRlbS1wcmV2aWV3IHtcclxuICA+IC5zdGVwLWNvbHVtbiB7XHJcbiAgICB3aWR0aDogMjAycHg7XHJcbiAgfVxyXG59IiwiXHJcbi5zaWRlYmFyLW1lbnUsIC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCB7XHJcbiAgQGluY2x1ZGUgbWVudS1iYXNlO1xyXG4gIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcclxuXHJcblxyXG4gIC5zdWItbWVudSB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luOiAwcHg7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmssIC5tZW51LWl0ZW0ge1xyXG5cclxuICAgICYubWVudS1pdGVtLWhhcy1jaGlsZHJlbiB7XHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIG1hcmdpbjogMTNweCAwcHg7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDUwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6bm90KC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuKSArIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIG1hcmdpbjogMTNweCAwcHg7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDUwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgID4gYSB7XHJcbiAgICAgIHBhZGRpbmc6IDZweCAwcHg7XHJcbiAgICAgIFxyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG5cclxuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XHJcbiAgICB9XHJcblxyXG4gICAgJi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcclxuICAgICAgJiA+IGEge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuODcpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgXHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICB3aWR0aDogMTBweDtcclxuICAgICAgICAgIGhlaWdodDogMTBweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2NhcmV0LnN2ZycpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcclxuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKDJweCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4uaXMtb3BlbiB7XHJcbiAgICAgICYgPiBhIHtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB0cmFuc2xhdGVYKDBweCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgID4gYSB7XHJcbiAgICAgICAgY29sb3I6ICMwMDYyZDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmlzLWFjdGl2ZSwgJi5jdXJyZW50LW1lbnUtaXRlbSB7XHJcbiAgICAgID4gYSB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgY29sb3I6ICMwMDYyZDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuLy8gUHJldmlld1xyXG5cclxuLmYtaXRlbS1wcmV2aWV3IHtcclxuICA+IC5zaWRlYmFyLW1lbnUsID4gLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcclxuICAgIG1hcmdpbjogMjBweDtcclxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gICAgfVxyXG4gIH1cclxufSIsIi5oZWFkZXItdXNlci1tZW51IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG5cclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XHJcbiAgICBsaSB7XHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIC5zdWItbWVudSB7XHJcbiAgICAgICAgICBsZWZ0OiAtMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBhIHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAmOmxhc3QtY2hpbGQgYSB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5kaXZbaWQqPWhlYWRlci11c2VyLW1lbnVdIHsgXHJcbiAgXHJcbiAgLy8gUHJldmlld1xyXG5cclxuICAuZi1pdGVtLXByZXZpZXcge1xyXG4gICAgcGFkZGluZzogMzBweDtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcclxuICAgICAgYmFja2dyb3VuZDogIzFlNDM3NTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgICAgLm1haW4tbWVudSB7XHJcbiAgICAgICAgd2lkdGg6IDI0MHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcbi5oZWFkZXItc2VhcmNoIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDkwcHg7XHJcbiAgdHJhbnNpdGlvbjogd2lkdGggMC41cztcclxuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcblxyXG4gIGlucHV0IHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICB9XHJcblxyXG4gICY6bm90KC5vcGVuKSB7XHJcbiAgICBpbnB1dCB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCA5OCwgMjA5LCAwKSwgaW5zZXQgMCAwIDAgMHB4IHJnYmEoMTI2LCAxMzcsIDE1MCwgMC41KSwgaW5zZXQgMCAwcHggMHB4IDAgcmdiYSgyOSwgMzEsIDMzLCAwLjIpO1xyXG4gICAgICBcclxuICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IFxyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIH0gXHJcbiAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIgeyBcclxuICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICB9IFxyXG4gICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IFxyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIH1cclxuICAgICAgJjotbW96LXBsYWNlaG9sZGVyIHsgXHJcbiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgICAmOjpwbGFjZWhvbGRlciB7IFxyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYub3BlbiB7XHJcbiAgICB3aWR0aDogMjYwcHg7XHJcblxyXG4gICAgLmhlYWRlci1zZWFyY2hfX2Nsb3NlIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gICAgLmhlYWRlci1zZWFyY2hfX2ljb24ge1xyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29sb3I6ICNBMEExQTE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5oZWFkZXItc2VhcmNoX19pbnB1dCB7XHJcblxyXG59XHJcblxyXG4uaGVhZGVyLXNlYXJjaF9faWNvbiB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIGxlZnQ6IDEwcHg7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICY6YmVmb3JlIHtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xyXG4gICAgY29sb3I6ICNBNUI0Qzg7XHJcbiAgfVxyXG59XHJcblxyXG4uaGVhZGVyLXNlYXJjaF9fY2xvc2Uge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDUwJTtcclxuICByaWdodDogMTNweDtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgb3BhY2l0eTogMDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC41czsgXHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gICY6YmVmb3JlIHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNzA3MTcyO1xyXG4gIH1cclxufVxyXG5cclxuZGl2W2lkKj1oZWFkZXItc2VhcmNoXSB7IFxyXG4gIFxyXG4gIC8vIFByZXZpZXdcclxuXHJcbiAgLmYtaXRlbS1wcmV2aWV3IHtcclxuICAgIGJhY2tncm91bmQ6ICMxZTQzNzU7XHJcbiAgICBwYWRkaW5nOiAzMHB4O1xyXG4gIH1cclxufSIsIlxyXG5cclxuLnNvZnR3YXJlLXRpZXIge1xyXG5cclxufVxyXG5cclxuLnNvZnR3YXJlLXRpZXJfX2NvbnRhaW5lciB7XHJcblxyXG59XHJcblxyXG4uc29mdHdhcmUtdGllcl9fY29udGVudC1jb2x1bW4ge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNCwgMHB4KTtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig1KTtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyLCAwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuLnNvZnR3YXJlLXRpZXJfX2ltYWdlLWNvbHVtbiB7XHJcbiAgaW1nIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDlweCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4xNiksIDAgMCAwIDFweCByZ2JhKDE3LCAxOSwgMjEsIDAuMDkpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJkMmQzMDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oOCk7XHJcbiAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZy1sZWZ0OiA0MHB4ICFpbXBvcnRhbnQ7XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig3KTtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyLCAwcHgpO1xyXG5cclxuICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4uc29mdHdhcmUtdGllcl9faGVhZGVyIHtcclxuXHJcbn1cclxuXHJcbi5zb2Z0d2FyZS10aWVyX190aWVyIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjQpO1xyXG59XHJcblxyXG4uc29mdHdhcmUtdGllcl9fdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMjRweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTM7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbn1cclxuXHJcbi5zb2Z0d2FyZS10aWVyIHtcclxuICBcclxuICAmLnNwZWNpYWwgeyBcclxuICAgIC5zb2Z0d2FyZS10aWVyX190aWVyIHtcclxuICAgICAgY29sb3I6ICMzZGI2ODI7XHJcbiAgICB9XHJcbiAgICAuc29mdHdhcmUtdGllcl9fY29udGVudCB7XHJcbiAgICAgIHVsIHtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjM2RiNjgyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5wcmltYXJ5IHsgXHJcbiAgICAuc29mdHdhcmUtdGllcl9fdGllciB7XHJcbiAgICAgIGNvbG9yOiAjMzk5NmZmO1xyXG4gICAgfVxyXG4gICAgLnNvZnR3YXJlLXRpZXJfX2NvbnRlbnQge1xyXG4gICAgICB1bCB7XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb2xvcjogIzM5OTZmZjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uc29mdHdhcmUtdGllcl9fc3VidGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMTdweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMS4zNTtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNik7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1hcmdpbi1ib3R0b206IDE3cHg7XHJcbn1cclxuXHJcbi5zb2Z0d2FyZS10aWVyX19jb250ZW50IHtcclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG5cclxuICBwIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDMycHg7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogOXB4O1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgaWNvbW9vbi1pY29uKCRpY29uLWNoZWNrbWFyayk7XHJcbiAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC40KTtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IC0yOXB4O1xyXG4gICAgICAgIHRvcDogMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLnNvZnR3YXJlLXRpZXJfX2FjdGlvbnMge1xyXG4gIG1hcmdpbi10b3A6IDI1cHg7XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgcGFkZGluZzogMCAyOHB4O1xyXG4gIH1cclxufSIsIi5yYWRpby1jaGVja2JveC1wcmljZSB7XHJcbiAgaGVpZ2h0OiA1NnB4O1xyXG5cclxuICBpbnB1dCArICoge1xyXG4gICAgaGVpZ2h0OiA1NnB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XHJcblxyXG4gICAgLnJhZGlvLWNoZWNrYm94X2xhYmVsIHtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG5cclxuICAgICAgLnJhZGlvLWNoZWNrYm94X3ByaWNhLXRyaWFsIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgICBjb2xvcjogIzAwNjJkMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5yYWRpby1jaGVja2JveF9vbGQtcHJpY2Utd3JhcHBlciB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcclxuXHJcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjYpO1xyXG4gICAgfVxyXG4gICAgLnJhZGlvLWNoZWNrYm94X3ByaWNlLXdyYXBwZXIge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlucHV0OmNoZWNrZWQgKyAqIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWVlZmY7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi8vIFByZXZpZXdcclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgJiA+IC5yYWRpby1jaGVja2JveC1wcmljZSB7XHJcbiAgICB3aWR0aDogMzYwcHg7XHJcbiAgfVxyXG59IiwiXHJcbi5vcHRpb25zLWdyb3VwIHtcclxuICBtYXJnaW4tYm90dG9tOiA3cHg7XHJcblxyXG4gIGxhYmVsLnJhZGlvLWNoZWNrYm94LCAuZ2ZpZWxkX2NoZWNrYm94ICpbY2xhc3NePWdjaG9pY2VdIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XHJcblxyXG4gICAgPiAqIHtcclxuICAgICAgbWFyZ2luOiAwcHg7IFxyXG4gICAgfVxyXG5cclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tbGVmdDogM3B4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAmID4gaW5wdXRbdHlwZT1jaGVja2JveF0gKyAqLCAmID4gaW5wdXRbdHlwZT1yYWRpb10gKyAqIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogMzZweDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjVweDtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIFByZXZpZXdcclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgPiAub3B0aW9ucy1ncm91cCB7XHJcbiAgICB3aWR0aDogNTQwcHg7XHJcbiAgfVxyXG59IiwiXHJcbi5iZy1pbWFnZS10ZXh0IHtcclxuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jMzgzZjQ5KzUyLDI4MmYzOSs1NSAqL1xyXG4gIGJhY2tncm91bmQ6IHJnYig1Niw2Myw3Myk7IC8qIE9sZCBicm93c2VycyAqL1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoNTYsNjMsNzMsMSkgMzAlLCByZ2JhKDQwLDQ3LDU3LDEpIDgwJSk7IC8qIEZGMy42LTE1ICovXHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSg1Niw2Myw3MywxKSAzMCUscmdiYSg0MCw0Nyw1NywxKSA4MCUpOyAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSg1Niw2Myw3MywxKSAzMCUscmdiYSg0MCw0Nyw1NywxKSA4MCUpOyAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzM4M2Y0OScsIGVuZENvbG9yc3RyPScjMjgyZjM5JyxHcmFkaWVudFR5cGU9MSApOyAvKiBJRTYtOSAqL1xyXG5cclxuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAwcHg7IFxyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5iZy1pbWFnZS10ZXh0X19jb250YWluZXIge1xyXG4gIHBhZGRpbmctdG9wOiA2MHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA2MHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvU3RldGhvc2NvcGUtQmFja2dyb3VuZEAyeC5qcGdcIik7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE0MDBweDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTEwMHB4IDtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRvcDogMHB4O1xyXG4gICAgcmlnaHQ6IC0xNTBweDtcclxuICB9XHJcblxyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bikge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIEBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xyXG4gICAgICAgIHdpZHRoOiAxMDB2dztcclxuICAgICAgfVxyXG4gICAgICBAbWVkaWEgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xyXG4gICAgICAgIHdpZHRoOiAxMDB2aDtcclxuICAgICAgfVxyXG4gICAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICAgIHJpZ2h0OiAtMjAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTUwMHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIGNhbGMoIC0xMDB2dyAvIDYgKSA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYmctaW1hZ2UtdGV4dF9fY29sdW1uIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDgpO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAyO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEwKTtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcclxuICB9XHJcbn1cclxuXHJcbi5iZy1pbWFnZS10ZXh0X19zdWJ0aXRsZSB7XHJcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSxzYW5zLXNlcmlmO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgZm9udC1zaXplOiAxN3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjI5O1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6ICM5M2M2ZmY7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLmJnLWltYWdlLXRleHRfX3RpdGxlIHtcclxuICBmb250LWZhbWlseTogaXZ5am91cm5hbCxzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMjhweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiAjZmZmZmZmO1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5iZy1pbWFnZS10ZXh0X19jb250ZW50IHtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMzE7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG59XHJcblxyXG4uYmctaW1hZ2UtdGV4dF9fYWN0aW9ucyB7XHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XHJcbiAgfVxyXG59XHJcbiIsIlxyXG4uZmVhdHVyZXMge1xyXG4gIHBhZGRpbmctdG9wOiA1MHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG5cclxuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZTVlZmZmKzAsZDVlMWY2KzEwMCYwLjQrMCwxKzEwMCAqL1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksMjM5LDI1NSwwLjQpIDAlLCByZ2JhKDIxMywyMjUsMjQ2LDEpIDEwMCUpOyAvKiBGRjMuNi0xNSAqL1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksMjM5LDI1NSwwLjQpIDAlLHJnYmEoMjEzLDIyNSwyNDYsMSkgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyMjksMjM5LDI1NSwwLjQpIDAlLHJnYmEoMjEzLDIyNSwyNDYsMSkgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xyXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjNjZlNWVmZmYnLCBlbmRDb2xvcnN0cj0nI2Q1ZTFmNicsR3JhZGllbnRUeXBlPTAgKTsgLyogSUU2LTkgKi9cclxuXHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMTIpO1xyXG59XHJcblxyXG4uZmVhdHVyZXNfX2NvbnRhaW5lciB7XHJcbiAgXHJcbn1cclxuXHJcbi5mZWF0dXJlc19fY29sdW1uIHtcclxuXHJcbiAgZm9udC1zaXplOiAwcHg7XHJcbiAgXHJcbiAgLmZlYXR1cmUtYmxvY2sge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgICBcclxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xyXG4gICAgICB3aWR0aDogY2FsYyggMzMuMyUgKyAxNXB4ICk7XHJcblxyXG4gICAgICAmOm50aC1jaGlsZCgzbikge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcclxuICAgICAgICB3aWR0aDogY2FsYyggMzMuMyUgLSAzMHB4ICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIlxyXG4udG9wLWZlYXR1cmVzIHtcclxuICBwYWRkaW5nLXRvcDogMTA1cHg7XHJcbn1cclxuXHJcbi50b3AtZmVhdHVyZXNfX2NvbnRhaW5lciB7XHJcblxyXG59XHJcblxyXG4udG9wLWZlYXR1cmVzX19jb2x1bW4ge1xyXG4gID4gaDIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gIH1cclxufSIsIlxyXG4ucHJvZHVjdC1jYXJkcyB7XHJcbiAgYmFja2dyb3VuZDogIzFlNDM3NTtcclxuICBwYWRkaW5nLXRvcDogNDBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNzBweDtcclxufVxyXG5cclxuLnByb2R1Y3QtY2FyZHNfX2NvbHVtbnMge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcclxuICB3aWR0aDogMTAwJTtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLnByb2R1Y3QtY2FyZHNfX2NvbHVtbiB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2LCA0MCk7XHJcblxyXG4gICYucHJvZHVjdHMtY2FyZHNfX2Zvcm0ge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig5LCA0MCk7XHJcbiAgICAucHJvZHVjdC1jYXJkIHtcclxuICAgICAgd2lkdGg6IDYxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnByb2R1Y3QtY2FyZCB7XHJcbiAgICB3aWR0aDogNDIwcHg7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICB9XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAmLnByb2R1Y3RzLWNhcmRzX19mb3JtLCAmIHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMiwgMCk7XHJcbiAgICB9XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG5cclxuICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0LWNhcmRzX19oZWFkZXIge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIsIDQwKTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcbi5wcm9kdWN0LWNhcmRzX190aXRsZSB7XHJcbiAgQGluY2x1ZGUgaDEoMzhweCk7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XHJcbn1cclxuLnByb2R1Y3QtY2FyZHNfX2hlYWRlci10YWJzIHtcclxuICBtYXJnaW4tYm90dG9tOiAxOHB4O1xyXG4gICYgKyAucHJvZHVjdC1jYXJkc19fc3VidGl0bGU6bm90KDplbXB0eSkge1xyXG4gICAgbWFyZ2luLXRvcDogMjBweDtcclxuICB9XHJcbn1cclxuLnByb2R1Y3QtY2FyZHNfX3N1YnRpdGxlIHtcclxuICB3aWR0aDogMzkwcHg7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICYuZnVsbC13aWR0aCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgcCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcbiAgfVxyXG4gICYsIHAge1xyXG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6ICNhZmQ2ZmY7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5wcm9kdWN0LWNhcmRzX19jb250ZW50IHtcclxuICBwYWRkaW5nOiAwIDMwcHg7XHJcbiAgJiwgcCB7XHJcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuICB9XHJcbn0iLCJcclxuLnNpdGUtaGVhZGVyIHtcclxuICBoZWlnaHQ6IDEwMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTQzNzU7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAyMDtcclxufVxyXG5cclxuXHJcbi5zaXRlLWhlYWRlcl9fY29udGFpbmVyIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcbiAgaGVpZ2h0OiAxMDBweDtcclxufVxyXG5cclxuLnNpdGUtaGVhZGVyX19jb2x1bW4ge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5zaXRlLWJyYW5kaW5nIHtcclxuICAuc2l0ZS10aXRsZSB7XHJcbiAgICBtYXJnaW46IDBweDtcclxuICAgIGEge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDExJSk7XHJcbiAgICBcclxuICAgICAgaW1nIHtcclxuICAgICAgICB3aWR0aDogMjQwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgLnNpdGUtaGVhZGVyIHtcclxuICAgIGhlaWdodDogNTRweDtcclxuICAgIHBhZGRpbmc6IDAgMHB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIC5zaXRlLWhlYWRlcl9fY29udGFpbmVyIHtcclxuICAgIGhlaWdodDogNTRweDtcclxuICB9XHJcbiAgICBcclxuICAuc2l0ZS1icmFuZGluZyB7XHJcbiAgICAuc2l0ZS10aXRsZSB7XHJcbiAgICAgIGEge1xyXG4gICAgICAgaW1nIHtcclxuICAgICAgICAgIHdpZHRoOiAxNjBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59IiwiXHJcbi5oZXJvIHtcclxuICBiYWNrZ3JvdW5kOiAjMWU0Mzc1O1xyXG4gIHBhZGRpbmctdG9wOiA1MHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAxMDtcclxuXHJcbiAgJi5oZXJvLS1pbWFnZSArICoge1xyXG4gICAgcGFkZGluZy10b3A6IDEyMHB4O1xyXG4gIH1cclxufVxyXG4uaGVyb19fY29udGFpbmVyIHtcclxuICBcclxufVxyXG4uaGVyb19fY29sdW1uIHtcclxuICBcclxufVxyXG4uaGVyb19fdGl0bGUge1xyXG4gIHdpZHRoOiA5MDBweDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcblxyXG4gIEBpbmNsdWRlIGgxKDM2cHgpO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjI4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcbi5oZXJvX19jb250ZW50IHtcclxuICB3aWR0aDogNzgwcHg7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG5cclxuICBmb250LXNpemU6IDE5cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMzc7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxufVxyXG4uaGVyb19fYWN0aW9ucyB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAuYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA5cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDlweDtcclxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgfVxyXG59XHJcbi5oZXJvX19pbWFnZSB7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRvcDogNDBweDtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEuNSUpO1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxuICB3aWR0aDogODcwcHg7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi1ib3R0b206IC01MHB4O1xyXG5cclxuICBpbWcge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIGltZyB7XHJcbiAgICAgIHdpZHRoOiAxMTUlO1xyXG4gICAgICBtYXgtd2lkdGg6IDExNSU7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNyUpO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIlxyXG5cclxuLmhpZ2hsaWdodHMge1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjEyKTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG5cclxuICBwYWRkaW5nLXRvcDogNjBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcclxuXHJcbiAgLnNlY3Rpb24taWNvbi10aXRsZSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gIH1cclxufVxyXG5cclxuLmhpZ2hsaWdodHNfX2NvbnRhaW5lciB7XHJcbiAgXHJcbn1cclxuXHJcbi5oaWdobGlnaHRzX19jb2x1bW4ge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIsIDEwMCk7XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikgeyBcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpOyBcclxuXHJcbiAgICAudGV4dC1pbWFnZV9fY29udGFpbmVyIHtcclxuICAgICAgcGFkZGluZzogMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmhpZ2hsaWdodHNfX3RhYnMge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikgeyBcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uaGlnaGxpZ2h0c19fY2Fyb3VzZWwge1xyXG5cclxuICBtYXJnaW4tdG9wOiA2MHB4O1xyXG5cclxuICAudGV4dC1pbWFnZSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG4gIH1cclxufSIsIlxyXG5cclxuLmNvbnRlbnQtc2VjdGlvbiB7XHJcbiAgJi5saWdodC1ncmV5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMyLCAyNDAsIDI1MywgMC41KTtcclxuICB9XHJcbiAgJi5ncmV5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWVmZmY7XHJcbiAgfVxyXG59XHJcblxyXG4uY29udGVudC1zdHlsZSB7XHJcbiAgPiBoMywgPiBoNCwgPiBoNSwgPiBwLCA+IGhyLCA+IHVsLCA+IG9sIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICB9XHJcblxyXG4gID4gaDIge1xyXG4gICAgJiArICoge1xyXG4gICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgfVxyXG5cclxuICAgICYgKyAud3AtYmxvY2staW1hZ2Uge1xyXG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgPiAud3AtYmxvY2staW1hZ2Uge1xyXG4gICAgJiArICoge1xyXG4gICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgPiBoMyB7XHJcbiAgICAmICsgKiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDI1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICA+IGg0IHtcclxuICAgICYgKyAqIHtcclxuICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgfVxyXG4gICAgJiArIGg1IHtcclxuICAgICAgbWFyZ2luLXRvcDogMjVweDtcclxuICAgIH1cclxuICAgICYgKyB1bCwgJiArIG9sIHtcclxuICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gID4gaDUge1xyXG4gICAgJiArICoge1xyXG4gICAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gICAgfVxyXG4gICAgJiArIHAge1xyXG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgPiBwIHsgXHJcbiAgICAmICsgKiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICB9XHJcbiAgICAmICsgaDQge1xyXG4gICAgICBtYXJnaW4tdG9wOiAyNXB4O1xyXG4gICAgfVxyXG4gICAgJiArIHVsLCAmICsgb2wge1xyXG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgPiBociB7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG5cclxuICAgICYgKyAqIHtcclxuICAgICAgbWFyZ2luLXRvcDogMzBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gID4gdWwsID4gb2wge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7XHJcbiAgICBcclxuICAgICYgKyAqIHtcclxuICAgICAgbWFyZ2luLXRvcDogNDBweDtcclxuICAgIH1cclxuICAgICYgKyBoNCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDI1cHg7XHJcbiAgICB9XHJcbiAgICAmICsgcCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICB9XHJcbiAgICAmICsgLndwLWJsb2NrLWltYWdlIHtcclxuICAgICAgbWFyZ2luLXRvcDogMTVweDtcclxuICAgIH1cclxuICAgIGxpIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDdweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gID4gdWwge1xyXG4gICAgdWwge1xyXG4gICAgICBtYXJnaW4tdG9wOiA3cHg7XHJcbiAgICB9XHJcbiAgICAmLCB1bCB7XHJcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgIGxpIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgbGVmdDogLTEycHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICA+IHAsID4gdWwsID4gb2wge1xyXG4gICAgQGluY2x1ZGUgc2Vjb25kYXJ5LXRleHQtY29sb3IoKTtcclxuICB9XHJcbn1cclxuXHJcbi5jb250ZW50LXNlY3Rpb25fX2NvbnRhaW5lciB7XHJcblxyXG59XHJcblxyXG4uY29udGVudC1zZWN0aW9uX19jb2x1bW4ge1xyXG5cclxufSIsIlxyXG4ucmVzb3VyY2VzIHtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4yKTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmXHJcbn1cclxuXHJcbi5yZXNvdXJjZXNfX2NvbnRhaW5lciB7XHJcbiAgXHJcbn1cclxuXHJcbi5yZXNvdXJjZXNfX2NvbHVtbiB7XHJcbiAgXHJcbn1cclxuXHJcbi5yZXNvdXJjZXNfX2xpbmtzIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG5cclxuICAucmVzb3VyY2UtbGluayB7XHJcbiAgICBtYXJnaW46IDAgMjVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICBcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgY29sb3I6ICMwMDYyZDE7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7IFxyXG4gICAgd2lkdGg6IDI4MHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcblxyXG4gICAgLnJlc291cmNlLWxpbmsge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcblxyXG4udGVhbS1tYW5hZ2VtZW50IHtcclxuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZTVlZmZmKzAsZDVlMWY2KzEwMCYwLjQrMCwxKzEwMCAqL1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksMjM5LDI1NSwwKSAwJSwgcmdiYSgyMTMsMjI1LDI0NiwwLjIpIDEwMCUpOyAvKiBGRjMuNi0xNSAqL1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksMjM5LDI1NSwwKSAwJSxyZ2JhKDIxMywyMjUsMjQ2LDAuMikgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyMjksMjM5LDI1NSwwKSAwJSxyZ2JhKDIxMywyMjUsMjQ2LDAuMikgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xyXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjNjZlNWVmZmYnLCBlbmRDb2xvcnN0cj0nI2Q1ZTFmNicsR3JhZGllbnRUeXBlPTAgKTsgLyogSUU2LTkgKi9cclxuXHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMTIpO1xyXG59XHJcblxyXG4udGVhbS1tYW5hZ2VtZW50X19jb250YWluZXIge1xyXG5cclxufVxyXG5cclxuLnRlYW0tbWFuYWdlbWVudF9fY29sdW1uIHtcclxuXHJcbn1cclxuXHJcbi50ZWFtLW1hbmFnZW1lbnRfX3RpdGxlIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzVweDtcclxufVxyXG5cclxuLnRlYW0tbWFuYWdlbWVudF9faXRlbXMge1xyXG4gIHBhZGRpbmctdG9wOiAxNXB4O1xyXG5cclxuICAudGVhbS1pdGVtIHtcclxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcbi51c2VyLXN0b3JpZXMge1xyXG4gIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyNlNWVmZmYrMCxkNWUxZjYrMTAwJjArMCwwLjIrMTAwICovXHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDIyOSwyMzksMjU1LDApIDAlLCByZ2JhKDIxMywyMjUsMjQ2LDAuMikgMTAwJSk7IC8qIEZGMy42LTE1ICovXHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDIyOSwyMzksMjU1LDApIDAlLHJnYmEoMjEzLDIyNSwyNDYsMC4yKSAxMDAlKTsgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDIyOSwyMzksMjU1LDApIDAlLHJnYmEoMjEzLDIyNSwyNDYsMC4yKSAxMDAlKTsgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXHJcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyMwMGU1ZWZmZicsIGVuZENvbG9yc3RyPScjMzNkNWUxZjYnLEdyYWRpZW50VHlwZT0wICk7IC8qIElFNi05ICovXHJcblxyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjIpO1xyXG59XHJcblxyXG4udXNlci1zdG9yaWVzX19jb250YWluZXIge1xyXG4gIFxyXG59XHJcblxyXG4udXNlci1zdG9yaWVzX19jb2x1bW4ge1xyXG4gIFxyXG59XHJcblxyXG4udXNlci1zdG9yaWVzX19zdG9yaWVzIHtcclxuICBmb250LXNpemU6IDBweDtcclxuXHJcbiAgLnVzZXItc3Rvcnkge1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbi10b3A6IDU1cHg7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcclxuICAgICAgd2lkdGg6IDUwJTsgXHJcblxyXG4gICAgICAmOm50aC1jaGlsZCgxKSwgJjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpudGgtY2hpbGQoMm4pIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDU1cHg7XHJcbiAgICAgIH1cclxuICAgICAgJjpudGgtY2hpbGQoMm4rMSkge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDU1cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xyXG5cclxuICAgICAgJjpudGgtY2hpbGQoMm4pIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgICAgJjpudGgtY2hpbGQoMm4rMSkge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICAgIFxyXG4gICAgICAmOm50aC1jaGlsZCgxKSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbn0iLCJcclxuLmNhbGwtdG8tYWN0aW9uIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlZmZmO1xyXG5cclxuICAuc2VjdGlvbi10aXRsZV9fdGl0bGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gIH1cclxuICAuc2VjdGlvbi10aXRsZSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uY2FsbC10by1hY3Rpb25fX2NvbnRhaW5lciB7XHJcbiAgXHJcbn1cclxuXHJcbi5jYWxsLXRvLWFjdGlvbl9fY29sdW1uIHtcclxuICBcclxufVxyXG5cclxuLmNhbGwtdG8tYWN0aW9uX190ZXh0IHtcclxuXHJcbiAgZm9udC1zaXplOiAxOXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjQyO1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uY2FsbC10by1hY3Rpb25fX2FjdGlvbnMge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtYXJnaW4tdG9wOiAyMHB4O1xyXG5cclxuICAuYnV0dG9uIHtcclxuICAgIHBhZGRpbmctbGVmdDogMjVweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgfVxyXG59IiwiXHJcblxyXG4ubG9naW4tc2VjdGlvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlNDM3NTtcclxuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAxNXB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAyO1xyXG4gIFxyXG4gICYgKyAqIHtcclxuICAgIHBhZGRpbmctdG9wOiA5MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmxvZ2luLXNlY3Rpb25fX2NvbnRhaW5lciB7XHJcbiAgXHJcbn1cclxuXHJcbi5sb2dpbi1zZWN0aW9uX19jb2x1bW4ge1xyXG4gIFxyXG59XHJcblxyXG4ubG9naW4tc2VjdGlvbl9fY2FyZCB7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpLCAwIDNweCA3cHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMiksIDAgMCAwIDFweCByZ2JhKDI5LCAzMSwgMzMsIDAuMTUpLCAwIDNweCA3cHggMCByZ2JhKDI5LCAzMSwgMzMsIDAuMik7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICBwYWRkaW5nOiAyOHB4IDMwcHggMjFweCAzMHB4O1xyXG4gIFxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3R0b206IC00NXB4O1xyXG59XHJcblxyXG4ubG9naW4tc2VjdGlvbl9fdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMjRweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTM7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogcmdiYSgxNywgMTksIDIxLCAwLjg3KTtcclxuICBtYXJnaW4tYm90dG9tOiAxOHB4O1xyXG59XHJcblxyXG4ubG9naW4tc2VjdGlvbl9fZm9ybSB7XHJcbiAuaW5wdXQtZmllbGQge1xyXG4gICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gfSBcclxufVxyXG5cclxuLmxvZ2luLXNlY3Rpb25fX2FjdGlvbnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxuXHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDM1cHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNXB4O1xyXG4gIH0gXHJcbn1cclxuXHJcbi5sb2dpbi1zZWN0aW9uX19zdWJtaXQge1xyXG4gIFxyXG59XHJcblxyXG4ubG9naW4tc2VjdGlvbl9fZm9yZ290IHtcclxuICBhIHtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBjb2xvcjogIzAwNjJkMTtcclxuICB9XHJcbn1cclxuXHJcbi5sb2dpbi1zZWN0aW9uX19uby1hY2NvdW50IHtcclxuICBcclxufVxyXG5cclxuLmxvZ2luLXNlY3Rpb25fX3ByaW9yLWFjY291bnQge1xyXG4gIG1hcmdpbi10b3A6IDVweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcclxufVxyXG5cclxuXHJcbi8vIFByZXZpZXdcclxuXHJcbi5mLWl0ZW0tcHJldmlldyB7XHJcbiAgPiAubG9naW4tc2VjdGlvbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xyXG4gIH1cclxufSIsIlxyXG5cclxuLmxvZ2luLWNvbnRlbnQtc2VjdGlvbiB7XHJcbiAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHA6Ly9jb2xvcnppbGxhLmNvbS9ncmFkaWVudC1lZGl0b3IvI2U1ZWZmZiswLGQ1ZTFmNisxMDAmMC40KzAsMSsxMDAgKi9cclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjI5LDIzOSwyNTUsMC40KSAwJSwgcmdiYSgyMTMsMjI1LDI0NiwxKSAxMDAlKTsgLyogRkYzLjYtMTUgKi9cclxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjI5LDIzOSwyNTUsMC40KSAwJSxyZ2JhKDIxMywyMjUsMjQ2LDEpIDEwMCUpOyAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjI5LDIzOSwyNTUsMC40KSAwJSxyZ2JhKDIxMywyMjUsMjQ2LDEpIDEwMCUpOyAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzY2ZTVlZmZmJywgZW5kQ29sb3JzdHI9JyNkNWUxZjYnLEdyYWRpZW50VHlwZT0wICk7IC8qIElFNi05ICovXHJcblxyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIDAgcmdiYSgxNywgMTksIDIxLCAwLjEyKTtcclxuXHJcbiAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xyXG59XHJcblxyXG4ubG9naW4tY29udGVudC1zZWN0aW9uX19jb250YWluZXIge1xyXG5cclxufVxyXG5cclxuLmxvZ2luLWNvbnRlbnQtc2VjdGlvbl9fY29sdW1uIHtcclxuXHJcbn1cclxuXHJcbi5sb2dpbi1jb250ZW50LXNlY3Rpb25fX3RpbWVzdGFtcHMge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQjlDMENBO1xyXG4gIG1hcmdpbi1ib3R0b206IDIycHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDIycHg7XHJcblxyXG4gIHRhYmxlIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgbWFyZ2luOiAwcHg7XHJcblxyXG4gICAgdGJvZHkge1xyXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG5cclxuICAgICAgdHIge1xyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcblxyXG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubG9naW4tY29udGVudC1zZWN0aW9uX19jb250ZW50IHtcclxuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG59XHJcblxyXG4ubG9naW4tY29udGVudC1zZWN0aW9uX19jb3B5cmlnaHQge1xyXG4gICYsIHAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNjI7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC42KTtcclxuICB9XHJcbn0iLCJcclxuLnNpdGUtZm9vdGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzgzZjQ5O1xyXG5cclxuICBwYWRkaW5nLXRvcDogNDVweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcclxuXHJcbiAgLmZvb3Rlci1tZW51IHtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMTZweDtcclxuICB9XHJcbn1cclxuXHJcbi5zaXRlLWZvb3Rlcl9fY29udGFpbmVyIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XHJcbn1cclxuXHJcbi5zaXRlLWZvb3Rlcl9fY29sdW1uIHtcclxuICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcclxufVxyXG5cclxuLnNpdGUtZm9vdGVyX19icmFuZGluZyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHJcbiAgYSB7XHJcbiAgICBpbWcge1xyXG4gICAgICB3aWR0aDogMjUwcHg7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zaXRlLWZvb3Rlcl9fY29weXJpZ2h0IHtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xyXG4gIG1hcmdpbi10b3A6IDM1cHg7XHJcbiAgcGFkZGluZy10b3A6IDIycHg7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikgeyBcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgfVxyXG59XHJcblxyXG4uc2l0ZS1mb290ZXJfX2NvcHlyaWdodC10ZXh0IHtcclxuICBvcGFjaXR5OiAwLjY7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuXHJcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xyXG59XHJcblxyXG4uc2l0ZS1mb290ZXJfX2NvcHlyaWdodC1tZW51IHtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHsgXHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG5cclxuICAgIC5tZW51IHtcclxuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xyXG4gICAgfVxyXG4gIH1cclxuICAubWVudS1pdGVtIHtcclxuICAgIGEge1xyXG4gICAgICBwYWRkaW5nOiAwcHggMTRweDtcclxuICAgICAgXHJcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgIFxyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikgeyBcclxuICAgICAgYSB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcblxyXG4uc3RlcC1jb2x1bW5zIHtcclxuXHJcbn1cclxuXHJcbi5zdGVwLWNvbHVtbnNfX2NvbnRhaW5lciB7XHJcblxyXG59XHJcblxyXG4uc3RlcC1jb2x1bW5zX19jb2x1bW4ge1xyXG5cclxufVxyXG5cclxuLnN0ZXAtY29sdW1uc19fY29sdW1ucyB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG4gIG1hcmdpbjogMCAtOHB4O1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcclxuICAgIG1hcmdpbi10b3A6IC0yMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnN0ZXAtY29sdW1uc19fY29sdW1ucy1jb2x1bW4ge1xyXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMjAlLCAxNik7XHJcbiAgXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig1MCUsIDE2KTtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMDAlLCAwKTtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgfVxyXG59IiwiXHJcblxyXG4uc29mdHdhcmUtdGllcnMge1xyXG4gIFxyXG4gIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyNlNWVmZmYrMCxkNWUxZjYrMTAwJjAuNCswLDErMTAwICovXHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDIyOSwyMzksMjU1LDApIDAlLCByZ2JhKDIxMywyMjUsMjQ2LDAuMikgMTAwJSk7IC8qIEZGMy42LTE1ICovXHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDIyOSwyMzksMjU1LDApIDAlLHJnYmEoMjEzLDIyNSwyNDYsMC4yKSAxMDAlKTsgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDIyOSwyMzksMjU1LDApIDAlLHJnYmEoMjEzLDIyNSwyNDYsMC4yKSAxMDAlKTsgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXHJcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyM2NmU1ZWZmZicsIGVuZENvbG9yc3RyPScjZDVlMWY2JyxHcmFkaWVudFR5cGU9MCApOyAvKiBJRTYtOSAqL1xyXG5cclxuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4xMik7XHJcbn1cclxuXHJcbi5zb2Z0d2FyZS10aWVyc19fY29udGFpbmVyIHtcclxuXHJcbn1cclxuXHJcbi5zb2Z0d2FyZS10aWVyc19fY29sdW1uIHtcclxuXHJcbn1cclxuXHJcbi5zb2Z0d2FyZS10aWVyc19faXRlbXMge1xyXG4gIC5zb2Z0d2FyZS10aWVyIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkRDMkM5O1xyXG4gICAgcGFkZGluZzogNTBweCAwO1xyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwcHg7XHJcbiAgICB9XHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIlxyXG4uY29yZS1oaWdobGlnaHRzIHtcclxuICAvKiBQZXJtYWxpbmsgLSB1c2UgdG8gZWRpdCBhbmQgc2hhcmUgdGhpcyBncmFkaWVudDogaHR0cDovL2NvbG9yemlsbGEuY29tL2dyYWRpZW50LWVkaXRvci8jZTVlZmZmKzAsZDVlMWY2KzEwMCYwLjQrMCwxKzEwMCAqL1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksMjM5LDI1NSwwKSAwJSwgcmdiYSgyMTMsMjI1LDI0NiwwLjIpIDEwMCUpOyAvKiBGRjMuNi0xNSAqL1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMjksMjM5LDI1NSwwKSAwJSxyZ2JhKDIxMywyMjUsMjQ2LDAuMikgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyMjksMjM5LDI1NSwwKSAwJSxyZ2JhKDIxMywyMjUsMjQ2LDAuMikgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xyXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjNjZlNWVmZmYnLCBlbmRDb2xvcnN0cj0nI2Q1ZTFmNicsR3JhZGllbnRUeXBlPTAgKTsgLyogSUU2LTkgKi9cclxuXHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDE3LCAxOSwgMjEsIDAuMTIpO1xyXG5cclxufVxyXG5cclxuLmNvcmUtaGlnaGxpZ2h0c19fY29udGFpbmVyIHtcclxuXHJcbn1cclxuXHJcbi5jb3JlLWhpZ2hsaWdodHNfX2NvbHVtbiB7XHJcblxyXG59XHJcblxyXG4uY29yZS1oaWdobGlnaHRzX19pdGVtcyB7XHJcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG5cclxuICAuY29yZS1oaWdobGlnaHRzLWl0ZW0ge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2LCA0NXB4KTtcclxuICAgIG1hcmdpbi10b3A6IDM2cHg7XHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XHJcblxyXG4gICAgICAmOm50aC1jaGlsZCgxKSwgJjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyLCAwcHgpO1xyXG4gICAgICBcclxuICAgICAgJjpudGgtY2hpbGQoMSkge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIlxyXG5cclxuLnBvc3RzLWxpc3Qge1xyXG4gIC8qIFBlcm1hbGluayAtIHVzZSB0byBlZGl0IGFuZCBzaGFyZSB0aGlzIGdyYWRpZW50OiBodHRwOi8vY29sb3J6aWxsYS5jb20vZ3JhZGllbnQtZWRpdG9yLyNlNWVmZmYrMCxkNWUxZjYrMTAwJjAuNCswLDErMTAwICovXHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDIyOSwyMzksMjU1LDApIDAlLCByZ2JhKDIxMywyMjUsMjQ2LDAuMikgMTAwJSk7IC8qIEZGMy42LTE1ICovXHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDIyOSwyMzksMjU1LDApIDAlLHJnYmEoMjEzLDIyNSwyNDYsMC4yKSAxMDAlKTsgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDIyOSwyMzksMjU1LDApIDAlLHJnYmEoMjEzLDIyNSwyNDYsMC4yKSAxMDAlKTsgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXHJcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyM2NmU1ZWZmZicsIGVuZENvbG9yc3RyPScjZDVlMWY2JyxHcmFkaWVudFR5cGU9MCApOyAvKiBJRTYtOSAqL1xyXG5cclxuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4xMik7XHJcbn1cclxuXHJcbi5wb3N0cy1saXN0X19jb250YWluZXIge1xyXG4gIFxyXG59XHJcblxyXG4ucG9zdHMtbGlzdF9fY29sdW1uIHtcclxuICBcclxufVxyXG5cclxuLnBvc3RzLWxpc3RfX2hlYWRlciB7XHJcbiAgQGV4dGVuZCBoNDtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG59XHJcblxyXG4ucG9zdHMtbGlzdF9fcG9zdHMge1xyXG4gIC5wb3N0LWl0ZW0ge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCRkM0Q0E7XHJcblxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQkZDNENBO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnBvc3RzLWxpc3RfX3BhZ2luYXRpb24ge1xyXG4gIG1hcmdpbi10b3A6IDMwcHg7XHJcbn0iLCJcclxuLmJlbmVmaXRzIHtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAwIHJnYmEoMTcsIDE5LCAyMSwgMC4xMik7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFiMzM1NDtcclxuXHJcbiAgLnNlY3Rpb24tdGl0bGVfX3RpdGxlIHtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICB9XHJcbiAgLmZlYXR1cmUtYmxvY2tfX3RpdGxlIHtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICB9XHJcbiAgLmZlYXR1cmUtYmxvY2tfX2NvbnRlbnQge1xyXG4gICAgJiwgcCB7XHJcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgJiwgJjpob3ZlciB7XHJcbiAgICAgICAgICBjb2xvcjogI2FmZDZmZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4uYmVuZWZpdHNfX2NvbnRhaW5lciB7XHJcblxyXG59XHJcblxyXG4uYmVuZWZpdHNfX2NvbHVtbiB7XHJcblxyXG59XHJcblxyXG4uYmVuZWZpdHNfX2l0ZW1zIHtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICBmb250LXNpemU6IDBweDtcclxuICB9XHJcblxyXG4gIC5mZWF0dXJlLWJsb2NrIHtcclxuICAgIHBhZGRpbmc6IDAgMTVweDtcclxuICAgIC5mZWF0dXJlLWJsb2NrX190aXRsZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTlweDtcclxuICAgICAgXHJcbiAgICAgICY6YmVmb3JleyBjb250ZW50OiBub25lOyB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgIG1hcmdpbi10b3A6IDQwcHg7XHJcbiAgICAgICY6bnRoLWNoaWxkKDEpLCAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgICAgcGFkZGluZzogMCAwcHg7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1hcmdpbi10b3A6IDQwcHg7XHJcbiAgICAgICY6bnRoLWNoaWxkKDEpICB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcblxyXG4uYm9hcmQtaXRlbXMge1xyXG5cclxufVxyXG5cclxuLmJvYXJkLWl0ZW1zX19jb250YWluZXIge1xyXG5cclxufVxyXG5cclxuLmJvYXJkLWl0ZW1zX19jb2x1bW4ge1xyXG5cclxufVxyXG5cclxuLmJvYXJkLWl0ZW1zX19jYXRlZ29yaWVzIHtcclxuXHJcbn1cclxuXHJcbi5ib2FyZC1pdGVtc19fY2F0ZWdvcnkge1xyXG4gIG1hcmdpbi10b3A6IDM1cHg7XHJcblxyXG4gICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmJvYXJkLWl0ZW1zX19jYXRlZ29yeS10aXRsZSB7XHJcbiAgZm9udC1zaXplOiAxN3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogIzUwOTRlMDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIG1hcmdpbi1ib3R0b206IDIycHg7XHJcbn1cclxuXHJcbi5ib2FyZC1pdGVtc19faXRlbXMge1xyXG4gIC5ib2FyZC1pdGVtIHtcclxuICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcblxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcclxuICAgIH1cclxuICB9XHJcbn0iLCJcclxuLy8gV29vQ29tbWVyY2UgXHJcblxyXG4ud29vY29tbWVyY2UtY2hlY2tvdXQge1xyXG4gIC5jb250ZW50LWFyZWEge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygkc2l6ZTogNTkwcHgpO1xyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLWZvcm0tbG9naW4tdG9nZ2xlIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1mb3JtLWNvdXBvbi10b2dnbGUge1xyXG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZWVmZjtcclxuICAgIHBhZGRpbmc6IDExcHggMTJweDtcclxuICAgIG1hcmdpbi10b3A6IDI1cHg7XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2UtcHJpdmFjeS1wb2xpY3ktdGV4dCB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgIGNvbG9yOiByZ2JhKDE3LCAxOSwgMjEsIDAuNCk7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLXRlcm1zLWFuZC1jb25kaXRpb25zLXdyYXBwZXIgLmZvcm0tcm93IHtcclxuICAgIHBhZGRpbmctbGVmdDogMHB4O1xyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLWZvcm0tbG9naW4ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcclxuXHJcbiAgICA+IHA6Zmlyc3QtY2hpbGQge1xyXG4gICAgICB3aWR0aDogNzAlO1xyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1mb3JtLWNvdXBvbiB7XHJcblxyXG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZWVmZjtcclxuICAgIHBhZGRpbmc6IDExcHggMTJweDtcclxuICAgIG1hcmdpbi10b3A6IC03cHg7XHJcblxyXG4gICAgZm9udC1zaXplOiAwcHg7XHJcblxyXG4gICAgYnV0dG9uLCBwIHsgXHJcbiAgICAgIG1hcmdpbjogMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIHAge1xyXG4gICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICB9XHJcbiAgICAuZm9ybS1yb3ctZmlyc3Qge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcclxuICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIEBpbmNsdWRlIG1pbmltYWwtYmxhY2stYnV0dG9uLXN0eWxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gICNjdXN0b21lcl9kZXRhaWxzIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2UtY2hlY2tvdXQge1xyXG4gICAgbWFyZ2luLXRvcDogNDBweDtcclxuICB9XHJcblxyXG4gICNvcmRlcl9yZXZpZXdfaGVhZGluZyB7XHJcbiAgICBAZXh0ZW5kIGg0XHJcbiAgfVxyXG4gICNjYXJkX2luZm9faGVhZGluZyB7XHJcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IHtcclxuICAgIGZpZWxkc2V0IHtcclxuICAgICAgZm9udC1zaXplOiAwcHg7XHJcbiAgICB9XHJcbiAgICAucGxhY2Utb3JkZXIge1xyXG4gICAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcblxyXG4gICAgICBidXR0b24ge1xyXG4gICAgICAgIEBpbmNsdWRlIHByaW1hcnktYnV0dG9uLXN0eWxlO1xyXG4gICAgICAgIEBpbmNsdWRlIGxhcmdlLWJ1dHRvbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndjX3BheW1lbnRfbWV0aG9kcyB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luOiAwcHg7XHJcblxyXG4gICAgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcclxuICAgICAgPiBsYWJlbCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC53Y19wYXltZW50X21ldGhvZCB7XHJcbiAgICAgID4gbGFiZWwge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblxyXG4gICAgICAgIGltZywgYSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICArIC5wYXltZW50X21ldGhvZF9wYXlwYWwge1xyXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICNzdHJpcGUtcGF5bWVudC1kYXRhIHtcclxuICAgICAgICA+IHAge1xyXG4gICAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE5LCAyMSwgMC44Nyk7XHJcblxyXG4gICAgICAgICAgJiwgKiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAud2MtY3JlZGl0LWNhcmQtZm9ybSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLmJvdHRvbS13b29jb21tZXJjZS1mb3JtLWNvdXBvbl9fY2VsbCB7XHJcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcclxufVxyXG5cclxuLmJvdHRvbS13b29jb21tZXJjZS1mb3JtLWNvdXBvbiB7XHJcblxyXG4gIG1hcmdpbi1sZWZ0OiAycHg7XHJcblxyXG4gIC5ib3R0b20td29vY29tbWVyY2UtZm9ybS1jb3Vwb25fX2Zvcm0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgQGluY2x1ZGUgbWluaW1hbC1ibGFjay1idXR0b24tc3R5bGU7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tcm93LWZpcnN0IHtcclxuICAgICAgcGFkZGluZzogMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4ud29vY29tbWVyY2UtTm90aWNlR3JvdXAge1xyXG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgcGFkZGluZzogMjBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmMWYxO1xyXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcclxufVxyXG5cclxudWwud29vY29tbWVyY2UtZXJyb3Ige1xyXG4gIG1hcmdpbi1ib3R0b206IDBweDtcclxuICBjb2xvcjogI2RiMzczNztcclxufSIsIlxyXG5cclxuICAuZm9ybS1yb3cge1xyXG4gICAgQGV4dGVuZCAuaW5wdXQtZmllbGQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuXHJcbiAgICAud29vY29tbWVyY2UtaW5wdXQtd3JhcHBlciB7XHJcbiAgICAgIEBleHRlbmQgLmlucHV0LWZpZWxkLXdyYXBwZXI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5mb3JtLXJvdy1sYXN0LCAuZm9ybS1yb3ctZmlyc3QsIC5mb3JtLXJvdy1oYWxmIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbiAgLmZvcm0tcm93LWxvbmcge1xyXG4gICAgd2lkdGg6IDcwJTtcclxuICB9XHJcbiAgLmZvcm0tcm93LXNob3J0IHtcclxuICAgIHdpZHRoOiAzMCU7XHJcbiAgfVxyXG4gIC5mb3JtLXJvdy1xdWFydGVyIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XHJcbiAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcclxuICAgICAgd2lkdGg6IDUwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFxyXG4gIC53b29jb21tZXJjZS1maWVsZHMtc2VjdGlvbiB7XHJcbiAgICBoNCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XHJcbiAgICB9XHJcbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgICAgbWFyZ2luLXRvcDogNTBweDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcblxyXG4gIC53b29jb21tZXJjZS1maWVsZHMtd3JhcHBlciB7XHJcbiAgICBtYXJnaW4tbGVmdDogLTRweDtcclxuICAgIG1hcmdpbi1yaWdodDogLThweDtcclxuXHJcbiAgICAuZm9ybS1yb3cge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLTRweDtcclxuICAgIH1cclxuICB9IiwiXHJcbi53b29jb21tZXJjZS1hY2NvdW50IHtcclxuICBcclxuICAud29vY29tbWVyY2Uge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xyXG4gIH1cclxuICAud29vY29tbWVyY2UtTXlBY2NvdW50LXNpZGViYXIge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigzKTtcclxuICB9XHJcbiAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oOSk7XHJcbiAgfVxyXG5cclxuICBcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcclxuICAgIC53b29jb21tZXJjZS1NeUFjY291bnQtc2lkZWJhciB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIsMCk7XHJcbiAgICB9XHJcbiAgICAud29vY29tbWVyY2UtTXlBY2NvdW50LWNvbnRlbnQge1xyXG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyLDApO1xyXG4gICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAqW25hbWU9c2F2ZV9hZGRyZXNzXSB7XHJcbiAgICBAaW5jbHVkZSBwcmltYXJ5LWJ1dHRvbi1zdHlsZTtcclxuICAgIEBpbmNsdWRlIGxhcmdlLWJ1dHRvbjtcclxuXHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxuXHJcbiAgLmVudHJ5LXRpdGxlIHtcclxuICAgIEBpbmNsdWRlIGgxKCk7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuICBcclxuICAuZW50cnktaGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIFxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgLnNpdGUtc2lkZWJhciB7XHJcbiAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgIH1cclxuICAgIC5tb2JpbGUtZHJvcGRvd24ge1xyXG4gICAgICBtYXJnaW46IDAgLTE2cHg7XHJcbiAgICB9XHJcbiAgICAuc2l0ZS1jb250ZW50e1xyXG4gICAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG4gICAgfVxyXG4gICAgLnNpdGUtbWFpbiB7XHJcbiAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEVkaXQgYWNjb3VudFxyXG4ud29vY29tbWVyY2UtRWRpdEFjY291bnRGb3JtIHtcclxuICBcclxuICBcclxuICBidXR0b25bdHlwZT1zdWJtaXRdLndvb2NvbW1lcmNlLUJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG5cclxuICAgIEBpbmNsdWRlIHByaW1hcnktYnV0dG9uLXN0eWxlO1xyXG4gICAgQGluY2x1ZGUgbGFyZ2UtYnV0dG9uO1xyXG4gIH1cclxufSIsIlxyXG5ib2R5Om5vdCgubG9nZ2VkLWluKSB7XHJcbiAgJi53b29jb21tZXJjZS1hY2NvdW50IHtcclxuICAgIC5jb250ZW50LWFyZWEge1xyXG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCRzaXplOiA1OTBweCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbiB7XHJcbiAgd2lkdGg6IDM1MHB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAubG9zdF9wYXNzd29yZCB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICB9XHJcbn0iXX0= */
