/*! uswds @version */
html {
  box-sizing: border-box; }

*, *::after, *::before {
  box-sizing: inherit; }

/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `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
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve 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],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  box-sizing: content-box;
  /* 2 */ }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

/* stylelint-disable at-rule-empty-line-before */
@font-face {
  font-family: "Source Sans Pro";
  font-style: normal;
  font-weight: 300;
  src: url("../vendor/uswds/fonts/sourcesanspro-light-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/sourcesanspro-light-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/sourcesanspro-light-webfont.woff") format("woff"), url("../vendor/uswds/fonts/sourcesanspro-light-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Source Sans Pro";
  font-style: normal;
  font-weight: 400;
  src: url("../vendor/uswds/fonts/sourcesanspro-regular-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/sourcesanspro-regular-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/sourcesanspro-regular-webfont.woff") format("woff"), url("../vendor/uswds/fonts/sourcesanspro-regular-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Source Sans Pro";
  font-style: italic;
  font-weight: 400;
  src: url("../vendor/uswds/fonts/sourcesanspro-italic-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/sourcesanspro-italic-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/sourcesanspro-italic-webfont.woff") format("woff"), url("../vendor/uswds/fonts/sourcesanspro-italic-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Source Sans Pro";
  font-style: normal;
  font-weight: 700;
  src: url("../vendor/uswds/fonts/sourcesanspro-bold-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/sourcesanspro-bold-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/sourcesanspro-bold-webfont.woff") format("woff"), url("../vendor/uswds/fonts/sourcesanspro-bold-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Merriweather";
  font-style: normal;
  font-weight: 300;
  src: url("../vendor/uswds/fonts/merriweather-light-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/merriweather-light-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/merriweather-light-webfont.woff") format("woff"), url("../vendor/uswds/fonts/merriweather-light-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Merriweather";
  font-style: normal;
  font-weight: 400;
  src: url("../vendor/uswds/fonts/merriweather-regular-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/merriweather-regular-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/merriweather-regular-webfont.woff") format("woff"), url("../vendor/uswds/fonts/merriweather-regular-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Merriweather";
  font-style: italic;
  font-weight: 400;
  src: url("../vendor/uswds/fonts/merriweather-italic-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/merriweather-italic-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/merriweather-italic-webfont.woff") format("woff"), url("../vendor/uswds/fonts/merriweather-italic-webfont.ttf") format("truetype"); }

@font-face {
  font-family: "Merriweather";
  font-style: normal;
  font-weight: 700;
  src: url("../vendor/uswds/fonts/merriweather-bold-webfont.eot?#iefix") format("embedded-opentype"), url("../vendor/uswds/fonts/merriweather-bold-webfont.woff2") format("woff2"), url("../vendor/uswds/fonts/merriweather-bold-webfont.woff") format("woff"), url("../vendor/uswds/fonts/merriweather-bold-webfont.ttf") format("truetype"); }

/* stylelint-enable */
html {
  box-sizing: border-box; }

*,
*::before,
*::after {
  box-sizing: inherit; }

body {
  background-color: #ffffff;
  overflow-x: hidden; }

.lt-ie9 * {
  filter: none !important;
  /* stylelint-disable-line declaration-no-important */ }

[hidden] {
  display: none !important;
  /* stylelint-disable-line declaration-no-important */ }

.usa-grid,
.usa-grid-full {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  max-width: 1040px; }
  .usa-grid::after,
  .usa-grid-full::after {
    clear: both;
    content: "";
    display: block; }

.usa-grid {
  padding-right: 1.5rem;
  padding-left: 1.5rem; }
  @media screen and (min-width: 600px) {
    .usa-grid {
      padding-right: 3rem;
      padding-left: 3rem; } }

.usa-grid-full {
  padding: 0; }

@media screen and (min-width: 600px) {
  .usa-width-one-whole {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 100%; }
    .usa-width-one-whole:last-child {
      margin-right: 0; }
  .usa-width-one-half {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 47.58542%; }
    .usa-width-one-half:last-child {
      margin-right: 0; }
  .usa-width-one-third {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 30.11389%; }
    .usa-width-one-third:last-child {
      margin-right: 0; }
  .usa-width-two-thirds {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 65.05695%; }
    .usa-width-two-thirds:last-child {
      margin-right: 0; }
  .usa-width-one-fourth {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 47.58542%; }
    .usa-width-one-fourth:last-child {
      margin-right: 0; }
    .usa-width-one-fourth:nth-child(2n) {
      margin-right: 0; }
  .usa-width-three-fourths {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 100%; }
    .usa-width-three-fourths:last-child {
      margin-right: 0; }
  .usa-width-one-sixth {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 30.11389%; }
    .usa-width-one-sixth:last-child {
      margin-right: 0; }
    .usa-width-one-sixth:nth-child(3n) {
      margin-right: 0; }
  .usa-width-five-sixths {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 65.05695%; }
    .usa-width-five-sixths:last-child {
      margin-right: 0; }
  .usa-width-one-twelfth {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 30.11389%; }
    .usa-width-one-twelfth:last-child {
      margin-right: 0; }
    .usa-width-one-twelfth:nth-child(3n) {
      margin-right: 0; }
  .usa-width-five-twelfths {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 30.11389%; }
    .usa-width-five-twelfths:last-child {
      margin-right: 0; }
  .usa-width-seven-twelfths {
    float: left;
    display: block;
    margin-right: 4.82916%;
    width: 65.05695%; }
    .usa-width-seven-twelfths:last-child {
      margin-right: 0; } }

@media screen and (min-width: 1201px) {
  .usa-width-one-whole {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 100%; }
    .usa-width-one-whole:last-child {
      margin-right: 0; }
  .usa-width-one-half {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 48.82117%; }
    .usa-width-one-half:last-child {
      margin-right: 0; }
  .usa-width-one-third {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 31.76157%; }
    .usa-width-one-third:last-child {
      margin-right: 0; }
  .usa-width-two-thirds {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 65.88078%; }
    .usa-width-two-thirds:last-child {
      margin-right: 0; }
  .usa-width-one-fourth {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 23.23176%; }
    .usa-width-one-fourth:last-child {
      margin-right: 0; }
    .usa-width-one-fourth:nth-child(2n) {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%; }
      .usa-width-one-fourth:nth-child(2n):last-child {
        margin-right: 0; }
    .usa-width-one-fourth:nth-child(4n) {
      margin-right: 0; }
  .usa-width-three-fourths {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 74.41059%; }
    .usa-width-three-fourths:last-child {
      margin-right: 0; }
  .usa-width-one-sixth {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 14.70196%; }
    .usa-width-one-sixth:last-child {
      margin-right: 0; }
    .usa-width-one-sixth:nth-child(3n) {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 14.70196%; }
      .usa-width-one-sixth:nth-child(3n):last-child {
        margin-right: 0; }
    .usa-width-one-sixth:nth-child(6n) {
      margin-right: 0; }
  .usa-width-five-sixths {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 82.94039%; }
    .usa-width-five-sixths:last-child {
      margin-right: 0; }
  .usa-width-one-twelfth {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 6.17215%; }
    .usa-width-one-twelfth:last-child {
      margin-right: 0; }
    .usa-width-one-twelfth:nth-child(3n) {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 6.17215%; }
      .usa-width-one-twelfth:nth-child(3n):last-child {
        margin-right: 0; }
    .usa-width-one-twelfth:nth-child(12n) {
      margin-right: 0; }
  .usa-width-five-twelfths {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 40.29137%; }
    .usa-width-five-twelfths:last-child {
      margin-right: 0; }
  .usa-width-seven-twelfths {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 57.35098%; }
    .usa-width-seven-twelfths:last-child {
      margin-right: 0; } }

.usa-end-row {
  margin-right: 0; }

.usa-offset-one-twelfth {
  margin-left: 8.5298%; }

.usa-offset-one-sixth {
  margin-left: 17.05961%; }

.usa-offset-one-fourth {
  margin-left: 25.58941%; }

.usa-offset-one-third {
  margin-left: 34.11922%; }

.usa-offset-five-twelfths {
  margin-left: 42.64902%; }

.usa-offset-one-half {
  margin-left: 51.17883%; }

.usa-offset-seven-twelfths {
  margin-left: 59.70863%; }

.usa-offset-two-thirds {
  margin-left: 68.23843%; }

.usa-offset-three-fourths {
  margin-left: 76.76824%; }

.usa-offset-five-sixths {
  margin-left: 85.29804%; }

.usa-offset-eleven-twelfths {
  margin-left: 93.82785%; }

.usa-sr-only {
  position: absolute;
  left: -999em; }

/* stylelint-disable selector-no-qualifying-type */
.usa-button,
.usa-button-primary,
.usa-button:visited,
.usa-button-primary:visited,
button,
[type=button],
[type=submit],
[type=reset],
[type=image] {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  margin-top: 0.5em;
  margin-right: 0.5em;
  margin-bottom: 0.5em;
  appearance: none;
  background-color: #0071bc;
  border: 0;
  border-radius: 3px;
  color: #ffffff;
  cursor: pointer;
  display: inline-block;
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1;
  outline: none;
  padding: 1rem 2rem;
  text-align: center;
  text-decoration: none;
  width: 100%; }
  @media screen and (min-width: 481px) {
    .usa-button,
    .usa-button-primary,
    .usa-button:visited,
    .usa-button-primary:visited,
    button,
    [type=button],
    [type=submit],
    [type=reset],
    [type=image] {
      width: auto; } }
  .usa-button:hover, .usa-button.usa-button-hover,
  .usa-button-primary:hover,
  .usa-button-primary.usa-button-hover,
  .usa-button:visited:hover,
  .usa-button:visited.usa-button-hover,
  .usa-button-primary:visited:hover,
  .usa-button-primary:visited.usa-button-hover,
  button:hover,
  button.usa-button-hover,
  [type=button]:hover,
  [type=button].usa-button-hover,
  [type=submit]:hover,
  [type=submit].usa-button-hover,
  [type=reset]:hover,
  [type=reset].usa-button-hover,
  [type=image]:hover,
  [type=image].usa-button-hover {
    background-color: #205493;
    border-bottom: 0;
    color: #ffffff;
    text-decoration: none; }
  .usa-button:focus, .usa-button.usa-button-focus,
  .usa-button-primary:focus,
  .usa-button-primary.usa-button-focus,
  .usa-button:visited:focus,
  .usa-button:visited.usa-button-focus,
  .usa-button-primary:visited:focus,
  .usa-button-primary:visited.usa-button-focus,
  button:focus,
  button.usa-button-focus,
  [type=button]:focus,
  [type=button].usa-button-focus,
  [type=submit]:focus,
  [type=submit].usa-button-focus,
  [type=reset]:focus,
  [type=reset].usa-button-focus,
  [type=image]:focus,
  [type=image].usa-button-focus {
    box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf; }
  .usa-button:active, .usa-button.usa-button-active,
  .usa-button-primary:active,
  .usa-button-primary.usa-button-active,
  .usa-button:visited:active,
  .usa-button:visited.usa-button-active,
  .usa-button-primary:visited:active,
  .usa-button-primary:visited.usa-button-active,
  button:active,
  button.usa-button-active,
  [type=button]:active,
  [type=button].usa-button-active,
  [type=submit]:active,
  [type=submit].usa-button-active,
  [type=reset]:active,
  [type=reset].usa-button-active,
  [type=image]:active,
  [type=image].usa-button-active {
    background-color: #112e51; }
  .usa-button.usa-button-primary-alt,
  .usa-button-primary.usa-button-primary-alt,
  .usa-button:visited.usa-button-primary-alt,
  .usa-button-primary:visited.usa-button-primary-alt,
  button.usa-button-primary-alt,
  [type=button].usa-button-primary-alt,
  [type=submit].usa-button-primary-alt,
  [type=reset].usa-button-primary-alt,
  [type=image].usa-button-primary-alt {
    background-color: #02bfe7;
    color: #212121; }
    .usa-button.usa-button-primary-alt:hover, .usa-button.usa-button-primary-alt.usa-button-hover,
    .usa-button-primary.usa-button-primary-alt:hover,
    .usa-button-primary.usa-button-primary-alt.usa-button-hover,
    .usa-button:visited.usa-button-primary-alt:hover,
    .usa-button:visited.usa-button-primary-alt.usa-button-hover,
    .usa-button-primary:visited.usa-button-primary-alt:hover,
    .usa-button-primary:visited.usa-button-primary-alt.usa-button-hover,
    button.usa-button-primary-alt:hover,
    button.usa-button-primary-alt.usa-button-hover,
    [type=button].usa-button-primary-alt:hover,
    [type=button].usa-button-primary-alt.usa-button-hover,
    [type=submit].usa-button-primary-alt:hover,
    [type=submit].usa-button-primary-alt.usa-button-hover,
    [type=reset].usa-button-primary-alt:hover,
    [type=reset].usa-button-primary-alt.usa-button-hover,
    [type=image].usa-button-primary-alt:hover,
    [type=image].usa-button-primary-alt.usa-button-hover {
      background-color: #00a6d2; }
    .usa-button.usa-button-primary-alt:active, .usa-button.usa-button-primary-alt.usa-button-active,
    .usa-button-primary.usa-button-primary-alt:active,
    .usa-button-primary.usa-button-primary-alt.usa-button-active,
    .usa-button:visited.usa-button-primary-alt:active,
    .usa-button:visited.usa-button-primary-alt.usa-button-active,
    .usa-button-primary:visited.usa-button-primary-alt:active,
    .usa-button-primary:visited.usa-button-primary-alt.usa-button-active,
    button.usa-button-primary-alt:active,
    button.usa-button-primary-alt.usa-button-active,
    [type=button].usa-button-primary-alt:active,
    [type=button].usa-button-primary-alt.usa-button-active,
    [type=submit].usa-button-primary-alt:active,
    [type=submit].usa-button-primary-alt.usa-button-active,
    [type=reset].usa-button-primary-alt:active,
    [type=reset].usa-button-primary-alt.usa-button-active,
    [type=image].usa-button-primary-alt:active,
    [type=image].usa-button-primary-alt.usa-button-active {
      background-color: #046b99;
      color: #ffffff; }
  .usa-button.usa-button-secondary,
  .usa-button-primary.usa-button-secondary,
  .usa-button:visited.usa-button-secondary,
  .usa-button-primary:visited.usa-button-secondary,
  button.usa-button-secondary,
  [type=button].usa-button-secondary,
  [type=submit].usa-button-secondary,
  [type=reset].usa-button-secondary,
  [type=image].usa-button-secondary {
    background-color: #e31c3d; }
    .usa-button.usa-button-secondary:hover, .usa-button.usa-button-secondary.usa-button-hover,
    .usa-button-primary.usa-button-secondary:hover,
    .usa-button-primary.usa-button-secondary.usa-button-hover,
    .usa-button:visited.usa-button-secondary:hover,
    .usa-button:visited.usa-button-secondary.usa-button-hover,
    .usa-button-primary:visited.usa-button-secondary:hover,
    .usa-button-primary:visited.usa-button-secondary.usa-button-hover,
    button.usa-button-secondary:hover,
    button.usa-button-secondary.usa-button-hover,
    [type=button].usa-button-secondary:hover,
    [type=button].usa-button-secondary.usa-button-hover,
    [type=submit].usa-button-secondary:hover,
    [type=submit].usa-button-secondary.usa-button-hover,
    [type=reset].usa-button-secondary:hover,
    [type=reset].usa-button-secondary.usa-button-hover,
    [type=image].usa-button-secondary:hover,
    [type=image].usa-button-secondary.usa-button-hover {
      background-color: #cd2026; }
    .usa-button.usa-button-secondary:active, .usa-button.usa-button-secondary.usa-button-active,
    .usa-button-primary.usa-button-secondary:active,
    .usa-button-primary.usa-button-secondary.usa-button-active,
    .usa-button:visited.usa-button-secondary:active,
    .usa-button:visited.usa-button-secondary.usa-button-active,
    .usa-button-primary:visited.usa-button-secondary:active,
    .usa-button-primary:visited.usa-button-secondary.usa-button-active,
    button.usa-button-secondary:active,
    button.usa-button-secondary.usa-button-active,
    [type=button].usa-button-secondary:active,
    [type=button].usa-button-secondary.usa-button-active,
    [type=submit].usa-button-secondary:active,
    [type=submit].usa-button-secondary.usa-button-active,
    [type=reset].usa-button-secondary:active,
    [type=reset].usa-button-secondary.usa-button-active,
    [type=image].usa-button-secondary:active,
    [type=image].usa-button-secondary.usa-button-active {
      background-color: #981b1e; }
  .usa-button.usa-button-gray,
  .usa-button-primary.usa-button-gray,
  .usa-button:visited.usa-button-gray,
  .usa-button-primary:visited.usa-button-gray,
  button.usa-button-gray,
  [type=button].usa-button-gray,
  [type=submit].usa-button-gray,
  [type=reset].usa-button-gray,
  [type=image].usa-button-gray {
    background-color: #5b616b; }
    .usa-button.usa-button-gray:hover, .usa-button.usa-button-gray.usa-button-hover,
    .usa-button-primary.usa-button-gray:hover,
    .usa-button-primary.usa-button-gray.usa-button-hover,
    .usa-button:visited.usa-button-gray:hover,
    .usa-button:visited.usa-button-gray.usa-button-hover,
    .usa-button-primary:visited.usa-button-gray:hover,
    .usa-button-primary:visited.usa-button-gray.usa-button-hover,
    button.usa-button-gray:hover,
    button.usa-button-gray.usa-button-hover,
    [type=button].usa-button-gray:hover,
    [type=button].usa-button-gray.usa-button-hover,
    [type=submit].usa-button-gray:hover,
    [type=submit].usa-button-gray.usa-button-hover,
    [type=reset].usa-button-gray:hover,
    [type=reset].usa-button-gray.usa-button-hover,
    [type=image].usa-button-gray:hover,
    [type=image].usa-button-gray.usa-button-hover {
      background-color: #323a45; }
    .usa-button.usa-button-gray:active, .usa-button.usa-button-gray.usa-button-active,
    .usa-button-primary.usa-button-gray:active,
    .usa-button-primary.usa-button-gray.usa-button-active,
    .usa-button:visited.usa-button-gray:active,
    .usa-button:visited.usa-button-gray.usa-button-active,
    .usa-button-primary:visited.usa-button-gray:active,
    .usa-button-primary:visited.usa-button-gray.usa-button-active,
    button.usa-button-gray:active,
    button.usa-button-gray.usa-button-active,
    [type=button].usa-button-gray:active,
    [type=button].usa-button-gray.usa-button-active,
    [type=submit].usa-button-gray:active,
    [type=submit].usa-button-gray.usa-button-active,
    [type=reset].usa-button-gray:active,
    [type=reset].usa-button-gray.usa-button-active,
    [type=image].usa-button-gray:active,
    [type=image].usa-button-gray.usa-button-active {
      background-color: #212121; }
  .usa-button.usa-button-outline,
  .usa-button-primary.usa-button-outline,
  .usa-button:visited.usa-button-outline,
  .usa-button-primary:visited.usa-button-outline,
  button.usa-button-outline,
  [type=button].usa-button-outline,
  [type=submit].usa-button-outline,
  [type=reset].usa-button-outline,
  [type=image].usa-button-outline {
    background-color: #ffffff;
    box-shadow: inset 0 0 0 2px #0071bc;
    color: #0071bc; }
    .usa-button.usa-button-outline:hover, .usa-button.usa-button-outline.usa-button-hover,
    .usa-button-primary.usa-button-outline:hover,
    .usa-button-primary.usa-button-outline.usa-button-hover,
    .usa-button:visited.usa-button-outline:hover,
    .usa-button:visited.usa-button-outline.usa-button-hover,
    .usa-button-primary:visited.usa-button-outline:hover,
    .usa-button-primary:visited.usa-button-outline.usa-button-hover,
    button.usa-button-outline:hover,
    button.usa-button-outline.usa-button-hover,
    [type=button].usa-button-outline:hover,
    [type=button].usa-button-outline.usa-button-hover,
    [type=submit].usa-button-outline:hover,
    [type=submit].usa-button-outline.usa-button-hover,
    [type=reset].usa-button-outline:hover,
    [type=reset].usa-button-outline.usa-button-hover,
    [type=image].usa-button-outline:hover,
    [type=image].usa-button-outline.usa-button-hover {
      box-shadow: inset 0 0 0 2px #205493;
      color: #205493; }
    .usa-button.usa-button-outline:active, .usa-button.usa-button-outline.usa-button-active,
    .usa-button-primary.usa-button-outline:active,
    .usa-button-primary.usa-button-outline.usa-button-active,
    .usa-button:visited.usa-button-outline:active,
    .usa-button:visited.usa-button-outline.usa-button-active,
    .usa-button-primary:visited.usa-button-outline:active,
    .usa-button-primary:visited.usa-button-outline.usa-button-active,
    button.usa-button-outline:active,
    button.usa-button-outline.usa-button-active,
    [type=button].usa-button-outline:active,
    [type=button].usa-button-outline.usa-button-active,
    [type=submit].usa-button-outline:active,
    [type=submit].usa-button-outline.usa-button-active,
    [type=reset].usa-button-outline:active,
    [type=reset].usa-button-outline.usa-button-active,
    [type=image].usa-button-outline:active,
    [type=image].usa-button-outline.usa-button-active {
      box-shadow: inset 0 0 0 2px #112e51;
      color: #112e51; }
    .usa-button.usa-button-outline:focus, .usa-button.usa-button-outline.usa-button-focus,
    .usa-button-primary.usa-button-outline:focus,
    .usa-button-primary.usa-button-outline.usa-button-focus,
    .usa-button:visited.usa-button-outline:focus,
    .usa-button:visited.usa-button-outline.usa-button-focus,
    .usa-button-primary:visited.usa-button-outline:focus,
    .usa-button-primary:visited.usa-button-outline.usa-button-focus,
    button.usa-button-outline:focus,
    button.usa-button-outline.usa-button-focus,
    [type=button].usa-button-outline:focus,
    [type=button].usa-button-outline.usa-button-focus,
    [type=submit].usa-button-outline:focus,
    [type=submit].usa-button-outline.usa-button-focus,
    [type=reset].usa-button-outline:focus,
    [type=reset].usa-button-outline.usa-button-focus,
    [type=image].usa-button-outline:focus,
    [type=image].usa-button-outline.usa-button-focus {
      box-shadow: inset 0 0 0 2px #112e51, 0 0 3px #3e94cf, 0 0 7px #3e94cf; }
  .usa-button.usa-button-outline-inverse,
  .usa-button-primary.usa-button-outline-inverse,
  .usa-button:visited.usa-button-outline-inverse,
  .usa-button-primary:visited.usa-button-outline-inverse,
  button.usa-button-outline-inverse,
  [type=button].usa-button-outline-inverse,
  [type=submit].usa-button-outline-inverse,
  [type=reset].usa-button-outline-inverse,
  [type=image].usa-button-outline-inverse {
    background: transparent;
    box-shadow: inset 0 0 0 2px #ffffff;
    color: #ffffff; }
    .usa-button.usa-button-outline-inverse:hover, .usa-button.usa-button-outline-inverse.usa-button-hover,
    .usa-button-primary.usa-button-outline-inverse:hover,
    .usa-button-primary.usa-button-outline-inverse.usa-button-hover,
    .usa-button:visited.usa-button-outline-inverse:hover,
    .usa-button:visited.usa-button-outline-inverse.usa-button-hover,
    .usa-button-primary:visited.usa-button-outline-inverse:hover,
    .usa-button-primary:visited.usa-button-outline-inverse.usa-button-hover,
    button.usa-button-outline-inverse:hover,
    button.usa-button-outline-inverse.usa-button-hover,
    [type=button].usa-button-outline-inverse:hover,
    [type=button].usa-button-outline-inverse.usa-button-hover,
    [type=submit].usa-button-outline-inverse:hover,
    [type=submit].usa-button-outline-inverse.usa-button-hover,
    [type=reset].usa-button-outline-inverse:hover,
    [type=reset].usa-button-outline-inverse.usa-button-hover,
    [type=image].usa-button-outline-inverse:hover,
    [type=image].usa-button-outline-inverse.usa-button-hover {
      box-shadow: inset 0 0 0 2px #d6d7d9;
      color: #d6d7d9; }
    .usa-button.usa-button-outline-inverse:active, .usa-button.usa-button-outline-inverse.usa-button-active,
    .usa-button-primary.usa-button-outline-inverse:active,
    .usa-button-primary.usa-button-outline-inverse.usa-button-active,
    .usa-button:visited.usa-button-outline-inverse:active,
    .usa-button:visited.usa-button-outline-inverse.usa-button-active,
    .usa-button-primary:visited.usa-button-outline-inverse:active,
    .usa-button-primary:visited.usa-button-outline-inverse.usa-button-active,
    button.usa-button-outline-inverse:active,
    button.usa-button-outline-inverse.usa-button-active,
    [type=button].usa-button-outline-inverse:active,
    [type=button].usa-button-outline-inverse.usa-button-active,
    [type=submit].usa-button-outline-inverse:active,
    [type=submit].usa-button-outline-inverse.usa-button-active,
    [type=reset].usa-button-outline-inverse:active,
    [type=reset].usa-button-outline-inverse.usa-button-active,
    [type=image].usa-button-outline-inverse:active,
    [type=image].usa-button-outline-inverse.usa-button-active {
      box-shadow: inset 0 0 0 2px #aeb0b5;
      color: #d6d7d9; }
    .usa-button.usa-button-outline-inverse:focus, .usa-button.usa-button-outline-inverse.usa-button-focus,
    .usa-button-primary.usa-button-outline-inverse:focus,
    .usa-button-primary.usa-button-outline-inverse.usa-button-focus,
    .usa-button:visited.usa-button-outline-inverse:focus,
    .usa-button:visited.usa-button-outline-inverse.usa-button-focus,
    .usa-button-primary:visited.usa-button-outline-inverse:focus,
    .usa-button-primary:visited.usa-button-outline-inverse.usa-button-focus,
    button.usa-button-outline-inverse:focus,
    button.usa-button-outline-inverse.usa-button-focus,
    [type=button].usa-button-outline-inverse:focus,
    [type=button].usa-button-outline-inverse.usa-button-focus,
    [type=submit].usa-button-outline-inverse:focus,
    [type=submit].usa-button-outline-inverse.usa-button-focus,
    [type=reset].usa-button-outline-inverse:focus,
    [type=reset].usa-button-outline-inverse.usa-button-focus,
    [type=image].usa-button-outline-inverse:focus,
    [type=image].usa-button-outline-inverse.usa-button-focus {
      box-shadow: inset 0 0 0 2px #aeb0b5, 0 0 3px #3e94cf, 0 0 7px #3e94cf; }
  .usa-button.usa-button-big,
  .usa-button-primary.usa-button-big,
  .usa-button:visited.usa-button-big,
  .usa-button-primary:visited.usa-button-big,
  button.usa-button-big,
  [type=button].usa-button-big,
  [type=submit].usa-button-big,
  [type=reset].usa-button-big,
  [type=image].usa-button-big {
    font-size: 1.9rem;
    padding: 1.5rem 3rem; }

/* stylelint-disable */
.usa-button:disabled,
.usa-button-disabled {
  background-color: #d6d7d9;
  color: #323a45;
  pointer-events: none; }
  .usa-button:disabled:hover, .usa-button:disabled.usa-button-hover, .usa-button:disabled:active, .usa-button:disabled.usa-button-active, .usa-button:disabled:focus,
  .usa-button-disabled:hover,
  .usa-button-disabled.usa-button-hover,
  .usa-button-disabled:active,
  .usa-button-disabled.usa-button-active,
  .usa-button-disabled:focus {
    background-color: #d6d7d9;
    border: 0;
    box-shadow: none;
    color: #323a45; }

.usa-button-unstyled {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  outline: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto; }
  .usa-button-unstyled:hover {
    background-color: transparent; }

.usa-embed-container iframe,
.usa-embed-container object,
.usa-embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.usa-embed-container {
  padding-bottom: 56.25%;
  position: relative;
  height: 0;
  overflow: hidden;
  max-width: 100%; }

img {
  max-width: 100%; }

.media_link {
  display: inline-block;
  line-height: 0; }

/* stylelint-disable selector-no-qualifying-type */
input,
textarea,
select {
  appearance: none;
  border: 0.1rem solid #5b616b;
  border-radius: 0;
  box-sizing: border-box;
  color: #212121;
  display: block;
  font-size: 1.7rem;
  height: 4.4rem;
  line-height: 1.3;
  margin: 0.2em 0;
  max-width: 46rem;
  outline: none;
  padding: 1rem 0.7em;
  width: 100%; }
  input:focus, input.usa-input-focus,
  textarea:focus,
  textarea.usa-input-focus,
  select:focus,
  select.usa-input-focus {
    box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf; }
  input.usa-input-success,
  textarea.usa-input-success,
  select.usa-input-success {
    border: 3px solid #4aa564; }

/* stylelint-enable */
.usa-input-error {
  border-left: 4px solid #cd2026;
  margin-top: 3rem;
  padding-bottom: 0.8rem;
  padding-left: 1.5rem;
  padding-top: 0.8rem;
  position: relative;
  right: 1.9rem; }
  .usa-input-error input,
  .usa-input-error textarea,
  .usa-input-error select {
    border: 3px solid #cd2026;
    width: calc(100% + 1.9rem); }
  .usa-input-error label {
    margin-top: 0; }
  .usa-input-error .usa-input-inline {
    border: 0.1rem solid #5b616b;
    width: inherit; }
  .usa-input-error .usa-input-inline-error {
    border: 3px solid #cd2026; }

.usa-input-error-label {
  display: block;
  font-size: 1.7rem;
  font-weight: 700; }

.usa-input-error-message {
  color: #cd2026;
  display: block;
  font-size: 1.7rem;
  font-weight: 700;
  padding-bottom: 3px;
  padding-top: 3px; }

.usa-input-required:after {
  color: #981b1e;
  content: ' (*Required)'; }

label {
  display: block;
  margin-top: 3rem;
  max-width: 46rem; }

textarea {
  height: 16rem; }

select {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background-color: #ffffff;
  background-image: url("../vendor/uswds/img/arrow-down.png");
  background-image: url("../vendor/uswds/img/arrow-down.svg");
  background-position: right 1.3rem center;
  background-repeat: no-repeat;
  background-size: 1.3rem; }

legend {
  font-size: 3rem;
  font-weight: 700; }

.usa-fieldset-inputs label {
  margin-top: 0; }

.usa-form-hint {
  color: #757575;
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  margin-bottom: 0; }

[type=checkbox],
[type=radio] {
  position: absolute;
  left: -999em; }
  .lt-ie9 [type=checkbox], .lt-ie9
  [type=radio] {
    border: 0;
    float: left;
    margin: 0.4em 0.4em 0 0;
    position: static;
    width: auto; }

[type=checkbox] + label,
[type=radio] + label {
  cursor: pointer;
  font-weight: 400;
  margin-bottom: 0.5em; }

[type=checkbox] + label::before,
[type=radio] + label::before {
  background: #ffffff;
  border-radius: 3px;
  box-shadow: 0 0 0 1px #757575;
  content: '\a0';
  display: inline-block;
  height: 1.8rem;
  line-height: 1.8rem;
  margin-right: 0.6em;
  text-indent: 0.15em;
  vertical-align: middle\0;
  width: 1.8rem; }

[type=radio] + label::before {
  box-shadow: 0 0 0 2px #ffffff, 0 0 0 3px #757575;
  height: 1.6rem;
  line-height: 1.6rem;
  width: 1.6rem;
  border-radius: 100%; }

[type=checkbox]:checked + label::before,
[type=radio]:checked + label::before {
  background-color: #0071bc;
  box-shadow: 0 0 0 1px #0071bc; }

[type=radio]:checked + label::before {
  box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0071bc; }

[type=radio]:focus + label::before {
  box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0071bc, 0 0 3px 4px #3e94cf, 0 0 7px 4px #3e94cf; }

[type=checkbox]:checked + label::before,
[type=checkbox]:checked:disabled + label::before {
  background-image: url("../vendor/uswds/img/correct8.png");
  background-image: url("../vendor/uswds/img/correct8.svg");
  background-position: 50%;
  background-repeat: no-repeat; }

[type=checkbox]:focus + label::before {
  box-shadow: 0 0 0 1px #ffffff, 0 0 0 3px #0071bc; }

[type=checkbox]:disabled + label {
  color: #5b616b; }

[type=checkbox]:disabled + label::before,
[type=radio]:disabled + label::before {
  background: #d6d7d9;
  box-shadow: 0 0 0 1px #aeb0b5;
  cursor: not-allowed; }

[type=range] {
  -webkit-appearance: none;
  border: none;
  padding-left: 0;
  width: 100%; }

[type=range]:focus {
  box-shadow: none;
  outline: none; }

[type=range]::-webkit-slider-runnable-track {
  background: #aeb0b5;
  border: 1px solid #757575;
  cursor: pointer;
  height: 1.2rem;
  width: 100%; }

[type=range]::-moz-range-track {
  background: #0071bc;
  border: 1px solid #757575;
  cursor: pointer;
  height: 1.2rem;
  width: 100%; }

[type=range]::-ms-track {
  background: transparent;
  color: transparent;
  cursor: pointer;
  height: 1.2rem;
  width: 100%; }

[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  border: 1px solid #757575;
  height: 2.2rem;
  border-radius: 1.5rem;
  background: #f1f1f1;
  cursor: pointer;
  margin-top: -.65rem;
  width: 2.2rem; }

[type=range]::-moz-range-thumb {
  background: #f1f1f1;
  border: 1px solid #757575;
  border-radius: 1.5rem;
  cursor: pointer;
  height: 2.2rem;
  width: 2.2rem; }

[type=range]::-ms-thumb {
  background: #f1f1f1;
  border: 1px solid #757575;
  border-radius: 1.5rem;
  cursor: pointer;
  height: 2.2rem;
  width: 2.2rem; }

[type=range]::-ms-fill-lower {
  background: #aeb0b5;
  border: 1px solid #757575;
  border-radius: 2rem; }

[type=range]::-ms-fill-upper {
  background: #aeb0b5;
  border: 1px solid #757575;
  border-radius: 2rem; }

[type=range]:focus::-webkit-slider-thumb {
  border: 2px solid #3e94cf; }

[type=range]:focus::-moz-range-thumb {
  border: 2px solid #3e94cf; }

[type=range]:focus::-ms-thumb {
  border: 2px solid #3e94cf; }

.usa-date-of-birth label {
  margin-top: 0; }

.usa-date-of-birth [type=number]::-webkit-inner-spin-button,
.usa-date-of-birth [type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0; }

.usa-date-of-birth [type=number] {
  -moz-appearance: textfield; }

.usa-form-group-day,
.usa-form-group-month,
.usa-form-group-year {
  clear: none;
  float: left;
  margin-right: 1.5rem;
  width: 5rem; }

.usa-form-group-year {
  width: 7rem; }

.usa-label, .usa-label-big {
  background-color: #0071bc;
  border-radius: 3px;
  color: #ffffff;
  font-size: 1.5rem;
  margin-right: 0.5rem;
  padding: 0.1rem 0.7rem;
  text-transform: uppercase; }
  .usa-label:only-of-type, .usa-label-big:only-of-type {
    margin-right: 0; }

.usa-label-big {
  font-size: 1.7rem;
  padding-left: 0.9rem;
  padding-right: 0.9rem; }

ul,
ol {
  margin-top: 1em;
  margin-bottom: 1em;
  padding-left: 1.94em; }

li {
  line-height: 1.5;
  margin-bottom: 0.5em; }
  li:last-child {
    margin-bottom: 0; }

h1 + ul,
h1 + ol,
h2 + ul,
h2 + ol,
h3 + ul,
h3 + ol,
h4 + ul,
h4 + ol,
h5 + ul,
h5 + ol,
h6 + ul,
h6 + ol,
p + ul,
p + ol {
  margin-top: 0; }

.usa-unstyled-list {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0; }
  .usa-unstyled-list > li {
    margin-bottom: 0; }

table {
  border-spacing: 0;
  margin: 2em 0;
  min-width: 100%; }
  table thead th,
  table thead td {
    background-color: #f1f1f1; }
  table th {
    text-align: left; }
  table tbody th {
    font-weight: 400; }
  table th,
  table td {
    background-color: #ffffff;
    border: 1px solid #5b616b;
    padding: 1.5rem; }

.usa-table-borderless thead tr {
  background-color: transparent; }

.usa-table-borderless thead th {
  border-top: 0; }

.usa-table-borderless th,
.usa-table-borderless td {
  border-left: 0;
  border-right: 0; }

html {
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 10px; }

body {
  font-size: 1.7rem; }

p {
  line-height: 1.5;
  margin-bottom: 1em;
  margin-top: 1em; }

a {
  color: #0071bc;
  text-decoration: underline; }
  a:hover, a:active {
    color: #205493; }
  a:visited {
    color: #4c2c92; }
  a:focus {
    box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf;
    outline: 0; }

.usa-external_link::after {
  background: url("../vendor/uswds/img/external-link.png") no-repeat 0 0;
  background: url("../vendor/uswds/img/external-link.svg") no-repeat 0 0;
  background-size: 100%;
  content: '';
  display: inline-block;
  height: 0.65em;
  margin-bottom: -1px;
  margin-left: 4px;
  width: 0.65em; }

.usa-external_link:hover::after {
  background-image: url("../vendor/uswds/img/external-link-hover.png");
  background-image: url("../vendor/uswds/img/external-link-hover.svg"); }

.usa-external_link-alt::after {
  background: url("../vendor/uswds/img/external-link-alt.png") no-repeat 0 0;
  background: url("../vendor/uswds/img/external-link-alt.svg") no-repeat 0 0;
  background-size: 100%;
  content: '';
  display: inline-block;
  height: 0.65em;
  margin-bottom: -1px;
  margin-left: 4px;
  width: 0.65em; }

.usa-external_link-alt:hover::after {
  background-image: url("../vendor/uswds/img/external-link-alt-hover.png");
  background-image: url("../vendor/uswds/img/external-link-alt-hover.svg"); }

h1,
h2,
h3,
h4,
h5,
h6 {
  clear: both;
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  line-height: 1.3;
  margin-bottom: .5em;
  margin-top: 1.5em; }

h1 {
  font-size: 4rem;
  font-weight: 700; }

h2 {
  font-size: 3rem;
  font-weight: 700; }

h3 {
  font-size: 2rem;
  font-weight: 700; }

h4 {
  font-size: 1.7rem;
  font-weight: 700; }

h5 {
  font-size: 1.5rem;
  font-weight: 700; }

h6 {
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.3rem;
  font-weight: 400;
  text-transform: uppercase; }

cite,
var,
address,
dfn {
  font-style: normal; }

.usa-content p:not(.usa-font-lead),
.usa-content ul:not(.usa-accordion):not(.usa-accordion-bordered),
.usa-content ol:not(.usa-accordion):not(.usa-accordion-bordered) {
  max-width: 53rem; }

.usa-content-list {
  max-width: 53rem; }

.usa-sans p,
.usa-sans a,
.usa-sans li,
.usa-sans span {
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }

.usa-sans a {
  border-bottom: none;
  font-weight: 700; }

.usa-serif p,
.usa-serif a,
.usa-serif li,
.usa-serif span {
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif; }

.usa-display {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 0; }
  @media screen and (min-width: 481px) {
    .usa-display {
      font-size: 4rem;
      font-weight: 700; } }
  @media screen and (min-width: 600px) {
    .usa-display {
      font-size: 5.2rem;
      font-weight: 700; } }

.usa-font-lead {
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  font-size: 2rem;
  line-height: 1.7;
  max-width: 77rem; }

.usa-image-block {
  position: relative; }

.usa-image-text-block {
  color: #ffffff;
  left: 0;
  margin-left: 8%;
  position: absolute;
  top: 0; }

.usa-image-text {
  margin-top: 0; }

.usa-drop_text {
  margin-bottom: 0; }

.usa-background-dark {
  background-color: #323a45; }
  .usa-background-dark p,
  .usa-background-dark span {
    color: #ffffff; }
  .usa-background-dark a {
    color: #d6d7d9; }
    .usa-background-dark a:hover {
      color: #ffffff; }

.usa-text-small {
  font-size: 1.3rem;
  margin-top: 0; }

.usa-section > :first-child,
.usa-grid > :first-child,
.usa-grid-full > :first-child {
  margin-top: 0; }

.usa-section > :last-child,
.usa-grid > :last-child,
.usa-grid-full > :last-child {
  margin-bottom: 0; }

.usa-width-one-whole:first-child > :first-child,
.usa-width-one-half:first-child > :first-child,
.usa-width-one-third:first-child > :first-child,
.usa-width-two-thirds:first-child > :first-child,
.usa-width-one-fourth:first-child > :first-child,
.usa-width-three-fourths:first-child > :first-child,
.usa-width-one-sixth:first-child > :first-child,
.usa-width-five-sixths:first-child > :first-child,
.usa-width-one-twelfth:first-child > :first-child {
  margin-top: 0; }

@media screen and (min-width: 600px) {
  .usa-width-one-whole > :first-child,
  .usa-width-one-half > :first-child,
  .usa-width-one-third > :first-child,
  .usa-width-two-thirds > :first-child,
  .usa-width-one-fourth > :first-child,
  .usa-width-three-fourths > :first-child,
  .usa-width-one-sixth > :first-child,
  .usa-width-five-sixths > :first-child,
  .usa-width-one-twelfth > :first-child {
    margin-top: 0; } }

.usa-width-one-whole:last-child > :last-child,
.usa-width-one-half:last-child > :last-child,
.usa-width-one-third:last-child > :last-child,
.usa-width-two-thirds:last-child > :last-child,
.usa-width-one-fourth:last-child > :last-child,
.usa-width-three-fourths:last-child > :last-child,
.usa-width-one-sixth:last-child > :last-child,
.usa-width-five-sixths:last-child > :last-child,
.usa-width-one-twelfth:last-child > :last-child {
  margin-bottom: 0; }

@media screen and (min-width: 600px) {
  .usa-width-one-whole > :last-child,
  .usa-width-one-half > :last-child,
  .usa-width-one-third > :last-child,
  .usa-width-two-thirds > :last-child,
  .usa-width-one-fourth > :last-child,
  .usa-width-three-fourths > :last-child,
  .usa-width-one-sixth > :last-child,
  .usa-width-five-sixths > :last-child,
  .usa-width-one-twelfth > :last-child {
    margin-bottom: 0; } }

.usa-accordion,
.usa-accordion-bordered {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0;
  color: #212121;
  margin: 0;
  padding: 0;
  width: 100%; }
  .usa-accordion > li,
  .usa-accordion-bordered > li {
    margin-bottom: 0; }
  .usa-accordion > ul li ul,
  .usa-accordion-bordered > ul li ul {
    list-style: disc; }
    .usa-accordion > ul li ul > li > ul,
    .usa-accordion-bordered > ul li ul > li > ul {
      list-style: circle; }
      .usa-accordion > ul li ul > li > ul > li > ul,
      .usa-accordion-bordered > ul li ul > li > ul > li > ul {
        list-style: square; }
  .usa-accordion + .usa-accordion,
  .usa-accordion + .usa-accordion-bordered,
  .usa-accordion-bordered + .usa-accordion,
  .usa-accordion-bordered + .usa-accordion-bordered {
    margin-top: 1rem; }
  .usa-accordion > ul,
  .usa-accordion-bordered > ul {
    margin-top: 0;
    margin-bottom: 0;
    list-style-type: none;
    padding-left: 0;
    color: #212121;
    margin: 0;
    padding: 0;
    width: 100%; }
    .usa-accordion > ul > li,
    .usa-accordion-bordered > ul > li {
      margin-bottom: 0; }
    .usa-accordion > ul > li,
    .usa-accordion-bordered > ul > li {
      background-color: #f1f1f1;
      font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      list-style: none;
      margin-bottom: 6px;
      width: 100%; }
    .usa-accordion > ul button,
    .usa-accordion-bordered > ul button {
      background-color: transparent;
      border: 0;
      border-radius: 0;
      font-weight: 400;
      margin: 0;
      outline: 0;
      padding: 0;
      text-align: left;
      -webkit-font-smoothing: auto;
      background-color: #f1f1f1;
      background-image: url("../vendor/uswds/img/minus.png");
      background-image: url("../vendor/uswds/img/minus.svg");
      background-position: right 3rem center;
      background-repeat: no-repeat;
      background-size: 13px;
      color: #212121;
      cursor: pointer;
      display: inline-block;
      font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      font-weight: 700;
      margin: 0;
      padding: 1.5rem 5.5rem 1.5rem 3rem;
      width: 100%; }
      .usa-accordion > ul button:hover,
      .usa-accordion-bordered > ul button:hover {
        background-color: transparent; }
      .usa-accordion > ul button:focus,
      .usa-accordion-bordered > ul button:focus {
        box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf; }
      .usa-accordion > ul button:hover,
      .usa-accordion-bordered > ul button:hover {
        background-color: #d6d7d9;
        color: #212121; }
      .usa-accordion > ul button h1,
      .usa-accordion > ul button h2,
      .usa-accordion > ul button h3,
      .usa-accordion > ul button h4,
      .usa-accordion > ul button h5,
      .usa-accordion > ul button h6,
      .usa-accordion-bordered > ul button h1,
      .usa-accordion-bordered > ul button h2,
      .usa-accordion-bordered > ul button h3,
      .usa-accordion-bordered > ul button h4,
      .usa-accordion-bordered > ul button h5,
      .usa-accordion-bordered > ul button h6 {
        margin: 0; }
    .usa-accordion > ul [aria-expanded=false],
    .usa-accordion-bordered > ul [aria-expanded=false] {
      background-image: url("../vendor/uswds/img/plus.png");
      background-image: url("../vendor/uswds/img/plus.svg");
      background-repeat: no-repeat;
      background-size: 1.3rem; }
  .usa-accordion > li,
  .usa-accordion-bordered > li {
    background-color: #f1f1f1;
    font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    list-style: none;
    margin-bottom: 6px;
    width: 100%; }

.usa-accordion-bordered .usa-accordion-content {
  border-bottom: 3px solid #f1f1f1;
  border-left: 3px solid #f1f1f1;
  border-right: 3px solid #f1f1f1; }

.usa-accordion-content {
  background-color: #ffffff;
  overflow: auto;
  padding: 3rem; }
  .usa-accordion-content > *:first-child {
    margin-top: 0; }
  .usa-accordion-content > *:last-child {
    margin-bottom: 0; }
  .usa-accordion-content:not([aria-hidden]) {
    position: absolute;
    left: -999em; }
  .usa-accordion-content[aria-hidden=true] {
    display: none; }

.usa-accordion-button {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  outline: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto;
  background-color: #f1f1f1;
  background-image: url("../vendor/uswds/img/minus.png");
  background-image: url("../vendor/uswds/img/minus.svg");
  background-position: right 3rem center;
  background-repeat: no-repeat;
  background-size: 13px;
  color: #212121;
  cursor: pointer;
  display: inline-block;
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  margin: 0;
  padding: 1.5rem 5.5rem 1.5rem 3rem;
  width: 100%; }
  .usa-accordion-button:hover {
    background-color: transparent; }
  .usa-accordion-button:focus {
    box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf; }
  .usa-accordion-button:hover {
    background-color: #d6d7d9;
    color: #212121; }
  .usa-accordion-button h1,
  .usa-accordion-button h2,
  .usa-accordion-button h3,
  .usa-accordion-button h4,
  .usa-accordion-button h5,
  .usa-accordion-button h6 {
    margin: 0; }

.usa-accordion-button[aria-expanded=false] {
  background-image: url("../vendor/uswds/img/plus.png");
  background-image: url("../vendor/uswds/img/plus.svg");
  background-repeat: no-repeat;
  background-size: 1.3rem; }

.usa-alert {
  background-color: #f1f1f1;
  background-position: 1rem 2rem;
  background-repeat: no-repeat;
  background-size: 4rem;
  margin-top: 1.5em;
  padding: 1em; }
  @media screen and (min-width: 600px) {
    .usa-alert {
      background-size: 5.2rem; } }
  .usa-alert a {
    color: #205493; }
    .usa-alert a:focus, .usa-alert a:hover {
      color: #112e51; }
  .usa-alert ul {
    margin-bottom: 0;
    margin-top: 1em;
    padding-left: 1em; }

.usa-alert-icon {
  display: table-cell;
  padding-right: 1rem; }

.usa-alert-body {
  display: table-cell;
  padding-left: 3.5rem;
  vertical-align: top; }
  @media screen and (min-width: 600px) {
    .usa-alert-body {
      padding-left: 5rem; } }
  .usa-alert-body p:first-child {
    margin-top: 0.8rem; }
  .usa-alert-body p:last-child {
    margin-bottom: 0.8rem; }

.usa-alert-heading {
  margin-bottom: .3rem;
  margin-top: 0; }
  @media screen and (min-width: 600px) {
    .usa-alert-heading {
      margin-top: .3rem; } }

.usa-alert-text {
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  margin-bottom: 0;
  margin-top: 0; }

.usa-alert-success {
  background-color: #e7f4e4;
  background-image: url("../vendor/uswds/img/alerts/success.png");
  background-image: url("../vendor/uswds/img/alerts/success.svg"); }

.usa-alert-warning {
  background-color: #fff1d2;
  background-image: url("../vendor/uswds/img/alerts/warning.png");
  background-image: url("../vendor/uswds/img/alerts/warning.svg"); }

.usa-alert-error {
  background-color: #f9dede;
  background-image: url("../vendor/uswds/img/alerts/error.png");
  background-image: url("../vendor/uswds/img/alerts/error.svg"); }

.usa-alert-info {
  background-color: #e1f3f8;
  background-image: url("../vendor/uswds/img/alerts/info.png");
  background-image: url("../vendor/uswds/img/alerts/info.svg"); }

.usa-alert-no_icon {
  background-image: none; }

.usa-alert-paragraph {
  width: 53rem;
  padding: 1em 3em 1em 1em; }

.usa-banner {
  background-color: #f1f1f1;
  padding-bottom: 0.7rem; }
  @media screen and (min-width: 481px) {
    .usa-banner {
      font-size: 1.3rem;
      padding-bottom: 0; } }

.usa-banner-content {
  padding-right: 1.5rem;
  padding-bottom: 3px;
  padding-left: 1.5rem;
  background-color: transparent;
  font-size: 1.5rem;
  padding-top: 2rem;
  width: 100%; }
  @media screen and (min-width: 600px) {
    .usa-banner-content {
      padding-bottom: 2.3rem;
      padding-top: 4rem; } }
  @media screen and (min-width: 951px) {
    .usa-banner-content {
      padding-right: 3rem;
      padding-left: 3rem; } }
  .usa-banner-content p:first-child {
    margin-top: 1rem; }
    @media screen and (min-width: 600px) {
      .usa-banner-content p:first-child {
        margin-top: 0; } }

.usa-banner-inner {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-right: 1.5rem;
  padding-left: 1.5rem;
  max-width: 1040px; }
  .usa-banner-inner::after {
    clear: both;
    content: "";
    display: block; }
  @media screen and (min-width: 951px) {
    .usa-banner-inner {
      padding-right: 3rem;
      padding-left: 3rem; } }

.usa-banner-header {
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
  font-size: 1.2rem;
  font-weight: 400; }
  @media screen and (min-width: 481px) {
    .usa-banner-header {
      padding-top: 0;
      padding-bottom: 0; } }
  .usa-banner-header p {
    margin-top: 0;
    margin-bottom: 0;
    display: inline;
    overflow: hidden;
    vertical-align: middle; }
    @media screen and (min-width: 481px) {
      .usa-banner-header p {
        margin-top: 2px;
        margin-bottom: 2px;
        display: inline-block; } }
  .usa-banner-header img {
    float: left;
    margin-right: 1rem;
    margin-top: 1px;
    width: 2.4rem; }
    @media screen and (min-width: 481px) {
      .usa-banner-header img {
        margin-right: 0.7rem;
        width: 2rem; } }

.usa-banner-header-expanded {
  align-items: center;
  border-bottom: 1px solid #aeb0b5;
  display: flex;
  font-size: 1.5rem;
  min-height: 5.6rem;
  padding-right: 3rem; }
  @media screen and (min-width: 481px) {
    .usa-banner-header-expanded {
      border-bottom: none;
      display: block;
      font-size: 1.2rem;
      font-weight: 400;
      min-height: 0;
      padding-right: 0; } }
  .usa-banner-header-expanded > .usa-banner-inner {
    margin-left: 0; }
    @media screen and (min-width: 481px) {
      .usa-banner-header-expanded > .usa-banner-inner {
        margin-left: auto; } }
  .usa-banner-header-expanded img {
    margin-right: 2.4rem; }
    @media screen and (min-width: 481px) {
      .usa-banner-header-expanded img {
        margin-right: 0.7rem; } }
  .usa-banner-header-expanded p {
    line-height: 1.3;
    vertical-align: top; }
    @media screen and (min-width: 481px) {
      .usa-banner-header-expanded p {
        line-height: 1.5;
        vertical-align: middle; } }

.usa-banner-button {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  outline: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto;
  padding-top: 1.3rem;
  padding-left: 4.8rem;
  background-position-x: right;
  color: #0071bc;
  display: block;
  font-size: 1.2rem;
  height: 4.3rem;
  left: 0;
  position: absolute;
  text-decoration: underline;
  top: 0;
  width: 100%; }
  .usa-banner-button:hover {
    background-color: transparent; }
  @media screen and (min-width: 481px) {
    .usa-banner-button {
      padding-top: 0;
      padding-left: 0;
      /* stylelint-disable declaration-block-no-ignored-properties */
      display: inline;
      height: initial;
      margin-left: 3px;
      position: relative;
      vertical-align: middle;
      width: initial;
      /* stylelint-enable */ } }
  .usa-banner-button:hover {
    color: #205493;
    text-decoration: underline; }
  .usa-banner-button[aria-expanded=false] {
    background-image: none; }
    .usa-banner-button[aria-expanded=false]::after {
      background-image: url(../vendor/uswds/img/angle-arrow-down-primary.png);
      background-image: url(../vendor/uswds/img/angle-arrow-down-primary.svg);
      background-size: 100%;
      content: '';
      display: inline-block;
      height: 1rem;
      width: 1rem;
      /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */
      margin-left: 0;
      /* stylelint-enable */ }
    .usa-banner-button[aria-expanded=false]:hover::after {
      background-image: url(../vendor/uswds/img/angle-arrow-down-primary-hover.png);
      background-image: url(../vendor/uswds/img/angle-arrow-down-primary-hover.svg); }
    .usa-banner-button[aria-expanded=false]::after {
      background-position-y: 1px; }
  .usa-banner-button[aria-expanded=true] {
    background-image: none;
    height: 5.6rem; }
    .usa-banner-button[aria-expanded=true]::after {
      background-image: url(../vendor/uswds/img/close.png);
      background-image: url(../vendor/uswds/img/close.svg);
      background-size: 100%;
      content: '';
      display: inline-block;
      height: 1.3rem;
      width: 1.3rem;
      /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */
      margin-left: 0;
      /* stylelint-enable */ }
    @media screen and (min-width: 481px) {
      .usa-banner-button[aria-expanded=true] {
        height: initial;
        padding: 0;
        position: relative; }
        .usa-banner-button[aria-expanded=true]::after {
          background-image: url(../vendor/uswds/img/angle-arrow-up-primary.png);
          background-image: url(../vendor/uswds/img/angle-arrow-up-primary.svg);
          background-size: 100%;
          content: '';
          display: inline-block;
          height: 1rem;
          width: 1rem;
          /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */
          margin-left: 0;
          /* stylelint-enable */ }
        .usa-banner-button[aria-expanded=true]:hover::after {
          background-image: url(../vendor/uswds/img/angle-arrow-up-primary-hover.png);
          background-image: url(../vendor/uswds/img/angle-arrow-up-primary-hover.svg); }
        .usa-banner-button[aria-expanded=true]::after {
          background-position-y: 1px; } }
    .usa-banner-button[aria-expanded=true]::after {
      position: absolute;
      right: 1.5rem;
      top: 2.15rem; }
      @media screen and (min-width: 481px) {
        .usa-banner-button[aria-expanded=true]::after {
          position: static; } }
    .usa-banner-button[aria-expanded=true] .usa-banner-button-text {
      display: none; }
      @media screen and (min-width: 481px) {
        .usa-banner-button[aria-expanded=true] .usa-banner-button-text {
          display: inline; } }

.usa-banner-icon {
  width: 3.8rem; }

.usa-footer .usa-unstyled-list {
  display: block; }

.usa-footer .usa-footer-primary-link {
  color: #212121;
  display: block;
  font-weight: 700;
  margin-top: 0;
  padding-bottom: 2rem;
  padding-top: 2rem;
  text-decoration: none; }
  @media screen and (min-width: 600px) {
    .usa-footer .usa-footer-primary-link {
      border-top: none; } }
  .usa-footer .usa-footer-primary-link:hover {
    text-decoration: underline; }

.usa-footer a {
  font-weight: normal; }

.usa-footer-return-to-top {
  padding-bottom: 2rem;
  padding-top: 2rem; }

.usa-footer-primary-section {
  background-color: #f1f1f1; }
  .usa-footer-primary-section .usa-footer-primary-content {
    padding-left: 2.5rem;
    padding-right: 2.5rem; }
    @media screen and (min-width: 600px) {
      .usa-footer-primary-section .usa-footer-primary-content {
        padding-left: 0;
        padding-right: 0; } }
    .usa-footer-primary-section .usa-footer-primary-content li {
      margin-left: 1rem; }
      @media screen and (min-width: 600px) {
        .usa-footer-primary-section .usa-footer-primary-content li {
          margin-left: 0; } }
  @media screen and (min-width: 600px) {
    .usa-footer-primary-section .usa-grid-full {
      padding-left: 2.5rem;
      padding-right: 2.5rem; } }

.usa-footer-medium .usa-footer-primary-section {
  padding: 0; }
  @media screen and (min-width: 600px) {
    .usa-footer-medium .usa-footer-primary-section {
      padding-bottom: 1rem;
      padding-top: 1rem; } }
  @media screen and (min-width: 1201px) {
    .usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content {
      margin-right: 6%;
      width: inherit; } }
  @media screen and (min-width: 1201px) {
    .usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content:last-child {
      margin-right: 0; } }

@media screen and (min-width: 600px) {
  .usa-footer-medium .usa-footer-nav ul {
    align-items: center; } }

.usa-footer-slim .usa-footer-nav a {
  display: block; }

@media screen and (min-width: 1201px) {
  .usa-footer-slim .usa-footer-nav .usa-footer-primary-content {
    margin-right: 9%;
    width: inherit; } }

@media screen and (min-width: 1201px) {
  .usa-footer-slim .usa-footer-nav .usa-footer-primary-content:last-child {
    margin-right: 0; } }

.usa-footer-slim .usa-footer-primary-section {
  padding-bottom: 2rem; }
  @media screen and (min-width: 600px) {
    .usa-footer-slim .usa-footer-primary-section {
      padding-bottom: 1rem;
      padding-top: 1rem; }
      .usa-footer-slim .usa-footer-primary-section .usa-grid-full {
        align-items: center; } }

@media screen and (min-width: 600px) {
  .usa-footer-slim .usa-footer-contact_info > * {
    margin: 0; } }

@media screen and (min-width: 600px) {
  .usa-footer-slim .usa-footer-contact_info {
    padding-top: 2rem;
    padding-bottom: 2rem; } }

@media screen and (min-width: 600px) {
  .usa-footer-slim .usa-footer-contact_info {
    width: 100%; } }

@media screen and (min-width: 1201px) {
  .usa-footer-slim .usa-footer-contact_info {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 48.82117%; }
    .usa-footer-slim .usa-footer-contact_info:last-child {
      margin-right: 0; } }

/* stylelint-disable selector-no-qualifying-type */
ul.usa-footer-primary-content,
li.usa-footer-primary-content,
li.usa-footer-primary-content {
  border-top: 1px solid #212121; }
  @media screen and (min-width: 600px) {
    ul.usa-footer-primary-content,
    li.usa-footer-primary-content,
    li.usa-footer-primary-content {
      border: none; } }
  ul.usa-footer-primary-content:last-child,
  li.usa-footer-primary-content:last-child,
  li.usa-footer-primary-content:last-child {
    border-bottom: 1px solid #212121; }
    @media screen and (min-width: 600px) {
      ul.usa-footer-primary-content:last-child,
      li.usa-footer-primary-content:last-child,
      li.usa-footer-primary-content:last-child {
        border-bottom: none; } }

/* stylelint-enable */
.usa-sign_up-block {
  padding-bottom: 2rem;
  padding-left: 2.5rem;
  padding-right: 2.5rem; }
  @media screen and (min-width: 600px) {
    .usa-sign_up-block {
      float: right;
      padding: 0; } }
  .usa-sign_up-block label:first-of-type {
    margin-top: 0; }
  .usa-sign_up-block button {
    float: none;
    margin-right: 0;
    margin-top: 1.5rem; }
  .usa-sign_up-block input {
    width: 100%; }

.usa-footer-secondary_section {
  background-color: #d6d7d9;
  padding-bottom: 3rem;
  padding-top: 3rem; }
  .usa-footer-secondary_section a {
    color: #212121; }

@media screen and (min-width: 600px) {
  .usa-footer-big-secondary-section {
    padding-top: 5rem; } }

@media screen and (min-width: 600px) {
  .usa-footer-contact-links {
    text-align: right; } }

.usa-social-links a {
  text-decoration: none; }

@media screen and (min-width: 600px) {
  .usa-footer-big .usa-footer-primary-section {
    padding-bottom: 4rem;
    padding-top: 3rem; } }

.usa-footer-big ul {
  padding-bottom: 2.5rem; }
  @media screen and (min-width: 600px) {
    .usa-footer-big ul {
      padding-bottom: 0; } }
  .usa-footer-big ul:last-child {
    border-bottom: 1px solid #212121; }
    @media screen and (min-width: 600px) {
      .usa-footer-big ul:last-child {
        border-bottom: none; } }
  .usa-footer-big ul li {
    line-height: 2em; }
  .usa-footer-big ul .usa-footer-primary-link {
    background-image: url("../vendor/uswds/img/arrow-down.png");
    background-image: url("../vendor/uswds/img/arrow-down.svg");
    background-position: 1.5rem center;
    background-repeat: no-repeat;
    background-size: 1.3rem;
    margin-left: 0;
    padding-left: 3.5rem; }
    @media screen and (min-width: 600px) {
      .usa-footer-big ul .usa-footer-primary-link {
        background: none;
        margin-bottom: .8rem;
        padding-bottom: 0;
        padding-left: 0; } }
    .usa-footer-big ul .usa-footer-primary-link > * {
      margin-top: 0;
      margin-bottom: 0; }
  .usa-footer-big ul.hidden {
    /* stylelint-disable-line selector-no-qualifying-type */
    padding-bottom: 0; }
    .usa-footer-big ul.hidden li {
      display: none; }
    .usa-footer-big ul.hidden .usa-footer-primary-link {
      /* stylelint-disable-line selector-no-qualifying-type */
      background-image: url("../vendor/uswds/img/arrow-right.png");
      background-image: url("../vendor/uswds/img/arrow-right.svg");
      cursor: pointer;
      display: block; }
      @media screen and (min-width: 600px) {
        .usa-footer-big ul.hidden .usa-footer-primary-link {
          background: none;
          padding-left: 0; } }

.usa-footer-topic {
  margin: 0;
  padding: 2rem 0; }

@media screen and (min-width: 600px) {
  .usa-sign_up-header {
    margin: 0;
    padding: 2rem 0; } }

.usa-footer-logo-img {
  max-width: 14rem; }

.usa-footer-slim-logo-img {
  float: left;
  max-width: 10rem; }

.usa-footer-logo-heading {
  margin-top: 2rem; }

.usa-footer-contact-heading {
  margin-top: 0; }
  @media screen and (min-width: 600px) {
    .usa-footer-contact-heading {
      margin-top: 1rem; } }

.usa-footer-slim-logo-heading {
  display: block;
  padding-top: 1rem; }
  @media screen and (min-width: 600px) {
    .usa-footer-slim-logo-heading {
      display: inline-block;
      padding-left: 1em; } }

.usa-social_link, .usa-link-facebook, .usa-link-twitter, .usa-link-youtube, .usa-link-rss {
  margin: 2.5rem 1rem 1.5rem 0;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: auto 3rem;
  display: inline-block;
  height: 4.4rem;
  left: -1.6rem;
  position: relative;
  text-align: center;
  width: 4.4rem; }
  @media screen and (min-width: 600px) {
    .usa-social_link, .usa-link-facebook, .usa-link-twitter, .usa-link-youtube, .usa-link-rss {
      margin: 0 0 0 1rem;
      left: 1.2rem; } }
  .usa-social_link span, .usa-link-facebook span, .usa-link-twitter span, .usa-link-youtube span, .usa-link-rss span {
    position: absolute;
    left: -999em; }

.usa-link-facebook {
  background-image: url("../vendor/uswds/img/social-icons/png/facebook25.png");
  background-image: url("../vendor/uswds/img/social-icons/svg/facebook25.svg"); }

.usa-link-twitter {
  background-image: url("../vendor/uswds/img/social-icons/png/twitter16.png");
  background-image: url("../vendor/uswds/img/social-icons/svg/twitter16.svg"); }

.usa-link-youtube {
  background-image: url("../vendor/uswds/img/social-icons/png/youtube15.png");
  background-image: url("../vendor/uswds/img/social-icons/svg/youtube15.svg"); }

.usa-link-rss {
  background-image: url("../vendor/uswds/img/social-icons/png/rss25.png");
  background-image: url("../vendor/uswds/img/social-icons/svg/rss25.svg"); }

form a {
  border-bottom: 0; }

form [type=submit],
form [type=submit] {
  display: block;
  margin-bottom: 1.5em;
  margin-top: 2.5rem; }
  @media screen and (min-width: 600px) {
    form [type=submit],
    form [type=submit] {
      padding-left: 2.7em;
      padding-right: 2.7em;
      width: auto; } }

form [name=password],
form [name=confirmPassword] {
  margin-bottom: 1.1rem; }

@media screen and (min-width: 600px) {
  .usa-form {
    max-width: 32rem; } }

.usa-form-note {
  float: right;
  font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.5rem;
  margin: 0 0 1.5rem; }
  .usa-form-note + * {
    clear: both; }

fieldset {
  border: none;
  margin: 0;
  padding: 0; }

@media screen and (min-width: 600px) {
  .usa-form-large {
    max-width: 46rem; } }

input.usa-input-tiny {
  /* stylelint-disable-line selector-no-qualifying-type */ }
  @media screen and (min-width: 600px) {
    input.usa-input-tiny {
      max-width: 6rem; } }

input.usa-input-medium {
  /* stylelint-disable-line selector-no-qualifying-type */ }
  @media screen and (min-width: 600px) {
    input.usa-input-medium {
      max-width: 12rem; } }

@media screen and (min-width: 600px) {
  .usa-input-grid {
    padding-right: 5%; } }

@media screen and (min-width: 600px) {
  .usa-input-grid:last-of-type {
    padding-right: 0; } }

@media screen and (min-width: 600px) {
  .usa-input-grid-small {
    float: left;
    width: 35%; } }

.usa-input-grid-small input {
  margin-bottom: 3rem; }

.usa-input-grid-small select {
  margin-bottom: 3rem; }

@media screen and (min-width: 600px) {
  .usa-input-grid-medium {
    float: left;
    width: 65%; } }

.usa-input-grid-medium input {
  margin-bottom: 3rem; }

.usa-input-grid-medium select {
  margin-bottom: 3rem; }

@media screen and (min-width: 600px) {
  .usa-input-grid-large {
    float: left;
    width: 100%; } }

.usa-input-grid-large input {
  margin-bottom: 3rem; }

.usa-input-grid-large select {
  margin-bottom: 3rem; }

.usa-additional_text {
  font-weight: normal; }

.usa-checklist {
  list-style: none;
  margin-left: 0;
  padding-left: 0; }
  .usa-checklist li {
    display: inline-block;
    list-style: none;
    margin-bottom: 0;
    margin-top: 0;
    padding-left: 3em;
    text-indent: -2em; }
    .usa-checklist li::before {
      content: ' ';
      display: inline-block;
      height: .8em;
      margin-right: .2em;
      width: 1.8em; }

.usa-checklist-checked::before {
  background-image: url("../vendor/uswds/img/correct9.png");
  background-image: url("../vendor/uswds/img/correct9.svg");
  background-position: 100%;
  background-repeat: no-repeat;
  background-size: 100%; }

.usa-graphic_list .usa-graphic_list-row .usa-media_block {
  margin-bottom: 3rem; }
  @media screen and (min-width: 600px) {
    .usa-graphic_list .usa-graphic_list-row .usa-media_block {
      margin-bottom: 6rem; } }

@media screen and (min-width: 600px) {
  .usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block {
    margin-bottom: 0; } }

.usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block:last-child {
  margin-bottom: 0; }

.usa-graphic_list .usa-media_block-img {
  margin-right: 3rem; }

.usa-graphic_list .usa-media_block-body > :first-child {
  margin-top: 0; }

.usa-header {
  width: 100%;
  z-index: 7000; }
  @media screen and (min-width: 951px) {
    .usa-header {
      border-bottom: 1px solid #aeb0b5; } }
  .usa-header a {
    border-bottom: none; }
  .usa-header .usa-search {
    margin-bottom: 1.5rem; }
    @media screen and (min-width: 951px) {
      .usa-header .usa-search {
        float: right;
        margin-bottom: 0;
        max-width: 21.5rem; } }

.usa-logo {
  float: left;
  line-height: 4rem;
  margin-left: 1.5rem; }
  @media screen and (min-width: 951px) {
    .usa-logo {
      line-height: 7.5rem;
      margin-left: 0; } }
  .usa-logo a {
    color: #212121;
    text-decoration: none; }
  .usa-logo br {
    display: none; }
    @media screen and (min-width: 951px) {
      .usa-logo br {
        display: block; } }

.usa-logo-text {
  display: block;
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 700;
  margin: 0; }
  @media screen and (min-width: 951px) {
    .usa-logo-text {
      display: block;
      font-size: 2.4rem;
      line-height: 1.3; } }

.usa-menu-btn {
  /* stylelint-disable declaration-block-no-ignored-properties */
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  outline: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto;
  background-color: #0071bc;
  color: #ffffff;
  display: inline;
  float: right;
  font-size: 1.3rem;
  height: 4rem;
  line-height: 4rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  width: 5.8rem;
  /* stylelint-enable */ }
  .usa-menu-btn:hover {
    background-color: transparent; }
  @media screen and (min-width: 951px) {
    .usa-menu-btn {
      display: none; } }
  .usa-menu-btn:hover {
    color: #ffffff;
    background-color: #205493; }
  .usa-menu-btn:visited {
    color: #ffffff; }

.usa-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #000000;
  opacity: 0;
  transition: all 0.2s ease-in-out;
  visibility: hidden;
  z-index: 8000; }
  .usa-overlay.is-visible {
    opacity: 0.1;
    visibility: visible; }

@media screen and (min-width: 951px) {
  .usa-header-basic .usa-logo {
    bottom: 1.9rem;
    position: absolute; } }

@media screen and (min-width: 951px) {
  .usa-header-basic .usa-navbar {
    position: relative;
    width: 18%; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-header {
    border-bottom: none; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-logo {
    margin-top: 3rem;
    margin-bottom: 3rem; } }

@media screen and (min-width: 951px) {
  .usa-header-extended em {
    font-size: 3.2rem;
    line-height: 1; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-navbar {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-right: 3rem;
    padding-left: 3rem;
    display: block;
    height: auto;
    max-width: 1040px; }
    .usa-header-extended .usa-navbar::after {
      clear: both;
      content: "";
      display: block; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-nav {
    border-top: 1px solid #aeb0b5;
    float: none;
    padding: 0;
    width: 100%; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-nav-inner {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-right: 3rem;
    padding-left: 2rem;
    margin-top: -1px;
    max-width: 1040px;
    position: relative; }
    .usa-header-extended .usa-nav-inner::after {
      clear: both;
      content: "";
      display: block; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-nav-primary::after {
    clear: both;
    content: "";
    display: block; } }

.usa-header-extended .usa-nav-primary button[aria-expanded=false], .usa-header-extended .usa-nav-primary button[aria-expanded=true] {
  /* stylelint-disable-line selector-no-qualifying-type */ }
  @media screen and (min-width: 951px) {
    .usa-header-extended .usa-nav-primary button[aria-expanded=false], .usa-header-extended .usa-nav-primary button[aria-expanded=true] {
      /* stylelint-disable-line selector-no-qualifying-type */
      background-position: right 1.5rem top 50%; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-nav-link {
    padding-top: 1.9rem; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-nav-submenu .usa-grid-full {
    padding-left: 1.2rem; } }

@media screen and (min-width: 951px) {
  .usa-header-extended .usa-megamenu {
    padding-left: 3rem; } }

.usa-hero {
  padding-top: 3rem;
  padding-bottom: 3rem;
  background-image: url("../vendor/uswds/img/hero.png");
  background-position: center;
  background-size: cover; }
  .usa-hero .usa-button {
    color: #ffffff; }

.usa-section-dark .usa-hero-link {
  color: #02bfe7; }

.usa-hero-callout {
  background-color: #112e51;
  padding: 3rem; }
  @media screen and (min-width: 481px) {
    .usa-hero-callout {
      max-width: 30rem; } }
  .usa-hero-callout > *:first-child {
    margin-top: 0;
    margin-bottom: 3rem; }
  .usa-hero-callout .usa-button {
    font-size: 1.4rem;
    margin-top: 7rem;
    width: 100%; }

.usa-hero-callout-alt {
  color: #ffffff;
  display: block; }

.usa-layout-docs {
  display: flex;
  flex-direction: column; }
  @media screen and (min-width: 1201px) {
    .usa-layout-docs {
      display: inherit; } }
  .usa-layout-docs .usa-grid > :first-child:not(.usa-width-*) {
    margin-top: 0; }
  .usa-layout-docs .usa-grid > :last-child:not(.usa-width-*) {
    margin-bottom: 0; }

.usa-layout-docs-sidenav {
  order: 2; }

.usa-layout-docs-main_content {
  margin-bottom: 3rem;
  order: 1; }
  @media screen and (min-width: 1201px) {
    .usa-layout-docs-main_content {
      margin-bottom: 0; } }
  .usa-layout-docs-main_content > :first-child {
    margin-top: 0; }

.usa-media_block-img {
  float: left;
  margin-right: 1rem; }

.usa-media_block-body {
  overflow: hidden; }

.usa-navbar {
  border-bottom: 1px solid #aeb0b5;
  height: 4rem; }
  @media screen and (min-width: 951px) {
    .usa-navbar {
      border-bottom: none;
      display: inline-block;
      height: 10.3rem; } }

.usa-nav-link {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }
  @media screen and (min-width: 951px) {
    .usa-nav-link:hover span {
      border-bottom: 0.7rem solid #0071bc;
      padding-bottom: 1rem; } }

@media screen and (min-width: 951px) {
  .usa-nav-container {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-right: 3rem;
    padding-left: 3rem;
    max-width: 1040px; }
    .usa-nav-container::after {
      clear: both;
      content: "";
      display: block; } }

.usa-nav {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  background: #ffffff;
  border-left: 1px solid #aeb0b5;
  border-right: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 2rem;
  transform: translateX(26rem);
  width: 26rem;
  z-index: 9000; }
  @media screen and (min-width: 951px) {
    .usa-nav {
      padding-top: 5rem;
      padding-right: 0;
      padding-bottom: 0;
      border-left: none;
      display: block;
      float: right;
      overflow-y: visible;
      position: relative;
      transform: translateX(0);
      width: auto; } }
  .usa-nav.is-visible {
    transform: translateX(0);
    transition: all 0.3s ease-in-out; }
  .usa-nav nav {
    margin-top: 6rem;
    min-height: 100%; }
    @media screen and (min-width: 951px) {
      .usa-nav nav {
        margin-top: 0; } }
  .usa-nav .usa-current {
    border-left: 4px solid #0071bc;
    color: #0071bc;
    font-weight: 700;
    padding-left: 1.4rem; }
  .usa-nav .usa-button {
    width: 100%; }
  @media screen and (min-width: 951px) {
    .usa-nav .usa-search {
      margin-left: 1.5rem; } }

.usa-nav-primary {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0;
  order: 2; }
  .usa-nav-primary > li {
    margin-bottom: 0; }
  .usa-nav-primary > li {
    background-color: transparent;
    border-top: 1px solid #5b616b;
    font-size: 1.7rem; }
    .usa-nav-primary > li:first-child {
      border-top: none; }
  .usa-nav-primary a {
    border: none;
    color: #212121;
    display: block;
    font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    line-height: 1.3;
    padding: 0.85rem 1rem 0.85rem 1.8rem;
    text-decoration: none; }
    .usa-nav-primary a:hover {
      background-color: #f1f1f1;
      color: #0071bc;
      text-decoration: none; }
    .usa-nav-primary a:focus {
      position: relative;
      z-index: 1; }
    .usa-nav-primary a.usa-current {
      /* stylelint-disable-line selector-no-qualifying-type */
      border-left: 0.4rem solid #0071bc;
      color: #0071bc;
      font-weight: 700;
      padding-left: 1.4rem; }
  @media screen and (min-width: 951px) {
    .usa-nav-primary {
      display: inline; } }
  @media screen and (min-width: 951px) {
    .usa-nav-primary li {
      border-top: none; } }
  .usa-nav-primary > li {
    width: auto; }
    @media screen and (min-width: 951px) {
      .usa-nav-primary > li {
        display: inline-block; } }
    @media screen and (min-width: 951px) {
      .usa-nav-primary > li > a {
        padding: 1.3rem 1.5rem 1.7rem;
        color: #5b616b;
        font-size: 1.5rem;
        font-weight: 700;
        line-height: 1.2; } }
    @media screen and (min-width: 951px) {
      .usa-nav-primary > li > a:hover {
        background-color: transparent; } }
  .usa-nav-primary button {
    background-color: transparent;
    border: 0;
    border-radius: 0;
    font-weight: 400;
    margin: 0;
    outline: 0;
    padding: 0;
    text-align: left;
    -webkit-font-smoothing: auto;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-weight: 400;
    padding: 1.4rem 1.5rem 1rem 1.8rem; }
    .usa-nav-primary button:hover {
      background-color: transparent; }
    @media screen and (min-width: 951px) {
      .usa-nav-primary button {
        padding-right: 3rem;
        padding-bottom: 1.9rem;
        padding-left: 1.5rem;
        color: #5b616b;
        font-size: 1.5rem;
        font-weight: 700;
        width: initial; } }
    .usa-nav-primary button:focus, .usa-nav-primary button:active {
      box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf; }
    .usa-nav-primary button:hover {
      background-color: #f1f1f1;
      color: #0071bc; }
      @media screen and (min-width: 951px) {
        .usa-nav-primary button:hover {
          background-color: transparent; } }
    .usa-nav-primary button[aria-expanded=false] {
      /* stylelint-disable-line selector-no-qualifying-type */
      background-image: url("../vendor/uswds/img/plus-alt.png");
      background-image: url("../vendor/uswds/img/plus-alt.svg");
      background-repeat: no-repeat;
      background-position: right 0 center;
      background-size: 1rem; }
      @media screen and (min-width: 951px) {
        .usa-nav-primary button[aria-expanded=false] {
          background-image: url("../vendor/uswds/img/angle-arrow-down.png");
          background-image: url("../vendor/uswds/img/angle-arrow-down.svg");
          background-position: right 1.5rem top 44%; } }
    .usa-nav-primary button[aria-expanded=true] {
      /* stylelint-disable-line selector-no-qualifying-type */
      background-image: url("../vendor/uswds/img/minus-alt.png");
      background-image: url("../vendor/uswds/img/minus-alt.svg");
      background-repeat: no-repeat;
      background-position: right 0 center;
      background-size: 1rem; }
      @media screen and (min-width: 951px) {
        .usa-nav-primary button[aria-expanded=true] {
          background-color: #112e51;
          color: #ffffff;
          background-image: url("../vendor/uswds/img/angle-arrow-down-hover.png");
          background-image: url("../vendor/uswds/img/angle-arrow-down-hover.svg");
          background-position: right 1.5rem top 44%; }
          .usa-nav-primary button[aria-expanded=true]:hover {
            background-color: #112e51; }
          .usa-nav-primary button[aria-expanded=true] span {
            border-bottom: 0.7rem solid #0071bc;
            padding-bottom: 1rem; } }
  @media screen and (min-width: 951px) {
    .usa-nav-primary a.usa-current {
      border-left: 0;
      padding-left: 1.5rem; }
      .usa-nav-primary a.usa-current span {
        border-bottom: 0.7rem solid #0071bc;
        padding-bottom: 1rem; } }

@media screen and (min-width: 951px) {
  .usa-nav-secondary {
    position: absolute;
    right: 3rem;
    top: -5.7rem; } }

.usa-nav-secondary .usa-search {
  margin-top: 3rem;
  margin-bottom: 3rem; }
  @media screen and (min-width: 951px) {
    .usa-nav-secondary .usa-search {
      margin-top: -0.2rem;
      margin-bottom: 0;
      margin-left: 0;
      float: left; } }

@media screen and (min-width: 951px) {
  .usa-nav-secondary-links {
    float: left; } }

@media screen and (min-width: 951px) {
  .usa-nav-secondary-links li {
    display: inline;
    padding-left: 1rem; } }

@media screen and (min-width: 951px) {
  .usa-nav-secondary-links li:not(:last-child)::after {
    content: '|';
    padding-left: 1rem; } }

.usa-nav-secondary-links a,
.usa-nav-secondary-links .usa-header-search-button {
  color: #5b616b;
  display: inline-block;
  font-size: 1.5rem;
  text-decoration: none; }
  .usa-nav-secondary-links a:hover,
  .usa-nav-secondary-links .usa-header-search-button:hover {
    color: #0071bc; }

.usa-nav-secondary-links .usa-header-search-button {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  outline: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto;
  display: none; }
  .usa-nav-secondary-links .usa-header-search-button:hover {
    background-color: transparent; }
  @media screen and (min-width: 951px) {
    .usa-nav-secondary-links .usa-header-search-button {
      background-image: url("../vendor/uswds/img/search-alt.png");
      background-image: url("../vendor/uswds/img/search-alt.svg");
      background-repeat: no-repeat;
      background-position: left center;
      background-size: 2.2rem;
      display: inline-block;
      padding-left: 2.3rem; } }
  @media screen and (min-width: 951px) {
    .usa-nav-secondary-links .usa-header-search-button.is-hidden {
      display: none; } }

@media screen and (min-width: 951px) {
  .usa-nav-secondary-links a.usa-current {
    border-left: 0;
    padding-left: 0; } }

@media screen and (min-width: 951px) {
  .usa-nav-submenu {
    margin-top: 0;
    margin-bottom: 0;
    list-style-type: none;
    padding-left: 0;
    padding-top: 1.15rem;
    padding-bottom: 1.15rem;
    background-color: #112e51;
    min-width: 21.5rem;
    width: auto;
    position: absolute; }
    .usa-nav-submenu > li {
      margin-bottom: 0; } }

.usa-nav-submenu[aria-hidden=true] {
  display: none; }

@media screen and (min-width: 951px) {
  .usa-nav-submenu a {
    color: #ffffff;
    padding-left: 1.5rem; } }

@media screen and (min-width: 951px) {
  .usa-nav-submenu a:hover {
    background-color: #112e51;
    color: #ffffff;
    text-decoration: underline; } }

.usa-nav-submenu li {
  font-size: 1.5rem;
  margin-bottom: 0; }

.usa-nav-close {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  font-weight: 400;
  margin: 0;
  outline: 0;
  padding: 0;
  text-align: left;
  -webkit-font-smoothing: auto;
  margin: -1.2rem -1.5rem 2.4rem auto;
  float: right;
  height: 4.4rem;
  text-align: center;
  width: 4.4rem; }
  .usa-nav-close:hover {
    background-color: transparent; }
  @media screen and (min-width: 951px) {
    .usa-nav-close {
      display: none; } }
  .usa-nav-close img {
    width: 1.3rem; }

.usa-mobile_nav-active {
  overflow: hidden; }

@media screen and (min-width: 951px) {
  .usa-megamenu {
    padding-top: 3.15rem;
    padding-bottom: 3.15rem;
    left: -1rem;
    width: 100%; } }

@media screen and (min-width: 951px) {
  .usa-megamenu::before {
    background-color: #112e51;
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    width: 1000%;
    right: 100%; } }

@media screen and (min-width: 951px) {
  .usa-megamenu::after {
    background-color: #112e51;
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    width: 1000%;
    left: 100%; } }

@media screen and (min-width: 951px) {
  .usa-header-basic-megamenu .usa-nav {
    padding-left: 0;
    padding-top: 0;
    width: 100%; } }

.usa-header-basic-megamenu .usa-nav-inner {
  display: flex;
  flex-direction: column; }
  @media screen and (min-width: 951px) {
    .usa-header-basic-megamenu .usa-nav-inner {
      display: block;
      float: right;
      margin-top: -4.8rem; } }

@media screen and (min-width: 951px) {
  .usa-header-basic-megamenu .usa-nav-submenu .usa-grid-full {
    margin-left: -1.8rem; } }

@media screen and (min-width: 951px) {
  .usa-megamenu-col {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 23.23176%; }
    .usa-megamenu-col:last-child {
      margin-right: 0; }
    .usa-megamenu-col:nth-child(2n) {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%; }
      .usa-megamenu-col:nth-child(2n):last-child {
        margin-right: 0; }
    .usa-megamenu-col:nth-child(4n) {
      margin-right: 0; } }

.usa-megamenu-col > ul {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0; }
  .usa-megamenu-col > ul > li {
    margin-bottom: 0; }

.usa-search {
  max-width: none;
  position: relative; }
  .usa-search::after {
    clear: both;
    content: "";
    display: block; }
  .usa-search [type=search],
  .usa-search .usa-search-input {
    padding-top: 0;
    padding-bottom: 0;
    -webkit-appearance: none;
    border-bottom-right-radius: 0;
    border-right: none;
    border-top-right-radius: 0;
    box-sizing: border-box;
    float: left;
    font-size: 1.4rem;
    height: 3.3rem;
    margin: 0;
    width: calc(100% - 4.5rem); }
    @media screen and (min-width: 481px) {
      .usa-search [type=search],
      .usa-search .usa-search-input {
        width: calc(100% - 8.5rem); } }
  .usa-search [type=submit],
  .usa-search .usa-search-submit {
    background-image: url("../vendor/uswds/img/search.png");
    background-image: url("../vendor/uswds/img/search.svg");
    background-position: 50%;
    background-repeat: no-repeat;
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
    height: 3.3rem;
    margin: 0;
    padding: 0;
    width: 4.5rem; }
    @media screen and (min-width: 481px) {
      .usa-search [type=submit],
      .usa-search .usa-search-submit {
        background-image: none;
        width: 8.5rem; } }
  .usa-search .usa-search-submit-text {
    display: none; }
    @media screen and (min-width: 481px) {
      .usa-search .usa-search-submit-text {
        display: block; } }
  @media screen and (min-width: 481px) {
    .usa-search.usa-search-big [type=search],
    .usa-search.usa-search-big .usa-search-input {
      font-size: 1.7rem;
      height: 4.4rem;
      width: calc(100% - 11.6rem); }
    .usa-search.usa-search-big [type=submit],
    .usa-search.usa-search-big .usa-search-submit {
      font-size: 2rem;
      height: 4.4rem;
      width: 11.6rem; } }
  @media screen and (min-width: 481px) {
    .usa-search.usa-search-small [type=search],
    .usa-search.usa-search-small .usa-search-input {
      width: calc(100% - 4.5rem); }
    .usa-search.usa-search-small [type=submit],
    .usa-search.usa-search-small .usa-search-submit {
      background-image: url("../vendor/uswds/img/search.png");
      background-image: url("../vendor/uswds/img/search.svg");
      background-position: 50%;
      background-repeat: no-repeat;
      width: 4.5rem; } }
  @media screen and (max-width: 950px) {
    .usa-search.usa-search-small.usa-sr-only {
      left: auto;
      position: relative;
    }
  }
.usa-section {
  padding-top: 3rem;
  padding-bottom: 3rem; }
  @media screen and (min-width: 600px) {
    .usa-section {
      padding-top: 6rem;
      padding-bottom: 6rem; } }

.usa-section-light {
  background-color: #f1f1f1; }

.usa-section-dark {
  background-color: #112e51;
  color: #ffffff; }
  .usa-section-dark h1,
  .usa-section-dark h2,
  .usa-section-dark h3,
  .usa-section-dark h4,
  .usa-section-dark h5,
  .usa-section-dark h6 {
    color: #02bfe7; }
  .usa-section-dark p {
    color: #ffffff; }
  .usa-section-dark a {
    color: #d6d7d9; }
    .usa-section-dark a:hover {
      color: #ffffff; }

.usa-sidenav-list {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0; }
  .usa-sidenav-list > li {
    margin-bottom: 0; }
  .usa-sidenav-list > li {
    background-color: transparent;
    border-top: 1px solid #5b616b;
    font-size: 1.7rem; }
    .usa-sidenav-list > li:first-child {
      border-top: none; }
  .usa-sidenav-list a {
    border: none;
    color: #212121;
    display: block;
    font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    line-height: 1.3;
    padding: 0.85rem 1rem 0.85rem 1.8rem;
    text-decoration: none; }
    .usa-sidenav-list a:hover {
      background-color: #f1f1f1;
      color: #0071bc;
      text-decoration: none; }
    .usa-sidenav-list a:focus {
      position: relative;
      z-index: 1; }
    .usa-sidenav-list a.usa-current {
      /* stylelint-disable-line selector-no-qualifying-type */
      border-left: 0.4rem solid #0071bc;
      color: #0071bc;
      font-weight: 700;
      padding-left: 1.4rem; }

.usa-sidenav-sub_list {
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
  padding-left: 0;
  margin: 0;
  width: 100%; }
  .usa-sidenav-sub_list > li {
    margin-bottom: 0; }
  .usa-sidenav-sub_list li {
    border: none;
    font-size: 1.5rem; }
  .usa-sidenav-sub_list a {
    padding-left: 2.8rem;
    line-height: 1.3; }
    .usa-sidenav-sub_list a:hover, .usa-sidenav-sub_list a.usa-current {
      /* stylelint-disable-line selector-no-qualifying-type */
      border: none;
      padding-left: 2.8rem; }
  .usa-sidenav-sub_list .usa-sidenav-sub_list a {
    padding-left: 3.8rem; }
    .usa-sidenav-sub_list .usa-sidenav-sub_list a:hover {
      padding-left: 3.8rem; }

.usa-skipnav {
  background: transparent;
  color: #212121;
  left: 0;
  padding: 1rem 1.5rem;
  position: absolute;
  top: -4.2rem;
  transition: all 0.2s ease-in-out;
  z-index: 100; }
  .usa-skipnav:focus {
    background: #ffffff;
    left: 0;
    outline: 0;
    position: absolute;
    top: 0;
    transition: all 0.2s ease-in-out; }

/***************************************
  Begin site customizations.
****************************************/
.usa-footer-return-to-top {
  padding-left: 0; }

.site-header-navbar {
  border-bottom: none; }
  @media screen and (min-width: 951px) {
    .site-header-navbar {
      height: 8rem;
      width: 100%;
      display: block; } }

@-moz-document url-prefix() {
  @media screen and (min-width: 951px) {
    .site-header-navbar {
      padding-top: 1px; } } }

.site-header {
  background-color: #003965; }
  @media screen and (min-width: 951px) {
    .site-header {
      border-bottom: none; } }
  .site-header .site-logo {
    margin-left: 1.5rem; }
    @media screen and (min-width: 951px) {
      .site-header .site-logo {
        margin-left: 3rem; } }
  @media screen and (max-width: 349px) {
    .site-header #logo-text {
      display: none; }
    .site-header #logo-text-small {
      display: none; }
    .site-header #logo-text-smallest {
      display: inherit; } }
  @media screen and (min-width: 350px) and (max-width: 481px) {
    .site-header #logo-text {
      display: none; }
    .site-header #logo-text-small {
      display: inherit; }
    .site-header #logo-text-smallest {
      display: none; } }
  @media screen and (min-width: 482px) {
    .site-header #logo-text {
      display: inherit; }
    .site-header #logo-text-small {
      display: none; }
    .site-header #logo-text-smallest {
      display: none; } }
  .site-header .usa-banner {
    padding-bottom: 0; }
  @media screen and (max-width: 480px) {
    .site-header .usa-banner-header {
      padding-top: 0;
      padding-bottom: 0; }
      .site-header .usa-banner-header p {
        padding-top: 5px; } }
  @media screen and (min-width: 481px) {
    .site-header .usa-banner-header p {
      margin-top: 1px; } }
  .site-header .usa-banner-inner {
    max-width: 100%;
    padding-top: 3px;
    padding-bottom: 3px; }
  .site-header .usa-banner-content {
    margin-left: 0; }
  .site-header .usa-button-list {
    float: right;
    display: none;
    margin-top: -5px; }
    @media screen and (min-width: 951px) {
      .site-header .usa-button-list {
        line-height: 8rem;
        margin-top: 0;
        display: block;
        padding-right: 3rem; } }
    .site-header .usa-button-list li {
      display: inline;
      font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }
      .site-header .usa-button-list li:last-child .usa-button {
        margin-right: 0; }

@media screen and (min-width: 951px) {
  .site-logo {
    margin-top: 0; } }

.site-logo a {
  color: #ffffff; }

.site-logo em {
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  font-size: 1.4rem;
  line-height: 4rem; }
  @media screen and (min-width: 951px) {
    .site-logo em {
      font-size: 2.6rem !important; } }
  @media screen and (min-width: 951px) {
    .site-logo em {
      font-size: 3rem;
      line-height: 8rem; } }

.sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 0; }
  .sticky:before, .sticky:after {
    content: '';
    display: table; }

.sidenav {
  display: none;
  clear: both; }
  @media screen and (min-width: 951px) {
    .sidenav {
      display: block;
      float: left;
      height: 100vh;
      margin-bottom: 525px;
      margin-top: 0px;
      padding-right: 1rem;
      padding-left: 3rem;
      overflow: auto;
      top: 0rem;
      width: 250px; } }
  .lt-ie9 .sidenav {
    width: 25%; }
  .sidenav .usa-navigation-submenu[aria-hidden="false"] {
    display: block; }

.main-content {
  font-family: "Merriweather", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  position: absolute;
  right: 0;
  bottom: 0;
  display: inline-block;
  position: relative;
  width: 100%;
  top: 3rem;
  padding-top: 0;
  margin-top: 0;
  padding-right: 3rem;
  padding-left: 3rem;
  font-size: 1.5rem; }
  .main-content p, .main-content li {
    line-height: 1.7; }
  .main-content p, .main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6, .main-content ul, .main-content ol {
    max-width: 95ch !important; }
  @media screen and (min-width: 951px) {
    .main-content {
      width: calc(100% - 250px);
      top: 0; } }
  .lt-ie9 .main-content {
    width: 75%; }
  @media screen and (max-width: 481px) {
    .main-content h1 {
      font-size: 3rem; }
    .main-content h2 {
      font-size: 2.2rem; }
    .main-content h3 {
      font-size: 1.7rem; } }
  .main-content h1 {
    display: inline-block;
    margin-top: 0.2em;
    margin-bottom: 0.5em;
    padding-bottom: 0px; }
  .main-content h2 {
    margin-top: 12px;
    margin-bottom: 15px;
    color: #205493; }
  .main-content h4 {
    margin-top: 40px;
    margin-bottom: 5px; }

.sidenav-mobile {
  clear: both; }
  .sidenav-mobile .usa-button.usa-button-outline-inverse {
    box-shadow: inset 0 0 0 2px #0071bc;
    color: #0071bc; }
    .sidenav-mobile .usa-button.usa-button-outline-inverse:hover {
      box-shadow: inset 0 0 0 2px #205493;
      color: #205493; }
  @media screen and (min-width: 951px) {
    .sidenav-mobile {
      display: none; } }
  .sidenav-mobile .usa-sidenav-sub_list[aria-hidden=true] {
    display: none; }
  .sidenav-mobile li > button {
    background-color: transparent;
    border: 0;
    border-radius: 0;
    font-weight: 400;
    margin: 0;
    outline: 0;
    padding: 0;
    text-align: left;
    -webkit-font-smoothing: auto;
    font-weight: 400;
    padding: 1.4rem 1.5rem 1rem 1.8rem; }
    .sidenav-mobile li > button:hover {
      background-color: transparent; }
    .sidenav-mobile li > button:hover {
      background-color: #f1f1f1;
      color: #0071bc; }
    .sidenav-mobile li > button[aria-expanded=false] {
      background-image: url("../vendor/uswds/img/plus-alt.png");
      background-image: url("../vendor/uswds/img/plus-alt.svg");
      background-repeat: no-repeat;
      background-position: right 0 center;
      background-size: 1rem; }
    .sidenav-mobile li > button[aria-expanded=true] {
      background-image: url("../vendor/uswds/img/minus-alt.png");
      background-image: url("../vendor/uswds/img/minus-alt.svg");
      background-repeat: no-repeat;
      background-position: right 0 center;
      background-size: 1rem; }
  .sidenav-mobile .usa-button-list {
    margin-top: 4rem; }

pre {
  max-width: 80%;
  font-size: 0.875em;
  overflow-y: scroll;
  background-color: #f1f2f2;
  padding: 10px; }

p > code, li > code {
  padding: 2px 4px;
  background-color: #eaeaff;
  border: 1px solid #d5d5d5;
  font-size: 10pt;
  font-family: monospace; }

a.usa-sidenav-edit {
  color: #0072ce;
  text-decoration: underline; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvdXN3ZHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL19ib3VyYm9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZnVuY3Rpb25zL190aW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZnVuY3Rpb25zL191bnBhY2suc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2NhbGMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2NvbHVtbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2ZpbHRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9faHlwaGVucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9jc3MzL190cmFuc2Zvcm0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL19oaWRlLXRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9hZGRvbnMvX3NpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL190cmlhbmdsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvYWRkb25zL193b3JkLXdyYXAuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL19uZWF0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9fbmVhdC1oZWxwZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9taXhpbnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9mdW5jdGlvbnMvX3ByaXZhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2Z1bmN0aW9ucy9fbmV3LWJyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL3NldHRpbmdzL19ncmlkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9zZXR0aW5ncy9fdmlzdWFsLWdyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL3NldHRpbmdzL19kaXNhYmxlLXdhcm5pbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9ncmlkL19wcml2YXRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9ncmlkL19ib3gtc2l6aW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9ncmlkL19vbWVnYS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fb3V0ZXItY29udGFpbmVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9ncmlkL19zcGFuLWNvbHVtbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fc2hpZnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX3BhZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9saWIvZ3JpZC9fZmlsbC1wYXJlbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX21lZGlhLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9ncmlkL190by1kZXByZWNhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX3Zpc3VhbC1ncmlkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9ncmlkL19kaXNwbGF5LWNvbnRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvbGliL2dyaWQvX2RpcmVjdGlvbi1jb250ZXh0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2xpYi9fbm9ybWFsaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvcmUvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb3JlL19mb250cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb3JlL19iYXNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvcmUvX2dyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29yZS9fdXRpbGl0aWVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2VsZW1lbnRzL19idXR0b25zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2VsZW1lbnRzL19lbWJlZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9lbGVtZW50cy9fZmlndXJlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2VsZW1lbnRzL19pbnB1dHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvZWxlbWVudHMvX2xhYmVscy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9lbGVtZW50cy9fbGlzdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9lbGVtZW50cy9fdGFibGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvZWxlbWVudHMvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19hbGVydHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9fYmFubmVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19ncmFwaGljLWxpc3Quc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9faGVhZGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvbXBvbmVudHMvX2hlcm8uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9fbGF5b3V0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvbXBvbmVudHMvX21lZGlhLWJsb2NrLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvbXBvbmVudHMvX25hdmlnYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9fc2VhcmNoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdXN3ZHMvZGlzdC9zY3NzL2NvbXBvbmVudHMvX3NlY3Rpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91c3dkcy9kaXN0L3Njc3MvY29tcG9uZW50cy9fc2lkZW5hdi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Vzd2RzL2Rpc3Qvc2Nzcy9jb21wb25lbnRzL19za2lwbmF2LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVVNXRFMgU0FTUyB2YXJpYWJsZSBvdmVycmlkZXMgZ28gaGVyZSwgYmVmb3JlIHdlIGltcG9ydCBVU1dEUyBpdHNlbGYuXG5cbiRmb250LXBhdGg6ICcuLi92ZW5kb3IvdXN3ZHMvZm9udHMnO1xuJGltYWdlLXBhdGg6ICcuLi92ZW5kb3IvdXN3ZHMvaW1nJztcblxuQGltcG9ydCAndXN3ZHMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gIEJlZ2luIHNpdGUgY3VzdG9taXphdGlvbnMuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udXNhLWZvb3Rlci1yZXR1cm4tdG8tdG9wIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uc2l0ZS1oZWFkZXItbmF2YmFyIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgaGVpZ2h0OiA4cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gRmlyZWZveCBmaXggc28gdGhhdCBuYXZiYXIgYnV0dG9ucyB0byBhbGlnbiByaWdodFxuICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxcHg7XG4gICAgfVxuICB9XG59XG5cbi5zaXRlLWhlYWRlciB7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMzk2NTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuXG4gIC5zaXRlLWxvZ28ge1xuICAgIG1hcmdpbi1sZWZ0OiAkc2l0ZS1tYXJnaW5zLW1vYmlsZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkc2l0ZS1tYXJnaW5zO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM0OXB4KSB7XG4gICAgICAjbG9nby10ZXh0IHtkaXNwbGF5OiBub25lO31cbiAgICAgICNsb2dvLXRleHQtc21hbGwge2Rpc3BsYXk6IG5vbmU7fVxuICAgICAgI2xvZ28tdGV4dC1zbWFsbGVzdCB7ZGlzcGxheTogaW5oZXJpdDt9XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNTBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MXB4KSB7XG4gICAgICAjbG9nby10ZXh0IHtkaXNwbGF5OiBub25lO31cbiAgICAgICNsb2dvLXRleHQtc21hbGwge2Rpc3BsYXk6IGluaGVyaXQ7fVxuICAgICAgI2xvZ28tdGV4dC1zbWFsbGVzdCB7ZGlzcGxheTogbm9uZTt9XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODJweCkge1xuICAgICAgI2xvZ28tdGV4dCB7ZGlzcGxheTogaW5oZXJpdDt9XG4gICAgICAjbG9nby10ZXh0LXNtYWxsIHtkaXNwbGF5OiBub25lO31cbiAgICAgICNsb2dvLXRleHQtc21hbGxlc3Qge2Rpc3BsYXk6IG5vbmU7fVxuICB9XG5cbiAgLnVzYS1iYW5uZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAudXNhLWJhbm5lci1oZWFkZXIge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAudXNhLWJhbm5lci1oZWFkZXIge1xuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudXNhLWJhbm5lci1pbm5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgfVxuXG4gIC51c2EtYmFubmVyLWNvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgLnVzYS1idXR0b24tbGlzdCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luLXRvcDogLTVweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA4cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZy1yaWdodDogJHNpdGUtbWFyZ2lucztcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtc2FucztcblxuICAgICAgJjpsYXN0LWNoaWxkIC51c2EtYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc2l0ZS1sb2dvIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICB9XG5cbiAgZW0ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zZXJpZjtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogNHJlbTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk1MXB4KSB7XG4gICAgICBmb250LXNpemU6IDIuNnJlbSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiA4cmVtO1xuICAgIH1cbiAgfVxufVxuXG4vLyBIZWFkZXIgLS0tLS0tLS0tLS0tLS0gLy9cbi5zdGlja3kge1xuICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcblxuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cblxuXG4vLyBTaWRlYmFyIE5hdiAtLS0tLS0tLS0gLy9cblxuLnNpZGVuYXYge1xuICBkaXNwbGF5OiBub25lO1xuICBjbGVhcjogYm90aDtcblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBtYXJnaW4tYm90dG9tOiA1MjVweDtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgdG9wOiAwcmVtO1xuICAgIHdpZHRoOiAkd2lkdGgtbmF2LXNpZGViYXI7XG4gIH1cblxuICAubHQtaWU5ICYge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cblxuICAudXNhLW5hdmlnYXRpb24tc3VibWVudSB7XG4gICAgJlthcmlhLWhpZGRlbj1cImZhbHNlXCJdIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNYWluIENvbnRlbnQgLS0tLS0tLS0tIC8vXG5cbi5tYWluLWNvbnRlbnQge1xuICBmb250LWZhbWlseTogJGZvbnQtc2VyaWY7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vIHN0YXJ0aW5nOiBub3Qgc2Nyb2xsZWRcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiAzcmVtOyAvLyBoZWlnaHQgb2YgZGlzY2xhaW1lciArIG5hdmJhciBvbiBtb2JpbGVcblxuICBwYWRkaW5nLXRvcDogMDtcbiAgbWFyZ2luLXRvcDogMDtcblxuICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuICBwYWRkaW5nLWxlZnQ6IDNyZW07XG5cbiAgZm9udC1zaXplOiAxLjVyZW07XG5cbiAgcCwgbGkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gIH1cblxuICBwLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCB1bCwgb2wge1xuICAgIG1heC13aWR0aDogOTVjaCAhaW1wb3J0YW50O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyR3aWR0aC1uYXYtc2lkZWJhcn0pO1xuICAgIHRvcDogMDtcbiAgfVxuXG4gIC5sdC1pZTkgJiB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MXB4KSB7XG4gICAgaDEge2ZvbnQtc2l6ZTogM3JlbTt9XG4gICAgaDIge2ZvbnQtc2l6ZTogMi4ycmVtO31cbiAgICBoMyB7Zm9udC1zaXplOiAxLjdyZW07fVxuICB9XG5cbiAgaDEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwLjJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICB9XG5cbiAgaDIge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VyO1xuICB9XG5cbiAgaDQge1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG59XG5cbkBtaXhpbiBvdXRsaW5lLWludmVyc2UtYnV0dG9uIHtcbiAgLy8gVE9ETzogRml4IHRoaXMgd2l0aCBidXR0b24gbWl4aW5cbiAgLnVzYS1idXR0b24udXNhLWJ1dHRvbi1vdXRsaW5lLWludmVyc2Uge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAkY29sb3ItcHJpbWFyeTtcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VyO1xuICAgIH1cbiAgfVxufVxuXG4uc2lkZW5hdi1tb2JpbGUge1xuICBjbGVhcjogYm90aDtcblxuICBAaW5jbHVkZSBvdXRsaW5lLWludmVyc2UtYnV0dG9uO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnVzYS1zaWRlbmF2LXN1Yl9saXN0IHtcbiAgICAmW2FyaWEtaGlkZGVuPXRydWVdIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgbGkgPiBidXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi11bnN0eWxlZDtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuICAgIHBhZGRpbmc6IDEuNHJlbSAxLjVyZW0gMXJlbSAxLjhyZW07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgIH1cblxuICAgICZbYXJpYS1leHBhbmRlZD1mYWxzZV0ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9wbHVzLWFsdC5wbmcnKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vcGx1cy1hbHQuc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMCBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW07XG4gICAgfVxuXG4gICAgJlthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vbWludXMtYWx0LnBuZycpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9taW51cy1hbHQuc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMCBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgLnVzYS1idXR0b24tbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogNHJlbTtcbiAgfVxufVxuXG5wcmUge1xuICBtYXgtd2lkdGg6IDgwJTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYyZjI7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbnAgPiBjb2RlLCBsaSA+IGNvZGUge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlYWZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICBmb250LXNpemU6IDEwcHQ7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG59XG5cbmEudXNhLXNpZGVuYXYtZWRpdCB7XG4gICAgY29sb3I6ICMwMDcyY2U7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4iLCIvKiEgdXN3ZHMgQHZlcnNpb24gKi9cblxuLy8gVmVuZG9yIC0tLS0tLS0tLS0tLS0tIC8vXG5AaW1wb3J0ICdsaWIvYm91cmJvbic7XG5AaW1wb3J0ICdsaWIvbmVhdCc7XG5AaW1wb3J0ICdsaWIvbm9ybWFsaXplJztcblxuLy8gQ29yZSAtLS0tLS0tLS0tLS0tLSAvL1xuQGltcG9ydCAnY29yZS92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29yZS9mb250cyc7XG5AaW1wb3J0ICdjb3JlL2Jhc2UnO1xuQGltcG9ydCAnY29yZS9ncmlkJztcbkBpbXBvcnQgJ2NvcmUvdXRpbGl0aWVzJztcblxuLy8gRWxlbWVudHMgLS0tLS0tLS0tLS0tLS0gLy9cbi8vIFN0eWxlcyBiYXNpYyBIVE1MIGVsZW1lbnRzXG5AaW1wb3J0ICdlbGVtZW50cy9idXR0b25zJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2VtYmVkJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2ZpZ3VyZSc7XG5AaW1wb3J0ICdlbGVtZW50cy9pbnB1dHMnO1xuQGltcG9ydCAnZWxlbWVudHMvbGFiZWxzJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2xpc3QnO1xuQGltcG9ydCAnZWxlbWVudHMvdGFibGUnO1xuQGltcG9ydCAnZWxlbWVudHMvdHlwb2dyYXBoeSc7XG5cbi8vIENvbXBvbmVudHMgLS0tLS0tLS0tLS0tLS0gLy9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9ucyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FsZXJ0cyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Jhbm5lcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zvb3Rlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZ3JhcGhpYy1saXN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVybyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xheW91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLWJsb2NrJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbmF2aWdhdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlYXJjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlY3Rpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9zaWRlbmF2JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2tpcG5hdic7XG4iLCIvLyBCb3VyYm9uIDQuMi43XG4vLyBodHRwOi8vYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XG5cbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5cbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xuICAkbGlzdDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xuLy8vXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcblxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcblxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwcm9wO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XG4gIH1cbn1cbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xuICB9XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gZmxleCB8IGlubGluZS1mbGV4XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgIC8vIDIwMDlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAvLyAyMDEyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgZGlzcGxheTogZmxleDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCJAbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICR3ZWlnaHQ6IG5vcm1hbCxcbiAgJHN0eWxlOiBub3JtYWwsXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XG5cbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcblxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICAgICAkZm9udC1mYW1pbHksXG4gICAgICAkZmlsZS1wYXRoLFxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxuICAgICAgJGZpbGUtZm9ybWF0cyxcbiAgICAgICRmb250LXVybC1wcmVmaXhcbiAgICApO1xuICB9XG59XG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXG5cbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuLy8vXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXG5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH0gQGVsc2Uge1xuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xuICB9XG59XG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG5cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgQHdhcm4gXCJUaGUgaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcblxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcblxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XG59XG4iLCIvLyBOZWF0IDEuOC4wXG4vLyBodHRwOi8vbmVhdC5ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMi0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgXCJuZWF0LWhlbHBlcnNcIjtcblxuLy8gR3JpZFxuQGltcG9ydCBcImdyaWQvcHJpdmF0ZVwiO1xuQGltcG9ydCBcImdyaWQvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcImdyaWQvb21lZ2FcIjtcbkBpbXBvcnQgXCJncmlkL291dGVyLWNvbnRhaW5lclwiO1xuQGltcG9ydCBcImdyaWQvc3Bhbi1jb2x1bW5zXCI7XG5AaW1wb3J0IFwiZ3JpZC9yb3dcIjtcbkBpbXBvcnQgXCJncmlkL3NoaWZ0XCI7XG5AaW1wb3J0IFwiZ3JpZC9wYWRcIjtcbkBpbXBvcnQgXCJncmlkL2ZpbGwtcGFyZW50XCI7XG5AaW1wb3J0IFwiZ3JpZC9tZWRpYVwiO1xuQGltcG9ydCBcImdyaWQvdG8tZGVwcmVjYXRlXCI7XG5AaW1wb3J0IFwiZ3JpZC92aXN1YWwtZ3JpZFwiO1xuQGltcG9ydCBcImdyaWQvZGlzcGxheS1jb250ZXh0XCI7XG5AaW1wb3J0IFwiZ3JpZC9kaXJlY3Rpb24tY29udGV4dFwiO1xuIiwiLy8gTWl4aW5zXG5AaW1wb3J0IFwibWl4aW5zL2NsZWFyZml4XCI7XG5cbi8vIEZ1bmN0aW9uc1xuQGltcG9ydCBcImZ1bmN0aW9ucy9wcml2YXRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL25ldy1icmVha3BvaW50XCI7XG5cbi8vIFNldHRpbmdzXG5AaW1wb3J0IFwic2V0dGluZ3MvZ3JpZFwiO1xuQGltcG9ydCBcInNldHRpbmdzL3Zpc3VhbC1ncmlkXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvZGlzYWJsZS13YXJuaW5nc1wiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9nb28uZ2wveVA1aGlaXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzXG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4iLCIvLyBOb3QgZnVuY3Rpb24gZm9yIExpYnNhc3MgY29tcGF0aWJpbGl0eVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvbGlic2Fzcy9pc3N1ZXMvMzY4XG5AZnVuY3Rpb24gaXMtbm90KCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSwgZmFsc2UsIHRydWUpO1xufVxuXG4vLyBDaGVja3MgaWYgYSBudW1iZXIgaXMgZXZlblxuQGZ1bmN0aW9uIGlzLWV2ZW4oJGludCkge1xuICBAcmV0dXJuICRpbnQgJSAyID09IDA7XG59XG5cbi8vIENoZWNrcyBpZiBhbiBlbGVtZW50IGJlbG9uZ3MgdG8gYSBsaXN0IG9yIG5vdFxuQGZ1bmN0aW9uIGJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSk7XG59XG5cbkBmdW5jdGlvbiBub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSB7XG4gIEByZXR1cm4gaXMtbm90KGluZGV4KCRsaXN0LCAkdGVzdGVkLWl0ZW0pKTtcbn1cblxuLy8gQ29udGFpbnMgZGlzcGxheSB2YWx1ZVxuQGZ1bmN0aW9uIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSB7XG4gIEByZXR1cm4gYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZS1ibG9jaywgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oaW5saW5lLCAkcXVlcnkpO1xufVxuXG4vLyBQYXJzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHNwYW4tY29sdW1ucygpXG5AZnVuY3Rpb24gY29udGFpbmVyLXNwYW4oJHNwYW46ICRzcGFuKSB7XG4gIEBpZiBsZW5ndGgoJHNwYW4pID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNwYW4pID09IDIge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJGdyaWQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zaGlmdCgkc2hpZnQ6ICRzaGlmdCkge1xuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQgIWdsb2JhbDtcblxuICBAaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDIpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbi8vIEdlbmVyYXRlcyBhIHN0cmlwZWQgYmFja2dyb3VuZFxuQGZ1bmN0aW9uIGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMsICRjb2xvcjogJHZpc3VhbC1ncmlkLWNvbG9yKSB7XG4gICR0cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbiAgJGNvbHVtbi13aWR0aDogZmxleC1ncmlkKDEsICRncmlkLWNvbHVtbnMpO1xuICAkZ3V0dGVyLXdpZHRoOiBmbGV4LWd1dHRlcigkZ3JpZC1jb2x1bW5zKTtcbiAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4td2lkdGg7XG5cbiAgJHZhbHVlczogKCR0cmFuc3BhcmVudCAwLCAkY29sb3IgMCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdG8gJGdyaWQtY29sdW1ucyoyIHtcbiAgICBAaWYgaXMtZXZlbigkaSkge1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR0cmFuc3BhcmVudCAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICRjb2xvciAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGNvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkY29sb3IgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdHJhbnNwYXJlbnQgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLW9mZnNldCArICRndXR0ZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWVzO1xufVxuXG4vLyBMYXlvdXQgZGlyZWN0aW9uXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbigkbGF5b3V0LCAkZGVmYXVsdCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIgb3IgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIlJUTFwiIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCk7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkZGVmYXVsdCk7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIge1xuICAgICRkaXJlY3Rpb246IHJpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBsZWZ0O1xuICB9XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xuICB9XG5cbiAgQHJldHVybiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmV0dXJucyBhIG1lZGlhIGNvbnRleHQgKG1lZGlhIHF1ZXJ5IC8gZ3JpZCBjb250ZXh0KSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSB2YXJpYWJsZSBhbmQgcGFzc2VkIHRvIGBtZWRpYSgpYCBhcyBhIHNpbmdsZS1rZXl3b3JkIGFyZ3VtZW50LiBNZWRpYSBjb250ZXh0cyBkZWZpbmVkIHVzaW5nIGBuZXctYnJlYWtwb2ludGAgYXJlIHVzZWQgYnkgdGhlIHZpc3VhbCBncmlkLCBhcyBsb25nIGFzIHRoZXkgYXJlIGRlZmluZWQgYmVmb3JlIGltcG9ydGluZyBOZWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLiBFYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS4gRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJG1vYmlsZTogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDQ4MHB4IDQpO1xuLy8vXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbi8vLyAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDcuNDIyOTclO1xuLy8vICAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICB9XG4vLy8gICAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICAgfVxuLy8vICAgfVxuXG5AZnVuY3Rpb24gbmV3LWJyZWFrcG9pbnQoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSkgJHRvdGFsLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkge1xuICAgICRxdWVyeTogYXBwZW5kKCRxdWVyeSwgJHRvdGFsLWNvbHVtbnMpO1xuICB9XG5cbiAgQGlmIGlzLW5vdChiZWxvbmdzLXRvKCRxdWVyeSwgJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzKSkge1xuICAgICR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogYXBwZW5kKCR2aXN1YWwtZ3JpZC1icmVha3BvaW50cywgJHF1ZXJ5LCBjb21tYSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBjb2x1bW4uIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGd1dHRlcmAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG5cbiRjb2x1bW46IDQuMjM1OGVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBndXR0ZXIuIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGNvbHVtbmAuIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcblxuJGd1dHRlcjogMS42MThlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLiBJdHMgdmFsdWUgY2FuIGJlIG92ZXJyaWRkZW4gaW5zaWRlIGEgbWVkaWEgcXVlcnkgdXNpbmcgdGhlIGBtZWRpYSgpYCBtaXhpbi4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0bGVzcylcblxuJGdyaWQtY29sdW1uczogMTIgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBtYXgtd2lkdGggcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgdGhhdCBpbmNsdWRlcyBgb3V0ZXItY29udGFpbmVyKClgLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG4vLy9cbiRtYXgtd2lkdGg6IDEyMDBweCAhZGVmYXVsdDtcblxuLy8vIFdoZW4gc2V0IHRvIHRydWUsIGl0IHNldHMgdGhlIGJveC1zaXppbmcgcHJvcGVydHkgb2YgYWxsIGVsZW1lbnRzIHRvIGBib3JkZXItYm94YC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGh0bWwge1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4vLy9cbi8vLyAgICosICo6OmFmdGVyLCAqOjpiZWZvcmUge1xuLy8vICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuLy8vICAgfVxuXG4kYm9yZGVyLWJveC1zaXppbmc6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBkZWZhdWx0IFttZWRpYSBmZWF0dXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWEpIHRoYXQgYG1lZGlhKClgIGFuZCBgbmV3LWJyZWFrcG9pbnQoKWAgcmV2ZXJ0IHRvIHdoZW4gb25seSBhIGJyZWFrcG9pbnQgdmFsdWUgaXMgcGFzc2VkLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWZlYXR1cmU6IG1pbi13aWR0aDsgLy8gRGVmYXVsdCBAbWVkaWEgZmVhdHVyZSBmb3IgdGhlIGJyZWFrcG9pbnQoKSBtaXhpblxuXG4vLy9TZXRzIHRoZSBkZWZhdWx0IGxheW91dCBkaXJlY3Rpb24gb2YgdGhlIGdyaWQuIENhbiBiZSBgTFRSYCBvciBgUlRMYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpc3BsYXlzIHRoZSB2aXN1YWwgZ3JpZCB3aGVuIHNldCB0byB0cnVlLiBUaGUgb3ZlcmxhaWQgZ3JpZCBtYXkgYmUgZmV3IHBpeGVscyBvZmYgZGVwZW5kaW5nIG9uIHRoZSBicm93c2VyJ3MgcmVuZGVyaW5nIGVuZ2luZSBhbmQgcGl4ZWwgcm91bmRpbmcgYWxnb3JpdGhtLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiR2aXN1YWwtZ3JpZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgZ3JpZCBjb2xvci4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBDb2xvclxuXG4kdmlzdWFsLWdyaWQtY29sb3I6ICNlZWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBgei1pbmRleGAgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBDYW4gYmUgYGJhY2tgIChiZWhpbmQgY29udGVudCkgb3IgYGZyb250YCAoaW4gZnJvbnQgb2YgY29udGVudCkuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiR2aXN1YWwtZ3JpZC1pbmRleDogYmFjayAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIG9wYWNpdHkgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAodW5pdGxlc3MpXG5cbiR2aXN1YWwtZ3JpZC1vcGFjaXR5OiAwLjQgIWRlZmF1bHQ7XG5cbiR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXNhYmxlIGFsbCBkZXByZWNhdGlvbiB3YXJuaW5ncy4gRGVmYXVsdHMgdG8gYGZhbHNlYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGRpc2FibGUtd2FybmluZ3M6IGZhbHNlICFkZWZhdWx0O1xuXG5AbWl4aW4gLW5lYXQtd2FybigkbWVzc2FnZSkge1xuICBAaWYgJGRpc2FibGUtd2FybmluZ3MgPT0gZmFsc2Uge1xuICAgIEB3YXJuIFwiI3skbWVzc2FnZX1cIjtcbiAgfVxufVxuIiwiJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFkZWZhdWx0O1xuJGZnLWNvbHVtbjogJGNvbHVtbjtcbiRmZy1ndXR0ZXI6ICRndXR0ZXI7XG4kZmctbWF4LWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4kY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFkZWZhdWx0O1xuJGxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG59XG5cbkBmdW5jdGlvbiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbHVtbnMpIHtcbiAgQGlmICRjb2x1bW5zICE9ICRncmlkLWNvbHVtbnMge1xuICAgICRwYXJlbnQtY29sdW1uczogJGNvbHVtbnMgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRwYXJlbnQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSkge1xuICBAcmV0dXJuICRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSA9PSB0cnVlIG9yICRkaXNwbGF5ID09IHRhYmxlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AaWYgJGJvcmRlci1ib3gtc2l6aW5nID09IHRydWUge1xuICBodG1sIHsgLy8gaHR0cDovL2JpdC5seS8xcWsydFZSXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICoge1xuICAgICYsXG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBSZW1vdmVzIHRoZSBlbGVtZW50J3MgZ3V0dGVyIG1hcmdpbiwgcmVnYXJkbGVzcyBvZiBpdHMgcG9zaXRpb24gaW4gdGhlIGdyaWQgaGllcmFyY2h5IG9yIGRpc3BsYXkgcHJvcGVydHkuIEl0IGNhbiB0YXJnZXQgYSBzcGVjaWZpYyBlbGVtZW50LCBvciBldmVyeSBgbnRoLWNoaWxkYCBvY2N1cnJlbmNlLiBXb3JrcyBvbmx5IHdpdGggYGJsb2NrYCBsYXlvdXRzLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnkgW2Jsb2NrXVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHMuIFN1cHBvcnRlZCBhcmd1bWVudHMgYXJlIGBudGgtY2hpbGRgIHNlbGVjdG9ycyAodGFyZ2V0cyBhIHNwZWNpZmljIHBzZXVkbyBlbGVtZW50KSBhbmQgYGF1dG9gICh0YXJnZXRzIGBsYXN0LWNoaWxkYCkuXG4vLy9cbi8vLyAgIFdoZW4gcGFzc2VkIGFuIGBudGgtY2hpbGRgIGFyZ3VtZW50IG9mIHR5cGUgYCpuYCB3aXRoIGBibG9ja2AgZGlzcGxheSwgdGhlIG9tZWdhIG1peGluIGF1dG9tYXRpY2FsbHkgYWRkcyBhIGNsZWFyIHRvIHRoZSBgKm4rMWAgdGggZWxlbWVudC4gTm90ZSB0aGF0IGNvbXBvc2l0ZSBhcmd1bWVudHMgc3VjaCBhcyBgMm4rMWAgZG8gbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLlxuLy8vXG4vLy8gICAqKkRlcHJlY2F0aW9uIHdhcm5pbmcqKjogVGhlIG9tZWdhIG1peGluIHdpbGwgbm8gbG9uZ2VyIHRha2UgYSBgJGRpcmVjdGlvbmAgYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIGByb3coJGRpcmVjdGlvbilgIG9yIHNldCBgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbmAgaW5zdGVhZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb21lZ2EoNG4pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4pIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQ6bnRoLWNoaWxkKDRuKzEpIHtcbi8vLyAgICAgY2xlYXI6IGxlZnQ7XG4vLy8gICB9XG5cbkBtaXhpbiBvbWVnYSgkcXVlcnk6IGJsb2NrLCAkZGlyZWN0aW9uOiBkZWZhdWx0KSB7XG4gICR0YWJsZTogYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KTtcbiAgJGF1dG86IGJlbG9uZ3MtdG8oYXV0bywgJHF1ZXJ5KTtcblxuICBAaWYgJGRpcmVjdGlvbiAhPSBkZWZhdWx0IHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIHdpbGwgbm8gbG9uZ2VyIHRha2UgYSAkZGlyZWN0aW9uIGFyZ3VtZW50LiBUbyBjaGFuZ2UgdGhlIGxheW91dCBkaXJlY3Rpb24sIHVzZSB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICB9XG5cbiAgQGlmICR0YWJsZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBvbWVnYSBtaXhpbiBubyBsb25nZXIgcmVtb3ZlcyBwYWRkaW5nIGluIHRhYmxlIGxheW91dHMuXCIpO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBpZiAkYXV0byB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiBjb250YWlucy1kaXNwbGF5LXZhbHVlKCRxdWVyeSkgYW5kICR0YWJsZSA9PSBmYWxzZSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbnRoLWNoaWxkKG50aCgkcXVlcnksIDEpLCAkZGlyZWN0aW9uKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUb28gbWFueSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBvbWVnYSgpIG1peGluLlwiKTtcbiAgfVxufVxuXG5AbWl4aW4gbnRoLWNoaWxkKCRxdWVyeSwgJGRpcmVjdGlvbikge1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gICY6bnRoLWNoaWxkKCN7JHF1ZXJ5fSkge1xuICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBudW1iZXIgYW5kIHVuaXQoJHF1ZXJ5KSA9PSBcIm5cIiB7XG4gICAgJjpudGgtY2hpbGQoI3skcXVlcnl9KzEpIHtcbiAgICAgIGNsZWFyOiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCBhIG91dGVyIGNvbnRhaW5lciBieSBjZW50ZXJpbmcgaXQgaW4gdGhlIHZpZXdwb3J0LCBjbGVhcmluZyBpdHMgZmxvYXRzLCBhbmQgc2V0dGluZyBpdHMgYG1heC13aWR0aGAuXG4vLy8gQWx0aG91Z2ggb3B0aW9uYWwsIHVzaW5nIGBvdXRlci1jb250YWluZXJgIGlzIHJlY29tbWVuZGVkLiBUaGUgbWl4aW4gY2FuIGJlIGNhbGxlZCBvbiBtb3JlIHRoYW4gb25lIGVsZW1lbnQgcGVyIHBhZ2UsIGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IG5lc3RlZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIFt1bml0XX0gJGxvY2FsLW1heC13aWR0aCBbJG1heC13aWR0aF1cbi8vLyAgIE1heCB3aWR0aCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50LiBDYW4gYmUgYSBwZXJjZW50YWdlIG9yIGEgbWVhc3VyZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMTAwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLy8gICAgIG1hcmdpbi1yaWdodDogYXV0bztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gb3V0ZXItY29udGFpbmVyKCRsb2NhbC1tYXgtd2lkdGg6ICRtYXgtd2lkdGgpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1heC13aWR0aDogJGxvY2FsLW1heC13aWR0aDtcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbiBlbGVtZW50IHNob3VsZCBzcGFuLiBJZiB0aGUgc2VsZWN0b3IgaXMgbmVzdGVkIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiBpdHMgcGFyZW50IGVsZW1lbnQgc2hvdWxkIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBhcyB3ZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc3BhblxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgYCRjb2x1bW5zYCwgdGhlIHVuaXRsZXNzIG51bWJlciBvZiBjb2x1bW5zIHRoZSBlbGVtZW50IHNwYW5zIChyZXF1aXJlZCksIGFuZCBgJGNvbnRhaW5lci1jb2x1bW5zYCwgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoZSBwYXJlbnQgZWxlbWVudCBzcGFucyAob3B0aW9uYWwpLlxuLy8vXG4vLy8gICBJZiBvbmx5IG9uZSB2YWx1ZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgdGhhdCBpdCdzIGAkY29sdW1uc2AgYW5kIHRoYXQgdGhhdCBgJGNvbnRhaW5lci1jb2x1bW5zYCBpcyBlcXVhbCB0byBgJGdyaWQtY29sdW1uc2AsIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vICAgVGhlIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gICBgJGNvbHVtbnNgIGFsc28gYWNjZXB0cyBkZWNpbWFscyBmb3Igd2hlbiBpdCdzIG5lY2Vzc2FyeSB0byBicmVhayBvdXQgb2YgdGhlIHN0YW5kYXJkIGdyaWQuIEUuZy4gUGFzc2luZyBgMi40YCBpbiBhIHN0YW5kYXJkIDEyIGNvbHVtbiBncmlkIHdpbGwgZGl2aWRlIHRoZSByb3cgaW50byA1IGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudC4gQnkgZGVmYXVsdCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRvIGBibG9ja2AuXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgYmxvY2stY29sbGFwc2VgLCBpdCBhbHNvIHJlbW92ZXMgdGhlIG1hcmdpbiBndXR0ZXIgYnkgYWRkaW5nIGl0IHRvIHRoZSBlbGVtZW50IHdpZHRoLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYHRhYmxlYCwgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB0byBgdGFibGUtY2VsbGAgYW5kIGNhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBlbGVtZW50IHdpdGhvdXQgdGFraW5nIGd1dHRlcnMgaW50byBjb25zaWRlcmF0aW9uLiBUaGUgcmVzdWx0IGRvZXMgbm90IGFsaWduIHdpdGggdGhlIGJsb2NrLWJhc2VkIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vXG4vLy8gICAgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgd2lkdGg6IDMwLjExMzg5JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG5cbkBtaXhpbiBzcGFuLWNvbHVtbnMoJHNwYW46ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucywgJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRjb2x1bW5zOiBudGgoJHNwYW4sIDEpO1xuICAkY29udGFpbmVyLWNvbHVtbnM6IGNvbnRhaW5lci1zcGFuKCRzcGFuKTtcblxuICAkcGFyZW50LWNvbHVtbnM6IGdldC1wYXJlbnQtY29sdW1ucygkY29udGFpbmVyLWNvbHVtbnMpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJGRpc3BsYXktdGFibGU6IGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSk7XG5cbiAgQGlmICRkaXNwbGF5LXRhYmxlICB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRjb250YWluZXItY29sdW1ucyk7XG4gIH0gQGVsc2Uge1xuICAgIGZsb2F0OiAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259O1xuXG4gICAgQGlmICRkaXNwbGF5ICE9IG5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIHtcbiAgICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJ2NvbGxhcHNlJyBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQuIFVzZSAnYmxvY2stY29sbGFwc2UnIGluc3RlYWQuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSBvciAkZGlzcGxheSA9PSBibG9jay1jb2xsYXBzZSB7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpICsgZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERlc2lnbmF0ZXMgdGhlIGVsZW1lbnQgYXMgYSByb3cgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZCBsYXlvdXQuIEl0IGNsZWFycyB0aGUgZmxvYXRzIG9uIHRoZSBlbGVtZW50IGFuZCBzZXRzIGl0cyBkaXNwbGF5IHByb3BlcnR5LiBSb3dzIGNhbid0IGJlIG5lc3RlZCwgYnV0IHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lIHJvdyBlbGVtZW504oCUd2l0aCBkaWZmZXJlbnQgZGlzcGxheSBwcm9wZXJ0aWVz4oCUcGVyIGxheW91dC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbZGVmYXVsdF1cbi8vLyAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGRpc3BsYXkgY29udGV4dCB0aGF0IHdpbGwgYmUgdXNlZCBieSBpdHMgY2hpbGRyZW4uIENhbiBiZSBgYmxvY2tgIG9yIGB0YWJsZWAuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbl1cbi8vLyAgU2V0cyB0aGUgbGF5b3V0IGRpcmVjdGlvbi4gQ2FuIGJlIGBMVFJgIChsZWZ0LXRvLXJpZ2h0KSBvciBgUlRMYCAocmlnaHQtdG8tbGVmdCkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIHJvdygpO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICAqem9vbTogMTtcbi8vLyAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgfVxuLy8vXG4vLy8gLmVsZW1lbnQ6YmVmb3JlLCAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjb250ZW50OiBcIiBcIjtcbi8vLyAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vIH1cbi8vL1xuLy8vIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgIGNsZWFyOiBib3RoO1xuLy8vIH1cblxuQG1peGluIHJvdygkZGlzcGxheTogZGVmYXVsdCwgJGRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbikge1xuICBAaWYgJGRpcmVjdGlvbiAhPSAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICRkaXJlY3Rpb24gYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG4gIH1cblxuICAkbGF5b3V0LWRpcmVjdGlvbjogJGRpcmVjdGlvbiAhZ2xvYmFsO1xuXG4gIEBpZiAkZGlzcGxheSAhPSBkZWZhdWx0IHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICRkaXNwbGF5IGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpc3BsYXkoKXsuLi59IG1peGluLlwiKTtcbiAgfVxuXG4gIEBpZiAkZGlzcGxheSA9PSB0YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IHRydWUgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZ2xvYmFsO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMuIFBvc2l0aXZlIGFyZ3VtZW50cyBzaGlmdCB0aGUgZWxlbWVudCB0byB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24sIHdoaWxlIG5lZ2F0aXZlIG9uZXMgc2hpZnQgaXQgdG8gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICRuLWNvbHVtbnMgWzFdXG4vLy8gICBOdW1iZXIgb2YgY29sdW1ucyBieSB3aGljaCB0aGUgZWxlbWVudCBzaGlmdHMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTI1LjU4OTQxJTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0KCRuLWNvbHVtbnM6IDEpIHtcbiAgQGluY2x1ZGUgc2hpZnQtaW4tY29udGV4dCgkbi1jb2x1bW5zKTtcbn1cblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucywgaW4gYSBzcGVjaWZpYyBuZXN0aW5nIGNvbnRleHQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGlmdFxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHNoaWZ0IChgJGNvbHVtbnNgKSBhbmQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIHRoZSBwYXJlbnQgZWxlbWVudCAoYCRjb250YWluZXItY29sdW1uc2ApLlxuLy8vXG4vLy8gICBUaGUgdHdvIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zIG9mIDYpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTUyLjQxNDU4JTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0LWluLWNvbnRleHQoJHNoaWZ0OiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMpIHtcbiAgJG4tY29sdW1uczogbnRoKCRzaGlmdCwgMSk7XG4gICRwYXJlbnQtY29sdW1uczogY29udGFpbmVyLXNoaWZ0KCRzaGlmdCkgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJG4tY29sdW1ucyAqIGZsZXgtZ3JpZCgxLCAkcGFyZW50LWNvbHVtbnMpICsgJG4tY29sdW1ucyAqIGZsZXgtZ3V0dGVyKCRwYXJlbnQtY29sdW1ucyk7XG5cbiAgLy8gUmVzZXQgbmVzdGluZyBjb250ZXh0XG4gICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQWRkcyBwYWRkaW5nIHRvIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcGFkZGluZyBbZmxleC1ndXR0ZXIoKV1cbi8vLyAgIEEgbGlzdCBvZiBwYWRkaW5nIHZhbHVlKHMpIHRvIHVzZS4gUGFzc2luZyBgZGVmYXVsdGAgaW4gdGhlIGxpc3Qgd2lsbCByZXN1bHQgaW4gdXNpbmcgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBhZGRpbmcgdmFsdWUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkKDMwcHggLTIwcHggMTBweCBkZWZhdWx0KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZzogMzBweCAtMjBweCAxMHB4IDIuMzU3NjUlO1xuLy8vICAgfVxuXG5AbWl4aW4gcGFkKCRwYWRkaW5nOiBmbGV4LWd1dHRlcigpKSB7XG4gICRwYWRkaW5nLWxpc3Q6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkcGFkZGluZyB7XG4gICAgJHZhbHVlOiBpZigkdmFsdWUgPT0gJ2RlZmF1bHQnLCBmbGV4LWd1dHRlcigpLCAkdmFsdWUpO1xuICAgICRwYWRkaW5nLWxpc3Q6IGpvaW4oJHBhZGRpbmctbGlzdCwgJHZhbHVlKTtcbiAgfVxuICBwYWRkaW5nOiAkcGFkZGluZy1saXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRm9yY2VzIHRoZSBlbGVtZW50IHRvIGZpbGwgaXRzIHBhcmVudCBjb250YWluZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuLy8vICAgfVxuXG5AbWl4aW4gZmlsbC1wYXJlbnQoKSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gZmFsc2Uge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE91dHB1dHMgYSBtZWRpYS1xdWVyeSBibG9jayB3aXRoIGFuIG9wdGlvbmFsIGdyaWQgY29udGV4dCAodGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIHVzZWQgaW4gdGhlIGdyaWQpLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLCB3aGVyZSBlYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vICAgRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBgJHZhbHVlYCBpbiBgJHF1ZXJ5YCwgYCRkZWZhdWx0LWZlYXR1cmVgIGlzIGdvaW5nIHRvIGJlIHVzZWQuXG4vLy9cbi8vLyAgIFRoZSBudW1iZXIgb2YgdG90YWwgY29sdW1ucyBpbiB0aGUgZ3JpZCBjYW4gYmUgc2V0IGJ5IHBhc3NpbmcgYCRjb2x1bW5zYCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChvdmVycmlkZXMgYCR0b3RhbC1jb2x1bW5zYCkuXG4vLy9cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSg3NjlweCkge1xuLy8vICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIG1lZGlhKG1pbi13aWR0aCAzMjBweCBtYXgtd2lkdGggNDgwcHgsIDYpIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50IHtcbi8vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICAgd2lkdGg6IDQ4LjgyMTE3JTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgIH1cbi8vL1xuLy8vICAgIC5uZXctY29udGV4dC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuXG5AbWl4aW4gbWVkaWEoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zICFnbG9iYWw7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJGxvb3AtdG86IGxlbmd0aCgkcXVlcnkpO1xuICAgICRtZWRpYS1xdWVyeTogXCJzY3JlZW4gYW5kIFwiO1xuICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuXG4gICAgQGlmIGlzLW5vdChpcy1ldmVuKGxlbmd0aCgkcXVlcnkpKSkge1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgJGxvb3AtdG8pICFnbG9iYWw7XG4gICAgICAkbG9vcC10bzogJGxvb3AtdG8gLSAxO1xuICAgIH1cblxuICAgICRpOiAxO1xuICAgIEB3aGlsZSAkaSA8PSAkbG9vcC10byB7XG4gICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiKFwiICsgbnRoKCRxdWVyeSwgJGkpICsgXCI6IFwiICsgbnRoKCRxdWVyeSwgJGkgKyAxKSArIFwiKSBcIjtcblxuICAgICAgQGlmICgkaSArIDEpICE9ICRsb29wLXRvIHtcbiAgICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcImFuZCBcIjtcbiAgICAgIH1cblxuICAgICAgJGk6ICRpICsgMjtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaWEtcXVlcnl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeTokZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgYnJlYWtwb2ludCgpIG1peGluIHdhcyByZW5hbWVkIHRvIG1lZGlhKCkgaW4gTmVhdCAxLjAuIFBsZWFzZSB1cGRhdGUgeW91ciBwcm9qZWN0IHdpdGggdGhlIG5ldyBzeW50YXggYmVmb3JlIHRoZSBuZXh0IHZlcnNpb24gYnVtcC5cIik7XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMyB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgMyk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDUge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCA1KTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGJyZWFrcG9pbnQoKS4gUmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLlwiKTtcbiAgfVxufVxuXG5AbWl4aW4gbnRoLW9tZWdhKCRudGgsICRkaXNwbGF5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG50aC1vbWVnYSgpIG1peGluIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2Ugb21lZ2EoKSBpbnN0ZWFkLlwiKTtcbiAgQGluY2x1ZGUgb21lZ2EoJG50aCAkZGlzcGxheSwgJGRpcmVjdGlvbik7XG59XG5cbi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBkaXNwbGF5IHByb3BlcnR5IHRvIGBibG9ja2AuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KHRhYmxlKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHRhYmxlIGRpc3BsYXlcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gYmxvY2sgZGlzcGxheVxuXG5AbWl4aW4gcmVzZXQtZGlzcGxheSB7XG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlJlc2V0dGluZyAkZGlzcGxheSB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXNwbGF5KCl7Li4ufSBtaXhpbi5cIik7XG59XG5cbi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uIHRvIHRoZSBkZWZhdWx0IHZhbHVlIHNldCBpbiBgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbmAuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgbGF5b3V0IGRpcmVjdGlvbiBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KCRkaXJlY3Rpb246IFJUTCk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byByaWdodC10by1sZWZ0XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWxheW91dC1kaXJlY3Rpb247XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGxlZnQtdG8tcmlnaHRcblxuQG1peGluIHJlc2V0LWxheW91dC1kaXJlY3Rpb24ge1xuICAkbGF5b3V0LWRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbiAhZ2xvYmFsO1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiUmVzZXR0aW5nICRkaXJlY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG59XG5cbi8vLyBSZXNldHMgYm90aCB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24gYW5kIHRoZSBhY3RpdmUgZGlzcGxheSBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3codGFibGUsIFJUTCk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byB0YWJsZSB0YWJsZSBhbmQgcmlnaHQtdG8tbGVmdFxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1hbGw7XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGJsb2NrIGRpc3BsYXkgYW5kIGxlZnQtdG8tcmlnaHRcblxuQG1peGluIHJlc2V0LWFsbCB7XG4gIEBpbmNsdWRlIHJlc2V0LWRpc3BsYXk7XG4gIEBpbmNsdWRlIHJlc2V0LWxheW91dC1kaXJlY3Rpb247XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtaXhpbiBncmlkLWNvbHVtbi1ncmFkaWVudCgkdmFsdWVzLi4uKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICN7JHZhbHVlc30pXCIpO1xufVxuXG5AaWYgJHZpc3VhbC1ncmlkID09IHRydWUgb3IgJHZpc3VhbC1ncmlkID09IHllcyB7XG4gIGJvZHk6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIG9wYWNpdHk6ICR2aXN1YWwtZ3JpZC1vcGFjaXR5O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAkdmlzdWFsLWdyaWQtaW5kZXggPT0gYmFjayB7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkdmlzdWFsLWdyaWQtaW5kZXggPT0gZnJvbnQge1xuICAgICAgei1pbmRleDogOTk5OTtcbiAgICB9XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHMge1xuICAgICAgQGlmICRicmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoYW5nZXMgdGhlIGRpc3BsYXkgcHJvcGVydHkgdXNlZCBieSBvdGhlciBtaXhpbnMgY2FsbGVkIGluIHRoZSBjb2RlIGJsb2NrIGFyZ3VtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja11cbi8vLyAgIERpc3BsYXkgdmFsdWUgdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGJsb2NrLiBDYW4gYmUgYHRhYmxlYCBvciBgYmxvY2tgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgQGluY2x1ZGUgZGlzcGxheS1jb250ZXh0KHRhYmxlKSB7XG4vLy8gICAgLmRpc3BsYXktdGFibGUge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3Ncbi8vLyAgIC5kaXNwbGF5LXRhYmxlIHtcbi8vLyAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4vLy8gICAgICAuLi5cbi8vLyAgIH1cblxuQG1peGluIGRpc3BsYXktY29udGV4dCgkZGlzcGxheTogYmxvY2spIHtcbiAgJHNjb3BlLWRpc3BsYXk6ICRjb250YWluZXItZGlzcGxheS10YWJsZTtcbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiAkZGlzcGxheSA9PSB0YWJsZSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogJHNjb3BlLWRpc3BsYXkgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoYW5nZXMgdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSB1c2VkIGJ5IG90aGVyIG1peGlucyBjYWxsZWQgaW4gdGhlIGNvZGUgYmxvY2sgYXJndW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbbGVmdC10by1yaWdodF1cbi8vLyAgIExheW91dCBkaXJlY3Rpb24gdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGJsb2NrLiBDYW4gYmUgYGxlZnQtdG8tcmlnaHRgIG9yIGByaWdodC10by1sZWZ0YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgQGluY2x1ZGUgZGlyZWN0aW9uLWNvbnRleHQocmlnaHQtdG8tbGVmdCkge1xuLy8vICAgIC5yaWdodC10by1sZWZ0LWJsb2NrIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLnJpZ2h0LXRvLWxlZnQtYmxvY2sge1xuLy8vICAgICBmbG9hdDogcmlnaHQ7XG4vLy8gICAgICAuLi5cbi8vLyAgIH1cblxuQG1peGluIGRpcmVjdGlvbi1jb250ZXh0KCRkaXJlY3Rpb246IGxlZnQtdG8tcmlnaHQpIHtcbiAgJHNjb3BlLWRpcmVjdGlvbjogJGxheW91dC1kaXJlY3Rpb247XG5cbiAgQGlmIHRvLWxvd2VyLWNhc2UoJGRpcmVjdGlvbikgPT0gXCJsZWZ0LXRvLXJpZ2h0XCIge1xuICAgICRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWdsb2JhbDtcbiAgfSBAZWxzZSBpZiB0by1sb3dlci1jYXNlKCRkaXJlY3Rpb24pID09IFwicmlnaHQtdG8tbGVmdFwiIHtcbiAgICAkbGF5b3V0LWRpcmVjdGlvbjogUlRMICFnbG9iYWw7XG4gIH1cblxuICBAY29udGVudDtcblxuICAkbGF5b3V0LWRpcmVjdGlvbjogJHNjb3BlLWRpcmVjdGlvbiAhZ2xvYmFsO1xufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8vIFRoZXNlIHZhcmlhYmxlcyBkcml2ZSBhbG1vc3QgZXZlcnkgYXNwZWN0IG9mIHRoZSBVLlMuIFdlYiBEZXNpZ25cbi8vIHN5c3RlbS4gRXZlcnkgdmFyaWFibGUgaXMgZGVjbGFyZWQgYXMgIWRlZmF1bHQgc28gdGhhdCBpdCBjYW4gYmVcbi8vIG92ZXJyaWRkZW4gYnkgYSBwcmV2aW91cyBpbXBvcnQuXG4vL1xuLy8gWFhYIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlIVxuLy9cbi8vIElmIHlvdSB3YW50IHRvIG92ZXJyaWRlIGEgdmFyaWFibGUsIHNldCB0aGF0IHZhcmlhYmxlIGluIG9uZSBvZiB5b3VyXG4vLyBvd24gcGFydGlhbHMsIHRoZW4gQGltcG9ydCAne3BhdGgvdG8vdXN3ZHMvfWNvcmUvdmFyaWFibGVzJy5cblxuLy8gVHlwb2dyYXBoeVxuLy8gUmVtb3ZpbmcgdGhlICFkZWZhdWx0IGZyb20gJGVtLWJhc2Ugc28gd2UgYXJlIG5vdCBpbmhlcml0aW5nIHRoYXRcbi8vIHZhbHVlIGZyb20gQm91cmJvbi5cbiRlbS1iYXNlOiAgICAgICAgICAgICAxMHB4O1xuJGJhc2UtZm9udC1zaXplOiAgICAgIDEuN3JlbSAhZGVmYXVsdDtcbiRzbWFsbC1mb250LXNpemU6ICAgICAxLjRyZW0gIWRlZmF1bHQ7XG4kbGVhZC1mb250LXNpemU6ICAgICAgMnJlbSAhZGVmYXVsdDtcbiR0aXRsZS1mb250LXNpemU6ICAgICA1LjJyZW0gIWRlZmF1bHQ7XG4kaDEtZm9udC1zaXplOiAgICAgICAgNHJlbSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6ICAgICAgICAzcmVtICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogICAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kaDQtZm9udC1zaXplOiAgICAgICAgMS43cmVtICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTogICAgICAgIDEuNXJlbSAhZGVmYXVsdDtcbiRoNi1mb250LXNpemU6ICAgICAgICAxLjNyZW0gIWRlZmF1bHQ7XG4kYmFzZS1saW5lLWhlaWdodDogICAgMS41ICFkZWZhdWx0O1xuJGhlYWRpbmctbGluZS1oZWlnaHQ6IDEuMyAhZGVmYXVsdDtcbiRsZWFkLWxpbmUtaGVpZ2h0OiAgICAxLjcgIWRlZmF1bHQ7XG5cbiRmb250LXNhbnM6ICAgICAgICAgICAnU291cmNlIFNhbnMgUHJvJywgJGhlbHZldGljYSAhZGVmYXVsdDtcbiRmb250LXNlcmlmOiAgICAgICAgICAnTWVycml3ZWF0aGVyJywgJGdlb3JnaWEgIWRlZmF1bHQ7XG5cbiRmb250LW5vcm1hbDogICAgICAgICA0MDAgIWRlZmF1bHQ7XG4kZm9udC1ib2xkOiAgICAgICAgICAgNzAwICFkZWZhdWx0O1xuXG4vLyBDb2xvclxuJGNvbG9yLXByaW1hcnk6ICAgICAgICAgICAgICAjMDA3MWJjICFkZWZhdWx0O1xuJGNvbG9yLXByaW1hcnktZGFya2VyOiAgICAgICAjMjA1NDkzICFkZWZhdWx0O1xuJGNvbG9yLXByaW1hcnktZGFya2VzdDogICAgICAjMTEyZTUxICFkZWZhdWx0O1xuXG4kY29sb3ItcHJpbWFyeS1hbHQ6ICAgICAgICAgICMwMmJmZTcgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeS1hbHQtZGFyazogICAgICMwMGE2ZDIgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeS1hbHQtZGFya2VzdDogICMwNDZiOTkgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeS1hbHQtbGlnaHQ6ICAgICM5YmRhZjEgIWRlZmF1bHQ7IC8vIGxpZ2h0ZW4oJGNvbG9yLXByaW1hcnktYWx0LCA2MCUpXG4kY29sb3ItcHJpbWFyeS1hbHQtbGlnaHRlc3Q6ICNlMWYzZjggIWRlZmF1bHQ7IC8vIGxpZ2h0ZW4oJGNvbG9yLXByaW1hcnktYWx0LCA5MCUpXG5cbiRjb2xvci1zZWNvbmRhcnk6ICAgICAgICAgICAgI2UzMWMzZCAhZGVmYXVsdDtcbiRjb2xvci1zZWNvbmRhcnktZGFyazogICAgICAgI2NkMjAyNiAhZGVmYXVsdDtcbiRjb2xvci1zZWNvbmRhcnktZGFya2VzdDogICAgIzk4MWIxZSAhZGVmYXVsdDtcbiRjb2xvci1zZWNvbmRhcnktbGlnaHQ6ICAgICAgI2U1OTM5MyAhZGVmYXVsdDsgLy8gbGlnaHRlbigkY29sb3Itc2Vjb25kYXJ5LCA2MCUpXG4kY29sb3Itc2Vjb25kYXJ5LWxpZ2h0ZXN0OiAgICNmOWRlZGUgIWRlZmF1bHQ7IC8vIGxpZ2h0ZW4oJGNvbG9yLXNlY29uZGFyeSwgOTAlKVxuXG4kY29sb3Itd2hpdGU6ICAgICAgICAgICAgICAgICNmZmZmZmYgIWRlZmF1bHQ7XG4kY29sb3ItYmFzZTogICAgICAgICAgICAgICAgICMyMTIxMjEgIWRlZmF1bHQ7XG4kY29sb3ItYmxhY2s6ICAgICAgICAgICAgICAgICMwMDAwMDAgIWRlZmF1bHQ7XG5cbiRjb2xvci1ncmF5LWRhcms6ICAgICAgICAgICAgIzMyM2E0NSAhZGVmYXVsdDtcbiRjb2xvci1ncmF5OiAgICAgICAgICAgICAgICAgIzViNjE2YiAhZGVmYXVsdDsgLy8gbGlnaHRlbigkY29sb3ItZ3JheS1kYXJrLCAyMCUpXG4kY29sb3ItZ3JheS1tZWRpdW06ICAgICAgICAgICM3NTc1NzUgIWRlZmF1bHQ7IC8vIGxpZ2h0ZXN0IGdyYXkgdGhhdCBwYXNzZXMgY29sb3IgY29udHJhc3RcbiRjb2xvci1ncmF5LWxpZ2h0OiAgICAgICAgICAgI2FlYjBiNSAhZGVmYXVsdDsgLy8gbGlnaHRlbigkY29sb3ItZ3JheS1kYXJrLCA2MCUpXG4kY29sb3ItZ3JheS1saWdodGVyOiAgICAgICAgICNkNmQ3ZDkgIWRlZmF1bHQ7IC8vIGxpZ2h0ZW4oJGNvbG9yLWdyYXktZGFyaywgODAlKVxuJGNvbG9yLWdyYXktbGlnaHRlc3Q6ICAgICAgICAjZjFmMWYxICFkZWZhdWx0OyAvLyBsaWdodGVuKCRjb2xvci1ncmF5LWRhcmssIDkxJSlcblxuJGNvbG9yLWdyYXktd2FybS1kYXJrOiAgICAgICAjNDk0NDQwICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktd2FybS1saWdodDogICAgICAjZTRlMmUwICFkZWZhdWx0OyAvLyBsaWdodGVuKCRjb2xvci1ncmF5LXdhcm0tZGFyaywgOTAlKVxuJGNvbG9yLWdyYXktY29vbC1saWdodDogICAgICAjZGNlNGVmICFkZWZhdWx0OyAvLyBsaWdodGVuKCRjb2xvci1wcmltYXJ5LCA5MCUpXG5cbiRjb2xvci1nb2xkOiAgICAgICAgICAgICAgICAgI2ZkYjgxZSAhZGVmYXVsdDtcbiRjb2xvci1nb2xkLWxpZ2h0OiAgICAgICAgICAgI2Y5YzY0MiAhZGVmYXVsdDsgLy8gIGxpZ2h0ZW4oJGNvbG9yLWdvbGQsIDIwJSlcbiRjb2xvci1nb2xkLWxpZ2h0ZXI6ICAgICAgICAgI2ZhZDk4MCAhZGVmYXVsdDsgLy8gIGxpZ2h0ZW4oJGNvbG9yLWdvbGQsIDYwJSlcbiRjb2xvci1nb2xkLWxpZ2h0ZXN0OiAgICAgICAgI2ZmZjFkMiAhZGVmYXVsdDsgLy8gIGxpZ2h0ZW4oJGNvbG9yLWdvbGQsIDgzJSlcblxuJGNvbG9yLWdyZWVuOiAgICAgICAgICAgICAgICAjMmU4NTQwICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuLWxpZ2h0OiAgICAgICAgICAjNGFhNTY0ICFkZWZhdWx0OyAvLyBsaWdodGVuKCRjb2xvci1ncmVlbiwgMjAlKVxuJGNvbG9yLWdyZWVuLWxpZ2h0ZXI6ICAgICAgICAjOTRiZmEyICFkZWZhdWx0OyAvLyBsaWdodGVuKCRjb2xvci1ncmVlbiwgNjAlKVxuJGNvbG9yLWdyZWVuLWxpZ2h0ZXN0OiAgICAgICAjZTdmNGU0ICFkZWZhdWx0OyAvLyBsaWdodGVuKCRjb2xvci1ncmVlbiwgNjAlKVxuXG4kY29sb3ItY29vbC1ibHVlOiAgICAgICAgICAgICMyMDU0OTMgIWRlZmF1bHQ7XG4kY29sb3ItY29vbC1ibHVlLWxpZ2h0OiAgICAgICM0NzczYWEgIWRlZmF1bHQ7IC8vIGxpZ2h0ZW4oJGNvbG9yLWNvb2wtYmx1ZSwgMjAlKVxuJGNvbG9yLWNvb2wtYmx1ZS1saWdodGVyOiAgICAjOGJhNmNhICFkZWZhdWx0OyAvLyBsaWdodGVuKCRjb2xvci1jb29sLWJsdWUsIDYwJSlcbiRjb2xvci1jb29sLWJsdWUtbGlnaHRlc3Q6ICAgI2RjZTRlZiAhZGVmYXVsdDsgLy8gbGlnaHRlbigkY29sb3ItY29vbC1ibHVlLCA5MCUpXG5cbiRjb2xvci1mb2N1czogICAgICAgICAgICAgICAgIzNlOTRjZiAhZGVmYXVsdDtcbiRjb2xvci12aXNpdGVkOiAgICAgICAgICAgICAgIzRjMmM5MiAhZGVmYXVsdDtcblxuJGNvbG9yLXNoYWRvdzogICAgICAgICAgICAgICByZ2JhKCMwMDAsIDAuMykgIWRlZmF1bHQ7XG5cbi8vIE1vYmlsZSBGaXJzdCBCcmVha3BvaW50c1xuJHNtYWxsLXNjcmVlbjogIDQ4MXB4ICFkZWZhdWx0O1xuJG1lZGl1bS1zY3JlZW46IDYwMHB4ICFkZWZhdWx0O1xuJGxhcmdlLXNjcmVlbjogIDEyMDFweCAhZGVmYXVsdDtcblxuLy8gR3JpZCBjb2x1bW4gY291bnRzIGJ5IHNjcmVlbiBzaXplXG4kZ3JpZC1jb2x1bW5zLXNtYWxsOiAxICFkZWZhdWx0O1xuJGdyaWQtY29sdW1ucy1tZWRpdW06IDYgIWRlZmF1bHQ7XG4kZ3JpZC1jb2x1bW5zLWxhcmdlOiAxMiAhZGVmYXVsdDtcblxuLy8gQG1lZGlhIHNpbmdsZS1rZXl3b3JkIGhlbHBlcnNcbiRzbWFsbDogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRzbWFsbC1zY3JlZW4gJGdyaWQtY29sdW1ucy1zbWFsbCkgIWRlZmF1bHQ7XG4kbWVkaXVtOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJG1lZGl1bS1zY3JlZW4gJGdyaWQtY29sdW1ucy1tZWRpdW0pICFkZWZhdWx0O1xuJGxhcmdlOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJGxhcmdlLXNjcmVlbiAkZ3JpZC1jb2x1bW5zLWxhcmdlKSAhZGVmYXVsdDtcblxuLy8gUmVsYXRpdmUgZm9udCBhbmQgaW1hZ2UgZmlsZSBwYXRoc1xuJGZvbnQtcGF0aDogICAnLi4vZm9udHMnICFkZWZhdWx0O1xuJGltYWdlLXBhdGg6ICAnLi4vaW1nJyAhZGVmYXVsdDtcblxuLy8gU2V0ICRhc3NldC1waXBlbGluZSB0byB0cnVlIGlmIHlvdSdyZSB1c2luZyB0aGUgUmFpbHMgQXNzZXQgUGlwZWxpbmVcbiRhc3NldC1waXBlbGluZTogICAgICBmYWxzZSAhZGVmYXVsdDtcblxuLy8gTWFnaWMgTnVtYmVyc1xuJHRleHQtbWF4LXdpZHRoOiAgICAgIDUzcmVtICFkZWZhdWx0O1xuJGxlYWQtbWF4LXdpZHRoOiAgICAgIDc3cmVtICFkZWZhdWx0O1xuJHNpdGUtbWF4LXdpZHRoOiAgICAgIDEwNDBweCAhZGVmYXVsdDtcbiRzaXRlLW1hcmdpbnM6ICAgICAgICAzcmVtICFkZWZhdWx0O1xuJHNpdGUtbWFyZ2lucy1tb2JpbGU6IDEuNXJlbSAhZGVmYXVsdDtcbiRhcnRpY2xlLW1heC13aWR0aDogICA2MDBweCAhZGVmYXVsdDtcbiRpbnB1dC1tYXgtd2lkdGg6ICAgICA0NnJlbSAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzOiAgICAgICAzcHggIWRlZmF1bHQ7XG4kYm94LXNoYWRvdzogICAgICAgICAgMCAwIDJweCAkY29sb3Itc2hhZG93ICFkZWZhdWx0O1xuJGZvY3VzLXNoYWRvdzogICAgICAgIDAgMCAzcHggJGNvbG9yLWZvY3VzLCAwIDAgN3B4ICRjb2xvci1mb2N1cyAhZGVmYXVsdDtcbiRuYXYtd2lkdGg6ICAgICAgICAgICA5NTFweCAhZGVmYXVsdDtcblxuLy8gNDQgeCA0NCBwaXhlbHMgaGl0IHRhcmdldCBmb2xsb3dpbmcgQXBwbGUgaU9TIEh1bWFuIEludGVyZmFjZVxuLy8gR3VpZGVsaW5lc1xuJGhpdC1hcmVhOiA0LjRyZW0gIWRlZmF1bHQ7XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBhdC1ydWxlLWVtcHR5LWxpbmUtYmVmb3JlICovXG5AaW5jbHVkZSBmb250LWZhY2UoXG4gICdTb3VyY2UgU2FucyBQcm8nLFxuICAnI3skZm9udC1wYXRofS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQnLFxuICAzMDAsXG4gIG5vcm1hbCxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmXG4pO1xuXG5AaW5jbHVkZSBmb250LWZhY2UoXG4gICdTb3VyY2UgU2FucyBQcm8nLFxuICAnI3skZm9udC1wYXRofS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udCcsXG4gIDQwMCxcbiAgbm9ybWFsLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ1NvdXJjZSBTYW5zIFBybycsXG4gICcjeyRmb250LXBhdGh9L3NvdXJjZXNhbnNwcm8taXRhbGljLXdlYmZvbnQnLFxuICA0MDAsXG4gIGl0YWxpYyxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmXG4pO1xuXG5AaW5jbHVkZSBmb250LWZhY2UoXG4gICdTb3VyY2UgU2FucyBQcm8nLFxuICAnI3skZm9udC1wYXRofS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udCcsXG4gIDcwMCxcbiAgbm9ybWFsLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ01lcnJpd2VhdGhlcicsXG4gICcjeyRmb250LXBhdGh9L21lcnJpd2VhdGhlci1saWdodC13ZWJmb250JyxcbiAgMzAwLFxuICBub3JtYWwsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZlxuKTtcblxuQGluY2x1ZGUgZm9udC1mYWNlKFxuICAnTWVycml3ZWF0aGVyJyxcbiAgJyN7JGZvbnQtcGF0aH0vbWVycml3ZWF0aGVyLXJlZ3VsYXItd2ViZm9udCcsXG4gIDQwMCxcbiAgbm9ybWFsLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ01lcnJpd2VhdGhlcicsXG4gICcjeyRmb250LXBhdGh9L21lcnJpd2VhdGhlci1pdGFsaWMtd2ViZm9udCcsXG4gIDQwMCxcbiAgaXRhbGljLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGZcbik7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZShcbiAgJ01lcnJpd2VhdGhlcicsXG4gICcjeyRmb250LXBhdGh9L21lcnJpd2VhdGhlci1ib2xkLXdlYmZvbnQnLFxuICA3MDAsXG4gIG5vcm1hbCxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmXG4pO1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLy8gQXBwbHkgYSBuYXR1cmFsIGJveCBsYXlvdXQgbW9kZWwgdG8gYWxsIGVsZW1lbnRzLCBidXQgYWxsb3dpbmcgY29tcG9uZW50cyB0b1xuLy8gY2hhbmdlXG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbi8vIEhhY2sgZm9yIGNsZWFyZml4ZXNcbi5sdC1pZTkge1xuICAqIHtcbiAgICBmaWx0ZXI6IG5vbmUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgfVxufVxuXG4vLyBmb3IgSUUgPCAxMSwgc2VlOlxuLy8gPGh0dHA6Ly9jYW5pdXNlLmNvbS8jZmVhdD1oaWRkZW4+XG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbn1cbiIsIi8vIEdyaWQgY29udGFpbmVyXG4udXNhLWdyaWQsXG4udXNhLWdyaWQtZnVsbCB7XG4gIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigpO1xuICBtYXgtd2lkdGg6ICRzaXRlLW1heC13aWR0aDtcbn1cblxuLnVzYS1ncmlkIHtcbiAgQGluY2x1ZGUgcGFkZGluZyhudWxsICRzaXRlLW1hcmdpbnMtbW9iaWxlKTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zKTtcbiAgfVxufVxuXG4udXNhLWdyaWQtZnVsbCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIEdyaWQgaXRlbXNcbkBpbmNsdWRlIG1lZGlhKCRtZWRpdW0pIHtcbiAgLnVzYS13aWR0aC1vbmUtd2hvbGUge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLWhhbGYge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLXRoaXJkIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMik7XG4gIH1cblxuICAudXNhLXdpZHRoLXR3by10aGlyZHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLWZvdXJ0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMpO1xuXG4gICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAudXNhLXdpZHRoLXRocmVlLWZvdXJ0aHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLXNpeHRoIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMik7XG5cbiAgICAmOm50aC1jaGlsZCgzbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2Etd2lkdGgtZml2ZS1zaXh0aHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtb25lLXR3ZWxmdGgge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyKTtcblxuICAgICY6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLnVzYS13aWR0aC1maXZlLXR3ZWxmdGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMik7XG4gIH1cblxuICAudXNhLXdpZHRoLXNldmVuLXR3ZWxmdGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEoJGxhcmdlKSB7XG4gIC51c2Etd2lkdGgtb25lLXdob2xlIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICB9XG5cbiAgLnVzYS13aWR0aC1vbmUtaGFsZiB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuICB9XG5cbiAgLnVzYS13aWR0aC1vbmUtdGhpcmQge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbiAgfVxuXG4gIC51c2Etd2lkdGgtdHdvLXRoaXJkcyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDgpO1xuICB9XG5cbiAgLnVzYS13aWR0aC1vbmUtZm91cnRoIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG5cbiAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMpO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDRuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLnVzYS13aWR0aC10aHJlZS1mb3VydGhzIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOSk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS1zaXh0aCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIpO1xuXG4gICAgJjpudGgtY2hpbGQoM24pIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyKTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg2bikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2Etd2lkdGgtZml2ZS1zaXh0aHMge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMCk7XG4gIH1cblxuICAudXNhLXdpZHRoLW9uZS10d2VsZnRoIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMSk7XG5cbiAgICAmOm50aC1jaGlsZCgzbikge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEpO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEybikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2Etd2lkdGgtZml2ZS10d2VsZnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDUpO1xuICB9XG5cbiAgLnVzYS13aWR0aC1zZXZlbi10d2VsZnRocyB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDcpO1xuICB9XG59XG5cbi8vIFNwZWNpZmllcyBlbmQgb2YgYSByb3cuXG4vLyBSZXF1aXJlZCBpZiBncmlkLWJveCBjb250YWlucyBtdWx0aXBsZSByb3dzLlxuLy8gUmVxdWlyZWQgaWYgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IDpsYXN0LWNoaWxkXG4udXNhLWVuZC1yb3cge1xuICBAaW5jbHVkZSBvbWVnYSgpO1xufVxuXG4vLyBHcmlkIE9mZnNldHNcbi51c2Etb2Zmc2V0LW9uZS10d2VsZnRoIHtcbiAgQGluY2x1ZGUgc2hpZnQoMSBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LW9uZS1zaXh0aCB7XG4gIEBpbmNsdWRlIHNoaWZ0KDIgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1vbmUtZm91cnRoIHtcbiAgQGluY2x1ZGUgc2hpZnQoMyBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LW9uZS10aGlyZCB7XG4gIEBpbmNsdWRlIHNoaWZ0KDQgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1maXZlLXR3ZWxmdGhzIHtcbiAgQGluY2x1ZGUgc2hpZnQoNSBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LW9uZS1oYWxmIHtcbiAgQGluY2x1ZGUgc2hpZnQoNiBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LXNldmVuLXR3ZWxmdGhzIHtcbiAgQGluY2x1ZGUgc2hpZnQoNyBvZiAxMik7XG59XG5cbi51c2Etb2Zmc2V0LXR3by10aGlyZHMge1xuICBAaW5jbHVkZSBzaGlmdCg4IG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtdGhyZWUtZm91cnRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDkgb2YgMTIpO1xufVxuXG4udXNhLW9mZnNldC1maXZlLXNpeHRocyB7XG4gIEBpbmNsdWRlIHNoaWZ0KDEwIG9mIDEyKTtcbn1cblxuLnVzYS1vZmZzZXQtZWxldmVuLXR3ZWxmdGhzIHtcbiAgQGluY2x1ZGUgc2hpZnQoMTEgb2YgMTIpO1xufVxuIiwiLy8gSGVhZGluZyBtaXhpbnNcbkBtaXhpbiB0aXRsZSB7XG4gIGZvbnQtc2l6ZTogJHRpdGxlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoMSB7XG4gIGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoMiB7XG4gIGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoMyB7XG4gIGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoNCB7XG4gIGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoNSB7XG4gIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiBoNiB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICBmb250LXNpemU6ICRoNi1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi8vIE1vYmlsZS1maXJzdCBtZWRpYSBxdWVyeSBoZWxwZXJcbkBtaXhpbiBtZWRpYSgkYnApIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skYnB9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU2NyZWVuIHJlYWRlciBvbmx5IGhlbHBlclxuQG1peGluIHNyLW9ubHkoKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5OWVtO1xufVxuXG4udXNhLXNyLW9ubHkge1xuICBAaW5jbHVkZSBzci1vbmx5KCk7XG59XG5cbi8vIEFyaWEgaGlkZGVuIGhlbHBlclxuQG1peGluIGFjY2Vzc2libHktaGlkZGVuKCkge1xuICAmW2FyaWEtaGlkZGVuPXRydWVdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIFVuc3R5bGVkIGxpc3QgaGVscGVyXG5AbWl4aW4gdW5zdHlsZWQtbGlzdCgpIHtcbiAgQGluY2x1ZGUgbWFyZ2luKDAgbnVsbCk7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gID4gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gRm9udCBzbW9vdGhpbmcgbWl4aW5cbi8vIE9ubHkgdXNlIGZvciBsaWdodCB0ZXh0IG9uIGRhcmsgYmFja2dyb3VuZFxuLy8gVE9ETzogUmVtb3ZlIGFmdGVyIGFkZGluZyBQb3N0Q1NTXG5AbWl4aW4gZm9udC1zbW9vdGhpbmcge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLy8gQ29udGVudCBzaXplIGhlbHBlcnNcbkBtaXhpbiBhbGxvdy1sYXlvdXQtY2xhc3NlcyB7XG4gIEBpbmNsdWRlIG1hcmdpbihudWxsIGF1dG8pO1xuXG4gICYud2lkdGgtb25lLWhhbGYge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgfVxuXG4gICYud2lkdGgtb25lLXRoaXJkIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDMzJTtcbiAgICB9XG4gIH1cblxuICAmLndpZHRoLXR3by10aGlyZHMge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICB3aWR0aDogNjclO1xuICAgIH1cbiAgfVxuXG4gICYud2lkdGgtb25lLWZvdXJ0aCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgfVxuICB9XG5cbiAgJi53aWR0aC10aHJlZS1mb3VydGhzIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDc1JTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogMmVtO1xuICAgICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1yaWdodCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyZW07XG4gICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc3BsYXktaWNvbigkaWNvbiwgJGRpcmVjdGlvbiwgJHNpemUsICRtYXJnaW4sICRob3Zlcikge1xuICAmOjojeyRkaXJlY3Rpb259IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skaW1hZ2UtcGF0aH0vI3skaWNvbn0ucG5nKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skaW1hZ2UtcGF0aH0vI3skaWNvbn0uc3ZnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgd2lkdGg6ICRzaXplO1xuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stY2xvc2luZy1icmFjZS1uZXdsaW5lLWFmdGVyLCBhdC1ydWxlLWVtcHR5LWxpbmUtYmVmb3JlICovXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gJ2FmdGVyJyB7XG4gICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICB9XG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICB9XG5cbiAgQGlmICRob3ZlciA9PSAnaG92ZXInIHtcbiAgICAmOmhvdmVyOjojeyRkaXJlY3Rpb259IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS8jeyRpY29ufS1ob3Zlci5wbmcpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCN7JGltYWdlLXBhdGh9LyN7JGljb259LWhvdmVyLnN2Zyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB1c2Etc2lkZW5hdi1saXN0IHtcbiAgQGluY2x1ZGUgdW5zdHlsZWQtbGlzdCgpO1xuXG4gID4gbGkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItZ3JheTtcbiAgICBmb250LXNpemU6ICRoNC1mb250LXNpemU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogJGZvbnQtc2FucztcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIHBhZGRpbmc6IDAuODVyZW0gMXJlbSAwLjg1cmVtIDEuOHJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAmLnVzYS1jdXJyZW50IHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUgKi9cbiAgICAgIGJvcmRlci1sZWZ0OiAwLjRyZW0gc29saWQgJGNvbG9yLXByaW1hcnk7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIHBhZGRpbmctbGVmdDogMS40cmVtO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdXNhLXNpZGVuYXYtc3VibGlzdCB7XG4gIEBpbmNsdWRlIHVuc3R5bGVkLWxpc3QoKTtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcblxuICBsaSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmctbGVmdDogMi44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1saW5lLWhlaWdodDtcblxuICAgICY6aG92ZXIsXG4gICAgJi51c2EtY3VycmVudCB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlICovXG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIuOHJlbTtcbiAgICB9XG4gIH1cblxuICAudXNhLXNpZGVuYXYtc3ViX2xpc3Qge1xuICAgIGEge1xuICAgICAgcGFkZGluZy1sZWZ0OiAzLjhyZW07XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMuOHJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEJ1dHRvbnMgdmFyaWFibGVzXG5cbiRidXR0b24tc3Ryb2tlOiBpbnNldCAwIDAgMCAycHg7XG5cbi8vIEJ1dHRvbnNcblxuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlICovXG4udXNhLWJ1dHRvbixcbi51c2EtYnV0dG9uLXByaW1hcnksXG4udXNhLWJ1dHRvbjp2aXNpdGVkLFxuLnVzYS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLFxuYnV0dG9uLFxuW3R5cGU9YnV0dG9uXSxcblt0eXBlPXN1Ym1pdF0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1pbWFnZV0ge1xuICBAaW5jbHVkZSBmb250LXNtb290aGluZztcbiAgQGluY2x1ZGUgbWFyZ2luKDAuNWVtIDAuNWVtIDAuNWVtIG51bGwpO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBvdXRsaW5lOiBub25lO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAmOmhvdmVyLFxuICAmLnVzYS1idXR0b24taG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlcjtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJjpmb2N1cyxcbiAgJi51c2EtYnV0dG9uLWZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAkZm9jdXMtc2hhZG93O1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlc3Q7XG4gIH1cblxuICAmLnVzYS1idXR0b24tcHJpbWFyeS1hbHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWFsdDtcbiAgICBjb2xvcjogJGNvbG9yLWJhc2U7XG5cbiAgICAmOmhvdmVyLFxuICAgICYudXNhLWJ1dHRvbi1ob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeS1hbHQtZGFyaztcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmLnVzYS1idXR0b24tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWFsdC1kYXJrZXN0O1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB9XG4gIH1cblxuICAmLnVzYS1idXR0b24tc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2Vjb25kYXJ5O1xuXG4gICAgJjpob3ZlcixcbiAgICAmLnVzYS1idXR0b24taG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXNlY29uZGFyeS1kYXJrO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYudXNhLWJ1dHRvbi1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXNlY29uZGFyeS1kYXJrZXN0O1xuICAgIH1cbiAgfVxuXG4gICYudXNhLWJ1dHRvbi1ncmF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheTtcblxuICAgICY6aG92ZXIsXG4gICAgJi51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWRhcms7XG4gICAgfVxuXG4gICAgJjphY3RpdmUsXG4gICAgJi51c2EtYnV0dG9uLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmFzZTtcbiAgICB9XG4gIH1cblxuICAmLnVzYS1idXR0b24tb3V0bGluZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGJveC1zaGFkb3c6ICRidXR0b24tc3Ryb2tlICRjb2xvci1wcmltYXJ5O1xuICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcblxuICAgICY6aG92ZXIsXG4gICAgJi51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6ICRidXR0b24tc3Ryb2tlICRjb2xvci1wcmltYXJ5LWRhcmtlcjtcbiAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG4gICAgfVxuXG4gICAgJjphY3RpdmUsXG4gICAgJi51c2EtYnV0dG9uLWFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiAkYnV0dG9uLXN0cm9rZSAkY29sb3ItcHJpbWFyeS1kYXJrZXN0O1xuICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlc3Q7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmLnVzYS1idXR0b24tZm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLXByaW1hcnktZGFya2VzdCwgJGZvY3VzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAmLnVzYS1idXR0b24tb3V0bGluZS1pbnZlcnNlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiAkYnV0dG9uLXN0cm9rZSAkY29sb3Itd2hpdGU7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcblxuICAgICY6aG92ZXIsXG4gICAgJi51c2EtYnV0dG9uLWhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6ICRidXR0b24tc3Ryb2tlICRjb2xvci1ncmF5LWxpZ2h0ZXI7XG4gICAgICBjb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmLnVzYS1idXR0b24tYWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6ICRidXR0b24tc3Ryb2tlICRjb2xvci1ncmF5LWxpZ2h0O1xuICAgICAgY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXI7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmLnVzYS1idXR0b24tZm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1zdHJva2UgJGNvbG9yLWdyYXktbGlnaHQsICRmb2N1cy1zaGFkb3c7XG4gICAgfVxuICB9XG5cbiAgJi51c2EtYnV0dG9uLWJpZyB7XG4gICAgZm9udC1zaXplOiAxLjlyZW07XG4gICAgcGFkZGluZzogMS41cmVtIDNyZW07XG4gIH1cbn1cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbi51c2EtYnV0dG9uOmRpc2FibGVkLFxuLnVzYS1idXR0b24tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyO1xuICBjb2xvcjogJGNvbG9yLWdyYXktZGFyaztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgJjpob3ZlcixcbiAgJi51c2EtYnV0dG9uLWhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJi51c2EtYnV0dG9uLWFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogJGNvbG9yLWdyYXktZGFyaztcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLXVuc3R5bGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgbWFyZ2luOiAwO1xuICBvdXRsaW5lOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi51c2EtYnV0dG9uLXVuc3R5bGVkIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXVuc3R5bGVkO1xufVxuIiwiJGFzcGVjdC1oZWlnaHQ6IDk7XG4kYXNwZWN0LXdpZHRoOiAxNjtcblxuQG1peGluIGVtYmVkLWNvbnRhaW5lciAoJGhlaWdodCwgJHdpZHRoKSB7XG4gIHBhZGRpbmctYm90dG9tOiBwZXJjZW50YWdlKCRoZWlnaHQvJHdpZHRoKTtcbn1cblxuLnVzYS1lbWJlZC1jb250YWluZXIge1xuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLnVzYS1lbWJlZC1jb250YWluZXIge1xuICBAaW5jbHVkZSBlbWJlZC1jb250YWluZXIoJGFzcGVjdC1oZWlnaHQsICRhc3BlY3Qtd2lkdGgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuIiwiaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vLyBUT0RPOiBBZGQgZG9jdW1lbnRhdGlvbiBpbnN0cnVjdGlvbnMgZm9yIHVzaW5nIHRoaXMgY2xhc3Mgb24gaW1hZ2UgbGlua3NcbkBtaXhpbiBtZWRpYS1saW5rIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMDtcbn1cblxuLm1lZGlhX2xpbmsge1xuICBAaW5jbHVkZSBtZWRpYS1saW5rKCk7XG59XG4iLCIvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nRWxlbWVudCwgUHJvcGVydHlDb3VudFxuXG4kaW5wdXQtbGluZS1oZWlnaHQ6IDEuMztcbiRpbnB1dC1ib3JkZXItd2lkdGg6IDAuMXJlbTsgLy8gVXNpbmcgcmVtIGluc3RlYWQgb2YgcHggc28gZnVuY3Rpb24gdXNlcyBzYW1lIHVuaXRzXG4kaW5wdXQtcGFkZGluZy12ZXJ0aWNhbDogMXJlbTtcblxuLy8gaW5wdXQgaGVpZ2h0cyB3aWxsIHZhcnkgYnkgYnJvd3NlciBhbmQgdHlwZVxuLy8gaWYgaGVpZ2h0IG5vdCBleHBsaWNpdGx5IHNldFxuJGlucHV0LWhlaWdodC1leGFjdDogKFxuICAoJGJhc2UtZm9udC1zaXplICogJGlucHV0LWxpbmUtaGVpZ2h0KSArXG4gICgkaW5wdXQtcGFkZGluZy12ZXJ0aWNhbCAqIDIpICtcbiAgKCRpbnB1dC1ib3JkZXItd2lkdGggKiAyKVxuKTtcblxuLy8gdHJ1bmNhdGVkIHRvIDEgZGVjaW1hbCBwbGFjZVxuLy8gKGkuZS4sIDEuMjFyZW0gLT4gMS4ycmVtKVxuJGlucHV0LWhlaWdodDogZmxvb3IoJGlucHV0LWhlaWdodC1leGFjdCAqIDEwKSAvIDEwO1xuXG4vLyBCbG9jayBmb3JtIGVsZW1lbnRzXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUgKi9cbmlucHV0LFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXItd2lkdGggc29saWQgJGNvbG9yLWdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiAkY29sb3ItYmFzZTsgLy8gc3RhbmRhcmRpemUgb24gZmlyZWZveFxuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIGhlaWdodDogJGlucHV0LWhlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgbWFyZ2luOiAwLjJlbSAwO1xuICBtYXgtd2lkdGg6ICRpbnB1dC1tYXgtd2lkdGg7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nLXZlcnRpY2FsIDAuN2VtO1xuICB3aWR0aDogMTAwJTtcblxuICAmOmZvY3VzLFxuICAmLnVzYS1pbnB1dC1mb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJGZvY3VzLXNoYWRvdztcbiAgfVxuXG4gICYudXNhLWlucHV0LXN1Y2Nlc3Mge1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvci1ncmVlbi1saWdodDtcbiAgfVxufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4udXNhLWlucHV0LWVycm9yIHtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAkY29sb3Itc2Vjb25kYXJ5LWRhcms7XG4gIG1hcmdpbi10b3A6IDNyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjhyZW07XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICBwYWRkaW5nLXRvcDogMC44cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiAxLjlyZW07XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhLFxuICBzZWxlY3Qge1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvci1zZWNvbmRhcnktZGFyaztcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMS45cmVtKTsgLy8gMS41cmVtIGxlZnQgcGFkZGluZyArIDRweCBib3JkZXIgZnJvbSBpbnB1dCBlcnJvciBzcGFjaW5nXG4gIH1cblxuICBsYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIC51c2EtaW5wdXQtaW5saW5lIHtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItd2lkdGggc29saWQgJGNvbG9yLWdyYXk7XG4gICAgd2lkdGg6IGluaGVyaXQ7XG4gIH1cblxuICAudXNhLWlucHV0LWlubGluZS1lcnJvciB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLXNlY29uZGFyeS1kYXJrO1xuICB9XG59XG5cbi51c2EtaW5wdXQtZXJyb3ItbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG4udXNhLWlucHV0LWVycm9yLW1lc3NhZ2Uge1xuICBjb2xvcjogJGNvbG9yLXNlY29uZGFyeS1kYXJrO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nLXRvcDogM3B4O1xufVxuXG4udXNhLWlucHV0LXJlcXVpcmVkOmFmdGVyIHtcbiAgY29sb3I6ICRjb2xvci1zZWNvbmRhcnktZGFya2VzdDtcbiAgY29udGVudDogJyAoKlJlcXVpcmVkKSc7XG59XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDNyZW07XG4gIG1heC13aWR0aDogJGlucHV0LW1heC13aWR0aDtcbn1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IDE2cmVtO1xufVxuXG5zZWxlY3Qge1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2Fycm93LWRvd24ucG5nJyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vYXJyb3ctZG93bi5zdmcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMS4zcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxLjNyZW07XG59XG5cbmxlZ2VuZCB7XG4gIGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbi51c2EtZmllbGRzZXQtaW5wdXRzIHtcbiAgbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuLy8gSGludCB0ZXh0XG5cbi51c2EtZm9ybS1oaW50IHtcbiAgY29sb3I6ICRjb2xvci1ncmF5LW1lZGl1bTtcbiAgZm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8vIEN1c3RvbSBjaGVja2JveGVzXG5cblt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSB7XG4gIC8vIFRoZSBhY3R1YWwgaW5wdXQgZWxlbWVudCBpcyBvbmx5IHZpc2libGUgdG8gc2NyZWVuIHJlYWRlcnMsIGJlY2F1c2VcbiAgLy8gYWxsIHZpc3VhbCBzdHlsaW5nIGlzIGRvbmUgdmlhIHRoZSBsYWJlbC5cbiAgQGluY2x1ZGUgc3Itb25seSgpO1xuXG4gIC5sdC1pZTkgJiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMC40ZW0gMC40ZW0gMCAwO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuW3R5cGU9Y2hlY2tib3hdICsgbGFiZWwsXG5bdHlwZT1yYWRpb10gKyBsYWJlbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG5cblt0eXBlPWNoZWNrYm94XSArIGxhYmVsOjpiZWZvcmUsXG5bdHlwZT1yYWRpb10gKyBsYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRjb2xvci1ncmF5LW1lZGl1bTtcbiAgY29udGVudDogJ1xcYTAnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMS44cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNmVtO1xuICB0ZXh0LWluZGVudDogMC4xNWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFwwOyAvLyBUYXJnZXQgSUUgMTEgYW5kIGJlbG93IHRvIHZlcnRpY2FsbHkgY2VudGVyIGlucHV0c1xuICB3aWR0aDogMS44cmVtO1xufVxuXG5bdHlwZT1yYWRpb10gKyBsYWJlbDo6YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICRjb2xvci13aGl0ZSwgMCAwIDAgM3B4ICRjb2xvci1ncmF5LW1lZGl1bTtcbiAgaGVpZ2h0OiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjZyZW07XG4gIHdpZHRoOiAxLjZyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG5cblt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6OmJlZm9yZSxcblt0eXBlPXJhZGlvXTpjaGVja2VkICsgbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggJGNvbG9yLXByaW1hcnk7XG59XG5cblt0eXBlPXJhZGlvXTpjaGVja2VkICsgbGFiZWw6OmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkY29sb3Itd2hpdGUsIDAgMCAwIDRweCAkY29sb3ItcHJpbWFyeTtcbn1cblxuW3R5cGU9cmFkaW9dOmZvY3VzICsgbGFiZWw6OmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkY29sb3Itd2hpdGUsIDAgMCAwIDRweCAkY29sb3ItcHJpbWFyeSwgMCAwIDNweCA0cHggJGNvbG9yLWZvY3VzLCAwIDAgN3B4IDRweCAkY29sb3ItZm9jdXM7XG59XG5cblt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6OmJlZm9yZSxcblt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmRpc2FibGVkICsgbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vY29ycmVjdDgucG5nJyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vY29ycmVjdDguc3ZnJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuW3R5cGU9Y2hlY2tib3hdOmZvY3VzICsgbGFiZWw6OmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkY29sb3Itd2hpdGUsIDAgMCAwIDNweCAkY29sb3ItcHJpbWFyeTtcbn1cblxuW3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkICsgbGFiZWwge1xuICBjb2xvcjogJGNvbG9yLWdyYXk7XG59XG5cblt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZCArIGxhYmVsOjpiZWZvcmUsXG5bdHlwZT1yYWRpb106ZGlzYWJsZWQgKyBsYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRjb2xvci1ncmF5LWxpZ2h0O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vLyBSYW5nZSBpbnB1dHNcblxuW3R5cGU9cmFuZ2VdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cblt0eXBlPXJhbmdlXTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cblt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JheS1saWdodDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyYXktbWVkaXVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGhlaWdodDogMS4ycmVtO1xuICB3aWR0aDogMTAwJTtcbn1cblxuW3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmF5LW1lZGl1bTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDEuMnJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cblt0eXBlPXJhbmdlXTo6LW1zLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDEuMnJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cblt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmF5LW1lZGl1bTtcbiAgaGVpZ2h0OiAyLjJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXRvcDogLS42NXJlbTtcbiAgd2lkdGg6IDIuMnJlbTtcbn1cblxuW3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRodW1iIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmF5LW1lZGl1bTtcbiAgYm9yZGVyLXJhZGl1czogMS41cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGhlaWdodDogMi4ycmVtO1xuICB3aWR0aDogMi4ycmVtO1xufVxuXG5bdHlwZT1yYW5nZV06Oi1tcy10aHVtYiB7XG4gIGJhY2tncm91bmQ6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JheS1tZWRpdW07XG4gIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDIuMnJlbTtcbiAgd2lkdGg6IDIuMnJlbTtcbn1cblxuW3R5cGU9cmFuZ2VdOjotbXMtZmlsbC1sb3dlciB7XG4gIGJhY2tncm91bmQ6ICRjb2xvci1ncmF5LWxpZ2h0O1xuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JheS1tZWRpdW07XG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XG59XG5cblt0eXBlPXJhbmdlXTo6LW1zLWZpbGwtdXBwZXIge1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JheS1saWdodDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyYXktbWVkaXVtO1xuICBib3JkZXItcmFkaXVzOiAycmVtO1xufVxuXG5bdHlwZT1yYW5nZV06Zm9jdXM6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLWZvY3VzO1xufVxuXG5bdHlwZT1yYW5nZV06Zm9jdXM6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3ItZm9jdXM7XG59XG5cblt0eXBlPXJhbmdlXTpmb2N1czo6LW1zLXRodW1iIHtcbiAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLWZvY3VzO1xufVxuXG4vLyBNZW1vcmFibGUgZGF0ZXNcblxuLnVzYS1kYXRlLW9mLWJpcnRoIHtcbiAgbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICBbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBbdHlwZT1udW1iZXJdIHtcbiAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgfVxufVxuXG4udXNhLWZvcm0tZ3JvdXAtZGF5LFxuLnVzYS1mb3JtLWdyb3VwLW1vbnRoLFxuLnVzYS1mb3JtLWdyb3VwLXllYXIge1xuICBjbGVhcjogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICB3aWR0aDogNXJlbTtcbn1cblxuLnVzYS1mb3JtLWdyb3VwLXllYXIge1xuICB3aWR0aDogN3JlbTtcbn1cbiIsIi51c2EtbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuMXJlbSAwLjdyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgJjpvbmx5LW9mLXR5cGUge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4udXNhLWxhYmVsLWJpZyB7XG4gIEBleHRlbmQgLnVzYS1sYWJlbDtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIHBhZGRpbmctbGVmdDogMC45cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjlyZW07XG59XG4iLCJ1bCxcbm9sIHtcbiAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsKTtcbiAgcGFkZGluZy1sZWZ0OiAxLjk0ZW07IC8vIEFwcHJveGltYXRlbHkgMTVweCBsZWZ0IHBhZGRpbmcgYXQgZGVmYXVsdCBmb250IHNpemVcbn1cblxubGkge1xuICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wIHtcbiAgKyB1bCxcbiAgKyBvbCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4vLyBVbnN0eWxlZCBsaXN0c1xuLnVzYS11bnN0eWxlZC1saXN0IHtcbiAgQGluY2x1ZGUgdW5zdHlsZWQtbGlzdDtcbn1cbiIsInRhYmxlIHtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIG1hcmdpbjogMmVtIDA7XG4gIG1pbi13aWR0aDogMTAwJTtcblxuICB0aGVhZCB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gICAgfVxuICB9XG5cbiAgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICB0Ym9keSB7XG4gICAgdGgge1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgICB9XG4gIH1cblxuICB0aCxcbiAgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JheTtcbiAgICBwYWRkaW5nOiAxLjVyZW07XG4gIH1cbn1cblxuLnVzYS10YWJsZS1ib3JkZXJsZXNzIHtcbiAgdGhlYWQge1xuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIHRoIHtcbiAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgdGgsXG4gIHRkIHtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gIH1cbn1cbiIsImh0bWwge1xuICBmb250LWZhbWlseTogJGZvbnQtc2FucztcbiAgZm9udC1zaXplOiAkZW0tYmFzZTtcbn1cblxuYm9keSB7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xufVxuXG5wIHtcbiAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cblxuYSB7XG4gIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG4gIH1cblxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkY29sb3ItdmlzaXRlZDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6ICRmb2N1cy1zaGFkb3c7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZXh0ZXJuYWwtbGluaygkZXh0ZXJuYWwtbGluaywgJGV4dGVybmFsLWxpbmstaG92ZXIpIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHVybCgnI3skaW1hZ2UtcGF0aH0vI3skZXh0ZXJuYWwtbGlua30ucG5nJykgbm8tcmVwZWF0IDAgMDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJyN7JGltYWdlLXBhdGh9LyN7JGV4dGVybmFsLWxpbmt9LnN2ZycpIG5vLXJlcGVhdCAwIDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDAuNjVlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgd2lkdGg6IDAuNjVlbTtcbiAgfVxuXG4gICY6aG92ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9LyN7JGV4dGVybmFsLWxpbmstaG92ZXJ9LnBuZycpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vI3skZXh0ZXJuYWwtbGluay1ob3Zlcn0uc3ZnJyk7XG4gIH1cbn1cblxuLy8gRXh0ZXJuYWwgbGluayBjb25zaWRlciBcImVmZm9ydGxlc3Mgc3R5bGUgYXBwcm9hY2hcIjpcbi8vIFtocmVmXj1cImh0dHA6XCJdOm5vdChbaHJlZio9XCJteS1kb21haW4uY29tXCJdKVxuLy8gW2hyZWZePVwiaHR0cHM6XCJdOm5vdChbaHJlZio9XCJteS1kb21haW4uY29tXCJdKVxuXG4udXNhLWV4dGVybmFsX2xpbmsge1xuICBAaW5jbHVkZSBleHRlcm5hbC1saW5rKGV4dGVybmFsLWxpbmssIGV4dGVybmFsLWxpbmstaG92ZXIpO1xufVxuXG4udXNhLWV4dGVybmFsX2xpbmstYWx0IHtcbiAgQGluY2x1ZGUgZXh0ZXJuYWwtbGluayhleHRlcm5hbC1saW5rLWFsdCwgZXh0ZXJuYWwtbGluay1hbHQtaG92ZXIpO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBjbGVhcjogYm90aDtcbiAgZm9udC1mYW1pbHk6ICRmb250LXNlcmlmO1xuICBsaW5lLWhlaWdodDogJGhlYWRpbmctbGluZS1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IC41ZW07XG4gIG1hcmdpbi10b3A6IDEuNWVtO1xufVxuXG5oMSB7XG4gIEBpbmNsdWRlIGgxKCk7XG59XG5cbmgyIHtcbiAgQGluY2x1ZGUgaDIoKTtcbn1cblxuaDMge1xuICBAaW5jbHVkZSBoMygpO1xufVxuXG5oNCB7XG4gIEBpbmNsdWRlIGg0KCk7XG59XG5cbmg1IHtcbiAgQGluY2x1ZGUgaDUoKTtcbn1cblxuaDYge1xuICBAaW5jbHVkZSBoNigpO1xufVxuXG4vLyBSZW1vdmUgdXNlciBhZ2VudCBzdHlsZXNcblxuY2l0ZSxcbnZhcixcbmFkZHJlc3MsXG5kZm4ge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi8vIEN1c3RvbSB0eXBvZ3JhcGh5XG5cbi51c2EtY29udGVudCB7XG4gIHA6bm90KC51c2EtZm9udC1sZWFkKSxcbiAgdWw6bm90KC51c2EtYWNjb3JkaW9uKTpub3QoLnVzYS1hY2NvcmRpb24tYm9yZGVyZWQpLFxuICBvbDpub3QoLnVzYS1hY2NvcmRpb24pOm5vdCgudXNhLWFjY29yZGlvbi1ib3JkZXJlZCkge1xuICAgIG1heC13aWR0aDogJHRleHQtbWF4LXdpZHRoO1xuICB9XG59XG5cbi51c2EtY29udGVudC1saXN0IHtcbiAgbWF4LXdpZHRoOiAkdGV4dC1tYXgtd2lkdGg7XG59XG5cbi51c2Etc2FucyB7XG4gIHAsXG4gIGEsXG4gIGxpLFxuICBzcGFuIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtc2FucztcbiAgfVxuXG4gIGEge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIH1cbn1cblxuLnVzYS1zZXJpZiB7XG4gIHAsXG4gIGEsXG4gIGxpLFxuICBzcGFuIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtc2VyaWY7XG4gIH1cbn1cblxuLnVzYS1kaXNwbGF5IHtcbiAgQGluY2x1ZGUgaDMoKTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcblxuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgaDEoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgdGl0bGUoKTtcbiAgfVxufVxuXG4udXNhLWZvbnQtbGVhZCB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zZXJpZjtcbiAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5lLWhlaWdodDtcbiAgbWF4LXdpZHRoOiAkbGVhZC1tYXgtd2lkdGg7XG59XG5cbi51c2EtaW1hZ2UtYmxvY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi51c2EtaW1hZ2UtdGV4dC1ibG9jayB7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiA4JTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG59XG5cbi51c2EtaW1hZ2UtdGV4dCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi51c2EtZHJvcF90ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnVzYS1iYWNrZ3JvdW5kLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1kYXJrO1xuXG4gIHAsXG4gIHNwYW4ge1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS10ZXh0LXNtYWxsIHtcbiAgZm9udC1zaXplOiAkaDYtZm9udC1zaXplO1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4vLyBSZW1vdmVzIHRvcCBtYXJnaW4gZnJvbSBmaXJzdCBjaGlsZCBhbmQgYm90dG9tIG1hcmdpbiBmcm9tIGxhc3QgY2hpbGQgb25cbi8vIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgd2l0aGluIHRob3NlIGxheW91dCBlbGVtZW50cy5cbi51c2Etc2VjdGlvbixcbi51c2EtZ3JpZCxcbi51c2EtZ3JpZC1mdWxsIHtcbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi51c2Etd2lkdGgtb25lLXdob2xlLFxuLnVzYS13aWR0aC1vbmUtaGFsZixcbi51c2Etd2lkdGgtb25lLXRoaXJkLFxuLnVzYS13aWR0aC10d28tdGhpcmRzLFxuLnVzYS13aWR0aC1vbmUtZm91cnRoLFxuLnVzYS13aWR0aC10aHJlZS1mb3VydGhzLFxuLnVzYS13aWR0aC1vbmUtc2l4dGgsXG4udXNhLXdpZHRoLWZpdmUtc2l4dGhzLFxuLnVzYS13aWR0aC1vbmUtdHdlbGZ0aCB7XG4gICY6Zmlyc3QtY2hpbGQge1xuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gVmFyaWFibGVzXG5cbiRhY2NvcmRpb24tYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG5cbi8vIEFjY29yZGlvbiBTdHlsZXNcblxuQG1peGluIGFjY29yZGlvbi1saXN0LXN0eWxlcyB7XG4gIEBpbmNsdWRlIHVuc3R5bGVkLWxpc3Q7XG4gIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1peGluIGFjY29yZGlvbi1saXN0LWl0ZW0tc3R5bGVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlc3Q7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBQcm9wZXJ0eUNvdW50XG5AbWl4aW4gYWNjb3JkaW9uLWJ1dHRvbi1zdHlsZXMge1xuICBAaW5jbHVkZSBidXR0b24tdW5zdHlsZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L21pbnVzLnBuZycpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L21pbnVzLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAzcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxM3B4O1xuICBjb2xvcjogJGNvbG9yLWJhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJGZvbnQtc2FucztcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMS41cmVtIDUuNXJlbSAxLjVyZW0gM3JlbTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJGZvY3VzLXNoYWRvdztcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXI7XG4gICAgY29sb3I6ICRjb2xvci1iYXNlO1xuICB9XG5cbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4vLyBzY3NzLWxpbnQ6ZW5hYmxlIFByb3BlcnR5Q291bnRcblxuQG1peGluIGFjY29yZGlvbi1idXR0b24tdW5vcGVuZWQtc3R5bGVzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9wbHVzLnBuZycpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L3BsdXMuc3ZnJyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMS4zcmVtO1xufVxuXG5AbWl4aW4gYWNjb3JkaW9uLW5lc3RlZC1saXN0IHtcbiAgPiB1bCBsaSB1bCB7XG4gICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICA+IGxpID4gdWwge1xuICAgICAgbGlzdC1zdHlsZTogY2lyY2xlO1xuICAgICAgPiBsaSA+IHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogc3F1YXJlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udXNhLWFjY29yZGlvbixcbi51c2EtYWNjb3JkaW9uLWJvcmRlcmVkIHtcbiAgQGluY2x1ZGUgYWNjb3JkaW9uLWxpc3Qtc3R5bGVzO1xuICBAaW5jbHVkZSBhY2NvcmRpb24tbmVzdGVkLWxpc3Q7XG5cbiAgKyAudXNhLWFjY29yZGlvbixcbiAgKyAudXNhLWFjY29yZGlvbi1ib3JkZXJlZCB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxuXG4gIC8vIFRPRE8gZGVwcmVjYXRlZCBydWxlc2V0IGJhc2VkIG9uIG9sZCBhY2NvcmRpb24uXG4gID4gdWwge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1saXN0LXN0eWxlcztcblxuICAgIC8vIFRPRE8gZGVwcmVjYXRlZCBydWxlc2V0IGJhc2VkIG9uIG9sZCBhY2NvcmRpb24uXG4gICAgPiBsaSB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1pdGVtLXN0eWxlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPIGRlcHJlY2F0ZWQgcnVsZXNldCBiYXNlZCBvbiBvbGQgYWNjb3JkaW9uLlxuICAgIGJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXN0eWxlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPIGRlcHJlY2F0ZWQgcnVsZXNldCBiYXNlZCBvbiBvbGQgYWNjb3JkaW9uLlxuICAgIFthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tYnV0dG9uLXVub3BlbmVkLXN0eWxlcztcbiAgICB9XG4gIH1cblxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tbGlzdC1pdGVtLXN0eWxlcztcbiAgfVxuXG59XG5cbi51c2EtYWNjb3JkaW9uLWJvcmRlcmVkIHtcbiAgLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbi1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6ICRhY2NvcmRpb24tYm9yZGVyO1xuICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbi1ib3JkZXI7XG4gIH1cbn1cblxuLnVzYS1hY2NvcmRpb24tY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6IDNyZW07XG5cbiAgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAmOm5vdChbYXJpYS1oaWRkZW5dKSB7XG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xuICB9XG5cbiAgQGluY2x1ZGUgYWNjZXNzaWJseS1oaWRkZW4oKTtcbn1cblxuLnVzYS1hY2NvcmRpb24tYnV0dG9uIHtcbiAgQGluY2x1ZGUgYWNjb3JkaW9uLWJ1dHRvbi1zdHlsZXM7XG59XG5cbi51c2EtYWNjb3JkaW9uLWJ1dHRvblthcmlhLWV4cGFuZGVkPWZhbHNlXSB7XG4gIEBpbmNsdWRlIGFjY29yZGlvbi1idXR0b24tdW5vcGVuZWQtc3R5bGVzO1xufVxuIiwiLy8gQWxlcnQgdmFyaWFibGVzIC0tLS0tLS0tLS0gLy9cbiR1c2EtY3VzdG9tLWFsZXJ0czogKCkgIWRlZmF1bHQ7XG5cbiR1c2EtYWxlcnRzOiAoXG4gIHN1Y2Nlc3M6ICRjb2xvci1ncmVlbi1saWdodGVzdCxcbiAgd2FybmluZzogJGNvbG9yLWdvbGQtbGlnaHRlc3QsXG4gIGVycm9yOiAkY29sb3Itc2Vjb25kYXJ5LWxpZ2h0ZXN0LFxuICBpbmZvOiAkY29sb3ItcHJpbWFyeS1hbHQtbGlnaHRlc3Rcbik7XG5cbiRhbGVydHM6IG1hcC1tZXJnZSgkdXNhLWFsZXJ0cywgJHVzYS1jdXN0b20tYWxlcnRzKTtcblxuLnVzYS1hbGVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcmVtIDJyZW07XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogNHJlbTtcbiAgbWFyZ2luLXRvcDogMS41ZW07XG4gIHBhZGRpbmc6IDFlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIGJhY2tncm91bmQtc2l6ZTogNS4ycmVtO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlcjtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgICB9XG4gIH1cblxuICB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gIH1cbn1cblxuLnVzYS1hbGVydC1pY29uIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cblxuLnVzYS1hbGVydC1ib2R5IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZy1sZWZ0OiAzLjVyZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XG4gIH1cblxuICBwOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwLjhyZW07XG4gIH1cblxuICBwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiAgfVxufVxuXG4udXNhLWFsZXJ0LWhlYWRpbmcge1xuICBtYXJnaW4tYm90dG9tOiAuM3JlbTtcbiAgbWFyZ2luLXRvcDogMDtcblxuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIG1hcmdpbi10b3A6IC4zcmVtO1xuICB9XG59XG5cbi51c2EtYWxlcnQtdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG5AZWFjaCAkbmFtZSwgJGJnY29sb3IgaW4gJGFsZXJ0cyB7XG4gIC51c2EtYWxlcnQtI3skbmFtZX0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ2NvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vYWxlcnRzLyN7JG5hbWV9LnBuZycpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vYWxlcnRzLyN7JG5hbWV9LnN2ZycpO1xuICB9XG59XG5cbi51c2EtYWxlcnQtbm9faWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi51c2EtYWxlcnQtcGFyYWdyYXBoIHtcbiAgd2lkdGg6ICR0ZXh0LW1heC13aWR0aDtcbiAgcGFkZGluZzogMWVtIDNlbSAxZW0gMWVtO1xufVxuIiwiLnVzYS1iYW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVzdDtcbiAgcGFkZGluZy1ib3R0b206IDAuN3JlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgZm9udC1zaXplOiAkaDYtZm9udC1zaXplO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbi51c2EtYmFubmVyLWNvbnRlbnQge1xuICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucy1tb2JpbGUgM3B4ICRzaXRlLW1hcmdpbnMtbW9iaWxlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgcGFkZGluZy1ib3R0b206IDIuM3JlbTtcbiAgICBwYWRkaW5nLXRvcDogNHJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyk7XG4gIH1cblxuICBwIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi51c2EtYmFubmVyLWlubmVyIHtcbiAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKCk7XG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zLW1vYmlsZSk7XG4gIG1heC13aWR0aDogJHNpdGUtbWF4LXdpZHRoO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyk7XG4gIH1cbn1cblxuLnVzYS1iYW5uZXItaGVhZGVyIHtcbiAgQGluY2x1ZGUgcGFkZGluZygwLjU1cmVtIG51bGwpO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcblxuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygwIG51bGwpO1xuICB9XG5cbiAgcCB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDAgbnVsbCk7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigycHggbnVsbCk7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogMXB4O1xuICAgIHdpZHRoOiAyLjRyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuN3JlbTtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgIH1cbiAgfVxufVxuXG4udXNhLWJhbm5lci1oZWFkZXItZXhwYW5kZWQge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWdyYXktbGlnaHQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgbWluLWhlaWdodDogNS42cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgPiAudXNhLWJhbm5lci1pbm5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIG1hcmdpbi1yaWdodDogMi40cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjdyZW07XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkaW5nLWxpbmUtaGVpZ2h0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuXG4udXNhLWJhbm5lci1idXR0b24ge1xuICBAaW5jbHVkZSBidXR0b24tdW5zdHlsZWQ7XG4gIEBpbmNsdWRlIHBhZGRpbmcoMS4zcmVtIG51bGwgbnVsbCA0LjhyZW0pO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IHJpZ2h0O1xuICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgaGVpZ2h0OiA0LjNyZW07XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMCBudWxsIG51bGwgMCk7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tYmxvY2stbm8taWdub3JlZC1wcm9wZXJ0aWVzICovXG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGhlaWdodDogaW5pdGlhbDtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiBpbml0aWFsO1xuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICAmW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdIHtcbiAgICBAaW5jbHVkZSBkaXNwbGF5LWljb24oYW5nbGUtYXJyb3ctZG93bi1wcmltYXJ5LCBhZnRlciwgMXJlbSwgMCwgaG92ZXIpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDFweDtcbiAgICB9XG4gIH1cblxuICAmW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICAgIEBpbmNsdWRlIGRpc3BsYXktaWNvbihjbG9zZSwgYWZ0ZXIsIDEuM3JlbSwgMCwgbm8taG92ZXIpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgaGVpZ2h0OiA1LjZyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBAaW5jbHVkZSBkaXNwbGF5LWljb24oYW5nbGUtYXJyb3ctdXAtcHJpbWFyeSwgYWZ0ZXIsIDFyZW0sIDAsIGhvdmVyKTtcbiAgICAgIGhlaWdodDogaW5pdGlhbDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAxcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgIHRvcDogMi4xNXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgfVxuICAgIH1cblxuICAgIC51c2EtYmFubmVyLWJ1dHRvbi10ZXh0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udXNhLWJhbm5lci1pY29uIHtcbiAgd2lkdGg6IDMuOHJlbTtcbn1cbiIsIi51c2EtZm9vdGVyIHtcbiAgLnVzYS11bnN0eWxlZC1saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC51c2EtZm9vdGVyLXByaW1hcnktbGluayB7XG4gICAgY29sb3I6ICRjb2xvci1iYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG59XG5cbi51c2EtZm9vdGVyLXJldHVybi10by10b3Age1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgcGFkZGluZy10b3A6IDJyZW07XG59XG5cbi51c2EtZm9vdGVyLXByaW1hcnktc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuXG4gIC51c2EtZm9vdGVyLXByaW1hcnktY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMi41cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC51c2EtZ3JpZC1mdWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XG4gICAgfVxuICB9XG59XG5cbi51c2EtZm9vdGVyLW1lZGl1bSB7XG4gIC51c2EtZm9vdGVyLXByaW1hcnktc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIH1cblxuICAgIC51c2EtZm9vdGVyLXByaW1hcnktY29udGVudCB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNiU7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuKSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnVzYS1mb290ZXItbmF2IHVsIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1mb290ZXItc2xpbSB7XG4gIC51c2EtZm9vdGVyLW5hdiB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAudXNhLWZvb3Rlci1wcmltYXJ5LWNvbnRlbnQge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDklO1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC51c2EtZm9vdGVyLXByaW1hcnktc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICBwYWRkaW5nLXRvcDogMXJlbTtcblxuICAgICAgLnVzYS1ncmlkLWZ1bGwge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC51c2EtZm9vdGVyLWNvbnRhY3RfaW5mbyB7XG4gICAgPiAqIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyAoMnJlbSBudWxsKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuICAgIH1cbiAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUgKi9cbnVsLnVzYS1mb290ZXItcHJpbWFyeS1jb250ZW50LFxubGkudXNhLWZvb3Rlci1wcmltYXJ5LWNvbnRlbnQsXG5saS51c2EtZm9vdGVyLXByaW1hcnktY29udGVudCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItYmFzZTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1iYXNlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbi51c2Etc2lnbl91cC1ibG9jayB7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMi41cmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBsYWJlbDpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi51c2EtZm9vdGVyLXNlY29uZGFyeV9zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyYXktbGlnaHRlcjtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xuXG4gIGEge1xuICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgfVxufVxuXG4udXNhLWZvb3Rlci1iaWctc2Vjb25kYXJ5LXNlY3Rpb24ge1xuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICB9XG59XG5cbi51c2EtZm9vdGVyLWNvbnRhY3QtbGlua3Mge1xuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi51c2Etc29jaWFsLWxpbmtzIHtcbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi51c2EtZm9vdGVyLWJpZyB7XG4gIC51c2EtZm9vdGVyLXByaW1hcnktc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItYmFzZTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBsaW5lLWhlaWdodDogMmVtO1xuICAgIH1cblxuICAgIC51c2EtZm9vdGVyLXByaW1hcnktbGluayB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2Fycm93LWRvd24ucG5nJyk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2Fycm93LWRvd24uc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxLjVyZW0gY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMS4zcmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMuNXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjhyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgID4gKiB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigwIG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaGlkZGVuIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUgKi9cbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC51c2EtZm9vdGVyLXByaW1hcnktbGluayB7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlICovXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vYXJyb3ctcmlnaHQucG5nJyk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vYXJyb3ctcmlnaHQuc3ZnJyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udXNhLWZvb3Rlci10b3BpYyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMnJlbSAwO1xufVxuXG4udXNhLXNpZ25fdXAtaGVhZGVyIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICB9XG59XG5cbi51c2EtZm9vdGVyLWxvZ28taW1nIHtcbiAgbWF4LXdpZHRoOiAxNHJlbTtcbn1cblxuLnVzYS1mb290ZXItc2xpbS1sb2dvLWltZyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXgtd2lkdGg6IDEwcmVtO1xufVxuXG4udXNhLWZvb3Rlci1sb2dvLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuXG4udXNhLWZvb3Rlci1jb250YWN0LWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxufVxuXG4udXNhLWZvb3Rlci1zbGltLWxvZ28taGVhZGluZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgfVxufVxuXG4udXNhLXNvY2lhbF9saW5rIHtcbiAgJGJhY2tncm91bmQtaGVpZ2h0OiAzcmVtOyAvLyBIZWlnaHQgb2YgaWNvbiB3aXRoaW4gaGl0IGFyZWEuXG4gIC8vIExpbmsgaGl0IHRhcmdldCBpcyA0NCB4IDQ0IHBpeGVscyBmb2xsb3dpbmdcbiAgLy8gQXBwbGUgaU9TIEh1bWFuIEludGVyZmFjZSBHdWlkZWxpbmVzLlxuICAkaGl0LWFyZWE6IDQuNHJlbTtcblxuICBAaW5jbHVkZSBtYXJnaW4oMi41cmVtIDFyZW0gMS41cmVtIDApO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gJGJhY2tncm91bmQtaGVpZ2h0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogJGhpdC1hcmVhO1xuICBsZWZ0OiAtMS42cmVtOyAvLyByZWxhdGl2ZSBsZWZ0IHBvc2l0aW9uaW5nXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogJGhpdC1hcmVhO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDAgMCAwIDFyZW0pO1xuICAgIGxlZnQ6IDEuMnJlbTtcbiAgfVxuXG4gIHNwYW4ge1xuICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcbiAgfVxufVxuXG4udXNhLWxpbmstZmFjZWJvb2sge1xuICBAZXh0ZW5kIC51c2Etc29jaWFsX2xpbms7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc29jaWFsLWljb25zL3BuZy9mYWNlYm9vazI1LnBuZycpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L3NvY2lhbC1pY29ucy9zdmcvZmFjZWJvb2syNS5zdmcnKTtcbn1cblxuLnVzYS1saW5rLXR3aXR0ZXIge1xuICBAZXh0ZW5kIC51c2Etc29jaWFsX2xpbms7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc29jaWFsLWljb25zL3BuZy90d2l0dGVyMTYucG5nJyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc29jaWFsLWljb25zL3N2Zy90d2l0dGVyMTYuc3ZnJyk7XG59XG5cbi51c2EtbGluay15b3V0dWJlIHtcbiAgQGV4dGVuZCAudXNhLXNvY2lhbF9saW5rO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L3NvY2lhbC1pY29ucy9wbmcveW91dHViZTE1LnBuZycpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L3NvY2lhbC1pY29ucy9zdmcveW91dHViZTE1LnN2ZycpO1xufVxuXG4udXNhLWxpbmstcnNzIHtcbiAgQGV4dGVuZCAudXNhLXNvY2lhbF9saW5rO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L3NvY2lhbC1pY29ucy9wbmcvcnNzMjUucG5nJyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc29jaWFsLWljb25zL3N2Zy9yc3MyNS5zdmcnKTtcbn1cbiIsIiR1c2EtZm9ybS13aWR0aDogMzJyZW07XG5cbmZvcm0ge1xuICBhIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICB9XG5cbiAgW3R5cGU9c3VibWl0XSxcbiAgW3R5cGU9c3VibWl0XSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgbWFyZ2luLXRvcDogMi41cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMi43ZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyLjdlbTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIFtuYW1lPXBhc3N3b3JkXSxcbiAgW25hbWU9Y29uZmlybVBhc3N3b3JkXSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS4xcmVtO1xuICB9XG59XG5cbi51c2EtZm9ybSB7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgbWF4LXdpZHRoOiAkdXNhLWZvcm0td2lkdGg7XG4gIH1cbn1cblxuLnVzYS1mb3JtLW5vdGUge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gIG1hcmdpbjogMCAwIDEuNXJlbTtcblxuICArICoge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi51c2EtZm9ybS1sYXJnZSB7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgbWF4LXdpZHRoOiA0NnJlbTtcbiAgfVxufVxuXG5pbnB1dCB7XG4gICYudXNhLWlucHV0LXRpbnkgeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgfVxuICB9XG5cbiAgJi51c2EtaW5wdXQtbWVkaXVtIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUgKi9cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgbWF4LXdpZHRoOiAxMnJlbTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1pbnB1dC1ncmlkIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1JTtcbiAgfVxufVxuXG4udXNhLWlucHV0LWdyaWQ6bGFzdC1vZi10eXBlIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cbi51c2EtaW5wdXQtZ3JpZC1zbWFsbCB7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDM1JTtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICB9XG5cbiAgc2VsZWN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICB9XG59XG5cbi51c2EtaW5wdXQtZ3JpZC1tZWRpdW0ge1xuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA2NSU7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgfVxufVxuXG4udXNhLWlucHV0LWdyaWQtbGFyZ2Uge1xuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIH1cbn1cblxuLnVzYS1hZGRpdGlvbmFsX3RleHQge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4vLyBSZXNldCBwYXNzd29yZCBjaGVja2xpc3RcblxuLnVzYS1jaGVja2xpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAzZW07XG4gICAgdGV4dC1pbmRlbnQ6IC0yZW07XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiAuOGVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAuMmVtO1xuICAgICAgd2lkdGg6IDEuOGVtO1xuICAgIH1cbiAgfVxufVxuXG4udXNhLWNoZWNrbGlzdC1jaGVja2VkIHtcbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2NvcnJlY3Q5LnBuZycpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vY29ycmVjdDkuc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgfVxufVxuIiwiLy8gQSBjb2xsZWN0aW9uIG9mIG1lZGlhIGJsb2NrIG9iamVjdHNcblxuLnVzYS1ncmFwaGljX2xpc3Qge1xuICAudXNhLWdyYXBoaWNfbGlzdC1yb3cge1xuICAgIC51c2EtbWVkaWFfYmxvY2sge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHNpdGUtbWFyZ2lucztcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNpdGUtbWFyZ2lucyAqIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIC51c2EtbWVkaWFfYmxvY2sge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudXNhLW1lZGlhX2Jsb2NrLWltZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc2l0ZS1tYXJnaW5zO1xuICB9XG5cbiAgLnVzYS1tZWRpYV9ibG9jay1ib2R5IHtcbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gSGVhZGVyIHZhcmlhYmxlcyAtLS0tLS0tLS0tIC8vXG5cbiRoZWlnaHQtbmF2LXNlY29uZGFyeTogNXJlbTtcbiR3aWR0aC1uYXYtc2lkZWJhcjogICAgMjUwcHg7XG5cbi8vIHotaW5kZXhlcyAtIFRPRE8gcmVmYWN0b3IgdG8gYSBzaXRlLXdpZGUgei1pbmRleCBtYW5hZ2VtZW50IGFwcHJvYWNoXG4kei1pbmRleC1oZWFkZXI6ICA3MDAwO1xuJHotaW5kZXgtb3ZlcmxheTogODAwMDtcbiR6LWluZGV4LW5hdjogICAgIDkwMDA7XG5cbi8vIEhlYWRlciAtLS0tLS0tLS0tLS0tIC8vXG5cbi51c2EtaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6ICR6LWluZGV4LWhlYWRlcjtcblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmF5LWxpZ2h0O1xuICB9XG5cbiAgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuXG4gIC51c2Etc2VhcmNoIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbWF4LXdpZHRoOiAyMS41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4udXNhLWxvZ28ge1xuICBmbG9hdDogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDRyZW07XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIGxpbmUtaGVpZ2h0OiA3LjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogJGNvbG9yLWJhc2U7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1sb2dvLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkaDUtZm9udC1zaXplO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBtYXJnaW46IDA7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1saW5lLWhlaWdodDtcbiAgfVxufVxuXG4udXNhLW1lbnUtYnRuIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tYmxvY2stbm8taWdub3JlZC1wcm9wZXJ0aWVzICovXG4gIEBpbmNsdWRlIGJ1dHRvbi11bnN0eWxlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6ICRoNi1mb250LXNpemU7XG4gIGhlaWdodDogNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDRyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDogNS44cmVtO1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlcjtcbiAgfVxuXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgfVxufVxuXG4udXNhLW92ZXJsYXkge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCk7XG4gIGJhY2tncm91bmQ6ICRjb2xvci1ibGFjaztcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogJHotaW5kZXgtb3ZlcmxheTtcblxuICAmLmlzLXZpc2libGUge1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbi8vIEJhc2ljIGhlYWRlciAtLS0tLS0tLS0tLSAvL1xuXG4udXNhLWhlYWRlci1iYXNpYyB7XG4gIC51c2EtbG9nbyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgYm90dG9tOiAxLjlyZW07XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICB9XG5cbiAgLnVzYS1uYXZiYXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxOCU7IC8vIFRPRE86IHJldmlldyB0aGlzIG1vcmVcbiAgICB9XG4gIH1cbn1cblxuLy8gRXh0ZW5kZWQgaGVhZGVyIC0tLS0tLS0tLS0tIC8vXG5cbi51c2EtaGVhZGVyLWV4dGVuZGVkIHtcbiAgLnVzYS1oZWFkZXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnVzYS1sb2dvIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4oM3JlbSBudWxsKTtcbiAgICB9XG4gIH1cblxuICBlbSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgZm9udC1zaXplOiAzLjJyZW07XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG4gIH1cblxuICAudXNhLW5hdmJhciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKCk7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC13aWR0aDogJHNpdGUtbWF4LXdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtbmF2IHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWdyYXktbGlnaHQ7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAudXNhLW5hdi1pbm5lciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKCk7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgJHNpdGUtbWFyZ2lucyBudWxsIDJyZW0pO1xuICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgIG1heC13aWR0aDogJHNpdGUtbWF4LXdpZHRoO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtbmF2LXByaW1hcnkge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICAmW2FyaWEtZXhwYW5kZWQ9ZmFsc2VdLFxuICAgICAgJlthcmlhLWV4cGFuZGVkPXRydWVdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUgKi9cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkgeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEuNXJlbSB0b3AgNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnVzYS1uYXYtbGluayB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgcGFkZGluZy10b3A6IDEuOXJlbTtcbiAgICB9XG4gIH1cblxuICAudXNhLW5hdi1zdWJtZW51IHtcbiAgICAudXNhLWdyaWQtZnVsbCB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4ycmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC51c2EtbWVnYW1lbnUge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHNpdGUtbWFyZ2lucztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEhlcm8gZmVhdHVyZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnVzYS1oZXJvIHtcbiAgQGluY2x1ZGUgcGFkZGluZygkc2l0ZS1tYXJnaW5zIG51bGwpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2hlcm8ucG5nJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAudXNhLWJ1dHRvbiB7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgfVxufVxuXG4udXNhLXNlY3Rpb24tZGFyayB7XG4gIC51c2EtaGVyby1saW5rIHtcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnktYWx0O1xuICB9XG59XG5cbi51c2EtaGVyby1jYWxsb3V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgcGFkZGluZzogM3JlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgbWF4LXdpZHRoOiAzMHJlbTtcbiAgfVxuXG4gID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDAgbnVsbCAkc2l0ZS1tYXJnaW5zIG51bGwpO1xuICB9XG5cbiAgLnVzYS1idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiA3cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi51c2EtaGVyby1jYWxsb3V0LWFsdCB7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLy8gRmxleGJveCBwb3NpdGlvbmluZyB0byBtb3ZlIHNpZGVuYXYgYmVsb3cgbWFpbiBjb250ZW50IG9uIHNtYWxsIHNjcmVlbnNcbi51c2EtbGF5b3V0LWRvY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4pIHtcbiAgICBkaXNwbGF5OiBpbmhlcml0O1xuICB9XG5cbiAgLnVzYS1ncmlkIHtcbiAgICA+IDpmaXJzdC1jaGlsZDpub3QoLnVzYS13aWR0aC0qKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQ6bm90KC51c2Etd2lkdGgtKikge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1sYXlvdXQtZG9jcy1zaWRlbmF2IHtcbiAgb3JkZXI6IDI7XG59XG5cbi51c2EtbGF5b3V0LWRvY3MtbWFpbl9jb250ZW50IHtcbiAgbWFyZ2luLWJvdHRvbTogJHNpdGUtbWFyZ2lucztcbiAgb3JkZXI6IDE7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuIiwiQG1peGluIG1lZGlhLWJsb2NrLWltZygkbWFyZ2luLXJpZ2h0OiAxcmVtKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4tcmlnaHQ7XG59XG5cbi51c2EtbWVkaWFfYmxvY2staW1nIHtcbiAgQGluY2x1ZGUgbWVkaWEtYmxvY2staW1nO1xufVxuXG4udXNhLW1lZGlhX2Jsb2NrLWJvZHkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIiwiLy8gSGVhZGVyIG5hdmlnYXRpb24gLS0tLS0tLS0tLS0tLSAvL1xuXG5AbWl4aW4gbmF2LWJvcmRlciB7XG4gIGJvcmRlci1ib3R0b206IDAuN3JlbSBzb2xpZCAkY29sb3ItcHJpbWFyeTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbi51c2EtbmF2YmFyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ncmF5LWxpZ2h0O1xuICBoZWlnaHQ6IDRyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMTAuM3JlbTsgLy8gWFhYIG1hZ2ljIG51bWJlclxuICB9XG59XG5cbi51c2EtbmF2LWxpbmsge1xuICBAaW5jbHVkZSBmb250LXNtb290aGluZztcblxuICAmOmhvdmVyIHtcbiAgICBzcGFuIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgQGluY2x1ZGUgbmF2LWJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnVzYS1uYXYtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigpO1xuICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAkc2l0ZS1tYXJnaW5zKTtcbiAgICBtYXgtd2lkdGg6ICRzaXRlLW1heC13aWR0aDtcbiAgfVxufVxuXG4udXNhLW5hdiB7XG4gICRzbGlkaW5nLXBhbmVsLXdpZHRoOiAyNnJlbTtcblxuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCAwIDAgYXV0byk7XG5cbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvci1ncmF5LWxpZ2h0O1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDJyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2xpZGluZy1wYW5lbC13aWR0aCk7XG4gIHdpZHRoOiAkc2xpZGluZy1wYW5lbC13aWR0aDtcbiAgei1pbmRleDogJHotaW5kZXgtbmF2O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDVyZW0gMCAwIG51bGwpO1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAmLmlzLXZpc2libGUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgfVxuXG4gIG5hdiB7XG4gICAgbWFyZ2luLXRvcDogNnJlbTsgLy8gWFhYIG1hZ2ljIG51bWJlclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtY3VycmVudCB7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAkY29sb3ItcHJpbWFyeTtcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjRyZW07XG4gIH1cblxuICAudXNhLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAudXNhLXNlYXJjaCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTsgLy8gWFhYIG1hZ2ljIG51bWJlclxuICAgIH1cbiAgfVxufVxuXG4vLyBQcmltYXJ5IG5hdmlnYXRpb24gLS0tLS0tLS0tLS0tLSAvL1xuXG4udXNhLW5hdi1wcmltYXJ5IHtcbiAgQGluY2x1ZGUgdXNhLXNpZGVuYXYtbGlzdDtcbiAgb3JkZXI6IDI7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cbiAgfVxuXG4gID4gbGkge1xuICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgLy8gbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgfVxuXG4gICAgPiBhIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZygxLjNyZW0gMS41cmVtIDEuN3JlbSAxLjVyZW0pO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWdyYXk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBidXR0b24ge1xuICAgICRidXR0b24tdmVydGljYWwtb2Zmc2V0OiA0NCU7XG5cbiAgICBAaW5jbHVkZSBidXR0b24tdW5zdHlsZWQ7XG4gICAgQGluY2x1ZGUgZm9udC1zbW9vdGhpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgICBwYWRkaW5nOiAxLjRyZW0gMS41cmVtIDFyZW0gMS44cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIDNyZW0gMS45cmVtIDEuNXJlbSk7XG4gICAgICBjb2xvcjogJGNvbG9yLWdyYXk7XG4gICAgICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIHdpZHRoOiBpbml0aWFsO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogJGZvY3VzLXNoYWRvdztcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXN0O1xuICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICZbYXJpYS1leHBhbmRlZD1mYWxzZV0geyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9wbHVzLWFsdC5wbmcnKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vcGx1cy1hbHQuc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMCBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9hbmdsZS1hcnJvdy1kb3duLnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2FuZ2xlLWFycm93LWRvd24uc3ZnJyk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEuNXJlbSB0b3AgJGJ1dHRvbi12ZXJ0aWNhbC1vZmZzZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJlthcmlhLWV4cGFuZGVkPXRydWVdIHsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUgKi9cbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vbWludXMtYWx0LnBuZycpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9taW51cy1hbHQuc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMCBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9hbmdsZS1hcnJvdy1kb3duLWhvdmVyLnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2FuZ2xlLWFycm93LWRvd24taG92ZXIuc3ZnJyk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEuNXJlbSB0b3AgJGJ1dHRvbi12ZXJ0aWNhbC1vZmZzZXQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIEBpbmNsdWRlIG5hdi1ib3JkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgYS51c2EtY3VycmVudCB7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG4gICAgICAvLyB1bmRvIHRoZSBzaWRlbmF2IHN0eWxlXG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgbmF2LWJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gU2Vjb25kYXJ5IG5hdmlnYXRpb24gLS0tLS0tLS0tLS0gLy9cblxuLnVzYS1uYXYtc2Vjb25kYXJ5IHtcbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogJHNpdGUtbWFyZ2lucztcbiAgICB0b3A6IC01LjdyZW07IC8vIFhYWCBtYWdpYyBudW1iZXJcbiAgfVxuXG4gIC51c2Etc2VhcmNoIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oM3JlbSBudWxsKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigtMC4ycmVtIG51bGwgMCAwKTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4udXNhLW5hdi1zZWNvbmRhcnktbGlua3Mge1xuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cblxuICBsaSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIH1cblxuICAgICY6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhLFxuICAudXNhLWhlYWRlci1zZWFyY2gtYnV0dG9uIHtcbiAgICBjb2xvcjogJGNvbG9yLWdyYXk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICB9XG4gIH1cblxuICAudXNhLWhlYWRlci1zZWFyY2gtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24tdW5zdHlsZWQ7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc2VhcmNoLWFsdC5wbmcnKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc2VhcmNoLWFsdC5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMi4ycmVtO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjNyZW07XG4gICAgfVxuXG4gICAgJi5pcy1oaWRkZW4ge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBhLnVzYS1jdXJyZW50IHsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgICAgIC8vIHVuZG8gdGhlIHNpZGVuYXYgc3R5bGVcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBOYXZpZ2F0aW9uIHN1Ym1lbnUgKGRyb3Bkb3duIGFuZCBtZWdhIG1lbnUpIC0tLS0tIC8vXG5cbi51c2EtbmF2LXN1Ym1lbnUge1xuICAvLyBAaW5jbHVkZSB1c2Etc2lkZW5hdi1zdWJsaXN0O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlZC1saXN0O1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMS4xNXJlbSBudWxsKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXN0O1xuICAgIG1pbi13aWR0aDogMjEuNXJlbTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAmW2FyaWEtaGlkZGVuPXRydWVdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtOyAvLyBYWFggbWFnaWMgbnVtYmVyXG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlc3Q7XG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRoaXMgdXNlZCB0byBiZSBuZWNlc3NhcnkgdG8gdW5kbyB0aGUgYHVzYS1zaWRlbmF2LXN1Ymxpc3RgXG4gICAgLy8gaW5jbHVkZSwgYWJvdmVcbiAgICAvLyAmOmhvdmVyLFxuICAgIC8vICYudXNhLWN1cnJlbnQgeyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSAqL1xuICAgIC8vICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIC8vICAgICBwYWRkaW5nLWxlZnQ6IDEuOHJlbTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gIH1cblxuICBsaSB7XG4gICAgZm9udC1zaXplOiAkaDUtZm9udC1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gTmF2aWdhdGlvbiBjbG9zZSBidXR0b24gLS0tLS0tLS0gLy9cblxuLnVzYS1uYXYtY2xvc2Uge1xuICBAaW5jbHVkZSBidXR0b24tdW5zdHlsZWQ7XG4gIEBpbmNsdWRlIG1hcmdpbigtMS4ycmVtIC0xLjVyZW0gMi40cmVtIGF1dG8pO1xuICBmbG9hdDogcmlnaHQ7XG4gIGhlaWdodDogJGhpdC1hcmVhO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAkaGl0LWFyZWE7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAxLjNyZW07XG4gIH1cbn1cblxuLnVzYS1tb2JpbGVfbmF2LWFjdGl2ZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIE5hdmlnYXRpb24gbWVnYSBtZW51IC0tLS0tLS0tIC8vXG5cbkBtaXhpbiBvdXRlci1tZWdhbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWRhcmtlc3Q7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMDAlO1xufVxuXG4udXNhLW1lZ2FtZW51IHtcbiAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMy4xNXJlbSBudWxsKTsgLy8gWFhYIG1hZ2ljIG51bWJlclxuICAgIC8vIFhYWCB0aGlzIGlzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIDJyZW0gcGFkZGluZy1sZWZ0XG4gICAgLy8gb2YgLnVzYS1uYXYtaW5uZXIgYW5kIHRoZSAkc2l0ZS1tYXJnaW5zICgzcmVtKSBwYWRkaW5nLWxlZnRcbiAgICAvLyBvZiAudXNhLW1lZ2FtZW51XG4gICAgbGVmdDogLTFyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIEBpbmNsdWRlIG91dGVyLW1lZ2FtZW51O1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgIEBpbmNsdWRlIG91dGVyLW1lZ2FtZW51O1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLnVzYS1oZWFkZXItYmFzaWMtbWVnYW1lbnUge1xuICAudXNhLW5hdiB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAudXNhLW5hdi1pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG5hdi13aWR0aCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW4tdG9wOiAtNC44cmVtO1xuICAgIH1cbiAgfVxuXG4gIC51c2EtbmF2LXN1Ym1lbnUge1xuICAgIC51c2EtZ3JpZC1mdWxsIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRuYXYtd2lkdGgpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjhyZW07IC8vIFhYWCBtYWdpYyBudW1iZXJcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnVzYS1tZWdhbWVudS1jb2wge1xuICBAaW5jbHVkZSBtZWRpYSgkbmF2LXdpZHRoKSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMpO1xuXG4gICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg0bikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gID4gdWwge1xuICAgIEBpbmNsdWRlIHVuc3R5bGVkLWxpc3Q7XG4gIH1cbn1cbiIsIiR1c2EtYnRuLXNtYWxsLXdpZHRoOiAgIDQuNXJlbTtcbiR1c2EtYnRuLW1lZGl1bS13aWR0aDogIDguNXJlbTtcbiR1c2EtYnRuLWJpZy13aWR0aDogICAgIDExLjZyZW07XG5cbkBtaXhpbiBzZWFyY2gtaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc2VhcmNoLnBuZycpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L3NlYXJjaC5zdmcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4udXNhLXNlYXJjaCB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBbdHlwZT1zZWFyY2hdLFxuICAudXNhLXNlYXJjaC1pbnB1dCB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygwIG51bGwpO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgaGVpZ2h0OiAzLjNyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyR1c2EtYnRuLXNtYWxsLXdpZHRofSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skdXNhLWJ0bi1tZWRpdW0td2lkdGh9KTtcbiAgICB9XG4gIH1cblxuICBbdHlwZT1zdWJtaXRdLFxuICAudXNhLXNlYXJjaC1zdWJtaXQge1xuICAgIEBpbmNsdWRlIHNlYXJjaC1pY29uO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICBoZWlnaHQ6IDMuM3JlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogJHVzYS1idG4tc21hbGwtd2lkdGg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgd2lkdGg6ICR1c2EtYnRuLW1lZGl1bS13aWR0aDtcbiAgICB9XG4gIH1cblxuICAudXNhLXNlYXJjaC1zdWJtaXQtdGV4dCB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gICYudXNhLXNlYXJjaC1iaWcge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICRoZWlnaHQ6IDQuNHJlbTtcbiAgICAgICR3aWR0aDogJHVzYS1idG4tYmlnLXdpZHRoO1xuXG4gICAgICBbdHlwZT1zZWFyY2hdLFxuICAgICAgLnVzYS1zZWFyY2gtaW5wdXQge1xuICAgICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skd2lkdGh9KTtcbiAgICAgIH1cblxuICAgICAgW3R5cGU9c3VibWl0XSxcbiAgICAgIC51c2Etc2VhcmNoLXN1Ym1pdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYudXNhLXNlYXJjaC1zbWFsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgJHdpZHRoOiAkdXNhLWJ0bi1zbWFsbC13aWR0aDtcblxuICAgICAgW3R5cGU9c2VhcmNoXSxcbiAgICAgIC51c2Etc2VhcmNoLWlucHV0IHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JHdpZHRofSk7XG4gICAgICB9XG5cbiAgICAgIFt0eXBlPXN1Ym1pdF0sXG4gICAgICAudXNhLXNlYXJjaC1zdWJtaXQge1xuICAgICAgICBAaW5jbHVkZSBzZWFyY2gtaWNvbjtcbiAgICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkbHQtbmF2LXdpZHRoOiAkbmF2LXdpZHRoIC0gMXB4O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGx0LW5hdi13aWR0aCkge1xuICAgICAgJi51c2Etc3Itb25seSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi51c2Etc2VjdGlvbiB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoJHNpdGUtbWFyZ2lucyBudWxsKTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoNnJlbSBudWxsKTtcbiAgfVxufVxuXG4udXNhLXNlY3Rpb24tbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVzdDtcbn1cblxuLnVzYS1zZWN0aW9uLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeS1kYXJrZXN0O1xuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1hbHQ7XG4gIH1cblxuICBwIHtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgfVxuICB9XG59XG4iLCJcbi51c2Etc2lkZW5hdi1saXN0IHtcbiAgQGluY2x1ZGUgdXNhLXNpZGVuYXYtbGlzdDtcbn1cblxuLnVzYS1zaWRlbmF2LXN1Yl9saXN0IHtcbiAgQGluY2x1ZGUgdXNhLXNpZGVuYXYtc3VibGlzdDtcbn1cbiIsIi51c2Etc2tpcG5hdiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogJGNvbG9yLWJhc2U7XG4gIGxlZnQ6IDA7XG4gIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTQuMnJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHotaW5kZXg6IDEwMDtcblxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gICAgbGVmdDogMDtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNBQSxxQkFBcUI7QXdGR25CLEFBQUEsSUFBSSxDQUFDO0VBQ0gsVUFBVSxFQUFFLFVBQVUsR0FDdkI7O0FBRUQsQUFDRSxDQURELEVBQUQsQUFFRSxDQUZELEFBRUMsT0FBUSxFQUZWLEFBR0Us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 */
