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

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

.icon-sound-mix:before {
  content: "\e910"; }

.icon-instagram-with-circle:before {
  content: "\e90f"; }

.icon-box-add:before {
  content: "\e90d"; }

.icon-zoom-in:before {
  content: "\e90e"; }

.icon-apple:before {
  content: "\e90a"; }

.icon-android:before {
  content: "\e90b"; }

.icon-mark:before {
  content: "\e90c"; }

.icon-chevron-down:before {
  content: "\e900"; }

.icon-chevron-left:before {
  content: "\e901"; }

.icon-chevron-right:before {
  content: "\e902"; }

.icon-chevron-up:before {
  content: "\e903"; }

.icon-magnifying-glass:before {
  content: "\e909"; }

.icon-facebook-with-circle:before {
  content: "\e904"; }

.icon-google-with-circle:before {
  content: "\e905"; }

.icon-linkedin-with-circle:before {
  content: "\e906"; }

.icon-pinterest-with-circle:before {
  content: "\e907"; }

.icon-twitter-with-circle:before {
  content: "\e908"; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHVCQUF1QjtFQUN2QixvQ0FBUztFQUNULCtOQUcrQztFQUMvQyxvQkFBb0I7RUFDcEIsbUJBQW1CLEVBQUE7O0FBRHJCO0VBS0UsZ0ZBQWdGO0VBQ2hGLGtDQUFrQztFQUNsQyxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGVBQWU7RUFFZix1Q0FBdUM7RUFDdkMsb0NBQW9DO0VBQ3BDLG1DQUFtQyxFQUNwQzs7QUFFRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQiIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdpY29tb29uJztcbiAgc3JjOiAgdXJsKCdmb250cy9pY29tb29uLmVvdD93cXJ5ZycpO1xuICBzcmM6ICB1cmwoJ2ZvbnRzL2ljb21vb24uZW90P3dxcnlnI2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgIHVybCgnZm9udHMvaWNvbW9vbi50dGY/d3FyeWcnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCdmb250cy9pY29tb29uLndvZmY/d3FyeWcnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJ2ZvbnRzL2ljb21vb24uc3ZnP3dxcnlnI2ljb21vb24nKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbltjbGFzc149XCJpY29uLVwiXSwgW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcblxuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5pY29uLXNvdW5kLW1peDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxMFwiO1xufVxuLmljb24taW5zdGFncmFtLXdpdGgtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBmXCI7XG59XG4uaWNvbi1ib3gtYWRkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBkXCI7XG59XG4uaWNvbi16b29tLWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBlXCI7XG59XG4uaWNvbi1hcHBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwYVwiO1xufVxuLmljb24tYW5kcm9pZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwYlwiO1xufVxuLmljb24tbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwY1wiO1xufVxuLmljb24tY2hldnJvbi1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAwXCI7XG59XG4uaWNvbi1jaGV2cm9uLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDFcIjtcbn1cbi5pY29uLWNoZXZyb24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDJcIjtcbn1cbi5pY29uLWNoZXZyb24tdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDNcIjtcbn1cbi5pY29uLW1hZ25pZnlpbmctZ2xhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDlcIjtcbn1cbi5pY29uLWZhY2Vib29rLXdpdGgtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA0XCI7XG59XG4uaWNvbi1nb29nbGUtd2l0aC1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDVcIjtcbn1cbi5pY29uLWxpbmtlZGluLXdpdGgtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA2XCI7XG59XG4uaWNvbi1waW50ZXJlc3Qtd2l0aC1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDdcIjtcbn1cbi5pY29uLXR3aXR0ZXItd2l0aC1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDhcIjtcbn1cblxuIl19 */

@charset "UTF-8";
/**
 * Foundation for Sites by ZURB
 * Version 6.2.0
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*! 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.
   * [NOTE] We don't enable this ruleset in Foundation, because we want the <fieldset> element to have plain styling.
   */
/* 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; }

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

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

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

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

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

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

select {
  width: 100%;
  border-radius: 0.4rem; }

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

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0.4rem;
  line-height: 1; }

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

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

.row {
  max-width: 65.21739rem;
  margin-left: auto;
  margin-right: auto;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }
  .row .row {
    margin-left: -0.54348rem;
    margin-right: -0.54348rem; }
    @media screen and (min-width: 40em) {
      .row .row {
        margin-left: -0.81522rem;
        margin-right: -0.81522rem; } }
  .row.expanded {
    max-width: none; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-left: 0;
    padding-right: 0; }

.column, .columns {
  -ms-flex: 1 1 0px;
      flex: 1 1 0px;
  padding-left: 0.54348rem;
  padding-right: 0.54348rem; }
  @media screen and (min-width: 40em) {
    .column, .columns {
      padding-left: 0.81522rem;
      padding-right: 0.81522rem; } }

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

.small-1 {
  -ms-flex: 0 0 8.33333%;
      flex: 0 0 8.33333%;
  max-width: 8.33333%; }

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

.small-2 {
  -ms-flex: 0 0 16.66667%;
      flex: 0 0 16.66667%;
  max-width: 16.66667%; }

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

.small-3 {
  -ms-flex: 0 0 25%;
      flex: 0 0 25%;
  max-width: 25%; }

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

.small-4 {
  -ms-flex: 0 0 33.33333%;
      flex: 0 0 33.33333%;
  max-width: 33.33333%; }

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

.small-5 {
  -ms-flex: 0 0 41.66667%;
      flex: 0 0 41.66667%;
  max-width: 41.66667%; }

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

.small-6 {
  -ms-flex: 0 0 50%;
      flex: 0 0 50%;
  max-width: 50%; }

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

.small-7 {
  -ms-flex: 0 0 58.33333%;
      flex: 0 0 58.33333%;
  max-width: 58.33333%; }

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

.small-8 {
  -ms-flex: 0 0 66.66667%;
      flex: 0 0 66.66667%;
  max-width: 66.66667%; }

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

.small-9 {
  -ms-flex: 0 0 75%;
      flex: 0 0 75%;
  max-width: 75%; }

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

.small-10 {
  -ms-flex: 0 0 83.33333%;
      flex: 0 0 83.33333%;
  max-width: 83.33333%; }

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

.small-11 {
  -ms-flex: 0 0 91.66667%;
      flex: 0 0 91.66667%;
  max-width: 91.66667%; }

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

.small-12 {
  -ms-flex: 0 0 100%;
      flex: 0 0 100%;
  max-width: 100%; }

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

.small-order-1 {
  -ms-flex-order: 1;
      order: 1; }

.small-up-1 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-1 > .column, .small-up-1 > .columns {
    -ms-flex: 0 0 100%;
        flex: 0 0 100%;
    max-width: 100%; }

.small-order-2 {
  -ms-flex-order: 2;
      order: 2; }

.small-up-2 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-2 > .column, .small-up-2 > .columns {
    -ms-flex: 0 0 50%;
        flex: 0 0 50%;
    max-width: 50%; }

.small-order-3 {
  -ms-flex-order: 3;
      order: 3; }

.small-up-3 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-3 > .column, .small-up-3 > .columns {
    -ms-flex: 0 0 33.33333%;
        flex: 0 0 33.33333%;
    max-width: 33.33333%; }

.small-order-4 {
  -ms-flex-order: 4;
      order: 4; }

.small-up-4 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-4 > .column, .small-up-4 > .columns {
    -ms-flex: 0 0 25%;
        flex: 0 0 25%;
    max-width: 25%; }

.small-order-5 {
  -ms-flex-order: 5;
      order: 5; }

.small-up-5 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-5 > .column, .small-up-5 > .columns {
    -ms-flex: 0 0 20%;
        flex: 0 0 20%;
    max-width: 20%; }

.small-order-6 {
  -ms-flex-order: 6;
      order: 6; }

.small-up-6 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-6 > .column, .small-up-6 > .columns {
    -ms-flex: 0 0 16.66667%;
        flex: 0 0 16.66667%;
    max-width: 16.66667%; }

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

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

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

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

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

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

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

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

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

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

@media screen and (min-width: 40em) {
  .medium-1 {
    -ms-flex: 0 0 8.33333%;
        flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    -ms-flex: 0 0 16.66667%;
        flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    -ms-flex: 0 0 25%;
        flex: 0 0 25%;
    max-width: 25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    -ms-flex: 0 0 33.33333%;
        flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    -ms-flex: 0 0 41.66667%;
        flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    -ms-flex: 0 0 50%;
        flex: 0 0 50%;
    max-width: 50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    -ms-flex: 0 0 58.33333%;
        flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    -ms-flex: 0 0 66.66667%;
        flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    -ms-flex: 0 0 75%;
        flex: 0 0 75%;
    max-width: 75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    -ms-flex: 0 0 83.33333%;
        flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    -ms-flex: 0 0 91.66667%;
        flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    -ms-flex: 0 0 100%;
        flex: 0 0 100%;
    max-width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-order-1 {
    -ms-flex-order: 1;
        order: 1; }
  .medium-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-1 > .column, .medium-up-1 > .columns {
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
      max-width: 100%; }
  .medium-order-2 {
    -ms-flex-order: 2;
        order: 2; }
  .medium-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-2 > .column, .medium-up-2 > .columns {
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
      max-width: 50%; }
  .medium-order-3 {
    -ms-flex-order: 3;
        order: 3; }
  .medium-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-3 > .column, .medium-up-3 > .columns {
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .medium-order-4 {
    -ms-flex-order: 4;
        order: 4; }
  .medium-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-4 > .column, .medium-up-4 > .columns {
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
      max-width: 25%; }
  .medium-order-5 {
    -ms-flex-order: 5;
        order: 5; }
  .medium-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-5 > .column, .medium-up-5 > .columns {
      -ms-flex: 0 0 20%;
          flex: 0 0 20%;
      max-width: 20%; }
  .medium-order-6 {
    -ms-flex-order: 6;
        order: 6; }
  .medium-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-6 > .column, .medium-up-6 > .columns {
      -ms-flex: 0 0 16.66667%;
          flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    width: 100%;
    float: left; }
    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
      float: left; }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    width: 50%;
    float: left; }
    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
      float: left; }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    width: 33.33333%;
    float: left; }
    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
      float: left; }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    width: 25%;
    float: left; }
    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
      float: left; }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    width: 20%;
    float: left; }
    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
      float: left; }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    width: 16.66667%;
    float: left; }
    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
      float: left; }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    width: 14.28571%;
    float: left; }
    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
      float: left; }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    width: 12.5%;
    float: left; }
    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
      float: left; } }

@media screen and (min-width: 40em) and (min-width: 40em) {
  .medium-expand {
    -ms-flex: 1 1 0px;
        flex: 1 1 0px; } }

.row.medium-unstack .column, .row.medium-unstack .columns {
  -ms-flex: 0 0 100%;
      flex: 0 0 100%; }
  @media screen and (min-width: 40em) {
    .row.medium-unstack .column, .row.medium-unstack .columns {
      -ms-flex: 1 1 0px;
          flex: 1 1 0px; } }

@media screen and (min-width: 40em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-left: 0.81522rem;
    padding-right: 0.81522rem; } }

@media screen and (min-width: 64em) {
  .large-1 {
    -ms-flex: 0 0 8.33333%;
        flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    -ms-flex: 0 0 16.66667%;
        flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    -ms-flex: 0 0 25%;
        flex: 0 0 25%;
    max-width: 25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    -ms-flex: 0 0 33.33333%;
        flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    -ms-flex: 0 0 41.66667%;
        flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    -ms-flex: 0 0 50%;
        flex: 0 0 50%;
    max-width: 50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    -ms-flex: 0 0 58.33333%;
        flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    -ms-flex: 0 0 66.66667%;
        flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    -ms-flex: 0 0 75%;
        flex: 0 0 75%;
    max-width: 75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    -ms-flex: 0 0 83.33333%;
        flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    -ms-flex: 0 0 91.66667%;
        flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    -ms-flex: 0 0 100%;
        flex: 0 0 100%;
    max-width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-order-1 {
    -ms-flex-order: 1;
        order: 1; }
  .large-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-1 > .column, .large-up-1 > .columns {
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
      max-width: 100%; }
  .large-order-2 {
    -ms-flex-order: 2;
        order: 2; }
  .large-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-2 > .column, .large-up-2 > .columns {
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
      max-width: 50%; }
  .large-order-3 {
    -ms-flex-order: 3;
        order: 3; }
  .large-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-3 > .column, .large-up-3 > .columns {
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .large-order-4 {
    -ms-flex-order: 4;
        order: 4; }
  .large-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-4 > .column, .large-up-4 > .columns {
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
      max-width: 25%; }
  .large-order-5 {
    -ms-flex-order: 5;
        order: 5; }
  .large-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-5 > .column, .large-up-5 > .columns {
      -ms-flex: 0 0 20%;
          flex: 0 0 20%;
      max-width: 20%; }
  .large-order-6 {
    -ms-flex-order: 6;
        order: 6; }
  .large-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-6 > .column, .large-up-6 > .columns {
      -ms-flex: 0 0 16.66667%;
          flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .large-up-1 > .column, .large-up-1 > .columns {
    width: 100%;
    float: left; }
    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
      float: left; }
  .large-up-2 > .column, .large-up-2 > .columns {
    width: 50%;
    float: left; }
    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
      float: left; }
  .large-up-3 > .column, .large-up-3 > .columns {
    width: 33.33333%;
    float: left; }
    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
      float: left; }
  .large-up-4 > .column, .large-up-4 > .columns {
    width: 25%;
    float: left; }
    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
      float: left; }
  .large-up-5 > .column, .large-up-5 > .columns {
    width: 20%;
    float: left; }
    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
      float: left; }
  .large-up-6 > .column, .large-up-6 > .columns {
    width: 16.66667%;
    float: left; }
    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
      float: left; }
  .large-up-7 > .column, .large-up-7 > .columns {
    width: 14.28571%;
    float: left; }
    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
      float: left; }
  .large-up-8 > .column, .large-up-8 > .columns {
    width: 12.5%;
    float: left; }
    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
      float: left; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .large-expand {
    -ms-flex: 1 1 0px;
        flex: 1 1 0px; } }

.row.large-unstack .column, .row.large-unstack .columns {
  -ms-flex: 0 0 100%;
      flex: 0 0 100%; }
  @media screen and (min-width: 64em) {
    .row.large-unstack .column, .row.large-unstack .columns {
      -ms-flex: 1 1 0px;
          flex: 1 1 0px; } }

@media screen and (min-width: 64em) {
  .large-collapse > .column, .large-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-left: 0.81522rem;
    padding-right: 0.81522rem; } }

.shrink {
  -ms-flex: 0 0 auto;
      flex: 0 0 auto;
  max-width: 100%; }

.column.align-top, .align-top.columns {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.column.align-bottom, .align-bottom.columns {
  -ms-flex-item-align: end;
      align-self: flex-end; }

.column.align-middle, .align-middle.columns {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center; }

.column.align-stretch, .align-stretch.columns {
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch; }

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

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

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

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

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

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

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

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

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

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

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

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

.small {
  -ms-flex-order: 1;
      order: 1; }

.small {
  -ms-flex-order: 2;
      order: 2; }

.small {
  -ms-flex-order: 3;
      order: 3; }

.small {
  -ms-flex-order: 4;
      order: 4; }

.small {
  -ms-flex-order: 5;
      order: 5; }

.small {
  -ms-flex-order: 6;
      order: 6; }

@media screen and (min-width: 40em) {
  .medium {
    -ms-flex-order: 1;
        order: 1; }
  .medium {
    -ms-flex-order: 2;
        order: 2; }
  .medium {
    -ms-flex-order: 3;
        order: 3; }
  .medium {
    -ms-flex-order: 4;
        order: 4; }
  .medium {
    -ms-flex-order: 5;
        order: 5; }
  .medium {
    -ms-flex-order: 6;
        order: 6; } }

@media screen and (min-width: 64em) {
  .large {
    -ms-flex-order: 1;
        order: 1; }
  .large {
    -ms-flex-order: 2;
        order: 2; }
  .large {
    -ms-flex-order: 3;
        order: 3; }
  .large {
    -ms-flex-order: 4;
        order: 4; }
  .large {
    -ms-flex-order: 5;
        order: 5; }
  .large {
    -ms-flex-order: 6;
        order: 6; } }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

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

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

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

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

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "minion-pro", serif;
  font-weight: 600;
  font-style: normal;
  color: #333333;
  text-rendering: optimizeLegibility;
  margin-top: 0;
  margin-bottom: 0.5rem;
  line-height: 1.2; }
  h1 small,
  h2 small,
  h3 small,
  h4 small,
  h5 small,
  h6 small {
    color: #cacaca;
    line-height: 0; }

h1 {
  font-size: 1.63043rem; }

h2 {
  font-size: 1.52174rem; }

h3 {
  font-size: 1.41304rem; }

h4 {
  font-size: 1.08696rem; }

h5 {
  font-size: 0.97826rem; }

h6 {
  font-size: 0.86957rem; }

@media screen and (min-width: 40em) {
  h1 {
    font-size: 2.6087rem; }
  h2 {
    font-size: 2.3913rem; }
  h3 {
    font-size: 1.68478rem; }
  h4 {
    font-size: 1.3587rem; }
  h5 {
    font-size: 1.08696rem; }
  h6 {
    font-size: 0.86957rem; } }

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

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

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

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

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

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

blockquote {
  margin: 0 0 2rem;
  padding: 0.48913rem 1.08696rem 0 1.03261rem;
  border-left: 1px solid #cacaca; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #464646; }

cite {
  display: block;
  font-size: 0.70652rem;
  color: #464646; }
  cite:before {
    content: '\2014 \0020'; }

abbr {
  color: #333333;
  cursor: help;
  border-bottom: 1px dotted #333333; }

code {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: 300;
  color: #333333;
  background-color: #f3f3f3;
  border: 1px solid #cacaca;
  padding: 0.1087rem 0.27174rem 0.05435rem; }

kbd {
  padding: 0.1087rem 0.21739rem 0;
  margin: 0;
  background-color: #f3f3f3;
  color: #333333;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  border-radius: 0.4rem; }

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: 300;
  line-height: 1.3;
  color: #464646; }

.lead {
  font-size: 143.75%;
  line-height: 1.3; }

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

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

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

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

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

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

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

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

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

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

.button, #header ul li:last-child a, #mobile-nav ul li:last-child a, #mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a, #footer .gform_wrapper .gform_button,
#talking-videos .gform_wrapper .gform_button, #home-quote #home-video-close {
  display: inline-block;
  text-align: center;
  line-height: 1;
  cursor: pointer;
  -webkit-appearance: none;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  vertical-align: middle;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0.5em 1.25em;
  margin: 0 0 2rem 0;
  font-size: 1.2rem;
  background-color: #23333f;
  color: #fff; }
  [data-whatinput='mouse'] .button, [data-whatinput='mouse'] #header ul li:last-child a, #header ul li:last-child [data-whatinput='mouse'] a, [data-whatinput='mouse'] #mobile-nav ul li:last-child a, #mobile-nav ul li:last-child [data-whatinput='mouse'] a, [data-whatinput='mouse'] #mobile-nav-close, [data-whatinput='mouse'] #footer .footer-menu-wrap:last-child:last-child a, #footer .footer-menu-wrap:last-child:last-child [data-whatinput='mouse'] a, [data-whatinput='mouse'] #footer .gform_wrapper .gform_button, #footer .gform_wrapper [data-whatinput='mouse'] .gform_button, [data-whatinput='mouse']
  #talking-videos .gform_wrapper .gform_button,
  #talking-videos .gform_wrapper [data-whatinput='mouse'] .gform_button, [data-whatinput='mouse'] #home-quote #home-video-close, #home-quote [data-whatinput='mouse'] #home-video-close {
    outline: 0; }
  .button:hover, #header ul li:last-child a:hover, #mobile-nav ul li:last-child a:hover, #mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a:hover, #footer .gform_wrapper .gform_button:hover,
  #talking-videos .gform_wrapper .gform_button:hover, #home-quote #home-video-close:hover, .button:focus, #header ul li:last-child a:focus, #mobile-nav ul li:last-child a:focus, #mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a:focus, #footer .gform_wrapper .gform_button:focus,
  #talking-videos .gform_wrapper .gform_button:focus, #home-quote #home-video-close:focus {
    background-color: #1e2b36;
    color: #fff; }
  .button.tiny, #header ul li:last-child a.tiny, #mobile-nav ul li:last-child a.tiny, .tiny#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.tiny, #footer .gform_wrapper .tiny.gform_button,
  #talking-videos .gform_wrapper .tiny.gform_button, #home-quote .tiny#home-video-close {
    font-size: 0.6rem; }
  .button.small, #header ul li:last-child a.small, #mobile-nav ul li:last-child a.small, .small#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.small, #footer .gform_wrapper .small.gform_button,
  #talking-videos .gform_wrapper .small.gform_button, #home-quote .small#home-video-close {
    font-size: 0.75rem; }
  .button.large, #header ul li:last-child a.large, #mobile-nav ul li:last-child a.large, .large#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.large, #footer .gform_wrapper .large.gform_button,
  #talking-videos .gform_wrapper .large.gform_button, #home-quote .large#home-video-close {
    font-size: 1.5rem; }
  .button.expanded, #header ul li:last-child a.expanded, #mobile-nav ul li:last-child a.expanded, .expanded#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.expanded, #footer .gform_wrapper .expanded.gform_button,
  #talking-videos .gform_wrapper .expanded.gform_button, #home-quote .expanded#home-video-close {
    display: block;
    width: 100%;
    margin-left: 0;
    margin-right: 0; }
  .button.primary, #header ul li:last-child a.primary, #mobile-nav ul li:last-child a.primary, .primary#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.primary, #footer .gform_wrapper .primary.gform_button,
  #talking-videos .gform_wrapper .primary.gform_button, #home-quote .primary#home-video-close {
    background-color: #23333f;
    color: #fff; }
    .button.primary:hover, #header ul li:last-child a.primary:hover, #mobile-nav ul li:last-child a.primary:hover, .primary#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.primary:hover, #footer .gform_wrapper .primary.gform_button:hover,
    #talking-videos .gform_wrapper .primary.gform_button:hover, #home-quote .primary#home-video-close:hover, .button.primary:focus, #header ul li:last-child a.primary:focus, #mobile-nav ul li:last-child a.primary:focus, .primary#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.primary:focus, #footer .gform_wrapper .primary.gform_button:focus,
    #talking-videos .gform_wrapper .primary.gform_button:focus, #home-quote .primary#home-video-close:focus {
      background-color: #1c2932;
      color: #fff; }
  .button.secondary, #header ul li:last-child a, #mobile-nav ul li:last-child a, .secondary#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a, #footer .gform_wrapper .secondary.gform_button, #footer .gform_wrapper #header ul li:last-child a.gform_button, #header ul li:last-child #footer .gform_wrapper a.gform_button, #footer .gform_wrapper #mobile-nav ul li:last-child a.gform_button, #mobile-nav ul li:last-child #footer .gform_wrapper a.gform_button,
  #talking-videos .gform_wrapper .secondary.gform_button,
  #talking-videos .gform_wrapper #header ul li:last-child a.gform_button, #header ul li:last-child
  #talking-videos .gform_wrapper a.gform_button,
  #talking-videos .gform_wrapper #mobile-nav ul li:last-child a.gform_button, #mobile-nav ul li:last-child
  #talking-videos .gform_wrapper a.gform_button, #home-quote .secondary#home-video-close, #home-quote #header ul li:last-child a#home-video-close, #header ul li:last-child #home-quote a#home-video-close, #home-quote #mobile-nav ul li:last-child a#home-video-close, #mobile-nav ul li:last-child #home-quote a#home-video-close, #home-quote #footer .footer-menu-wrap:last-child:last-child a#home-video-close, #footer .footer-menu-wrap:last-child:last-child #home-quote a#home-video-close {
    background-color: #d97827;
    color: #fff; }
    .button.secondary:hover, #header ul li:last-child a:hover, #mobile-nav ul li:last-child a:hover, .secondary#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a:hover, #footer .gform_wrapper .secondary.gform_button:hover,
    #talking-videos .gform_wrapper .secondary.gform_button:hover, #home-quote .secondary#home-video-close:hover, #home-quote #header ul li:last-child a#home-video-close:hover, #header ul li:last-child #home-quote a#home-video-close:hover, #home-quote #mobile-nav ul li:last-child a#home-video-close:hover, #mobile-nav ul li:last-child #home-quote a#home-video-close:hover, #home-quote #footer .footer-menu-wrap:last-child:last-child a#home-video-close:hover, #footer .footer-menu-wrap:last-child:last-child #home-quote a#home-video-close:hover, .button.secondary:focus, #header ul li:last-child a:focus, #mobile-nav ul li:last-child a:focus, .secondary#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a:focus, #footer .gform_wrapper .secondary.gform_button:focus,
    #talking-videos .gform_wrapper .secondary.gform_button:focus, #home-quote .secondary#home-video-close:focus, #home-quote #header ul li:last-child a#home-video-close:focus, #header ul li:last-child #home-quote a#home-video-close:focus, #home-quote #mobile-nav ul li:last-child a#home-video-close:focus, #mobile-nav ul li:last-child #home-quote a#home-video-close:focus, #home-quote #footer .footer-menu-wrap:last-child:last-child a#home-video-close:focus, #footer .footer-menu-wrap:last-child:last-child #home-quote a#home-video-close:focus {
      background-color: #ae601f;
      color: #fff; }
  .button.success, #header ul li:last-child a.success, #mobile-nav ul li:last-child a.success, .success#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.success, #footer .gform_wrapper .success.gform_button,
  #talking-videos .gform_wrapper .success.gform_button, #home-quote .success#home-video-close {
    background-color: #3adb76;
    color: #fff; }
    .button.success:hover, #header ul li:last-child a.success:hover, #mobile-nav ul li:last-child a.success:hover, .success#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.success:hover, #footer .gform_wrapper .success.gform_button:hover,
    #talking-videos .gform_wrapper .success.gform_button:hover, #home-quote .success#home-video-close:hover, .button.success:focus, #header ul li:last-child a.success:focus, #mobile-nav ul li:last-child a.success:focus, .success#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.success:focus, #footer .gform_wrapper .success.gform_button:focus,
    #talking-videos .gform_wrapper .success.gform_button:focus, #home-quote .success#home-video-close:focus {
      background-color: #22bb5b;
      color: #fff; }
  .button.warning, #header ul li:last-child a.warning, #mobile-nav ul li:last-child a.warning, .warning#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.warning, #footer .gform_wrapper .warning.gform_button,
  #talking-videos .gform_wrapper .warning.gform_button, #home-quote .warning#home-video-close {
    background-color: #ffae00;
    color: #fff; }
    .button.warning:hover, #header ul li:last-child a.warning:hover, #mobile-nav ul li:last-child a.warning:hover, .warning#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.warning:hover, #footer .gform_wrapper .warning.gform_button:hover,
    #talking-videos .gform_wrapper .warning.gform_button:hover, #home-quote .warning#home-video-close:hover, .button.warning:focus, #header ul li:last-child a.warning:focus, #mobile-nav ul li:last-child a.warning:focus, .warning#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.warning:focus, #footer .gform_wrapper .warning.gform_button:focus,
    #talking-videos .gform_wrapper .warning.gform_button:focus, #home-quote .warning#home-video-close:focus {
      background-color: #cc8b00;
      color: #fff; }
  .button.alert, #header ul li:last-child a.alert, #mobile-nav ul li:last-child a.alert, .alert#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.alert, #footer .gform_wrapper .alert.gform_button,
  #talking-videos .gform_wrapper .alert.gform_button, #home-quote .alert#home-video-close {
    background-color: #ec5840;
    color: #fff; }
    .button.alert:hover, #header ul li:last-child a.alert:hover, #mobile-nav ul li:last-child a.alert:hover, .alert#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.alert:hover, #footer .gform_wrapper .alert.gform_button:hover,
    #talking-videos .gform_wrapper .alert.gform_button:hover, #home-quote .alert#home-video-close:hover, .button.alert:focus, #header ul li:last-child a.alert:focus, #mobile-nav ul li:last-child a.alert:focus, .alert#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.alert:focus, #footer .gform_wrapper .alert.gform_button:focus,
    #talking-videos .gform_wrapper .alert.gform_button:focus, #home-quote .alert#home-video-close:focus {
      background-color: #da3116;
      color: #fff; }
  .button.hollow, #header ul li:last-child a.hollow, #mobile-nav ul li:last-child a.hollow, .hollow#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.hollow, #footer .gform_wrapper .hollow.gform_button,
  #talking-videos .gform_wrapper .hollow.gform_button, #home-quote .hollow#home-video-close {
    border: 1px solid #23333f;
    color: #23333f; }
    .button.hollow, #header ul li:last-child a.hollow, #mobile-nav ul li:last-child a.hollow, .hollow#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.hollow, #footer .gform_wrapper .hollow.gform_button,
    #talking-videos .gform_wrapper .hollow.gform_button, #home-quote .hollow#home-video-close, .button.hollow:hover, #header ul li:last-child a.hollow:hover, #mobile-nav ul li:last-child a.hollow:hover, .hollow#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.hollow:hover, #footer .gform_wrapper .hollow.gform_button:hover,
    #talking-videos .gform_wrapper .hollow.gform_button:hover, #home-quote .hollow#home-video-close:hover, .button.hollow:focus, #header ul li:last-child a.hollow:focus, #mobile-nav ul li:last-child a.hollow:focus, .hollow#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.hollow:focus, #footer .gform_wrapper .hollow.gform_button:focus,
    #talking-videos .gform_wrapper .hollow.gform_button:focus, #home-quote .hollow#home-video-close:focus {
      background-color: transparent; }
    .button.hollow:hover, #header ul li:last-child a.hollow:hover, #mobile-nav ul li:last-child a.hollow:hover, .hollow#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.hollow:hover, #footer .gform_wrapper .hollow.gform_button:hover,
    #talking-videos .gform_wrapper .hollow.gform_button:hover, #home-quote .hollow#home-video-close:hover, .button.hollow:focus, #header ul li:last-child a.hollow:focus, #mobile-nav ul li:last-child a.hollow:focus, .hollow#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.hollow:focus, #footer .gform_wrapper .hollow.gform_button:focus,
    #talking-videos .gform_wrapper .hollow.gform_button:focus, #home-quote .hollow#home-video-close:focus {
      border-color: #121a20;
      color: #121a20; }
    .button.hollow.primary, #header ul li:last-child a.hollow.primary, #mobile-nav ul li:last-child a.hollow.primary, .hollow.primary#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.hollow.primary, #footer .gform_wrapper .hollow.primary.gform_button,
    #talking-videos .gform_wrapper .hollow.primary.gform_button, #home-quote .hollow.primary#home-video-close {
      border: 1px solid #23333f;
      color: #23333f; }
      .button.hollow.primary:hover, #header ul li:last-child a.hollow.primary:hover, #mobile-nav ul li:last-child a.hollow.primary:hover, .hollow.primary#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.hollow.primary:hover, #footer .gform_wrapper .hollow.primary.gform_button:hover,
      #talking-videos .gform_wrapper .hollow.primary.gform_button:hover, #home-quote .hollow.primary#home-video-close:hover, .button.hollow.primary:focus, #header ul li:last-child a.hollow.primary:focus, #mobile-nav ul li:last-child a.hollow.primary:focus, .hollow.primary#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.hollow.primary:focus, #footer .gform_wrapper .hollow.primary.gform_button:focus,
      #talking-videos .gform_wrapper .hollow.primary.gform_button:focus, #home-quote .hollow.primary#home-video-close:focus {
        border-color: #121a20;
        color: #121a20; }
    .button.hollow.secondary, #header ul li:last-child a.hollow, #mobile-nav ul li:last-child a.hollow, .hollow.secondary#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.hollow, #footer .gform_wrapper .hollow.secondary.gform_button,
    #talking-videos .gform_wrapper .hollow.secondary.gform_button, #home-quote .hollow.secondary#home-video-close, #home-quote #header ul li:last-child a.hollow#home-video-close, #header ul li:last-child #home-quote a.hollow#home-video-close, #home-quote #mobile-nav ul li:last-child a.hollow#home-video-close, #mobile-nav ul li:last-child #home-quote a.hollow#home-video-close, #home-quote #footer .footer-menu-wrap:last-child:last-child a.hollow#home-video-close, #footer .footer-menu-wrap:last-child:last-child #home-quote a.hollow#home-video-close {
      border: 1px solid #d97827;
      color: #d97827; }
      .button.hollow.secondary:hover, #header ul li:last-child a.hollow:hover, #mobile-nav ul li:last-child a.hollow:hover, .hollow.secondary#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.hollow:hover, #footer .gform_wrapper .hollow.secondary.gform_button:hover,
      #talking-videos .gform_wrapper .hollow.secondary.gform_button:hover, #home-quote .hollow.secondary#home-video-close:hover, #home-quote #header ul li:last-child a.hollow#home-video-close:hover, #header ul li:last-child #home-quote a.hollow#home-video-close:hover, #home-quote #mobile-nav ul li:last-child a.hollow#home-video-close:hover, #mobile-nav ul li:last-child #home-quote a.hollow#home-video-close:hover, #home-quote #footer .footer-menu-wrap:last-child:last-child a.hollow#home-video-close:hover, #footer .footer-menu-wrap:last-child:last-child #home-quote a.hollow#home-video-close:hover, .button.hollow.secondary:focus, #header ul li:last-child a.hollow:focus, #mobile-nav ul li:last-child a.hollow:focus, .hollow.secondary#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.hollow:focus, #footer .gform_wrapper .hollow.secondary.gform_button:focus,
      #talking-videos .gform_wrapper .hollow.secondary.gform_button:focus, #home-quote .hollow.secondary#home-video-close:focus, #home-quote #header ul li:last-child a.hollow#home-video-close:focus, #header ul li:last-child #home-quote a.hollow#home-video-close:focus, #home-quote #mobile-nav ul li:last-child a.hollow#home-video-close:focus, #mobile-nav ul li:last-child #home-quote a.hollow#home-video-close:focus, #home-quote #footer .footer-menu-wrap:last-child:last-child a.hollow#home-video-close:focus, #footer .footer-menu-wrap:last-child:last-child #home-quote a.hollow#home-video-close:focus {
        border-color: #6d3c13;
        color: #6d3c13; }
    .button.hollow.success, #header ul li:last-child a.hollow.success, #mobile-nav ul li:last-child a.hollow.success, .hollow.success#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.hollow.success, #footer .gform_wrapper .hollow.success.gform_button,
    #talking-videos .gform_wrapper .hollow.success.gform_button, #home-quote .hollow.success#home-video-close {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, #header ul li:last-child a.hollow.success:hover, #mobile-nav ul li:last-child a.hollow.success:hover, .hollow.success#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.hollow.success:hover, #footer .gform_wrapper .hollow.success.gform_button:hover,
      #talking-videos .gform_wrapper .hollow.success.gform_button:hover, #home-quote .hollow.success#home-video-close:hover, .button.hollow.success:focus, #header ul li:last-child a.hollow.success:focus, #mobile-nav ul li:last-child a.hollow.success:focus, .hollow.success#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.hollow.success:focus, #footer .gform_wrapper .hollow.success.gform_button:focus,
      #talking-videos .gform_wrapper .hollow.success.gform_button:focus, #home-quote .hollow.success#home-video-close:focus {
        border-color: #157539;
        color: #157539; }
    .button.hollow.warning, #header ul li:last-child a.hollow.warning, #mobile-nav ul li:last-child a.hollow.warning, .hollow.warning#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.hollow.warning, #footer .gform_wrapper .hollow.warning.gform_button,
    #talking-videos .gform_wrapper .hollow.warning.gform_button, #home-quote .hollow.warning#home-video-close {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, #header ul li:last-child a.hollow.warning:hover, #mobile-nav ul li:last-child a.hollow.warning:hover, .hollow.warning#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.hollow.warning:hover, #footer .gform_wrapper .hollow.warning.gform_button:hover,
      #talking-videos .gform_wrapper .hollow.warning.gform_button:hover, #home-quote .hollow.warning#home-video-close:hover, .button.hollow.warning:focus, #header ul li:last-child a.hollow.warning:focus, #mobile-nav ul li:last-child a.hollow.warning:focus, .hollow.warning#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.hollow.warning:focus, #footer .gform_wrapper .hollow.warning.gform_button:focus,
      #talking-videos .gform_wrapper .hollow.warning.gform_button:focus, #home-quote .hollow.warning#home-video-close:focus {
        border-color: #805700;
        color: #805700; }
    .button.hollow.alert, #header ul li:last-child a.hollow.alert, #mobile-nav ul li:last-child a.hollow.alert, .hollow.alert#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.hollow.alert, #footer .gform_wrapper .hollow.alert.gform_button,
    #talking-videos .gform_wrapper .hollow.alert.gform_button, #home-quote .hollow.alert#home-video-close {
      border: 1px solid #ec5840;
      color: #ec5840; }
      .button.hollow.alert:hover, #header ul li:last-child a.hollow.alert:hover, #mobile-nav ul li:last-child a.hollow.alert:hover, .hollow.alert#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.hollow.alert:hover, #footer .gform_wrapper .hollow.alert.gform_button:hover,
      #talking-videos .gform_wrapper .hollow.alert.gform_button:hover, #home-quote .hollow.alert#home-video-close:hover, .button.hollow.alert:focus, #header ul li:last-child a.hollow.alert:focus, #mobile-nav ul li:last-child a.hollow.alert:focus, .hollow.alert#mobile-nav-close:focus, #footer .footer-menu-wrap:last-child:last-child a.hollow.alert:focus, #footer .gform_wrapper .hollow.alert.gform_button:focus,
      #talking-videos .gform_wrapper .hollow.alert.gform_button:focus, #home-quote .hollow.alert#home-video-close:focus {
        border-color: #881f0e;
        color: #881f0e; }
  .button.disabled, #header ul li:last-child a.disabled, #mobile-nav ul li:last-child a.disabled, .disabled#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.disabled, #footer .gform_wrapper .disabled.gform_button,
  #talking-videos .gform_wrapper .disabled.gform_button, #home-quote .disabled#home-video-close, .button[disabled], #header ul li:last-child a[disabled], #mobile-nav ul li:last-child a[disabled], [disabled]#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a[disabled], #footer .gform_wrapper [disabled].gform_button,
  #talking-videos .gform_wrapper [disabled].gform_button, #home-quote [disabled]#home-video-close {
    opacity: 0.25;
    cursor: not-allowed;
    pointer-events: none; }
  .button.dropdown::after, #header ul li:last-child a.dropdown::after, #mobile-nav ul li:last-child a.dropdown::after, .dropdown#mobile-nav-close::after, #footer .footer-menu-wrap:last-child:last-child a.dropdown::after, #footer .gform_wrapper .dropdown.gform_button::after,
  #talking-videos .gform_wrapper .dropdown.gform_button::after, #home-quote .dropdown#home-video-close::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    border-color: #fefefe transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    position: relative;
    top: 0.4em;
    float: right;
    margin-left: 1.25em;
    display: inline-block; }
  .button.arrow-only::after, #header ul li:last-child a.arrow-only::after, #mobile-nav ul li:last-child a.arrow-only::after, .arrow-only#mobile-nav-close::after, #footer .footer-menu-wrap:last-child:last-child a.arrow-only::after, #footer .gform_wrapper .arrow-only.gform_button::after,
  #talking-videos .gform_wrapper .arrow-only.gform_button::after, #home-quote .arrow-only#home-video-close::after {
    margin-left: 0;
    float: none;
    top: -0.1em; }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.11957rem;
  padding: 0.43478rem;
  border: 1px solid #cacaca;
  margin: 0 0 0.86957rem;
  font-family: inherit;
  font-size: 0.86957rem;
  color: #333333;
  background-color: #fefefe;
  box-shadow: inset 0 0 0 0 #cacaca;
  border-radius: 0;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
  -moz-appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    border: 0 solid #cacaca;
    background-color: #fefefe;
    outline: none;
    box-shadow: inset 0 0 2px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

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

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

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

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

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

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #f3f3f3;
  cursor: default; }

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

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

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

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  margin-left: 0.43478rem;
  margin-right: 0.86957rem;
  margin-bottom: 0;
  vertical-align: baseline; }

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

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

label {
  display: block;
  margin: 0;
  font-size: 0.76087rem;
  font-weight: 300;
  line-height: 1.8;
  color: #333333; }
  label.middle {
    margin: 0 0 0.86957rem;
    padding: 0.48913rem 0; }

.help-text {
  margin-top: -0.43478rem;
  font-size: 0.70652rem;
  font-style: italic;
  color: #333; }

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

.input-group-label, .input-group-field, .input-group-button {
  margin: 0; }

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

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

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  -ms-flex: 0 0 auto;
      flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button {
    margin: 0; }

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

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

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

.fieldset {
  border: 1px solid #cacaca;
  padding: 1.08696rem;
  margin: 0.97826rem 0; }
  .fieldset legend {
    background: #fefefe;
    padding: 0 0.16304rem;
    margin: 0;
    margin-left: -0.16304rem; }

select {
  height: 2.11957rem;
  padding: 0.43478rem;
  border: 1px solid #cacaca;
  margin: 0 0 0.86957rem;
  font-size: 0.86957rem;
  font-family: inherit;
  line-height: normal;
  color: #333333;
  background-color: #fefefe;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%2851, 51, 51%29"></polygon></svg>');
  background-size: 9px 6px;
  background-position: right center;
  background-origin: content-box;
  background-repeat: no-repeat; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:disabled {
    background-color: #f3f3f3;
    cursor: default; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto; }

.is-invalid-input:not(:focus) {
  background-color: rgba(236, 88, 64, 0.1);
  border-color: #ec5840; }

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

.form-error {
  display: none;
  margin-top: -0.43478rem;
  margin-bottom: 0.86957rem;
  font-size: 0.65217rem;
  font-weight: 600;
  color: #ec5840; }
  .form-error.is-visible {
    display: block; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

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

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

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

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

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

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

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

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

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

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

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0); }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  height: auto;
  width: auto;
  overflow: visible;
  clip: auto; }

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

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

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

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

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

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

.clearfix::after {
  clear: both; }

.accordion {
  list-style-type: none;
  background: #fefefe;
  border: 1px solid #a2a2a2;
  border-bottom: 0;
  border-radius: 0.4rem;
  margin-left: 0; }

.accordion-title {
  display: block;
  padding: 1.25rem 1rem;
  line-height: 1;
  font-size: 0.65217rem;
  color: #23333f;
  position: relative;
  border-bottom: 1px solid #a2a2a2; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #f3f3f3; }
  .accordion-title::before {
    content: '+';
    position: absolute;
    right: 1rem;
    top: 50%;
    margin-top: -0.5rem; }
  .is-active > .accordion-title::before {
    content: '–'; }

.accordion-content {
  padding: 1rem;
  display: none;
  border-bottom: 1px solid #a2a2a2;
  background-color: #fefefe; }

.close-button {
  position: absolute;
  color: #464646;
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #333333; }

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

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

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

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

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

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

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

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: #d97827 transparent transparent;
  border-top-style: solid;
  border-bottom-width: 0;
  right: 5px;
  margin-top: -2px; }

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

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

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

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

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

.dropdown.menu.vertical > li > a::after {
  right: 14px;
  margin-top: -3px; }

.dropdown.menu.vertical > li.opens-left > a::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent #d97827 transparent transparent;
  border-right-style: solid;
  border-left-width: 0; }

.dropdown.menu.vertical > li.opens-right > a::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent transparent transparent #d97827;
  border-left-style: solid;
  border-right-width: 0; }

@media screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 0;
    top: 100%; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 0;
    top: 100%; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    padding-right: 1.5rem;
    position: relative; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: #d97827 transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    right: 5px;
    margin-top: -2px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left .is-dropdown-submenu {
    left: auto;
    right: 100%; }
  .dropdown.menu.medium-vertical > li.opens-right .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #d97827 transparent transparent;
    border-right-style: solid;
    border-left-width: 0; }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #d97827;
    border-left-style: solid;
    border-right-width: 0; } }

@media screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 0;
    top: 100%; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 0;
    top: 100%; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    padding-right: 1.5rem;
    position: relative; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: #d97827 transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    right: 5px;
    margin-top: -2px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left .is-dropdown-submenu {
    left: auto;
    right: 100%; }
  .dropdown.menu.large-vertical > li.opens-right .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #d97827 transparent transparent;
    border-right-style: solid;
    border-left-width: 0; }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #d97827;
    border-left-style: solid;
    border-right-width: 0; } }

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

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

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

.is-dropdown-submenu {
  display: none;
  position: absolute;
  top: 0;
  left: 100%;
  min-width: 200px;
  z-index: 1;
  background: #fefefe;
  border: 1px solid #cacaca; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px;
    margin-top: -3px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #d97827 transparent transparent;
    border-right-style: solid;
    border-left-width: 0; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #d97827;
    border-left-style: solid;
    border-right-width: 0; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > .is-dropdown-submenu, .is-dropdown-submenu.js-dropdown-active {
    display: block; }

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

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  border-radius: 0.4rem;
  background: #23333f;
  color: #fefefe; }
  .label.secondary, #header ul li:last-child a.label, #mobile-nav ul li:last-child a.label, #footer .footer-menu-wrap:last-child:last-child a.label {
    background: #d97827;
    color: #fefefe; }
  .label.success {
    background: #3adb76;
    color: #fefefe; }
  .label.warning {
    background: #ffae00;
    color: #fefefe; }
  .label.alert {
    background: #ec5840;
    color: #fefefe; }

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

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

.menu {
  margin: 0;
  list-style-type: none;
  width: 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -ms-flex-align: center;
      align-items: center;
  flex-wrap: nowrap; }
  .menu > li {
    -ms-flex: 0 0 auto;
        flex: 0 0 auto; }
    [data-whatinput='mouse'] .menu > li {
      outline: 0; }
  .menu > li > a {
    display: block;
    padding: 0.7rem 1rem;
    line-height: 1; }
  .menu input,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu > li > a {
    display: -ms-flexbox;
    display: flex; }
  .menu > li > a {
    -ms-flex-flow: row nowrap;
        flex-flow: row nowrap; }
    .menu > li > a img,
    .menu > li > a i {
      margin-right: 0.25rem; }
  .menu > li {
    -ms-flex: 0 0 auto;
        flex: 0 0 auto; }
  .menu.vertical {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .menu.vertical > li {
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
      max-width: 100%; }
    .menu.vertical > li > a {
      -ms-flex-align: start;
          align-items: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start; }
  @media screen and (min-width: 40em) {
    .menu.medium-horizontal {
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap; }
      .menu.medium-horizontal > li {
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
    .menu.medium-vertical {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
      .menu.medium-vertical > li {
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
        max-width: 100%; }
      .menu.medium-vertical > li > a {
        -ms-flex-align: start;
            align-items: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start; } }
  @media screen and (min-width: 64em) {
    .menu.large-horizontal {
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap; }
      .menu.large-horizontal > li {
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
    .menu.large-vertical {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
      .menu.large-vertical > li {
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
        max-width: 100%; }
      .menu.large-vertical > li > a {
        -ms-flex-align: start;
            align-items: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start; } }
  .menu.simple li {
    line-height: 1;
    display: inline-block;
    margin-right: 1rem; }
  .menu.simple a {
    padding: 0; }
  .menu.align-right {
    -ms-flex-pack: end;
        justify-content: flex-end; }
  .menu.expanded > li {
    -ms-flex: 1 1 0px;
        flex: 1 1 0px; }
  .menu.expanded > li:first-child:last-child {
    width: 100%; }
  .menu.icon-top > li > a {
    -ms-flex-flow: column nowrap;
        flex-flow: column nowrap; }
    .menu.icon-top > li > a img,
    .menu.icon-top > li > a i {
      -ms-flex-item-align: stretch;
          -ms-grid-row-align: stretch;
          align-self: stretch;
      text-align: center;
      margin-bottom: 0.25rem; }
  .menu.nested {
    margin-left: 1rem; }
  .menu .active > a {
    color: #fefefe;
    background: #23333f; }

.menu-text {
  font-weight: bold;
  color: inherit;
  line-height: 1;
  padding-top: 0;
  padding-bottom: 0;
  padding: 0.7rem 1rem; }

.menu-centered {
  text-align: center; }
  .menu-centered > .menu {
    display: inline-block; }

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

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

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

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

.reveal-overlay {
  display: none;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1005;
  background-color: rgba(51, 51, 51, 0.45);
  overflow-y: scroll; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.button, #header ul li:last-child a, #mobile-nav ul li:last-child a, #mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a, #footer .gform_wrapper .gform_button,
#talking-videos .gform_wrapper .gform_button, #home-quote #home-video-close {
  border-width: 0;
  background-color: #23333f;
  font-style: italic;
  font-family: "minion-pro", serif;
  font-weight: bold; }
  .button:hover, #header ul li:last-child a:hover, #mobile-nav ul li:last-child a:hover, #mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a:hover, #footer .gform_wrapper .gform_button:hover,
  #talking-videos .gform_wrapper .gform_button:hover, #home-quote #home-video-close:hover {
    background-color: #5edfff; }
  .button.secondary, #header ul li:last-child a, #mobile-nav ul li:last-child a, .secondary#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a, #footer .gform_wrapper .secondary.gform_button, #footer .gform_wrapper #header ul li:last-child a.gform_button, #header ul li:last-child #footer .gform_wrapper a.gform_button, #footer .gform_wrapper #mobile-nav ul li:last-child a.gform_button, #mobile-nav ul li:last-child #footer .gform_wrapper a.gform_button,
  #talking-videos .gform_wrapper .secondary.gform_button,
  #talking-videos .gform_wrapper #header ul li:last-child a.gform_button, #header ul li:last-child
  #talking-videos .gform_wrapper a.gform_button,
  #talking-videos .gform_wrapper #mobile-nav ul li:last-child a.gform_button, #mobile-nav ul li:last-child
  #talking-videos .gform_wrapper a.gform_button, #home-quote .secondary#home-video-close, #home-quote #header ul li:last-child a#home-video-close, #header ul li:last-child #home-quote a#home-video-close, #home-quote #mobile-nav ul li:last-child a#home-video-close, #mobile-nav ul li:last-child #home-quote a#home-video-close, #home-quote #footer .footer-menu-wrap:last-child:last-child a#home-video-close, #footer .footer-menu-wrap:last-child:last-child #home-quote a#home-video-close {
    background-color: #d97827; }
    .button.secondary:hover, #header ul li:last-child a:hover, #mobile-nav ul li:last-child a:hover, .secondary#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a:hover, #footer .gform_wrapper .secondary.gform_button:hover,
    #talking-videos .gform_wrapper .secondary.gform_button:hover, #home-quote .secondary#home-video-close:hover, #home-quote #header ul li:last-child a#home-video-close:hover, #header ul li:last-child #home-quote a#home-video-close:hover, #home-quote #mobile-nav ul li:last-child a#home-video-close:hover, #mobile-nav ul li:last-child #home-quote a#home-video-close:hover, #home-quote #footer .footer-menu-wrap:last-child:last-child a#home-video-close:hover, #footer .footer-menu-wrap:last-child:last-child #home-quote a#home-video-close:hover {
      background-color: #ae601f; }
  .button.accent, #header ul li:last-child a.accent, #mobile-nav ul li:last-child a.accent, .accent#mobile-nav-close, #footer .footer-menu-wrap:last-child:last-child a.accent, #footer .footer-menu-wrap:last-child:last-child .gform_wrapper a.gform_button, #footer .gform_wrapper .footer-menu-wrap:last-child:last-child a.gform_button,
  #talking-videos .gform_wrapper #footer .footer-menu-wrap:last-child:last-child a.gform_button, #footer .gform_wrapper .gform_button,
  #talking-videos .gform_wrapper .gform_button, .hero .hero-content .button, .hero .hero-content #header ul li:last-child a, #header ul li:last-child .hero .hero-content a, .hero .hero-content #mobile-nav ul li:last-child a, #mobile-nav ul li:last-child .hero .hero-content a, .hero .hero-content #mobile-nav-close, .hero .hero-content #footer .footer-menu-wrap:last-child:last-child a, #footer .footer-menu-wrap:last-child:last-child .hero .hero-content a, .hero .hero-content #home-quote #home-video-close, #home-quote .hero .hero-content #home-video-close, #home-quote .accent#home-video-close, #home-quote #footer .gform_wrapper #home-video-close.gform_button, #footer .gform_wrapper #home-quote #home-video-close.gform_button, #home-quote
  #talking-videos .gform_wrapper #home-video-close.gform_button,
  #talking-videos .gform_wrapper #home-quote #home-video-close.gform_button {
    background-color: #5edfff; }
    .button.accent:hover, #header ul li:last-child a.accent:hover, #mobile-nav ul li:last-child a.accent:hover, .accent#mobile-nav-close:hover, #footer .footer-menu-wrap:last-child:last-child a.accent:hover, #footer .footer-menu-wrap:last-child:last-child .gform_wrapper a.gform_button:hover, #footer .gform_wrapper .footer-menu-wrap:last-child:last-child a.gform_button:hover,
    #talking-videos .gform_wrapper #footer .footer-menu-wrap:last-child:last-child a.gform_button:hover, #footer .gform_wrapper .gform_button:hover,
    #talking-videos .gform_wrapper .gform_button:hover, .hero .hero-content .button:hover, .hero .hero-content #header ul li:last-child a:hover, #header ul li:last-child .hero .hero-content a:hover, .hero .hero-content #mobile-nav ul li:last-child a:hover, #mobile-nav ul li:last-child .hero .hero-content a:hover, .hero .hero-content #mobile-nav-close:hover, .hero .hero-content #footer .footer-menu-wrap:last-child:last-child a:hover, #footer .footer-menu-wrap:last-child:last-child .hero .hero-content a:hover, .hero .hero-content #home-quote #home-video-close:hover, #home-quote .hero .hero-content #home-video-close:hover, #home-quote .accent#home-video-close:hover, #home-quote #footer .gform_wrapper #home-video-close.gform_button:hover, #footer .gform_wrapper #home-quote #home-video-close.gform_button:hover, #home-quote
    #talking-videos .gform_wrapper #home-video-close.gform_button:hover,
    #talking-videos .gform_wrapper #home-quote #home-video-close.gform_button:hover {
      background-color: #2bd5ff; }

::-moz-selection {
  background: #23333f;
  color: #fefefe; }

::selection {
  background: #23333f;
  color: #fefefe; }

.vertical-pad {
  padding-top: 4rem;
  padding-bottom: 4rem; }

.vertical-pad-top {
  padding-top: 4rem; }

.vertical-pad-small {
  padding-top: 2rem;
  padding-bottom: 2rem; }

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

.bottom-pad-big {
  padding-bottom: 4rem; }

.read-more, #comments .comment-list .comment-reply-link {
  position: relative;
  font-family: "kepler-std-display",serif;
  font-style: italic;
  font-weight: bold;
  line-height: normal;
  color: #23333f; }
  .read-more .icon, #comments .comment-list .comment-reply-link .icon {
    color: #5edfff;
    position: absolute;
    bottom: 1px; }

#post-pagination .text-right .read-more, #post-pagination .text-right #comments .comment-list .comment-reply-link, #comments .comment-list #post-pagination .text-right .comment-reply-link {
  margin-right: 1rem; }

.accordion {
  border-radius: 0; }

.accordion-title {
  font-size: 0.8rem; }

/* =WordPress Core
-------------------------------------------------------------- */
.alignnone {
  margin: 5px 20px 20px 0; }

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

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

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

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

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

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

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

.wp-caption {
  background: #fff;
  border: 1px solid #f0f0f0;
  max-width: 96%;
  /* Image does not overflow the content area */
  padding: 5px 3px 10px;
  text-align: center; }

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

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

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

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

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

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

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

.wow {
  visibility: hidden; }

.slide-in, #mobile-nav {
  animation-duration: 1000ms;
  animation-name: custom-1; }

@keyframes custom-1 {
  0% {
    transform: translateY(10%);
    opacity: 0; }
  100% {
    transform: translateY(0);
    opacity: 1; } }

.white-gray, #donation, #stories-page {
  background: #fefefe;
  background: linear-gradient(to bottom, #fefefe 0%, #a9b8b7 100%); }

.white-gray-light, #donate-page {
  background: #fefefe;
  background: linear-gradient(to bottom, #fefefe 0%, #e9eded 100%); }

.light-blue-green, #home-quote:after {
  background: #00b3e3;
  background: linear-gradient(to right, #00b3e3 0%, #3eb049 100%); }

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

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

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

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  margin-top: -10px\9;
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none;
  z-index: 1; }
  .slick-prev:hover, .slick-prev:focus,
  .slick-next:hover,
  .slick-next:focus {
    outline: none;
    background: transparent;
    color: transparent; }
    .slick-prev:hover:before, .slick-prev:focus:before,
    .slick-next:hover:before,
    .slick-next:focus:before {
      opacity: 1; }
  .slick-prev.slick-disabled:before,
  .slick-next.slick-disabled:before {
    opacity: 0.25; }

.slick-prev:before, .slick-next:before {
  font-family: "icomoon";
  font-size: 20px;
  line-height: 1;
  color: black;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.slick-prev {
  left: 0; }
  [dir="rtl"] .slick-prev {
    left: auto;
    right: 0; }
  .slick-prev:before {
    content: ""; }
    [dir="rtl"] .slick-prev:before {
      content: ""; }

.slick-next {
  right: 0; }
  [dir="rtl"] .slick-next {
    left: 0;
    right: auto; }
  .slick-next:before {
    content: ""; }
    [dir="rtl"] .slick-next:before {
      content: ""; }

.slick-slider {
  margin-bottom: 30px; }

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

body {
  padding-top: 60px; }
  @media screen and (min-width: 75em) {
    body {
      padding-top: 85px; } }

#header {
  transition: all 200ms linear;
  height: 60px;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 2;
  background-color: rgba(254, 254, 254, 0.9);
  overflow: hidden;
  box-shadow: 0 3px 5px -1px rgba(153, 153, 153, 0.2), 0 6px 10px 0 rgba(153, 153, 153, 0.14), 0 1px 18px 0 rgba(153, 153, 153, 0.12); }
  @media screen and (min-width: 75em) {
    #header {
      height: 85px; } }
  #header h1, #header h2 {
    transition: all 200ms linear;
    line-height: 60px;
    display: inline-block;
    float: left; }
    @media screen and (min-width: 75em) {
      #header h1, #header h2 {
        line-height: 85px; } }
  #header ul {
    display: none;
    float: right;
    font-size: 0;
    list-style: none;
    margin: 0;
    margin-top: 1.1rem;
    transition: margin-top 200ms linear;
    padding: 0 2rem 0 0; }
    @media screen and (min-width: 75em) {
      #header ul {
        display: block; } }
    #header ul li {
      display: inline-block; }
      #header ul li a {
        display: inline-block;
        padding: 0 0.9rem;
        font-size: 1.1rem;
        font-family: "minion-pro", serif;
        font-weight: bold;
        color: #333333; }
      #header ul li.current-menu-item:not(:last-child) a,
      #header ul li:not(:last-child) a:hover {
        color: #d97827; }
      #header ul li:last-child a {
        vertical-align: baseline; }
  #header #mobile-nav-trigger {
    float: right;
    display: inline-block;
    height: 60px;
    width: 2.17391rem;
    margin: 0 2rem;
    position: relative;
    display: block; }
    @media screen and (min-width: 75em) {
      #header #mobile-nav-trigger {
        height: 85px; } }
    #header #mobile-nav-trigger span {
      position: absolute;
      left: 0;
      right: 0;
      height: 4px;
      width: 100%;
      top: 50%;
      background-color: #03518B;
      margin-top: -2px; }
      #header #mobile-nav-trigger span:nth-child(1) {
        -ms-transform: translateY(-12px);
            transform: translateY(-12px); }
      #header #mobile-nav-trigger span:nth-child(2) {
        -ms-transform: translateY(0);
            transform: translateY(0); }
      #header #mobile-nav-trigger span:nth-child(3) {
        -ms-transform: translateY(12px);
            transform: translateY(12px); }
    #header #mobile-nav-trigger:hover span {
      background-color: #23333f; }
    @media screen and (min-width: 75em) {
      #header #mobile-nav-trigger {
        display: none; } }

#logo {
  height: 60px;
  margin: 0;
  display: inline-block;
  transition: all 200ms linear; }
  @media screen and (min-width: 75em) {
    #logo {
      line-height: 85px; } }
  #logo a {
    display: inline-block;
    height: 60px;
    line-height: 60px;
    width: 3.7rem;
    transition: all 200ms linear;
    overflow: hidden;
    padding: 0 0 0 2rem; }
    @media screen and (min-width: 75em) {
      #logo a {
        height: 85px;
        line-height: 85px;
        display: -ms-flexbox;
        display: flex; } }
    #logo a:hover {
      width: 10rem; }
    @media screen and (min-width: 75em) {
      #logo a {
        width: 16rem; }
        #logo a:hover {
          width: 16rem; } }
    #logo a svg {
      display: inline-block;
      vertical-align: baseline;
      height: auto;
      width: 8rem;
      margin-top: 10px;
      transition: all 200ms linear; }
      @media screen and (min-width: 75em) {
        #logo a svg {
          width: 13rem;
          margin-top: 0; } }

#mobile-nav {
  display: none;
  overflow-y: scroll;
  position: fixed;
  padding: 2rem;
  background: #fefefe;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 100; }
  #mobile-nav.expanded {
    display: block; }
  #mobile-nav ul {
    list-style: none;
    margin: 0;
    padding: 0; }
    #mobile-nav ul li a {
      font-size: 1.2rem;
      font-family: "minion-pro", serif;
      font-weight: bold;
      display: block;
      margin: 0 0 1rem; }

#mobile-nav-close {
  font-style: normal; }

.headroom {
  transition: transform 200ms linear; }

.headroom--top #logo a {
  width: 10rem; }
  @media screen and (min-width: 75em) {
    .headroom--top #logo a {
      width: inherit; } }

.headroom--pinned {
  -ms-transform: translateY(0%);
      transform: translateY(0%); }

#header.headroom--unpinned {
  -ms-transform: translateY(-100%);
      transform: translateY(-100%);
  box-shadow: none; }
  @media screen and (min-width: 75em) {
    #header.headroom--unpinned {
      box-shadow: 0 3px 5px -1px rgba(153, 153, 153, 0.2), 0 6px 10px 0 rgba(153, 153, 153, 0.14), 0 1px 18px 0 rgba(153, 153, 153, 0.12); } }
  @media screen and (min-width: 75em) {
    #header.headroom--unpinned {
      -ms-transform: translateY(0);
          transform: translateY(0);
      height: 60px; }
      #header.headroom--unpinned h1, #header.headroom--unpinned h2 {
        line-height: 60px; }
      #header.headroom--unpinned #logo {
        height: 60px; }
        #header.headroom--unpinned #logo a {
          height: 60px;
          line-height: 60px; }
          #header.headroom--unpinned #logo a svg {
            width: 8rem; }
      #header.headroom--unpinned ul {
        margin-top: 0.4rem; } }

.event-contain {
  display: block;
  height: 19rem;
  position: relative;
  overflow: hidden;
  background: #23333f;
  color: #fefefe;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center; }
  .event-contain h1, .event-contain h2, .event-contain h3, .event-contain h4, .event-contain h5, .event-contain h6, .event-contain p, .event-contain small, .event-contain div {
    color: #fefefe;
    margin: 0;
    padding: 0; }
  .event-contain .event-info {
    background-color: rgba(35, 51, 63, 0.8);
    position: relative;
    height: 19rem;
    transition: transform 200ms ease-in-out; }
    .event-contain .event-info .event-info-top {
      padding: 2rem;
      height: 7rem; }
      .event-contain .event-info .event-info-top h4, .event-contain .event-info .event-info-top h5 {
        height: 1.5rem;
        line-height: 1.5rem;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden; }
    .event-contain .event-info .event-info-middle {
      padding: 0 2rem 1rem; }
      .event-contain .event-info .event-info-middle p {
        line-height: 1.5rem;
        font-size: 1rem;
        height: 6rem;
        text-overflow: ellipsis;
        overflow: hidden; }
    .event-contain .event-info .event-info-bottom {
      padding: 0 2rem 2rem;
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 4rem; }
      .event-contain .event-info .event-info-bottom div, .event-contain .event-info .event-info-bottom small {
        height: 1rem;
        line-height: 1rem;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
        display: block; }
  @media screen and (min-width: 64em) {
    .event-contain .event-info {
      -ms-transform: translateY(12rem);
          transform: translateY(12rem); }
    .event-contain:hover .event-info {
      -ms-transform: translateY(0);
          transform: translateY(0); } }

@media screen and (max-width: 39.9375em) {
  #highlight {
    height: auto; } }

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #highlight {
    height: auto; } }

#highlight .event-info {
  -ms-transform: translateY(0);
      transform: translateY(0); }
  #highlight .event-info p {
    height: auto;
    margin-bottom: 1rem; }
  #highlight .event-info .event-info-top {
    height: 5.5rem; }
  @media screen and (max-width: 39.9375em) {
    #highlight .event-info {
      height: auto; } }
  @media screen and (min-width: 40em) and (max-width: 63.9375em) {
    #highlight .event-info {
      height: auto; } }
  #highlight .event-info #highlight-image {
    padding-left: 1rem;
    padding-right: 1rem;
    margin-bottom: 1rem; }
  #highlight .event-info .read-more, #highlight .event-info #comments .comment-list .comment-reply-link, #comments .comment-list #highlight .event-info .comment-reply-link {
    color: #fefefe; }
  #highlight .event-info .event-info-middle > .row {
    margin-left: inherit;
    margin-right: inherit; }

.gi-section {
  margin-bottom: 2rem; }
  .gi-section p, .gi-section ul, .gi-section ol {
    margin-bottom: 0.5rem;
    font-size: 0.8rem; }

#local-stories .row .row {
  margin-left: 0;
  margin-right: 0; }

.local-story-back {
  background-color: #ececec;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  min-height: 10rem;
  position: relative;
  z-index: 0; }

.local-story {
  position: relative;
  z-index: 0;
  display: block;
  height: 12.5rem;
  background: #23333f;
  color: #fefefe; }
  .local-story:after {
    position: absolute;
    z-index: 1; }
    @media screen and (max-width: 39.9375em) {
      .local-story:after {
        top: -20px;
        margin-left: -20px;
        left: 50%; } }
    @media screen and (min-width: 40em) {
      .local-story:after {
        display: none; } }
  .local-story h1, .local-story h2, .local-story h3, .local-story h4, .local-story h5, .local-story h6, .local-story p, .local-story small, .local-story div {
    color: #fefefe;
    margin: 0;
    padding: 0; }
  .local-story .local-story-top {
    padding: 1rem;
    height: 3.5rem; }
    .local-story .local-story-top h4 {
      height: 1.5rem;
      line-height: 1.5rem;
      white-space: nowrap;
      text-overflow: ellipsis;
      overflow: hidden; }
  .local-story .local-story-middle {
    padding: 0 1rem 1rem;
    height: 7rem; }
    .local-story .local-story-middle p {
      line-height: 1.5rem;
      font-size: 1rem;
      height: 6rem;
      text-overflow: ellipsis;
      overflow: hidden; }
  .local-story .local-story-bottom {
    padding: 0 1rem 1rem;
    height: 2rem; }
    .local-story .local-story-bottom a {
      height: 1rem;
      line-height: 1rem;
      white-space: nowrap;
      text-overflow: ellipsis;
      overflow: hidden;
      display: block; }

.local-story-wrap {
  display: block;
  opacity: 1;
  transition: opacity 200ms ease-in-out; }
  .local-story-wrap:hover {
    opacity: 0.8; }
  .local-story-wrap:nth-child(6n + 1) .local-story {
    background: #23333f; }
    @media screen and (max-width: 39.9375em) {
      .local-story-wrap:nth-child(6n + 1) .local-story:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 20px;
        border-color: transparent transparent #23333f;
        border-bottom-style: solid;
        border-top-width: 0; } }
  .local-story-wrap:nth-child(6n + 2) .local-story {
    background: #02afb0; }
    @media screen and (max-width: 39.9375em) {
      .local-story-wrap:nth-child(6n + 2) .local-story:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 20px;
        border-color: transparent transparent #02afb0;
        border-bottom-style: solid;
        border-top-width: 0; } }
  .local-story-wrap:nth-child(6n + 3) .local-story {
    background: #afbfbe; }
    @media screen and (max-width: 39.9375em) {
      .local-story-wrap:nth-child(6n + 3) .local-story:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 20px;
        border-color: transparent transparent #afbfbe;
        border-bottom-style: solid;
        border-top-width: 0; } }
  .local-story-wrap:nth-child(6n + 4) .local-story {
    background: #fc8556; }
    @media screen and (max-width: 39.9375em) {
      .local-story-wrap:nth-child(6n + 4) .local-story:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 20px;
        border-color: transparent transparent #fc8556;
        border-bottom-style: solid;
        border-top-width: 0; } }
  .local-story-wrap:nth-child(6n + 5) .local-story {
    background: #45a7bf; }
    @media screen and (max-width: 39.9375em) {
      .local-story-wrap:nth-child(6n + 5) .local-story:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 20px;
        border-color: transparent transparent #45a7bf;
        border-bottom-style: solid;
        border-top-width: 0; } }
  .local-story-wrap:nth-child(6n + 6) .local-story {
    background: #806c8f; }
    @media screen and (max-width: 39.9375em) {
      .local-story-wrap:nth-child(6n + 6) .local-story:after {
        content: '';
        display: block;
        width: 0;
        height: 0;
        border: inset 20px;
        border-color: transparent transparent #806c8f;
        border-bottom-style: solid;
        border-top-width: 0; } }
  @media screen and (min-width: 64em) {
    .local-story-wrap:nth-child(4n + 1) .local-story:after, .local-story-wrap:nth-child(4n + 2) .local-story:after {
      content: '';
      display: block;
      width: 0;
      height: 0;
      border: inset 20px;
      border-color: transparent pink transparent transparent;
      border-right-style: solid;
      border-left-width: 0;
      top: 50%;
      margin-top: -20px;
      margin-left: 0;
      left: -20px; }
    .local-story-wrap:nth-child(4n + 3) .local-story:after, .local-story-wrap:nth-child(4n + 4) .local-story:after {
      content: '';
      display: block;
      width: 0;
      height: 0;
      border: inset 20px;
      border-color: transparent transparent transparent pink;
      border-left-style: solid;
      border-right-width: 0;
      top: 50%;
      margin-top: -20px;
      margin-right: 0;
      right: -20px;
      left: auto; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 1) .local-story:after {
    border-color: transparent #23333f transparent transparent !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 2) .local-story:after {
    border-color: transparent #02afb0 transparent transparent !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 3) .local-story:after {
    border-color: transparent transparent transparent #afbfbe !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 4) .local-story:after {
    border-color: transparent transparent transparent #fc8556 !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 5) .local-story:after {
    border-color: transparent #45a7bf transparent transparent !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 6) .local-story:after {
    border-color: transparent #806c8f transparent transparent !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 7) .local-story:after {
    border-color: transparent transparent transparent #23333f !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 8) .local-story:after {
    border-color: transparent transparent transparent #02afb0 !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 9) .local-story:after {
    border-color: transparent #afbfbe transparent transparent !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 10) .local-story:after {
    border-color: transparent #fc8556 transparent transparent !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 11) .local-story:after {
    border-color: transparent transparent transparent #45a7bf !important; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .local-story-wrap:nth-child(12n + 12) .local-story:after {
    border-color: transparent transparent transparent #806c8f !important; } }

.gi-contain {
  height: auto; }
  .gi-contain .event-info {
    height: auto;
    -ms-transform: translateY(0);
        transform: translateY(0); }
    .gi-contain .event-info .event-info-top {
      height: auto;
      overflow: visible; }
      .gi-contain .event-info .event-info-top h4 {
        height: auto;
        overflow: visible;
        white-space: normal; }
    .gi-contain .event-info .event-info-middle {
      height: auto;
      overflow: visible;
      padding-bottom: 5rem; }
      .gi-contain .event-info .event-info-middle p {
        height: auto;
        overflow: visible; }
    .gi-contain .event-info .read-more, .gi-contain .event-info #comments .comment-list .comment-reply-link, #comments .comment-list .gi-contain .event-info .comment-reply-link {
      color: #fefefe; }

#footer-logo {
  display: inline-block;
  width: 2.5rem;
  transition: width 200ms ease-in-out;
  overflow: hidden; }
  @media screen and (min-width: 40em) {
    #footer-logo {
      width: auto;
      margin-bottom: 2rem; } }
  #footer-logo svg {
    display: inline-block;
    vertical-align: top;
    width: 11.4rem; }
    @media screen and (min-width: 64em) {
      #footer-logo svg {
        width: 9rem; } }
    @media screen and (min-width: 75em) {
      #footer-logo svg {
        width: 11.4rem; } }
    #footer-logo svg .st0 {
      color: #fefefe; }

#footer-testimonial {
  background: #a9b8b7;
  color: #23333f;
  padding: 1.5rem 0; }
  #footer-testimonial img {
    border-radius: 50%;
    width: 3.26087rem; }
  #footer-testimonial p {
    font-size: 0.8rem;
    margin-bottom: 0; }
    #footer-testimonial p span {
      font-size: 0.8rem;
      font-family: "minion-pro", serif;
      font-weight: bold; }

#footer-cta {
  background: #a9b8b7;
  color: #fefefe;
  padding: 1rem 0; }
  #footer-cta h4 {
    margin-bottom: 0;
    margin: 0.5rem;
    font-style: italic;
    color: #fefefe;
    display: inline-block; }
  #footer-cta .button, #footer-cta #header ul li:last-child a, #header ul li:last-child #footer-cta a, #footer-cta #mobile-nav ul li:last-child a, #mobile-nav ul li:last-child #footer-cta a, #footer-cta #mobile-nav-close, #footer-cta #footer .footer-menu-wrap:last-child:last-child a, #footer .footer-menu-wrap:last-child:last-child #footer-cta a, #footer-cta #footer .gform_wrapper .gform_button, #footer .gform_wrapper #footer-cta .gform_button, #footer-cta
  #talking-videos .gform_wrapper .gform_button,
  #talking-videos .gform_wrapper #footer-cta .gform_button, #footer-cta #home-quote #home-video-close, #home-quote #footer-cta #home-video-close {
    margin: 0.5rem;
    vertical-align: baseline; }

#footer {
  padding-top: 2rem;
  background: #23333f; }
  @media screen and (max-width: 39.9375em) {
    #footer {
      text-align: center; } }
  #footer #footer-menus {
    margin-bottom: 1rem; }
    #footer #footer-menus a {
      font-family: "minion-pro", serif;
      font-weight: bold; }
      #footer #footer-menus a:hover {
        color: #5edfff; }
  #footer .footer-menu-back {
    margin-bottom: 0.5rem; }
  #footer a {
    color: #333333; }
    #footer a:hover {
      color: #373c97; }
  #footer ul {
    list-style: none;
    margin: 0;
    line-height: 1.2; }
  #footer ul:not(.sub-menu) > li {
    margin-bottom: 0.5rem; }
    #footer ul:not(.sub-menu) > li > a {
      color: #fefefe;
      font-size: 1.1rem;
      font-weight: 600; }
      @media screen and (max-width: 39.9375em) {
        #footer ul:not(.sub-menu) > li > a {
          font-size: 1rem;
          display: inline-block; } }
  #footer .footer-menu-wrap:not(:last-child) {
    padding-top: 0.4em;
    padding-bottom: 0.4em; }
  #footer .footer-menu-wrap:last-child:last-child a {
    margin-bottom: 0;
    vertical-align: middle;
    font-size: 1.1rem; }
    #footer .footer-menu-wrap:last-child:last-child a:hover {
      color: #fefefe !important; }
  #footer .sub-menu {
    padding: 0.25rem 0; }
    @media screen and (max-width: 39.9375em) {
      #footer .sub-menu {
        display: none; } }
    #footer .sub-menu li {
      margin-bottom: 0.3rem; }
      #footer .sub-menu li a {
        color: #fefefe;
        font-size: 0.8rem; }
  #footer h4 {
    margin-bottom: 1rem;
    color: #fefefe;
    font-weight: bold; }
  #footer .phone-link,
  #footer .email-link {
    display: block;
    width: 100%; }
    #footer .phone-link:hover,
    #footer .email-link:hover {
      color: #373c97; }
  #footer #footer-social {
    margin: 0; }
    #footer #footer-social li {
      display: inline; }
      #footer #footer-social li a {
        color: #5edfff;
        display: inline-block;
        width: 2rem;
        height: 2rem;
        line-height: 2rem;
        text-align: center;
        border-radius: 50%;
        overflow: hidden;
        margin: 0.25rem; }
        #footer #footer-social li a:hover {
          color: #2bd5ff; }
        #footer #footer-social li a span {
          width: 2rem;
          height: 2rem;
          line-height: 2rem;
          font-size: 2rem;
          display: inline-block; }
  #footer #disclaimer {
    padding-bottom: 2rem;
    color: #364e60;
    font-size: 0.7rem;
    line-height: 1.2;
    margin: 0;
    text-align: center; }
    #footer #disclaimer a {
      color: #364e60; }
    #footer #disclaimer a:hover {
      color: #5edfff; }

#footer .gform_wrapper,
#talking-videos .gform_wrapper {
  margin: 0 0 1rem;
  max-width: 100%; }
  #footer .gform_wrapper .gform_body,
  #talking-videos .gform_wrapper .gform_body {
    display: inline-block;
    float: left;
    width: 62%; }
    #footer .gform_wrapper .gform_body li,
    #talking-videos .gform_wrapper .gform_body li {
      margin: 0; }
      #footer .gform_wrapper .gform_body li label,
      #talking-videos .gform_wrapper .gform_body li label {
        display: none; }
      #footer .gform_wrapper .gform_body li .ginput_container,
      #talking-videos .gform_wrapper .gform_body li .ginput_container {
        margin: 0; }
        #footer .gform_wrapper .gform_body li .ginput_container input,
        #talking-videos .gform_wrapper .gform_body li .ginput_container input {
          border: 0;
          height: 2.847rem;
          margin: 0;
          padding: 0.8rem 0.6rem;
          width: 100%; }
  #footer .gform_wrapper .gform_footer,
  #talking-videos .gform_wrapper .gform_footer {
    display: inline-block;
    margin: 0;
    padding: 0;
    width: 38%; }
  #footer .gform_wrapper .gform_button,
  #talking-videos .gform_wrapper .gform_button {
    padding-top: 0.8em;
    padding-bottom: 0.8em;
    vertical-align: baseline;
    font-size: 1.1rem;
    font-weight: normal;
    margin: 0; }

#twitter-feed .tweet-wrap {
  margin-bottom: 2rem; }

#twitter-feed .the-tweet {
  margin-bottom: 1rem; }

#twitter-feed .the-tweet-date {
  color: #a9b8b7;
  font-size: 0.8rem; }

#twitter-feed-link {
  color: #5edfff;
  font-size: 2rem; }

.player-video {
  overflow: hidden; }

.player-content {
  background-color: #343741;
  color: #fefefe;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem; }
  .player-content h4 {
    color: #fefefe;
    padding-left: 1.5rem;
    padding-right: 1.5rem; }
  .player-content p {
    color: #fefefe;
    margin-bottom: 0;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    line-height: 1.5rem;
    overflow: scroll; }
    @media screen and (min-width: 40em) and (max-width: 63.9375em) {
      .player-content p {
        height: 4.5rem; } }
    @media screen and (min-width: 64em) {
      .player-content p {
        height: 6rem; } }

.graphics-help .read-more, .graphics-help #comments .comment-list .comment-reply-link, #comments .comment-list .graphics-help .comment-reply-link {
  margin-bottom: 1rem;
  display: inline-block; }
  @media screen and (min-width: 40em) {
    .graphics-help .read-more, .graphics-help #comments .comment-list .comment-reply-link, #comments .comment-list .graphics-help .comment-reply-link {
      float: right;
      padding-right: 10px; } }

.instagram-preview {
  width: 100%;
  padding-bottom: 100%;
  height: 0;
  display: block;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat; }

.facebook-preview {
  width: 100%;
  padding-bottom: 37%;
  height: 0;
  display: block;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat; }

.media-preview {
  position: relative;
  display: block;
  margin-bottom: 2rem; }
  .media-preview .download-button {
    position: absolute;
    display: block;
    bottom: 0;
    right: 0;
    left: 0;
    top: 0;
    background-color: transparent;
    transition: background-color 100ms ease-in-out;
    color: #fefefe; }
    .media-preview .download-button span {
      position: absolute;
      bottom: 0.5rem;
      right: 0.5rem;
      font-size: 2rem; }
  .media-preview:hover .download-button {
    background-color: rgba(35, 51, 63, 0.8); }

#media-modal {
  max-width: 45rem; }

#media-modal-image {
  margin-bottom: 2rem; }

.modal-mark {
  text-align: right; }
  .modal-mark svg {
    width: 2.17391rem;
    height: auto; }

.hero {
  position: relative;
  overflow: hidden;
  z-index: 0;
  padding: 4rem 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  color: #fefefe; }
  .hero:after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    content: '';
    display: block;
    background-color: rgba(127, 124, 98, 0.5); }
  .hero .hero-vid {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    min-height: 100%;
    min-width: 100%;
    z-index: -1; }
  .hero .hero-content {
    position: relative;
    z-index: 3;
    margin-bottom: 2rem; }
    .hero .hero-content h2, .hero .hero-content h1 {
      color: #fefefe;
      margin: 2rem 0;
      font-size: 1.41304rem; }
      @media screen and (min-width: 40em) {
        .hero .hero-content h2, .hero .hero-content h1 {
          font-size: 2.3913rem; } }
      .hero .hero-content h2 small, .hero .hero-content h1 small {
        color: #fefefe;
        font-size: 1.25rem;
        display: block;
        margin-top: 3rem; }
    .hero .hero-content p {
      margin-left: auto;
      margin-right: auto;
      max-width: 40.21739rem; }
    .hero .hero-content .button, .hero .hero-content #header ul li:last-child a, #header ul li:last-child .hero .hero-content a, .hero .hero-content #mobile-nav ul li:last-child a, #mobile-nav ul li:last-child .hero .hero-content a, .hero .hero-content #mobile-nav-close, .hero .hero-content #footer .footer-menu-wrap:last-child:last-child a, #footer .footer-menu-wrap:last-child:last-child .hero .hero-content a, .hero .hero-content #footer .gform_wrapper .gform_button, #footer .gform_wrapper .hero .hero-content .gform_button, .hero .hero-content
    #talking-videos .gform_wrapper .gform_button,
    #talking-videos .gform_wrapper .hero .hero-content .gform_button, .hero .hero-content #home-quote #home-video-close, #home-quote .hero .hero-content #home-video-close {
      margin: 0 1rem 2rem;
      vertical-align: top; }
      .hero .hero-content .button:last-child, .hero .hero-content #header ul li:last-child a:last-child, #header ul li:last-child .hero .hero-content a:last-child, .hero .hero-content #mobile-nav ul li:last-child a:last-child, #mobile-nav ul li:last-child .hero .hero-content a:last-child, .hero .hero-content #mobile-nav-close:last-child, .hero .hero-content #footer .footer-menu-wrap:last-child:last-child a:last-child, #footer .footer-menu-wrap:last-child:last-child .hero .hero-content a:last-child, .hero .hero-content #footer .gform_wrapper .gform_button:last-child, #footer .gform_wrapper .hero .hero-content .gform_button:last-child, .hero .hero-content
      #talking-videos .gform_wrapper .gform_button:last-child,
      #talking-videos .gform_wrapper .hero .hero-content .gform_button:last-child, .hero .hero-content #home-quote #home-video-close:last-child, #home-quote .hero .hero-content #home-video-close:last-child {
        margin-bottom: 0; }
  .hero .share-buttons {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    list-style: none;
    margin: 0;
    padding: 0;
    z-index: 3; }
    .hero .share-buttons li {
      display: inline-block; }
      .hero .share-buttons li a {
        display: inline-block;
        color: #fefefe;
        transition: color 200ms ease-in-out;
        font-size: 2rem;
        margin: 0.5rem; }
        .hero .share-buttons li a:hover {
          color: #d82f89; }
  .hero .button, .hero #header ul li:last-child a, #header ul li:last-child .hero a, .hero #mobile-nav ul li:last-child a, #mobile-nav ul li:last-child .hero a, .hero #mobile-nav-close, .hero #footer .footer-menu-wrap:last-child:last-child a, #footer .footer-menu-wrap:last-child:last-child .hero a, .hero #footer .gform_wrapper .gform_button, #footer .gform_wrapper .hero .gform_button, .hero
  #talking-videos .gform_wrapper .gform_button,
  #talking-videos .gform_wrapper .hero .gform_button, .hero #home-quote #home-video-close, #home-quote .hero #home-video-close {
    position: relative; }
    .hero .button .wistia_embed, .hero #header ul li:last-child a .wistia_embed, #header ul li:last-child .hero a .wistia_embed, .hero #mobile-nav ul li:last-child a .wistia_embed, #mobile-nav ul li:last-child .hero a .wistia_embed, .hero #mobile-nav-close .wistia_embed, .hero #footer .footer-menu-wrap:last-child:last-child a .wistia_embed, #footer .footer-menu-wrap:last-child:last-child .hero a .wistia_embed, .hero #footer .gform_wrapper .gform_button .wistia_embed, #footer .gform_wrapper .hero .gform_button .wistia_embed, .hero
    #talking-videos .gform_wrapper .gform_button .wistia_embed,
    #talking-videos .gform_wrapper .hero .gform_button .wistia_embed, .hero #home-quote #home-video-close .wistia_embed, #home-quote .hero #home-video-close .wistia_embed {
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0; }
      .hero .button .wistia_embed div, .hero #header ul li:last-child a .wistia_embed div, #header ul li:last-child .hero a .wistia_embed div, .hero #mobile-nav ul li:last-child a .wistia_embed div, #mobile-nav ul li:last-child .hero a .wistia_embed div, .hero #mobile-nav-close .wistia_embed div, .hero #footer .footer-menu-wrap:last-child:last-child a .wistia_embed div, #footer .footer-menu-wrap:last-child:last-child .hero a .wistia_embed div, .hero #footer .gform_wrapper .gform_button .wistia_embed div, #footer .gform_wrapper .hero .gform_button .wistia_embed div, .hero
      #talking-videos .gform_wrapper .gform_button .wistia_embed div,
      #talking-videos .gform_wrapper .hero .gform_button .wistia_embed div, .hero #home-quote #home-video-close .wistia_embed div, #home-quote .hero #home-video-close .wistia_embed div, .hero .button .wistia_embed img, .hero #header ul li:last-child a .wistia_embed img, #header ul li:last-child .hero a .wistia_embed img, .hero #mobile-nav ul li:last-child a .wistia_embed img, #mobile-nav ul li:last-child .hero a .wistia_embed img, .hero #mobile-nav-close .wistia_embed img, .hero #footer .footer-menu-wrap:last-child:last-child a .wistia_embed img, #footer .footer-menu-wrap:last-child:last-child .hero a .wistia_embed img, .hero #footer .gform_wrapper .gform_button .wistia_embed img, #footer .gform_wrapper .hero .gform_button .wistia_embed img, .hero
      #talking-videos .gform_wrapper .gform_button .wistia_embed img,
      #talking-videos .gform_wrapper .hero .gform_button .wistia_embed img, .hero #home-quote #home-video-close .wistia_embed img, #home-quote .hero #home-video-close .wistia_embed img {
        opacity: 0; }

#hero-countdown {
  margin-bottom: 0; }
  @media screen and (min-width: 40em) {
    #hero-countdown {
      font-size: 4rem; } }

#blog-sidebar .widget_search {
  border-bottom: 1px solid #cacaca;
  padding: 0 0 2rem; }
  #blog-sidebar .widget_search input {
    margin: 0;
    border: 2px solid #cacaca; }
  #blog-sidebar .widget_search .button, #blog-sidebar .widget_search #header ul li:last-child a, #header ul li:last-child #blog-sidebar .widget_search a, #blog-sidebar .widget_search #mobile-nav ul li:last-child a, #mobile-nav ul li:last-child #blog-sidebar .widget_search a, #blog-sidebar .widget_search #mobile-nav-close, #blog-sidebar .widget_search #footer .footer-menu-wrap:last-child:last-child a, #footer .footer-menu-wrap:last-child:last-child #blog-sidebar .widget_search a, #blog-sidebar .widget_search #footer .gform_wrapper .gform_button, #footer .gform_wrapper #blog-sidebar .widget_search .gform_button, #blog-sidebar .widget_search
  #talking-videos .gform_wrapper .gform_button,
  #talking-videos .gform_wrapper #blog-sidebar .widget_search .gform_button, #blog-sidebar .widget_search #home-quote #home-video-close, #home-quote #blog-sidebar .widget_search #home-video-close {
    padding: 0.3177em 1.25em;
    margin: 0; }
  #blog-sidebar .widget_search .columns:last-child {
    padding-left: 0; }

#blog-sidebar .widget_categories {
  border-bottom: 1px solid #cacaca;
  padding: 2rem 0 2rem; }
  #blog-sidebar .widget_categories ul {
    -moz-columns: 2;
         columns: 2;
    list-style: none;
    margin-bottom: 0; }
    #blog-sidebar .widget_categories ul .cat-item a {
      font-size: 0.85rem; }
      #blog-sidebar .widget_categories ul .cat-item a:hover {
        font-weight: 500; }

#blog-sidebar .widget-title {
  font-family: "museo-sans", sans-serif;
  font-size: 1rem;
  font-weight: 500; }

#blog-sidebar #text-2 {
  border-bottom: 1px solid #cacaca;
  padding: 2rem 0 2rem; }
  #blog-sidebar #text-2 p {
    margin-bottom: 0.85rem; }
    #blog-sidebar #text-2 p strong {
      font-weight: 500; }
  #blog-sidebar #text-2 a {
    margin: 0; }

#blog-sidebar #text-3 {
  padding: 2rem 0 2rem; }
  #blog-sidebar #text-3 h4 {
    margin-bottom: 1rem; }
  #blog-sidebar #text-3 a {
    display: block;
    margin: 1rem 0 0; }
    #blog-sidebar #text-3 a:last-child {
      margin-bottom: 0; }

#archive-list {
  position: relative;
  padding: 4rem 0; }
  @media screen and (min-width: 64em) {
    #archive-list {
      padding: 6rem 0; } }

#archive-post {
  position: relative;
  padding: 4rem 0; }
  @media screen and (min-width: 64em) {
    #archive-post {
      padding: 6rem 0; } }
  #archive-post .widget_search {
    display: none; }
  #archive-post .widget_categories {
    display: none; }
  #archive-post #text-2 {
    padding: 0 0 2rem; }

.excerpt {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  background-color: #efefef;
  margin-bottom: 2rem; }
  @media screen and (min-width: 64em) {
    .excerpt {
      margin-bottom: 3rem; } }
  .excerpt .thumbnail-anchor {
    display: block;
    opacity: 1;
    transition: opacity 200ms ease-in-out; }
    .excerpt .thumbnail-anchor:hover {
      opacity: 0.6; }
  .excerpt .thumbnail {
    width: 100%; }
  .excerpt:last-child {
    margin: 0; }
  .excerpt .post-preview {
    padding: 5rem 4rem 3rem; }
  .excerpt .post-info {
    padding: 0 1rem 0.5rem;
    font-size: 0.85rem; }
    .excerpt .post-info a {
      color: #5edfff; }
      .excerpt .post-info a:hover {
        color: #2bd5ff; }

.post-info {
  font-size: 0.85rem;
  padding: 0 0 1rem; }
  .post-info a {
    color: #5edfff; }
    .post-info a:hover {
      color: #2bd5ff; }

.post-title {
  padding: 1rem 0 1rem; }

.post-content {
  padding: 1rem 0 1rem; }

.post-author {
  padding: 1rem 0 1rem;
  margin-bottom: 2rem; }

.post-comments {
  padding: 1rem 0 1rem; }

.post-pagination {
  padding: 1rem 0 1rem; }

.post-meta .pm-name {
  margin-bottom: 0.5rem;
  line-height: 1rem; }

.post-meta .pm-title {
  margin-bottom: 1.1rem; }

.post-meta .pm-website {
  color: #5edfff; }
  .post-meta .pm-website a {
    color: #5edfff; }
    .post-meta .pm-website a:hover {
      color: #2bd5ff; }

#comments .comments-title {
  padding: 4rem;
  background-color: #efefef;
  margin: 0; }

#comments .comment-list {
  background-color: #efefef;
  margin: 0;
  list-style: none; }
  #comments .comment-list .children {
    list-style: none;
    border-left: 1px solid;
    margin-left: 1rem;
    padding-left: 1rem;
    margin-top: 2rem; }
  #comments .comment-list .comment {
    padding: 0 4rem 4rem; }
  #comments .comment-list .comment-body p {
    margin-bottom: 1rem; }

#respond {
  background-color: #efefef;
  padding: 4rem;
  margin-top: 2rem; }
  #respond .form-submit {
    margin: 0; }
    #respond .form-submit input[type=submit] {
      margin: 0; }

.single-thumbnail {
  background: #f1f1f1;
  box-shadow: 0 3px 5px -1px rgba(153, 153, 153, 0.2), 0 6px 10px 0 rgba(153, 153, 153, 0.14), 0 1px 18px 0 rgba(153, 153, 153, 0.12); }
  .single-thumbnail img {
    display: block;
    margin: 0 auto; }
  .single-thumbnail .flex-video {
    margin-bottom: 0; }

#about .right-title {
  text-align: center;
  margin-bottom: 2rem; }
  @media screen and (min-width: 64em) {
    #about .right-title {
      text-align: right;
      margin-bottom: 0; } }

#about .about-section {
  padding: 2.5rem 0; }
  #about .about-section:first-child {
    padding-top: 5rem; }
  #about .about-section:last-child {
    padding-bottom: 5rem; }

#about #contact-social {
  margin: 0; }
  #about #contact-social li {
    display: inline; }
    #about #contact-social li a {
      color: #5edfff;
      display: inline-block;
      width: 2rem;
      height: 2rem;
      line-height: 2rem;
      text-align: center;
      border-radius: 50%;
      overflow: hidden;
      margin: 0.25rem; }
      #about #contact-social li a:hover {
        color: #2bd5ff; }
      #about #contact-social li a span {
        width: 2rem;
        height: 2rem;
        line-height: 2rem;
        font-size: 2rem;
        display: inline-block; }

#leaders-row {
  padding: 2rem 0.81522rem 0; }
  #leaders-row .columns {
    padding: 0; }

.employee-wrapper {
  display: block;
  position: relative; }
  .employee-wrapper .baby-wrapper {
    display: block;
    position: relative;
    height: 0;
    padding-bottom: 100%;
    overflow: hidden; }
    .employee-wrapper .baby-wrapper img {
      width: 100%; }
  .employee-wrapper .adult-wrapper {
    display: none;
    position: relative;
    height: 0;
    padding-bottom: 100%;
    overflow: hidden; }
    .employee-wrapper .adult-wrapper img {
      width: 100%; }
  .employee-wrapper:hover .baby-wrapper {
    display: none; }
  .employee-wrapper:hover .adult-wrapper {
    display: block; }
  .employee-wrapper .employee-text {
    background-color: rgba(135, 122, 179, 0.7);
    display: block;
    position: absolute;
    bottom: 0;
    padding: 0.5rem;
    width: 100%;
    color: #fefefe; }

#contact {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center top; }

#home-bullets {
  padding-top: 4rem; }
  #home-bullets .home-bullet {
    margin: 0 auto 4rem;
    max-width: 13.58696rem; }
    #home-bullets .home-bullet span {
      font-size: 4.5rem;
      color: #482762;
      display: inline-block;
      margin-bottom: 2rem; }
    #home-bullets .home-bullet h4 {
      line-height: 1.2;
      color: #000;
      margin: 0; }
    #home-bullets .home-bullet p {
      line-height: 1.2;
      margin: 0; }
    #home-bullets .home-bullet:hover span {
      color: #00b3e3;
      transition: color 200ms; }
    #home-bullets .home-bullet:hover h4, #home-bullets .home-bullet:hover p {
      transition: transform 200ms;
      -ms-transform: translateY(-0.25rem);
          transform: translateY(-0.25rem); }

#learn-more {
  padding: 4rem 0;
  color: #fefefe; }
  #learn-more h2 {
    margin: 0 0 2rem;
    color: #fefefe; }
  @media screen and (max-width: 39.9375em) {
    #learn-more #learn-more-content {
      text-align: center; } }

#stats #map-districts {
  height: 400px; }
  @media screen and (min-width: 40em) {
    #stats #map-districts {
      height: 500px; } }

#stats #home-stats {
  padding-top: 2rem; }
  @media screen and (min-width: 40em) {
    #stats #home-stats {
      padding-bottom: 2rem; } }

#stats .home-stat {
  max-width: 21.73913rem;
  margin: 2rem auto; }
  #stats .home-stat h2 {
    margin: 0;
    line-height: 0.75;
    font-weight: lighter;
    font-size: 2.3913rem;
    text-align: center; }
    @media screen and (min-width: 40em) {
      #stats .home-stat h2 {
        text-align: left; } }
  #stats .home-stat p {
    margin-bottom: 0;
    color: #686868;
    text-align: center; }
    @media screen and (min-width: 40em) {
      #stats .home-stat p {
        text-align: left; } }
  #stats .home-stat:nth-child(1) h2 {
    color: #3eb049; }
  #stats .home-stat:nth-child(2) h2 {
    color: #d82f89; }
  #stats .home-stat:nth-child(3) h2 {
    color: #f07722; }
  #stats .home-stat:nth-child(4) h2 {
    color: #6f3d98; }
  @media screen and (min-width: 64em) {
    #stats .home-stat h2 {
      font-size: 3rem; }
    #stats .home-stat p {
      font-size: 1.2rem; } }

#districts {
  padding: 4rem 0; }
  #districts #district-images {
    padding: 2rem 0 2rem;
    margin-bottom: 0; }
    #districts #district-images .slick-slide {
      opacity: 0.5;
      transition: width 200ms; }
      #districts #district-images .slick-slide.slick-current {
        opacity: 1; }
    #districts #district-images .slick-dots {
      display: none !important; }
    #districts #district-images .district-image {
      padding: 1rem; }
    #districts #district-images .district {
      width: 100%;
      height: 0;
      padding-bottom: 66%;
      background-repeat: no-repeat;
      background-position: center center;
      background-size: contain;
      -webkit-filter: grayscale(100%);
              filter: grayscale(100%); }

#home-quote {
  padding: 2rem 0;
  color: #fefefe;
  font-weight: bold;
  position: relative;
  z-index: 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  z-index: 0; }
  #home-quote:after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    right: 0;
    left: 0;
    z-index: -1;
    opacity: 0.8; }
  #home-quote #home-video-trigger {
    font-size: 4rem;
    color: #fefefe;
    margin: 2rem auto 0rem;
    display: block; }
    @media screen and (min-width: 64em) {
      #home-quote #home-video-trigger {
        font-size: 6rem;
        margin: 4rem auto 2rem; } }
  #home-quote blockquote {
    color: #fefefe;
    padding: 0;
    border: none; }
    @media screen and (min-width: 64em) {
      #home-quote blockquote {
        font-size: 1.4rem; } }
  #home-quote p {
    line-height: 1.2; }
    #home-quote p strong {
      font-weight: bold; }
    @media screen and (min-width: 64em) {
      #home-quote p {
        font-size: 1.2rem; } }
  #home-quote img {
    margin: 0 auto 2rem;
    display: block;
    width: 7.6087rem; }
  #home-quote #home-video-iframe {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    height: 100%;
    background: #000;
    overflow: visible;
    margin-bottom: 0; }
  #home-quote #home-video-close {
    position: absolute;
    left: 50%;
    top: 0;
    text-align: center;
    z-index: 2;
    -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%); }

.home-graph {
  margin-bottom: 2rem;
  width: 8.69565rem;
  height: 8.69565rem;
  text-align: center;
  position: relative; }
  .home-graph h3 {
    color: #d97827;
    font-size: 3rem;
    line-height: 8.69565rem;
    margin: 0;
    text-align: center; }
    .home-graph h3 sup {
      font-size: 1rem;
      vertical-align: super; }
  .home-graph .home-graph-radius {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%; }

#stats {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  z-index: 0; }
  #stats:after {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    content: '';
    display: block;
    background-color: rgba(35, 51, 63, 0.85);
    z-index: 1; }
  #stats .stat-bucket {
    position: relative;
    z-index: 2;
    color: #fefefe;
    padding: 2rem; }
    #stats .stat-bucket h3 {
      color: #fefefe; }
      #stats .stat-bucket h3.people-title {
        height: 8.69565rem;
        line-height: 3.26087rem;
        padding: 1.08696rem 0;
        font-size: 3rem;
        margin: 0 0 2rem; }
        #stats .stat-bucket h3.people-title span {
          color: #d97827; }
    #stats .stat-bucket p {
      padding-bottom: 1rem;
      margin-bottom: 0; }
    #stats .stat-bucket .read-more, #stats .stat-bucket #comments .comment-list .comment-reply-link, #comments .comment-list #stats .stat-bucket .comment-reply-link {
      color: #fefefe; }

.baby-preview {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-color: #23333f;
  height: 0;
  padding-bottom: 100%;
  display: block;
  position: relative;
  cursor: pointer; }
  .baby-preview .baby-preview-content {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(35, 51, 63, 0.8);
    overflow: hidden;
    padding: 1rem 0;
    color: #fefefe;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 100ms ease-in-out; }
    .baby-preview .baby-preview-content .baby-preview-content-in {
      cursor: pointer;
      position: absolute;
      top: 50%;
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
      padding-left: 1rem;
      padding-right: 1rem;
      left: 0;
      right: 0; }
      .baby-preview .baby-preview-content .baby-preview-content-in h5 {
        color: #fefefe;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis; }
      .baby-preview .baby-preview-content .baby-preview-content-in span {
        color: #fefefe;
        font-size: 3rem; }
  .baby-preview:hover .baby-preview-content {
    opacity: 1;
    cursor: pointer; }

.home-story .home-story-image {
  min-height: 15rem;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover; }

.home-story .home-story-text {
  padding: 2rem !important;
  background: #02afb0;
  color: #fefefe; }
  .home-story .home-story-text h4 {
    color: #fefefe; }
  .home-story .home-story-text .read-more, .home-story .home-story-text #comments .comment-list .comment-reply-link, #comments .comment-list .home-story .home-story-text .comment-reply-link {
    color: #fefefe; }

#get-connected {
  background-repeat: no-repeat;
  background-size: cover; }
  @media screen and (max-width: 39.9375em) {
    #get-connected {
      background-image: none !important; } }
  #get-connected .gc-bucket {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    z-index: 0;
    margin-bottom: 2rem; }
    #get-connected .gc-bucket .gc-bucket-content {
      position: relative;
      padding: 2rem;
      z-index: 2; }
    #get-connected .gc-bucket h4 {
      color: #fefefe; }
    #get-connected .gc-bucket h5 {
      color: #fefefe; }
    #get-connected .gc-bucket p {
      color: #fefefe; }
    #get-connected .gc-bucket .read-more, #get-connected .gc-bucket #comments .comment-list .comment-reply-link, #comments .comment-list #get-connected .gc-bucket .comment-reply-link {
      color: #fefefe; }
    #get-connected .gc-bucket:after {
      z-index: 1;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      content: '';
      display: block; }
    #get-connected .gc-bucket.give {
      background-color: #d97827; }
      #get-connected .gc-bucket.give:after {
        background-color: rgba(217, 120, 39, 0.85); }
    #get-connected .gc-bucket.download {
      background-color: #877ab3; }
      #get-connected .gc-bucket.download:after {
        background-color: rgba(135, 122, 179, 0.85); }
    #get-connected .gc-bucket.blog {
      background-color: #23333f; }
      #get-connected .gc-bucket.blog:after {
        background-color: rgba(35, 51, 63, 0.85); }

#post-preview {
  margin-top: 3rem; }
  @media screen and (min-width: 40em) {
    #post-preview {
      margin-top: 0; } }
  #post-preview img {
    display: block;
    margin-bottom: 1rem; }
  #post-preview h3 {
    margin-bottom: 2rem; }
  #post-preview #post-preview-image-link {
    display: block;
    opacity: 1;
    transition: opacity 200ms ease-in-out; }
    #post-preview #post-preview-image-link:hover {
      opacity: 0.8; }

.resource-bucket {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  z-index: 0;
  position: relative;
  padding-top: 2rem;
  padding-bottom: 2rem; }
  .resource-bucket:after {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    content: '';
    display: block;
    z-index: 1; }
  .resource-bucket:nth-child(1):after {
    background-color: rgba(35, 51, 63, 0.9); }
  .resource-bucket:nth-child(2):after {
    background-color: rgba(217, 120, 39, 0.9); }
  .resource-bucket:nth-child(3):after {
    background-color: rgba(135, 122, 179, 0.9); }
  .resource-bucket h4, .resource-bucket p, .resource-bucket img, .resource-bucket a {
    position: relative;
    z-index: 2;
    color: #fefefe; }
  .resource-bucket h4, .resource-bucket p, .resource-bucket .resource-bottom {
    padding-left: 2rem;
    padding-right: 2rem; }
  .resource-bucket .read-more:hover, .resource-bucket #comments .comment-list .comment-reply-link:hover, #comments .comment-list .resource-bucket .comment-reply-link:hover {
    color: #bbccd9; }

.speaker-wrap {
  margin: 0 auto;
  width: 13rem;
  display: block; }
  @media screen and (min-width: 64em) {
    .speaker-wrap {
      width: 26rem; } }
  .speaker-wrap .local-story-back {
    min-height: 13rem;
    height: 13rem; }
  .speaker-wrap .local-story {
    min-height: 13rem;
    height: 13rem; }
    @media screen and (min-width: 64em) {
      .speaker-wrap .local-story:after {
        display: none !important; } }

#product-preview {
  display: block;
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  color: #fefefe;
  padding: 2rem;
  z-index: 0;
  position: relative; }
  #product-preview:after {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(35, 51, 63, 0.9);
    content: '';
    display: block;
    z-index: 1; }
  #product-preview img,
  #product-preview h3,
  #product-preview .read-more,
  #product-preview #comments .comment-list .comment-reply-link, #comments .comment-list
  #product-preview .comment-reply-link {
    z-index: 2;
    position: relative;
    color: #fefefe; }
  #product-preview img {
    width: 7.06522rem;
    height: auto;
    margin-bottom: 1rem; }

#talking-videos {
  background-color: #343741;
  color: #fefefe;
  padding: 2rem; }
  #talking-videos h3 {
    color: #fefefe;
    margin-bottom: 1.5rem; }
  #talking-videos .talking-video {
    margin-bottom: 2rem; }
    #talking-videos .talking-video .tv-title {
      margin-top: 0.5rem; }
      #talking-videos .talking-video .tv-title a {
        color: #fefefe; }
        #talking-videos .talking-video .tv-title a:hover {
          color: #d97827; }
  #talking-videos h4 {
    color: #fefefe;
    text-align: center; }
  #talking-videos .read-more, #talking-videos #comments .comment-list .comment-reply-link, #comments .comment-list #talking-videos .comment-reply-link {
    color: #fefefe; }
    #talking-videos .read-more span, #talking-videos #comments .comment-list .comment-reply-link span, #comments .comment-list #talking-videos .comment-reply-link span {
      color: #fefefe; }
    #talking-videos .read-more:hover, #talking-videos #comments .comment-list .comment-reply-link:hover, #comments .comment-list #talking-videos .comment-reply-link:hover {
      color: #5edfff; }
      #talking-videos .read-more:hover span, #talking-videos #comments .comment-list .comment-reply-link:hover span, #comments .comment-list #talking-videos .comment-reply-link:hover span {
        color: #5edfff; }

#talking-points h3 {
  color: #d97827;
  font-size: 2.5rem; }

#talking-points h4 {
  margin-bottom: 0; }

#talking-points .tp-verse {
  color: #5edfff;
  font-style: italic; }

.city-preview-contain {
  display: block;
  height: 19rem;
  position: relative;
  overflow: hidden;
  background: #23333f;
  color: #fefefe;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center; }
  .city-preview-contain h1, .city-preview-contain h2, .city-preview-contain h3, .city-preview-contain h4, .city-preview-contain h5, .city-preview-contain h6, .city-preview-contain p, .city-preview-contain small, .city-preview-contain div {
    color: #fefefe;
    margin: 0;
    padding: 0; }
  .city-preview-contain .city-preview-info {
    background-color: rgba(35, 51, 63, 0.8);
    position: relative;
    height: 19rem;
    transition: transform 200ms ease-in-out; }
    .city-preview-contain .city-preview-info .city-preview-info-top {
      padding: 2rem;
      height: 5.5rem; }
      .city-preview-contain .city-preview-info .city-preview-info-top h4 {
        height: 1.5rem;
        line-height: 1.5rem;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden; }
    .city-preview-contain .city-preview-info .city-preview-info-middle {
      padding: 0 2rem 1rem; }
      .city-preview-contain .city-preview-info .city-preview-info-middle p {
        line-height: 1.5rem;
        font-size: 1rem;
        height: 7.5rem;
        text-overflow: ellipsis;
        overflow: hidden; }
    .city-preview-contain .city-preview-info .city-preview-info-bottom {
      padding: 0 2rem 2rem;
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 3rem; }
      .city-preview-contain .city-preview-info .city-preview-info-bottom div, .city-preview-contain .city-preview-info .city-preview-info-bottom small {
        height: 1rem;
        line-height: 1rem;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
        display: block; }
  @media screen and (min-width: 64em) {
    .city-preview-contain .city-preview-info {
      -ms-transform: translateY(13.5rem);
          transform: translateY(13.5rem); }
    .city-preview-contain:hover .city-preview-info {
      -ms-transform: translateY(0);
          transform: translateY(0); } }

.church-resource img {
  padding-left: 2rem;
  padding-right: 2rem;
  width: 6.52174rem;
  height: auto;
  margin-bottom: 1rem;
  display: block; }

.church-resource:after {
  background-color: rgba(35, 51, 63, 0.9) !important; }

.co-blog-preview {
  margin-bottom: 2rem; }
  .co-blog-preview img {
    display: block;
    margin: 0 0 1rem; }

.page-template-donate-tmpl {
  padding-top: 0; }

.donate-strip {
  text-align: center;
  padding: 1.5rem 2rem 1rem; }
  .donate-strip svg {
    width: 10rem;
    height: auto; }
  .donate-strip#donate-bottom {
    background-color: #23333f; }
    .donate-strip#donate-bottom svg path {
      fill: #fefefe; }

#donate-blue {
  background: #23333f;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  z-index: 0;
  position: relative;
  padding: 2rem 1rem;
  margin: 0 auto;
  max-width: 57.06522rem; }
  #donate-blue:after {
    position: absolute;
    background-color: rgba(35, 51, 63, 0.9);
    z-index: 1;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    content: '';
    display: block; }
  #donate-blue > .row {
    position: relative;
    z-index: 2;
    color: #fefefe; }
  #donate-blue h1, #donate-blue h2, #donate-blue h3, #donate-blue h4, #donate-blue h5, #donate-blue h6, #donate-blue blockquote, #donate-blue ol, #donate-blue ul, #donate-blue a, #donate-blue p {
    color: #fefefe; }
  #donate-blue #donate-babies {
    margin-top: 1rem; }
    @media screen and (min-width: 75em) {
      #donate-blue #donate-babies {
        -ms-transform: translate(2rem, 4rem);
            transform: translate(2rem, 4rem); } }

#bio-social {
  margin-bottom: 1rem; }
  #bio-social a {
    font-size: 2rem; }

#back-to-archive {
  display: inline-block;
  margin-bottom: 1rem; }

#single-side-column {
  text-align: center; }
  @media screen and (min-width: 64em) {
    #single-side-column {
      text-align: left; } }
  #single-side-column a {
    display: block; }
    @media screen and (min-width: 64em) {
      #single-side-column a {
        display: inline-block; } }
  #single-side-column img {
    margin-bottom: 2rem; }
    @media screen and (min-width: 64em) {
      #single-side-column img {
        margin-bottom: 0; } }

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

.stories img {
  margin: 2rem 0; }

#resource-questions .resource-question {
  display: block;
  background: #f3f3f3;
  margin-bottom: 2rem;
  padding: 2rem;
  transition: all 200ms ease-in-out; }
  #resource-questions .resource-question h3 {
    font-size: 1.25rem; }
  #resource-questions .resource-question p {
    color: #333333;
    margin-bottom: 0; }
  #resource-questions .resource-question .read-more, #resource-questions .resource-question #comments .comment-list .comment-reply-link, #comments .comment-list #resource-questions .resource-question .comment-reply-link,
  #resource-questions .resource-question .read-more span,
  #resource-questions .resource-question #comments .comment-list .comment-reply-link span, #comments .comment-list
  #resource-questions .resource-question .comment-reply-link span {
    transition: color 200ms ease-in-out; }
  #resource-questions .resource-question:hover .read-more, #resource-questions .resource-question:hover #comments .comment-list .comment-reply-link, #comments .comment-list #resource-questions .resource-question:hover .comment-reply-link,
  #resource-questions .resource-question:hover .read-more span,
  #resource-questions .resource-question:hover #comments .comment-list .comment-reply-link span, #comments .comment-list
  #resource-questions .resource-question:hover .comment-reply-link span {
    color: #d97827; }

#resource-filters-mobile {
  padding-top: 1.2708em;
  padding-bottom: 1.2708em; }
  @media screen and (min-width: 64em) {
    #resource-filters-mobile {
      display: none; } }
  #resource-filters-mobile .filtering select {
    margin-bottom: 0.6354em;
    border: 2px solid #cacaca; }
  #resource-filters-mobile .filtering [data-toggle="type-filter"] {
    padding: 0.3177em 0.40em;
    margin-bottom: 0.6354em; }
  #resource-filters-mobile form input {
    margin: 0;
    border: 2px solid #cacaca; }
  #resource-filters-mobile form .button, #resource-filters-mobile form #header ul li:last-child a, #header ul li:last-child #resource-filters-mobile form a, #resource-filters-mobile form #mobile-nav ul li:last-child a, #mobile-nav ul li:last-child #resource-filters-mobile form a, #resource-filters-mobile form #mobile-nav-close, #resource-filters-mobile form #footer .footer-menu-wrap:last-child:last-child a, #footer .footer-menu-wrap:last-child:last-child #resource-filters-mobile form a, #resource-filters-mobile form #footer .gform_wrapper .gform_button, #footer .gform_wrapper #resource-filters-mobile form .gform_button, #resource-filters-mobile form
  #talking-videos .gform_wrapper .gform_button,
  #talking-videos .gform_wrapper #resource-filters-mobile form .gform_button, #resource-filters-mobile form #home-quote #home-video-close, #home-quote #resource-filters-mobile form #home-video-close {
    padding: 0.3177em 0.40em;
    margin: 0; }
  #resource-filters-mobile form .columns:last-child {
    padding-left: 0; }

#resource-filters-desktop {
  display: none;
  padding-bottom: 4rem;
  padding-top: 5.5rem; }
  @media screen and (min-width: 64em) {
    #resource-filters-desktop {
      display: block; } }
  #resource-filters-desktop h4 {
    font-weight: bold;
    font-family: "museo-sans", sans-serif;
    font-size: 1rem;
    margin-top: 4rem; }
  #resource-filters-desktop .menu a {
    padding-left: 0;
    padding-right: 0; }
  #resource-filters-desktop form input {
    margin: 0;
    border: 2px solid #cacaca; }
  #resource-filters-desktop form .button, #resource-filters-desktop form #header ul li:last-child a, #header ul li:last-child #resource-filters-desktop form a, #resource-filters-desktop form #mobile-nav ul li:last-child a, #mobile-nav ul li:last-child #resource-filters-desktop form a, #resource-filters-desktop form #mobile-nav-close, #resource-filters-desktop form #footer .footer-menu-wrap:last-child:last-child a, #footer .footer-menu-wrap:last-child:last-child #resource-filters-desktop form a, #resource-filters-desktop form #footer .gform_wrapper .gform_button, #footer .gform_wrapper #resource-filters-desktop form .gform_button, #resource-filters-desktop form
  #talking-videos .gform_wrapper .gform_button,
  #talking-videos .gform_wrapper #resource-filters-desktop form .gform_button, #resource-filters-desktop form #home-quote #home-video-close, #home-quote #resource-filters-desktop form #home-video-close {
    padding: 0.3177em 0.40em;
    margin: 0; }
  #resource-filters-desktop form .columns:last-child {
    padding-left: 0; }

#resource-list {
  padding-top: 4rem;
  padding-bottom: 4rem; }
  #resource-list .resource {
    margin-bottom: 4rem; }
    #resource-list .resource .resource-type {
      height: 1.5rem;
      overflow: hidden;
      color: #929292; }
    #resource-list .resource .resource-background {
      height: 10rem;
      display: block;
      margin-bottom: 1rem;
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center; }
    #resource-list .resource p {
      color: #333333;
      margin-bottom: 0.45rem;
      font-size: 0.8rem; }
    #resource-list .resource .read-more, #resource-list .resource #comments .comment-list .comment-reply-link, #comments .comment-list #resource-list .resource .comment-reply-link,
    #resource-list .resource .read-more span,
    #resource-list .resource #comments .comment-list .comment-reply-link span, #comments .comment-list
    #resource-list .resource .comment-reply-link span {
      transition: color 200ms ease-in-out; }
    #resource-list .resource:hover .read-more, #resource-list .resource:hover #comments .comment-list .comment-reply-link, #comments .comment-list #resource-list .resource:hover .comment-reply-link,
    #resource-list .resource:hover .read-more span,
    #resource-list .resource:hover #comments .comment-list .comment-reply-link span, #comments .comment-list
    #resource-list .resource:hover .comment-reply-link span {
      color: #d97827; }

.resource-signup {
  background: #a9b8b7;
  color: #fefefe;
  padding: 1rem 0; }
  .resource-signup h4 {
    margin-bottom: 0;
    margin: 0.5rem;
    font-style: italic;
    color: #fefefe;
    display: inline-block; }
  .resource-signup .gfield_label {
    display: none !important; }
  .resource-signup .gform_body {
    width: 100% !important; }
  .resource-signup form {
    position: relative; }
    .resource-signup form input[type="text"] {
      width: calc(100% - 120px) !important; }
    .resource-signup form .gform_footer {
      height: 0;
      margin: 0;
      padding: 0; }
      .resource-signup form .gform_footer input[type="submit"] {
        position: absolute;
        right: 0;
        top: 0;
        margin: 0;
        width: 100px;
        line-height: 1 !important;
        padding-top: 11px;
        padding-bottom: 12px; }
  .resource-signup .button, .resource-signup #header ul li:last-child a, #header ul li:last-child .resource-signup a, .resource-signup #mobile-nav ul li:last-child a, #mobile-nav ul li:last-child .resource-signup a, .resource-signup #mobile-nav-close, .resource-signup #footer .footer-menu-wrap:last-child:last-child a, #footer .footer-menu-wrap:last-child:last-child .resource-signup a, .resource-signup #footer .gform_wrapper .gform_button, #footer .gform_wrapper .resource-signup .gform_button, .resource-signup
  #talking-videos .gform_wrapper .gform_button,
  #talking-videos .gform_wrapper .resource-signup .gform_button, .resource-signup #home-quote #home-video-close, #home-quote .resource-signup #home-video-close {
    margin: 0.5rem;
    vertical-align: baseline; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2xheW91dC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC12aWRlby5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS1pY29uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3V0aWwvX2tleWZyYW1lLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3NsaWRlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdXRpbC9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19mYWRlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9faGluZ2Uuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9faGluZ2Uuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fem9vbS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zcGluLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdXRpbC9fYW5pbWF0aW9uLnNjc3MiLCJfdW5pdmVyc2FsLnNjc3MiLCJfYW5pbWF0aW9ucy5zY3NzIiwiX2dyYWRpZW50cy5zY3NzIiwiX3NsaWNrLnNjc3MiLCJfaGVhZGVyLnNjc3MiLCJfZXZlbnQuc2NzcyIsIl9jaXR5LnNjc3MiLCJfZm9vdGVyLnNjc3MiLCJfdHdpdHRlci5zY3NzIiwiX21lZGlhLnNjc3MiLCJfaGVyby5zY3NzIiwiX2Jsb2cuc2NzcyIsIl9hYm91dC5zY3NzIiwiX2hvbWUuc2NzcyIsIl9nZXRpbnZvbHZlZC5zY3NzIiwiX3Byb2xpZmVwYXN0b3Iuc2NzcyIsIl9hcHByb2FjaC5zY3NzIiwiX2NodXJjaG91dHJlYWNoLnNjc3MiLCJfZG9uYXRlLnNjc3MiLCJfYmlvLnNjc3MiLCJfc2luZ2xlcy5zY3NzIiwiX3Jlc291cmNlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0FqQjs7Ozs7R0FLRztBQzhNRCw0RUFBNEU7QUFFNUU7Ozs7S0FJRztBQUVIO0VBQ0Usd0JBQXdCO0VBQUUsT0FBTztFQUNqQywyQkFBMkI7RUFBRSxPQUFPO0VBQ3BDLCtCQUErQjtFQUFFLE9BQU8sRUFDekM7O0FBRUQ7O0tBRUc7QUFFSDtFQUNFLFVBQVUsRUFDWDs7QUFFRDtrRkFDZ0Y7QUFFaEY7Ozs7O0tBS0c7QUFFSDs7Ozs7Ozs7Ozs7OztFQWFFLGVBQWUsRUFDaEI7O0FBRUQ7OztLQUdHO0FBRUg7Ozs7RUFJRSxzQkFBc0I7RUFBRSxPQUFPO0VBQy9CLHlCQUF5QjtFQUFFLE9BQU8sRUFDbkM7O0FBRUQ7OztLQUdHO0FBRUg7RUFDRSxjQUFjO0VBQ2QsVUFBVSxFQUNYOztBQUVEOzs7S0FHRztBRmxOTDs7RUVzTkksY0FBYyxFQUNmOztBQUVEO2tGQUNnRjtBQUVoRjs7S0FFRztBQUVIO0VBQ0UsOEJBQThCLEVBQy9COztBQUVEOzs7S0FHRztBQUVIOztFQUVFLFdBQVcsRUFDWjs7QUFFRDtrRkFDZ0Y7QUFFaEY7O0tBRUc7QUFFSDtFQUNFLDBCQUEwQixFQUMzQjs7QUFFRDs7S0FFRztBQUVIOztFQUVFLGtCQUFrQixFQUNuQjs7QUFFRDs7S0FFRztBQUVIO0VBQ0UsbUJBQW1CLEVBQ3BCOztBQUVEOzs7S0FHRztBQUVIO0VBQ0UsZUFBZTtFQUNmLGlCQUFpQixFQUNsQjs7QUFFRDs7S0FFRztBQUVIO0VBQ0UsaUJBQWlCO0VBQ2pCLFlBQVksRUFDYjs7QUFFRDs7S0FFRztBQUVIO0VBQ0UsZUFBZSxFQUNoQjs7QUFFRDs7S0FFRztBQUVIOztFQUVFLGVBQWU7RUFDZixlQUFlO0VBQ2YsbUJBQW1CO0VBQ25CLHlCQUF5QixFQUMxQjs7QUFFRDtFQUNFLFlBQVksRUFDYjs7QUFF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O0lHVkQ7TUhJRjtRRTNESSx5QkFIZTtRQUlmLDBCQUplLEVGb0VoQixFQUFBO0VBTkg7SUFVSSxnQkFBZ0IsRUFDakI7RUFYSDtJSTFJQSxnQkFBZ0I7SUFDaEIsaUJBQWlCLEVKdUo2Qjs7QUFLOUM7RUF4RkEsa0JBckJjO01BcUJkLGNBckJjO0VBNkJSLHlCQUhnQjtFQUloQiwwQkFKZ0IsRUFxRnJCO0VHekJDO0lIdUJGO01BaEZNLHlCQUhnQjtNQUloQiwwQkFKZ0IsRUFxRnJCLEVBQUE7O0FBSUQ7RUFDRSxZQUFZLEVBU2I7RUFWVTtJQUtQLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGdCQUFnQixFQUNqQjs7QUFNQztFQUNFLHVCS2hLZ0I7TUxnS2hCLG1CS2hLZ0I7RUxpS2hCLG9CS2pLZ0IsRUxrS2pCOztBQUtEO0VNN0pKLGdCRGJzQixFTDRLakI7O0FBVkQ7RUFDRSx3QktoS2dCO01MZ0toQixvQktoS2dCO0VMaUtoQixxQktqS2dCLEVMa0tqQjs7QUFLRDtFTTdKSixzQkRWc0IsRUx5S2pCOztBQVZEO0VBQ0Usa0JLaEtnQjtNTGdLaEIsY0toS2dCO0VMaUtoQixlS2pLZ0IsRUxrS2pCOztBQUtEO0VNN0pKLHVCRFZzQixFTHlLakI7O0FBVkQ7RUFDRSx3QktoS2dCO01MZ0toQixvQktoS2dCO0VMaUtoQixxQktqS2dCLEVMa0tqQjs7QUFLRDtFTTdKSixpQkRWc0IsRUx5S2pCOztBQVZEO0VBQ0Usd0JLaEtnQjtNTGdLaEIsb0JLaEtnQjtFTGlLaEIscUJLaktnQixFTGtLakI7O0FBS0Q7RU03SkosdUJEVnNCLEVMeUtqQjs7QUFWRDtFQUNFLGtCS2hLZ0I7TUxnS2hCLGNLaEtnQjtFTGlLaEIsZUtqS2dCLEVMa0tqQjs7QUFLRDtFTTdKSix1QkRWc0IsRUx5S2pCOztBQVZEO0VBQ0Usd0JLaEtnQjtNTGdLaEIsb0JLaEtnQjtFTGlLaEIscUJLaktnQixFTGtLakI7O0FBS0Q7RU03SkosaUJEVnNCLEVMeUtqQjs7QUFWRDtFQUNFLHdCS2hLZ0I7TUxnS2hCLG9C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YjtFQVZDO0lBYUEsWUFBWSxFQUNiOztBQWRDO0VBQ0YsYUFBaUI7RUFDakIsWVZtRnVELEVVdEV4RDtFQWZHO0lBS0EsWUFBWSxFQUNiO0VBTkM7SUFTQSxZQUFZLEVBQ2I7RUFWQztJQWFBLFlBQVksRUFDYjs7QVJvTkQ7RUl4T0YsZ0JBQWdCO0VBQ2hCLGlCQUFpQixFSndPNkI7O0FBRzVDO0VJbk9GLHlCQURpQjtFQUVqQiwwQkFGaUIsRUp1T3dDOztBR3pHdkQ7RUg0Q0U7SUFDRSx1QktoS2dCO1FMZ0toQixtQktoS2dCO0lMaUtoQixvQktqS2dCLEVMa0tqQjtFQUtEO0lNN0pKLGdCRGJzQixFTDRLakI7RUFWRDtJQUNFLHdCS2hLZ0I7UUxnS2hCLG9CS2hLZ0I7SUxpS2hCLHFCS2pLZ0IsRUxrS2pCO0VBS0Q7SU03Skosc0JEVnNCLEVMeUtqQjtFQVZEO0lBQ0Usa0JLaEtnQjtRTGdLaEIsY0toS2dCO0lMaUtoQixlS2pLZ0IsRUxrS2pCO0VBS0Q7SU03SkosdUJEVnNCLEVMeUtqQjtFQVZEO0lBQ0Usd0JLaEtnQjtRTGdLaEIsb0JLaEtnQjtJTGlLaEIscUJLaktnQixFTGtLakI7RUFLRDtJTTdKSixpQkRWc0IsRUx5S2pCO0VBVkQ7SUFDRSx3QktoS2dCO1FMZ0toQixvQktoS2dCO0lMaUtoQixxQktqS2dCLEVMa0tqQjtFQUtEO0lNN0pKLHVCRFZzQixFTHlLakI7RUFWRDtJQUNFLGtCS2hLZ0I7UUxnS2hCLGNLaEtnQjtJTGlLaEIsZUtqS2dCLEVMa0tqQjtFQUtEO0lNN0pKLHVCRFZzQixFTHlLakI7RUFWRDtJQUNFLHdCS2hLZ0I7UUxnS2hCLG9CS2hLZ0I7SUxpS2hCLHFCS2pLZ0IsRUxrS2pCO0VBS0Q7SU03SkosaUJEVnNCLEVMeUtqQjtFQVZEO0lBQ0Usd0JLaEtnQjtRTGdLaEIsb0JLaEtnQjtJTGlLaEIscUJLaktnQixFTGtLakI7RUFLRDtJTTdKSix1QkRWc0IsRUx5S2pCO0VBVkQ7SUFDRSxrQktoS2dCO1FMZ0toQixjS2hLZ0I7SUxpS2hCLGVLaktnQixFTGtLakI7RUFL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QUNFLGtCQXJLTTtRQXFLTixjQXJLTSxFQXNLUCxFQUFBOztBQUtEO0VBRUksbUJBQTJCO01BQTNCLGVBQTJCLEVBSzVCO0VHNUZQO0lIcUZJO01BS00sa0JBaExFO1VBZ0xGLGNBaExFLEVBa0xMLEVBQUE7O0FHNUZQO0VIa0dBO0lJeE9GLGdCQUFnQjtJQUNoQixpQkFBaUIsRUp3TzZCO0VBRzVDO0lJbk9GLHlCQURpQjtJQUVqQiwwQkFGaUIsRUp1T3dDLEVBQUE7O0FHekd2RDtFSDRDRTtJQUNFLHVCS2hLZ0I7UUxnS2hCLG1CS2hLZ0I7SUxpS2hCLG9CS2pLZ0IsRUxrS2pCO0VBS0Q7SU03SkosZ0JEYnNCLEVMNEtqQjtFQVZEO0lBQ0Usd0JLaEtnQjtRTGdLaEIsb0JLaEtnQjtJTGlLaEIscUJLaktnQixFTGtLakI7RUFLRDtJTTdKSixzQkRWc0IsRUx5S2pCO0VBVkQ7SUFDRSxrQktoS2dCO1FMZ0toQixjS2hLZ0I7SUxpS2hCLGVLaktnQixFTGtLakI7RUFLRDtJTTdKSix1QkRWc0IsRUx5S2pCO0VBVkQ7SUFDRSx3QktoS2dCO1FMZ0toQixvQktoS2dCO0lMaUtoQixxQktqS2dCLEVMa0tqQjtFQUtEO0lNN0pKLGlCRFZzQixFTHlLakI7RUFWRDtJQUNFLHdCS2hLZ0I7UUxnS2hCLG9CS2hLZ0I7SUxpS2hCLHFCS2pLZ0IsRUxrS2pCO0VBS0Q7SU03SkosdUJEVnNCLEVMeUtqQjtFQVZEO0lBQ0Usa0JLaEtnQjtRTGdLaEIsY0toS2dCO0lMaUtoQixlS2pLZ0IsRUxrS2pCO0VBS0Q7SU03SkosdUJEVnNCLEVMeUtqQjtFQVZEO0lBQ0Usd0JLaEtnQjtRTGdLaEIsb0JLaEtnQjtJTGlLaEIscUJLaktnQixFTGtLakI7RUFLRDtJTTdKSixpQkRWc0IsRUx5S2pCO0VBVkQ7SUFDRSx3QktoS2dCO1FMZ0toQixvQktoS2dCO0lMaUtoQixxQktqS2dCLEVMa0tqQjtFQUtEO0lNN0pKLHVCRFZzQixFTHlLakI7RUFWRDtJQUNFLGtCS2hLZ0I7UUxnS2hCLGNLaEtnQjtJTGlLaEIsZUtqS2dCLEVM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Q2xCLHFCQWhDa0IsRUVBZjs7QUFFRDtFRjhDRiw2QkFoRGtCO01BZ0RsQiw0QkFoRGtCO01BZ0RsQixvQkFoRGtCLEVFSWY7O0FBTUM7RUY0Q0osa0JFN0NnQjtNRjZDaEIsU0U3Q2dCLEVBR1g7O0FBRkQ7RUY0Q0osa0JFN0NnQjtNRjZDaEIsU0U3Q2dCLEVBR1g7O0FBRkQ7RUY0Q0osa0JFN0NnQjtNRjZDaEIsU0U3Q2dCLEVBR1g7O0FBRkQ7RUY0Q0osa0JFN0NnQjtNRjZDaEIsU0U3Q2dCLEVBR1g7O0FBRkQ7RUY0Q0osa0JFN0NnQjtNRjZDaEIsU0U3Q2dCLEVBR1g7O0FBRkQ7RUY0Q0osa0JFN0NnQjtNRjZDaEIsU0U3Q2dCLEVBR1g7O0FOd0hIO0VNMUhFO0lGNENKLGtCRTdDZ0I7UUY2Q2hCLFNFN0NnQixFQUdYO0VBRkQ7SUY0Q0osa0JFN0NnQjtRRjZDaEIsU0U3Q2dCLEVBR1g7RUFGRDtJRjRDSixrQkU3Q2dCO1FGNkNoQixTRTdDZ0IsRUFHWDtFQUZEO0lGNENKLGtCRTdDZ0I7UUY2Q2hCLFNFN0NnQixFQUdYO0VBRkQ7SUY0Q0osa0JFN0NnQjtRRjZDaEIsU0U3Q2dCLEVBR1g7RUFGRDtJRjRDSixrQkU3Q2dCO1FGNkNoQixTRTdDZ0IsRUFHWCxFQUFBOztBTndISDtFTTFIRTtJRjRDSixrQkU3Q2dCO1FGNkNoQixTRTdDZ0IsRUFHWDtFQUZEO0lGNENKLGtCRTdDZ0I7UUY2Q2hCLFNFN0NnQixFQUdYO0VBRkQ7SUY0Q0osa0JFN0NnQjtRRjZDaEIsU0U3Q2dCLEVBR1g7RUFGRDtJRjRDSixrQkU3Q2dCO1FGNkNoQixTRTdDZ0IsRUFHWDtFQUZEO0lGNENKLGtCRTdDZ0I7UUY2Q2hCLFNFN0NnQixFQUdYO0VBRkQ7SUY0Q0osa0JFN0NnQjtRRjZDaEIsU0U3Q2dCLEVBR1gsRUFBQTs7QUMrTUw7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQkUsVUFBVTtFQUNWLFdBQVcsRUFDWjs7QUFHRDtFQUNFLG1CQUFtQjtFQUNuQixpQlgxR3NCO0VXMkd0QixvQlgxRzBCO0VXMkcxQixtQ1gxR3lDLEVXMkcxQzs7QUFHRDs7RUFFRSxtQkFBbUI7RUFDbkIscUJBQXFCLEVBQ3RCOztBQUdEOztFQUVFLGlCWC9Mb0I7RVdnTXBCLHFCQUFxQixFQUN0Qjs7QUFHRDtFQUNFLGVYaklpQjtFV2tJakIscUJBQXFCLEVBQ3RCOztBQUdEOzs7Ozs7RUFNRSxpQ1h0S21DO0VXdUtuQyxpQlhqTm9CO0VXa05wQixtQlh0S3NCO0VXdUt0QixlWDdOVztFVzhOWCxtQ1hqSnNDO0VXa0p0QyxjQUFjO0VBQ2Qsc0JYcEp5QjtFV3FKekIsaUJYdEptQixFVzRKcEI7RUFuQkQ7Ozs7OztJQWdCSSxlWHRPZTtJV3VPZixlQUFlLEVBQ2hCOztBQU9HO0VBQ0Usc0JUck9ZLEVTc09iOztBQUZEO0VBQ0Usc0JUck9ZLEVTc09iOztBQUZEO0VBQ0Usc0JUck9ZLEVTc09iOztBQUZEO0VBQ0Usc0JUck9ZLEVTc09iOztBQUZEO0VBQ0Usc0JUck9ZLEVTc09iOztBQUZEO0VBQ0Usc0JUck9ZLEVTc09iOztBUHRLTDtFT29LSTtJQUNFLHFCVHJPWSxFU3NPYjtFQUZEO0lBQ0UscUJUck9ZLEVTc09iO0VBRkQ7SUFDRSxzQlRyT1ksRVNzT2I7RUFGRDtJQUNFLHFCVHJPWSxFU3NPYjtFQUZEO0lBQ0Usc0JUck9ZLEVTc09iO0VBRkQ7SUFDRSxzQlRyT1ksRVNzT2IsRUFBQTs7QUFNUDtFQUNFLGVYelFxQjtFVzBRckIsc0JYNUp5QjtFVzZKekIscUJBQXFCO0VBQ3JCLGdCQUFnQixFQWFqQjtFQWpCRDtJQVFJLGVYbkswQixFV3VLM0I7RUFaSDtJQWVJLFVBQVUsRUFDWDs7QUFJSDtFQUNFLHVCVGpRa0I7RVNrUWxCLFVBQVU7RUFDVixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGlDWGhSaUI7RVdpUmpCLGVBQWU7RUFDZix3QlhqTHlCO0VXa0x6QixZQUFZLEVBQ2I7O0FBR0Q7OztFQUdFLGlCWHhNc0I7RVd5TXRCLG9CWHhNMEI7RVd5TTFCLDZCWHZMeUIsRVd3TDFCOztBQUdEO0VBQ0UsbUJBQW1CLEVBQ3BCOztBQUdEO0VBQ0Usc0JYbE1rQjtFV21NbEIscUJYak1zQixFV2tNdkI7O0FBR0Q7RUFDRSxxQlh0TXNCLEVXdU12Qjs7QUFHRDtFQUVJLHFCWDNNMkI7RVc0TTNCLGlCQUFpQixFQUNsQjs7QUFJSDtFQUNFLG9CWGpOeUIsRVd1TjFCO0VBUEQ7SUFJSSxzQlhsTjhCO0lXbU45QixpQlhqVGtCLEVXa1RuQjs7QUFJSDtFQUNFLGlCWGhQMEI7RVdpUDFCLDRDVHpUa0I7RVMwVGxCLCtCWHJVaUIsRVcyVWxCO0VBVEQ7SUFNSSxpQlh0UG9CO0lXdVBwQixlWHhVYSxFV3lVZDs7QUFJSDtFQUNFLGVBQWU7RUFDZixzQlRyVWtCO0VTc1VsQixlWGhWZSxFV3FWaEI7RUFSRDtJQU1JLHVCQUF1QixFQUN4Qjs7QUFJSDtFQUNFLGVYeFZXO0VXeVZYLGFBQWE7RUFDYixrQ1gxVlcsRVcyVlo7O0FBR0Q7RUFDRSw2RFh4U21FO0VXeVNuRSxpQlh2VnNCO0VXd1Z0QixlWGpXVztFV2tXWCwwQlh0V2dCO0VXdVdoQiwwQlhyV2lCO0VXc1dqQix5Q1QzVmtCLEVTNFZuQjs7QUFHRDtFQUNFLGdDVDNWUztFUzRWVCxVQUFVO0VBQ1YsMEJYL1dnQjtFV2dYaEIsZVg1V1c7RVc2V1gsNkRYdFRtRTtFV3lUakUsc0JYcldnQixFV3VXbkI7O0FDMVlEO0VBQ0UsbUJab0p5QjtFWW5KekIsc0Jab0o0QjtFWW5KNUIsaUJaOEJzQjtFWTdCdEIsaUJaOElzQjtFWTdJdEIsZVprQmUsRVlqQmhCOztBQUdEO0VBQ0UsbUJac0k4QjtFWXJJOUIsaUJac0lpQixFWXJJbEI7O0FBR0Q7RUFDRSxrQlp1SW1CO0VZdEluQixlQUFlLEVBS2hCO0VBUEQ7SUFLSSxrQkFBa0IsRUFDbkI7O0FBSUg7RUFDRSxlQUFpQztFQUNqQyxpQkFBaUIsRUFDbEI7O0FDN0RPO0VBQ0UsaUJBUmUsRUFTaEI7O0FBRkQ7RUFDRSxrQkFSc0IsRUFTdkI7O0FBRkQ7RUFDRSxtQkFSOEIsRUFTL0I7O0FBRkQ7RUFDRSxvQkFSdUMsRUFTeEM7O0FUZ0lQO0VTdklNO0lBQ0UsaUJB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NEJBRmlCLEVFaEJoQjs7QUpuQkg7RUFiQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLDZCQUZpQjtNQUVqQix5QkFGaUI7RUN2QmYsd0NBQXdDO0VBRzFDLG9DQUE0QjtVQUE1Qiw0QkFBNEIsRUNSM0I7O0FKUEg7RUVxQ0UsZ0NBRmlCO01BRWpCLDRCQUZpQixFRWhCaEI7O0FKbEJIO0VBZEEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw2QkFGaUI7TUFFakIseUJBRmlCO0VDdkJmLHdDQUF3QztFQUcxQyxvQ0FBNEI7VUFBNUIsNEJBQTRCLEVDUjNCOztBSk5IO0VFb0NFLGlDQUZpQjtNQUVqQiw2QkFGaUIsRUVoQmhCOztBSmpCSDtFQWZBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsNkJBRmlCO01BRWpCLHlCQUZpQjtFQ3ZCZix3Q0FBd0M7RUFHMUMsb0NBQTRCO1VBQTVCLDRCQUE0QixFQ1IzQjs7QUpMSDtFRW1DRSxpQ0FGaUI7TUFFakIsNkJBRmlCLEVFaEJoQjs7QUpkSDtFQWxCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLFdGaENrQztFS0FsQyw2QkFBNkIsRURFNUI7O0FKRkg7RUVnQ0UsV0ZoQ3FDLEVJY3BDOztBSmJIO0VBbkJBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsV0YvQmtDO0VLRGxDLDZCQUE2QixFREU1Qjs7QUpESDtFRStCRSxXRi9CcUMsRUlhcEM7O0FKVkg7RUF0QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiwrQ0lyQ1k7RUpxQ1osMEJBRmlCO01BRWpCLHNCQUZpQjtFS3ZCZix3Q0FBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKRUg7RUU0QkUsNENJVnNDO0VDSnBDLFdBQTJCLEVISjVCOztBSlRIO0VBdkJBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsK0NJcENjO0VKb0NkLDRCQUZpQjtNQUVqQix3QkFGaUI7RUt2QmYsd0NBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBSkdIO0VFMkJFLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpSSDtFQXhCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLDhDSW5DZTtFSm1DZiw2QkFGaUI7TUFFakIseUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QUpJSDtFRTBCRSw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKUEg7RUF6QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw4Q0lsQ2E7RUprQ2IsMkJBRmlCO01BRWpCLHVCQUZpQjtFS3ZCZix3Q0FBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKS0g7RUV5QkUsNENJVnNDO0VDSnBDLFdBQTJCLEVISjVCOztBSk5IO0VBMUJBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsK0NJckNZO0VKcUNaLDZCQUZpQjtNQUVqQix5QkFGaUI7RUt2QmYsd0NBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBSk1IO0VFd0JFLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpMSDtFQTNCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLCtDSXBDYztFSm9DZCw2QkFGaUI7TUFFakIseUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QUpPSDtFRXVCRSw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKSkg7RUE1QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw0Q0lSd0M7RUpReEMsMEJBRmlCO01BRWpCLHNCQUZpQjtFS3ZCZix3Q0FBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKUUg7RUVzQkUsK0NJckNZO0VDdUJWLFdBQThCLEVISi9COztBSkhIO0VBN0JBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsNENJUndDO0VKUXhDLDRCQUZpQjtNQUVqQix3QkFGaUI7RUt2QmYsd0NBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBSlNIO0VFcUJFLCtDSXBDYztFQ3NCWixXQUE4QixFSEovQjs7QUpGSDtFQTlCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLDRDSVJ3QztFSlF4Qyw2QkFGaUI7TUFFakIseUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QUpVSDtFRW9CRSw4Q0luQ2U7RUNxQmIsV0FBOEIsRUhKL0I7O0FKREg7RUEvQkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw0Q0lSd0M7RUpReEMsMkJBRmlCO01BRWpCLHVCQUZpQjtFS3ZCZix3Q0FBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKV0g7RUVtQkUsOENJbENhO0VDb0JYLFdBQThCLEVISi9COztBSkFIO0VBaENBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsNENJUndDO0VKUXhDLDZCQUZpQjtNQUVqQix5QkFGaUI7RUt2QmYsd0NBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBSllIO0VFa0JFLCtDSXJDWTtFQ3VCVixXQUE4QixFSEovQjs7QUpDSDtFQWpDQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLDRDSVJ3QztFSlF4Qyw2QkFGaUI7TUFFakIseUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QUphSDtFRWlCRSwrQ0lwQ2M7RUNzQlosV0FBOEIsRUhKL0I7O0FKSUg7RUFwQ0EsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiwwQkFGaUI7TUFFakIsc0JBRmlCO0VNM0JmLHdDQUF3QztFQUN4QyxXQUEyQixFSkY1Qjs7QUpnQkg7RUVjRSx3QkFGaUI7TUFFakIsb0JBRmlCO0VNaEJmLFdBQTJCLEVKQTVCOztBSktIO0VBckNBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsMEJBRmlCO01BRWpCLHNCQUZpQjtFTTNCZix3Q0FBd0M7RUFDeEMsV0FBMkIsRUpGNUI7O0FKaUJIO0VFYUUsd0JBRmlCO01BRWpCLG9CQUZpQjtFTWhCZixXQUEyQixFSkE1Qjs7QUpNSDtFQXRDQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHdCQUZpQjtNQUVqQixvQkFGaUI7RU0zQmYsd0NBQXdDO0VBQ3hDLFdBQThCLEVKRi9COztBSmtCSDtFRVlFLDBCQUZpQjtNQUVqQixzQkFGaUI7RU1oQmYsV0FBOEIsRUpB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RE87SXFFNERQLHNCQUFzQixFQUN6QjtFQVZMO0lBWVEseUJBQXlCLEVBQzVCO0VBYkw7SUFlUSx1QkFBdUIsRUFDMUI7RUFoQkw7SUFrQlEsbUJBQW1CLEVBbUJ0QjtJQXJDTDtNQW9CWSxxQ0FBb0MsRUFDdkM7SUFyQlQ7TUF1QlksVUFBVTtNQUNWLFVBQVU7TUFDVixXQUFXLEVBV2Q7TUFwQ1Q7UUEyQmdCLG1CQUFtQjtRQUNuQixTQUFTO1FBQ1QsT0FBTztRQUNQLFVBQVU7UUFDVixhQUFhO1FBQ2IsMEJBQTBCO1FBQzFCLGtCQUFrQjtRQUNsQixxQkFBcUIsRUFDeEI7RUFuQ2I7OztJQXVDUSxlQUFlO0lBQ2YseUJBQXlCLEVBQzVCIiwiZmlsZSI6ImFwcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi4yLjBcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKipcbiAgICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAgICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAgICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICAgKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICAgKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gICAqIGFuZCBGaXJlZm94LlxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICAgKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICAgKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICAgKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICAgKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICAgKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gICAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3NcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gICAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAgICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICAgKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gICAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICAgKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAgICovXG5pbWcge1xuICBib3JkZXI6IDA7IH1cblxuLyoqXG4gICAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICAgKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gICAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICAgKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAgICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gICAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuLyogRm9ybXNcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICAgKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gICAqL1xuLyoqXG4gICAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAgICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gICAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gICAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovIH1cblxuLyoqXG4gICAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICAgKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gICAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gICAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gICAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAgICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAgICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAgICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gICAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAgICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAgICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICAgKi9cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAgICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAgICovXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLyoqXG4gICAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAgICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICAgKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAgICovXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLyoqXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAgICpcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAgICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAgICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICAgKi9cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICAgKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gICAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAgICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICAgKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICAgKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gICAqIFtOT1RFXSBXZSBkb24ndCBlbmFibGUgdGhpcyBydWxlc2V0IGluIEZvdW5kYXRpb24sIGJlY2F1c2Ugd2Ugd2FudCB0aGUgPGZpZWxkc2V0PiBlbGVtZW50IHRvIGhhdmUgcGxhaW4gc3R5bGluZy5cbiAgICovXG4vKiBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgfSAqL1xuLyoqXG4gICAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAgICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICAgKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAgICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICAgKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAgICovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qIFRhYmxlc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAgICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwOyB9XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00MGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7IH1cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTE1JTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogXCJtdXNlby1zYW5zXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07IH1cblxuc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTsgfVxuXG4jbWFwX2NhbnZhcyBpbWcsXG4jbWFwX2NhbnZhcyBlbWJlZCxcbiNtYXBfY2FudmFzIG9iamVjdCxcbi5tYXBfY2FudmFzIGltZyxcbi5tYXBfY2FudmFzIGVtYmVkLFxuLm1hcF9jYW52YXMgb2JqZWN0LFxuLm1xYS1kaXNwbGF5IGltZyxcbi5tcWEtZGlzcGxheSBlbWJlZCxcbi5tcWEtZGlzcGxheSBvYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA2NS4yMTczOXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAucm93IC5yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC41NDM0OHJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjU0MzQ4cmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjgxNTIycmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjgxNTIycmVtOyB9IH1cbiAgLnJvdy5leHBhbmRlZCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgZmxleDogMSAxIDBweDtcbiAgcGFkZGluZy1sZWZ0OiAwLjU0MzQ4cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjU0MzQ4cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29sdW1uLCAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuODE1MjJyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjgxNTIycmVtOyB9IH1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7IH1cbiAgLnJvdyAuY29sdW1uLnJvdy5yb3csIC5yb3cgLnJvdy5yb3cuY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5zbWFsbC0xIHtcbiAgZmxleDogMCAwIDguMzMzMzMlO1xuICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTsgfVxuXG4uc21hbGwtMiB7XG4gIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtMyB7XG4gIGZsZXg6IDAgMCAyNSU7XG4gIG1heC13aWR0aDogMjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLTQge1xuICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi5zbWFsbC01IHtcbiAgZmxleDogMCAwIDQxLjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtNiB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIG1heC13aWR0aDogNTAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLTcge1xuICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi5zbWFsbC04IHtcbiAgZmxleDogMCAwIDY2LjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtOSB7XG4gIGZsZXg6IDAgMCA3NSU7XG4gIG1heC13aWR0aDogNzUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLTEwIHtcbiAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4uc21hbGwtMTEge1xuICBmbGV4OiAwIDAgOTEuNjY2NjclO1xuICBtYXgtd2lkdGg6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtMTIge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1vcmRlci0xIHtcbiAgb3JkZXI6IDE7IH1cblxuLnNtYWxsLXVwLTEge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLW9yZGVyLTIge1xuICBvcmRlcjogMjsgfVxuXG4uc21hbGwtdXAtMiB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW4sIC5zbWFsbC11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLW9yZGVyLTMge1xuICBvcmRlcjogMzsgfVxuXG4uc21hbGwtdXAtMyB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW4sIC5zbWFsbC11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLW9yZGVyLTQge1xuICBvcmRlcjogNDsgfVxuXG4uc21hbGwtdXAtNCB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW4sIC5zbWFsbC11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLW9yZGVyLTUge1xuICBvcmRlcjogNTsgfVxuXG4uc21hbGwtdXAtNSB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW4sIC5zbWFsbC11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgbWF4LXdpZHRoOiAyMCU7IH1cblxuLnNtYWxsLW9yZGVyLTYge1xuICBvcmRlcjogNjsgfVxuXG4uc21hbGwtdXAtNiB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW4sIC5zbWFsbC11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXVwLTEgPiAuY29sdW1uLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC0yID4gLmNvbHVtbiwgLnNtYWxsLXVwLTIgPiAuY29sdW1ucyB7XG4gIHdpZHRoOiA1MCU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC0zID4gLmNvbHVtbiwgLnNtYWxsLXVwLTMgPiAuY29sdW1ucyB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC00ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTQgPiAuY29sdW1ucyB7XG4gIHdpZHRoOiAyNSU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC01ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTUgPiAuY29sdW1ucyB7XG4gIHdpZHRoOiAyMCU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC02ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTYgPiAuY29sdW1ucyB7XG4gIHdpZHRoOiAxNi42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC03ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTcgPiAuY29sdW1ucyB7XG4gIHdpZHRoOiAxNC4yODU3MSU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC04ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTggPiAuY29sdW1ucyB7XG4gIHdpZHRoOiAxMi41JTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjU0MzQ4cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjU0MzQ4cmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLm1lZGl1bS0yIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubWVkaXVtLTUge1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubWVkaXVtLTgge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS0xMSB7XG4gICAgZmxleDogMCAwIDkxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubWVkaXVtLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLm1lZGl1bS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uLCAubWVkaXVtLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubWVkaXVtLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5tZWRpdW0tdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLm1lZGl1bS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uLCAubWVkaXVtLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLm1lZGl1bS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfVxuICAubWVkaXVtLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLXVwLTEgPiAuY29sdW1uLCAubWVkaXVtLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAyNSU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAxNC4yODU3MSU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAxMi41JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuLnJvdy5tZWRpdW0tdW5zdGFjayAuY29sdW1uLCAucm93Lm1lZGl1bS11bnN0YWNrIC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yb3cubWVkaXVtLXVuc3RhY2sgLmNvbHVtbiwgLnJvdy5tZWRpdW0tdW5zdGFjayAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjgxNTIycmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuODE1MjJyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubGFyZ2UtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5sYXJnZS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5sYXJnZS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubGFyZ2UtdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5sYXJnZS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjsgfVxuICAubGFyZ2UtdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubGFyZ2Utb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLmxhcmdlLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbiwgLmxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5sYXJnZS11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC5sYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5sYXJnZS1vcmRlci01IHtcbiAgICBvcmRlcjogNTsgfVxuICAubGFyZ2UtdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgICBtYXgtd2lkdGg6IDIwJTsgfVxuICAubGFyZ2Utb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH1cbiAgLmxhcmdlLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXVwLTEgPiAuY29sdW1uLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC5sYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTMgPiAuY29sdW1uLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC00ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNSA+IC5jb2x1bW4sIC5sYXJnZS11cC01ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTYgPiAuY29sdW1uLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMTYuNjY2NjclO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC03ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDE0LjI4NTcxJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC03ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtOCA+IC5jb2x1bW4sIC5sYXJnZS11cC04ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAxMi41JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1leHBhbmQge1xuICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG4ucm93LmxhcmdlLXVuc3RhY2sgLmNvbHVtbiwgLnJvdy5sYXJnZS11bnN0YWNrIC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5yb3cubGFyZ2UtdW5zdGFjayAuY29sdW1uLCAucm93LmxhcmdlLXVuc3RhY2sgLmNvbHVtbnMge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjgxNTIycmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuODE1MjJyZW07IH0gfVxuXG4uc2hyaW5rIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4uY29sdW1uLmFsaWduLXRvcCwgLmFsaWduLXRvcC5jb2x1bW5zIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuXG4uY29sdW1uLmFsaWduLWJvdHRvbSwgLmFsaWduLWJvdHRvbS5jb2x1bW5zIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7IH1cblxuLmNvbHVtbi5hbGlnbi1taWRkbGUsIC5hbGlnbi1taWRkbGUuY29sdW1ucyB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjsgfVxuXG4uY29sdW1uLmFsaWduLXN0cmV0Y2gsIC5hbGlnbi1zdHJldGNoLmNvbHVtbnMge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG5cbi5hbGlnbi1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFsaWduLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5hbGlnbi1qdXN0aWZ5IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi5hbGlnbi1zcGFjZWQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG4uYWxpZ24tdG9wIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLXNlbGYtdG9wIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tYm90dG9tIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1zZWxmLWJvdHRvbSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1taWRkbGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5hbGlnbi1zZWxmLW1pZGRsZSB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjsgfVxuXG4uYWxpZ24tc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG5cbi5hbGlnbi1zZWxmLXN0cmV0Y2gge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG5cbi5zbWFsbCB7XG4gIG9yZGVyOiAxOyB9XG5cbi5zbWFsbCB7XG4gIG9yZGVyOiAyOyB9XG5cbi5zbWFsbCB7XG4gIG9yZGVyOiAzOyB9XG5cbi5zbWFsbCB7XG4gIG9yZGVyOiA0OyB9XG5cbi5zbWFsbCB7XG4gIG9yZGVyOiA1OyB9XG5cbi5zbWFsbCB7XG4gIG9yZGVyOiA2OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLm1lZGl1bSB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLm1lZGl1bSB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLm1lZGl1bSB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLm1lZGl1bSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLm1lZGl1bSB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmxhcmdlIHtcbiAgICBvcmRlcjogMjsgfVxuICAubGFyZ2Uge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5sYXJnZSB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLmxhcmdlIHtcbiAgICBvcmRlcjogNTsgfVxuICAubGFyZ2Uge1xuICAgIG9yZGVyOiA2OyB9IH1cblxuZGl2LFxuZGwsXG5kdCxcbmRkLFxudWwsXG5vbCxcbmxpLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucHJlLFxuZm9ybSxcbnAsXG5ibG9ja3F1b3RlLFxudGgsXG50ZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5wIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIm1pbmlvbi1wcm9cIiwgc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuICBoMSBzbWFsbCxcbiAgaDIgc21hbGwsXG4gIGgzIHNtYWxsLFxuICBoNCBzbWFsbCxcbiAgaDUgc21hbGwsXG4gIGg2IHNtYWxsIHtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBsaW5lLWhlaWdodDogMDsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMS42MzA0M3JlbTsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMS41MjE3NHJlbTsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS40MTMwNHJlbTsgfVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMS4wODY5NnJlbTsgfVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMC45NzgyNnJlbTsgfVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMC44Njk1N3JlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDIuNjA4N3JlbTsgfVxuICBoMiB7XG4gICAgZm9udC1zaXplOiAyLjM5MTNyZW07IH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMS42ODQ3OHJlbTsgfVxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxLjM1ODdyZW07IH1cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMS4wODY5NnJlbTsgfVxuICBoNiB7XG4gICAgZm9udC1zaXplOiAwLjg2OTU3cmVtOyB9IH1cblxuYSB7XG4gIGNvbG9yOiAjZDk3ODI3O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgY29sb3I6ICNiYjY3MjE7IH1cbiAgYSBpbWcge1xuICAgIGJvcmRlcjogMDsgfVxuXG5ociB7XG4gIG1heC13aWR0aDogNjUuMjE3MzlyZW07XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIG1hcmdpbjogMS4wODY5NnJlbSBhdXRvO1xuICBjbGVhcjogYm90aDsgfVxuXG51bCxcbm9sLFxuZGwge1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlOyB9XG5cbmxpIHtcbiAgZm9udC1zaXplOiBpbmhlcml0OyB9XG5cbnVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtOyB9XG5cbnVsIHVsLCBvbCB1bCwgdWwgb2wsIG9sIG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIGRsIGR0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgcGFkZGluZzogMC40ODkxM3JlbSAxLjA4Njk2cmVtIDAgMS4wMzI2MXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2FjYWNhOyB9XG4gIGJsb2NrcXVvdGUsIGJsb2NrcXVvdGUgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBjb2xvcjogIzQ2NDY0NjsgfVxuXG5jaXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC43MDY1MnJlbTtcbiAgY29sb3I6ICM0NjQ2NDY7IH1cbiAgY2l0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJzsgfVxuXG5hYmJyIHtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGN1cnNvcjogaGVscDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMzMzMzMzOyB9XG5cbmNvZGUge1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIHBhZGRpbmc6IDAuMTA4N3JlbSAwLjI3MTc0cmVtIDAuMDU0MzVyZW07IH1cblxua2JkIHtcbiAgcGFkZGluZzogMC4xMDg3cmVtIDAuMjE3MzlyZW0gMDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTsgfVxuXG4uc3ViaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGNvbG9yOiAjNDY0NjQ2OyB9XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxNDMuNzUlO1xuICBsaW5lLWhlaWdodDogMS4zOyB9XG5cbi5zdGF0IHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIHAgKyAuc3RhdCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cblxuLm5vLWJ1bGxldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1lZGl1bS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWVkaXVtLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lZGl1bS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5sYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5sYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG4uc2hvdy1mb3ItcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7IH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0NjQ2NDY7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207IH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9IH1cblxuLmJ1dHRvbiwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSwgI21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbixcbiN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uLCAjaG9tZS1xdW90ZSAjaG9tZS12aWRlby1jbG9zZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcGFkZGluZzogMC41ZW0gMS4yNWVtO1xuICBtYXJnaW46IDAgMCAycmVtIDA7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMzMzNmO1xuICBjb2xvcjogI2ZmZjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbiwgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGEsIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGEsIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAjbW9iaWxlLW5hdi1jbG9zZSwgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBhLCBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZ2Zvcm1fYnV0dG9uLCBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ11cbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9idXR0b24sXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmdmb3JtX2J1dHRvbiwgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlLCAjaG9tZS1xdW90ZSBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gI2hvbWUtdmlkZW8tY2xvc2Uge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmJ1dHRvbjpob3ZlciwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGE6aG92ZXIsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYTpob3ZlciwgI21vYmlsZS1uYXYtY2xvc2U6aG92ZXIsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGE6aG92ZXIsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbjpob3ZlcixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9idXR0b246aG92ZXIsICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAuYnV0dG9uOmZvY3VzLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYTpmb2N1cywgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhOmZvY3VzLCAjbW9iaWxlLW5hdi1jbG9zZTpmb2N1cywgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYTpmb2N1cywgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uOmZvY3VzLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbjpmb2N1cywgI2hvbWUtcXVvdGUgI2hvbWUtdmlkZW8tY2xvc2U6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxZTJiMzY7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi50aW55LCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS50aW55LCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEudGlueSwgLnRpbnkjbW9iaWxlLW5hdi1jbG9zZSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS50aW55LCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC50aW55Lmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC50aW55Lmdmb3JtX2J1dHRvbiwgI2hvbWUtcXVvdGUgLnRpbnkjaG9tZS12aWRlby1jbG9zZSB7XG4gICAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLmJ1dHRvbi5zbWFsbCwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuc21hbGwsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5zbWFsbCwgLnNtYWxsI21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuc21hbGwsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLnNtYWxsLmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5zbWFsbC5nZm9ybV9idXR0b24sICNob21lLXF1b3RlIC5zbWFsbCNob21lLXZpZGVvLWNsb3NlIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi5sYXJnZSwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEubGFyZ2UsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5sYXJnZSwgLmxhcmdlI21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEubGFyZ2UsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmxhcmdlLmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5sYXJnZS5nZm9ybV9idXR0b24sICNob21lLXF1b3RlIC5sYXJnZSNob21lLXZpZGVvLWNsb3NlIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTsgfVxuICAuYnV0dG9uLmV4cGFuZGVkLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5leHBhbmRlZCwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLmV4cGFuZGVkLCAuZXhwYW5kZWQjbW9iaWxlLW5hdi1jbG9zZSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5leHBhbmRlZCwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZXhwYW5kZWQuZ2Zvcm1fYnV0dG9uLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmV4cGFuZGVkLmdmb3JtX2J1dHRvbiwgI2hvbWUtcXVvdGUgLmV4cGFuZGVkI2hvbWUtdmlkZW8tY2xvc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuYnV0dG9uLnByaW1hcnksICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLnByaW1hcnksICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5wcmltYXJ5LCAucHJpbWFyeSNtb2JpbGUtbmF2LWNsb3NlLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLnByaW1hcnksICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLnByaW1hcnkuZ2Zvcm1fYnV0dG9uLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLnByaW1hcnkuZ2Zvcm1fYnV0dG9uLCAjaG9tZS1xdW90ZSAucHJpbWFyeSNob21lLXZpZGVvLWNsb3NlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMzMzNmO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5wcmltYXJ5OmhvdmVyLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEucHJpbWFyeTpob3ZlciwgLnByaW1hcnkjbW9iaWxlLW5hdi1jbG9zZTpob3ZlciwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5wcmltYXJ5OmhvdmVyLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5wcmltYXJ5Lmdmb3JtX2J1dHRvbjpob3ZlcixcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLnByaW1hcnkuZ2Zvcm1fYnV0dG9uOmhvdmVyLCAjaG9tZS1xdW90ZSAucHJpbWFyeSNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAuYnV0dG9uLnByaW1hcnk6Zm9jdXMsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLnByaW1hcnk6Zm9jdXMsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5wcmltYXJ5OmZvY3VzLCAucHJpbWFyeSNtb2JpbGUtbmF2LWNsb3NlOmZvY3VzLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLnByaW1hcnk6Zm9jdXMsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLnByaW1hcnkuZ2Zvcm1fYnV0dG9uOmZvY3VzLFxuICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAucHJpbWFyeS5nZm9ybV9idXR0b246Zm9jdXMsICNob21lLXF1b3RlIC5wcmltYXJ5I2hvbWUtdmlkZW8tY2xvc2U6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFjMjkzMjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5LCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYSwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLCAuc2Vjb25kYXJ5I21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLnNlY29uZGFyeS5nZm9ybV9idXR0b24sICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuZ2Zvcm1fYnV0dG9uLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciBhLmdmb3JtX2J1dHRvbiwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuZ2Zvcm1fYnV0dG9uLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgYS5nZm9ybV9idXR0b24sXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuc2Vjb25kYXJ5Lmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLmdmb3JtX2J1dHRvbiwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciBhLmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5nZm9ybV9idXR0b24sICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGRcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIGEuZ2Zvcm1fYnV0dG9uLCAjaG9tZS1xdW90ZSAuc2Vjb25kYXJ5I2hvbWUtdmlkZW8tY2xvc2UsICNob21lLXF1b3RlICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhI2hvbWUtdmlkZW8tY2xvc2UsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCAjaG9tZS1xdW90ZSBhI2hvbWUtdmlkZW8tY2xvc2UsICNob21lLXF1b3RlICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSNob21lLXZpZGVvLWNsb3NlLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkICNob21lLXF1b3RlIGEjaG9tZS12aWRlby1jbG9zZSwgI2hvbWUtcXVvdGUgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSNob21lLXZpZGVvLWNsb3NlLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCAjaG9tZS1xdW90ZSBhI2hvbWUtdmlkZW8tY2xvc2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTc4Mjc7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGE6aG92ZXIsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYTpob3ZlciwgLnNlY29uZGFyeSNtb2JpbGUtbmF2LWNsb3NlOmhvdmVyLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhOmhvdmVyLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5zZWNvbmRhcnkuZ2Zvcm1fYnV0dG9uOmhvdmVyLFxuICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuc2Vjb25kYXJ5Lmdmb3JtX2J1dHRvbjpob3ZlciwgI2hvbWUtcXVvdGUgLnNlY29uZGFyeSNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAjaG9tZS1xdW90ZSAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYSNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgI2hvbWUtcXVvdGUgYSNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAjaG9tZS1xdW90ZSAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEjaG9tZS12aWRlby1jbG9zZTpob3ZlciwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAjaG9tZS1xdW90ZSBhI2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsICNob21lLXF1b3RlICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEjaG9tZS12aWRlby1jbG9zZTpob3ZlciwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgI2hvbWUtcXVvdGUgYSNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAuYnV0dG9uLnNlY29uZGFyeTpmb2N1cywgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGE6Zm9jdXMsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYTpmb2N1cywgLnNlY29uZGFyeSNtb2JpbGUtbmF2LWNsb3NlOmZvY3VzLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhOmZvY3VzLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5zZWNvbmRhcnkuZ2Zvcm1fYnV0dG9uOmZvY3VzLFxuICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuc2Vjb25kYXJ5Lmdmb3JtX2J1dHRvbjpmb2N1cywgI2hvbWUtcXVvdGUgLnNlY29uZGFyeSNob21lLXZpZGVvLWNsb3NlOmZvY3VzLCAjaG9tZS1xdW90ZSAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYSNob21lLXZpZGVvLWNsb3NlOmZvY3VzLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgI2hvbWUtcXVvdGUgYSNob21lLXZpZGVvLWNsb3NlOmZvY3VzLCAjaG9tZS1xdW90ZSAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEjaG9tZS12aWRlby1jbG9zZTpmb2N1cywgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAjaG9tZS1xdW90ZSBhI2hvbWUtdmlkZW8tY2xvc2U6Zm9jdXMsICNob21lLXF1b3RlICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEjaG9tZS12aWRlby1jbG9zZTpmb2N1cywgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgI2hvbWUtcXVvdGUgYSNob21lLXZpZGVvLWNsb3NlOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhZTYwMWY7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLnN1Y2Nlc3MsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLnN1Y2Nlc3MsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5zdWNjZXNzLCAuc3VjY2VzcyNtb2JpbGUtbmF2LWNsb3NlLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLnN1Y2Nlc3MsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLnN1Y2Nlc3MuZ2Zvcm1fYnV0dG9uLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLnN1Y2Nlc3MuZ2Zvcm1fYnV0dG9uLCAjaG9tZS1xdW90ZSAuc3VjY2VzcyNob21lLXZpZGVvLWNsb3NlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5zdWNjZXNzOmhvdmVyLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuc3VjY2Vzczpob3ZlciwgLnN1Y2Nlc3MjbW9iaWxlLW5hdi1jbG9zZTpob3ZlciwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5zdWNjZXNzOmhvdmVyLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5zdWNjZXNzLmdmb3JtX2J1dHRvbjpob3ZlcixcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLnN1Y2Nlc3MuZ2Zvcm1fYnV0dG9uOmhvdmVyLCAjaG9tZS1xdW90ZSAuc3VjY2VzcyNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLnN1Y2Nlc3M6Zm9jdXMsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5zdWNjZXNzOmZvY3VzLCAuc3VjY2VzcyNtb2JpbGUtbmF2LWNsb3NlOmZvY3VzLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLnN1Y2Nlc3M6Zm9jdXMsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLnN1Y2Nlc3MuZ2Zvcm1fYnV0dG9uOmZvY3VzLFxuICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuc3VjY2Vzcy5nZm9ybV9idXR0b246Zm9jdXMsICNob21lLXF1b3RlIC5zdWNjZXNzI2hvbWUtdmlkZW8tY2xvc2U6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIyYmI1YjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idXR0b24ud2FybmluZywgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEud2FybmluZywgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLndhcm5pbmcsIC53YXJuaW5nI21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEud2FybmluZywgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAud2FybmluZy5nZm9ybV9idXR0b24sXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAud2FybmluZy5nZm9ybV9idXR0b24sICNob21lLXF1b3RlIC53YXJuaW5nI2hvbWUtdmlkZW8tY2xvc2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYnV0dG9uLndhcm5pbmc6aG92ZXIsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLndhcm5pbmc6aG92ZXIsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS53YXJuaW5nOmhvdmVyLCAud2FybmluZyNtb2JpbGUtbmF2LWNsb3NlOmhvdmVyLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLndhcm5pbmc6aG92ZXIsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLndhcm5pbmcuZ2Zvcm1fYnV0dG9uOmhvdmVyLFxuICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAud2FybmluZy5nZm9ybV9idXR0b246aG92ZXIsICNob21lLXF1b3RlIC53YXJuaW5nI2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cywgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEud2FybmluZzpmb2N1cywgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLndhcm5pbmc6Zm9jdXMsIC53YXJuaW5nI21vYmlsZS1uYXYtY2xvc2U6Zm9jdXMsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEud2FybmluZzpmb2N1cywgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAud2FybmluZy5nZm9ybV9idXR0b246Zm9jdXMsXG4gICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC53YXJuaW5nLmdmb3JtX2J1dHRvbjpmb2N1cywgI2hvbWUtcXVvdGUgLndhcm5pbmcjaG9tZS12aWRlby1jbG9zZTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi5hbGVydCwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuYWxlcnQsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5hbGVydCwgLmFsZXJ0I21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuYWxlcnQsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmFsZXJ0Lmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5hbGVydC5nZm9ybV9idXR0b24sICNob21lLXF1b3RlIC5hbGVydCNob21lLXZpZGVvLWNsb3NlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM1ODQwO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmJ1dHRvbi5hbGVydDpob3ZlciwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuYWxlcnQ6aG92ZXIsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5hbGVydDpob3ZlciwgLmFsZXJ0I21vYmlsZS1uYXYtY2xvc2U6aG92ZXIsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuYWxlcnQ6aG92ZXIsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmFsZXJ0Lmdmb3JtX2J1dHRvbjpob3ZlcixcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmFsZXJ0Lmdmb3JtX2J1dHRvbjpob3ZlciwgI2hvbWUtcXVvdGUgLmFsZXJ0I2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsIC5idXR0b24uYWxlcnQ6Zm9jdXMsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLmFsZXJ0OmZvY3VzLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuYWxlcnQ6Zm9jdXMsIC5hbGVydCNtb2JpbGUtbmF2LWNsb3NlOmZvY3VzLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLmFsZXJ0OmZvY3VzLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5hbGVydC5nZm9ybV9idXR0b246Zm9jdXMsXG4gICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5hbGVydC5nZm9ybV9idXR0b246Zm9jdXMsICNob21lLXF1b3RlIC5hbGVydCNob21lLXZpZGVvLWNsb3NlOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkYTMxMTY7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLmhvbGxvdywgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93LCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93LCAuaG9sbG93I21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuaG9sbG93LCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuZ2Zvcm1fYnV0dG9uLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5nZm9ybV9idXR0b24sICNob21lLXF1b3RlIC5ob2xsb3cjaG9tZS12aWRlby1jbG9zZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzIzMzMzZjtcbiAgICBjb2xvcjogIzIzMzMzZjsgfVxuICAgIC5idXR0b24uaG9sbG93LCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3csICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3csIC5ob2xsb3cjbW9iaWxlLW5hdi1jbG9zZSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3csICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5nZm9ybV9idXR0b24sXG4gICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuZ2Zvcm1fYnV0dG9uLCAjaG9tZS1xdW90ZSAuaG9sbG93I2hvbWUtdmlkZW8tY2xvc2UsIC5idXR0b24uaG9sbG93OmhvdmVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3c6aG92ZXIsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3c6aG92ZXIsIC5ob2xsb3cjbW9iaWxlLW5hdi1jbG9zZTpob3ZlciwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3c6aG92ZXIsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5nZm9ybV9idXR0b246aG92ZXIsXG4gICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuZ2Zvcm1fYnV0dG9uOmhvdmVyLCAjaG9tZS1xdW90ZSAuaG9sbG93I2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3c6Zm9jdXMsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3c6Zm9jdXMsIC5ob2xsb3cjbW9iaWxlLW5hdi1jbG9zZTpmb2N1cywgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3c6Zm9jdXMsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5nZm9ybV9idXR0b246Zm9jdXMsXG4gICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuZ2Zvcm1fYnV0dG9uOmZvY3VzLCAjaG9tZS1xdW90ZSAuaG9sbG93I2hvbWUtdmlkZW8tY2xvc2U6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdzpob3ZlciwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93OmhvdmVyLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93OmhvdmVyLCAuaG9sbG93I21vYmlsZS1uYXYtY2xvc2U6aG92ZXIsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuaG9sbG93OmhvdmVyLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuZ2Zvcm1fYnV0dG9uOmhvdmVyLFxuICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuaG9sbG93Lmdmb3JtX2J1dHRvbjpob3ZlciwgI2hvbWUtcXVvdGUgLmhvbGxvdyNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cywgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93OmZvY3VzLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93OmZvY3VzLCAuaG9sbG93I21vYmlsZS1uYXYtY2xvc2U6Zm9jdXMsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuaG9sbG93OmZvY3VzLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuZ2Zvcm1fYnV0dG9uOmZvY3VzLFxuICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuaG9sbG93Lmdmb3JtX2J1dHRvbjpmb2N1cywgI2hvbWUtcXVvdGUgLmhvbGxvdyNob21lLXZpZGVvLWNsb3NlOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzEyMWEyMDtcbiAgICAgIGNvbG9yOiAjMTIxYTIwOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeSwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93LnByaW1hcnksICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cucHJpbWFyeSwgLmhvbGxvdy5wcmltYXJ5I21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuaG9sbG93LnByaW1hcnksICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5wcmltYXJ5Lmdmb3JtX2J1dHRvbixcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5wcmltYXJ5Lmdmb3JtX2J1dHRvbiwgI2hvbWUtcXVvdGUgLmhvbGxvdy5wcmltYXJ5I2hvbWUtdmlkZW8tY2xvc2Uge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzIzMzMzZjtcbiAgICAgIGNvbG9yOiAjMjMzMzNmOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cucHJpbWFyeTpob3ZlciwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAuaG9sbG93LnByaW1hcnkjbW9iaWxlLW5hdi1jbG9zZTpob3ZlciwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3cucHJpbWFyeTpob3ZlciwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuaG9sbG93LnByaW1hcnkuZ2Zvcm1fYnV0dG9uOmhvdmVyLFxuICAgICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cucHJpbWFyeS5nZm9ybV9idXR0b246aG92ZXIsICNob21lLXF1b3RlIC5ob2xsb3cucHJpbWFyeSNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cucHJpbWFyeTpmb2N1cywgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLmhvbGxvdy5wcmltYXJ5OmZvY3VzLCAuaG9sbG93LnByaW1hcnkjbW9iaWxlLW5hdi1jbG9zZTpmb2N1cywgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3cucHJpbWFyeTpmb2N1cywgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuaG9sbG93LnByaW1hcnkuZ2Zvcm1fYnV0dG9uOmZvY3VzLFxuICAgICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cucHJpbWFyeS5nZm9ybV9idXR0b246Zm9jdXMsICNob21lLXF1b3RlIC5ob2xsb3cucHJpbWFyeSNob21lLXZpZGVvLWNsb3NlOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTIxYTIwO1xuICAgICAgICBjb2xvcjogIzEyMWEyMDsgfVxuICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeSwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93LCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93LCAuaG9sbG93LnNlY29uZGFyeSNtb2JpbGUtbmF2LWNsb3NlLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLmhvbGxvdywgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuaG9sbG93LnNlY29uZGFyeS5nZm9ybV9idXR0b24sXG4gICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuc2Vjb25kYXJ5Lmdmb3JtX2J1dHRvbiwgI2hvbWUtcXVvdGUgLmhvbGxvdy5zZWNvbmRhcnkjaG9tZS12aWRlby1jbG9zZSwgI2hvbWUtcXVvdGUgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93I2hvbWUtdmlkZW8tY2xvc2UsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCAjaG9tZS1xdW90ZSBhLmhvbGxvdyNob21lLXZpZGVvLWNsb3NlLCAjaG9tZS1xdW90ZSAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93I2hvbWUtdmlkZW8tY2xvc2UsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgI2hvbWUtcXVvdGUgYS5ob2xsb3cjaG9tZS12aWRlby1jbG9zZSwgI2hvbWUtcXVvdGUgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3cjaG9tZS12aWRlby1jbG9zZSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgI2hvbWUtcXVvdGUgYS5ob2xsb3cjaG9tZS12aWRlby1jbG9zZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDk3ODI3O1xuICAgICAgY29sb3I6ICNkOTc4Mjc7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlciwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93OmhvdmVyLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93OmhvdmVyLCAuaG9sbG93LnNlY29uZGFyeSNtb2JpbGUtbmF2LWNsb3NlOmhvdmVyLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLmhvbGxvdzpob3ZlciwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuaG9sbG93LnNlY29uZGFyeS5nZm9ybV9idXR0b246aG92ZXIsXG4gICAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5zZWNvbmRhcnkuZ2Zvcm1fYnV0dG9uOmhvdmVyLCAjaG9tZS1xdW90ZSAuaG9sbG93LnNlY29uZGFyeSNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAjaG9tZS1xdW90ZSAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cjaG9tZS12aWRlby1jbG9zZTpob3ZlciwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkICNob21lLXF1b3RlIGEuaG9sbG93I2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsICNob21lLXF1b3RlICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cjaG9tZS12aWRlby1jbG9zZTpob3ZlciwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAjaG9tZS1xdW90ZSBhLmhvbGxvdyNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAjaG9tZS1xdW90ZSAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLmhvbGxvdyNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCAjaG9tZS1xdW90ZSBhLmhvbGxvdyNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLmhvbGxvdzpmb2N1cywgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLmhvbGxvdzpmb2N1cywgLmhvbGxvdy5zZWNvbmRhcnkjbW9iaWxlLW5hdi1jbG9zZTpmb2N1cywgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3c6Zm9jdXMsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5zZWNvbmRhcnkuZ2Zvcm1fYnV0dG9uOmZvY3VzLFxuICAgICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuc2Vjb25kYXJ5Lmdmb3JtX2J1dHRvbjpmb2N1cywgI2hvbWUtcXVvdGUgLmhvbGxvdy5zZWNvbmRhcnkjaG9tZS12aWRlby1jbG9zZTpmb2N1cywgI2hvbWUtcXVvdGUgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93I2hvbWUtdmlkZW8tY2xvc2U6Zm9jdXMsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCAjaG9tZS1xdW90ZSBhLmhvbGxvdyNob21lLXZpZGVvLWNsb3NlOmZvY3VzLCAjaG9tZS1xdW90ZSAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93I2hvbWUtdmlkZW8tY2xvc2U6Zm9jdXMsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgI2hvbWUtcXVvdGUgYS5ob2xsb3cjaG9tZS12aWRlby1jbG9zZTpmb2N1cywgI2hvbWUtcXVvdGUgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3cjaG9tZS12aWRlby1jbG9zZTpmb2N1cywgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgI2hvbWUtcXVvdGUgYS5ob2xsb3cjaG9tZS12aWRlby1jbG9zZTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzZkM2MxMztcbiAgICAgICAgY29sb3I6ICM2ZDNjMTM7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cuc3VjY2VzcywgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLmhvbGxvdy5zdWNjZXNzLCAuaG9sbG93LnN1Y2Nlc3MjbW9iaWxlLW5hdi1jbG9zZSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3cuc3VjY2VzcywgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuaG9sbG93LnN1Y2Nlc3MuZ2Zvcm1fYnV0dG9uLFxuICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuaG9sbG93LnN1Y2Nlc3MuZ2Zvcm1fYnV0dG9uLCAjaG9tZS1xdW90ZSAuaG9sbG93LnN1Y2Nlc3MjaG9tZS12aWRlby1jbG9zZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLmhvbGxvdy5zdWNjZXNzOmhvdmVyLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93LnN1Y2Nlc3M6aG92ZXIsIC5ob2xsb3cuc3VjY2VzcyNtb2JpbGUtbmF2LWNsb3NlOmhvdmVyLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLmhvbGxvdy5zdWNjZXNzOmhvdmVyLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuc3VjY2Vzcy5nZm9ybV9idXR0b246aG92ZXIsXG4gICAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5zdWNjZXNzLmdmb3JtX2J1dHRvbjpob3ZlciwgI2hvbWUtcXVvdGUgLmhvbGxvdy5zdWNjZXNzI2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLmhvbGxvdy5zdWNjZXNzOmZvY3VzLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93LnN1Y2Nlc3M6Zm9jdXMsIC5ob2xsb3cuc3VjY2VzcyNtb2JpbGUtbmF2LWNsb3NlOmZvY3VzLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLmhvbGxvdy5zdWNjZXNzOmZvY3VzLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuc3VjY2Vzcy5nZm9ybV9idXR0b246Zm9jdXMsXG4gICAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5zdWNjZXNzLmdmb3JtX2J1dHRvbjpmb2N1cywgI2hvbWUtcXVvdGUgLmhvbGxvdy5zdWNjZXNzI2hvbWUtdmlkZW8tY2xvc2U6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMxNTc1Mzk7XG4gICAgICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZywgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93Lndhcm5pbmcsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cud2FybmluZywgLmhvbGxvdy53YXJuaW5nI21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuaG9sbG93Lndhcm5pbmcsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy53YXJuaW5nLmdmb3JtX2J1dHRvbixcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy53YXJuaW5nLmdmb3JtX2J1dHRvbiwgI2hvbWUtcXVvdGUgLmhvbGxvdy53YXJuaW5nI2hvbWUtdmlkZW8tY2xvc2Uge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cud2FybmluZzpob3ZlciwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLmhvbGxvdy53YXJuaW5nOmhvdmVyLCAuaG9sbG93Lndhcm5pbmcjbW9iaWxlLW5hdi1jbG9zZTpob3ZlciwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3cud2FybmluZzpob3ZlciwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuaG9sbG93Lndhcm5pbmcuZ2Zvcm1fYnV0dG9uOmhvdmVyLFxuICAgICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cud2FybmluZy5nZm9ybV9idXR0b246aG92ZXIsICNob21lLXF1b3RlIC5ob2xsb3cud2FybmluZyNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cud2FybmluZzpmb2N1cywgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLmhvbGxvdy53YXJuaW5nOmZvY3VzLCAuaG9sbG93Lndhcm5pbmcjbW9iaWxlLW5hdi1jbG9zZTpmb2N1cywgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3cud2FybmluZzpmb2N1cywgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuaG9sbG93Lndhcm5pbmcuZ2Zvcm1fYnV0dG9uOmZvY3VzLFxuICAgICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cud2FybmluZy5nZm9ybV9idXR0b246Zm9jdXMsICNob21lLXF1b3RlIC5ob2xsb3cud2FybmluZyNob21lLXZpZGVvLWNsb3NlOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICAgICAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAgIC5idXR0b24uaG9sbG93LmFsZXJ0LCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cuYWxlcnQsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cuYWxlcnQsIC5ob2xsb3cuYWxlcnQjbW9iaWxlLW5hdi1jbG9zZSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3cuYWxlcnQsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5hbGVydC5nZm9ybV9idXR0b24sXG4gICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuYWxlcnQuZ2Zvcm1fYnV0dG9uLCAjaG9tZS1xdW90ZSAuaG9sbG93LmFsZXJ0I2hvbWUtdmlkZW8tY2xvc2Uge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VjNTg0MDtcbiAgICAgIGNvbG9yOiAjZWM1ODQwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93LmFsZXJ0OmhvdmVyLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuaG9sbG93LmFsZXJ0OmhvdmVyLCAuaG9sbG93LmFsZXJ0I21vYmlsZS1uYXYtY2xvc2U6aG92ZXIsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuaG9sbG93LmFsZXJ0OmhvdmVyLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuYWxlcnQuZ2Zvcm1fYnV0dG9uOmhvdmVyLFxuICAgICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5ob2xsb3cuYWxlcnQuZ2Zvcm1fYnV0dG9uOmhvdmVyLCAjaG9tZS1xdW90ZSAuaG9sbG93LmFsZXJ0I2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cuYWxlcnQ6Zm9jdXMsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5ob2xsb3cuYWxlcnQ6Zm9jdXMsIC5ob2xsb3cuYWxlcnQjbW9iaWxlLW5hdi1jbG9zZTpmb2N1cywgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5ob2xsb3cuYWxlcnQ6Zm9jdXMsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5hbGVydC5nZm9ybV9idXR0b246Zm9jdXMsXG4gICAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmhvbGxvdy5hbGVydC5nZm9ybV9idXR0b246Zm9jdXMsICNob21lLXF1b3RlIC5ob2xsb3cuYWxlcnQjaG9tZS12aWRlby1jbG9zZTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzg4MWYwZTtcbiAgICAgICAgY29sb3I6ICM4ODFmMGU7IH1cbiAgLmJ1dHRvbi5kaXNhYmxlZCwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuZGlzYWJsZWQsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5kaXNhYmxlZCwgLmRpc2FibGVkI21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuZGlzYWJsZWQsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmRpc2FibGVkLmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5kaXNhYmxlZC5nZm9ybV9idXR0b24sICNob21lLXF1b3RlIC5kaXNhYmxlZCNob21lLXZpZGVvLWNsb3NlLCAuYnV0dG9uW2Rpc2FibGVkXSwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGFbZGlzYWJsZWRdLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGFbZGlzYWJsZWRdLCBbZGlzYWJsZWRdI21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGFbZGlzYWJsZWRdLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIFtkaXNhYmxlZF0uZ2Zvcm1fYnV0dG9uLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgW2Rpc2FibGVkXS5nZm9ybV9idXR0b24sICNob21lLXF1b3RlIFtkaXNhYmxlZF0jaG9tZS12aWRlby1jbG9zZSB7XG4gICAgb3BhY2l0eTogMC4yNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5idXR0b24uZHJvcGRvd246OmFmdGVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5kcm9wZG93bjo6YWZ0ZXIsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5kcm9wZG93bjo6YWZ0ZXIsIC5kcm9wZG93biNtb2JpbGUtbmF2LWNsb3NlOjphZnRlciwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5kcm9wZG93bjo6YWZ0ZXIsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmRyb3Bkb3duLmdmb3JtX2J1dHRvbjo6YWZ0ZXIsXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuZHJvcGRvd24uZ2Zvcm1fYnV0dG9uOjphZnRlciwgI2hvbWUtcXVvdGUgLmRyb3Bkb3duI2hvbWUtdmlkZW8tY2xvc2U6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjRlbTtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEuMjVlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuYXJyb3ctb25seTo6YWZ0ZXIsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5hcnJvdy1vbmx5OjphZnRlciwgLmFycm93LW9ubHkjbW9iaWxlLW5hdi1jbG9zZTo6YWZ0ZXIsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuYXJyb3ctb25seTo6YWZ0ZXIsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmFycm93LW9ubHkuZ2Zvcm1fYnV0dG9uOjphZnRlcixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5hcnJvdy1vbmx5Lmdmb3JtX2J1dHRvbjo6YWZ0ZXIsICNob21lLXF1b3RlIC5hcnJvdy1vbmx5I2hvbWUtdmlkZW8tY2xvc2U6OmFmdGVyIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0b3A6IC0wLjFlbTsgfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjExOTU3cmVtO1xuICBwYWRkaW5nOiAwLjQzNDc4cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBtYXJnaW46IDAgMCAwLjg2OTU3cmVtO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjg2OTU3cmVtO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgW3R5cGU9J3RleHQnXTpmb2N1cywgW3R5cGU9J3Bhc3N3b3JkJ106Zm9jdXMsIFt0eXBlPSdkYXRlJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXTpmb2N1cywgW3R5cGU9J21vbnRoJ106Zm9jdXMsIFt0eXBlPSd3ZWVrJ106Zm9jdXMsIFt0eXBlPSdlbWFpbCddOmZvY3VzLCBbdHlwZT0nbnVtYmVyJ106Zm9jdXMsIFt0eXBlPSdzZWFyY2gnXTpmb2N1cywgW3R5cGU9J3RlbCddOmZvY3VzLCBbdHlwZT0ndGltZSddOmZvY3VzLCBbdHlwZT0ndXJsJ106Zm9jdXMsIFt0eXBlPSdjb2xvciddOmZvY3VzLFxuICB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgYm9yZGVyOiAwIHNvbGlkICNjYWNhY2E7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAycHggI2NhY2FjYTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2FjYWNhOyB9XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG5bdHlwZT0nc3VibWl0J10sXG5bdHlwZT0nYnV0dG9uJ10ge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTsgfVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW46IDAgMCAwLjg2OTU3cmVtOyB9XG5cblt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC40MzQ3OHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjg2OTU3cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxubGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbmxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNDM0NzhyZW07IH1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjc2MDg3cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzMzMzMzMzsgfVxuICBsYWJlbC5taWRkbGUge1xuICAgIG1hcmdpbjogMCAwIDAuODY5NTdyZW07XG4gICAgcGFkZGluZzogMC40ODkxM3JlbSAwOyB9XG5cbi5oZWxwLXRleHQge1xuICBtYXJnaW4tdG9wOiAtMC40MzQ3OHJlbTtcbiAgZm9udC1zaXplOiAwLjcwNjUycmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjg2OTU3cmVtO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNHJlbSAwIDAgMC40cmVtOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkID4gKiB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwLjRyZW0gMC40cmVtIDA7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsLCAuaW5wdXQtZ3JvdXAtZmllbGQsIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICBtYXJnaW46IDA7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJhY2tncm91bmQ6ICNmM2YzZjM7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZmxleDogMSAxIDBweDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bzsgfVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG4gIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24ge1xuICAgIG1hcmdpbjogMDsgfVxuXG4uaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiAwLjQzNDc4cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgcGFkZGluZzogMS4wODY5NnJlbTtcbiAgbWFyZ2luOiAwLjk3ODI2cmVtIDA7IH1cbiAgLmZpZWxkc2V0IGxlZ2VuZCB7XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICBwYWRkaW5nOiAwIDAuMTYzMDRyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4xNjMwNHJlbTsgfVxuXG5zZWxlY3Qge1xuICBoZWlnaHQ6IDIuMTE5NTdyZW07XG4gIHBhZGRpbmc6IDAuNDM0NzhyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIG1hcmdpbjogMCAwIDAuODY5NTdyZW07XG4gIGZvbnQtc2l6ZTogMC44Njk1N3JlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2ZXJzaW9uPVwiMS4xXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAzMiAyNFwiPjxwb2x5Z29uIHBvaW50cz1cIjAsMCAzMiwwIDE2LDI0XCIgc3R5bGU9XCJmaWxsOiByZ2IlMjg1MSwgNTEsIDUxJTI5XCI+PC9wb2x5Z29uPjwvc3ZnPicpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBzZWxlY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTsgfSB9XG4gIHNlbGVjdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHNlbGVjdFttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG4uaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM2LCA4OCwgNjQsIDAuMSk7XG4gIGJvcmRlci1jb2xvcjogI2VjNTg0MDsgfVxuXG4uaXMtaW52YWxpZC1sYWJlbCB7XG4gIGNvbG9yOiAjZWM1ODQwOyB9XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNDM0NzhyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuODY5NTdyZW07XG4gIGZvbnQtc2l6ZTogMC42NTIxN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICNlYzU4NDA7IH1cbiAgLmZvcm0tZXJyb3IuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOyB9XG5cbi5zaG93LW9uLWZvY3VzOmFjdGl2ZSwgLnNob3ctb24tZm9jdXM6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvOyB9XG5cbi5zaG93LWZvci1sYW5kc2NhcGUsXG4uaGlkZS1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uaGlkZS1mb3ItbGFuZHNjYXBlLFxuLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4uZmxvYXQtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cblxuLmZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cblxuLmZsb2F0LWNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi5jbGVhcmZpeDo6YmVmb3JlLCAuY2xlYXJmaXg6OmFmdGVyIHtcbiAgY29udGVudDogJyAnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgZmxleC1iYXNpczogMDtcbiAgb3JkZXI6IDE7IH1cblxuLmNsZWFyZml4OjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5hY2NvcmRpb24ge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhMmEyYTI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmFjY29yZGlvbi10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDAuNjUyMTdyZW07XG4gIGNvbG9yOiAjMjMzMzNmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYTJhMmEyOyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6aG92ZXIsIC5hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7IH1cbiAgLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnKyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0wLjVyZW07IH1cbiAgLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ+KAkyc7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHtcbiAgcGFkZGluZzogMXJlbTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhMmEyYTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cblxuLmNsb3NlLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICM0NjQ2NDY7XG4gIHJpZ2h0OiAxcmVtO1xuICB0b3A6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5jbG9zZS1idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmNsb3NlLWJ1dHRvbjpob3ZlciwgLmNsb3NlLWJ1dHRvbjpmb2N1cyB7XG4gICAgY29sb3I6ICMzMzMzMzM7IH1cblxuLmRyb3Bkb3duLXBhbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDFyZW07XG4gIHBhZGRpbmc6IDFyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWR0aDogMzAwcHg7XG4gIHotaW5kZXg6IDEwOyB9XG4gIC5kcm9wZG93bi1wYW5lLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLmRyb3Bkb3duLXBhbmUudGlueSB7XG4gIHdpZHRoOiAxMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5zbWFsbCB7XG4gIHdpZHRoOiAyMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5sYXJnZSB7XG4gIHdpZHRoOiA0MDBweDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDEwMCU7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIHRvcDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA1cHg7XG4gIGJvcmRlci1jb2xvcjogI2Q5NzgyNyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIHJpZ2h0OiA1cHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7IH1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5kcm9wZG93bi5tZW51IGEge1xuICBvdXRsaW5lOiAwOyB9XG5cbi5uby1qcyAuZHJvcGRvd24ubWVudSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IDE0cHg7XG4gIG1hcmdpbi10b3A6IC0zcHg7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNXB4O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNkOTc4MjcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA1cHg7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2Q5NzgyNztcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDVweDtcbiAgICBib3JkZXItY29sb3I6ICNkOTc4MjcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZDk3ODI3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2Q5NzgyNztcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogI2Q5NzgyNyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDtcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZDk3ODI3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZDk3ODI3O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7IH0gfVxuXG4uZHJvcGRvd24ubWVudS5hbGlnbi1yaWdodCAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgd2lkdGg6IDEwMHB4OyB9XG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsLmFsaWduLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCBhOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtaW5uZXIgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDEwMCU7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZDk3ODI3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDVweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNkOTc4Mjc7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSA+IGxpIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudTpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUsIC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmZsZXgtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgbWFyZ2luLWJvdHRvbTogMC44Njk1N3JlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuZmxleC12aWRlbyBpZnJhbWUsXG4gIC5mbGV4LXZpZGVvIG9iamVjdCxcbiAgLmZsZXgtdmlkZW8gZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5mbGV4LXZpZGVvLndpZGVzY3JlZW4ge1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IH1cbiAgLmZsZXgtdmlkZW8udmltZW8ge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGJhY2tncm91bmQ6ICMyMzMzM2Y7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC5zZWNvbmRhcnksICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLmxhYmVsLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEubGFiZWwsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEubGFiZWwge1xuICAgIGJhY2tncm91bmQ6ICNkOTc4Mjc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWM1ODQwO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG5cbi5tZWRpYS1vYmplY3Qge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAubWVkaWEtb2JqZWN0IGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLm1lZGlhLW9iamVjdC5zdGFjay1mb3Itc21hbGwgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb246bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ubWFpbi1zZWN0aW9uIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9XG5cbi5tZW51IHtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgLm1lbnUgPiBsaSB7XG4gICAgZmxleDogMCAwIGF1dG87IH1cbiAgICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm1lbnUgPiBsaSB7XG4gICAgICBvdXRsaW5lOiAwOyB9XG4gIC5tZW51ID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICAubWVudSBpbnB1dCxcbiAgLm1lbnUgYSxcbiAgLm1lbnUgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZW51ID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZW51ID4gbGkgPiBhIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7IH1cbiAgICAubWVudSA+IGxpID4gYSBpbWcsXG4gICAgLm1lbnUgPiBsaSA+IGEgaSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07IH1cbiAgLm1lbnUgPiBsaSB7XG4gICAgZmxleDogMCAwIGF1dG87IH1cbiAgLm1lbnUudmVydGljYWwge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZW51LnZlcnRpY2FsID4gbGkge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAubWVudS52ZXJ0aWNhbCA+IGxpID4gYSB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1lbnUubWVkaXVtLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAgIC5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bzsgfVxuICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgPiBhIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubWVudS5sYXJnZS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gICAgICAubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bzsgfVxuICAgIC5tZW51LmxhcmdlLXZlcnRpY2FsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgPiBhIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfSB9XG4gIC5tZW51LnNpbXBsZSBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAubWVudS5zaW1wbGUgYSB7XG4gICAgcGFkZGluZzogMDsgfVxuICAubWVudS5hbGlnbi1yaWdodCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAubWVudS5leHBhbmRlZCA+IGxpIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9XG4gIC5tZW51LmV4cGFuZGVkID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tdG9wID4gbGkgPiBhIGltZyxcbiAgICAubWVudS5pY29uLXRvcCA+IGxpID4gYSBpIHtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOyB9XG4gIC5tZW51Lm5lc3RlZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLm1lbnUgLmFjdGl2ZSA+IGEge1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGJhY2tncm91bmQ6ICMyMzMzM2Y7IH1cblxuLm1lbnUtdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07IH1cblxuLm1lbnUtY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUtY2VudGVyZWQgPiAubWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWVudS1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDsgfVxuICAubWVudS1pY29uOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjZmVmZWZlLCAwIDE0cHggMCAjZmVmZWZlOyB9XG4gIC5tZW51LWljb246aG92ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjY2FjYWNhO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgI2NhY2FjYSwgMCAxNHB4IDAgI2NhY2FjYTsgfVxuXG4ubWVudS1pY29uLmRhcmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4OyB9XG4gIC5tZW51LWljb24uZGFyazo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgIzMzMzMzMywgMCAxNHB4IDAgIzMzMzMzMzsgfVxuICAubWVudS1pY29uLmRhcms6aG92ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNDY0NjQ2O1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgIzQ2NDY0NiwgMCAxNHB4IDAgIzQ2NDY0NjsgfVxuXG5ib2R5LmlzLXJldmVhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ucmV2ZWFsLW92ZXJsYXkge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMTAwNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MSwgNTEsIDUxLCAwLjQ1KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG5cbi5yZXZlYWwge1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiAxMDA2O1xuICBwYWRkaW5nOiAycmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnJldmVhbCB7XG4gICAgb3V0bGluZTogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICBtaW4taGVpZ2h0OiAwOyB9IH1cbiAgLnJldmVhbCAuY29sdW1uLCAucmV2ZWFsIC5jb2x1bW5zLFxuICAucmV2ZWFsIC5jb2x1bW5zIHtcbiAgICBtaW4td2lkdGg6IDA7IH1cbiAgLnJldmVhbCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgIG1heC13aWR0aDogNjUuMjE3MzlyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbCAucmV2ZWFsIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cbiAgLnJldmVhbC5jb2xsYXBzZSB7XG4gICAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC50aW55IHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBtYXgtd2lkdGg6IDY1LjIxNzM5cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwuc21hbGwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1heC13aWR0aDogNjUuMjE3MzlyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC5sYXJnZSB7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgbWF4LXdpZHRoOiA2NS4yMTczOXJlbTsgfSB9XG4gIC5yZXZlYWwuZnVsbCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGJvcmRlcjogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgYm9yZGVyOiAwOyB9IH1cbiAgLnJldmVhbC53aXRob3V0LW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuXG4uc2xpZGUtaW4tZG93bi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLnNsaWRlLWluLWxlZnQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5zbGlkZS1pbi11cC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLnNsaWRlLWluLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG5cbi5mYWRlLWluLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLWluLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS14Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXkubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tYm90dG9tLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tYm90dG9tLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXgubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi11cC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0wLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi1jY3cubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zbG93IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzUwbXMgIWltcG9ydGFudDsgfVxuXG4uZmFzdCB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmxpbmVhciB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dCAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5zaG9ydC1kZWxheSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbi5zaGFrZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZS03OyB9XG5cbkBrZXlmcmFtZXMgc2hha2UtNyB7XG4gIDAlLCAxMCUsIDIwJSwgMzAlLCA0MCUsIDUwJSwgNjAlLCA3MCUsIDgwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNyUpOyB9XG4gIDUlLCAxNSUsIDI1JSwgMzUlLCA0NSUsIDU1JSwgNjUlLCA3NSUsIDg1JSwgOTUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTclKTsgfSB9XG5cbi5zcGluLWN3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47IH1cblxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4uc3Bpbi1jY3cge1xuICBhbmltYXRpb24tbmFtZTogc3Bpbi1jdy0xdHVybjsgfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOyB9IH1cblxuLndpZ2dsZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB3aWdnbGUtN2RlZzsgfVxuXG5Aa2V5ZnJhbWVzIHdpZ2dsZS03ZGVnIHtcbiAgNDAlLCA1MCUsIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoN2RlZyk7IH1cbiAgMzUlLCA0NSUsIDU1JSwgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtN2RlZyk7IH1cbiAgMCUsIDMwJSwgNzAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbi5zaGFrZSxcbi5zcGluLWN3LFxuLnNwaW4tY2N3LFxuLndpZ2dsZSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7IH1cblxuLmluZmluaXRlIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuLnNsb3cge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICBhbmltYXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmxpbmVhciB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50OyB9XG5cbi5lYXNlIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbi1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICBhbmltYXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICBhbmltYXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmJ1dHRvbiwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSwgI21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbixcbiN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uLCAjaG9tZS1xdW90ZSAjaG9tZS12aWRlby1jbG9zZSB7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIzMzMzZjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LWZhbWlseTogXCJtaW5pb24tcHJvXCIsIHNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuYnV0dG9uOmhvdmVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYTpob3ZlciwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhOmhvdmVyLCAjbW9iaWxlLW5hdi1jbG9zZTpob3ZlciwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYTpob3ZlciwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uOmhvdmVyLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbjpob3ZlciwgI2hvbWUtcXVvdGUgI2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZWRmZmY7IH1cbiAgLmJ1dHRvbi5zZWNvbmRhcnksICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEsIC5zZWNvbmRhcnkjbW9iaWxlLW5hdi1jbG9zZSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuc2Vjb25kYXJ5Lmdmb3JtX2J1dHRvbiwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5nZm9ybV9idXR0b24sICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIGEuZ2Zvcm1fYnV0dG9uLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5nZm9ybV9idXR0b24sICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciBhLmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5zZWNvbmRhcnkuZ2Zvcm1fYnV0dG9uLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuZ2Zvcm1fYnV0dG9uLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGRcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIGEuZ2Zvcm1fYnV0dG9uLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhLmdmb3JtX2J1dHRvbiwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgYS5nZm9ybV9idXR0b24sICNob21lLXF1b3RlIC5zZWNvbmRhcnkjaG9tZS12aWRlby1jbG9zZSwgI2hvbWUtcXVvdGUgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEjaG9tZS12aWRlby1jbG9zZSwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkICNob21lLXF1b3RlIGEjaG9tZS12aWRlby1jbG9zZSwgI2hvbWUtcXVvdGUgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhI2hvbWUtdmlkZW8tY2xvc2UsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgI2hvbWUtcXVvdGUgYSNob21lLXZpZGVvLWNsb3NlLCAjaG9tZS1xdW90ZSAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhI2hvbWUtdmlkZW8tY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkICNob21lLXF1b3RlIGEjaG9tZS12aWRlby1jbG9zZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NzgyNzsgfVxuICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYTpob3ZlciwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhOmhvdmVyLCAuc2Vjb25kYXJ5I21vYmlsZS1uYXYtY2xvc2U6aG92ZXIsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGE6aG92ZXIsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLnNlY29uZGFyeS5nZm9ybV9idXR0b246aG92ZXIsXG4gICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5zZWNvbmRhcnkuZ2Zvcm1fYnV0dG9uOmhvdmVyLCAjaG9tZS1xdW90ZSAuc2Vjb25kYXJ5I2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsICNob21lLXF1b3RlICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhI2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCAjaG9tZS1xdW90ZSBhI2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsICNob21lLXF1b3RlICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkICNob21lLXF1b3RlIGEjaG9tZS12aWRlby1jbG9zZTpob3ZlciwgI2hvbWUtcXVvdGUgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCAjaG9tZS1xdW90ZSBhI2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FlNjAxZjsgfVxuICAuYnV0dG9uLmFjY2VudCwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEuYWNjZW50LCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEuYWNjZW50LCAuYWNjZW50I21vYmlsZS1uYXYtY2xvc2UsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEuYWNjZW50LCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCAuZ2Zvcm1fd3JhcHBlciBhLmdmb3JtX2J1dHRvbiwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5nZm9ybV9idXR0b24sXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLmdmb3JtX2J1dHRvbiwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbiwgLmhlcm8gLmhlcm8tY29udGVudCAuYnV0dG9uLCAuaGVybyAuaGVyby1jb250ZW50ICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgLmhlcm8gLmhlcm8tY29udGVudCBhLCAuaGVybyAuaGVyby1jb250ZW50ICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAuaGVybyAuaGVyby1jb250ZW50IGEsIC5oZXJvIC5oZXJvLWNvbnRlbnQgI21vYmlsZS1uYXYtY2xvc2UsIC5oZXJvIC5oZXJvLWNvbnRlbnQgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgLmhlcm8gLmhlcm8tY29udGVudCBhLCAuaGVybyAuaGVyby1jb250ZW50ICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlLCAjaG9tZS1xdW90ZSAuaGVybyAuaGVyby1jb250ZW50ICNob21lLXZpZGVvLWNsb3NlLCAjaG9tZS1xdW90ZSAuYWNjZW50I2hvbWUtdmlkZW8tY2xvc2UsICNob21lLXF1b3RlICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgI2hvbWUtdmlkZW8tY2xvc2UuZ2Zvcm1fYnV0dG9uLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlLmdmb3JtX2J1dHRvbiwgI2hvbWUtcXVvdGVcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyICNob21lLXZpZGVvLWNsb3NlLmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlLmdmb3JtX2J1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVlZGZmZjsgfVxuICAgIC5idXR0b24uYWNjZW50OmhvdmVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYS5hY2NlbnQ6aG92ZXIsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYS5hY2NlbnQ6aG92ZXIsIC5hY2NlbnQjbW9iaWxlLW5hdi1jbG9zZTpob3ZlciwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5hY2NlbnQ6aG92ZXIsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIC5nZm9ybV93cmFwcGVyIGEuZ2Zvcm1fYnV0dG9uOmhvdmVyLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhLmdmb3JtX2J1dHRvbjpob3ZlcixcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYS5nZm9ybV9idXR0b246aG92ZXIsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbjpob3ZlcixcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbjpob3ZlciwgLmhlcm8gLmhlcm8tY29udGVudCAuYnV0dG9uOmhvdmVyLCAuaGVybyAuaGVyby1jb250ZW50ICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhOmhvdmVyLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgLmhlcm8gLmhlcm8tY29udGVudCBhOmhvdmVyLCAuaGVybyAuaGVyby1jb250ZW50ICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYTpob3ZlciwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAuaGVybyAuaGVyby1jb250ZW50IGE6aG92ZXIsIC5oZXJvIC5oZXJvLWNvbnRlbnQgI21vYmlsZS1uYXYtY2xvc2U6aG92ZXIsIC5oZXJvIC5oZXJvLWNvbnRlbnQgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYTpob3ZlciwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgLmhlcm8gLmhlcm8tY29udGVudCBhOmhvdmVyLCAuaGVybyAuaGVyby1jb250ZW50ICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAjaG9tZS1xdW90ZSAuaGVybyAuaGVyby1jb250ZW50ICNob21lLXZpZGVvLWNsb3NlOmhvdmVyLCAjaG9tZS1xdW90ZSAuYWNjZW50I2hvbWUtdmlkZW8tY2xvc2U6aG92ZXIsICNob21lLXF1b3RlICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgI2hvbWUtdmlkZW8tY2xvc2UuZ2Zvcm1fYnV0dG9uOmhvdmVyLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlLmdmb3JtX2J1dHRvbjpob3ZlciwgI2hvbWUtcXVvdGVcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgI2hvbWUtdmlkZW8tY2xvc2UuZ2Zvcm1fYnV0dG9uOmhvdmVyLFxuICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAjaG9tZS1xdW90ZSAjaG9tZS12aWRlby1jbG9zZS5nZm9ybV9idXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJiZDVmZjsgfVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICMyMzMzM2Y7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG5cbi52ZXJ0aWNhbC1wYWQge1xuICBwYWRkaW5nLXRvcDogNHJlbTtcbiAgcGFkZGluZy1ib3R0b206IDRyZW07IH1cblxuLnZlcnRpY2FsLXBhZC10b3Age1xuICBwYWRkaW5nLXRvcDogNHJlbTsgfVxuXG4udmVydGljYWwtcGFkLXNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG5cbi5ib3R0b20tcGFkLXNtYWxsIHtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cblxuLmJvdHRvbS1wYWQtYmlnIHtcbiAgcGFkZGluZy1ib3R0b206IDRyZW07IH1cblxuLnJlYWQtbW9yZSwgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1mYW1pbHk6IFwia2VwbGVyLXN0ZC1kaXNwbGF5XCIsc2VyaWY7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMjMzMzNmOyB9XG4gIC5yZWFkLW1vcmUgLmljb24sICNjb21tZW50cyAuY29tbWVudC1saXN0IC5jb21tZW50LXJlcGx5LWxpbmsgLmljb24ge1xuICAgIGNvbG9yOiAjNWVkZmZmO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDFweDsgfVxuXG4jcG9zdC1wYWdpbmF0aW9uIC50ZXh0LXJpZ2h0IC5yZWFkLW1vcmUsICNwb3N0LXBhZ2luYXRpb24gLnRleHQtcmlnaHQgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluaywgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgI3Bvc3QtcGFnaW5hdGlvbiAudGV4dC1yaWdodCAuY29tbWVudC1yZXBseS1saW5rIHtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24ge1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBmb250LXNpemU6IDAuOHJlbTsgfVxuXG4vKiA9V29yZFByZXNzIENvcmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYWxpZ25ub25lIHtcbiAgbWFyZ2luOiA1cHggMjBweCAyMHB4IDA7IH1cblxuLmFsaWduY2VudGVyLFxuZGl2LmFsaWduY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogNXB4IGF1dG8gNXB4IGF1dG87IH1cblxuLmFsaWducmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogNXB4IDAgMjBweCAyMHB4OyB9XG5cbi5hbGlnbmxlZnQge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiA1cHggMjBweCAyMHB4IDA7IH1cblxuYSBpbWcuYWxpZ25yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiA1cHggMCAyMHB4IDIwcHg7IH1cblxuYSBpbWcuYWxpZ25ub25lIHtcbiAgbWFyZ2luOiA1cHggMjBweCAyMHB4IDA7IH1cblxuYSBpbWcuYWxpZ25sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogNXB4IDIwcHggMjBweCAwOyB9XG5cbmEgaW1nLmFsaWduY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLndwLWNhcHRpb24ge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjBmMGYwO1xuICBtYXgtd2lkdGg6IDk2JTtcbiAgLyogSW1hZ2UgZG9lcyBub3Qgb3ZlcmZsb3cgdGhlIGNvbnRlbnQgYXJlYSAqL1xuICBwYWRkaW5nOiA1cHggM3B4IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ud3AtY2FwdGlvbi5hbGlnbm5vbmUge1xuICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDsgfVxuXG4ud3AtY2FwdGlvbi5hbGlnbmxlZnQge1xuICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDsgfVxuXG4ud3AtY2FwdGlvbi5hbGlnbnJpZ2h0IHtcbiAgbWFyZ2luOiA1cHggMCAyMHB4IDIwcHg7IH1cblxuLndwLWNhcHRpb24gaW1nIHtcbiAgYm9yZGVyOiAwIG5vbmU7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBtYXgtd2lkdGg6IDk4LjUlO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogYXV0bzsgfVxuXG4ud3AtY2FwdGlvbiBwLndwLWNhcHRpb24tdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCA0cHggNXB4OyB9XG5cbi8qIFRleHQgbWVhbnQgb25seSBmb3Igc2NyZWVuIHJlYWRlcnMuICovXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE3NTliO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1cHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRvcDogNXB4O1xuICB3aWR0aDogYXV0bztcbiAgei1pbmRleDogMTAwMDAwO1xuICAvKiBBYm92ZSBXUCB0b29sYmFyLiAqLyB9XG5cbi53b3cge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLCAjbW9iaWxlLW5hdiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xuICBhbmltYXRpb24tbmFtZTogY3VzdG9tLTE7IH1cblxuQGtleWZyYW1lcyBjdXN0b20tMSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAlKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLndoaXRlLWdyYXksICNkb25hdGlvbiwgI3N0b3JpZXMtcGFnZSB7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZlZmVmZSAwJSwgI2E5YjhiNyAxMDAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZlZmVmZSAwJSwgI2E5YjhiNyAxMDAlKTsgfVxuXG4ud2hpdGUtZ3JheS1saWdodCwgI2RvbmF0ZS1wYWdlIHtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmVmZWZlIDAlLCAjZTllZGVkIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmVmZWZlIDAlLCAjZTllZGVkIDEwMCUpOyB9XG5cbi5saWdodC1ibHVlLWdyZWVuLCAjaG9tZS1xdW90ZTphZnRlciB7XG4gIGJhY2tncm91bmQ6ICMwMGIzZTM7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICMwMGIzZTMgMCUsICMzZWIwNDkgMTAwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwYjNlMyAwJSwgIzNlYjA0OSAxMDAlKTsgfVxuXG4uc2xpY2stc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnNsaWNrLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnNsaWNrLWxpc3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLnNsaWNrLWxpc3QuZHJhZ2dpbmcge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjdXJzb3I6IGhhbmQ7IH1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cbi5zbGljay10cmFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAuc2xpY2stdHJhY2s6YmVmb3JlLCAuc2xpY2stdHJhY2s6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2sge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpY2stc2xpZGUge1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNsaWNrLXNsaWRlLmRyYWdnaW5nIGltZyB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zbGljay1wcmV2LFxuLnNsaWNrLW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMHB4O1xuICBmb250LXNpemU6IDBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTEwcHhcXDk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgei1pbmRleDogMTsgfVxuICAuc2xpY2stcHJldjpob3ZlciwgLnNsaWNrLXByZXY6Zm9jdXMsXG4gIC5zbGljay1uZXh0OmhvdmVyLFxuICAuc2xpY2stbmV4dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuc2xpY2stcHJldjpob3ZlcjpiZWZvcmUsIC5zbGljay1wcmV2OmZvY3VzOmJlZm9yZSxcbiAgICAuc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUsXG4gICAgLnNsaWNrLW5leHQ6Zm9jdXM6YmVmb3JlIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLnNsaWNrLXByZXYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlLFxuICAuc2xpY2stbmV4dC5zbGljay1kaXNhYmxlZDpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMjU7IH1cblxuLnNsaWNrLXByZXY6YmVmb3JlLCAuc2xpY2stbmV4dDpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJpY29tb29uXCI7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBibGFjaztcbiAgb3BhY2l0eTogMC43NTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuLnNsaWNrLXByZXYge1xuICBsZWZ0OiAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7IH1cbiAgLnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIu6kgFwiOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stcHJldjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLupIBcIjsgfVxuXG4uc2xpY2stbmV4dCB7XG4gIHJpZ2h0OiAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLW5leHQge1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IGF1dG87IH1cbiAgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIu6kgFwiOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stbmV4dDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLupIBcIjsgfVxuXG4uc2xpY2stc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4uc2xpY2stZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtNDVweDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNsaWNrLWRvdHMgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIG1hcmdpbjogMCA1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuc2xpY2stZG90cyBsaSBidXR0b24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgICBmb250LXNpemU6IDBweDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLCAuc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lOyB9XG4gICAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3ZlcjpiZWZvcmUsIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogXCLupIBcIjtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiaWNvbW9vblwiO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cbiAgICAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBvcGFjaXR5OiAwLjc1OyB9XG5cbmJvZHkge1xuICBwYWRkaW5nLXRvcDogNjBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgYm9keSB7XG4gICAgICBwYWRkaW5nLXRvcDogODVweDsgfSB9XG5cbiNoZWFkZXIge1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgbGluZWFyO1xuICBoZWlnaHQ6IDYwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTQsIDI1NCwgMjU0LCAwLjkpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuMiksIDAgNnB4IDEwcHggMCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuMTQpLCAwIDFweCAxOHB4IDAgcmdiYSgxNTMsIDE1MywgMTUzLCAwLjEyKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgI2hlYWRlciB7XG4gICAgICBoZWlnaHQ6IDg1cHg7IH0gfVxuICAjaGVhZGVyIGgxLCAjaGVhZGVyIGgyIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgbGluZWFyO1xuICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICNoZWFkZXIgaDEsICNoZWFkZXIgaDIge1xuICAgICAgICBsaW5lLWhlaWdodDogODVweDsgfSB9XG4gICNoZWFkZXIgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tdG9wOiAxLjFyZW07XG4gICAgdHJhbnNpdGlvbjogbWFyZ2luLXRvcCAyMDBtcyBsaW5lYXI7XG4gICAgcGFkZGluZzogMCAycmVtIDAgMDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICNoZWFkZXIgdWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgI2hlYWRlciB1bCBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgICNoZWFkZXIgdWwgbGkgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMCAwLjlyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICBmb250LWZhbWlseTogXCJtaW5pb24tcHJvXCIsIHNlcmlmO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgICAgICNoZWFkZXIgdWwgbGkuY3VycmVudC1tZW51LWl0ZW06bm90KDpsYXN0LWNoaWxkKSBhLFxuICAgICAgI2hlYWRlciB1bCBsaTpub3QoOmxhc3QtY2hpbGQpIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogI2Q5NzgyNzsgfVxuICAgICAgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cbiAgI2hlYWRlciAjbW9iaWxlLW5hdi10cmlnZ2VyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogNjBweDtcbiAgICB3aWR0aDogMi4xNzM5MXJlbTtcbiAgICBtYXJnaW46IDAgMnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAjaGVhZGVyICNtb2JpbGUtbmF2LXRyaWdnZXIge1xuICAgICAgICBoZWlnaHQ6IDg1cHg7IH0gfVxuICAgICNoZWFkZXIgI21vYmlsZS1uYXYtdHJpZ2dlciBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGhlaWdodDogNHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMzUxOEI7XG4gICAgICBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gICAgICAjaGVhZGVyICNtb2JpbGUtbmF2LXRyaWdnZXIgc3BhbjpudGgtY2hpbGQoMSkge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpOyB9XG4gICAgICAjaGVhZGVyICNtb2JpbGUtbmF2LXRyaWdnZXIgc3BhbjpudGgtY2hpbGQoMikge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgICAgICNoZWFkZXIgI21vYmlsZS1uYXYtdHJpZ2dlciBzcGFuOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnB4KTsgfVxuICAgICNoZWFkZXIgI21vYmlsZS1uYXYtdHJpZ2dlcjpob3ZlciBzcGFuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMzMzM2Y7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAjaGVhZGVyICNtb2JpbGUtbmF2LXRyaWdnZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuI2xvZ28ge1xuICBoZWlnaHQ6IDYwcHg7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgbGluZWFyOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAjbG9nbyB7XG4gICAgICBsaW5lLWhlaWdodDogODVweDsgfSB9XG4gICNsb2dvIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgd2lkdGg6IDMuN3JlbTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgbGluZWFyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMCAwIDAgMnJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICNsb2dvIGEge1xuICAgICAgICBoZWlnaHQ6IDg1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA4NXB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICAjbG9nbyBhOmhvdmVyIHtcbiAgICAgIHdpZHRoOiAxMHJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICNsb2dvIGEge1xuICAgICAgICB3aWR0aDogMTZyZW07IH1cbiAgICAgICAgI2xvZ28gYTpob3ZlciB7XG4gICAgICAgICAgd2lkdGg6IDE2cmVtOyB9IH1cbiAgICAjbG9nbyBhIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB3aWR0aDogOHJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgbGluZWFyOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAgICNsb2dvIGEgc3ZnIHtcbiAgICAgICAgICB3aWR0aDogMTNyZW07XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG5cbiNtb2JpbGUtbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTAwOyB9XG4gICNtb2JpbGUtbmF2LmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAjbW9iaWxlLW5hdiB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDsgfVxuICAgICNtb2JpbGUtbmF2IHVsIGxpIGEge1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICBmb250LWZhbWlseTogXCJtaW5pb24tcHJvXCIsIHNlcmlmO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMCAwIDFyZW07IH1cblxuI21vYmlsZS1uYXYtY2xvc2Uge1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLmhlYWRyb29tIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGxpbmVhcjsgfVxuXG4uaGVhZHJvb20tLXRvcCAjbG9nbyBhIHtcbiAgd2lkdGg6IDEwcmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAuaGVhZHJvb20tLXRvcCAjbG9nbyBhIHtcbiAgICAgIHdpZHRoOiBpbmhlcml0OyB9IH1cblxuLmhlYWRyb29tLS1waW5uZWQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpOyB9XG5cbiNoZWFkZXIuaGVhZHJvb20tLXVucGlubmVkIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgI2hlYWRlci5oZWFkcm9vbS0tdW5waW5uZWQge1xuICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgxNTMsIDE1MywgMTUzLCAwLjIpLCAwIDZweCAxMHB4IDAgcmdiYSgxNTMsIDE1MywgMTUzLCAwLjE0KSwgMCAxcHggMThweCAwIHJnYmEoMTUzLCAxNTMsIDE1MywgMC4xMik7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgI2hlYWRlci5oZWFkcm9vbS0tdW5waW5uZWQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgaGVpZ2h0OiA2MHB4OyB9XG4gICAgICAjaGVhZGVyLmhlYWRyb29tLS11bnBpbm5lZCBoMSwgI2hlYWRlci5oZWFkcm9vbS0tdW5waW5uZWQgaDIge1xuICAgICAgICBsaW5lLWhlaWdodDogNjBweDsgfVxuICAgICAgI2hlYWRlci5oZWFkcm9vbS0tdW5waW5uZWQgI2xvZ28ge1xuICAgICAgICBoZWlnaHQ6IDYwcHg7IH1cbiAgICAgICAgI2hlYWRlci5oZWFkcm9vbS0tdW5waW5uZWQgI2xvZ28gYSB7XG4gICAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4OyB9XG4gICAgICAgICAgI2hlYWRlci5oZWFkcm9vbS0tdW5waW5uZWQgI2xvZ28gYSBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDhyZW07IH1cbiAgICAgICNoZWFkZXIuaGVhZHJvb20tLXVucGlubmVkIHVsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC40cmVtOyB9IH1cblxuLmV2ZW50LWNvbnRhaW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxOXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjMjMzMzNmO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOyB9XG4gIC5ldmVudC1jb250YWluIGgxLCAuZXZlbnQtY29udGFpbiBoMiwgLmV2ZW50LWNvbnRhaW4gaDMsIC5ldmVudC1jb250YWluIGg0LCAuZXZlbnQtY29udGFpbiBoNSwgLmV2ZW50LWNvbnRhaW4gaDYsIC5ldmVudC1jb250YWluIHAsIC5ldmVudC1jb250YWluIHNtYWxsLCAuZXZlbnQtY29udGFpbiBkaXYge1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5ldmVudC1jb250YWluIC5ldmVudC1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM1LCA1MSwgNjMsIDAuOCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTlyZW07XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0OyB9XG4gICAgLmV2ZW50LWNvbnRhaW4gLmV2ZW50LWluZm8gLmV2ZW50LWluZm8tdG9wIHtcbiAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICBoZWlnaHQ6IDdyZW07IH1cbiAgICAgIC5ldmVudC1jb250YWluIC5ldmVudC1pbmZvIC5ldmVudC1pbmZvLXRvcCBoNCwgLmV2ZW50LWNvbnRhaW4gLmV2ZW50LWluZm8gLmV2ZW50LWluZm8tdG9wIGg1IHtcbiAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmV2ZW50LWNvbnRhaW4gLmV2ZW50LWluZm8gLmV2ZW50LWluZm8tbWlkZGxlIHtcbiAgICAgIHBhZGRpbmc6IDAgMnJlbSAxcmVtOyB9XG4gICAgICAuZXZlbnQtY29udGFpbiAuZXZlbnQtaW5mbyAuZXZlbnQtaW5mby1taWRkbGUgcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiA2cmVtO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5ldmVudC1jb250YWluIC5ldmVudC1pbmZvIC5ldmVudC1pbmZvLWJvdHRvbSB7XG4gICAgICBwYWRkaW5nOiAwIDJyZW0gMnJlbTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGhlaWdodDogNHJlbTsgfVxuICAgICAgLmV2ZW50LWNvbnRhaW4gLmV2ZW50LWluZm8gLmV2ZW50LWluZm8tYm90dG9tIGRpdiwgLmV2ZW50LWNvbnRhaW4gLmV2ZW50LWluZm8gLmV2ZW50LWluZm8tYm90dG9tIHNtYWxsIHtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZXZlbnQtY29udGFpbiAuZXZlbnQtaW5mbyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJyZW0pOyB9XG4gICAgLmV2ZW50LWNvbnRhaW46aG92ZXIgLmV2ZW50LWluZm8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICNoaWdobGlnaHQge1xuICAgIGhlaWdodDogYXV0bzsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgI2hpZ2hsaWdodCB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9IH1cblxuI2hpZ2hsaWdodCAuZXZlbnQtaW5mbyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAjaGlnaGxpZ2h0IC5ldmVudC1pbmZvIHAge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICNoaWdobGlnaHQgLmV2ZW50LWluZm8gLmV2ZW50LWluZm8tdG9wIHtcbiAgICBoZWlnaHQ6IDUuNXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAjaGlnaGxpZ2h0IC5ldmVudC1pbmZvIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAjaGlnaGxpZ2h0IC5ldmVudC1pbmZvIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfSB9XG4gICNoaWdobGlnaHQgLmV2ZW50LWluZm8gI2hpZ2hsaWdodC1pbWFnZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAjaGlnaGxpZ2h0IC5ldmVudC1pbmZvIC5yZWFkLW1vcmUsICNoaWdobGlnaHQgLmV2ZW50LWluZm8gI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluaywgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgI2hpZ2hsaWdodCAuZXZlbnQtaW5mbyAuY29tbWVudC1yZXBseS1saW5rIHtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAjaGlnaGxpZ2h0IC5ldmVudC1pbmZvIC5ldmVudC1pbmZvLW1pZGRsZSA+IC5yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiBpbmhlcml0O1xuICAgIG1hcmdpbi1yaWdodDogaW5oZXJpdDsgfVxuXG4uZ2ktc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmdpLXNlY3Rpb24gcCwgLmdpLXNlY3Rpb24gdWwsIC5naS1zZWN0aW9uIG9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjhyZW07IH1cblxuI2xvY2FsLXN0b3JpZXMgLnJvdyAucm93IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDsgfVxuXG4ubG9jYWwtc3RvcnktYmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMTByZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDsgfVxuXG4ubG9jYWwtc3Rvcnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIGJhY2tncm91bmQ6ICMyMzMzM2Y7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sb2NhbC1zdG9yeTphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5sb2NhbC1zdG9yeTphZnRlciB7XG4gICAgICAgIHRvcDogLTIwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAgICAgbGVmdDogNTAlOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAubG9jYWwtc3Rvcnk6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmxvY2FsLXN0b3J5IGgxLCAubG9jYWwtc3RvcnkgaDIsIC5sb2NhbC1zdG9yeSBoMywgLmxvY2FsLXN0b3J5IGg0LCAubG9jYWwtc3RvcnkgaDUsIC5sb2NhbC1zdG9yeSBoNiwgLmxvY2FsLXN0b3J5IHAsIC5sb2NhbC1zdG9yeSBzbWFsbCwgLmxvY2FsLXN0b3J5IGRpdiB7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmxvY2FsLXN0b3J5IC5sb2NhbC1zdG9yeS10b3Age1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgaGVpZ2h0OiAzLjVyZW07IH1cbiAgICAubG9jYWwtc3RvcnkgLmxvY2FsLXN0b3J5LXRvcCBoNCB7XG4gICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5sb2NhbC1zdG9yeSAubG9jYWwtc3RvcnktbWlkZGxlIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMXJlbTtcbiAgICBoZWlnaHQ6IDdyZW07IH1cbiAgICAubG9jYWwtc3RvcnkgLmxvY2FsLXN0b3J5LW1pZGRsZSBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBoZWlnaHQ6IDZyZW07XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmxvY2FsLXN0b3J5IC5sb2NhbC1zdG9yeS1ib3R0b20ge1xuICAgIHBhZGRpbmc6IDAgMXJlbSAxcmVtO1xuICAgIGhlaWdodDogMnJlbTsgfVxuICAgIC5sb2NhbC1zdG9yeSAubG9jYWwtc3RvcnktYm90dG9tIGEge1xuICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmxvY2FsLXN0b3J5LXdyYXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLWluLW91dDsgfVxuICAubG9jYWwtc3Rvcnktd3JhcDpob3ZlciB7XG4gICAgb3BhY2l0eTogMC44OyB9XG4gIC5sb2NhbC1zdG9yeS13cmFwOm50aC1jaGlsZCg2biArIDEpIC5sb2NhbC1zdG9yeSB7XG4gICAgYmFja2dyb3VuZDogIzIzMzMzZjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDZuICsgMSkgLmxvY2FsLXN0b3J5OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXI6IGluc2V0IDIwcHg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzIzMzMzZjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7IH0gfVxuICAubG9jYWwtc3Rvcnktd3JhcDpudGgtY2hpbGQoNm4gKyAyKSAubG9jYWwtc3Rvcnkge1xuICAgIGJhY2tncm91bmQ6ICMwMmFmYjA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5sb2NhbC1zdG9yeS13cmFwOm50aC1jaGlsZCg2biArIDIpIC5sb2NhbC1zdG9yeTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyOiBpbnNldCAyMHB4O1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMmFmYjA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwOyB9IH1cbiAgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDZuICsgMykgLmxvY2FsLXN0b3J5IHtcbiAgICBiYWNrZ3JvdW5kOiAjYWZiZmJlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAubG9jYWwtc3Rvcnktd3JhcDpudGgtY2hpbGQoNm4gKyAzKSAubG9jYWwtc3Rvcnk6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlcjogaW5zZXQgMjBweDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjYWZiZmJlO1xuICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDsgfSB9XG4gIC5sb2NhbC1zdG9yeS13cmFwOm50aC1jaGlsZCg2biArIDQpIC5sb2NhbC1zdG9yeSB7XG4gICAgYmFja2dyb3VuZDogI2ZjODU1NjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDZuICsgNCkgLmxvY2FsLXN0b3J5OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXI6IGluc2V0IDIwcHg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZjODU1NjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7IH0gfVxuICAubG9jYWwtc3Rvcnktd3JhcDpudGgtY2hpbGQoNm4gKyA1KSAubG9jYWwtc3Rvcnkge1xuICAgIGJhY2tncm91bmQ6ICM0NWE3YmY7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5sb2NhbC1zdG9yeS13cmFwOm50aC1jaGlsZCg2biArIDUpIC5sb2NhbC1zdG9yeTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyOiBpbnNldCAyMHB4O1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0NWE3YmY7XG4gICAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwOyB9IH1cbiAgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDZuICsgNikgLmxvY2FsLXN0b3J5IHtcbiAgICBiYWNrZ3JvdW5kOiAjODA2YzhmOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAubG9jYWwtc3Rvcnktd3JhcDpudGgtY2hpbGQoNm4gKyA2KSAubG9jYWwtc3Rvcnk6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlcjogaW5zZXQgMjBweDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjODA2YzhmO1xuICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubG9jYWwtc3Rvcnktd3JhcDpudGgtY2hpbGQoNG4gKyAxKSAubG9jYWwtc3Rvcnk6YWZ0ZXIsIC5sb2NhbC1zdG9yeS13cmFwOm50aC1jaGlsZCg0biArIDIpIC5sb2NhbC1zdG9yeTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXI6IGluc2V0IDIwcHg7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHBpbmsgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBsZWZ0OiAtMjBweDsgfVxuICAgIC5sb2NhbC1zdG9yeS13cmFwOm50aC1jaGlsZCg0biArIDMpIC5sb2NhbC1zdG9yeTphZnRlciwgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDRuICsgNCkgLmxvY2FsLXN0b3J5OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGJvcmRlcjogaW5zZXQgMjBweDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgcGluaztcbiAgICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTIwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICByaWdodDogLTIwcHg7XG4gICAgICBsZWZ0OiBhdXRvOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDEybiArIDEpIC5sb2NhbC1zdG9yeTphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMjMzMzNmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubG9jYWwtc3Rvcnktd3JhcDpudGgtY2hpbGQoMTJuICsgMikgLmxvY2FsLXN0b3J5OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMmFmYjAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sb2NhbC1zdG9yeS13cmFwOm50aC1jaGlsZCgxMm4gKyAzKSAubG9jYWwtc3Rvcnk6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2FmYmZiZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDEybiArIDQpIC5sb2NhbC1zdG9yeTphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmM4NTU2ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubG9jYWwtc3Rvcnktd3JhcDpudGgtY2hpbGQoMTJuICsgNSkgLmxvY2FsLXN0b3J5OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM0NWE3YmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sb2NhbC1zdG9yeS13cmFwOm50aC1jaGlsZCgxMm4gKyA2KSAubG9jYWwtc3Rvcnk6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzgwNmM4ZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDEybiArIDcpIC5sb2NhbC1zdG9yeTphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMjMzMzNmICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubG9jYWwtc3Rvcnktd3JhcDpudGgtY2hpbGQoMTJuICsgOCkgLmxvY2FsLXN0b3J5OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMmFmYjAgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sb2NhbC1zdG9yeS13cmFwOm50aC1jaGlsZCgxMm4gKyA5KSAubG9jYWwtc3Rvcnk6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2FmYmZiZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDEybiArIDEwKSAubG9jYWwtc3Rvcnk6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZjODU1NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDEybiArIDExKSAubG9jYWwtc3Rvcnk6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQ1YTdiZiAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxvY2FsLXN0b3J5LXdyYXA6bnRoLWNoaWxkKDEybiArIDEyKSAubG9jYWwtc3Rvcnk6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzgwNmM4ZiAhaW1wb3J0YW50OyB9IH1cblxuLmdpLWNvbnRhaW4ge1xuICBoZWlnaHQ6IGF1dG87IH1cbiAgLmdpLWNvbnRhaW4gLmV2ZW50LWluZm8ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgICAuZ2ktY29udGFpbiAuZXZlbnQtaW5mbyAuZXZlbnQtaW5mby10b3Age1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgICAgIC5naS1jb250YWluIC5ldmVudC1pbmZvIC5ldmVudC1pbmZvLXRvcCBoNCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cbiAgICAuZ2ktY29udGFpbiAuZXZlbnQtaW5mbyAuZXZlbnQtaW5mby1taWRkbGUge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTsgfVxuICAgICAgLmdpLWNvbnRhaW4gLmV2ZW50LWluZm8gLmV2ZW50LWluZm8tbWlkZGxlIHAge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gICAgLmdpLWNvbnRhaW4gLmV2ZW50LWluZm8gLnJlYWQtbW9yZSwgLmdpLWNvbnRhaW4gLmV2ZW50LWluZm8gI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluaywgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmdpLWNvbnRhaW4gLmV2ZW50LWluZm8gLmNvbW1lbnQtcmVwbHktbGluayB7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4jZm9vdGVyLWxvZ28ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyLjVyZW07XG4gIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zIGVhc2UtaW4tb3V0O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAjZm9vdGVyLWxvZ28ge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9IH1cbiAgI2Zvb3Rlci1sb2dvIHN2ZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgd2lkdGg6IDExLjRyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAjZm9vdGVyLWxvZ28gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDlyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICNmb290ZXItbG9nbyBzdmcge1xuICAgICAgICB3aWR0aDogMTEuNHJlbTsgfSB9XG4gICAgI2Zvb3Rlci1sb2dvIHN2ZyAuc3QwIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG5cbiNmb290ZXItdGVzdGltb25pYWwge1xuICBiYWNrZ3JvdW5kOiAjYTliOGI3O1xuICBjb2xvcjogIzIzMzMzZjtcbiAgcGFkZGluZzogMS41cmVtIDA7IH1cbiAgI2Zvb3Rlci10ZXN0aW1vbmlhbCBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB3aWR0aDogMy4yNjA4N3JlbTsgfVxuICAjZm9vdGVyLXRlc3RpbW9uaWFsIHAge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAjZm9vdGVyLXRlc3RpbW9uaWFsIHAgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIm1pbmlvbi1wcm9cIiwgc2VyaWY7XG4gICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4jZm9vdGVyLWN0YSB7XG4gIGJhY2tncm91bmQ6ICNhOWI4Yjc7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBwYWRkaW5nOiAxcmVtIDA7IH1cbiAgI2Zvb3Rlci1jdGEgaDQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luOiAwLjVyZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAjZm9vdGVyLWN0YSAuYnV0dG9uLCAjZm9vdGVyLWN0YSAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYSwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkICNmb290ZXItY3RhIGEsICNmb290ZXItY3RhICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAjZm9vdGVyLWN0YSBhLCAjZm9vdGVyLWN0YSAjbW9iaWxlLW5hdi1jbG9zZSwgI2Zvb3Rlci1jdGEgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgI2Zvb3Rlci1jdGEgYSwgI2Zvb3Rlci1jdGEgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyICNmb290ZXItY3RhIC5nZm9ybV9idXR0b24sICNmb290ZXItY3RhXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgI2Zvb3Rlci1jdGEgLmdmb3JtX2J1dHRvbiwgI2Zvb3Rlci1jdGEgI2hvbWUtcXVvdGUgI2hvbWUtdmlkZW8tY2xvc2UsICNob21lLXF1b3RlICNmb290ZXItY3RhICNob21lLXZpZGVvLWNsb3NlIHtcbiAgICBtYXJnaW46IDAuNXJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuI2Zvb3RlciB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBiYWNrZ3JvdW5kOiAjMjMzMzNmOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICNmb290ZXIge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgI2Zvb3RlciAjZm9vdGVyLW1lbnVzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgI2Zvb3RlciAjZm9vdGVyLW1lbnVzIGEge1xuICAgICAgZm9udC1mYW1pbHk6IFwibWluaW9uLXByb1wiLCBzZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgICAjZm9vdGVyICNmb290ZXItbWVudXMgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjNWVkZmZmOyB9XG4gICNmb290ZXIgLmZvb3Rlci1tZW51LWJhY2sge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuICAjZm9vdGVyIGEge1xuICAgIGNvbG9yOiAjMzMzMzMzOyB9XG4gICAgI2Zvb3RlciBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMzczYzk3OyB9XG4gICNmb290ZXIgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7IH1cbiAgI2Zvb3RlciB1bDpub3QoLnN1Yi1tZW51KSA+IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgICAjZm9vdGVyIHVsOm5vdCguc3ViLW1lbnUpID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgI2Zvb3RlciB1bDpub3QoLnN1Yi1tZW51KSA+IGxpID4gYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgcGFkZGluZy10b3A6IDAuNGVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjRlbTsgfVxuICAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiAxLjFyZW07IH1cbiAgICAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlICFpbXBvcnRhbnQ7IH1cbiAgI2Zvb3RlciAuc3ViLW1lbnUge1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgI2Zvb3RlciAuc3ViLW1lbnUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAjZm9vdGVyIC5zdWItbWVudSBsaSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07IH1cbiAgICAgICNmb290ZXIgLnN1Yi1tZW51IGxpIGEge1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07IH1cbiAgI2Zvb3RlciBoNCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAjZm9vdGVyIC5waG9uZS1saW5rLFxuICAjZm9vdGVyIC5lbWFpbC1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgICNmb290ZXIgLnBob25lLWxpbms6aG92ZXIsXG4gICAgI2Zvb3RlciAuZW1haWwtbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzM3M2M5NzsgfVxuICAjZm9vdGVyICNmb290ZXItc29jaWFsIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAjZm9vdGVyICNmb290ZXItc29jaWFsIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgICAgI2Zvb3RlciAjZm9vdGVyLXNvY2lhbCBsaSBhIHtcbiAgICAgICAgY29sb3I6ICM1ZWRmZmY7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXJnaW46IDAuMjVyZW07IH1cbiAgICAgICAgI2Zvb3RlciAjZm9vdGVyLXNvY2lhbCBsaSBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogIzJiZDVmZjsgfVxuICAgICAgICAjZm9vdGVyICNmb290ZXItc29jaWFsIGxpIGEgc3BhbiB7XG4gICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgI2Zvb3RlciAjZGlzY2xhaW1lciB7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgY29sb3I6ICMzNjRlNjA7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgI2Zvb3RlciAjZGlzY2xhaW1lciBhIHtcbiAgICAgIGNvbG9yOiAjMzY0ZTYwOyB9XG4gICAgI2Zvb3RlciAjZGlzY2xhaW1lciBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjNWVkZmZmOyB9XG5cbiNmb290ZXIgLmdmb3JtX3dyYXBwZXIsXG4jdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYm9keSxcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9ib2R5IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDYyJTsgfVxuICAgICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2JvZHkgbGksXG4gICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9ib2R5IGxpIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYm9keSBsaSBsYWJlbCxcbiAgICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYm9keSBsaSBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2JvZHkgbGkgLmdpbnB1dF9jb250YWluZXIsXG4gICAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2JvZHkgbGkgLmdpbnB1dF9jb250YWluZXIge1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYm9keSBsaSAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dCxcbiAgICAgICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9ib2R5IGxpIC5naW5wdXRfY29udGFpbmVyIGlucHV0IHtcbiAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAyLjg0N3JlbTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMC44cmVtIDAuNnJlbTtcbiAgICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9mb290ZXIsXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDM4JTsgfVxuICAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9idXR0b24sXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uIHtcbiAgICBwYWRkaW5nLXRvcDogMC44ZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuOGVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbjogMDsgfVxuXG4jdHdpdHRlci1mZWVkIC50d2VldC13cmFwIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuXG4jdHdpdHRlci1mZWVkIC50aGUtdHdlZXQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbiN0d2l0dGVyLWZlZWQgLnRoZS10d2VldC1kYXRlIHtcbiAgY29sb3I6ICNhOWI4Yjc7XG4gIGZvbnQtc2l6ZTogMC44cmVtOyB9XG5cbiN0d2l0dGVyLWZlZWQtbGluayB7XG4gIGNvbG9yOiAjNWVkZmZmO1xuICBmb250LXNpemU6IDJyZW07IH1cblxuLnBsYXllci12aWRlbyB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBsYXllci1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0Mzc0MTtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW07IH1cbiAgLnBsYXllci1jb250ZW50IGg0IHtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLnBsYXllci1jb250ZW50IHAge1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgIC5wbGF5ZXItY29udGVudCBwIHtcbiAgICAgICAgaGVpZ2h0OiA0LjVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wbGF5ZXItY29udGVudCBwIHtcbiAgICAgICAgaGVpZ2h0OiA2cmVtOyB9IH1cblxuLmdyYXBoaWNzLWhlbHAgLnJlYWQtbW9yZSwgLmdyYXBoaWNzLWhlbHAgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluaywgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmdyYXBoaWNzLWhlbHAgLmNvbW1lbnQtcmVwbHktbGluayB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyYXBoaWNzLWhlbHAgLnJlYWQtbW9yZSwgLmdyYXBoaWNzLWhlbHAgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluaywgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmdyYXBoaWNzLWhlbHAgLmNvbW1lbnQtcmVwbHktbGluayB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9IH1cblxuLmluc3RhZ3JhbS1wcmV2aWV3IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cblxuLmZhY2Vib29rLXByZXZpZXcge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDM3JTtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG5cbi5tZWRpYS1wcmV2aWV3IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAubWVkaWEtcHJldmlldyAuZG93bmxvYWQtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAubWVkaWEtcHJldmlldyAuZG93bmxvYWQtYnV0dG9uIHNwYW4ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICByaWdodDogMC41cmVtO1xuICAgICAgZm9udC1zaXplOiAycmVtOyB9XG4gIC5tZWRpYS1wcmV2aWV3OmhvdmVyIC5kb3dubG9hZC1idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzUsIDUxLCA2MywgMC44KTsgfVxuXG4jbWVkaWEtbW9kYWwge1xuICBtYXgtd2lkdGg6IDQ1cmVtOyB9XG5cbiNtZWRpYS1tb2RhbC1pbWFnZSB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cblxuLm1vZGFsLW1hcmsge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubW9kYWwtbWFyayBzdmcge1xuICAgIHdpZHRoOiAyLjE3MzkxcmVtO1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG4uaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMDtcbiAgcGFkZGluZzogNHJlbSAwO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuaGVybzphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyNywgMTI0LCA5OCwgMC41KTsgfVxuICAuaGVybyAuaGVyby12aWQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogLTE7IH1cbiAgLmhlcm8gLmhlcm8tY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDM7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC5oZXJvIC5oZXJvLWNvbnRlbnQgaDIsIC5oZXJvIC5oZXJvLWNvbnRlbnQgaDEge1xuICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICBtYXJnaW46IDJyZW0gMDtcbiAgICAgIGZvbnQtc2l6ZTogMS40MTMwNHJlbTsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAuaGVybyAuaGVyby1jb250ZW50IGgyLCAuaGVybyAuaGVyby1jb250ZW50IGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDIuMzkxM3JlbTsgfSB9XG4gICAgICAuaGVybyAuaGVyby1jb250ZW50IGgyIHNtYWxsLCAuaGVybyAuaGVyby1jb250ZW50IGgxIHNtYWxsIHtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDNyZW07IH1cbiAgICAuaGVybyAuaGVyby1jb250ZW50IHAge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDQwLjIxNzM5cmVtOyB9XG4gICAgLmhlcm8gLmhlcm8tY29udGVudCAuYnV0dG9uLCAuaGVybyAuaGVyby1jb250ZW50ICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgLmhlcm8gLmhlcm8tY29udGVudCBhLCAuaGVybyAuaGVyby1jb250ZW50ICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAuaGVybyAuaGVyby1jb250ZW50IGEsIC5oZXJvIC5oZXJvLWNvbnRlbnQgI21vYmlsZS1uYXYtY2xvc2UsIC5oZXJvIC5oZXJvLWNvbnRlbnQgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgLmhlcm8gLmhlcm8tY29udGVudCBhLCAuaGVybyAuaGVyby1jb250ZW50ICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbiwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuaGVybyAuaGVyby1jb250ZW50IC5nZm9ybV9idXR0b24sIC5oZXJvIC5oZXJvLWNvbnRlbnRcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbixcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmhlcm8gLmhlcm8tY29udGVudCAuZ2Zvcm1fYnV0dG9uLCAuaGVybyAuaGVyby1jb250ZW50ICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlLCAjaG9tZS1xdW90ZSAuaGVybyAuaGVyby1jb250ZW50ICNob21lLXZpZGVvLWNsb3NlIHtcbiAgICAgIG1hcmdpbjogMCAxcmVtIDJyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gICAgICAuaGVybyAuaGVyby1jb250ZW50IC5idXR0b246bGFzdC1jaGlsZCwgLmhlcm8gLmhlcm8tY29udGVudCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYTpsYXN0LWNoaWxkLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgLmhlcm8gLmhlcm8tY29udGVudCBhOmxhc3QtY2hpbGQsIC5oZXJvIC5oZXJvLWNvbnRlbnQgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhOmxhc3QtY2hpbGQsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgLmhlcm8gLmhlcm8tY29udGVudCBhOmxhc3QtY2hpbGQsIC5oZXJvIC5oZXJvLWNvbnRlbnQgI21vYmlsZS1uYXYtY2xvc2U6bGFzdC1jaGlsZCwgLmhlcm8gLmhlcm8tY29udGVudCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhOmxhc3QtY2hpbGQsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIC5oZXJvIC5oZXJvLWNvbnRlbnQgYTpsYXN0LWNoaWxkLCAuaGVybyAuaGVyby1jb250ZW50ICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbjpsYXN0LWNoaWxkLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5oZXJvIC5oZXJvLWNvbnRlbnQgLmdmb3JtX2J1dHRvbjpsYXN0LWNoaWxkLCAuaGVybyAuaGVyby1jb250ZW50XG4gICAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbjpsYXN0LWNoaWxkLFxuICAgICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5oZXJvIC5oZXJvLWNvbnRlbnQgLmdmb3JtX2J1dHRvbjpsYXN0LWNoaWxkLCAuaGVybyAuaGVyby1jb250ZW50ICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlOmxhc3QtY2hpbGQsICNob21lLXF1b3RlIC5oZXJvIC5oZXJvLWNvbnRlbnQgI2hvbWUtdmlkZW8tY2xvc2U6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmhlcm8gLnNoYXJlLWJ1dHRvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB6LWluZGV4OiAzOyB9XG4gICAgLmhlcm8gLnNoYXJlLWJ1dHRvbnMgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgICAuaGVybyAuc2hhcmUtYnV0dG9ucyBsaSBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07IH1cbiAgICAgICAgLmhlcm8gLnNoYXJlLWJ1dHRvbnMgbGkgYTpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICNkODJmODk7IH1cbiAgLmhlcm8gLmJ1dHRvbiwgLmhlcm8gI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCAuaGVybyBhLCAuaGVybyAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEsICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgLmhlcm8gYSwgLmhlcm8gI21vYmlsZS1uYXYtY2xvc2UsIC5oZXJvICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEsICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIC5oZXJvIGEsIC5oZXJvICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbiwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuaGVybyAuZ2Zvcm1fYnV0dG9uLCAuaGVyb1xuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5oZXJvIC5nZm9ybV9idXR0b24sIC5oZXJvICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlLCAjaG9tZS1xdW90ZSAuaGVybyAjaG9tZS12aWRlby1jbG9zZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmhlcm8gLmJ1dHRvbiAud2lzdGlhX2VtYmVkLCAuaGVybyAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYSAud2lzdGlhX2VtYmVkLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgLmhlcm8gYSAud2lzdGlhX2VtYmVkLCAuaGVybyAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIGEgLndpc3RpYV9lbWJlZCwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAuaGVybyBhIC53aXN0aWFfZW1iZWQsIC5oZXJvICNtb2JpbGUtbmF2LWNsb3NlIC53aXN0aWFfZW1iZWQsIC5oZXJvICNmb290ZXIgLmZvb3Rlci1tZW51LXdyYXA6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIGEgLndpc3RpYV9lbWJlZCwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgLmhlcm8gYSAud2lzdGlhX2VtYmVkLCAuaGVybyAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9idXR0b24gLndpc3RpYV9lbWJlZCwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuaGVybyAuZ2Zvcm1fYnV0dG9uIC53aXN0aWFfZW1iZWQsIC5oZXJvXG4gICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9idXR0b24gLndpc3RpYV9lbWJlZCxcbiAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmhlcm8gLmdmb3JtX2J1dHRvbiAud2lzdGlhX2VtYmVkLCAuaGVybyAjaG9tZS1xdW90ZSAjaG9tZS12aWRlby1jbG9zZSAud2lzdGlhX2VtYmVkLCAjaG9tZS1xdW90ZSAuaGVybyAjaG9tZS12aWRlby1jbG9zZSAud2lzdGlhX2VtYmVkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwOyB9XG4gICAgICAuaGVybyAuYnV0dG9uIC53aXN0aWFfZW1iZWQgZGl2LCAuaGVybyAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYSAud2lzdGlhX2VtYmVkIGRpdiwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIC5oZXJvIGEgLndpc3RpYV9lbWJlZCBkaXYsIC5oZXJvICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSAud2lzdGlhX2VtYmVkIGRpdiwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAuaGVybyBhIC53aXN0aWFfZW1iZWQgZGl2LCAuaGVybyAjbW9iaWxlLW5hdi1jbG9zZSAud2lzdGlhX2VtYmVkIGRpdiwgLmhlcm8gI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSAud2lzdGlhX2VtYmVkIGRpdiwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgLmhlcm8gYSAud2lzdGlhX2VtYmVkIGRpdiwgLmhlcm8gI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uIC53aXN0aWFfZW1iZWQgZGl2LCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5oZXJvIC5nZm9ybV9idXR0b24gLndpc3RpYV9lbWJlZCBkaXYsIC5oZXJvXG4gICAgICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbiAud2lzdGlhX2VtYmVkIGRpdixcbiAgICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuaGVybyAuZ2Zvcm1fYnV0dG9uIC53aXN0aWFfZW1iZWQgZGl2LCAuaGVybyAjaG9tZS1xdW90ZSAjaG9tZS12aWRlby1jbG9zZSAud2lzdGlhX2VtYmVkIGRpdiwgI2hvbWUtcXVvdGUgLmhlcm8gI2hvbWUtdmlkZW8tY2xvc2UgLndpc3RpYV9lbWJlZCBkaXYsIC5oZXJvIC5idXR0b24gLndpc3RpYV9lbWJlZCBpbWcsIC5oZXJvICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhIC53aXN0aWFfZW1iZWQgaW1nLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgLmhlcm8gYSAud2lzdGlhX2VtYmVkIGltZywgLmhlcm8gI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCBhIC53aXN0aWFfZW1iZWQgaW1nLCAjbW9iaWxlLW5hdiB1bCBsaTpsYXN0LWNoaWxkIC5oZXJvIGEgLndpc3RpYV9lbWJlZCBpbWcsIC5oZXJvICNtb2JpbGUtbmF2LWNsb3NlIC53aXN0aWFfZW1iZWQgaW1nLCAuaGVybyAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCBhIC53aXN0aWFfZW1iZWQgaW1nLCAjZm9vdGVyIC5mb290ZXItbWVudS13cmFwOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCAuaGVybyBhIC53aXN0aWFfZW1iZWQgaW1nLCAuaGVybyAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9idXR0b24gLndpc3RpYV9lbWJlZCBpbWcsICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmhlcm8gLmdmb3JtX2J1dHRvbiAud2lzdGlhX2VtYmVkIGltZywgLmhlcm9cbiAgICAgICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uIC53aXN0aWFfZW1iZWQgaW1nLFxuICAgICAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5oZXJvIC5nZm9ybV9idXR0b24gLndpc3RpYV9lbWJlZCBpbWcsIC5oZXJvICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlIC53aXN0aWFfZW1iZWQgaW1nLCAjaG9tZS1xdW90ZSAuaGVybyAjaG9tZS12aWRlby1jbG9zZSAud2lzdGlhX2VtYmVkIGltZyB7XG4gICAgICAgIG9wYWNpdHk6IDA7IH1cblxuI2hlcm8tY291bnRkb3duIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgI2hlcm8tY291bnRkb3duIHtcbiAgICAgIGZvbnQtc2l6ZTogNHJlbTsgfSB9XG5cbiNibG9nLXNpZGViYXIgLndpZGdldF9zZWFyY2gge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NhY2FjYTtcbiAgcGFkZGluZzogMCAwIDJyZW07IH1cbiAgI2Jsb2ctc2lkZWJhciAud2lkZ2V0X3NlYXJjaCBpbnB1dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNjYWNhY2E7IH1cbiAgI2Jsb2ctc2lkZWJhciAud2lkZ2V0X3NlYXJjaCAuYnV0dG9uLCAjYmxvZy1zaWRlYmFyIC53aWRnZXRfc2VhcmNoICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgI2Jsb2ctc2lkZWJhciAud2lkZ2V0X3NlYXJjaCBhLCAjYmxvZy1zaWRlYmFyIC53aWRnZXRfc2VhcmNoICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAjYmxvZy1zaWRlYmFyIC53aWRnZXRfc2VhcmNoIGEsICNibG9nLXNpZGViYXIgLndpZGdldF9zZWFyY2ggI21vYmlsZS1uYXYtY2xvc2UsICNibG9nLXNpZGViYXIgLndpZGdldF9zZWFyY2ggI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgI2Jsb2ctc2lkZWJhciAud2lkZ2V0X3NlYXJjaCBhLCAjYmxvZy1zaWRlYmFyIC53aWRnZXRfc2VhcmNoICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbiwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAjYmxvZy1zaWRlYmFyIC53aWRnZXRfc2VhcmNoIC5nZm9ybV9idXR0b24sICNibG9nLXNpZGViYXIgLndpZGdldF9zZWFyY2hcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9idXR0b24sXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAjYmxvZy1zaWRlYmFyIC53aWRnZXRfc2VhcmNoIC5nZm9ybV9idXR0b24sICNibG9nLXNpZGViYXIgLndpZGdldF9zZWFyY2ggI2hvbWUtcXVvdGUgI2hvbWUtdmlkZW8tY2xvc2UsICNob21lLXF1b3RlICNibG9nLXNpZGViYXIgLndpZGdldF9zZWFyY2ggI2hvbWUtdmlkZW8tY2xvc2Uge1xuICAgIHBhZGRpbmc6IDAuMzE3N2VtIDEuMjVlbTtcbiAgICBtYXJnaW46IDA7IH1cbiAgI2Jsb2ctc2lkZWJhciAud2lkZ2V0X3NlYXJjaCAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuI2Jsb2ctc2lkZWJhciAud2lkZ2V0X2NhdGVnb3JpZXMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NhY2FjYTtcbiAgcGFkZGluZzogMnJlbSAwIDJyZW07IH1cbiAgI2Jsb2ctc2lkZWJhciAud2lkZ2V0X2NhdGVnb3JpZXMgdWwge1xuICAgIGNvbHVtbnM6IDI7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgI2Jsb2ctc2lkZWJhciAud2lkZ2V0X2NhdGVnb3JpZXMgdWwgLmNhdC1pdGVtIGEge1xuICAgICAgZm9udC1zaXplOiAwLjg1cmVtOyB9XG4gICAgICAjYmxvZy1zaWRlYmFyIC53aWRnZXRfY2F0ZWdvcmllcyB1bCAuY2F0LWl0ZW0gYTpob3ZlciB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuI2Jsb2ctc2lkZWJhciAud2lkZ2V0LXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFwibXVzZW8tc2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuI2Jsb2ctc2lkZWJhciAjdGV4dC0yIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIHBhZGRpbmc6IDJyZW0gMCAycmVtOyB9XG4gICNibG9nLXNpZGViYXIgI3RleHQtMiBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjg1cmVtOyB9XG4gICAgI2Jsb2ctc2lkZWJhciAjdGV4dC0yIHAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgI2Jsb2ctc2lkZWJhciAjdGV4dC0yIGEge1xuICAgIG1hcmdpbjogMDsgfVxuXG4jYmxvZy1zaWRlYmFyICN0ZXh0LTMge1xuICBwYWRkaW5nOiAycmVtIDAgMnJlbTsgfVxuICAjYmxvZy1zaWRlYmFyICN0ZXh0LTMgaDQge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgI2Jsb2ctc2lkZWJhciAjdGV4dC0zIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMXJlbSAwIDA7IH1cbiAgICAjYmxvZy1zaWRlYmFyICN0ZXh0LTMgYTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuI2FyY2hpdmUtbGlzdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogNHJlbSAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAjYXJjaGl2ZS1saXN0IHtcbiAgICAgIHBhZGRpbmc6IDZyZW0gMDsgfSB9XG5cbiNhcmNoaXZlLXBvc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDRyZW0gMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgI2FyY2hpdmUtcG9zdCB7XG4gICAgICBwYWRkaW5nOiA2cmVtIDA7IH0gfVxuICAjYXJjaGl2ZS1wb3N0IC53aWRnZXRfc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICNhcmNoaXZlLXBvc3QgLndpZGdldF9jYXRlZ29yaWVzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICNhcmNoaXZlLXBvc3QgI3RleHQtMiB7XG4gICAgcGFkZGluZzogMCAwIDJyZW07IH1cblxuLmV4Y2VycHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5leGNlcnB0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH0gfVxuICAuZXhjZXJwdCAudGh1bWJuYWlsLWFuY2hvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0OyB9XG4gICAgLmV4Y2VycHQgLnRodW1ibmFpbC1hbmNob3I6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC42OyB9XG4gIC5leGNlcnB0IC50aHVtYm5haWwge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5leGNlcnB0Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbjogMDsgfVxuICAuZXhjZXJwdCAucG9zdC1wcmV2aWV3IHtcbiAgICBwYWRkaW5nOiA1cmVtIDRyZW0gM3JlbTsgfVxuICAuZXhjZXJwdCAucG9zdC1pbmZvIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTsgfVxuICAgIC5leGNlcnB0IC5wb3N0LWluZm8gYSB7XG4gICAgICBjb2xvcjogIzVlZGZmZjsgfVxuICAgICAgLmV4Y2VycHQgLnBvc3QtaW5mbyBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMyYmQ1ZmY7IH1cblxuLnBvc3QtaW5mbyB7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgcGFkZGluZzogMCAwIDFyZW07IH1cbiAgLnBvc3QtaW5mbyBhIHtcbiAgICBjb2xvcjogIzVlZGZmZjsgfVxuICAgIC5wb3N0LWluZm8gYTpob3ZlciB7XG4gICAgICBjb2xvcjogIzJiZDVmZjsgfVxuXG4ucG9zdC10aXRsZSB7XG4gIHBhZGRpbmc6IDFyZW0gMCAxcmVtOyB9XG5cbi5wb3N0LWNvbnRlbnQge1xuICBwYWRkaW5nOiAxcmVtIDAgMXJlbTsgfVxuXG4ucG9zdC1hdXRob3Ige1xuICBwYWRkaW5nOiAxcmVtIDAgMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuXG4ucG9zdC1jb21tZW50cyB7XG4gIHBhZGRpbmc6IDFyZW0gMCAxcmVtOyB9XG5cbi5wb3N0LXBhZ2luYXRpb24ge1xuICBwYWRkaW5nOiAxcmVtIDAgMXJlbTsgfVxuXG4ucG9zdC1tZXRhIC5wbS1uYW1lIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBsaW5lLWhlaWdodDogMXJlbTsgfVxuXG4ucG9zdC1tZXRhIC5wbS10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDEuMXJlbTsgfVxuXG4ucG9zdC1tZXRhIC5wbS13ZWJzaXRlIHtcbiAgY29sb3I6ICM1ZWRmZmY7IH1cbiAgLnBvc3QtbWV0YSAucG0td2Vic2l0ZSBhIHtcbiAgICBjb2xvcjogIzVlZGZmZjsgfVxuICAgIC5wb3N0LW1ldGEgLnBtLXdlYnNpdGUgYTpob3ZlciB7XG4gICAgICBjb2xvcjogIzJiZDVmZjsgfVxuXG4jY29tbWVudHMgLmNvbW1lbnRzLXRpdGxlIHtcbiAgcGFkZGluZzogNHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgbWFyZ2luOiAwOyB9XG5cbiNjb21tZW50cyAuY29tbWVudC1saXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICNjb21tZW50cyAuY29tbWVudC1saXN0IC5jaGlsZHJlbiB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gICNjb21tZW50cyAuY29tbWVudC1saXN0IC5jb21tZW50IHtcbiAgICBwYWRkaW5nOiAwIDRyZW0gNHJlbTsgfVxuICAjY29tbWVudHMgLmNvbW1lbnQtbGlzdCAuY29tbWVudC1ib2R5IHAge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuI3Jlc3BvbmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICBwYWRkaW5nOiA0cmVtO1xuICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gICNyZXNwb25kIC5mb3JtLXN1Ym1pdCB7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgI3Jlc3BvbmQgLmZvcm0tc3VibWl0IGlucHV0W3R5cGU9c3VibWl0XSB7XG4gICAgICBtYXJnaW46IDA7IH1cblxuLnNpbmdsZS10aHVtYm5haWwge1xuICBiYWNrZ3JvdW5kOiAjZjFmMWYxO1xuICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuMiksIDAgNnB4IDEwcHggMCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuMTQpLCAwIDFweCAxOHB4IDAgcmdiYSgxNTMsIDE1MywgMTUzLCAwLjEyKTsgfVxuICAuc2luZ2xlLXRodW1ibmFpbCBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gIC5zaW5nbGUtdGh1bWJuYWlsIC5mbGV4LXZpZGVvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbiNhYm91dCAucmlnaHQtdGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICNhYm91dCAucmlnaHQtdGl0bGUge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuI2Fib3V0IC5hYm91dC1zZWN0aW9uIHtcbiAgcGFkZGluZzogMi41cmVtIDA7IH1cbiAgI2Fib3V0IC5hYm91dC1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogNXJlbTsgfVxuICAjYWJvdXQgLmFib3V0LXNlY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDVyZW07IH1cblxuI2Fib3V0ICNjb250YWN0LXNvY2lhbCB7XG4gIG1hcmdpbjogMDsgfVxuICAjYWJvdXQgI2NvbnRhY3Qtc29jaWFsIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgICAjYWJvdXQgI2NvbnRhY3Qtc29jaWFsIGxpIGEge1xuICAgICAgY29sb3I6ICM1ZWRmZmY7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG1hcmdpbjogMC4yNXJlbTsgfVxuICAgICAgI2Fib3V0ICNjb250YWN0LXNvY2lhbCBsaSBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMyYmQ1ZmY7IH1cbiAgICAgICNhYm91dCAjY29udGFjdC1zb2NpYWwgbGkgYSBzcGFuIHtcbiAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbiNsZWFkZXJzLXJvdyB7XG4gIHBhZGRpbmc6IDJyZW0gMC44MTUyMnJlbSAwOyB9XG4gICNsZWFkZXJzLXJvdyAuY29sdW1ucyB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uZW1wbG95ZWUtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmVtcGxveWVlLXdyYXBwZXIgLmJhYnktd3JhcHBlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmVtcGxveWVlLXdyYXBwZXIgLmJhYnktd3JhcHBlciBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmVtcGxveWVlLXdyYXBwZXIgLmFkdWx0LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmVtcGxveWVlLXdyYXBwZXIgLmFkdWx0LXdyYXBwZXIgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5lbXBsb3llZS13cmFwcGVyOmhvdmVyIC5iYWJ5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmVtcGxveWVlLXdyYXBwZXI6aG92ZXIgLmFkdWx0LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5lbXBsb3llZS13cmFwcGVyIC5lbXBsb3llZS10ZXh0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEzNSwgMTIyLCAxNzksIDAuNyk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cblxuI2NvbnRhY3Qge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wOyB9XG5cbiNob21lLWJ1bGxldHMge1xuICBwYWRkaW5nLXRvcDogNHJlbTsgfVxuICAjaG9tZS1idWxsZXRzIC5ob21lLWJ1bGxldCB7XG4gICAgbWFyZ2luOiAwIGF1dG8gNHJlbTtcbiAgICBtYXgtd2lkdGg6IDEzLjU4Njk2cmVtOyB9XG4gICAgI2hvbWUtYnVsbGV0cyAuaG9tZS1idWxsZXQgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDQuNXJlbTtcbiAgICAgIGNvbG9yOiAjNDgyNzYyO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgICNob21lLWJ1bGxldHMgLmhvbWUtYnVsbGV0IGg0IHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICNob21lLWJ1bGxldHMgLmhvbWUtYnVsbGV0IHAge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICNob21lLWJ1bGxldHMgLmhvbWUtYnVsbGV0OmhvdmVyIHNwYW4ge1xuICAgICAgY29sb3I6ICMwMGIzZTM7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtczsgfVxuICAgICNob21lLWJ1bGxldHMgLmhvbWUtYnVsbGV0OmhvdmVyIGg0LCAjaG9tZS1idWxsZXRzIC5ob21lLWJ1bGxldDpob3ZlciBwIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4yNXJlbSk7IH1cblxuI2xlYXJuLW1vcmUge1xuICBwYWRkaW5nOiA0cmVtIDA7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gICNsZWFybi1tb3JlIGgyIHtcbiAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICNsZWFybi1tb3JlICNsZWFybi1tb3JlLWNvbnRlbnQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuI3N0YXRzICNtYXAtZGlzdHJpY3RzIHtcbiAgaGVpZ2h0OiA0MDBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgI3N0YXRzICNtYXAtZGlzdHJpY3RzIHtcbiAgICAgIGhlaWdodDogNTAwcHg7IH0gfVxuXG4jc3RhdHMgI2hvbWUtc3RhdHMge1xuICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgI3N0YXRzICNob21lLXN0YXRzIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9IH1cblxuI3N0YXRzIC5ob21lLXN0YXQge1xuICBtYXgtd2lkdGg6IDIxLjczOTEzcmVtO1xuICBtYXJnaW46IDJyZW0gYXV0bzsgfVxuICAjc3RhdHMgLmhvbWUtc3RhdCBoMiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjc1O1xuICAgIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuICAgIGZvbnQtc2l6ZTogMi4zOTEzcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICNzdGF0cyAuaG9tZS1zdGF0IGgyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gICNzdGF0cyAuaG9tZS1zdGF0IHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgY29sb3I6ICM2ODY4Njg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgI3N0YXRzIC5ob21lLXN0YXQgcCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAjc3RhdHMgLmhvbWUtc3RhdDpudGgtY2hpbGQoMSkgaDIge1xuICAgIGNvbG9yOiAjM2ViMDQ5OyB9XG4gICNzdGF0cyAuaG9tZS1zdGF0Om50aC1jaGlsZCgyKSBoMiB7XG4gICAgY29sb3I6ICNkODJmODk7IH1cbiAgI3N0YXRzIC5ob21lLXN0YXQ6bnRoLWNoaWxkKDMpIGgyIHtcbiAgICBjb2xvcjogI2YwNzcyMjsgfVxuICAjc3RhdHMgLmhvbWUtc3RhdDpudGgtY2hpbGQoNCkgaDIge1xuICAgIGNvbG9yOiAjNmYzZDk4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAjc3RhdHMgLmhvbWUtc3RhdCBoMiB7XG4gICAgICBmb250LXNpemU6IDNyZW07IH1cbiAgICAjc3RhdHMgLmhvbWUtc3RhdCBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOyB9IH1cblxuI2Rpc3RyaWN0cyB7XG4gIHBhZGRpbmc6IDRyZW0gMDsgfVxuICAjZGlzdHJpY3RzICNkaXN0cmljdC1pbWFnZXMge1xuICAgIHBhZGRpbmc6IDJyZW0gMCAycmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAjZGlzdHJpY3RzICNkaXN0cmljdC1pbWFnZXMgLnNsaWNrLXNsaWRlIHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zOyB9XG4gICAgICAjZGlzdHJpY3RzICNkaXN0cmljdC1pbWFnZXMgLnNsaWNrLXNsaWRlLnNsaWNrLWN1cnJlbnQge1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG4gICAgI2Rpc3RyaWN0cyAjZGlzdHJpY3QtaW1hZ2VzIC5zbGljay1kb3RzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICNkaXN0cmljdHMgI2Rpc3RyaWN0LWltYWdlcyAuZGlzdHJpY3QtaW1hZ2Uge1xuICAgICAgcGFkZGluZzogMXJlbTsgfVxuICAgICNkaXN0cmljdHMgI2Rpc3RyaWN0LWltYWdlcyAuZGlzdHJpY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNjYlO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTsgfVxuXG4jaG9tZS1xdW90ZSB7XG4gIHBhZGRpbmc6IDJyZW0gMDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgei1pbmRleDogMDsgfVxuICAjaG9tZS1xdW90ZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBvcGFjaXR5OiAwLjg7IH1cbiAgI2hvbWUtcXVvdGUgI2hvbWUtdmlkZW8tdHJpZ2dlciB7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIG1hcmdpbjogMnJlbSBhdXRvIDByZW07XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAjaG9tZS1xdW90ZSAjaG9tZS12aWRlby10cmlnZ2VyIHtcbiAgICAgICAgZm9udC1zaXplOiA2cmVtO1xuICAgICAgICBtYXJnaW46IDRyZW0gYXV0byAycmVtOyB9IH1cbiAgI2hvbWUtcXVvdGUgYmxvY2txdW90ZSB7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAjaG9tZS1xdW90ZSBibG9ja3F1b3RlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07IH0gfVxuICAjaG9tZS1xdW90ZSBwIHtcbiAgICBsaW5lLWhlaWdodDogMS4yOyB9XG4gICAgI2hvbWUtcXVvdGUgcCBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAjaG9tZS1xdW90ZSBwIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07IH0gfVxuICAjaG9tZS1xdW90ZSBpbWcge1xuICAgIG1hcmdpbjogMCBhdXRvIDJyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDcuNjA4N3JlbTsgfVxuICAjaG9tZS1xdW90ZSAjaG9tZS12aWRlby1pZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICNob21lLXF1b3RlICNob21lLXZpZGVvLWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgei1pbmRleDogMjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuXG4uaG9tZS1ncmFwaCB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIHdpZHRoOiA4LjY5NTY1cmVtO1xuICBoZWlnaHQ6IDguNjk1NjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5ob21lLWdyYXBoIGgzIHtcbiAgICBjb2xvcjogI2Q5NzgyNztcbiAgICBmb250LXNpemU6IDNyZW07XG4gICAgbGluZS1oZWlnaHQ6IDguNjk1NjVyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5ob21lLWdyYXBoIGgzIHN1cCB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7IH1cbiAgLmhvbWUtZ3JhcGggLmhvbWUtZ3JhcGgtcmFkaXVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuXG4jc3RhdHMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDsgfVxuICAjc3RhdHM6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNSwgNTEsIDYzLCAwLjg1KTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICNzdGF0cyAuc3RhdC1idWNrZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIHBhZGRpbmc6IDJyZW07IH1cbiAgICAjc3RhdHMgLnN0YXQtYnVja2V0IGgzIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgICAjc3RhdHMgLnN0YXQtYnVja2V0IGgzLnBlb3BsZS10aXRsZSB7XG4gICAgICAgIGhlaWdodDogOC42OTU2NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMuMjYwODdyZW07XG4gICAgICAgIHBhZGRpbmc6IDEuMDg2OTZyZW0gMDtcbiAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICBtYXJnaW46IDAgMCAycmVtOyB9XG4gICAgICAgICNzdGF0cyAuc3RhdC1idWNrZXQgaDMucGVvcGxlLXRpdGxlIHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiAjZDk3ODI3OyB9XG4gICAgI3N0YXRzIC5zdGF0LWJ1Y2tldCBwIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICNzdGF0cyAuc3RhdC1idWNrZXQgLnJlYWQtbW9yZSwgI3N0YXRzIC5zdGF0LWJ1Y2tldCAjY29tbWVudHMgLmNvbW1lbnQtbGlzdCAuY29tbWVudC1yZXBseS1saW5rLCAjY29tbWVudHMgLmNvbW1lbnQtbGlzdCAjc3RhdHMgLnN0YXQtYnVja2V0IC5jb21tZW50LXJlcGx5LWxpbmsge1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cblxuLmJhYnktcHJldmlldyB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIzMzMzZjtcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5iYWJ5LXByZXZpZXcgLmJhYnktcHJldmlldy1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM1LCA1MSwgNjMsIDAuOCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtcyBlYXNlLWluLW91dDsgfVxuICAgIC5iYWJ5LXByZXZpZXcgLmJhYnktcHJldmlldy1jb250ZW50IC5iYWJ5LXByZXZpZXctY29udGVudC1pbiB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5iYWJ5LXByZXZpZXcgLmJhYnktcHJldmlldy1jb250ZW50IC5iYWJ5LXByZXZpZXctY29udGVudC1pbiBoNSB7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfVxuICAgICAgLmJhYnktcHJldmlldyAuYmFieS1wcmV2aWV3LWNvbnRlbnQgLmJhYnktcHJldmlldy1jb250ZW50LWluIHNwYW4ge1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgICAgZm9udC1zaXplOiAzcmVtOyB9XG4gIC5iYWJ5LXByZXZpZXc6aG92ZXIgLmJhYnktcHJldmlldy1jb250ZW50IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4uaG9tZS1zdG9yeSAuaG9tZS1zdG9yeS1pbWFnZSB7XG4gIG1pbi1oZWlnaHQ6IDE1cmVtO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cblxuLmhvbWUtc3RvcnkgLmhvbWUtc3RvcnktdGV4dCB7XG4gIHBhZGRpbmc6IDJyZW0gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogIzAyYWZiMDtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmhvbWUtc3RvcnkgLmhvbWUtc3RvcnktdGV4dCBoNCB7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmhvbWUtc3RvcnkgLmhvbWUtc3RvcnktdGV4dCAucmVhZC1tb3JlLCAuaG9tZS1zdG9yeSAuaG9tZS1zdG9yeS10ZXh0ICNjb21tZW50cyAuY29tbWVudC1saXN0IC5jb21tZW50LXJlcGx5LWxpbmssICNjb21tZW50cyAuY29tbWVudC1saXN0IC5ob21lLXN0b3J5IC5ob21lLXN0b3J5LXRleHQgLmNvbW1lbnQtcmVwbHktbGluayB7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cblxuI2dldC1jb25uZWN0ZWQge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICNnZXQtY29ubmVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gICNnZXQtY29ubmVjdGVkIC5nYy1idWNrZXQge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgICNnZXQtY29ubmVjdGVkIC5nYy1idWNrZXQgLmdjLWJ1Y2tldC1jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICB6LWluZGV4OiAyOyB9XG4gICAgI2dldC1jb25uZWN0ZWQgLmdjLWJ1Y2tldCBoNCB7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgICNnZXQtY29ubmVjdGVkIC5nYy1idWNrZXQgaDUge1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAjZ2V0LWNvbm5lY3RlZCAuZ2MtYnVja2V0IHAge1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAjZ2V0LWNvbm5lY3RlZCAuZ2MtYnVja2V0IC5yZWFkLW1vcmUsICNnZXQtY29ubmVjdGVkIC5nYy1idWNrZXQgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluaywgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgI2dldC1jb25uZWN0ZWQgLmdjLWJ1Y2tldCAuY29tbWVudC1yZXBseS1saW5rIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgI2dldC1jb25uZWN0ZWQgLmdjLWJ1Y2tldDphZnRlciB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICNnZXQtY29ubmVjdGVkIC5nYy1idWNrZXQuZ2l2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk3ODI3OyB9XG4gICAgICAjZ2V0LWNvbm5lY3RlZCAuZ2MtYnVja2V0LmdpdmU6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxNywgMTIwLCAzOSwgMC44NSk7IH1cbiAgICAjZ2V0LWNvbm5lY3RlZCAuZ2MtYnVja2V0LmRvd25sb2FkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4NzdhYjM7IH1cbiAgICAgICNnZXQtY29ubmVjdGVkIC5nYy1idWNrZXQuZG93bmxvYWQ6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEzNSwgMTIyLCAxNzksIDAuODUpOyB9XG4gICAgI2dldC1jb25uZWN0ZWQgLmdjLWJ1Y2tldC5ibG9nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMzMzM2Y7IH1cbiAgICAgICNnZXQtY29ubmVjdGVkIC5nYy1idWNrZXQuYmxvZzphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzUsIDUxLCA2MywgMC44NSk7IH1cblxuI3Bvc3QtcHJldmlldyB7XG4gIG1hcmdpbi10b3A6IDNyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICNwb3N0LXByZXZpZXcge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gICNwb3N0LXByZXZpZXcgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICNwb3N0LXByZXZpZXcgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgI3Bvc3QtcHJldmlldyAjcG9zdC1wcmV2aWV3LWltYWdlLWxpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLWluLW91dDsgfVxuICAgICNwb3N0LXByZXZpZXcgI3Bvc3QtcHJldmlldy1pbWFnZS1saW5rOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuODsgfVxuXG4ucmVzb3VyY2UtYnVja2V0IHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICB6LWluZGV4OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAucmVzb3VyY2UtYnVja2V0OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLnJlc291cmNlLWJ1Y2tldDpudGgtY2hpbGQoMSk6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzUsIDUxLCA2MywgMC45KTsgfVxuICAucmVzb3VyY2UtYnVja2V0Om50aC1jaGlsZCgyKTphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMTcsIDEyMCwgMzksIDAuOSk7IH1cbiAgLnJlc291cmNlLWJ1Y2tldDpudGgtY2hpbGQoMyk6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTM1LCAxMjIsIDE3OSwgMC45KTsgfVxuICAucmVzb3VyY2UtYnVja2V0IGg0LCAucmVzb3VyY2UtYnVja2V0IHAsIC5yZXNvdXJjZS1idWNrZXQgaW1nLCAucmVzb3VyY2UtYnVja2V0IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5yZXNvdXJjZS1idWNrZXQgaDQsIC5yZXNvdXJjZS1idWNrZXQgcCwgLnJlc291cmNlLWJ1Y2tldCAucmVzb3VyY2UtYm90dG9tIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTsgfVxuICAucmVzb3VyY2UtYnVja2V0IC5yZWFkLW1vcmU6aG92ZXIsIC5yZXNvdXJjZS1idWNrZXQgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluazpob3ZlciwgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLnJlc291cmNlLWJ1Y2tldCAuY29tbWVudC1yZXBseS1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogI2JiY2NkOTsgfVxuXG4uc3BlYWtlci13cmFwIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxM3JlbTtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zcGVha2VyLXdyYXAge1xuICAgICAgd2lkdGg6IDI2cmVtOyB9IH1cbiAgLnNwZWFrZXItd3JhcCAubG9jYWwtc3RvcnktYmFjayB7XG4gICAgbWluLWhlaWdodDogMTNyZW07XG4gICAgaGVpZ2h0OiAxM3JlbTsgfVxuICAuc3BlYWtlci13cmFwIC5sb2NhbC1zdG9yeSB7XG4gICAgbWluLWhlaWdodDogMTNyZW07XG4gICAgaGVpZ2h0OiAxM3JlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zcGVha2VyLXdyYXAgLmxvY2FsLXN0b3J5OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuI3Byb2R1Y3QtcHJldmlldyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgcGFkZGluZzogMnJlbTtcbiAgei1pbmRleDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICNwcm9kdWN0LXByZXZpZXc6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNSwgNTEsIDYzLCAwLjkpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgI3Byb2R1Y3QtcHJldmlldyBpbWcsXG4gICNwcm9kdWN0LXByZXZpZXcgaDMsXG4gICNwcm9kdWN0LXByZXZpZXcgLnJlYWQtbW9yZSxcbiAgI3Byb2R1Y3QtcHJldmlldyAjY29tbWVudHMgLmNvbW1lbnQtbGlzdCAuY29tbWVudC1yZXBseS1saW5rLCAjY29tbWVudHMgLmNvbW1lbnQtbGlzdFxuICAjcHJvZHVjdC1wcmV2aWV3IC5jb21tZW50LXJlcGx5LWxpbmsge1xuICAgIHotaW5kZXg6IDI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICNwcm9kdWN0LXByZXZpZXcgaW1nIHtcbiAgICB3aWR0aDogNy4wNjUyMnJlbTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuXG4jdGFsa2luZy12aWRlb3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzNzQxO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgcGFkZGluZzogMnJlbTsgfVxuICAjdGFsa2luZy12aWRlb3MgaDMge1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuICAjdGFsa2luZy12aWRlb3MgLnRhbGtpbmctdmlkZW8ge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAjdGFsa2luZy12aWRlb3MgLnRhbGtpbmctdmlkZW8gLnR2LXRpdGxlIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxuICAgICAgI3RhbGtpbmctdmlkZW9zIC50YWxraW5nLXZpZGVvIC50di10aXRsZSBhIHtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAgICAgI3RhbGtpbmctdmlkZW9zIC50YWxraW5nLXZpZGVvIC50di10aXRsZSBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogI2Q5NzgyNzsgfVxuICAjdGFsa2luZy12aWRlb3MgaDQge1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAjdGFsa2luZy12aWRlb3MgLnJlYWQtbW9yZSwgI3RhbGtpbmctdmlkZW9zICNjb21tZW50cyAuY29tbWVudC1saXN0IC5jb21tZW50LXJlcGx5LWxpbmssICNjb21tZW50cyAuY29tbWVudC1saXN0ICN0YWxraW5nLXZpZGVvcyAuY29tbWVudC1yZXBseS1saW5rIHtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgICN0YWxraW5nLXZpZGVvcyAucmVhZC1tb3JlIHNwYW4sICN0YWxraW5nLXZpZGVvcyAjY29tbWVudHMgLmNvbW1lbnQtbGlzdCAuY29tbWVudC1yZXBseS1saW5rIHNwYW4sICNjb21tZW50cyAuY29tbWVudC1saXN0ICN0YWxraW5nLXZpZGVvcyAuY29tbWVudC1yZXBseS1saW5rIHNwYW4ge1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAjdGFsa2luZy12aWRlb3MgLnJlYWQtbW9yZTpob3ZlciwgI3RhbGtpbmctdmlkZW9zICNjb21tZW50cyAuY29tbWVudC1saXN0IC5jb21tZW50LXJlcGx5LWxpbms6aG92ZXIsICNjb21tZW50cyAuY29tbWVudC1saXN0ICN0YWxraW5nLXZpZGVvcyAuY29tbWVudC1yZXBseS1saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjNWVkZmZmOyB9XG4gICAgICAjdGFsa2luZy12aWRlb3MgLnJlYWQtbW9yZTpob3ZlciBzcGFuLCAjdGFsa2luZy12aWRlb3MgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluazpob3ZlciBzcGFuLCAjY29tbWVudHMgLmNvbW1lbnQtbGlzdCAjdGFsa2luZy12aWRlb3MgLmNvbW1lbnQtcmVwbHktbGluazpob3ZlciBzcGFuIHtcbiAgICAgICAgY29sb3I6ICM1ZWRmZmY7IH1cblxuI3RhbGtpbmctcG9pbnRzIGgzIHtcbiAgY29sb3I6ICNkOTc4Mjc7XG4gIGZvbnQtc2l6ZTogMi41cmVtOyB9XG5cbiN0YWxraW5nLXBvaW50cyBoNCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuI3RhbGtpbmctcG9pbnRzIC50cC12ZXJzZSB7XG4gIGNvbG9yOiAjNWVkZmZmO1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLmNpdHktcHJldmlldy1jb250YWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTlyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogIzIzMzMzZjtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgfVxuICAuY2l0eS1wcmV2aWV3LWNvbnRhaW4gaDEsIC5jaXR5LXByZXZpZXctY29udGFpbiBoMiwgLmNpdHktcHJldmlldy1jb250YWluIGgzLCAuY2l0eS1wcmV2aWV3LWNvbnRhaW4gaDQsIC5jaXR5LXByZXZpZXctY29udGFpbiBoNSwgLmNpdHktcHJldmlldy1jb250YWluIGg2LCAuY2l0eS1wcmV2aWV3LWNvbnRhaW4gcCwgLmNpdHktcHJldmlldy1jb250YWluIHNtYWxsLCAuY2l0eS1wcmV2aWV3LWNvbnRhaW4gZGl2IHtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDsgfVxuICAuY2l0eS1wcmV2aWV3LWNvbnRhaW4gLmNpdHktcHJldmlldy1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM1LCA1MSwgNjMsIDAuOCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTlyZW07XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0OyB9XG4gICAgLmNpdHktcHJldmlldy1jb250YWluIC5jaXR5LXByZXZpZXctaW5mbyAuY2l0eS1wcmV2aWV3LWluZm8tdG9wIHtcbiAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICBoZWlnaHQ6IDUuNXJlbTsgfVxuICAgICAgLmNpdHktcHJldmlldy1jb250YWluIC5jaXR5LXByZXZpZXctaW5mbyAuY2l0eS1wcmV2aWV3LWluZm8tdG9wIGg0IHtcbiAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmNpdHktcHJldmlldy1jb250YWluIC5jaXR5LXByZXZpZXctaW5mbyAuY2l0eS1wcmV2aWV3LWluZm8tbWlkZGxlIHtcbiAgICAgIHBhZGRpbmc6IDAgMnJlbSAxcmVtOyB9XG4gICAgICAuY2l0eS1wcmV2aWV3LWNvbnRhaW4gLmNpdHktcHJldmlldy1pbmZvIC5jaXR5LXByZXZpZXctaW5mby1taWRkbGUgcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiA3LjVyZW07XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmNpdHktcHJldmlldy1jb250YWluIC5jaXR5LXByZXZpZXctaW5mbyAuY2l0eS1wcmV2aWV3LWluZm8tYm90dG9tIHtcbiAgICAgIHBhZGRpbmc6IDAgMnJlbSAycmVtO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgaGVpZ2h0OiAzcmVtOyB9XG4gICAgICAuY2l0eS1wcmV2aWV3LWNvbnRhaW4gLmNpdHktcHJldmlldy1pbmZvIC5jaXR5LXByZXZpZXctaW5mby1ib3R0b20gZGl2LCAuY2l0eS1wcmV2aWV3LWNvbnRhaW4gLmNpdHktcHJldmlldy1pbmZvIC5jaXR5LXByZXZpZXctaW5mby1ib3R0b20gc21hbGwge1xuICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jaXR5LXByZXZpZXctY29udGFpbiAuY2l0eS1wcmV2aWV3LWluZm8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEzLjVyZW0pOyB9XG4gICAgLmNpdHktcHJldmlldy1jb250YWluOmhvdmVyIC5jaXR5LXByZXZpZXctaW5mbyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uY2h1cmNoLXJlc291cmNlIGltZyB7XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgd2lkdGg6IDYuNTIxNzRyZW07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmNodXJjaC1yZXNvdXJjZTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzUsIDUxLCA2MywgMC45KSAhaW1wb3J0YW50OyB9XG5cbi5jby1ibG9nLXByZXZpZXcge1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gIC5jby1ibG9nLXByZXZpZXcgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cbi5wYWdlLXRlbXBsYXRlLWRvbmF0ZS10bXBsIHtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLmRvbmF0ZS1zdHJpcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMS41cmVtIDJyZW0gMXJlbTsgfVxuICAuZG9uYXRlLXN0cmlwIHN2ZyB7XG4gICAgd2lkdGg6IDEwcmVtO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZG9uYXRlLXN0cmlwI2RvbmF0ZS1ib3R0b20ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMzMzM2Y7IH1cbiAgICAuZG9uYXRlLXN0cmlwI2RvbmF0ZS1ib3R0b20gc3ZnIHBhdGgge1xuICAgICAgZmlsbDogI2ZlZmVmZTsgfVxuXG4jZG9uYXRlLWJsdWUge1xuICBiYWNrZ3JvdW5kOiAjMjMzMzNmO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIHotaW5kZXg6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMnJlbSAxcmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiA1Ny4wNjUyMnJlbTsgfVxuICAjZG9uYXRlLWJsdWU6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM1LCA1MSwgNjMsIDAuOSk7XG4gICAgei1pbmRleDogMTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgI2RvbmF0ZS1ibHVlID4gLnJvdyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgI2RvbmF0ZS1ibHVlIGgxLCAjZG9uYXRlLWJsdWUgaDIsICNkb25hdGUtYmx1ZSBoMywgI2RvbmF0ZS1ibHVlIGg0LCAjZG9uYXRlLWJsdWUgaDUsICNkb25hdGUtYmx1ZSBoNiwgI2RvbmF0ZS1ibHVlIGJsb2NrcXVvdGUsICNkb25hdGUtYmx1ZSBvbCwgI2RvbmF0ZS1ibHVlIHVsLCAjZG9uYXRlLWJsdWUgYSwgI2RvbmF0ZS1ibHVlIHAge1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICNkb25hdGUtYmx1ZSAjZG9uYXRlLWJhYmllcyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICNkb25hdGUtYmx1ZSAjZG9uYXRlLWJhYmllcyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDJyZW0sIDRyZW0pOyB9IH1cblxuI2Jpby1zb2NpYWwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICNiaW8tc29jaWFsIGEge1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuXG4jYmFjay10by1hcmNoaXZlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbiNzaW5nbGUtc2lkZS1jb2x1bW4ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICNzaW5nbGUtc2lkZS1jb2x1bW4ge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gICNzaW5nbGUtc2lkZS1jb2x1bW4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAjc2luZ2xlLXNpZGUtY29sdW1uIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAjc2luZ2xlLXNpZGUtY29sdW1uIGltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICNzaW5nbGUtc2lkZS1jb2x1bW4gaW1nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbi5ldmVudHMgaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuXG4uc3RvcmllcyBpbWcge1xuICBtYXJnaW46IDJyZW0gMDsgfVxuXG4jcmVzb3VyY2UtcXVlc3Rpb25zIC5yZXNvdXJjZS1xdWVzdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICBwYWRkaW5nOiAycmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1pbi1vdXQ7IH1cbiAgI3Jlc291cmNlLXF1ZXN0aW9ucyAucmVzb3VyY2UtcXVlc3Rpb24gaDMge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAjcmVzb3VyY2UtcXVlc3Rpb25zIC5yZXNvdXJjZS1xdWVzdGlvbiBwIHtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICNyZXNvdXJjZS1xdWVzdGlvbnMgLnJlc291cmNlLXF1ZXN0aW9uIC5yZWFkLW1vcmUsICNyZXNvdXJjZS1xdWVzdGlvbnMgLnJlc291cmNlLXF1ZXN0aW9uICNjb21tZW50cyAuY29tbWVudC1saXN0IC5jb21tZW50LXJlcGx5LWxpbmssICNjb21tZW50cyAuY29tbWVudC1saXN0ICNyZXNvdXJjZS1xdWVzdGlvbnMgLnJlc291cmNlLXF1ZXN0aW9uIC5jb21tZW50LXJlcGx5LWxpbmssXG4gICNyZXNvdXJjZS1xdWVzdGlvbnMgLnJlc291cmNlLXF1ZXN0aW9uIC5yZWFkLW1vcmUgc3BhbixcbiAgI3Jlc291cmNlLXF1ZXN0aW9ucyAucmVzb3VyY2UtcXVlc3Rpb24gI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluayBzcGFuLCAjY29tbWVudHMgLmNvbW1lbnQtbGlzdFxuICAjcmVzb3VyY2UtcXVlc3Rpb25zIC5yZXNvdXJjZS1xdWVzdGlvbiAuY29tbWVudC1yZXBseS1saW5rIHNwYW4ge1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGVhc2UtaW4tb3V0OyB9XG4gICNyZXNvdXJjZS1xdWVzdGlvbnMgLnJlc291cmNlLXF1ZXN0aW9uOmhvdmVyIC5yZWFkLW1vcmUsICNyZXNvdXJjZS1xdWVzdGlvbnMgLnJlc291cmNlLXF1ZXN0aW9uOmhvdmVyICNjb21tZW50cyAuY29tbWVudC1saXN0IC5jb21tZW50LXJlcGx5LWxpbmssICNjb21tZW50cyAuY29tbWVudC1saXN0ICNyZXNvdXJjZS1xdWVzdGlvbnMgLnJlc291cmNlLXF1ZXN0aW9uOmhvdmVyIC5jb21tZW50LXJlcGx5LWxpbmssXG4gICNyZXNvdXJjZS1xdWVzdGlvbnMgLnJlc291cmNlLXF1ZXN0aW9uOmhvdmVyIC5yZWFkLW1vcmUgc3BhbixcbiAgI3Jlc291cmNlLXF1ZXN0aW9ucyAucmVzb3VyY2UtcXVlc3Rpb246aG92ZXIgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluayBzcGFuLCAjY29tbWVudHMgLmNvbW1lbnQtbGlzdFxuICAjcmVzb3VyY2UtcXVlc3Rpb25zIC5yZXNvdXJjZS1xdWVzdGlvbjpob3ZlciAuY29tbWVudC1yZXBseS1saW5rIHNwYW4ge1xuICAgIGNvbG9yOiAjZDk3ODI3OyB9XG5cbiNyZXNvdXJjZS1maWx0ZXJzLW1vYmlsZSB7XG4gIHBhZGRpbmctdG9wOiAxLjI3MDhlbTtcbiAgcGFkZGluZy1ib3R0b206IDEuMjcwOGVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAjcmVzb3VyY2UtZmlsdGVycy1tb2JpbGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICNyZXNvdXJjZS1maWx0ZXJzLW1vYmlsZSAuZmlsdGVyaW5nIHNlbGVjdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC42MzU0ZW07XG4gICAgYm9yZGVyOiAycHggc29saWQgI2NhY2FjYTsgfVxuICAjcmVzb3VyY2UtZmlsdGVycy1tb2JpbGUgLmZpbHRlcmluZyBbZGF0YS10b2dnbGU9XCJ0eXBlLWZpbHRlclwiXSB7XG4gICAgcGFkZGluZzogMC4zMTc3ZW0gMC40MGVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNjM1NGVtOyB9XG4gICNyZXNvdXJjZS1maWx0ZXJzLW1vYmlsZSBmb3JtIGlucHV0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2NhY2FjYTsgfVxuICAjcmVzb3VyY2UtZmlsdGVycy1tb2JpbGUgZm9ybSAuYnV0dG9uLCAjcmVzb3VyY2UtZmlsdGVycy1tb2JpbGUgZm9ybSAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgYSwgI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkICNyZXNvdXJjZS1maWx0ZXJzLW1vYmlsZSBmb3JtIGEsICNyZXNvdXJjZS1maWx0ZXJzLW1vYmlsZSBmb3JtICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAjcmVzb3VyY2UtZmlsdGVycy1tb2JpbGUgZm9ybSBhLCAjcmVzb3VyY2UtZmlsdGVycy1tb2JpbGUgZm9ybSAjbW9iaWxlLW5hdi1jbG9zZSwgI3Jlc291cmNlLWZpbHRlcnMtbW9iaWxlIGZvcm0gI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgI3Jlc291cmNlLWZpbHRlcnMtbW9iaWxlIGZvcm0gYSwgI3Jlc291cmNlLWZpbHRlcnMtbW9iaWxlIGZvcm0gI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uLCAjZm9vdGVyIC5nZm9ybV93cmFwcGVyICNyZXNvdXJjZS1maWx0ZXJzLW1vYmlsZSBmb3JtIC5nZm9ybV9idXR0b24sICNyZXNvdXJjZS1maWx0ZXJzLW1vYmlsZSBmb3JtXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fYnV0dG9uLFxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgI3Jlc291cmNlLWZpbHRlcnMtbW9iaWxlIGZvcm0gLmdmb3JtX2J1dHRvbiwgI3Jlc291cmNlLWZpbHRlcnMtbW9iaWxlIGZvcm0gI2hvbWUtcXVvdGUgI2hvbWUtdmlkZW8tY2xvc2UsICNob21lLXF1b3RlICNyZXNvdXJjZS1maWx0ZXJzLW1vYmlsZSBmb3JtICNob21lLXZpZGVvLWNsb3NlIHtcbiAgICBwYWRkaW5nOiAwLjMxNzdlbSAwLjQwZW07XG4gICAgbWFyZ2luOiAwOyB9XG4gICNyZXNvdXJjZS1maWx0ZXJzLW1vYmlsZSBmb3JtIC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuXG4jcmVzb3VyY2UtZmlsdGVycy1kZXNrdG9wIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gIHBhZGRpbmctdG9wOiA1LjVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICNyZXNvdXJjZS1maWx0ZXJzLWRlc2t0b3Age1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAjcmVzb3VyY2UtZmlsdGVycy1kZXNrdG9wIGg0IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LWZhbWlseTogXCJtdXNlby1zYW5zXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IDRyZW07IH1cbiAgI3Jlc291cmNlLWZpbHRlcnMtZGVza3RvcCAubWVudSBhIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAjcmVzb3VyY2UtZmlsdGVycy1kZXNrdG9wIGZvcm0gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjY2FjYWNhOyB9XG4gICNyZXNvdXJjZS1maWx0ZXJzLWRlc2t0b3AgZm9ybSAuYnV0dG9uLCAjcmVzb3VyY2UtZmlsdGVycy1kZXNrdG9wIGZvcm0gI2hlYWRlciB1bCBsaTpsYXN0LWNoaWxkIGEsICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCAjcmVzb3VyY2UtZmlsdGVycy1kZXNrdG9wIGZvcm0gYSwgI3Jlc291cmNlLWZpbHRlcnMtZGVza3RvcCBmb3JtICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAjcmVzb3VyY2UtZmlsdGVycy1kZXNrdG9wIGZvcm0gYSwgI3Jlc291cmNlLWZpbHRlcnMtZGVza3RvcCBmb3JtICNtb2JpbGUtbmF2LWNsb3NlLCAjcmVzb3VyY2UtZmlsdGVycy1kZXNrdG9wIGZvcm0gI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgI3Jlc291cmNlLWZpbHRlcnMtZGVza3RvcCBmb3JtIGEsICNyZXNvdXJjZS1maWx0ZXJzLWRlc2t0b3AgZm9ybSAjZm9vdGVyIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9idXR0b24sICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgI3Jlc291cmNlLWZpbHRlcnMtZGVza3RvcCBmb3JtIC5nZm9ybV9idXR0b24sICNyZXNvdXJjZS1maWx0ZXJzLWRlc2t0b3AgZm9ybVxuICAjdGFsa2luZy12aWRlb3MgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbixcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyICNyZXNvdXJjZS1maWx0ZXJzLWRlc2t0b3AgZm9ybSAuZ2Zvcm1fYnV0dG9uLCAjcmVzb3VyY2UtZmlsdGVycy1kZXNrdG9wIGZvcm0gI2hvbWUtcXVvdGUgI2hvbWUtdmlkZW8tY2xvc2UsICNob21lLXF1b3RlICNyZXNvdXJjZS1maWx0ZXJzLWRlc2t0b3AgZm9ybSAjaG9tZS12aWRlby1jbG9zZSB7XG4gICAgcGFkZGluZzogMC4zMTc3ZW0gMC40MGVtO1xuICAgIG1hcmdpbjogMDsgfVxuICAjcmVzb3VyY2UtZmlsdGVycy1kZXNrdG9wIGZvcm0gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbiNyZXNvdXJjZS1saXN0IHtcbiAgcGFkZGluZy10b3A6IDRyZW07XG4gIHBhZGRpbmctYm90dG9tOiA0cmVtOyB9XG4gICNyZXNvdXJjZS1saXN0IC5yZXNvdXJjZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTsgfVxuICAgICNyZXNvdXJjZS1saXN0IC5yZXNvdXJjZSAucmVzb3VyY2UtdHlwZSB7XG4gICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBjb2xvcjogIzkyOTI5MjsgfVxuICAgICNyZXNvdXJjZS1saXN0IC5yZXNvdXJjZSAucmVzb3VyY2UtYmFja2dyb3VuZCB7XG4gICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IH1cbiAgICAjcmVzb3VyY2UtbGlzdCAucmVzb3VyY2UgcCB7XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNDVyZW07XG4gICAgICBmb250LXNpemU6IDAuOHJlbTsgfVxuICAgICNyZXNvdXJjZS1saXN0IC5yZXNvdXJjZSAucmVhZC1tb3JlLCAjcmVzb3VyY2UtbGlzdCAucmVzb3VyY2UgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluaywgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgI3Jlc291cmNlLWxpc3QgLnJlc291cmNlIC5jb21tZW50LXJlcGx5LWxpbmssXG4gICAgI3Jlc291cmNlLWxpc3QgLnJlc291cmNlIC5yZWFkLW1vcmUgc3BhbixcbiAgICAjcmVzb3VyY2UtbGlzdCAucmVzb3VyY2UgI2NvbW1lbnRzIC5jb21tZW50LWxpc3QgLmNvbW1lbnQtcmVwbHktbGluayBzcGFuLCAjY29tbWVudHMgLmNvbW1lbnQtbGlzdFxuICAgICNyZXNvdXJjZS1saXN0IC5yZXNvdXJjZSAuY29tbWVudC1yZXBseS1saW5rIHNwYW4ge1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZS1pbi1vdXQ7IH1cbiAgICAjcmVzb3VyY2UtbGlzdCAucmVzb3VyY2U6aG92ZXIgLnJlYWQtbW9yZSwgI3Jlc291cmNlLWxpc3QgLnJlc291cmNlOmhvdmVyICNjb21tZW50cyAuY29tbWVudC1saXN0IC5jb21tZW50LXJlcGx5LWxpbmssICNjb21tZW50cyAuY29tbWVudC1saXN0ICNyZXNvdXJjZS1saXN0IC5yZXNvdXJjZTpob3ZlciAuY29tbWVudC1yZXBseS1saW5rLFxuICAgICNyZXNvdXJjZS1saXN0IC5yZXNvdXJjZTpob3ZlciAucmVhZC1tb3JlIHNwYW4sXG4gICAgI3Jlc291cmNlLWxpc3QgLnJlc291cmNlOmhvdmVyICNjb21tZW50cyAuY29tbWVudC1saXN0IC5jb21tZW50LXJlcGx5LWxpbmsgc3BhbiwgI2NvbW1lbnRzIC5jb21tZW50LWxpc3RcbiAgICAjcmVzb3VyY2UtbGlzdCAucmVzb3VyY2U6aG92ZXIgLmNvbW1lbnQtcmVwbHktbGluayBzcGFuIHtcbiAgICAgIGNvbG9yOiAjZDk3ODI3OyB9XG5cbi5yZXNvdXJjZS1zaWdudXAge1xuICBiYWNrZ3JvdW5kOiAjYTliOGI3O1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgcGFkZGluZzogMXJlbSAwOyB9XG4gIC5yZXNvdXJjZS1zaWdudXAgaDQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luOiAwLjVyZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAucmVzb3VyY2Utc2lnbnVwIC5nZmllbGRfbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAucmVzb3VyY2Utc2lnbnVwIC5nZm9ybV9ib2R5IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC5yZXNvdXJjZS1zaWdudXAgZm9ybSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnJlc291cmNlLXNpZ251cCBmb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMjBweCkgIWltcG9ydGFudDsgfVxuICAgIC5yZXNvdXJjZS1zaWdudXAgZm9ybSAuZ2Zvcm1fZm9vdGVyIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5yZXNvdXJjZS1zaWdudXAgZm9ybSAuZ2Zvcm1fZm9vdGVyIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTFweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7IH1cbiAgLnJlc291cmNlLXNpZ251cCAuYnV0dG9uLCAucmVzb3VyY2Utc2lnbnVwICNoZWFkZXIgdWwgbGk6bGFzdC1jaGlsZCBhLCAjaGVhZGVyIHVsIGxpOmxhc3QtY2hpbGQgLnJlc291cmNlLXNpZ251cCBhLCAucmVzb3VyY2Utc2lnbnVwICNtb2JpbGUtbmF2IHVsIGxpOmxhc3QtY2hpbGQgYSwgI21vYmlsZS1uYXYgdWwgbGk6bGFzdC1jaGlsZCAucmVzb3VyY2Utc2lnbnVwIGEsIC5yZXNvdXJjZS1zaWdudXAgI21vYmlsZS1uYXYtY2xvc2UsIC5yZXNvdXJjZS1zaWdudXAgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgYSwgI2Zvb3RlciAuZm9vdGVyLW1lbnUtd3JhcDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQgLnJlc291cmNlLXNpZ251cCBhLCAucmVzb3VyY2Utc2lnbnVwICNmb290ZXIgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2J1dHRvbiwgI2Zvb3RlciAuZ2Zvcm1fd3JhcHBlciAucmVzb3VyY2Utc2lnbnVwIC5nZm9ybV9idXR0b24sIC5yZXNvdXJjZS1zaWdudXBcbiAgI3RhbGtpbmctdmlkZW9zIC5nZm9ybV93cmFwcGVyIC5nZm9ybV9idXR0b24sXG4gICN0YWxraW5nLXZpZGVvcyAuZ2Zvcm1fd3JhcHBlciAucmVzb3VyY2Utc2lnbnVwIC5nZm9ybV9idXR0b24sIC5yZXNvdXJjZS1zaWdudXAgI2hvbWUtcXVvdGUgI2hvbWUtdmlkZW8tY2xvc2UsICNob21lLXF1b3RlIC5yZXNvdXJjZS1zaWdudXAgI2hvbWUtdmlkZW8tY2xvc2Uge1xuICAgIG1hcmdpbjogMC41cmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuMi4wXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBTYXNzIHV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4LXZpZGVvJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZygkZmxleDogZmFsc2UpIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LXZpZGVvO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuXG4gIEBpZiAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBDb2xvclZhcmlhYmxlLCBRdWFsaWZ5aW5nRWxlbWVudCwgVmVuZG9yUHJlZml4XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4vLy8vXG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8vIENvbG9ycyB1c2VkIGZvciBidXR0b25zLCBjYWxsb3V0cywgbGlua3MsIGV0Yy4gVGhlcmUgbXVzdCBhbHdheXMgYmUgYSBjb2xvciBjYWxsZWQgYHByaW1hcnlgLlxuLy8vIEB0eXBlIE1hcFxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMjE5OWU4LFxuICBzZWNvbmRhcnk6ICM3NzcsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjZWM1ODQwLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbiRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcyk7XG4kd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKTtcbiRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCk7XG5cbi8vIFJlbW92ZSB0aGlzIGluIDYuM1xuJC16Zi1tZW51LWljb24taW1wb3J0ZWQ6IGZhbHNlO1xuJC16Zi1mbGV4LWNsYXNzZXMtaW1wb3J0ZWQ6IGZhbHNlO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgLXpmLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuXG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcbiAgc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIElkU2VsZWN0b3JcbiAgI21hcF9jYW52YXMsXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBMb2FkcyBub3JtYWxpemUuY3NzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC16Zi1ub3JtYWxpemUge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLyoqXG4gICAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gICAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gICAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAgICovXG5cbiAgaHRtbCB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAgICovXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICAgKiBhbmQgRmlyZWZveC5cbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAgICovXG5cbiAgYXJ0aWNsZSxcbiAgYXNpZGUsXG4gIGRldGFpbHMsXG4gIGZpZ2NhcHRpb24sXG4gIGZpZ3VyZSxcbiAgZm9vdGVyLFxuICBoZWFkZXIsXG4gIGhncm91cCxcbiAgbWFpbixcbiAgbWVudSxcbiAgbmF2LFxuICBzZWN0aW9uLFxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICAgKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAqL1xuXG4gIGF1ZGlvLFxuICBjYW52YXMsXG4gIHByb2dyZXNzLFxuICB2aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAgICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAgICovXG5cbiAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gICAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAgICovXG5cbiAgW2hpZGRlbl0sXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLyogTGlua3NcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAqL1xuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAgICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICAgKi9cblxuICBhOmFjdGl2ZSxcbiAgYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgICovXG5cbiAgZGZuIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICAgKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gICAqL1xuXG4gIG1hcmsge1xuICAgIGJhY2tncm91bmQ6ICNmZjA7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW1nIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gICAqL1xuXG4gIHN2Zzpub3QoOnJvb3QpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAgICovXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIGNvZGUsXG4gIGtiZCxcbiAgcHJlLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAxZW07XG4gIH1cblxuICAvKiBGb3Jtc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICAgKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gICAqL1xuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gICAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICAgKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICAgKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIG1hcmdpbjogMDsgLyogMyAqL1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICAgKi9cblxuICBidXR0b24ge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAgICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAgICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAgICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICAgKi9cblxuICBidXR0b24sXG4gIHNlbGVjdCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAgICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gICAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAgICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAgICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICAgKi9cblxuICBidXR0b24sXG4gIGh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG4gIH1cblxuICAvKipcbiAgICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAgICovXG5cbiAgYnV0dG9uW2Rpc2FibGVkXSxcbiAgaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gICAqL1xuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAgICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gICAqL1xuXG4gIGlucHV0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAgICpcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAgICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAgICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICAgKi9cblxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAvKipcbiAgICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAgICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICAgKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gICAqIFtOT1RFXSBXZSBkb24ndCBlbmFibGUgdGhpcyBydWxlc2V0IGluIEZvdW5kYXRpb24sIGJlY2F1c2Ugd2Ugd2FudCB0aGUgPGZpZWxkc2V0PiBlbGVtZW50IHRvIGhhdmUgcGxhaW4gc3R5bGluZy5cbiAgICovXG5cbiAgLyogZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gIH0gKi9cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICAgKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gICAqL1xuXG4gIGxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gICAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICAgKi9cblxuICBvcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAvKiBUYWJsZXNcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICAgKi9cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxuXG4gIHRkLFxuICB0aCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuIiwiLy8gIEZvdW5kYXRpb24gZm9yIFNpdGVzIFNldHRpbmdzXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XG4vL1xuLy8gICAxLiBHbG9iYWxcbi8vICAgMi4gQnJlYWtwb2ludHNcbi8vICAgMy4gVGhlIEdyaWRcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gICA2LiBBYmlkZVxuLy8gICA3LiBBY2NvcmRpb25cbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcbi8vICAgOS4gQmFkZ2Vcbi8vICAxMC4gQnJlYWRjcnVtYnNcbi8vICAxMS4gQnV0dG9uXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxuLy8gIDEzLiBDYWxsb3V0XG4vLyAgMTQuIENsb3NlIEJ1dHRvblxuLy8gIDE1LiBEcmlsbGRvd25cbi8vICAxNi4gRHJvcGRvd25cbi8vICAxNy4gRHJvcGRvd24gTWVudVxuLy8gIDE4LiBGbGV4IFZpZGVvXG4vLyAgMTkuIEZvcm1zXG4vLyAgMjAuIExhYmVsXG4vLyAgMjEuIE1lZGlhIE9iamVjdFxuLy8gIDIyLiBNZW51XG4vLyAgMjMuIE9mZi1jYW52YXNcbi8vICAyNC4gT3JiaXRcbi8vICAyNS4gUGFnaW5hdGlvblxuLy8gIDI2LiBQcm9ncmVzcyBCYXJcbi8vICAyNy4gUmV2ZWFsXG4vLyAgMjguIFNsaWRlclxuLy8gIDI5LiBTd2l0Y2hcbi8vICAzMC4gVGFibGVcbi8vICAzMS4gVGFic1xuLy8gIDMyLiBUaHVtYm5haWxcbi8vICAzMy4gVGl0bGUgQmFyXG4vLyAgMzQuIFRvb2x0aXBcbi8vICAzNS4gVG9wIEJhclxuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyAxLiBHbG9iYWxcbi8vIC0tLS0tLS0tLVxuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWU7XG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTE1JTtcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApO1xuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjU7XG4kcHJpbWFyeS1jb2xvcjogIzIzMzMzZjtcbiRwcmltYXJ5LWRhcms6ICMzNDM3NDE7XG4kc2Vjb25kYXJ5LWNvbG9yOiAjZDk3ODI3O1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kOiAjZmM4NTU2O1xuJGFjY2VudC1jb2xvcjogIzVlZGZmZjtcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogJHByaW1hcnktY29sb3IsXG4gIHNlY29uZGFyeTogJHNlY29uZGFyeS1jb2xvcixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNlYzU4NDAsXG4pO1xuJGJsdWU6ICMwMzUxOEI7XG4kcHVycGxlOiAjODc3YWIzO1xuJHN1Y2Nlc3MtY29sb3I6ICMzYWRiNzY7XG4kd2FybmluZy1jb2xvcjogI2ZmYWUwMDtcbiRhbGVydC1jb2xvcjogI2VjNTg0MDtcbiRsaWdodC1ncmF5OiAjZjNmM2YzO1xuJGxpZ2h0LWdyYXktYmFja2dyb3VuZDogI2VmZWZlZjtcbiRtZWRpdW0tZ3JheTogI2NhY2FjYTtcbiRkYXJrLWdyYXk6ICM0NjQ2NDY7XG4kYmxhY2s6ICMzMzMzMzM7XG4kdHJ1ZS1ibGFjazogIzAwMDtcbiR3aGl0ZTogI2ZlZmVmZTtcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiAnbXVzZW8tc2Fucycsc2Fucy1zZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDJyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDJyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IDMwMDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IDYwMDtcbiRnbG9iYWwtcmFkaXVzOiAwLjRyZW07XG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHI7XG5cbi8vIENvbG9yc1xuJGxpZ2h0LWJsdWU6ICMwMGIzZTM7XG4kZGFyay1ibHVlOiAjMzczYzk3O1xuJGxpZ2h0LXB1cnBsZTogIzZmM2Q5ODtcbiRkYXJrLXB1cnBsZTogIzQ4Mjc2MjtcbiRob3QtcGluazogI2Q4MmY4OTtcbiRkYXJrLXBpbms6ICNiYjFlNmQ7XG4kZ3JlZW46ICMzZWIwNDk7XG4kb3JhbmdlOiAjZjA3NzIyO1xuJHllbGxvdzogI2ZmZWU1ZTtcblxuLy8gMi4gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbik7XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKTtcblxuLy8gMy4gVGhlIEdyaWRcbi8vIC0tLS0tLS0tLS0tXG5cbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbi1jb3VudDogMTI7XG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAoXG4gIHNtYWxsOiAyMHB4LFxuICBtZWRpdW06IDMwcHgsXG4pO1xuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWU7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICdtaW5pb24tcHJvJyxzZXJpZjtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlO1xuJGhlYWRlci1zaXplczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6IDMwLFxuICAgICdoMic6IDI4LFxuICAgICdoMyc6IDI2LFxuICAgICdoNCc6IDIwLFxuICAgICdoNSc6IDE4LFxuICAgICdoNic6IDE2LFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiA0OCxcbiAgICAnaDInOiA0NCxcbiAgICAnaDMnOiAzMSxcbiAgICAnaDQnOiAyNSxcbiAgICAnaDUnOiAyMCxcbiAgICAnaDYnOiAxNixcbiAgKSxcbik7XG4kaGVhZGVyLWNvbG9yOiAkYmxhY2s7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuMjtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJHNtYWxsLWZvbnQtc2l6ZTogODAlO1xuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMnJlbTtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKTtcbiRhbmNob3ItY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmU7XG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG87XG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpO1xuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS4zO1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjM7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiAkYWxlcnQtY29sb3I7XG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiAkYWxlcnQtY29sb3I7XG4kaW5wdXQtZXJyb3ItY29sb3I6ICRhbGVydC1jb2xvcjtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogZm9yZWdyb3VuZCgkYWNjb3JkaW9uLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICNhMmEyYTI7XG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJGFjY29yZGlvbi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogZm9yZWdyb3VuZCgkYmFkZ2UtYmFja2dyb3VuZCk7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlO1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tcGFkZGluZzogMC41ZW0gMS4yNWVtO1xuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJ1dHRvbi1maWxsOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4kYnV0dG9uLWNvbG9yOiAjZmZmO1xuJGJ1dHRvbi1jb2xvci1hbHQ6ICMwMDA7XG4vLyAkYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLXJhZGl1czogMDtcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMS4ycmVtLFxuICBsYXJnZTogMS41cmVtLFxuKTtcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcblxuLy8gMTIuIEJ1dHRvbiBHcm91cFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nO1xuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMDtcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW07XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDbG9zZSBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IDFyZW07XG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAwLjVyZW07XG4kY2xvc2VidXR0b24tc2l6ZTogMmVtO1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXk7XG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcblxuLy8gMTUuIERyaWxsZG93blxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbi8vIDE2LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTcuIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweDtcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG5cbi8vIDE4LiBGbGV4IFZpZGVvXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kZmxleHZpZGVvLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRmbGV4dmlkZW8tcmF0aW86IDQgYnkgMztcbiRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbjogMTYgYnkgOTtcblxuLy8gMTkuIEZvcm1zXG4vLyAtLS0tLS0tLS1cblxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCk7XG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKTtcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKTtcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KTtcbiRoZWxwdGV4dC1jb2xvcjogIzMzMztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogIzMzMztcbiRzZWxlY3QtcmFkaXVzOiAwO1xuJGlucHV0LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAwIHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMCAwIDAgcmdiYSgkbWVkaXVtLWdyYXksIDEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogaW5zZXQgMCAwIDJweCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBkZWZhdWx0O1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6IDA7XG5cbi8vIDIwLiBMYWJlbFxuLy8gLS0tLS0tLS0tXG5cbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRsYWJlbC1jb2xvcjogZm9yZWdyb3VuZCgkbGFiZWwtYmFja2dyb3VuZCk7XG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW07XG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjEuIE1lZGlhIE9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJTtcblxuLy8gMjIuIE1lbnVcbi8vIC0tLS0tLS0tXG5cbiRtZW51LW1hcmdpbjogMDtcbiRtZW51LW1hcmdpbi1uZXN0ZWQ6IDFyZW07XG4kbWVudS1pdGVtLXBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuJG1lbnUtZXhwYW5kLW1heDogNjtcblxuLy8gMjMuIE9mZi1jYW52YXNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRvZmZjYW52YXMtc2l6ZTogMjUwcHg7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJG9mZmNhbnZhcy16aW5kZXg6IC0xO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuJG1haW5jb250ZW50LXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNSk7XG5cbi8vIDI0LiBPcmJpdFxuLy8gLS0tLS0tLS0tXG5cbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheTtcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcblxuLy8gMjUuIFBhZ2luYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApO1xuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiBmb3JlZ3JvdW5kKCRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50KTtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO1xuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xuXG4vLyAyNi4gUHJvZ3Jlc3MgQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW07XG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDI3LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA2MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJHJldmVhbC1vZmZzZXQ6IHJlbS1jYWxjKDEwMCk7XG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHJldmVhbC16aW5kZXg6IDEwMDU7XG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpO1xuXG4vLyAyOC4gU2xpZGVyXG4vLyAtLS0tLS0tLS0tXG5cbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAkc2xpZGVyLWhlaWdodDtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuXG4vLyAyOS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDMwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1zdHJpcGU6IGV2ZW47XG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMik7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlO1xuXG4vLyAzMS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5O1xuJHRhYi1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCR0YWItYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiR0YWItZXhwYW5kLW1heDogNjtcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheTtcbiR0YWItY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkdGFiLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyAzMi4gVGh1bWJuYWlsXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlO1xuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDtcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzMuIFRpdGxlIEJhclxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrO1xuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtO1xuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQ7XG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheTtcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG5cbi8vIDM0LiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGU7XG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1waXAtb2Zmc2V0OiAxLjI1cmVtO1xuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzUuIFRvcCBCYXJcbi8vIC0tLS0tLS0tLS0tXG5cbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMXJlbTtcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4O1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxleC1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtcm93LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIHJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLCBpbiBjYXNlIHRoZSByb3cgaXMgbmVzdGVkLlxuQG1peGluIGZsZXgtZ3JpZC1yb3coXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHdpZHRoOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRiYXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYG51bGxgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXG4vLy8gICAtIGBzaHJpbmtgIHdpbGwgbWFrZSB0aGUgY29sdW1uIGNvbnRyYWN0LCBzbyBpdCBvbmx5IHRha2VzIHVwIHRoZSBob3Jpem9udGFsIHNwYWNlIGl0IG5lZWRzLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW251bGxdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi5cbkBmdW5jdGlvbiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zOiBudWxsKSB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICRmbGV4OiAxIDEgMHB4O1xuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxuXG4gIEByZXR1cm4gJGZsZXg7XG59XG5cbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW251bGxdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2UgYmV0d2VlbiBjb2x1bW5zLCBhZGRlZCBhcyBhIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcuXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAvLyBCYXNlIHByb3BlcnRpZXNcbiAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkdmFsdWUpIC8gMjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkZ3V0dGVyKSA+IDAge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgfVxuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggZ3JpZCBjb2x1bW4uIENvbHVtbnMgd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtZ3JpZC1vcmRlcigkb3JkZXI6IDApIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZmxleC1vcmRlcigpLiBmbGV4LWdyaWQtb3JkZXIoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjMuJztcbiAgQGluY2x1ZGUgZmxleC1vcmRlcigkb3JkZXIpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBjb2x1bW5zIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdy1hbGlnbigkeDogbnVsbCwgJHk6IG51bGwpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZmxleC1hbGlnbigpLiBmbGV4LWdyaWQtcm93LWFsaWduKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi4zLic7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHgsICR5KTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbi1hbGlnbigkeTogbnVsbCkge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBmbGV4LWFsaWduLXNlbGYoKS4gZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuMy4nO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHkpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWdyaWQge1xuICAvLyBSb3dcbiAgLnJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdztcblxuICAgIC8vIE5lc3RpbmcgYmVoYXZpb3JcbiAgICAmICYge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdyhuZXN0LCAkYmFzZTogZmFsc2UpO1xuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuXG4gICAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gICAgLnJvdyAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU291cmNlIG9yZGVyaW5nXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cblxuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gc21hbGwge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgIC5jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigxMDAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LXVuY29sbGFwc2Uge1xuICAgICAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGdyaWQtY29sdW1uLWd1dHRlciwgJC16Zi1zaXplKTtcblxuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIC8vIFJlbW92ZSB0aGVzZSBpbiA2LjNcbiAgQGVhY2ggJHZkaXIsICRwcm9wIGluICQtemYtZmxleC1hbGlnbiB7XG4gICAgLmNvbHVtbi5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBQbGFjZWhvbGRlckluRXh0ZW5kXG4gICAgQGV4dGVuZCAuY29sdW1uO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRiYXNlLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtcm93LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIHJvdy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLCBpbiBjYXNlIHRoZSByb3cgaXMgbmVzdGVkLlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkd2lkdGg6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXIpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfG51bGx9ICRndXR0ZXIgW251bGxdIC0gR3V0dGVyIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyB0aGUgbWFyZ2lucy4gU2V0IHRvIGBudWxsYCB0byByZWZlciB0byB0aGUgcmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIHtcbiAgICAkZ3V0dGVyOiAoc21hbGw6ICRndXR0ZXIpO1xuICB9XG5cbiAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygkdmFsdWUpIC8gMiAqIC0xO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSBvciBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgQGVycm9yICdZb3VyIGxpc3Qgb2YgYnJlYWtwb2ludHMgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGluY2x1ZGUgb25lIG5hbWVkIFwic21hbGxcIiBhbmQgb25lIG5hbWVkIFwibWVkaXVtXCIuJztcbn1cbkBlbHNlIGlmIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBzbWFsbCkgIT0gMCB7XG4gIEBlcnJvciAnWW91ciBcInNtYWxsXCIgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiBzbWFsbCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG4gIC8vIFN0b3JlIHRoZSB2YWx1ZXMgb2YgdGhlIG1hcCBhcyBhIGxpc3QsIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSB3aXRoIG50aFxuICAkdmFsdWVzOiBtYXAtdmFsdWVzKCRtYXApO1xuXG4gIC8vIEdoZXR0byBmb3IgbG9vcFxuICAkaTogMTtcbiAgJGZvdW5kOiBmYWxzZTtcbiAgQGVhY2ggJHZhbCBpbiBtYXAta2V5cygkbWFwKSB7XG4gICAgQGlmICRmb3VuZCA9PSBmYWxzZSB7XG4gICAgICBAaWYgKCRrZXkgPT0gJHZhbCkge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9XG4gICAgICAkaTogJGkgKyAxO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICRpID4gbGVuZ3RoKCRtYXApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG50aCgkdmFsdWVzLCAkaSk7XG4gIH1cbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcC4gSWYgdGhlIGNvbmZpZyBtYXAgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLiBJZiB0aGUgY29uZmlnIG1hcCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gSW5wdXQgY29uZmlnIG1hcC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG4vLyBMZWdhY3kgYnJlYWtwb2ludCB2YXJpYWJsZXNcbi8vIFRoZXNlIHdpbGwgYmUgcmVtb3ZlZCBpbiA2LjNcbiRzbWFsbC11cDogbnVsbDtcbiRzbWFsbC1vbmx5OiBudWxsO1xuJG1lZGl1bS11cDogbnVsbDtcbiRtZWRpdW0tb25seTogbnVsbDtcbiRsYXJnZS11cDogbnVsbDtcbiRsYXJnZS1vbmx5OiBudWxsO1xuJHhsYXJnZS11cDogbnVsbDtcbiR4bGFyZ2Utb25seTogbnVsbDtcbiR4eGxhcmdlLXVwOiBudWxsO1xuJHh4bGFyZ2Utb25seTogbnVsbDtcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4vLy8gVW4tY29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmUtYWRkaW5nIHRoZSBwYWRkaW5nLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyO1xuICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVuY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGJhc2VkIG9uIGEgbnVtYmVyIG9mIGZhY3RvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkY29sdW1uc1xuLy8vICAgV2lkdGggb2YgdGhlIGNvbHVtbi4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgcGVyY2VudGFnZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGNvbHVtbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgc2luZ2xlIGRpZ2l0IHdpbGwgbWFrZSB0aGUgY29sdW1uIHNwYW4gdGhhdCBudW1iZXIgb2YgY29sdW1ucyB3aWRlLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2x1bW4gY291bnQgb2YgdGhlIHBhcmVudCByb3cuXG4vLy8gICAtIEEgc3RyaW5nIG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiB3aWxsIG1ha2UgYSBjb2x1bW4gdGhhdCBpcyAqeCogY29sdW1ucyB3aWRlLCBhc3N1bWluZyAqeSogdG90YWwgY29sdW1ucyBmb3IgdGhlIHBhcmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgY2FsY3VsYXRlZCBwZXJjZW50YWdlIHZhbHVlLlxuQGZ1bmN0aW9uIGdyaWQtY29sdW1uKCRjb2x1bW5zKSB7XG4gICR3aWR0aDogMCU7XG5cbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIGFuZCBjb2x1bW4gY291bnRzXG4gIEBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJGNvbHVtbnMpID09ICclJyB7XG4gICAgICAkd2lkdGg6ICRjb2x1bW5zO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkY29sdW1ucyA8IDEge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBQYXJzaW5nIFwibiBvZiBuXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2UgaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRjb2x1bW5zKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgdGhlIGZvcm1hdCBcIm4gb2YgblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZShudGgoJGNvbHVtbnMsIDEpIC8gbnRoKCRjb2x1bW5zLCAzKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIuJztcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAvLyBHdXR0ZXJzXG4gIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgLyAyO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICB9XG5cbiAgLy8gTGFzdCBjb2x1bW4gYWxpZ25tZW50XG4gIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtcm93O1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyOiAkZ3V0dGVyKTtcblxuICAmLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBmdW5jdGlvbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEByZXR1cm4gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AbWl4aW4gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xuQG1peGluIGdyaWQtY29sLXJvdyhcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVyKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFJlcG9zaXRpb24gYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBvc2l0aW9uIC0gRGlyZWN0aW9uIGFuZCBhbW91bnQgdG8gbW92ZS4gVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnQgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBvciBjZW50ZXIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIiQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICdsZWZ0JzogZmxleC1zdGFydCxcbiAgJ3JpZ2h0JzogZmxleC1lbmQsXG4gICdjZW50ZXInOiBjZW50ZXIsXG4gICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgJ3NwYWNlZCc6IHNwYWNlLWFyb3VuZCxcbik7XG5cbiQtemYtZmxleC1hbGlnbjogKFxuICAndG9wJzogZmxleC1zdGFydCxcbiAgJ2JvdHRvbSc6IGZsZXgtZW5kLFxuICAnbWlkZGxlJzogY2VudGVyLFxuICAnc3RyZXRjaCc6IHN0cmV0Y2gsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLidcbiAgICB9XG4gIH1cblxuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJ1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nXG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNvbHVtbiddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cbkBtaXhpbiBncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nXG4pIHtcbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8kbik7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAgICY6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoI3skbn1uKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXh0cmEgQ1NTIHRvIGJsb2NrIGdyaWQgY2hpbGRyZW4gc28gdGhlIGxhc3QgaXRlbXMgaW4gdGhlIHJvdyBjZW50ZXIgYXV0b21hdGljYWxseS4gQXBwbHkgdGhpcyB0byB0aGUgY29sdW1ucywgbm90IHRoZSByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgaXRlbXMgdGhhdCBhcHBlYXIgaW4gZWFjaCByb3cuXG5AbWl4aW4gZ3JpZC1sYXlvdXQtY2VudGVyLWxhc3QoJG4pIHtcbiAgQGZvciAkaSBmcm9tIDEgdG8gJG4ge1xuICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgbGVmdCkge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNiB7XG4gICAgICAuI3skLXpmLXNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT7igJQ8aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBvZiBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHNpemVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zaXplczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6IDI0LFxuICAgICdoMic6IDIwLFxuICAgICdoMyc6IDE5LFxuICAgICdoNCc6IDE4LFxuICAgICdoNSc6IDE3LFxuICAgICdoNic6IDE2LFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiA0OCxcbiAgICAnaDInOiA0MCxcbiAgICAnaDMnOiAzMSxcbiAgICAnaDQnOiAyNSxcbiAgICAnaDUnOiAyMCxcbiAgICAnaDYnOiAxNixcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZW9jcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206ICRoZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICBsaW5lLWhlaWdodDogJGhlYWRlci1saW5laGVpZ2h0O1xuXG4gICAgc21hbGwge1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc2l6ZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgICAjeyRoZWFkZXJ9IHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKCRmb250LXNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyIHtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICB9XG5cbiAgLy8gQ29kZVxuICBjb2RlIHtcbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICAvLyBVc2UgdG8gcmVtb3ZlIHRoZSBidWxsZXRzIGZyb20gYW4gdW5vcmRlcmVkIGxpc3RcbiAgLm5vLWJ1bGxldCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICdzbWFsbCcge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBhbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLCBpZiB0aGUgYmFja2dyb3VuZCBpcyBsaWdodC5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogZm9yZWdyb3VuZCgkYmFja2dyb3VuZCk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgYmFja2dyb3VuZCBmaWxsIG9uIGhvdmVyIGFuZCBmb2N1cyBmb3IgaG9sbG93IGJ1dHRvbnMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcjogJHByaW1hcnktY29sb3IpIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC01MCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQsIHJlc2V0aW5nIHRoZSBjdXJzb3IsIGFuZCBkaXNhYmxpbmcgcG9pbnRlciBldmVudHMuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7IGZvbnQtc2l6ZTogJHZhbHVlOyB9XG4gICAgfVxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG9sbG93IHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgJi5ob2xsb3cge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6IGZsb29yKCgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSkpO1xuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cmVkKCRjb2xvcil9LCAje2dyZWVuKCRjb2xvcil9LCAje2JsdWUoJGNvbG9yKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skcmdifVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlKSB7XG4gICRtYXA6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRtYXA6IG1hcC1yZW1vdmUoJG1hcCwgc21hbGwpO1xuICB9XG5cbiAgQGVhY2ggJHNpemUgaW4gJG1hcCB7XG4gICAgJC16Zi1zaXplOiAkc2l6ZSAhZ2xvYmFsO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogZGVmYXVsdCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nRWxlbWVudFxuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cbiAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAkZm9ybS1zcGFjaW5nICogMS41KTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzIDAgMCAkZ2xvYmFsLXJhZGl1cztcbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdTZWxlY3RvclxuICAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMik7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1hbHBoYSBbMC4xXSAtIFRyYW5zcGFyZW5jeSBsZXZlbCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcbiAgJGJhY2tncm91bmQtYWxwaGE6IDAuMVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWFscGhhKTtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAoMS8xNik7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAoMS8xNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSBzbWFsbCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgcGx1cyBhbmQgbWludXMgaWNvbnMgdG8gdGhlIHNpZGUgb2YgZWFjaCBhY2NvcmRpb24gdGl0bGUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgYmFja2dyb3VuZDogJGFjY29yZGlvbi1iYWNrZ3JvdW5kO1xuICBib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gIGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3I7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn4oCTJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQge1xuICBwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZztcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250YWluZXI7XG4gIH1cblxuICAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgIC8vIFRoaXMgY2xhc3MgZG9lc24ndCBuZWVkIHN0eWxlcyFcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0IGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1zaXplOiAyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICAjeyR4fTogJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsO1xuICAjeyR5fTogJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDtcbiAgZm9udC1zaXplOiAkY2xvc2VidXR0b24tc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRkcm9wZG93bi1mb250LXNpemU7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgei1pbmRleDogMTA7XG5cbiAgJi5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xuICAgIC5kcm9wZG93bi1wYW5lLiN7JG5hbWV9IHtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbkBtaXhpbiBsZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDVweCwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogMS41cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSBsZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudSB7XG4gIC5kcm9wZG93bi5tZW51IHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIH1cblxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gc21hbGwge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFNlbGVjdG9yRGVwdGhcbiAgICAmOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLFxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxleC12aWRlb1xuLy8vL1xuXG4vLy8gTWFyZ2luIGJlbG93IGEgZmxleCB2aWRlbyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmxleHZpZGVvLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgdXNlZCB0byBjcmVhdGUgYSA0OjMgYXNwZWN0IHJhdGlvLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1yYXRpbzogNCBieSAzICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyB1c2VkIHRvIGNyZWF0ZSBhIDE2OjkgYXNwZWN0IHJhdGlvLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1yYXRpby13aWRlc2NyZWVuOiAxNiBieSA5ICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyBhIHBlcmNlbnRhZ2UgaGVpZ2h0IHRoYXQgY2FuIGJlIHVzZWQgYXMgcGFkZGluZyBpbiBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgYHBhZGRpbmctYm90dG9tYCBwYXJhbWV0ZXIgb2YgYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cbkBmdW5jdGlvbiBmbGV4LXZpZGVvKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cblxuLy8vIENyZWF0ZXMgYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyBbJGZsZXh2aWRlby1yYXRpb10gLSBSYXRpbyB0byB1c2UgZm9yIHRoZSBjb250YWluZXIsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiBmbGV4LXZpZGVvKCRyYXRpbzogJGZsZXh2aWRlby1yYXRpbykge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IGZsZXgtdmlkZW8oJHJhdGlvKTtcbiAgbWFyZ2luLWJvdHRvbTogJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LXZpZGVvIHtcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIGZsZXgtdmlkZW87XG5cbiAgICAmLndpZGVzY3JlZW4ge1xuICAgICAgcGFkZGluZy1ib3R0b206IGZsZXgtdmlkZW8oJGZsZXh2aWRlby1yYXRpby13aWRlc2NyZWVuKTtcbiAgICB9XG5cbiAgICAmLnZpbWVvIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiBmb3JlZ3JvdW5kKCRsYWJlbC1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGJhc2Ugc3R5bGVzIGZvciBhIGxhYmVsLlxuQG1peGluIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAkbGFiZWwtcGFkZGluZztcbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItcmFkaXVzOiAkbGFiZWwtcmFkaXVzO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkbmFtZSAhPSBwcmltYXJ5IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lZGlhLW9iamVjdFxuLy8vL1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIExlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb24gc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgaW1hZ2VzIHdpdGhpbiBhIG1lZGlhIG9iamVjdCwgd2hlbiB0aGUgb2JqZWN0IGlzIHN0YWNrZWQgdmVydGljYWxseS4gU2V0IHRvICdhdXRvJyB0byB1c2UgdGhlIGltYWdlJ3MgbmF0dXJhbCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbWVkaWEgb2JqZWN0IGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3QtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG4gIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgYmxvY2spO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXNlY3Rpb24oJHBhZGRpbmc6ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmcpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJHBhZGRpbmc7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHN0YWNrIHNlY3Rpb25zIG9mIGEgbWVkaWEgb2JqZWN0LiBBcHBseSB0aGlzIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnRzLCBub3QgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZztcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAkbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZWRpYS1vYmplY3Qge1xuICAubWVkaWEtb2JqZWN0IHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3QtY29udGFpbmVyO1xuXG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICYuc3RhY2stZm9yLXNtYWxsIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXN0YWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXNlY3Rpb247XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICYubWlkZGxlIHsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgICAgJi5ib3R0b20geyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIE1lbnUuXG5AbWl4aW4gbWVudS1iYXNlIHtcbiAgbWFyZ2luOiAkbWVudS1tYXJnaW47XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zIGFyZSB0YWJsZSBjZWxsIHRvIGFsbG93IGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgPiBsaSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgbGluZSBoZWlnaHQgdG8gbWFrZSB0aGUgaGVpZ2h0IG9mIHRoZSBvdmVyYWxsIGl0ZW0gZWFzaWVyIHRvIGNhbGN1bGF0ZVxuICA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgICA+IGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgPiBsaSAgPiBhIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbkBtaXhpbiBtZW51LXNpbXBsZSB7XG4gIGxpIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IGdldC1zaWRlKCRtZW51LWl0ZW0tcGFkZGluZywgJGdsb2JhbC1yaWdodCk7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHBhZGRpbmcgW2F1dG9dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG5AbWl4aW4gbWVudS1uZXN0ZWQoJG1hcmdpbjogJG1lbnUtbWFyZ2luLW5lc3RlZCkge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xufVxuXG4vLy8gQWRkcyBzdXBwb3J0IGZvciBpY29ucyB0byBNZW51IGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHBvc2l0aW9uIFtzaWRlXSAtIFBvc2l0aW9uaW5nIGZvciBpY29ucy4gQ2FuIGJlIGBzaWRlYCAobGVmdCwgb3IgcmlnaHQgb24gUlRMKSBvciBgdG9wYC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgdGhlIHNoYXJlZCBDU1MgYmV0d2VlbiBzaWRlLSBhbmQgdG9wLWFsaWduZWQgaWNvbnMgZnJvbSBiZWluZyBwcmludGVkLiBTZXQgdGhpcyB0byBgZmFsc2VgIGlmIHlvdSdyZSBjYWxsaW5nIHRoZSBtaXhpbiBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBlbGVtZW50LlxuQG1peGluIG1lbnUtaWNvbnMoJHBvc2l0aW9uOiBzaWRlLCAkYmFzZTogdHJ1ZSkge1xuICBAaWYgJGJhc2Uge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGltZyxcbiAgICAgICAgaSB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGkgKyBzcGFuLFxuICAgICAgICBpbWcgKyBzcGFuIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRwb3NpdGlvbiA9PSBzaWRlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtZW51LWljb24tc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgID4gbGkgPiBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkbWVudS1pY29uLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtZW51LWljb24tc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG5cbiAgICAvLyBPcmllbnRhdGlvblxuICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gc21hbGwge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGhcbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuXG4gICAgICA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBpY29uc1xuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucyh0b3AsICRiYXNlOiBmYWxzZSk7XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtdGV4dCB7XG4gICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICB9XG5cbiAgLy8gQWxpZ24gY2VudGVyXG4gIC5tZW51LWNlbnRlcmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+IC5tZW51IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbWVudS1pY29uIHtcbiAgLm1lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogJHRpdGxlYmFyLWljb24tY29sb3IsICRjb2xvci1ob3ZlcjogJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXIpO1xuICB9XG5cbiAgLm1lbnUtaWNvbi5kYXJrIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxuQG1peGluIHJldmVhbC1vdmVybGF5IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4sXG4gIC5jb2x1bW5zIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIER1cGxpY2F0ZVByb3BlcnR5XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlcjogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcbiAgLy8gW1RPRE9dIElzIHRoaXMgbmVjZXNzYXJ5P1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nRWxlbWVudFxuICBib2R5LmlzLXJldmVhbC1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuICAgIC8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHNjc3MtbGludDpkaXNhYmxlIEltcG9ydGFudFJ1bGUsIFNwYWNlQWZ0ZXJDb21tYSwgU2luZ2xlTGluZVBlclByb3BlcnR5XG5cbkBtaXhpbiAtbW90aW9uLXVpLWRlZmF1bHRzIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktZWFzaW5ncywgZGVmYXVsdCk7XG59XG5cbi8vIFRyYW5zaXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS10cmFuc2l0aW9ucyB7XG4gIC8vIFNsaWRlXG4gIC5zbGlkZS1pbi1kb3duICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgZG93bik7IH1cbiAgLnNsaWRlLWluLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICByaWdodCk7IH1cbiAgLnNsaWRlLWluLXVwICAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICB1cCk7IH1cbiAgLnNsaWRlLWluLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBsZWZ0KTsgfVxuICAuc2xpZGUtb3V0LWRvd24gICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGRvd24pOyB9XG4gIC5zbGlkZS1vdXQtcmlnaHQgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgcmlnaHQpOyB9XG4gIC5zbGlkZS1vdXQtdXAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgdXApOyB9XG4gIC5zbGlkZS1vdXQtbGVmdCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgbGVmdCk7IH1cblxuICAvLyBGYWRlXG4gIC5mYWRlLWluICB7IEBpbmNsdWRlIG11aS1mYWRlKGluLCAgMCwgMSk7IH1cbiAgLmZhZGUtb3V0IHsgQGluY2x1ZGUgbXVpLWZhZGUob3V0LCAxLCAwKTsgfVxuXG4gIC8vIEhpbmdlXG4gIC5oaW5nZS1pbi1mcm9tLXRvcCAgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1yaWdodCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1ib3R0b20gICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGJvdHRvbSk7IH1cbiAgLmhpbmdlLWluLWZyb20tbGVmdCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBsZWZ0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteCAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteSAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCwgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tdG9wICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWJvdHRvbSAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBib3R0b20pOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgbGVmdCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQsIGNlbnRlcik7IH1cblxuICAvLyBTY2FsZVxuICAuc2NhbGUtaW4tdXAgICAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDAuNSwgMSk7IH1cbiAgLnNjYWxlLWluLWRvd24gIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAxLjUsIDEpOyB9XG4gIC5zY2FsZS1vdXQtdXAgICB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMS41KTsgfVxuICAuc2NhbGUtb3V0LWRvd24geyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDAuNSk7IH1cblxuICAvLyBTcGluXG4gIC5zcGluLWluICAgICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY3cpOyB9XG4gIC5zcGluLW91dCAgICB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY3cpOyB9XG4gIC5zcGluLWluLWNjdyAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGNjdyk7IH1cbiAgLnNwaW4tb3V0LWNjdyB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY2N3KTsgfVxuXG4gIC8vIFRyYW5zaXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgdHJhbnNpdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQW5pbWF0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktYW5pbWF0aW9ucyB7XG4gIC5zaGFrZSAgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc2hha2UpOyB9XG4gIC5zcGluLWN3ICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3Bpbik7IH1cbiAgLnNwaW4tY2N3IHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKGNjdykpOyB9XG4gIC53aWdnbGUgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24od2lnZ2xlKTsgfVxuXG4gIC5zaGFrZSxcbiAgLnNwaW4tY3csXG4gIC5zcGluLWNjdyxcbiAgLndpZ2dsZSB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgfVxuXG4gIC8vIEFuaW1hdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbiAgLmluZmluaXRlIHsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgYW5pbWF0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8vIEZvcm1hdCBmb3IgQ1NTIGNsYXNzZXMgY3JlYXRlZCB3aXRoIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gYXBwZW5kIFt0cnVlXSAtIERlZmluZXMgaWYgc2VsZWN0b3JzIGFyZSBjaGFpbmVkIHRvIHRoZSBzZWxlY3RvciAoYC5jbGFzcy5lbnRlcmApLCBvciBhcHBlbmRlZCBhcyBhIG5ldyBjbGFzcyAoYC5jbGFzcy1lbnRlcmApLlxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJ211aS0nXSAtIFByZWZpeCB0byBhZGQgYmVmb3JlIHRoZSBzdGF0ZSBvZiBhIGNsYXNzLiBFbnRlciBhbiBlbXB0eSBzdHJpbmcgdG8gdXNlIG5vIHByZWZpeC5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWyctYWN0aXZlJ10gLSBTdWZmaXggdG8gYWRkIHRvIHRoZSBhY3RpdmUgc3RhdGUgY2xhc3MuXG4kbW90aW9uLXVpLWNsYXNzZXM6IChcbiAgY2hhaW46IHRydWUsXG4gIHByZWZpeDogJ211aS0nLFxuICBhY3RpdmU6ICctYWN0aXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBTdGF0ZSBuYW1lcyB0byByZWZlcmVuY2Ugd2hlbiB3cml0aW5nIG1vdGlvbiBjbGFzc2VzLiBUbyB1c2UgbXVsdGlwbGUgY2xhc3MgbmFtZXMgZm9yIG9uZSBzdGF0ZSwgZW50ZXIgYSBsaXN0IG9mIHN0cmluZ3MgaW5zdGVhZCBvZiBvbmUgc3RyaW5nLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1zdGF0ZXM6IChcbiAgaW46ICdlbnRlcicsXG4gIG91dDogJ2xlYXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNwZWVkIHRoYXQgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMgcGxheSBhdCwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBzcGVlZC5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3BlZWRzOiAoXG4gIGRlZmF1bHQ6IDUwMG1zLFxuICBzbG93OiA3NTBtcyxcbiAgZmFzdDogMjUwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkZWxheSB0byBhZGQgYmVmb3JlIG1vdGlvbiwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBkZWxheS5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZGVsYXlzOiAoXG4gIGRlZmF1bHQ6IDAsXG4gIHNob3J0OiAzMDBtcyxcbiAgbG9uZzogNzAwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBlYXNpbmcgZm9yIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zLCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGVhc2luZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZWFzaW5nczogKFxuICBkZWZhdWx0OiBsaW5lYXIsXG4gIGxpbmVhcjogbGluZWFyLFxuICBlYXNlOiBlYXNlLFxuICBlYXNlLWluOiBlYXNlLWluLFxuICBlYXNlLW91dDogZWFzZS1vdXQsXG4gIGVhc2UtaW4tb3V0OiBlYXNlLWluLW91dCxcbiAgYm91bmNlLWluOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSksXG4gIGJvdW5jZS1vdXQ6IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSksXG4gIGJvdW5jZS1pbi1vdXQ6IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBNaXNjZWxsYW5lb3VzIHNldHRpbmdzIHJlbGF0ZWQgdG8gTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbZmFsc2VdIC0gRGVmaW5lcyBpZiBzbGlkZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIGhpbmdlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc2NhbGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzcGluIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4kbW90aW9uLXVpLXNldHRpbmdzOiAoXG4gIHNsaWRlLWFuZC1mYWRlOiBmYWxzZSxcbiAgaGluZ2UtYW5kLWZhZGU6IHRydWUsXG4gIHNjYWxlLWFuZC1mYWRlOiB0cnVlLFxuICBzcGluLWFuZC1mYWRlOiB0cnVlLFxuICBhY3RpdmF0ZS1xdWV1ZS1jbGFzczogJ2lzLWFuaW1hdGluZycsXG4pICFkZWZhdWx0O1xuIiwiLy8gSW50ZXJuYWwgY291bnRlciBmb3IgY3JlYXRpbmcgdW5pcXVlIGtleWZyYW1lIG5hbWVzXG4kLW11aS1jdXN0b206IDA7XG5cbi8vLyBDcmVhdGVzIGEga2V5ZnJhbWUgZnJvbSBvbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zLiBVc2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGBtdWktYW5pbWF0aW9uYCBpZiB5b3Ugd2FudCB0byBjcmVhdGUgYSBrZXlmcmFtZSBhbmltYXRpb24gKndpdGhvdXQqIGF1dG9tYXRpY2FsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGtleWZyYW1lLlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkZWZmZWN0cy4uLikge1xuICAkb2JqOiAtbXVpLXByb2Nlc3MtYXJncygkZWZmZWN0cy4uLik7XG4gICRvYmo6IG1hcC1yZW1vdmUoJG9iaiwgbmFtZSk7XG5cbiAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgLy8gTm93IGl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICBAZWFjaCAkcGN0LCAkcHJvcHMgaW4gJG9iaiB7XG4gICAgICAjey1tdWkta2V5ZnJhbWUtcGN0KCRwY3QpfSB7XG4gICAgICAgIC8vIExhc3RseSwgaXRlcmF0ZSB0aHJvdWdoIGVhY2ggQ1NTIHByb3BlcnR5IHdpdGhpbiBhIHBlcmNlbnRhZ2UgYW5kIHByaW50IGl0IG91dFxuICAgICAgICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRwcm9wcyB7XG4gICAgICAgICAgI3skcHJvcH06ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHN0cmluZyBmb3IgYSBDU1Mga2V5ZnJhbWUsIGJ5IGNvbnZlcnRpbmcgYSBsaXN0IG9mIG51bWJlcnMgdG8gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkaW5wdXQgLSBMaXN0IG9mIG51bWJlcnMgdG8gdXNlLlxuLy8vIEByZXR1cm4ge1N0cmluZ30gQSBzZXQgb2YgY29tbWEtc2VwYXJhdGVkIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtcGN0KCRpbnB1dCkge1xuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgdHlwZS1vZigkaW5wdXQpID09ICdudW1iZXInIHtcbiAgICAkb3V0cHV0OiAoJGlucHV0ICogMSUpO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbGlzdCcge1xuICAgIEBlYWNoICRpIGluICRpbnB1dCB7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgKCRpICogMSUpLCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gUHJpbnRzIHRoZSBDU1MgcHJvcGVydGllcyBmcm9tIGEgc3BlY2lmaWMga2V5IGluIGEga2V5ZnJhbWVzIG1hcC4gVXNlZCB0byBib3Jyb3cgQ1NTIGZyb20ga2V5ZnJhbWUgZnVuY3Rpb25zIGZvciB1c2UgaW4gdHJhbnNpdGlvbnMuXG4vLy8gQHBhcmFtIHtNYXB9ICRrZiAtIEtleWZyYW1lIG1hcCB0byBleHRyYWN0IGZyb20uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRrZXkgLSBLZXkgaW4gdGhlIG1hcCB0byBwcmludCB0aGUgQ1NTIG9mLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC1tdWkta2V5ZnJhbWUtZ2V0KCRrZiwgJGtleSkge1xuICAkbWFwOiBtYXAtZ2V0KCRrZiwgJGtleSk7XG5cbiAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkbWFwIG9yICgpIHtcbiAgICAvLyBTb21lIGtleWZyYW1lIG1hcHMgc3RvcmUgdHJhbnNmb3JtcyBhcyBxdW90ZWQgc3RyaW5nc1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycge1xuICAgICAgJHZhbHVlOiB1bnF1b3RlKCR2YWx1ZSk7XG4gICAgfVxuICAgICN7JHByb3B9OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8vIFJlZm9ybWF0cyBhIG1hcCBjb250YWluaW5nIGtleXMgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzLCBzbyB0aGF0IGVhY2gga2V5IGlzIGEgc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNwbGl0IHVwLlxuLy8vIEByZXR1cm4ge01hcH0gQSByZWZvcm1hdHRlZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBTcGxpdCBrZXlzIHdpdGggbXVsdGlwbGUgdmFsdWVzIGludG8gaW5kaXZpZHVhbCBrZXlzXG4gIEBlYWNoICRrZXksICRpdGVtIGluICRtYXAge1xuICAgICRrZXktdHlwZTogdHlwZS1vZigka2V5KTtcblxuICAgIEBpZiAka2V5LXR5cGUgPT0gJ251bWJlcicge1xuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRpdGVtKSk7XG4gICAgfSBAZWxzZSBpZiAka2V5LXR5cGUgPT0gJ2xpc3QnIHtcbiAgICAgIEBlYWNoICRrIGluICRrZXkge1xuICAgICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGs6ICRpdGVtKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIGEgc2VyaWVzIG9mIGtleWZyYW1lIG9iamVjdHMgaW50byBvbmUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXBzLi4uIC0gQSBzZXJpZXMgb2YgbWFwcyB0byBtZXJnZSwgYXMgaW5kaXZpZHVhbCBwYXJhbWV0ZXJzLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBrZXlmcmFtZSBvYmplY3QuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1jb21iaW5lKCRtYXBzLi4uKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBtYXAgcGFzc2VkIGluXG4gIEBlYWNoICRtYXAgaW4gJG1hcHMge1xuICAgIEBpZiB0eXBlLW9mKCRtYXApID09ICdzdHJpbmcnIHtcbiAgICAgICRtYXA6IGNhbGwoJG1hcCk7XG4gICAgfVxuXG4gICAgJG1hcDogLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKTtcblxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIGluIHRoZSBtYXBcbiAgICAvLyAka2V5IGlzIHRoZSBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgLy8gJHZhbHVlIGlzIGEgbWFwIG9mIENTUyBwcm9wZXJ0aWVzXG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICAgJG5ldy12YWx1ZTogKCk7XG5cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbmV3LW1hcCwgJGtleSkge1xuICAgICAgICAvLyBJZiB0aGUgbWFwIGFscmVhZHkgaGFzIHRoZSBrZXlmcmFtZSAlLCBhcHBlbmQgdGhlIG5ldyBwcm9wZXJ0eVxuICAgICAgICAkbmV3LXZhbHVlOiAtbXVpLW1lcmdlLXByb3BlcnRpZXMobWFwLWdldCgkbmV3LW1hcCwgJGtleSksICR2YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBjcmVhdGUgYSBuZXcgbWFwIHdpdGggdGhlIG5ldyBwcm9wZXJ0eVxuICAgICAgICAkbmV3LXZhbHVlOiAkdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmFsbHksIG1lcmdlIHRoZSBtb2RpZmllZCBrZXlmcmFtZSB2YWx1ZSBpbnRvIHRoZSBvdXRwdXQgbWFwXG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJG5ldy12YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1ha2UgYSBuYW1lIGZvciB0aGUga2V5ZnJhbWVzXG4gICQtbXVpLWN1c3RvbTogJC1tdWktY3VzdG9tICsgMSAhZ2xvYmFsO1xuICAkbWFwLW5hbWU6IChuYW1lOiAnY3VzdG9tLSN7JC1tdWktY3VzdG9tfScpO1xuICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAkbWFwLW5hbWUpO1xuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyB0d28gbWFwcyBvZiBDU1MgcHJvcGVydGllcyBpbnRvIG9uZSBtYXAuIElmIGJvdGggbWFwcyBoYXZlIGEgdHJhbnNmb3JtIHByb3BlcnR5LCB0aGUgdmFsdWVzIGZyb20gZWFjaCB3aWxsIGJlIGNvbWJpbmVkIGludG8gb25lIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7TWFwfSAkb25lIC0gRmlyc3QgbWFwIHRvIG1lcmdlLlxuLy8vIEBwYXJhbSB7TWFwfSAkdHdvIC0gU2Vjb25kIG1hcCB0byBtZXJnZS5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWktbWVyZ2UtcHJvcGVydGllcygkb25lLCAkdHdvKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkb25lLCB0cmFuc2Zvcm0pIGFuZCBtYXAtaGFzLWtleSgkdHdvLCB0cmFuc2Zvcm0pIHtcbiAgICAkdHJhbnNmb3JtOiBqb2luKG1hcC1nZXQoJG9uZSwgdHJhbnNmb3JtKSwgbWFwLWdldCgkdHdvLCB0cmFuc2Zvcm0pKTtcbiAgICAkb25lOiBtYXAtbWVyZ2UoJG9uZSwgKHRyYW5zZm9ybTogJHRyYW5zZm9ybSkpO1xuICAgICR0d286IG1hcC1yZW1vdmUoJHR3bywgdHJhbnNmb3JtKTtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLW1lcmdlKCRvbmUsICR0d28pO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzbGlkaW5nIHRyYW5zaXRpb24gYnkgdHJhbnNsYXRpbmcgdGhlIGVsZW1lbnQgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtsZWZ0XSAtIERpcmVjdGlvbiB0byBzbGlkZSB0by4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkYW1vdW50IFsxMDAlXSAtIExlbmd0aCBvZiB0aGUgc2xpZGUgYXMgYSBwZXJjZW50YWdlIHZhbHVlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNsaWRlIChcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogbGVmdCxcbiAgJGFtb3VudDogMTAwJSxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2xpZGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzbGlkZTogc2xpZGUoJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICAvLyBDU1MgT3V0cHV0XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG5cbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBBcHBsaWVzIGJhc2ljIHRyYW5zaXRpb24gc2V0dGluZ3MgdG8gYW4gZWxlbWVudC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiB0cmFuc2l0aW9uLWJhc2ljcyhcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICBAaW5jbHVkZSAtbW90aW9uLXVpLWRlZmF1bHRzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgc2V0dXAgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBzZXR1cCBmb3IgdHJhbnNpdGlvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIGFjdGl2ZSBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIGFjdGl2YXRlIGEgdHJhbnNpdGlvbiBvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSwgdHJ1ZSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWdnZXIgYW5pbWF0aW9uLCB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIEFuZ3VsYXIncyBgbmctcmVwZWF0YC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXktYW1vdW50IC0gQW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgdG8gYWRkIGJldHdlZW4gZWFjaCBpdGVtJ3MgYW5pbWF0aW9uLlxuQG1peGluIHN0YWdnZXIoJGRlbGF5LWFtb3VudCkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXktYW1vdW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwOyAvLyBQcmV2ZW50IGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGUgdHJhbnNpdGlvbiBieSBhZGp1c3RpbmcgdGhlIG9wYWNpdHkgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFswXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gWzFdIC0gT3BhY2l0eSB0byBlbmQgb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktZmFkZShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDAsXG4gICR0bzogMSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZmFkZTogZmFkZSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMCk7XG5cbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDEwMCk7XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgZWZmZWN0IGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtmcm9tLWJhY2tdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC5cbkBmdW5jdGlvbiBoaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrXG4pIHtcbiAgLy8gUm90YXRpb24gZGlyZWN0aW9ucyB3aGVuIGhpbmdpbmcgZnJvbSBiYWNrIHZzLiBmcm9udFxuICAkcm90YXRpb24tYW1vdW50OiA5MGRlZztcbiAgJHJvdGF0aW9ucy1iYWNrOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgKTtcbiAgJHJvdGF0aW9ucy1mcm9tOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgKTtcblxuICAvLyBSb3RhdGlvbiBvcmlnaW5cbiAgJHJvdGF0aW9uOiAnJztcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1mcm9tLCAkZnJvbSk7XG4gIH0gQGVsc2UgaWYgJHR1cm4tb3JpZ2luID09IGZyb20tYmFjayB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtYmFjaywgJGZyb20pO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnJHR1cm4tb3JpZ2luIG11c3QgYmUgZWl0aGVyIFwiZnJvbS1iYWNrXCIgb3IgXCJmcm9tLWZyb250XCInO1xuICB9XG5cbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxuICAkc3RhcnQ6ICcnO1xuICAkZW5kOiAnJztcbiAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgfSBAZWxzZSB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgfVxuXG4gIC8vIFR1cm4gYXhpc1xuICAkb3JpZ2luOiAnJztcbiAgQGlmICRheGlzID09IGVkZ2Uge1xuICAgICRvcmlnaW46ICRmcm9tO1xuICB9IEBlbHNlIHtcbiAgICAkb3JpZ2luOiBjZW50ZXI7XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ2hpbmdlLSN7JHN0YXRlfS0jeyRmcm9tfS0jeyRheGlzfS0jeyR0dXJuLW9yaWdpbn0nLFxuICAgIDA6ICh0cmFuc2Zvcm06ICRzdGFydCwgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbiksXG4gICAgMTAwOiAodHJhbnNmb3JtOiAkZW5kKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFjayxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgaGluZ2UtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMS41XSAtIFNpemUgdG8gc3RhcnQgYXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxXSAtIFNpemUgdG8gZW5kIGF0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDEuNSxcbiAgJHRvOiAxLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC4gVGhlIGB0dXJuYCB1bml0IGlzIHVzZWQgdG8gc3BlY2lmeSBob3cgZmFyIHRvIHJvdGF0ZS4gYDF0dXJuYCBpcyBlcXVhbCB0byBhIDM2MC1kZWdyZWUgc3Bpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRkaXJlY3Rpb24gW2N3XSAtIERpcmVjdGlvbiB0byBzcGluLiBTaG91bGQgYmUgYGN3YCAoY2xvY2t3aXNlKSBvciBgY2N3YCAoY291bnRlcmNsb2Nrd2lzZSkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzAuNzV0dXJuXSAtIEFtb3VudCB0byBlbGVtZW50IHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAwLjc1dHVybixcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc3Bpbi1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNwaW46IHNwaW4oJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWktYW5pbWF0aW9uKCRhcmdzLi4uKSB7XG4gICRuYW1lOiBtYXAtZ2V0KC1tdWktcHJvY2Vzcy1hcmdzKCRhcmdzLi4uKSwgbmFtZSk7XG4gIEBpbmNsdWRlIG11aS1rZXlmcmFtZXMoJG5hbWUsICRhcmdzLi4uKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHVucXVvdGUoJG5hbWUpO1xufVxuIiwiLy8gIFN0eWxlcyB0aGF0IGFwcGx5IHRvIGVudGlyZSBzaXRlXG4uYnV0dG9uIHtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xuICAgIH1cbiAgICAmLnNlY29uZGFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRzZWNvbmRhcnktY29sb3IsIDEwJSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYWNjZW50LWNvbG9yLCAxMCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuaDEsaDIsaDMsaDQsaDUsaDYge1xuICAgIC8vIGNvbG9yOiAkYmx1ZTtcbn1cbjo6c2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBjb2xvcjogJHdoaXRlO1xufVxuLnZlcnRpY2FsLXBhZCB7XG4gICAgcGFkZGluZy10b3A6IDRyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDRyZW07XG59XG4udmVydGljYWwtcGFkLXRvcCB7XG4gICAgcGFkZGluZy10b3A6IDRyZW07XG59XG4udmVydGljYWwtcGFkLXNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbn1cbi5ib3R0b20tcGFkLXNtYWxsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbn1cbi5ib3R0b20tcGFkLWJpZyB7XG4gICAgcGFkZGluZy1ib3R0b206IDRyZW07XG59XG4ucmVhZC1tb3JlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1mYW1pbHk6IFwia2VwbGVyLXN0ZC1kaXNwbGF5XCIsc2VyaWY7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIC5pY29uIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQtY29sb3I7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAxcHg7XG4gICAgfVxufVxuI3Bvc3QtcGFnaW5hdGlvbiB7XG4gICAgLnRleHQtcmlnaHQge1xuICAgICAgICAucmVhZC1tb3JlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5hY2NvcmRpb24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi8vIHdvcmRwcmVzcyBzdHVmZlxuLyogPVdvcmRQcmVzcyBDb3JlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmFsaWdubm9uZSB7XG4gICAgbWFyZ2luOiA1cHggMjBweCAyMHB4IDA7XG59XG5cbi5hbGlnbmNlbnRlcixcbmRpdi5hbGlnbmNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiA1cHggYXV0byA1cHggYXV0bztcbn1cblxuLmFsaWducmlnaHQge1xuICAgIGZsb2F0OnJpZ2h0O1xuICAgIG1hcmdpbjogNXB4IDAgMjBweCAyMHB4O1xufVxuXG4uYWxpZ25sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDtcbn1cblxuYSBpbWcuYWxpZ25yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbjogNXB4IDAgMjBweCAyMHB4O1xufVxuXG5hIGltZy5hbGlnbm5vbmUge1xuICAgIG1hcmdpbjogNXB4IDIwcHggMjBweCAwO1xufVxuXG5hIGltZy5hbGlnbmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogNXB4IDIwcHggMjBweCAwO1xufVxuXG5hIGltZy5hbGlnbmNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvXG59XG5cbi53cC1jYXB0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMGYwZjA7XG4gICAgbWF4LXdpZHRoOiA5NiU7IC8qIEltYWdlIGRvZXMgbm90IG92ZXJmbG93IHRoZSBjb250ZW50IGFyZWEgKi9cbiAgICBwYWRkaW5nOiA1cHggM3B4IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ud3AtY2FwdGlvbi5hbGlnbm5vbmUge1xuICAgIG1hcmdpbjogNXB4IDIwcHggMjBweCAwO1xufVxuXG4ud3AtY2FwdGlvbi5hbGlnbmxlZnQge1xuICAgIG1hcmdpbjogNXB4IDIwcHggMjBweCAwO1xufVxuXG4ud3AtY2FwdGlvbi5hbGlnbnJpZ2h0IHtcbiAgICBtYXJnaW46IDVweCAwIDIwcHggMjBweDtcbn1cblxuLndwLWNhcHRpb24gaW1nIHtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogOTguNSU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLndwLWNhcHRpb24gcC53cC1jYXB0aW9uLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCA0cHggNXB4O1xufVxuXG4vKiBUZXh0IG1lYW50IG9ubHkgZm9yIHNjcmVlbiByZWFkZXJzLiAqL1xuLnNjcmVlbi1yZWFkZXItdGV4dCB7XG5cdGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogMXB4O1xuXHR3aWR0aDogMXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2NyZWVuLXJlYWRlci10ZXh0OmZvY3VzIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRib3gtc2hhZG93OiAwIDAgMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG5cdGNsaXA6IGF1dG8gIWltcG9ydGFudDtcblx0Y29sb3I6ICMyMTc1OWI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGZvbnQtc2l6ZTogMC44NzVyZW07XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRoZWlnaHQ6IGF1dG87XG5cdGxlZnQ6IDVweDtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0cGFkZGluZzogMTVweCAyM3B4IDE0cHg7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dG9wOiA1cHg7XG5cdHdpZHRoOiBhdXRvO1xuXHR6LWluZGV4OiAxMDAwMDA7IC8qIEFib3ZlIFdQIHRvb2xiYXIuICovXG59XG4iLCIvLyBhbGwgYW5pbWF0aW9uIGNsYXNzZXMgZ28gaGVyZVxuLndvdyB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnNsaWRlLWluIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcbiAgICBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNsaWRlKGluLCB1cCwgMTAlKSwgZmFkZSk7XG59XG4iLCIvLy8gQ29udmVydCBhbmdsZVxuLy8vIEBhdXRob3IgQ2hyaXMgRXBwc3RlaW5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFVuaXQgdG8gY29udmVydCB0b1xuLy8vIEByZXR1cm4ge051bWJlcn0gQ29udmVydGVkIGFuZ2xlXG5AZnVuY3Rpb24gY29udmVydC1hbmdsZSgkdmFsdWUsICR1bml0KSB7XG4gICAgJGNvbnZlcnRhYmxlLXVuaXRzOiBkZWcgZ3JhZCB0dXJuIHJhZDtcbiAgICAkY29udmVyc2lvbi1mYWN0b3JzOiAxICgxMGdyYWQvOWRlZykgKDF0dXJuLzM2MGRlZykgKDMuMTQxNTkyNnJhZC8xODBkZWcpO1xuICAgIEBpZiBpbmRleCgkY29udmVydGFibGUtdW5pdHMsIHVuaXQoJHZhbHVlKSkgYW5kIGluZGV4KCRjb252ZXJ0YWJsZS11bml0cywgJHVuaXQpIHtcbiAgICAgICAgQHJldHVybiAkdmFsdWVcbiAgICAgICAgICAgICAgICAgLyBudGgoJGNvbnZlcnNpb24tZmFjdG9ycywgaW5kZXgoJGNvbnZlcnRhYmxlLXVuaXRzLCB1bml0KCR2YWx1ZSkpKVxuICAgICAgICAgICAgICAgICAqIG50aCgkY29udmVyc2lvbi1mYWN0b3JzLCBpbmRleCgkY29udmVydGFibGUtdW5pdHMsICR1bml0KSk7XG4gICAgfVxuXG4gICAgQHdhcm4gXCJDYW5ub3QgY29udmVydCBgI3t1bml0KCR2YWx1ZSl9YCB0byBgI3skdW5pdH1gLlwiO1xufVxuXG4vLy8gVGVzdCBpZiBgJHZhbHVlYCBpcyBhbiBhbmdsZVxuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gVmFsdWUgdG8gdGVzdFxuLy8vIEByZXR1cm4ge0Jvb2x9XG5AZnVuY3Rpb24gaXMtZGlyZWN0aW9uKCR2YWx1ZSkge1xuICAgICRpcy1kaXJlY3Rpb246IGluZGV4KCh0byB0b3AsIHRvIHRvcCByaWdodCwgdG8gcmlnaHQgdG9wLCB0byByaWdodCwgdG8gYm90dG9tIHJpZ2h0LCB0byByaWdodCBib3R0b20sIHRvIGJvdHRvbSwgdG8gYm90dG9tIGxlZnQsIHRvIGxlZnQgYm90dG9tLCB0byBsZWZ0LCB0byBsZWZ0IHRvcCwgdG8gdG9wIGxlZnQpLCAkdmFsdWUpO1xuICAgICRpcy1hbmdsZTogdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIGFuZCBpbmRleCgnZGVnJyAnZ3JhZCcgJ3R1cm4nICdyYWQnLCB1bml0KCR2YWx1ZSkpO1xuXG4gICAgQHJldHVybiAkaXMtZGlyZWN0aW9uIG9yICRpcy1hbmdsZTtcbn1cblxuLy8vIENvbnZlcnQgYSBkaXJlY3Rpb24gdG8gbGVnYWN5IHN5bnRheFxuLy8vIEBwYXJhbSB7S2V5d29yZCB8IEFuZ2xlfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0XG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1kaXJlY3Rpb25cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnZlcnQtYW5nbGVcbkBmdW5jdGlvbiBsZWdhY3ktZGlyZWN0aW9uKCR2YWx1ZSkge1xuICAgIEBpZiBpcy1kaXJlY3Rpb24oJHZhbHVlKSA9PSBmYWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQ2Fubm90IGNvbnZlcnQgYCN7JHZhbHVlfWAgdG8gbGVnYWN5IHN5bnRheCBiZWNhdXNlIGl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBhbiBhbmdsZSBvciBhIGRpcmVjdGlvblwiO1xuICAgIH1cblxuICAgICRjb252ZXJzaW9uLW1hcDogKFxuICAgICAgICB0byB0b3AgICAgICAgICAgOiBib3R0b20sXG4gICAgICAgIHRvIHRvcCByaWdodCAgICA6IGJvdHRvbSBsZWZ0LFxuICAgICAgICB0byByaWdodCB0b3AgICAgOiBsZWZ0IGJvdHRvbSxcbiAgICAgICAgdG8gcmlnaHQgICAgICAgIDogbGVmdCxcbiAgICAgICAgdG8gYm90dG9tIHJpZ2h0IDogdG9wIGxlZnQsXG4gICAgICAgIHRvIHJpZ2h0IGJvdHRvbSA6IGxlZnQgdG9wLFxuICAgICAgICB0byBib3R0b20gICAgICAgOiB0b3AsXG4gICAgICAgIHRvIGJvdHRvbSBsZWZ0ICA6IHRvcCByaWdodCxcbiAgICAgICAgdG8gbGVmdCBib3R0b20gIDogcmlnaHQgdG9wLFxuICAgICAgICB0byBsZWZ0ICAgICAgICAgOiByaWdodCxcbiAgICAgICAgdG8gbGVmdCB0b3AgICAgIDogcmlnaHQgYm90dG9tLFxuICAgICAgICB0byB0b3AgbGVmdCAgICAgOiBib3R0b20gcmlnaHRcbiAgICApO1xuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRjb252ZXJzaW9uLW1hcCwgJHZhbHVlKSB7XG4gICAgICAgIEByZXR1cm4gbWFwLWdldCgkY29udmVyc2lvbi1tYXAsICR2YWx1ZSk7XG4gICAgfVxuXG4gICAgQHJldHVybiA5MGRlZyAtIGNvbnZlcnQtYW5nbGUoJHZhbHVlLCAnZGVnJyk7XG59XG5cbi8vLyBNaXhpbiBwcmludGluZyBhIGxpbmVhci1ncmFkaWVudFxuLy8vIGFzIHdlbGwgYXMgYSBwbGFpbiBjb2xvciBmYWxsYmFja1xuLy8vIGFuZCB0aGUgYC13ZWJraXQtYCBwcmVmaXhlZCBkZWNsYXJhdGlvblxuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBMaXN0IHwgQW5nbGV9ICRkaXJlY3Rpb24gLSBMaW5lYXIgZ3JhZGllbnQgZGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29sb3Itc3RvcHMgLSBMaXN0IG9mIGNvbG9yLXN0b3BzIGNvbXBvc2luZyB0aGUgZ3JhZGllbnRcbkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzLi4uKSB7XG4gICAgQGlmIGlzLWRpcmVjdGlvbigkZGlyZWN0aW9uKSA9PSBmYWxzZSB7XG4gICAgICAgICRjb2xvci1zdG9wczogKCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XG4gICAgICAgICRkaXJlY3Rpb246IDE4MGRlZztcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiBudGgobnRoKCRjb2xvci1zdG9wcywgMSksIDEpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZ2FjeS1kaXJlY3Rpb24oJGRpcmVjdGlvbiksICRjb2xvci1zdG9wcyk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XG59XG5cbi8vIHJldXNhYmxlIGdyYWRpZW50c1xuLy8gLnRlc3QtMSB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHJlZCwgeWVsbG93KTtcbi8vIH1cblxuLy8gLnRlc3QtMiB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIERhcmtPcmNoaWQgMCUsIERhcmtCbHVlIDQ1JSwgRGFya0JsdWUgNTUlLCBEZWVwU2t5Qmx1ZSAgMTAwJSk7XG4vLyB9XG5cbi8vIC50ZXN0LTMge1xuLy8gICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0byBib3R0b20gcmlnaHQsIERhcmtPcmNoaWQgMCUsIERhcmtCbHVlIDMwJSwgRGVlcFNreUJsdWUgIDEwMCUpO1xuLy8gfVxuXG4vLyAudGVzdC00IHtcbi8vICAgICBvcGFjaXR5OiAwLjU7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIHRvcCByaWdodCwgcmVkIDAlLCB5ZWxsb3cgMjAlLCB5ZWxsb3cgNDAlLCBncmVlbiAxMDAlKTtcbi8vIH1cbi53aGl0ZS1ncmF5IHtcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkd2hpdGUgMCUsICNhOWI4YjcgMTAwJSk7XG59XG4ud2hpdGUtZ3JheS1saWdodCB7XG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHdoaXRlIDAlLCAjZTllZGVkIDEwMCUpO1xufVxuLy8gLmxpZ2h0LWJsdWUtbGlnaHQtcHVycGxlIHtcbi8vICAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRsaWdodC1ibHVlIDAlLCAkZGFyay1ibHVlIDQ1JSwgJGRhcmstYmx1ZSA1NSUsICRsaWdodC1wdXJwbGUgIDEwMCUpO1xuLy8gfVxuLy9cbi8vIC5saWdodC1ibHVlLWxpZ2h0LXB1cnBsZS1ob3ZlciB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkbGlnaHQtYmx1ZSAwJSwgJGRhcmstYmx1ZSAzMCUsICRkYXJrLWJsdWUgNDAlLCAkbGlnaHQtcHVycGxlICAxMDAlKTtcbi8vIH1cbi8vXG4vLyAuaG90LXBpbmstbGlnaHQtcHVycGxlIHtcbi8vICAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRob3QtcGluayAwJSwgJGhvdC1waW5rIDQwJSwgJGxpZ2h0LXB1cnBsZSAgMTAwJSk7XG4vLyB9XG4vL1xuLy8gLmhvdC1waW5rLWxpZ2h0LXB1cnBsZS1ob3ZlciB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkaG90LXBpbmsgMCUsICRob3QtcGluayAyMCUsICRsaWdodC1wdXJwbGUgIDEwMCUpO1xuLy8gfVxuLy9cbi8vIC5ob3QtcGluay1kYXJrLXBpbmsge1xuLy8gICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGhvdC1waW5rIDAlLCAkaG90LXBpbmsgODAlLCAkZGFyay1waW5rICAxMDAlKTtcbi8vIH1cbi8vXG4ubGlnaHQtYmx1ZS1ncmVlbiB7XG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkbGlnaHQtYmx1ZSAwJSwgJGdyZWVuICAxMDAlKTtcbn1cbi8vIC5ncmVlbi1saWdodC1ibHVlIHtcbi8vICAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRncmVlbiAwJSwgJGxpZ2h0LWJsdWUgIDEwMCUpO1xuLy8gfVxuLy9cbi8vIC55ZWxsb3ctb3JhbmdlIHtcbi8vICAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICR5ZWxsb3cgMCUsICRvcmFuZ2UgIDEwMCUpO1xuLy8gfVxuLy9cbi8vIC55ZWxsb3ctb3JhbmdlLWRpYWdvbmFsIHtcbi8vICAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCAkeWVsbG93IDAlLCAkb3JhbmdlIDYwJSwgJG9yYW5nZSAgMTAwJSk7XG4vLyB9XG4vL1xuLy8gLmJsdWUtcHVycGxlLWRpYWdvbmFsIHtcbi8vICAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM3MTQxOTYgMCUsICMyNTNmOTYgNTAlLCAjMDBiMmRiIDEwMCUpO1xuLy8gfVxuLy9cbi8vIC5saWdodC1ibHVlLWRhcmstcHVycGxlLWxpZ2h0LXB1cnBsZSB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkbGlnaHQtYmx1ZSAwJSwgJGRhcmstcHVycGxlIDUwJSwgJGxpZ2h0LXB1cnBsZSAgMTAwJSk7XG4vLyB9XG4vL1xuLy8gLmxpZ2h0LWJsdWUtZGFyay1ibHVlLWxpZ2h0LXB1cnBsZS1ob3QtcGluayB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkbGlnaHQtYmx1ZSAwJSwgJGRhcmstYmx1ZSA0MCUsICRsaWdodC1wdXJwbGUgNzAlLCAkaG90LXBpbmsgIDEwMCUpO1xuLy8gfVxuLy9cbi8vIC5saWdodC1ibHVlLWRhcmstYmx1ZSB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkbGlnaHQtYmx1ZSAwJSwgJGRhcmstYmx1ZSAxMDAlKTtcbi8vIH1cbi8vXG4vLyAubGlnaHQtYmx1ZS1kYXJrLWJsdWUtZG93biB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJGxpZ2h0LWJsdWUgMCUsICRkYXJrLWJsdWUgMTAwJSk7XG4vLyB9XG4vL1xuLy8gLmxpZ2h0LXB1cnBsZS1kYXJrLWJsdWUtbGlnaHQtYmx1ZSB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkbGlnaHQtcHVycGxlIDAlLCAkZGFyay1ibHVlIDUwJSwgJGxpZ2h0LWJsdWUgIDEwMCUpO1xuLy8gfVxuLy9cbi8vIC5saWdodC1ibHVlLWRhcmstYmx1ZS1saWdodC1wdXJwbGUge1xuLy8gICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGxpZ2h0LWJsdWUgMCUsICRkYXJrLWJsdWUgNzAlLCAkbGlnaHQtcHVycGxlICAxMDAlKTtcbi8vIH1cbi8vXG4vLyAuZGFyay1ibHVlLWxpZ2h0LXB1cnBsZSB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkZGFyay1ibHVlIDAlLCAkbGlnaHQtcHVycGxlICAxMDAlKTtcbi8vIH1cbi8vXG4vLyAubGlnaHQtcHVycGxlLWxpZ2h0LWJsdWUtZGlhZ29uYWwge1xuLy8gICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0byBib3R0b20gcmlnaHQsICRsaWdodC1wdXJwbGUgMCUsICRsaWdodC1ibHVlIDEwMCUpO1xuLy8gfVxuLy9cbi8vIC5saWdodC1ibHVlLWxpZ2h0LXB1cnBsZS1kaWFnb25hbCB7XG4vLyAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwgJGxpZ2h0LWJsdWUgMCUsICRsaWdodC1wdXJwbGUgMTAwJSk7XG4vLyAgICAgLy8gQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwgIzAwNzRiZSAwJSwgIzI1Mzc5OCAxMDAlKTtcbi8vIH1cbiIsIi8vIFNsaWRlclxuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGN1cnNvcjogaGFuZDtcbiAgICB9XG59XG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5zbGljay12ZXJ0aWNhbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4vLy8vLyBiZXR0ZXIgdmVyc2lvbiAtIG5lZWQgZm9udHMgaG9va2VkIHVwIHRvIGljb21vb25cbkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gRGVmYXVsdCBWYXJpYWJsZXNcblxuLy8gJHNsaWNrLWZvbnQtcGF0aDogXCIuL2ZvbnRzL1wiICFkZWZhdWx0O1xuJHNsaWNrLWZvbnQtZmFtaWx5OiBcImljb21vb25cIiAhZGVmYXVsdDtcbi8vICRzbGljay1sb2FkZXItcGF0aDogXCIuL1wiICFkZWZhdWx0O1xuJHNsaWNrLWFycm93LWNvbG9yOiBibGFjayAhZGVmYXVsdDtcbiRzbGljay1kb3QtY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvci1hY3RpdmU6ICRzbGljay1kb3QtY29sb3IgIWRlZmF1bHQ7XG4kc2xpY2stcHJldi1jaGFyYWN0ZXI6IFwiXFxlOTAwXCIgIWRlZmF1bHQ7XG4kc2xpY2stbmV4dC1jaGFyYWN0ZXI6IFwiXFxlOTAwXCIgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNoYXJhY3RlcjogXCJcXGU5MDBcIiAhZGVmYXVsdDtcbiRzbGljay1kb3Qtc2l6ZTogMTJweCAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LWRlZmF1bHQ6IDAuNzUgIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjogMSAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vIEBmdW5jdGlvbiBzbGljay1pbWFnZS11cmwoJHVybCkge1xuLy8gICAgIEBpZiBmdW5jdGlvbi1leGlzdHMoaW1hZ2UtdXJsKSB7XG4vLyAgICAgICAgIEByZXR1cm4gaW1hZ2UtdXJsKCR1cmwpO1xuLy8gICAgIH1cbi8vICAgICBAZWxzZSB7XG4vLyAgICAgICAgIEByZXR1cm4gdXJsKCRzbGljay1sb2FkZXItcGF0aCArICR1cmwpO1xuLy8gICAgIH1cbi8vIH1cbi8vXG4vLyBAZnVuY3Rpb24gc2xpY2stZm9udC11cmwoJHVybCkge1xuLy8gICAgIEBpZiBmdW5jdGlvbi1leGlzdHMoZm9udC11cmwpIHtcbi8vICAgICAgICAgQHJldHVybiBmb250LXVybCgkdXJsKTtcbi8vICAgICB9XG4vLyAgICAgQGVsc2Uge1xuLy8gICAgICAgICBAcmV0dXJuIHVybCgkc2xpY2stZm9udC1wYXRoICsgJHVybCk7XG4vLyAgICAgfVxuLy8gfVxuXG4vLyBTbGlkZXJcbi8vIC5zbGljay1saXN0IHtcbi8vICAgICAuc2xpY2stbG9hZGluZyAmIHtcbi8vICAgICAgICAgYmFja2dyb3VuZDogI2ZmZiBzbGljay1pbWFnZS11cmwoXCJhamF4LWxvYWRlci5naWZcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4vLyAgICAgfVxuLy8gfVxuXG4vLyBJY29uc1xuLy8gQGlmICRzbGljay1mb250LWZhbWlseSA9PSBcInNsaWNrXCIge1xuLy8gICAgIEBmb250LWZhY2Uge1xuLy8gICAgICAgICBmb250LWZhbWlseTogXCJzbGlja1wiO1xuLy8gICAgICAgICBzcmM6IHNsaWNrLWZvbnQtdXJsKFwic2xpY2suZW90XCIpO1xuLy8gICAgICAgICBzcmM6IHNsaWNrLWZvbnQtdXJsKFwic2xpY2suZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnN2ZyNzbGlja1wiKSBmb3JtYXQoXCJzdmdcIik7XG4vLyAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4vLyAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vICAgICB9XG4vLyB9XG5cbi8vIEFycm93c1xuXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgZm9udC1zaXplOiAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMTBweFxcOTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHotaW5kZXg6IDE7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuICAgICYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgICB9XG59XG5cbi5zbGljay1wcmV2OmJlZm9yZSwgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogJHNsaWNrLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHNsaWNrLWFycm93LWNvbG9yO1xuICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLnNsaWNrLXByZXYge1xuICAgIC8vIGxlZnQ6IC0yNXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgLy8gcmlnaHQ6IC0yNXB4O1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkc2xpY2stcHJldi1jaGFyYWN0ZXI7XG4gICAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgICAgICBjb250ZW50OiAkc2xpY2stbmV4dC1jaGFyYWN0ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zbGljay1uZXh0IHtcbiAgICAvLyByaWdodDogLTI1cHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgLy8gbGVmdDogLTI1cHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gRG90c1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4uc2xpY2stZG90cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTQ1cHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHNsaWNrLWRvdC1jaGFyYWN0ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkc2xpY2stZG90LXNpemU7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgICAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIkaGVhZGVyLWhlaWdodC1zbWFsbDogNjBweDtcbiRoZWFkZXItaGVpZ2h0LWJpZzogODVweDtcbmJvZHkge1xuICAgIHBhZGRpbmctdG9wOiAkaGVhZGVyLWhlaWdodC1zbWFsbDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgICAgICBwYWRkaW5nLXRvcDogJGhlYWRlci1oZWlnaHQtYmlnO1xuICAgIH1cbn1cbiNoZWFkZXIge1xuICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBsaW5lYXI7XG4gICAgaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1zbWFsbDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgICAgICBoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0LWJpZztcbiAgICB9XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkd2hpdGUsMC45KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMTUzLDE1MywxNTMsLjIpLDAgNnB4IDEwcHggMCByZ2JhKDE1MywxNTMsMTUzLC4xNCksMCAxcHggMThweCAwIHJnYmEoMTUzLDE1MywxNTMsLjEyKTtcbiAgICAvLyBib3gtc2hhZG93OiAwIDJweCA0cHggLTFweCByZ2JhKDEwMiwxMDIsMTAyLC4yKSwwIDRweCA1cHggMCByZ2JhKDEwMiwxMDIsMTAyLC4xNCksMCAxcHggMTBweCAwIHJnYmEoMTAyLDEwMiwxMDIsLjEyKTtcbiAgICBoMSxoMiB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBsaW5lYXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1zbWFsbDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1iaWc7XG4gICAgICAgIH1cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gICAgdWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjFyZW07XG4gICAgICAgIHRyYW5zaXRpb246IG1hcmdpbi10b3AgMjAwbXMgbGluZWFyO1xuICAgICAgICBwYWRkaW5nOiAwIDJyZW0gMCAwO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMC45cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5jdXJyZW50LW1lbnUtaXRlbTpub3QoOmxhc3QtY2hpbGQpIGEsXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkgYTpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kIC5idXR0b247XG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLnNlY29uZGFyeTtcbiAgICAgICAgICAgICAgICAgICAgLy8gbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgLy8gbWFyZ2luLWxlZnQ6IDAuOHJlbTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcGFkZGluZy10b3A6IDAuOGVtO1xuICAgICAgICAgICAgICAgICAgICAvLyBwYWRkaW5nLWJvdHRvbTogMC44ZW07XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICNtb2JpbGUtbmF2LXRyaWdnZXIge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1zbWFsbDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAgICAgICAgIGhlaWdodDogJGhlYWRlci1oZWlnaHQtYmlnO1xuICAgICAgICB9XG4gICAgICAgIHdpZHRoOiByZW0tY2FsYyg0MCk7XG4gICAgICAgIG1hcmdpbjogMCAycmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiNsb2dvIHtcbiAgICBoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0LXNtYWxsO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1iaWc7XG4gICAgfVxuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGxpbmVhcjtcbiAgICBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0LXNtYWxsO1xuICAgICAgICBsaW5lLWhlaWdodDogJGhlYWRlci1oZWlnaHQtc21hbGw7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0LWJpZztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1iaWc7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgICAgIHdpZHRoOiAzLjdyZW07XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwcmVtO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gICAgICAgICAgICB3aWR0aDogMTZyZW07XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGxpbmVhcjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMnJlbTtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiA4cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBsaW5lYXI7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxM3JlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuI21vYmlsZS1uYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIEBleHRlbmQgLnNsaWRlLWluO1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIC8vIGNvbG9yOiAkZGFyay1wdXJwbGU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmJ1dHRvbjtcbiAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAuc2Vjb25kYXJ5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiNtb2JpbGUtbmF2LWNsb3NlIHtcbiAgICBAZXh0ZW5kIC5idXR0b247XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLmhlYWRyb29tIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgbGluZWFyO1xufVxuLmhlYWRyb29tLS10b3Age1xuICAgICNsb2dvIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICB3aWR0aDogMTByZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLmhlYWRyb29tLS1waW5uZWQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG59XG4jaGVhZGVyLmhlYWRyb29tLS11bnBpbm5lZCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMTUzLDE1MywxNTMsLjIpLDAgNnB4IDEwcHggMCByZ2JhKDE1MywxNTMsMTUzLC4xNCksMCAxcHggMThweCAwIHJnYmEoMTUzLDE1MywxNTMsLjEyKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICBoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0LXNtYWxsO1xuICAgICAgICBoMSxoMiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGhlYWRlci1oZWlnaHQtc21hbGw7XG4gICAgICAgIH1cbiAgICAgICAgI2xvZ28ge1xuICAgICAgICAgICAgaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1zbWFsbDtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGhlYWRlci1oZWlnaHQtc21hbGw7XG4gICAgICAgICAgICAgICAgLy8gd2lkdGg6IDEwcmVtO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1zbWFsbDtcbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogOHJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC40cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmV2ZW50LWNvbnRhaW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTlyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGgxLGgyLGgzLGg0LGg1LGg2LHAsc21hbGwsZGl2IHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAuZXZlbnQtaW5mbyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByaW1hcnktY29sb3IsMC44KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDE5cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIC5ldmVudC1pbmZvLXRvcCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiA3cmVtO1xuICAgICAgICAgICAgaDQsaDUge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5ldmVudC1pbmZvLW1pZGRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW0gMXJlbTtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNnJlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5ldmVudC1pbmZvLWJvdHRvbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW0gMnJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogNHJlbTtcbiAgICAgICAgICAgIGRpdixzbWFsbCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgIC5ldmVudC1pbmZvIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnJlbSk7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAuZXZlbnQtaW5mbyB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiI2hpZ2hsaWdodCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC5ldmVudC1pbmZvIHtcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG4gICAgICAgIC5ldmVudC1pbmZvLXRvcCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDUuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBvbmx5KSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAjaGlnaGxpZ2h0LWltYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG4gICAgICAgIC5yZWFkLW1vcmUge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAuZXZlbnQtaW5mby1taWRkbGUgPiAucm93IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBpbmhlcml0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxufVxuLmdpLXNlY3Rpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgcCx1bCxvbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW1cbiAgICB9XG59XG4jbG9jYWwtc3RvcmllcyB7XG4gICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG4ubG9jYWwtc3RvcnktYmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYztcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDEwcmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xufVxuLmxvY2FsLXN0b3J5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgIHRvcDogLTIwcHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIH1cbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMi41cmVtO1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgaDEsaDIsaDMsaDQsaDUsaDYscCxzbWFsbCxkaXYge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC5sb2NhbC1zdG9yeS10b3Age1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBoZWlnaHQ6IDMuNXJlbTtcbiAgICAgICAgaDQge1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubG9jYWwtc3RvcnktbWlkZGxlIHtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtIDFyZW07XG4gICAgICAgIGhlaWdodDogN3JlbTtcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiA2cmVtO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5sb2NhbC1zdG9yeS1ib3R0b20ge1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW0gMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuLmxvY2FsLXN0b3J5LXdyYXAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLWluLW91dDtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCg2biArIDEpIHtcbiAgICAgICAgLmxvY2FsLXN0b3J5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgyMHB4LCAkcHJpbWFyeS1jb2xvciwgdXApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmOm50aC1jaGlsZCg2biArIDIpIHtcbiAgICAgICAgLmxvY2FsLXN0b3J5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMmFmYjA7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDIwcHgsICMwMmFmYjAsIHVwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJjpudGgtY2hpbGQoNm4gKyAzKSB7XG4gICAgICAgIC5sb2NhbC1zdG9yeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjYWZiZmJlO1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgyMHB4LCAjYWZiZmJlLCB1cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDZuICsgNCkge1xuICAgICAgICAubG9jYWwtc3Rvcnkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZjODU1NjtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoMjBweCwgI2ZjODU1NiwgdXApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmOm50aC1jaGlsZCg2biArIDUpIHtcbiAgICAgICAgLmxvY2FsLXN0b3J5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM0NWE3YmY7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDIwcHgsICM0NWE3YmYsIHVwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJjpudGgtY2hpbGQoNm4gKyA2KSB7XG4gICAgICAgIC5sb2NhbC1zdG9yeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjODA2YzhmO1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgyMHB4LCAjODA2YzhmLCB1cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAmOm50aC1jaGlsZCg0biArIDEpLFxuICAgICAgICAmOm50aC1jaGlsZCg0biArIDIpIHtcbiAgICAgICAgICAgIC5sb2NhbC1zdG9yeSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgyMHB4LCBwaW5rLCBsZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLTIwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDRuICsgMyksXG4gICAgICAgICY6bnRoLWNoaWxkKDRuICsgNCkge1xuICAgICAgICAgICAgLmxvY2FsLXN0b3J5IHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDIwcHgsIHBpbmssIHJpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtMjBweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoMTJuICsgMSkge1xuICAgICAgICAgICAgLmxvY2FsLXN0b3J5IHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkcHJpbWFyeS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDEybiArIDIpIHtcbiAgICAgICAgICAgIC5sb2NhbC1zdG9yeSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzAyYWZiMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDEybiArIDMpIHtcbiAgICAgICAgICAgIC5sb2NhbC1zdG9yeSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2FmYmZiZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDEybiArIDQpIHtcbiAgICAgICAgICAgIC5sb2NhbC1zdG9yeSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZjODU1NiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDEybiArIDUpIHtcbiAgICAgICAgICAgIC5sb2NhbC1zdG9yeSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzQ1YTdiZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDEybiArIDYpIHtcbiAgICAgICAgICAgIC5sb2NhbC1zdG9yeSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzgwNmM4ZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDEybiArIDcpIHtcbiAgICAgICAgICAgIC5sb2NhbC1zdG9yeSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZCgxMm4gKyA4KSB7XG4gICAgICAgICAgICAubG9jYWwtc3Rvcnkge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMmFmYjAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZCgxMm4gKyA5KSB7XG4gICAgICAgICAgICAubG9jYWwtc3Rvcnkge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNhZmJmYmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZCgxMm4gKyAxMCkge1xuICAgICAgICAgICAgLmxvY2FsLXN0b3J5IHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmM4NTU2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoMTJuICsgMTEpIHtcbiAgICAgICAgICAgIC5sb2NhbC1zdG9yeSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQ1YTdiZiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDEybiArIDEyKSB7XG4gICAgICAgICAgICAubG9jYWwtc3Rvcnkge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM4MDZjOGYgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5naS1jb250YWluIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLmV2ZW50LWluZm8ge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgLmV2ZW50LWluZm8tdG9wIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5ldmVudC1pbmZvLW1pZGRsZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1cmVtO1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5yZWFkLW1vcmUge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiNkb25hdGlvbiB7XG4gICAgQGV4dGVuZCAud2hpdGUtZ3JheTtcbn1cbiIsIiNmb290ZXItbG9nbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAyLjVyZW07XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9XG4gICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB3aWR0aDogMTEuNHJlbTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgd2lkdGg6IDlyZW07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMS40cmVtO1xuICAgICAgICB9XG4gICAgICAgIC5zdDAge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiNmb290ZXItdGVzdGltb25pYWwge1xuICAgIGJhY2tncm91bmQ6ICNhOWI4Yjc7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgIGltZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDYwKTtcbiAgICB9XG4gICAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAvLyBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiNmb290ZXItY3RhIHtcbiAgICBiYWNrZ3JvdW5kOiAjYTliOGI3O1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICAgIGg0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG59XG4jZm9vdGVyIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAjZm9vdGVyLW1lbnVzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvb3Rlci1tZW51LWJhY2sge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgfVxuICAgIGEge1xuICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGRhcmstYmx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB9XG4gICAgdWw6bm90KC5zdWItbWVudSkge1xuICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb2xvcjogJGFjY2VudC1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvb3Rlci1tZW51LXdyYXAge1xuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNGVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNGVtO1xuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kIC5idXR0b247XG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLnNlY29uZGFyeTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5zdWItbWVudSB7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaDQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgLnBob25lLWxpbmssXG4gICAgLmVtYWlsLWxpbmsge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRkYXJrLWJsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgI2Zvb3Rlci1zb2NpYWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50LWNvbG9yO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogZGFya2VuKCRhY2NlbnQtY29sb3IsIDEwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAjZGlzY2xhaW1lciB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICBjb2xvcjogIzM2NGU2MDtcbiAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMzY0ZTYwO1xuICAgICAgICB9XG4gICAgICAgIGE6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG4jZm9vdGVyLFxuI3RhbGtpbmctdmlkZW9zIHtcbiAgICAuZ2Zvcm1fd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgLmdmb3JtX2JvZHkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogNjIlO1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5naW5wdXRfY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIuODQ3cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC44cmVtIDAuNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5nZm9ybV9mb290ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHdpZHRoOiAzOCU7XG4gICAgICAgIH1cbiAgICAgICAgLmdmb3JtX2J1dHRvbiB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5idXR0b247XG4gICAgICAgICAgICBAZXh0ZW5kIC5hY2NlbnQ7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC44ZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC44ZW07XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIjdHdpdHRlci1mZWVkIHtcbiAgICAudHdlZXQtd3JhcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxuICAgIC50aGUtdHdlZXQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgICAudGhlLXR3ZWV0LWRhdGUge1xuICAgICAgICBjb2xvcjogI2E5YjhiNztcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgfVxufVxuI3R3aXR0ZXItZmVlZC1saW5rIHtcbiAgICBjb2xvcjogJGFjY2VudC1jb2xvcjtcbiAgICBmb250LXNpemU6IDJyZW07XG59XG4iLCIjc3Rvcmllcy1wYWdlIHtcbiAgICBAZXh0ZW5kIC53aGl0ZS1ncmF5O1xufVxuLnBsYXllci12aWRlbyB7XG4gICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vIHBhZGRpbmctYm90dG9tOiA1Ni4zMzMzMzMzMzMlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucGxheWVyLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDM3NDE7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07XG4gICAgaDQge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIH1cbiAgICBwIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICAgICAgaGVpZ2h0OiA0LjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgaGVpZ2h0OiA2cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuLmdyYXBoaWNzLWhlbHAge1xuICAgIC5yZWFkLW1vcmUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuLmluc3RhZ3JhbS1wcmV2aWV3IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbi5mYWNlYm9vay1wcmV2aWV3IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzclO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLm1lZGlhLXByZXZpZXcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICAuZG93bmxvYWQtYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMDBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5kb3dubG9hZC1idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJpbWFyeS1jb2xvciwwLjgpO1xuICAgICAgICB9XG4gICAgfVxufVxuI21lZGlhLW1vZGFsIHtcbiAgICBtYXgtd2lkdGg6IDQ1cmVtO1xufVxuI21lZGlhLW1vZGFsLWltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuLm1vZGFsLW1hcmsge1xuICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyBib3R0b206IDAuNXJlbTtcbiAgICAvLyByaWdodDogMXJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoNDApO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuIiwiLmhlcm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7XG4gICAgcGFkZGluZzogNHJlbSAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgJjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoIzdmN2M2MiwwLjUpO1xuICAgIH1cbiAgICAuaGVyby12aWQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG4gICAgLmhlcm8tY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgaDIsaDEge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMnJlbSAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNik7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNDQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc21hbGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoNzQwKTtcbiAgICAgICAgfVxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtIDJyZW07XG4gICAgICAgICAgICBAZXh0ZW5kIC5hY2NlbnQ7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5zaGFyZS1idXR0b25zIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGhvdC1waW5rO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAud2lzdGlhX2VtYmVkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgZGl2LCBpbWcge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4jaGVyby1jb3VudGRvd24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgIH1cbn1cbiIsIiNibG9nLXNpZGViYXIge1xuICAgIC53aWRnZXRfc2VhcmNoIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiAgICAgICAgcGFkZGluZzogMCAwIDJyZW07XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiAgICAgICAgfVxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMzE3N2VtIDEuMjVlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgICAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAud2lkZ2V0X2NhdGVnb3JpZXMge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuICAgICAgICBwYWRkaW5nOiAycmVtIDAgMnJlbTtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgY29sdW1uczogMjtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgLmNhdC1pdGVtIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLndpZGdldC10aXRsZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIm11c2VvLXNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cbiAgICAjdGV4dC0yIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiAgICAgICAgcGFkZGluZzogMnJlbSAwIDJyZW07XG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC44NXJlbTtcbiAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAjdGV4dC0zIHtcbiAgICAgICAgcGFkZGluZzogMnJlbSAwIDJyZW07XG4gICAgICAgIGg0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4jYXJjaGl2ZS1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogNHJlbSAwO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgcGFkZGluZzogNnJlbSAwO1xuICAgIH1cbiAgICAvLyAjcGFnaW5hdGlvbiB7XG4gICAgLy8gICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAvLyB9XG59XG4jYXJjaGl2ZS1wb3N0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogNHJlbSAwO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgcGFkZGluZzogNnJlbSAwO1xuICAgIH1cbiAgICAud2lkZ2V0X3NlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC53aWRnZXRfY2F0ZWdvcmllcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgICN0ZXh0LTIge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMnJlbTtcbiAgICB9XG59XG4uZXhjZXJwdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheS1iYWNrZ3JvdW5kO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICAgIH1cbiAgICAudGh1bWJuYWlsLWFuY2hvciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAudGh1bWJuYWlsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgLnBvc3QtcHJldmlldyB7XG4gICAgICAgIHBhZGRpbmc6IDVyZW0gNHJlbSAzcmVtO1xuICAgIH1cbiAgICAucG9zdC1pbmZvIHtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtIDAuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50LWNvbG9yO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGRhcmtlbigkYWNjZW50LWNvbG9yLCAxMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLnBvc3QtaW5mbyB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIHBhZGRpbmc6IDAgMCAxcmVtO1xuICAgIGEge1xuICAgICAgICBjb2xvcjogJGFjY2VudC1jb2xvcjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogZGFya2VuKCRhY2NlbnQtY29sb3IsIDEwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4ucG9zdC10aXRsZSB7XG4gICAgcGFkZGluZzogMXJlbSAwIDFyZW07XG59XG4ucG9zdC1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxcmVtIDAgMXJlbTtcbn1cbi5wb3N0LWF1dGhvciB7XG4gICAgcGFkZGluZzogMXJlbSAwIDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cbi5wb3N0LWNvbW1lbnRzIHtcbiAgICBwYWRkaW5nOiAxcmVtIDAgMXJlbTtcbn1cbi5wb3N0LXBhZ2luYXRpb24ge1xuICAgIHBhZGRpbmc6IDFyZW0gMCAxcmVtO1xufVxuLnBvc3QtbWV0YSB7XG4gICAgLnBtLW5hbWUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgIH1cbiAgICAucG0tdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjFyZW07XG4gICAgfVxuICAgIC5wbS13ZWJzaXRlIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQtY29sb3I7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtY29sb3I7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogZGFya2VuKCRhY2NlbnQtY29sb3IsIDEwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4jY29tbWVudHMge1xuICAgIC5jb21tZW50cy10aXRsZSB7XG4gICAgICAgIHBhZGRpbmc6IDRyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5LWJhY2tncm91bmQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgLmNvbW1lbnQtbGlzdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5LWJhY2tncm91bmQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgLmNoaWxkcmVuIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICB9XG4gICAgICAgIC5jb21tZW50LWF1dGhvciB7XG4gICAgICAgICAgICAvLyBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5jb21tZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNHJlbSA0cmVtO1xuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAvLyBwYWRkaW5nOiA0cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jb21tZW50LWJvZHkge1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29tbWVudC1yZXBseS1saW5rIHtcbiAgICAgICAgICAgIEBleHRlbmQgLnJlYWQtbW9yZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiNyZXNwb25kIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheS1iYWNrZ3JvdW5kO1xuICAgIHBhZGRpbmc6IDRyZW07XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAuZm9ybS1zdWJtaXQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGlucHV0W3R5cGU9c3VibWl0XSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4uc2luZ2xlLXRodW1ibmFpbCB7XG4gICAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDE1MywxNTMsMTUzLC4yKSwwIDZweCAxMHB4IDAgcmdiYSgxNTMsMTUzLDE1MywuMTQpLDAgMXB4IDE4cHggMCByZ2JhKDE1MywxNTMsMTUzLC4xMik7XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICAuZmxleC12aWRlbyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuIiwiI2Fib3V0IHtcbiAgICAucmlnaHQtdGl0bGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWJvdXQtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDIuNXJlbSAwO1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbiAgICAjY29udGFjdC1zb2NpYWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50LWNvbG9yO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogZGFya2VuKCRhY2NlbnQtY29sb3IsIDEwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuI2xlYWRlcnMtcm93IHtcbiAgICBwYWRkaW5nOiAycmVtIDAuODE1MjJyZW0gMDtcbiAgICAuY29sdW1ucyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG4uZW1wbG95ZWUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmJhYnktd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWR1bHQtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5iYWJ5LXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuYWR1bHQtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5lbXBsb3llZS10ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHVycGxlLCAwLjcpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxufVxuI2NvbnRhY3Qge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xufVxuIiwiXG5cblxuXG4jaG9tZS1idWxsZXRzIHtcbiAgICBwYWRkaW5nLXRvcDogNHJlbTtcbiAgICAuaG9tZS1idWxsZXQge1xuICAgICAgICBtYXJnaW46IDAgYXV0byA0cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDI1MCk7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZm9udC1zaXplOiA0LjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJGRhcmstcHVycGxlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuICAgICAgICBoNCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgY29sb3I6ICR0cnVlLWJsYWNrO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbGlnaHQtYmx1ZTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGg0LHAge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcztcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMjVyZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuI2xlYXJuLW1vcmUge1xuICAgIHBhZGRpbmc6IDRyZW0gMDtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gICAgI2xlYXJuLW1vcmUtY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jc3RhdHMge1xuICAgICNtYXAtZGlzdHJpY3RzIHtcbiAgICAgICAgaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICAgIGhlaWdodDogNTAwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgI2hvbWUtc3RhdHMge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ob21lLXN0YXQge1xuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDQwMCk7XG4gICAgICAgIG1hcmdpbjogMnJlbSBhdXRvO1xuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMC43NTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjM5MTNyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgY29sb3I6ICM2ODY4Njg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZ3JlZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaG90LXBpbms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGxpZ2h0LXB1cnBsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4jZGlzdHJpY3RzIHtcbiAgICBwYWRkaW5nOiA0cmVtIDA7XG4gICAgI2Rpc3RyaWN0LWltYWdlcyB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW0gMCAycmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXM7XG4gICAgICAgICAgICAmLnNsaWNrLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5kaXN0cmljdC1pbWFnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG4gICAgICAgIC5kaXN0cmljdCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2NiU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuI2hvbWUtcXVvdGUge1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAvLyAgICAgaGVpZ2h0OiAwO1xuICAgIC8vICAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAgIC8vIH1cbiAgICAvLyBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgei1pbmRleDogMDtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBAZXh0ZW5kIC5saWdodC1ibHVlLWdyZWVuO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgb3BhY2l0eTogMC44XG4gICAgfVxuICAgICNob21lLXZpZGVvLXRyaWdnZXIge1xuICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIG1hcmdpbjogMnJlbSBhdXRvIDByZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDZyZW07XG4gICAgICAgICAgICBtYXJnaW46IDRyZW0gYXV0byAycmVtO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJGNvbG9yOiAkbGlnaHQtcHVycGxlO1xuXG4gICAgICAgIH1cbiAgICB9XG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBtYXJnaW46IDAgYXV0byAycmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDE0MCk7XG4gICAgfVxuICAgICNob21lLXZpZGVvLWlmcmFtZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0cnVlLWJsYWNrO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgI2hvbWUtdmlkZW8tY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIEBleHRlbmQgLmJ1dHRvbjtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcbiAgICB9XG59XG5cblxuXG5cblxuXG5cblxuLmhvbWUtZ3JhcGgge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgd2lkdGg6IHJlbS1jYWxjKDE2MCk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYygxNjApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaDMge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMTYwKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHN1cCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhvbWUtZ3JhcGgtcmFkaXVzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG5cbiNzdGF0cyB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJpbWFyeS1jb2xvciwwLjg1KTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gICAgLnN0YXQtYnVja2V0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICBoMyB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgJi5wZW9wbGUtdGl0bGUge1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTYwKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNjApO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIwKSAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgLnJlYWQtbW9yZSB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuLmJhYnktcHJldmlldyB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAuYmFieS1wcmV2aWV3LWNvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcmltYXJ5LWNvbG9yLDAuOCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgLmJhYnktcHJldmlldy1jb250ZW50LWluIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBoNSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLmJhYnktcHJldmlldy1jb250ZW50IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG4uaG9tZS1zdG9yeSB7XG4gICAgLmhvbWUtc3RvcnktaW1hZ2Uge1xuICAgICAgICBtaW4taGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIH1cbiAgICAuaG9tZS1zdG9yeS10ZXh0IHtcbiAgICAgICAgcGFkZGluZzogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICAvLyBiYWNrZ3JvdW5kOiAkYWNjZW50LWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDJhZmIwO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBoNCB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICAgIC5yZWFkLW1vcmUge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiNnZXQtY29ubmVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmdjLWJ1Y2tldCB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICAgICAgLmdjLWJ1Y2tldC1jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB9XG4gICAgICAgIGg0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgaDUge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgLnJlYWQtbW9yZSB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgJi5naXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZWNvbmRhcnktY29sb3IsMC44NSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5kb3dubG9hZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlO1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHVycGxlLDAuODUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuYmxvZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByaW1hcnktY29sb3IsMC44NSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIjcG9zdC1wcmV2aWV3IHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgICBoMyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxuICAgICNwb3N0LXByZXZpZXctaW1hZ2UtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5yZXNvdXJjZS1idWNrZXQge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgei1pbmRleDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgJjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcmltYXJ5LWNvbG9yLDAuOSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNlY29uZGFyeS1jb2xvciwwLjkpO1xuICAgICAgICB9XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwdXJwbGUsMC45KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoNCxwLGltZyxhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgICBoNCxwLC5yZXNvdXJjZS1ib3R0b20ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgfVxuICAgIC5yZWFkLW1vcmUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKCRwcmltYXJ5LWNvbG9yLCA2MCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuJHNwZWFrZXItbXVsdGlwbGU6IDEzcmVtO1xuLnNwZWFrZXItd3JhcCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6ICRzcGVha2VyLW11bHRpcGxlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgd2lkdGg6ICRzcGVha2VyLW11bHRpcGxlICogMjtcbiAgICB9XG4gICAgLmxvY2FsLXN0b3J5LWJhY2sge1xuICAgICAgICBtaW4taGVpZ2h0OiAkc3BlYWtlci1tdWx0aXBsZTtcbiAgICAgICAgaGVpZ2h0OiAkc3BlYWtlci1tdWx0aXBsZTtcbiAgICB9XG4gICAgLmxvY2FsLXN0b3J5IHtcbiAgICAgICAgbWluLWhlaWdodDogJHNwZWFrZXItbXVsdGlwbGU7XG4gICAgICAgIGhlaWdodDogJHNwZWFrZXItbXVsdGlwbGU7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuI3Byb2R1Y3QtcHJldmlldyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIHotaW5kZXg6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJpbWFyeS1jb2xvciwwLjkpO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICAgIGltZyxcbiAgICBoMyxcbiAgICAucmVhZC1tb3JlIHtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTMwKTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbn1cbiIsIiN0YWxraW5nLXZpZGVvcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktZGFyaztcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgaDMge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuICAgIC50YWxraW5nLXZpZGVvIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgLnR2LXRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBoNCB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLnJlYWQtbW9yZSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50LWNvbG9yO1xuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4jdGFsa2luZy1wb2ludHMge1xuICAgIGgzIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIH1cbiAgICBoNCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIC50cC12ZXJzZSB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50LWNvbG9yO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxufVxuIiwiLmNpdHktcHJldmlldy1jb250YWluIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDE5cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBoMSxoMixoMyxoNCxoNSxoNixwLHNtYWxsLGRpdiB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLmNpdHktcHJldmlldy1pbmZvIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJpbWFyeS1jb2xvciwwLjgpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMTlyZW07XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgLmNpdHktcHJldmlldy1pbmZvLXRvcCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiA1LjVyZW07XG4gICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNpdHktcHJldmlldy1pbmZvLW1pZGRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW0gMXJlbTtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNy41cmVtO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNpdHktcHJldmlldy1pbmZvLWJvdHRvbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW0gMnJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIGRpdixzbWFsbCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgIC5jaXR5LXByZXZpZXctaW5mbyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTMuNXJlbSk7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAuY2l0eS1wcmV2aWV3LWluZm8ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5jaHVyY2gtcmVzb3VyY2Uge1xuICAgIGltZyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDEyMCk7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcmltYXJ5LWNvbG9yLDAuOSkgIWltcG9ydGFudDtcbiAgICB9XG59XG4uY28tYmxvZy1wcmV2aWV3IHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIH1cbiAgICBcbn1cbiIsIi5wYWdlLXRlbXBsYXRlLWRvbmF0ZS10bXBsIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbn1cbi5kb25hdGUtc3RyaXAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMnJlbSAxcmVtO1xuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxMHJlbTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICAmI2RvbmF0ZS1ib3R0b20ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiNkb25hdGUtcGFnZSB7XG4gICAgQGV4dGVuZCAud2hpdGUtZ3JheS1saWdodDtcbn1cbiNkb25hdGUtYmx1ZSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB6LWluZGV4OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAycmVtIDFyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiByZW0tY2FsYygxMDUwKTtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcmltYXJ5LWNvbG9yLDAuOSk7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICA+IC5yb3cge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICAgIGgxLGgyLGgzLGg0LGg1LGg2LGJsb2NrcXVvdGUsb2wsdWwsYSxwIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gICAgI2RvbmF0ZS1iYWJpZXMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMnJlbSw0cmVtKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIiNiaW8tc29jaWFsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGEge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxufVxuI2JhY2stdG8tYXJjaGl2ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4jc2luZ2xlLXNpZGUtY29sdW1uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCAobGFyZ2UgdXApIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50IChsYXJnZSB1cCkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQgKGxhcmdlIHVwKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5ldmVudHMge1xuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxufVxuXG4uc3RvcmllcyB7XG4gICAgaW1nIHtcbiAgICAgICAgbWFyZ2luOiAycmVtIDA7XG4gICAgfVxufSIsIiNyZXNvdXJjZS1xdWVzdGlvbnMge1xuICAgIC5yZXNvdXJjZS1xdWVzdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICBoMyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgLnJlYWQtbW9yZSxcbiAgICAgICAgLnJlYWQtbW9yZSBzcGFuIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLnJlYWQtbW9yZSxcbiAgICAgICAgICAgIC5yZWFkLW1vcmUgc3BhbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4jcmVzb3VyY2UtZmlsdGVycy1tb2JpbGUge1xuICAgIHBhZGRpbmctdG9wOiAwLjMxNzdlbSAqIDQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMzE3N2VtICogNDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5maWx0ZXJpbmcge1xuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4zMTc3ZW0gKiAyO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJG1lZGl1bS1ncmF5O1xuICAgICAgICB9XG4gICAgICAgIFtkYXRhLXRvZ2dsZT1cInR5cGUtZmlsdGVyXCJdIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMzE3N2VtIDAuNDBlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMzE3N2VtICogMjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3JtIHtcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJG1lZGl1bS1ncmF5O1xuICAgICAgICB9XG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgcGFkZGluZzogMC4zMTc3ZW0gMC40MGVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuI3Jlc291cmNlLWZpbHRlcnMtZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICBwYWRkaW5nLXRvcDogNS41cmVtO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIGg0IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgIH1cbiAgICAubWVudSB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3JtIHtcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJG1lZGl1bS1ncmF5O1xuICAgICAgICB9XG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgcGFkZGluZzogMC4zMTc3ZW0gMC40MGVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuI3Jlc291cmNlLWxpc3Qge1xuICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICAgIC5yZXNvdXJjZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07XG4gICAgICAgIC5yZXNvdXJjZS10eXBlIHtcbiAgICAgICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGNvbG9yOiAjOTI5MjkyO1xuICAgICAgICB9XG4gICAgICAgIC5yZXNvdXJjZS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC40NXJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICB9XG4gICAgICAgIC5yZWFkLW1vcmUsXG4gICAgICAgIC5yZWFkLW1vcmUgc3BhbiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5yZWFkLW1vcmUsXG4gICAgICAgICAgICAucmVhZC1tb3JlIHNwYW4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLnJlc291cmNlLXNpZ251cCB7XG4gICAgYmFja2dyb3VuZDogI2E5YjhiNztcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICBoNCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgLmdmaWVsZF9sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmdmb3JtX2JvZHkge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBmb3JtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTIwcHgpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmdmb3JtX2Zvb3RlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDExcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgfVxufVxuIl19 */
