@charset "UTF-8";
/* ==========================================================================
   #BOX-SIZING
   ========================================================================== */
/**
 * More sensible default box-sizing:
 * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
 */
html {
  box-sizing: border-box; }

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

/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

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

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

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

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

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

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible; }

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

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

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em; }

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

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

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

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

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

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */ }

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

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

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

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

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

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

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

/* ==========================================================================
   #RESET
   ========================================================================== */
/**
 * A very simple reset that sits on top of Normalize.css.
 */
body,
h1, h2, h3, h4, h5, h6,
blockquote, p, pre,
dl, dd, ol, ul,
figure,
hr,
fieldset, legend {
  margin: 0;
  padding: 0; }

/**
 * Remove trailing margins from nested lists.
 */
li > ol,
li > ul {
  margin-bottom: 0; }

/**
 * Remove default table spacing.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/**
 * 1. Reset Chrome and Firefox behaviour which sets a `min-width: min-content;`
 *    on fieldsets.
 */
fieldset {
  min-width: 0;
  /* [1] */
  border: 0; }

/* ==========================================================================
   #SHARED
   ========================================================================== */
/**
 * Shared declarations for certain elements.
 */
/**
 * Always declare margins in the same direction:
 * csswizardry.com/2012/06/single-direction-margin-declarations
 */
address,
h1, h2, h3, h4, h5, h6,
blockquote, p, pre,
dl, ol, ul,
figure,
hr,
table,
fieldset {
  margin-bottom: 24px; }

/**
 * Consistent indentation for lists.
 */
dd, ol, ul {
  margin-left: 24px; }

/* ==========================================================================
   #PAGE
   ========================================================================== */
/**
 * Simple page-level setup.
 *
 * 1. Set the default `font-size` and `line-height` for the entire project,
 *    sourced from our default variables. The `font-size` is calculated to exist
 *    in ems, the `line-height` is calculated to exist unitlessly.
 * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when
 *    navigating between pages that do/do not have enough content to produce
 *    scrollbars naturally.
 * 3. Ensure the page always fills at least the entire height of the viewport.
 */
html {
  font-size: 1em;
  /* [1] */
  line-height: 1.5;
  /* [1] */
  overflow-y: scroll;
  /* [2] */
  min-height: 100%;
  /* [3] */ }

/* ==========================================================================
   #HEADINGS
   ========================================================================== */
/**
 * Simple default styles for headings 1 through 6. Anything more opinionated
 * than simple font-size changes should likely be applied via classes (see:
 * http://csswizardry.com/2016/02/managing-typography-on-large-apps/).
 */
h1 {
  font-size: 36px;
  font-size: 2.25rem;
  line-height: 1.16667; }

h2 {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.28571; }

h3 {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.25; }

h4 {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 1.5; }

h5 {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.33333; }

h6 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.5; }

/* ==========================================================================
   #IMAGES
   ========================================================================== */
/**
 * 1. Fluid images for responsive purposes.
 * 2. Offset `alt` text from surrounding copy.
 * 3. Setting `vertical-align` removes the whitespace that appears under `img`
 *    elements when they are dropped into a page as-is. Safer alternative to
 *    using `display: block;`.
 */
img {
  max-width: 100%;
  /* [1] */
  font-style: italic;
  /* [2] */
  vertical-align: middle;
  /* [3] */ }

/**
   * If a `width` and/or `height` attribute has been explicitly defined, let’s
   * not make the image fluid.
   */
img[width],
img[height] {
  max-width: none; }

/* ==========================================================================
   #TABLES
   ========================================================================== */
/**
 * 1. Ensure tables fill up as much space as possible.
 */
table {
  width: 100%;
  /* [1] */ }

html {
  overflow-y: visible; }

html,
body {
  height: 100%; }

body {
  font-family: "korolev", sans-serif;
  overflow-y: scroll;
  color: #2e2e2e;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
  @media (min-width: 80em) {
    body.c-page-home::before, body.c-page-contact::before, body.c-page-about::before, body.c-page-projects::before {
      content: '';
      display: block;
      position: fixed;
      top: 0;
      right: 0; }
    body.c-page-home::before, body.c-page-about::before, body.c-page-projects::before {
      width: 28px;
      height: 187px;
      background-color: #dedede; }
    body.c-page-contact::before {
      width: 8px;
      height: 100px;
      background-color: #e0231e; } }
  body.is-open {
    overflow: hidden; }

label,
input,
select,
button,
textarea {
  font-family: "korolev", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

b,
strong {
  font-weight: 900; }

a {
  color: #2e2e2e; }

/* ==========================================================================
   #GRID
   ========================================================================== */
/**
 * This plugin provides a flexbox grid for inuitcss. Support for IE9 currently
 * prevents inuitcss from using the flexbox layout mode.
 *
 * Cells are full-width and will stack on top of each other by default:
 *
 * <div class="o-grid">
 *   <div class="o-grid__cell">
 *   </div>
 *   <div class="o-grid__cell">
 *   </div>
 * </div>
 *
 * Cells will in most cases be accompanied by utility classes that divide
 * the grid into fractions. These are provided by inuitcss:
 *
 * <div class="o-grid">
 *   <div class="o-grid__cell u-1/2">
 *   </div>
 *   <div class="o-grid__cell u-1/2">
 *   </div>
 * </div>
 *
 * Several modifier classes are provided. For example, `o-grid--auto` will
 * divide the space equally between all containing cells without the need
 * for width utility classes.
 *
 * <div class="o-grid--auto">
 *   <div class="o-grid__cell">
 *   </div>
 *   <div class="o-grid__cell">
 *   </div>
 * </div>
 */
/* The grid
   ========================================================================== */
.o-grid {
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
          flex-flow: row wrap;
  list-style: none;
  padding: 0; }

/**
 * 1. Cells are full-width and stack on top of each other by default.
 */
.o-grid__cell {
  -webkit-box-flex: 0;
          flex: 0 1 auto;
  width: 100%;
  /* [1] */ }

/* Gutters
   ========================================================================== */
/**
 * 1. The map $inuit-flexgrid-spacing-sizes contains a `null` key which
 *    will be our default gutter size.
 * 2. Add a negative margin on one side only. That way we aren't required to use
 *    a wrapper with the same amount of spacing, though it's common to do so.
 * 3. Neutralize the left margin on `o-grid`.
 */
.o-grid {
  /* [1] */
  margin-left: -24px;
  /* [2] */ }
  .o-grid > .o-grid__cell {
    padding-left: 24px;
    /* [3] */ }

.o-grid--tiny {
  /* [1] */
  margin-left: -6px;
  /* [2] */ }
  .o-grid--tiny > .o-grid__cell {
    padding-left: 6px;
    /* [3] */ }

.o-grid--small {
  /* [1] */
  margin-left: -12px;
  /* [2] */ }
  .o-grid--small > .o-grid__cell {
    padding-left: 12px;
    /* [3] */ }

.o-grid--large {
  /* [1] */
  margin-left: -48px;
  /* [2] */ }
  .o-grid--large > .o-grid__cell {
    padding-left: 48px;
    /* [3] */ }

.o-grid--huge {
  /* [1] */
  margin-left: -96px;
  /* [2] */ }
  .o-grid--huge > .o-grid__cell {
    padding-left: 96px;
    /* [3] */ }

.o-grid--flush {
  /* [1] */
  margin-left: 0;
  /* [2] */ }
  .o-grid--flush > .o-grid__cell {
    padding-left: 0;
    /* [3] */ }

/* Automatically size cells by distributing them equally
   ========================================================================== */
.o-grid--auto > .o-grid__cell {
  -webkit-box-flex: 1;
          flex: 1 0 0; }

/* Horizontal alignment
   ========================================================================== */
.o-grid--left {
  -webkit-box-pack: start;
          justify-content: flex-start; }

.o-grid--center {
  -webkit-box-pack: center;
          justify-content: center; }

.o-grid--right {
  -webkit-box-pack: end;
          justify-content: flex-end; }

.o-grid--between {
  -webkit-box-pack: justify;
          justify-content: space-between; }

.o-grid--around {
  justify-content: space-around; }

/* Pull behavior
   ========================================================================== */
.o-grid__cell--pull-left {
  margin-right: auto; }

.o-grid__cell--pull-right {
  margin-left: auto; }

/* Vertical alignment
   ========================================================================== */
.o-grid--top {
  -webkit-box-align: start;
          align-items: flex-start; }

.o-grid--middle {
  -webkit-box-align: center;
          align-items: center; }

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

.o-grid--baseline {
  -webkit-box-align: baseline;
          align-items: baseline; }

.o-grid--stretch {
  -webkit-box-align: stretch;
          align-items: stretch; }

.o-grid__cell--top {
  align-self: flex-start; }

.o-grid__cell--middle {
  align-self: center; }

.o-grid__cell--bottom {
  align-self: flex-end; }

.o-grid__cell--baseline {
  align-self: baseline; }

.o-grid__cell--stretch {
  align-self: stretch; }

/* Content distribution
   ========================================================================== */
.o-grid--reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
          flex-direction: row-reverse; }

.o-grid--column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-direction: column; }

.o-grid--column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
          flex-direction: column-reverse; }

.c-body {
  font-size: 16px;
  font-size: 1rem;
  line-height: 26px;
  font-weight: 300; }
  @media (min-width: 64em) {
    .c-body {
      font-size: 18px;
      font-size: 1.125rem;
      line-height: 28px; } }
  .c-body > *:first-child {
    margin-top: 0; }
  .c-body > *:last-child {
    margin-bottom: 0; }

.c-box {
  background-color: #f8f8f8;
  padding: 50px 25px; }
  @media (min-width: 64em) {
    .c-box {
      padding: 80px 50px; } }
  .c-box h2 {
    font-size: 25px;
    font-size: 1.5625rem;
    line-height: 30px;
    font-weight: 700;
    letter-spacing: 1px; }
    @media (min-width: 64em) {
      .c-box h2 {
        font-size: 30px;
        font-size: 1.875rem;
        line-height: 35px; } }

.c-box--middle {
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-direction: column;
  -webkit-box-pack: center;
          justify-content: center; }

@media (min-width: 64em) {
  .c-box--full {
    min-height: 100%; } }

.c-button__footer {
  margin-top: 30px; }
  @media (min-width: 64em) {
    .c-button__footer {
      margin-top: 50px; } }

.c-button {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.5;
  background-color: #000;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  border: 0;
  display: inline-block;
  padding: 14px;
  text-align: center;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  text-transform: uppercase;
  letter-spacing: 1.5px; }
  @media (min-width: 64em) {
    .c-button {
      padding: 24px; } }

.c-button--primary {
  background-color: #e0231e; }

.c-button--full {
  width: 100%; }

.c-close-menu {
  display: none; }
  .is-open .c-close-menu {
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: center;
            justify-content: center;
    -webkit-box-align: center;
            align-items: center;
    padding: 20px;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    margin: 0;
    border: 0;
    background: transparent;
    position: absolute;
    top: 0;
    right: 0;
    background: #e0231e;
    cursor: pointer; }
    .is-open .c-close-menu:focus {
      outline: 0; }

.c-content {
  position: relative; }

.c-content__label {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 1.5;
  font-weight: 700;
  color: #e0231e;
  text-transform: uppercase;
  letter-spacing: 4px;
  margin-bottom: 20px; }
  @media (max-width: 63.99em) {
    .c-content__label {
      text-align: center; } }
  @media (min-width: 64em) {
    .c-content__label {
      position: absolute;
      top: 0;
      left: 0;
      -webkit-transform-origin: top left;
              transform-origin: top left;
      -webkit-transform: rotate(-90deg) translateX(-100%) translateY(-40px);
              transform: rotate(-90deg) translateX(-100%) translateY(-40px);
      margin-bottom: 0; } }

.c-cta {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 30px;
  font-weight: 700;
  background: url("../img/wood-pattern.jpg") no-repeat center center/cover;
  text-align: center;
  color: #fff;
  margin-top: 50px;
  padding: 50px 25px; }
  @media (min-width: 48em) and (max-width: 63.99em) {
    .c-cta {
      font-size: 25px;
      font-size: 1.5625rem;
      line-height: 35px; } }
  @media (min-width: 64em) {
    .c-cta {
      font-size: 35px;
      font-size: 2.1875rem;
      line-height: 45px;
      margin-top: 100px;
      padding-top: 100px;
      padding-bottom: 100px; } }
  .c-cta a {
    color: #fff;
    text-decoration: none;
    font-weight: 500; }

.c-fb-follow {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 12px;
  position: fixed;
  bottom: 0;
  z-index: 100;
  background-color: #e0231e;
  color: #fff;
  text-decoration: none;
  -webkit-transform-origin: bottom left;
          transform-origin: bottom left;
  -webkit-transform: rotate(-90deg) translateY(100%);
          transform: rotate(-90deg) translateY(100%);
  padding: 20px 30px; }
  @media (min-width: 64em) {
    .c-fb-follow {
      left: 0;
      padding-right: 59px; } }

.c-fb-follow__icon {
  position: absolute;
  bottom: 50%;
  right: 20px;
  -webkit-transform-origin: center center;
          transform-origin: center center;
  -webkit-transform: rotate(90deg) translateX(50%);
          transform: rotate(90deg) translateX(50%); }

.c-fb-follow__label {
  display: none; }
  @media (min-width: 64em) {
    .c-fb-follow__label {
      display: block;
      font-weight: bold;
      text-transform: uppercase;
      letter-spacing: 2px; } }

.c-footer-logo {
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
          align-items: center;
  text-align: left; }
  @media (max-width: 63.99em) {
    .c-footer-logo {
      margin-bottom: 24px;
      -webkit-box-pack: center;
              justify-content: center; } }

.c-footer-logo__image {
  margin-right: 30px;
  min-width: 48px; }

.c-footer-logo__text {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 24px;
  font-weight: bold; }

.c-hero {
  position: relative;
  margin-bottom: 100px; }
  @media (min-width: 64em) {
    .c-hero {
      margin-bottom: 220px; } }

.c-hero__text {
  font-size: 30px;
  font-size: 1.875rem;
  line-height: 40px;
  font-weight: bold;
  position: absolute;
  z-index: 10;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); }
  @media (min-width: 48em) and (max-width: 63.99em) {
    .c-hero__text {
      font-size: 40px;
      font-size: 2.5rem;
      line-height: 55px; } }
  @media (max-width: 63.99em) {
    .c-hero__text {
      text-align: center; } }
  @media (min-width: 64em) {
    .c-hero__text {
      font-size: 55px;
      font-size: 3.4375rem;
      line-height: 70px;
      left: 50px;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%); } }
  .c-hero__text span {
    display: inline-block;
    background-color: #fff;
    padding-right: 15px;
    white-space: nowrap; }
    @media (max-width: 47.99em) {
      .c-hero__text span {
        padding-left: 15px; } }
    @media (min-width: 48em) and (max-width: 63.99em) {
      .c-hero__text span {
        padding-right: 25px;
        padding-left: 25px; } }

.c-hero__slider {
  position: relative; }
  @media (min-width: 64em) {
    .c-hero__slider {
      margin-left: 234px; } }

.c-hero__scroll {
  display: none; }
  @media (min-width: 64em) {
    .c-hero__scroll {
      display: block;
      position: absolute;
      bottom: 0;
      left: 0; }
      .c-hero__scroll svg {
        position: absolute;
        bottom: 0;
        left: 0;
        -webkit-transform: translate(-50px, 100%);
                transform: translate(-50px, 100%); } }

.c-hero__scroll-label {
  font-size: 10px;
  font-size: 0.625rem;
  line-height: 1.8;
  font-weight: 700;
  letter-spacing: 4px;
  text-transform: uppercase;
  -webkit-transform-origin: bottom left;
          transform-origin: bottom left;
  -webkit-transform: rotate(-90deg) translateY(-10px);
          transform: rotate(-90deg) translateY(-10px); }

.c-hero__scroll-link {
  display: block;
  text-decoration: none; }

.c-jumbotron {
  width: 100%;
  height: 320px;
  background: no-repeat center center / cover;
  margin-bottom: 50px; }
  @media (min-width: 48em) and (max-width: 63.99em) {
    .c-jumbotron {
      height: 420px; } }
  @media (min-width: 64em) {
    .c-jumbotron {
      height: 520px;
      margin-bottom: 130px; } }

.c-maps {
  width: 100%;
  height: 350px;
  background: #2e2e2e; }

.c-page-footer {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 24px;
  font-weight: 500;
  background-color: #000;
  color: #fff;
  padding-top: 50px;
  padding-bottom: 50px; }
  @media (max-width: 63.99em) {
    .c-page-footer {
      text-align: center; } }
  @media (min-width: 64em) {
    .c-page-footer {
      padding-top: 100px;
      padding-bottom: 100px; } }
  .c-page-footer a {
    color: inherit; }

.c-page-header {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
          align-items: center;
  max-width: 1064px;
  margin: 30px auto 25px auto;
  padding-right: 20px;
  padding-left: 20px; }
  @media (min-width: 64em) {
    .c-page-header {
      margin-top: 80px;
      margin-bottom: 50px; } }

.c-page-intro {
  max-width: 740px;
  margin-right: auto;
  margin-bottom: 50px;
  margin-left: auto;
  text-align: center; }
  @media (min-width: 64em) {
    .c-page-intro {
      margin-bottom: 130px; } }

.c-page-logo__link {
  display: inline-block; }

@media (min-width: 64em) {
  .c-page-logo__image {
    width: 257px;
    height: 57px; } }

.c-page-title {
  font-size: 35px;
  font-size: 2.1875rem;
  line-height: 1.2;
  font-weight: bold;
  margin-bottom: 40px;
  padding-bottom: 20px;
  position: relative;
  text-align: center; }
  @media (min-width: 48em) and (max-width: 63.99em) {
    .c-page-title {
      font-size: 45px;
      font-size: 2.8125rem;
      line-height: 1.2; } }
  @media (min-width: 64em) {
    .c-page-title {
      font-size: 65px;
      font-size: 4.0625rem;
      line-height: 1.10769;
      margin-bottom: 90px; } }
  .c-page-title::after {
    content: '';
    display: block;
    width: 140px;
    height: 2px;
    position: absolute;
    bottom: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    background-color: #e0231e; }

.c-primary-nav__menu {
  display: none; }
  @media (max-width: 63.99em) {
    .is-open .c-primary-nav__menu {
      display: -webkit-box;
      display: flex;
      -webkit-box-align: center;
              align-items: center;
      -webkit-box-pack: center;
              justify-content: center;
      width: 100%;
      height: 100%;
      position: fixed;
      z-index: 100;
      top: 0;
      left: 0;
      background-color: #000;
      overflow-y: auto;
      padding: 50px 30px; } }
  @media (min-width: 64em) {
    .c-primary-nav__menu {
      display: block; } }

.c-primary-nav__list {
  list-style: none;
  margin: 0;
  padding: 0; }
  @media (min-width: 64em) {
    .c-primary-nav__list {
      display: -webkit-box;
      display: flex; } }

.c-primary-nav__item {
  margin: 0;
  padding: 0; }
  @media (max-width: 63.99em) {
    .c-primary-nav__item {
      text-align: center; } }
  @media (max-width: 63.99em) {
    .c-primary-nav__item + .c-primary-nav__item {
      margin-top: 10px; } }
  @media (min-width: 64em) {
    .c-primary-nav__item + .c-primary-nav__item {
      margin-left: 70px; } }

.c-primary-nav__link {
  text-transform: uppercase;
  text-decoration: none;
  font-weight: 500; }
  @media (max-width: 63.99em) {
    .c-primary-nav__link {
      font-size: 32px;
      font-size: 2rem;
      line-height: 1.3125;
      color: #fff; } }
  @media (min-width: 64em) {
    .c-primary-nav__link {
      font-size: 16px;
      font-size: 1rem;
      line-height: 1.5; } }
  .c-primary-nav__link:hover {
    color: #e0231e; }
  .c-primary-nav__link.is-active {
    color: #e0231e;
    font-weight: 700; }

.c-project-item {
  display: block;
  background: no-repeat center center / cover;
  height: 180px;
  position: relative;
  overflow: hidden; }
  @media (min-width: 64em) {
    .c-project-item {
      height: 230px; } }
  .c-project-item::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.45);
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transition: opacity 0.2s ease;
    transition: opacity 0.2s ease; }
  .c-project-item:hover .c-project-item__label {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); }

@media (min-width: 64em) {
  .c-project-item--large {
    height: 460px; } }

.c-project-item__label {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: end;
          align-items: flex-end;
  padding: 1em;
  font-size: 1.5rem;
  font-weight: bold;
  color: #e0231e;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 40px, transparent 200px);
  opacity: 0;
  -webkit-transition: 200ms;
  transition: 200ms; }

.c-project-teaser {
  display: block;
  margin-bottom: 24px;
  position: relative; }
  .c-project-teaser::after {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.45);
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transition: opacity 0.2s ease;
    transition: opacity 0.2s ease; }
  .c-project-teaser:hover::after {
    opacity: 1; }

.c-projects-grid {
  width: calc(100% + 10px);
  margin-bottom: 25px;
  margin-left: -5px; }

.c-projects-grid__cell {
  padding: 5px; }

.c-projects {
  margin-top: 80px; }
  @media (min-width: 64em) {
    .c-projects {
      margin-top: 160px; } }
  .c-projects h2 {
    font-size: 30px;
    font-size: 1.875rem;
    line-height: 35px;
    margin-bottom: 40px;
    text-align: center; }
    @media (min-width: 64em) {
      .c-projects h2 {
        font-size: 40px;
        font-size: 2.5rem;
        line-height: 45px;
        margin-bottom: 60px; } }

.c-projects__footer {
  margin-top: 10px; }

.c-show-menu {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.5;
  text-transform: uppercase;
  font-weight: 500;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  background: transparent;
  margin: 0;
  padding: 0;
  cursor: pointer; }
  .c-show-menu:focus {
    outline: 0; }
  @media (min-width: 64em) {
    .c-show-menu {
      display: none; } }

.c-slider {
  height: 368px; }
  @media (min-width: 48em) and (max-width: 63.99em) {
    .c-slider {
      height: 468px; } }
  @media (min-width: 64em) {
    .c-slider {
      height: 568px; } }
  .c-slider .flickity-page-dots {
    display: -webkit-box;
    display: flex;
    -webkit-box-align: end;
            align-items: flex-end;
    -webkit-box-pack: end;
            justify-content: flex-end;
    right: 0;
    bottom: 0;
    text-align: left;
    height: 9px;
    margin-top: 20px;
    -webkit-transform: translateY(34px);
            transform: translateY(34px); }
    .c-slider .flickity-page-dots .dot {
      display: block;
      width: 34px;
      height: 3px;
      border-radius: 0;
      opacity: 1;
      background: #eee;
      -webkit-transition: all 0.3s ease;
      transition: all 0.3s ease;
      margin: 0; }
      @media (min-width: 64em) {
        .c-slider .flickity-page-dots .dot {
          width: 54px; } }
      .c-slider .flickity-page-dots .dot + .dot {
        margin-left: 15px; }
      .c-slider .flickity-page-dots .dot.is-selected {
        height: 9px;
        background: #cacaca; }

.c-slider__item {
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover; }

/* ==========================================================================
   #CLEARFIX
   ========================================================================== */
/**
 * Attach our clearfix mixin to a utility class.
 */
.u-clearfix:after {
  content: "" !important;
  display: block !important;
  clear: both !important; }

/* ==========================================================================
   #WIDTHS
   ========================================================================== */
/**
 * inuitcss generates a series of utility classes that give a fluid width to
 * whichever element they’re applied, e.g.:
 *
 *   <img src="" alt="" class="u-1/2" />
 *
 * These classes are most commonly used in conjunction with our layout system,
 * e.g.:
 *
 *   <div class="o-layout__item  u-1/2">
 *
 * By default, inuitcss will also generate responsive variants of each of these
 * classes by using your Sass MQ configuration, e.g.:
 *
 *   <div class="o-layout__item  u-1/1  u-1/2@tablet  u-1/3@desktop">
 *
 * Optionally, inuitcss can generate offset classes which can push and pull
 * elements left and right by a specified amount, e.g.:
 *
 *   <div class="o-layout__item  u-2/3  u-pull-1/3">
 *
 * This is useful for making very granular changes to the rendered order of
 * items in a layout.
 *
 * N.B. This option is turned off by default.
 */
/**
 * A series of width helper classes that you can use to size things like grid
 * systems. Classes take a fraction-like format (e.g. `.u-2/3`). Use these in
 * your markup:
 *
 * <div class="u-7/12">
 *
 * The following will generate widths helper classes based on the fractions
 * defined in the `$inuit-fractions` list.
 */
.u-1\/1 {
  width: 100% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-1\/1 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 100% !important; }

.u-pull-1\/1 {
  position: relative !important;
  right: 100% !important;
  left: auto !important;
  /* [1] */ }

.u-1\/2 {
  width: 50% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-1\/2 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 50% !important; }

.u-pull-1\/2 {
  position: relative !important;
  right: 50% !important;
  left: auto !important;
  /* [1] */ }

.u-2\/2 {
  width: 100% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-2\/2 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 100% !important; }

.u-pull-2\/2 {
  position: relative !important;
  right: 100% !important;
  left: auto !important;
  /* [1] */ }

.u-1\/3 {
  width: 33.33333% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-1\/3 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 33.33333% !important; }

.u-pull-1\/3 {
  position: relative !important;
  right: 33.33333% !important;
  left: auto !important;
  /* [1] */ }

.u-2\/3 {
  width: 66.66667% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-2\/3 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 66.66667% !important; }

.u-pull-2\/3 {
  position: relative !important;
  right: 66.66667% !important;
  left: auto !important;
  /* [1] */ }

.u-3\/3 {
  width: 100% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-3\/3 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 100% !important; }

.u-pull-3\/3 {
  position: relative !important;
  right: 100% !important;
  left: auto !important;
  /* [1] */ }

.u-1\/4 {
  width: 25% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-1\/4 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 25% !important; }

.u-pull-1\/4 {
  position: relative !important;
  right: 25% !important;
  left: auto !important;
  /* [1] */ }

.u-2\/4 {
  width: 50% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-2\/4 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 50% !important; }

.u-pull-2\/4 {
  position: relative !important;
  right: 50% !important;
  left: auto !important;
  /* [1] */ }

.u-3\/4 {
  width: 75% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-3\/4 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 75% !important; }

.u-pull-3\/4 {
  position: relative !important;
  right: 75% !important;
  left: auto !important;
  /* [1] */ }

.u-4\/4 {
  width: 100% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-4\/4 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 100% !important; }

.u-pull-4\/4 {
  position: relative !important;
  right: 100% !important;
  left: auto !important;
  /* [1] */ }

.u-1\/5 {
  width: 20% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-1\/5 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 20% !important; }

.u-pull-1\/5 {
  position: relative !important;
  right: 20% !important;
  left: auto !important;
  /* [1] */ }

.u-2\/5 {
  width: 40% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-2\/5 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 40% !important; }

.u-pull-2\/5 {
  position: relative !important;
  right: 40% !important;
  left: auto !important;
  /* [1] */ }

.u-3\/5 {
  width: 60% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-3\/5 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 60% !important; }

.u-pull-3\/5 {
  position: relative !important;
  right: 60% !important;
  left: auto !important;
  /* [1] */ }

.u-4\/5 {
  width: 80% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-4\/5 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 80% !important; }

.u-pull-4\/5 {
  position: relative !important;
  right: 80% !important;
  left: auto !important;
  /* [1] */ }

.u-5\/5 {
  width: 100% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-5\/5 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 100% !important; }

.u-pull-5\/5 {
  position: relative !important;
  right: 100% !important;
  left: auto !important;
  /* [1] */ }

/**
 * If we’re using Sass-MQ, automatically generate grid system(s) for each of our
 * defined breakpoints, and give them a Responsive Suffix, e.g.:
 *
 * <div class="u-3/12@mobile">
 */
@media (min-width: 30em) {
  .u-1\/1\@mobile {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/1\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-1\/1\@mobile {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/2\@mobile {
    width: 50% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/2\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 50% !important; }
  .u-pull-1\/2\@mobile {
    position: relative !important;
    right: 50% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/2\@mobile {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/2\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-2\/2\@mobile {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/3\@mobile {
    width: 33.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/3\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 33.33333% !important; }
  .u-pull-1\/3\@mobile {
    position: relative !important;
    right: 33.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/3\@mobile {
    width: 66.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/3\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 66.66667% !important; }
  .u-pull-2\/3\@mobile {
    position: relative !important;
    right: 66.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/3\@mobile {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/3\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-3\/3\@mobile {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/4\@mobile {
    width: 25% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/4\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 25% !important; }
  .u-pull-1\/4\@mobile {
    position: relative !important;
    right: 25% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/4\@mobile {
    width: 50% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/4\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 50% !important; }
  .u-pull-2\/4\@mobile {
    position: relative !important;
    right: 50% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/4\@mobile {
    width: 75% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/4\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 75% !important; }
  .u-pull-3\/4\@mobile {
    position: relative !important;
    right: 75% !important;
    left: auto !important;
    /* [1] */ }
  .u-4\/4\@mobile {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-4\/4\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-4\/4\@mobile {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/5\@mobile {
    width: 20% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/5\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 20% !important; }
  .u-pull-1\/5\@mobile {
    position: relative !important;
    right: 20% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/5\@mobile {
    width: 40% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/5\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 40% !important; }
  .u-pull-2\/5\@mobile {
    position: relative !important;
    right: 40% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/5\@mobile {
    width: 60% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/5\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 60% !important; }
  .u-pull-3\/5\@mobile {
    position: relative !important;
    right: 60% !important;
    left: auto !important;
    /* [1] */ }
  .u-4\/5\@mobile {
    width: 80% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-4\/5\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 80% !important; }
  .u-pull-4\/5\@mobile {
    position: relative !important;
    right: 80% !important;
    left: auto !important;
    /* [1] */ }
  .u-5\/5\@mobile {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-5\/5\@mobile {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-5\/5\@mobile {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-push-none\@mobile {
    left: auto !important; }
  .u-pull-none\@mobile {
    right: auto !important; } }

@media (min-width: 48em) {
  .u-1\/1\@tablet {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/1\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-1\/1\@tablet {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/2\@tablet {
    width: 50% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/2\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 50% !important; }
  .u-pull-1\/2\@tablet {
    position: relative !important;
    right: 50% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/2\@tablet {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/2\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-2\/2\@tablet {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/3\@tablet {
    width: 33.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/3\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 33.33333% !important; }
  .u-pull-1\/3\@tablet {
    position: relative !important;
    right: 33.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/3\@tablet {
    width: 66.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/3\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 66.66667% !important; }
  .u-pull-2\/3\@tablet {
    position: relative !important;
    right: 66.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/3\@tablet {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/3\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-3\/3\@tablet {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/4\@tablet {
    width: 25% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/4\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 25% !important; }
  .u-pull-1\/4\@tablet {
    position: relative !important;
    right: 25% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/4\@tablet {
    width: 50% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/4\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 50% !important; }
  .u-pull-2\/4\@tablet {
    position: relative !important;
    right: 50% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/4\@tablet {
    width: 75% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/4\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 75% !important; }
  .u-pull-3\/4\@tablet {
    position: relative !important;
    right: 75% !important;
    left: auto !important;
    /* [1] */ }
  .u-4\/4\@tablet {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-4\/4\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-4\/4\@tablet {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/5\@tablet {
    width: 20% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/5\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 20% !important; }
  .u-pull-1\/5\@tablet {
    position: relative !important;
    right: 20% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/5\@tablet {
    width: 40% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/5\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 40% !important; }
  .u-pull-2\/5\@tablet {
    position: relative !important;
    right: 40% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/5\@tablet {
    width: 60% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/5\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 60% !important; }
  .u-pull-3\/5\@tablet {
    position: relative !important;
    right: 60% !important;
    left: auto !important;
    /* [1] */ }
  .u-4\/5\@tablet {
    width: 80% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-4\/5\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 80% !important; }
  .u-pull-4\/5\@tablet {
    position: relative !important;
    right: 80% !important;
    left: auto !important;
    /* [1] */ }
  .u-5\/5\@tablet {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-5\/5\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-5\/5\@tablet {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-push-none\@tablet {
    left: auto !important; }
  .u-pull-none\@tablet {
    right: auto !important; } }

@media (min-width: 64em) {
  .u-1\/1\@desktop {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/1\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-1\/1\@desktop {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/2\@desktop {
    width: 50% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/2\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 50% !important; }
  .u-pull-1\/2\@desktop {
    position: relative !important;
    right: 50% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/2\@desktop {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/2\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-2\/2\@desktop {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/3\@desktop {
    width: 33.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/3\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 33.33333% !important; }
  .u-pull-1\/3\@desktop {
    position: relative !important;
    right: 33.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/3\@desktop {
    width: 66.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/3\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 66.66667% !important; }
  .u-pull-2\/3\@desktop {
    position: relative !important;
    right: 66.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/3\@desktop {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/3\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-3\/3\@desktop {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/4\@desktop {
    width: 25% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/4\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 25% !important; }
  .u-pull-1\/4\@desktop {
    position: relative !important;
    right: 25% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/4\@desktop {
    width: 50% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/4\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 50% !important; }
  .u-pull-2\/4\@desktop {
    position: relative !important;
    right: 50% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/4\@desktop {
    width: 75% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/4\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 75% !important; }
  .u-pull-3\/4\@desktop {
    position: relative !important;
    right: 75% !important;
    left: auto !important;
    /* [1] */ }
  .u-4\/4\@desktop {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-4\/4\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-4\/4\@desktop {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/5\@desktop {
    width: 20% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/5\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 20% !important; }
  .u-pull-1\/5\@desktop {
    position: relative !important;
    right: 20% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/5\@desktop {
    width: 40% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/5\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 40% !important; }
  .u-pull-2\/5\@desktop {
    position: relative !important;
    right: 40% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/5\@desktop {
    width: 60% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/5\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 60% !important; }
  .u-pull-3\/5\@desktop {
    position: relative !important;
    right: 60% !important;
    left: auto !important;
    /* [1] */ }
  .u-4\/5\@desktop {
    width: 80% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-4\/5\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 80% !important; }
  .u-pull-4\/5\@desktop {
    position: relative !important;
    right: 80% !important;
    left: auto !important;
    /* [1] */ }
  .u-5\/5\@desktop {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-5\/5\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-5\/5\@desktop {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-push-none\@desktop {
    left: auto !important; }
  .u-pull-none\@desktop {
    right: auto !important; } }

@media (min-width: 80em) {
  .u-1\/1\@wide {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/1\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-1\/1\@wide {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/2\@wide {
    width: 50% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/2\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 50% !important; }
  .u-pull-1\/2\@wide {
    position: relative !important;
    right: 50% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/2\@wide {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/2\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-2\/2\@wide {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/3\@wide {
    width: 33.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/3\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 33.33333% !important; }
  .u-pull-1\/3\@wide {
    position: relative !important;
    right: 33.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/3\@wide {
    width: 66.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/3\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 66.66667% !important; }
  .u-pull-2\/3\@wide {
    position: relative !important;
    right: 66.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/3\@wide {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/3\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-3\/3\@wide {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/4\@wide {
    width: 25% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/4\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 25% !important; }
  .u-pull-1\/4\@wide {
    position: relative !important;
    right: 25% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/4\@wide {
    width: 50% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/4\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 50% !important; }
  .u-pull-2\/4\@wide {
    position: relative !important;
    right: 50% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/4\@wide {
    width: 75% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/4\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 75% !important; }
  .u-pull-3\/4\@wide {
    position: relative !important;
    right: 75% !important;
    left: auto !important;
    /* [1] */ }
  .u-4\/4\@wide {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-4\/4\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-4\/4\@wide {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-1\/5\@wide {
    width: 20% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/5\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 20% !important; }
  .u-pull-1\/5\@wide {
    position: relative !important;
    right: 20% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/5\@wide {
    width: 40% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/5\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 40% !important; }
  .u-pull-2\/5\@wide {
    position: relative !important;
    right: 40% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/5\@wide {
    width: 60% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/5\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 60% !important; }
  .u-pull-3\/5\@wide {
    position: relative !important;
    right: 60% !important;
    left: auto !important;
    /* [1] */ }
  .u-4\/5\@wide {
    width: 80% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-4\/5\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 80% !important; }
  .u-pull-4\/5\@wide {
    position: relative !important;
    right: 80% !important;
    left: auto !important;
    /* [1] */ }
  .u-5\/5\@wide {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-5\/5\@wide {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-5\/5\@wide {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-push-none\@wide {
    left: auto !important; }
  .u-pull-none\@wide {
    right: auto !important; } }

/* ==========================================================================
   #WIDTHS
   ========================================================================== */
.u-1\/12 {
  width: 8.33333% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-1\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 8.33333% !important; }

.u-pull-1\/12 {
  position: relative !important;
  right: 8.33333% !important;
  left: auto !important;
  /* [1] */ }

.u-2\/12 {
  width: 16.66667% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-2\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 16.66667% !important; }

.u-pull-2\/12 {
  position: relative !important;
  right: 16.66667% !important;
  left: auto !important;
  /* [1] */ }

.u-3\/12 {
  width: 25% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-3\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 25% !important; }

.u-pull-3\/12 {
  position: relative !important;
  right: 25% !important;
  left: auto !important;
  /* [1] */ }

.u-4\/12 {
  width: 33.33333% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-4\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 33.33333% !important; }

.u-pull-4\/12 {
  position: relative !important;
  right: 33.33333% !important;
  left: auto !important;
  /* [1] */ }

.u-5\/12 {
  width: 41.66667% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-5\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 41.66667% !important; }

.u-pull-5\/12 {
  position: relative !important;
  right: 41.66667% !important;
  left: auto !important;
  /* [1] */ }

.u-6\/12 {
  width: 50% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-6\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 50% !important; }

.u-pull-6\/12 {
  position: relative !important;
  right: 50% !important;
  left: auto !important;
  /* [1] */ }

.u-7\/12 {
  width: 58.33333% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-7\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 58.33333% !important; }

.u-pull-7\/12 {
  position: relative !important;
  right: 58.33333% !important;
  left: auto !important;
  /* [1] */ }

.u-8\/12 {
  width: 66.66667% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-8\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 66.66667% !important; }

.u-pull-8\/12 {
  position: relative !important;
  right: 66.66667% !important;
  left: auto !important;
  /* [1] */ }

.u-9\/12 {
  width: 75% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-9\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 75% !important; }

.u-pull-9\/12 {
  position: relative !important;
  right: 75% !important;
  left: auto !important;
  /* [1] */ }

.u-10\/12 {
  width: 83.33333% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-10\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 83.33333% !important; }

.u-pull-10\/12 {
  position: relative !important;
  right: 83.33333% !important;
  left: auto !important;
  /* [1] */ }

.u-11\/12 {
  width: 91.66667% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-11\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 91.66667% !important; }

.u-pull-11\/12 {
  position: relative !important;
  right: 91.66667% !important;
  left: auto !important;
  /* [1] */ }

.u-12\/12 {
  width: 100% !important; }

/**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
.u-push-12\/12 {
  position: relative !important;
  right: auto !important;
  /* [1] */
  left: 100% !important; }

.u-pull-12\/12 {
  position: relative !important;
  right: 100% !important;
  left: auto !important;
  /* [1] */ }

@media screen and (min-width: 768px) {
  .u-1\/12\@tablet {
    width: 8.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 8.33333% !important; }
  .u-pull-1\/12\@tablet {
    position: relative !important;
    right: 8.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/12\@tablet {
    width: 16.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 16.66667% !important; }
  .u-pull-2\/12\@tablet {
    position: relative !important;
    right: 16.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/12\@tablet {
    width: 25% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 25% !important; }
  .u-pull-3\/12\@tablet {
    position: relative !important;
    right: 25% !important;
    left: auto !important;
    /* [1] */ }
  .u-4\/12\@tablet {
    width: 33.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-4\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 33.33333% !important; }
  .u-pull-4\/12\@tablet {
    position: relative !important;
    right: 33.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-5\/12\@tablet {
    width: 41.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-5\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 41.66667% !important; }
  .u-pull-5\/12\@tablet {
    position: relative !important;
    right: 41.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-6\/12\@tablet {
    width: 50% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-6\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 50% !important; }
  .u-pull-6\/12\@tablet {
    position: relative !important;
    right: 50% !important;
    left: auto !important;
    /* [1] */ }
  .u-7\/12\@tablet {
    width: 58.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-7\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 58.33333% !important; }
  .u-pull-7\/12\@tablet {
    position: relative !important;
    right: 58.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-8\/12\@tablet {
    width: 66.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-8\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 66.66667% !important; }
  .u-pull-8\/12\@tablet {
    position: relative !important;
    right: 66.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-9\/12\@tablet {
    width: 75% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-9\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 75% !important; }
  .u-pull-9\/12\@tablet {
    position: relative !important;
    right: 75% !important;
    left: auto !important;
    /* [1] */ }
  .u-10\/12\@tablet {
    width: 83.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-10\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 83.33333% !important; }
  .u-pull-10\/12\@tablet {
    position: relative !important;
    right: 83.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-11\/12\@tablet {
    width: 91.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-11\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 91.66667% !important; }
  .u-pull-11\/12\@tablet {
    position: relative !important;
    right: 91.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-12\/12\@tablet {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-12\/12\@tablet {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-12\/12\@tablet {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-push-none\@tablet {
    left: auto !important; }
  .u-pull-none\@tablet {
    right: auto !important; } }

@media screen and (min-width: 1024px) {
  .u-1\/12\@desktop {
    width: 8.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-1\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 8.33333% !important; }
  .u-pull-1\/12\@desktop {
    position: relative !important;
    right: 8.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-2\/12\@desktop {
    width: 16.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-2\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 16.66667% !important; }
  .u-pull-2\/12\@desktop {
    position: relative !important;
    right: 16.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-3\/12\@desktop {
    width: 25% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-3\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 25% !important; }
  .u-pull-3\/12\@desktop {
    position: relative !important;
    right: 25% !important;
    left: auto !important;
    /* [1] */ }
  .u-4\/12\@desktop {
    width: 33.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-4\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 33.33333% !important; }
  .u-pull-4\/12\@desktop {
    position: relative !important;
    right: 33.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-5\/12\@desktop {
    width: 41.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-5\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 41.66667% !important; }
  .u-pull-5\/12\@desktop {
    position: relative !important;
    right: 41.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-6\/12\@desktop {
    width: 50% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-6\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 50% !important; }
  .u-pull-6\/12\@desktop {
    position: relative !important;
    right: 50% !important;
    left: auto !important;
    /* [1] */ }
  .u-7\/12\@desktop {
    width: 58.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-7\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 58.33333% !important; }
  .u-pull-7\/12\@desktop {
    position: relative !important;
    right: 58.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-8\/12\@desktop {
    width: 66.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-8\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 66.66667% !important; }
  .u-pull-8\/12\@desktop {
    position: relative !important;
    right: 66.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-9\/12\@desktop {
    width: 75% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-9\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 75% !important; }
  .u-pull-9\/12\@desktop {
    position: relative !important;
    right: 75% !important;
    left: auto !important;
    /* [1] */ }
  .u-10\/12\@desktop {
    width: 83.33333% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-10\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 83.33333% !important; }
  .u-pull-10\/12\@desktop {
    position: relative !important;
    right: 83.33333% !important;
    left: auto !important;
    /* [1] */ }
  .u-11\/12\@desktop {
    width: 91.66667% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-11\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 91.66667% !important; }
  .u-pull-11\/12\@desktop {
    position: relative !important;
    right: 91.66667% !important;
    left: auto !important;
    /* [1] */ }
  .u-12\/12\@desktop {
    width: 100% !important; }
  /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */
  .u-push-12\/12\@desktop {
    position: relative !important;
    right: auto !important;
    /* [1] */
    left: 100% !important; }
  .u-pull-12\/12\@desktop {
    position: relative !important;
    right: 100% !important;
    left: auto !important;
    /* [1] */ }
  .u-push-none\@desktop {
    left: auto !important; }
  .u-pull-none\@desktop {
    right: auto !important; } }

/* ==========================================================================
   #HEADINGS
   ========================================================================== */
/**
 * Redefine all of our basic heading styles against utility classes so as to
 * allow for double stranded heading hierarchy, e.g. we semantically need an H2,
 * but we want it to be sized like an H1:
 *
 *   <h2 class="u-h1"></h2>
 *
 */
.u-h1 {
  font-size: 36px !important;
  font-size: 2.25rem !important;
  line-height: 1.16667 !important; }

.u-h2 {
  font-size: 28px !important;
  font-size: 1.75rem !important;
  line-height: 1.28571 !important; }

.u-h3 {
  font-size: 24px !important;
  font-size: 1.5rem !important;
  line-height: 1.25 !important; }

.u-h4 {
  font-size: 20px !important;
  font-size: 1.25rem !important;
  line-height: 1.5 !important; }

.u-h5 {
  font-size: 18px !important;
  font-size: 1.125rem !important;
  line-height: 1.33333 !important; }

.u-h6 {
  font-size: 16px !important;
  font-size: 1rem !important;
  line-height: 1.5 !important; }

/* ==========================================================================
   #HIDE
   ========================================================================== */
/**
 * Hide only visually, but have it available for screen readers:
 * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 */
.u-hidden-visually {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
          clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important; }

/**
 * Hide visually and from screen readers.
 */
.u-hidden {
  display: none !important; }

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

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

.u-line-through {
  text-decoration: line-through; }

.u-container {
  max-width: 1124px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 20px;
  padding-left: 20px; }
  @media (min-width: 64em) {
    .u-container {
      padding-right: 52px;
      padding-left: 52px; } }

.u-container--small {
  max-width: 1024px; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2dlbmVyaWMvX2dlbmVyaWMuYm94LXNpemluZy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2dlbmVyaWMvX2dlbmVyaWMubm9ybWFsaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3MvZ2VuZXJpYy9fZ2VuZXJpYy5yZXNldC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2dlbmVyaWMvX2dlbmVyaWMuc2hhcmVkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3Mvc2V0dGluZ3MvX3NldHRpbmdzLmNvcmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy9lbGVtZW50cy9fZWxlbWVudHMucGFnZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2VsZW1lbnRzL19lbGVtZW50cy5oZWFkaW5ncy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL3Rvb2xzL190b29scy5mb250LXNpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy9lbGVtZW50cy9fZWxlbWVudHMuaW1hZ2VzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3MvZWxlbWVudHMvX2VsZW1lbnRzLnRhYmxlcy5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwic2V0dGluZ3MvX3NldHRpbmdzLmdsb2JhbC5zY3NzIiwic2V0dGluZ3MvX3NldHRpbmdzLmNvbG9ycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbXEvX21xLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW51aXQtZmxleGdyaWQvb2JqZWN0cy9fb2JqZWN0cy5ncmlkLnNjc3MiLCJjb21wb25lbnRzL19jLWJvZHkuc2NzcyIsImNvbXBvbmVudHMvX2MtYm94LnNjc3MiLCJjb21wb25lbnRzL19jLWJ1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9fYy1jbG9zZS1tZW51LnNjc3MiLCJjb21wb25lbnRzL19jLWNvbnRlbnQuc2NzcyIsImNvbXBvbmVudHMvX2MtY3RhLnNjc3MiLCJjb21wb25lbnRzL19jLWZiLWZvbGxvdy5zY3NzIiwiY29tcG9uZW50cy9fYy1mb290ZXItbG9nby5zY3NzIiwiY29tcG9uZW50cy9fYy1oZXJvLnNjc3MiLCJjb21wb25lbnRzL19jLWp1bWJvdHJvbi5zY3NzIiwiY29tcG9uZW50cy9fYy1tYXBzLnNjc3MiLCJjb21wb25lbnRzL19jLXBhZ2UtZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19jLXBhZ2UtaGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL19jLXBhZ2UtaW50cm8uc2NzcyIsImNvbXBvbmVudHMvX2MtcGFnZS1sb2dvLnNjc3MiLCJjb21wb25lbnRzL19jLXBhZ2UtdGl0bGUuc2NzcyIsImNvbXBvbmVudHMvX2MtcHJpbWFyeS1uYXYuc2NzcyIsImNvbXBvbmVudHMvX2MtcHJvamVjdC1pdGVtLnNjc3MiLCJjb21wb25lbnRzL19jLXByb2plY3QtdGVhc2VyLnNjc3MiLCJjb21wb25lbnRzL19jLXByb2plY3RzLWdyaWQuc2NzcyIsImNvbXBvbmVudHMvX2MtcHJvamVjdHMuc2NzcyIsImNvbXBvbmVudHMvX2Mtc2hvdy1tZW51LnNjc3MiLCJjb21wb25lbnRzL19jLXNsaWRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL3V0aWxpdGllcy9fdXRpbGl0aWVzLmNsZWFyZml4LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3MvdG9vbHMvX3Rvb2xzLmNsZWFyZml4LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3MvdXRpbGl0aWVzL191dGlsaXRpZXMud2lkdGhzLnNjc3MiLCJ1dGlsaXRpZXMvX3V0aWxpdGllcy53aWR0aHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy91dGlsaXRpZXMvX3V0aWxpdGllcy5oZWFkaW5ncy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL3V0aWxpdGllcy9fdXRpbGl0aWVzLmhpZGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy90b29scy9fdG9vbHMuaGlkZGVuLnNjc3MiLCJ1dGlsaXRpZXMvX3V0aWxpdGllcy5oZWxwZXJzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCOzsrRURHK0U7QUNDL0U7OztFREdFO0FDRUY7RUFDRSxzQkFBc0IsRUFBQTs7QUFHeEI7RUFLSSxtQkFBbUIsRUFBQTs7QUNsQnZCLDJFQUFBO0FBRUE7K0VGYytFO0FFWC9FOzs7O0VGZ0JFO0FFVkY7RUFDRSxpQkFBaUI7RUFBRSxNQUFBO0VBQ25CLDBCQUEwQjtFQUFFLE1BQUE7RUFDNUIsOEJBQThCO0VBQUUsTUFBQSxFQUFPOztBQUd6QzsrRUZjK0U7QUVYL0U7O0VGY0U7QUVWRjtFQUNFLFNBQVMsRUFBQTs7QUFHWDs7RUZZRTtBRVJGOzs7Ozs7RUFNRSxjQUFjLEVBQUE7O0FBR2hCOzs7RUZXRTtBRU5GO0VBQ0UsY0FBYztFQUNkLGdCQUFnQixFQUFBOztBQUdsQjsrRUZPK0U7QUVKL0U7OztFRlFFO0FFSEY7OztFQUVPLE1BQUE7RUFDTCxjQUFjLEVBQUE7O0FBR2hCOztFRk1FO0FFRkY7RUFDRSxnQkFBZ0IsRUFBQTs7QUFHbEI7OztFRktFO0FFQUY7RUFDRSx1QkFBdUI7RUFBRSxNQUFBO0VBQ3pCLFNBQVM7RUFBRSxNQUFBO0VBQ1gsaUJBQWlCO0VBQUUsTUFBQSxFQUFPOztBQUc1Qjs7O0VGTUU7QUVERjtFQUNFLGlDQUFpQztFQUFFLE1BQUE7RUFDbkMsY0FBYztFQUFFLE1BQUEsRUFBTzs7QUFHekI7K0VGSStFO0FFRC9FOzs7RUZLRTtBRUFGO0VBQ0UsNkJBQTZCO0VBQUUsTUFBQTtFQUMvQixxQ0FBcUM7RUFBRSxNQUFBLEVBQU87O0FBR2hEOzs7RUZLRTtBRUFGO0VBQ0UsbUJBQW1CO0VBQUUsTUFBQTtFQUNyQiwwQkFB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Q3BDMUI7OytFNUN1c0crRTtBNENuc0cvRTs7O0U1Q3VzR0U7QTRDbHNHRjtFQ0ZFLG9CQUFvQjtFQUNwQiw4QkFBOEI7RUFDOUIsd0NBQWdDO1VBQWhDLGdDQUFnQztFQUNoQyxzQkFBc0I7RUFDdEIsdUJBQXVCO0VBQ3ZCLDJCQUEyQjtFQUMzQixxQkFBcUI7RUFDckIsNkJBQTZCO0VBQzdCLDhCQUE4QjtFQUM5QixxQkFBcUIsRUFBQTs7QURGdkI7O0U1QzRzR0U7QTRDeHNHRjtFQUNFLHdCQUF3QixFQUFBOztBRW5CMUI7RUFDRSxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSw2QkFBNkIsRUFBQTs7QUFHL0I7RUFDRSxpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsa0JBQWtCLEVBQUE7RWhDZ09aO0lnQ3JPUjtNQVFJLG1CQUFtQjtNQUNuQixrQkFBa0IsRUFBQSxFQUVyQjs7QUFFRDtFQUNFLGlCQUFpQixFQUFBIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNCT1gtU0laSU5HXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94LXNpemluZzpcbiAqIGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZVxuICovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuLyohIG5vcm1hbGl6ZS5jc3MgdjcuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5tYWluIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LSBhbmQgRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyxcbm1lbnUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbi8qIFNjcmlwdGluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogSGlkZGVuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1JFU0VUXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBIHZlcnkgc2ltcGxlIHJlc2V0IHRoYXQgc2l0cyBvbiB0b3Agb2YgTm9ybWFsaXplLmNzcy5cbiAqL1xuYm9keSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG5ibG9ja3F1b3RlLCBwLCBwcmUsXG5kbCwgZGQsIG9sLCB1bCxcbmZpZ3VyZSxcbmhyLFxuZmllbGRzZXQsIGxlZ2VuZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIFJlbW92ZSB0cmFpbGluZyBtYXJnaW5zIGZyb20gbmVzdGVkIGxpc3RzLlxuICovXG5saSA+IG9sLFxubGkgPiB1bCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB0YWJsZSBzcGFjaW5nLlxuICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbi8qKlxuICogMS4gUmVzZXQgQ2hyb21lIGFuZCBGaXJlZm94IGJlaGF2aW91ciB3aGljaCBzZXRzIGEgYG1pbi13aWR0aDogbWluLWNvbnRlbnQ7YFxuICogICAgb24gZmllbGRzZXRzLlxuICovXG5maWVsZHNldCB7XG4gIG1pbi13aWR0aDogMDtcbiAgLyogWzFdICovXG4gIGJvcmRlcjogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1NIQVJFRFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogU2hhcmVkIGRlY2xhcmF0aW9ucyBmb3IgY2VydGFpbiBlbGVtZW50cy5cbiAqL1xuLyoqXG4gKiBBbHdheXMgZGVjbGFyZSBtYXJnaW5zIGluIHRoZSBzYW1lIGRpcmVjdGlvbjpcbiAqIGNzc3dpemFyZHJ5LmNvbS8yMDEyLzA2L3NpbmdsZS1kaXJlY3Rpb24tbWFyZ2luLWRlY2xhcmF0aW9uc1xuICovXG5hZGRyZXNzLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbmJsb2NrcXVvdGUsIHAsIHByZSxcbmRsLCBvbCwgdWwsXG5maWd1cmUsXG5ocixcbnRhYmxlLFxuZmllbGRzZXQge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG5cbi8qKlxuICogQ29uc2lzdGVudCBpbmRlbnRhdGlvbiBmb3IgbGlzdHMuXG4gKi9cbmRkLCBvbCwgdWwge1xuICBtYXJnaW4tbGVmdDogMjRweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1BBR0VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFNpbXBsZSBwYWdlLWxldmVsIHNldHVwLlxuICpcbiAqIDEuIFNldCB0aGUgZGVmYXVsdCBgZm9udC1zaXplYCBhbmQgYGxpbmUtaGVpZ2h0YCBmb3IgdGhlIGVudGlyZSBwcm9qZWN0LFxuICogICAgc291cmNlZCBmcm9tIG91ciBkZWZhdWx0IHZhcmlhYmxlcy4gVGhlIGBmb250LXNpemVgIGlzIGNhbGN1bGF0ZWQgdG8gZXhpc3RcbiAqICAgIGluIGVtcywgdGhlIGBsaW5lLWhlaWdodGAgaXMgY2FsY3VsYXRlZCB0byBleGlzdCB1bml0bGVzc2x5LlxuICogMi4gRm9yY2Ugc2Nyb2xsYmFycyB0byBhbHdheXMgYmUgdmlzaWJsZSB0byBwcmV2ZW50IGF3a3dhcmQg4oCYanVtcHPigJkgd2hlblxuICogICAgbmF2aWdhdGluZyBiZXR3ZWVuIHBhZ2VzIHRoYXQgZG8vZG8gbm90IGhhdmUgZW5vdWdoIGNvbnRlbnQgdG8gcHJvZHVjZVxuICogICAgc2Nyb2xsYmFycyBuYXR1cmFsbHkuXG4gKiAzLiBFbnN1cmUgdGhlIHBhZ2UgYWx3YXlzIGZpbGxzIGF0IGxlYXN0IHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydC5cbiAqL1xuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiBbMV0gKi9cbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgLyogWzFdICovXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgLyogWzJdICovXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIC8qIFszXSAqLyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjSEVBRElOR1NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFNpbXBsZSBkZWZhdWx0IHN0eWxlcyBmb3IgaGVhZGluZ3MgMSB0aHJvdWdoIDYuIEFueXRoaW5nIG1vcmUgb3BpbmlvbmF0ZWRcbiAqIHRoYW4gc2ltcGxlIGZvbnQtc2l6ZSBjaGFuZ2VzIHNob3VsZCBsaWtlbHkgYmUgYXBwbGllZCB2aWEgY2xhc3NlcyAoc2VlOlxuICogaHR0cDovL2Nzc3dpemFyZHJ5LmNvbS8yMDE2LzAyL21hbmFnaW5nLXR5cG9ncmFwaHktb24tbGFyZ2UtYXBwcy8pLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgZm9udC1zaXplOiAyLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4xNjY2NzsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yODU3MTsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1OyB9XG5cbmg0IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuaDUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzOyB9XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNJTUFHRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIEZsdWlkIGltYWdlcyBmb3IgcmVzcG9uc2l2ZSBwdXJwb3Nlcy5cbiAqIDIuIE9mZnNldCBgYWx0YCB0ZXh0IGZyb20gc3Vycm91bmRpbmcgY29weS5cbiAqIDMuIFNldHRpbmcgYHZlcnRpY2FsLWFsaWduYCByZW1vdmVzIHRoZSB3aGl0ZXNwYWNlIHRoYXQgYXBwZWFycyB1bmRlciBgaW1nYFxuICogICAgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBkcm9wcGVkIGludG8gYSBwYWdlIGFzLWlzLiBTYWZlciBhbHRlcm5hdGl2ZSB0b1xuICogICAgdXNpbmcgYGRpc3BsYXk6IGJsb2NrO2AuXG4gKi9cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogWzFdICovXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgLyogWzJdICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIFszXSAqLyB9XG5cbi8qKlxuICAgKiBJZiBhIGB3aWR0aGAgYW5kL29yIGBoZWlnaHRgIGF0dHJpYnV0ZSBoYXMgYmVlbiBleHBsaWNpdGx5IGRlZmluZWQsIGxldOKAmXNcbiAgICogbm90IG1ha2UgdGhlIGltYWdlIGZsdWlkLlxuICAgKi9cbmltZ1t3aWR0aF0sXG5pbWdbaGVpZ2h0XSB7XG4gIG1heC13aWR0aDogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1RBQkxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gRW5zdXJlIHRhYmxlcyBmaWxsIHVwIGFzIG11Y2ggc3BhY2UgYXMgcG9zc2libGUuXG4gKi9cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIC8qIFsxXSAqLyB9XG5cbmh0bWwge1xuICBvdmVyZmxvdy15OiB2aXNpYmxlOyB9XG5cbmh0bWwsXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJrb3JvbGV2XCIsIHNhbnMtc2VyaWY7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgY29sb3I6ICMyZTJlMmU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgYm9keS5jLXBhZ2UtaG9tZTo6YmVmb3JlLCBib2R5LmMtcGFnZS1jb250YWN0OjpiZWZvcmUsIGJvZHkuYy1wYWdlLWFib3V0OjpiZWZvcmUsIGJvZHkuYy1wYWdlLXByb2plY3RzOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwOyB9XG4gICAgYm9keS5jLXBhZ2UtaG9tZTo6YmVmb3JlLCBib2R5LmMtcGFnZS1hYm91dDo6YmVmb3JlLCBib2R5LmMtcGFnZS1wcm9qZWN0czo6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgaGVpZ2h0OiAxODdweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWRlZGU7IH1cbiAgICBib2R5LmMtcGFnZS1jb250YWN0OjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAyMzFlOyB9IH1cbiAgYm9keS5pcy1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbmxhYmVsLFxuaW5wdXQsXG5zZWxlY3QsXG5idXR0b24sXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBcImtvcm9sZXZcIiwgc2Fucy1zZXJpZjtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuYSB7XG4gIGNvbG9yOiAjMmUyZTJlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjR1JJRFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogVGhpcyBwbHVnaW4gcHJvdmlkZXMgYSBmbGV4Ym94IGdyaWQgZm9yIGludWl0Y3NzLiBTdXBwb3J0IGZvciBJRTkgY3VycmVudGx5XG4gKiBwcmV2ZW50cyBpbnVpdGNzcyBmcm9tIHVzaW5nIHRoZSBmbGV4Ym94IGxheW91dCBtb2RlLlxuICpcbiAqIENlbGxzIGFyZSBmdWxsLXdpZHRoIGFuZCB3aWxsIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyIGJ5IGRlZmF1bHQ6XG4gKlxuICogPGRpdiBjbGFzcz1cIm8tZ3JpZFwiPlxuICogICA8ZGl2IGNsYXNzPVwiby1ncmlkX19jZWxsXCI+XG4gKiAgIDwvZGl2PlxuICogICA8ZGl2IGNsYXNzPVwiby1ncmlkX19jZWxsXCI+XG4gKiAgIDwvZGl2PlxuICogPC9kaXY+XG4gKlxuICogQ2VsbHMgd2lsbCBpbiBtb3N0IGNhc2VzIGJlIGFjY29tcGFuaWVkIGJ5IHV0aWxpdHkgY2xhc3NlcyB0aGF0IGRpdmlkZVxuICogdGhlIGdyaWQgaW50byBmcmFjdGlvbnMuIFRoZXNlIGFyZSBwcm92aWRlZCBieSBpbnVpdGNzczpcbiAqXG4gKiA8ZGl2IGNsYXNzPVwiby1ncmlkXCI+XG4gKiAgIDxkaXYgY2xhc3M9XCJvLWdyaWRfX2NlbGwgdS0xLzJcIj5cbiAqICAgPC9kaXY+XG4gKiAgIDxkaXYgY2xhc3M9XCJvLWdyaWRfX2NlbGwgdS0xLzJcIj5cbiAqICAgPC9kaXY+XG4gKiA8L2Rpdj5cbiAqXG4gKiBTZXZlcmFsIG1vZGlmaWVyIGNsYXNzZXMgYXJlIHByb3ZpZGVkLiBGb3IgZXhhbXBsZSwgYG8tZ3JpZC0tYXV0b2Agd2lsbFxuICogZGl2aWRlIHRoZSBzcGFjZSBlcXVhbGx5IGJldHdlZW4gYWxsIGNvbnRhaW5pbmcgY2VsbHMgd2l0aG91dCB0aGUgbmVlZFxuICogZm9yIHdpZHRoIHV0aWxpdHkgY2xhc3Nlcy5cbiAqXG4gKiA8ZGl2IGNsYXNzPVwiby1ncmlkLS1hdXRvXCI+XG4gKiAgIDxkaXYgY2xhc3M9XCJvLWdyaWRfX2NlbGxcIj5cbiAqICAgPC9kaXY+XG4gKiAgIDxkaXYgY2xhc3M9XCJvLWdyaWRfX2NlbGxcIj5cbiAqICAgPC9kaXY+XG4gKiA8L2Rpdj5cbiAqL1xuLyogVGhlIGdyaWRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uby1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIDEuIENlbGxzIGFyZSBmdWxsLXdpZHRoIGFuZCBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlciBieSBkZWZhdWx0LlxuICovXG4uby1ncmlkX19jZWxsIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICAvKiBbMV0gKi8gfVxuXG4vKiBHdXR0ZXJzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBUaGUgbWFwICRpbnVpdC1mbGV4Z3JpZC1zcGFjaW5nLXNpemVzIGNvbnRhaW5zIGEgYG51bGxgIGtleSB3aGljaFxuICogICAgd2lsbCBiZSBvdXIgZGVmYXVsdCBndXR0ZXIgc2l6ZS5cbiAqIDIuIEFkZCBhIG5lZ2F0aXZlIG1hcmdpbiBvbiBvbmUgc2lkZSBvbmx5LiBUaGF0IHdheSB3ZSBhcmVuJ3QgcmVxdWlyZWQgdG8gdXNlXG4gKiAgICBhIHdyYXBwZXIgd2l0aCB0aGUgc2FtZSBhbW91bnQgb2Ygc3BhY2luZywgdGhvdWdoIGl0J3MgY29tbW9uIHRvIGRvIHNvLlxuICogMy4gTmV1dHJhbGl6ZSB0aGUgbGVmdCBtYXJnaW4gb24gYG8tZ3JpZGAuXG4gKi9cbi5vLWdyaWQge1xuICAvKiBbMV0gKi9cbiAgbWFyZ2luLWxlZnQ6IC0yNHB4O1xuICAvKiBbMl0gKi8gfVxuICAuby1ncmlkID4gLm8tZ3JpZF9fY2VsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIC8qIFszXSAqLyB9XG5cbi5vLWdyaWQtLXRpbnkge1xuICAvKiBbMV0gKi9cbiAgbWFyZ2luLWxlZnQ6IC02cHg7XG4gIC8qIFsyXSAqLyB9XG4gIC5vLWdyaWQtLXRpbnkgPiAuby1ncmlkX19jZWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAvKiBbM10gKi8gfVxuXG4uby1ncmlkLS1zbWFsbCB7XG4gIC8qIFsxXSAqL1xuICBtYXJnaW4tbGVmdDogLTEycHg7XG4gIC8qIFsyXSAqLyB9XG4gIC5vLWdyaWQtLXNtYWxsID4gLm8tZ3JpZF9fY2VsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIC8qIFszXSAqLyB9XG5cbi5vLWdyaWQtLWxhcmdlIHtcbiAgLyogWzFdICovXG4gIG1hcmdpbi1sZWZ0OiAtNDhweDtcbiAgLyogWzJdICovIH1cbiAgLm8tZ3JpZC0tbGFyZ2UgPiAuby1ncmlkX19jZWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgLyogWzNdICovIH1cblxuLm8tZ3JpZC0taHVnZSB7XG4gIC8qIFsxXSAqL1xuICBtYXJnaW4tbGVmdDogLTk2cHg7XG4gIC8qIFsyXSAqLyB9XG4gIC5vLWdyaWQtLWh1Z2UgPiAuby1ncmlkX19jZWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDk2cHg7XG4gICAgLyogWzNdICovIH1cblxuLm8tZ3JpZC0tZmx1c2gge1xuICAvKiBbMV0gKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIFsyXSAqLyB9XG4gIC5vLWdyaWQtLWZsdXNoID4gLm8tZ3JpZF9fY2VsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIC8qIFszXSAqLyB9XG5cbi8qIEF1dG9tYXRpY2FsbHkgc2l6ZSBjZWxscyBieSBkaXN0cmlidXRpbmcgdGhlbSBlcXVhbGx5XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm8tZ3JpZC0tYXV0byA+IC5vLWdyaWRfX2NlbGwge1xuICBmbGV4OiAxIDAgMDsgfVxuXG4vKiBIb3Jpem9udGFsIGFsaWdubWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5vLWdyaWQtLWxlZnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cblxuLm8tZ3JpZC0tY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLm8tZ3JpZC0tcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5vLWdyaWQtLWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLm8tZ3JpZC0tYXJvdW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLyogUHVsbCBiZWhhdmlvclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5vLWdyaWRfX2NlbGwtLXB1bGwtbGVmdCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4uby1ncmlkX19jZWxsLS1wdWxsLXJpZ2h0IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLyogVmVydGljYWwgYWxpZ25tZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm8tZ3JpZC0tdG9wIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLm8tZ3JpZC0tbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uby1ncmlkLS1ib3R0b20ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLm8tZ3JpZC0tYmFzZWxpbmUge1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cblxuLm8tZ3JpZC0tc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG5cbi5vLWdyaWRfX2NlbGwtLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLm8tZ3JpZF9fY2VsbC0tbWlkZGxlIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG5cbi5vLWdyaWRfX2NlbGwtLWJvdHRvbSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG5cbi5vLWdyaWRfX2NlbGwtLWJhc2VsaW5lIHtcbiAgYWxpZ24tc2VsZjogYmFzZWxpbmU7IH1cblxuLm8tZ3JpZF9fY2VsbC0tc3RyZXRjaCB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cblxuLyogQ29udGVudCBkaXN0cmlidXRpb25cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uby1ncmlkLS1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG5cbi5vLWdyaWQtLWNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLm8tZ3JpZC0tY29sdW1uLXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cblxuLmMtYm9keSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMjZweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jLWJvZHkge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OyB9IH1cbiAgLmMtYm9keSA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLmMtYm9keSA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uYy1ib3gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBwYWRkaW5nOiA1MHB4IDI1cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYy1ib3gge1xuICAgICAgcGFkZGluZzogODBweCA1MHB4OyB9IH1cbiAgLmMtYm94IGgyIHtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gICAgZm9udC1zaXplOiAxLjU2MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jLWJveCBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7IH0gfVxuXG4uYy1ib3gtLW1pZGRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jLWJveC0tZnVsbCB7XG4gICAgbWluLWhlaWdodDogMTAwJTsgfSB9XG5cbi5jLWJ1dHRvbl9fZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jLWJ1dHRvbl9fZm9vdGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7IH0gfVxuXG4uYy1idXR0b24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmMtYnV0dG9uIHtcbiAgICAgIHBhZGRpbmc6IDI0cHg7IH0gfVxuXG4uYy1idXR0b24tLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAyMzFlOyB9XG5cbi5jLWJ1dHRvbi0tZnVsbCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jLWNsb3NlLW1lbnUge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIC5pcy1vcGVuIC5jLWNsb3NlLW1lbnUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6ICNlMDIzMWU7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLmlzLW9wZW4gLmMtY2xvc2UtbWVudTpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAwOyB9XG5cbi5jLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmMtY29udGVudF9fbGFiZWwge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICNlMDIzMWU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiA0cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuYy1jb250ZW50X19sYWJlbCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jLWNvbnRlbnRfX2xhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgtMTAwJSkgdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuLmMtY3RhIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvd29vZC1wYXR0ZXJuLmpwZ1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlci9jb3ZlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLXRvcDogNTBweDtcbiAgcGFkZGluZzogNTBweCAyNXB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jLWN0YSB7XG4gICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgICBmb250LXNpemU6IDEuNTYyNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYy1jdGEge1xuICAgICAgZm9udC1zaXplOiAzNXB4O1xuICAgICAgZm9udC1zaXplOiAyLjE4NzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogNDVweDtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDEwMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4OyB9IH1cbiAgLmMtY3RhIGEge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogNTAwOyB9XG5cbi5jLWZiLWZvbGxvdyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMTJweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDEwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMjMxZTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZykgdHJhbnNsYXRlWSgxMDAlKTtcbiAgcGFkZGluZzogMjBweCAzMHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmMtZmItZm9sbG93IHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1OXB4OyB9IH1cblxuLmMtZmItZm9sbG93X19pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDUwJTtcbiAgcmlnaHQ6IDIwcHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVYKDUwJSk7IH1cblxuLmMtZmItZm9sbG93X19sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYy1mYi1mb2xsb3dfX2xhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsgfSB9XG5cbi5jLWZvb3Rlci1sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jLWZvb3Rlci1sb2dvIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG5cbi5jLWZvb3Rlci1sb2dvX19pbWFnZSB7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbiAgbWluLXdpZHRoOiA0OHB4OyB9XG5cbi5jLWZvb3Rlci1sb2dvX190ZXh0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmMtaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYy1oZXJvIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIyMHB4OyB9IH1cblxuLmMtaGVyb19fdGV4dCB7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuYy1oZXJvX190ZXh0IHtcbiAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDU1cHg7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jLWhlcm9fX3RleHQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYy1oZXJvX190ZXh0IHtcbiAgICAgIGZvbnQtc2l6ZTogNTVweDtcbiAgICAgIGZvbnQtc2l6ZTogMy40Mzc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDcwcHg7XG4gICAgICBsZWZ0OiA1MHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9IH1cbiAgLmMtaGVyb19fdGV4dCBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmMtaGVyb19fdGV4dCBzcGFuIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jLWhlcm9fX3RleHQgc3BhbiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjVweDsgfSB9XG5cbi5jLWhlcm9fX3NsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jLWhlcm9fX3NsaWRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogMjM0cHg7IH0gfVxuXG4uYy1oZXJvX19zY3JvbGwge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmMtaGVyb19fc2Nyb2xsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDsgfVxuICAgICAgLmMtaGVyb19fc2Nyb2xsIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTBweCwgMTAwJSk7IH0gfVxuXG4uYy1oZXJvX19zY3JvbGwtbGFiZWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiA0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZVkoLTEwcHgpOyB9XG5cbi5jLWhlcm9fX3Njcm9sbC1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uYy1qdW1ib3Ryb24ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMjBweDtcbiAgYmFja2dyb3VuZDogbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIgLyBjb3ZlcjtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuYy1qdW1ib3Ryb24ge1xuICAgICAgaGVpZ2h0OiA0MjBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmMtanVtYm90cm9uIHtcbiAgICAgIGhlaWdodDogNTIwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMzBweDsgfSB9XG5cbi5jLW1hcHMge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNTBweDtcbiAgYmFja2dyb3VuZDogIzJlMmUyZTsgfVxuXG4uYy1wYWdlLWZvb3RlciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nLXRvcDogNTBweDtcbiAgcGFkZGluZy1ib3R0b206IDUwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuYy1wYWdlLWZvb3RlciB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jLXBhZ2UtZm9vdGVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDsgfSB9XG4gIC5jLXBhZ2UtZm9vdGVyIGEge1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbi5jLXBhZ2UtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXgtd2lkdGg6IDEwNjRweDtcbiAgbWFyZ2luOiAzMHB4IGF1dG8gMjVweCBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYy1wYWdlLWhlYWRlciB7XG4gICAgICBtYXJnaW4tdG9wOiA4MHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsgfSB9XG5cbi5jLXBhZ2UtaW50cm8ge1xuICBtYXgtd2lkdGg6IDc0MHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYy1wYWdlLWludHJvIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEzMHB4OyB9IH1cblxuLmMtcGFnZS1sb2dvX19saW5rIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jLXBhZ2UtbG9nb19faW1hZ2Uge1xuICAgIHdpZHRoOiAyNTdweDtcbiAgICBoZWlnaHQ6IDU3cHg7IH0gfVxuXG4uYy1wYWdlLXRpdGxlIHtcbiAgZm9udC1zaXplOiAzNXB4O1xuICBmb250LXNpemU6IDIuMTg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuYy1wYWdlLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogNDVweDtcbiAgICAgIGZvbnQtc2l6ZTogMi44MTI1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmMtcGFnZS10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDY1cHg7XG4gICAgICBmb250LXNpemU6IDQuMDYyNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjEwNzY5O1xuICAgICAgbWFyZ2luLWJvdHRvbTogOTBweDsgfSB9XG4gIC5jLXBhZ2UtdGl0bGU6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTQwcHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMDIzMWU7IH1cblxuLmMtcHJpbWFyeS1uYXZfX21lbnUge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmlzLW9wZW4gLmMtcHJpbWFyeS1uYXZfX21lbnUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgei1pbmRleDogMTAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgcGFkZGluZzogNTBweCAzMHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYy1wcmltYXJ5LW5hdl9fbWVudSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5jLXByaW1hcnktbmF2X19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmMtcHJpbWFyeS1uYXZfX2xpc3Qge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG5cbi5jLXByaW1hcnktbmF2X19pdGVtIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmMtcHJpbWFyeS1uYXZfX2l0ZW0ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuYy1wcmltYXJ5LW5hdl9faXRlbSArIC5jLXByaW1hcnktbmF2X19pdGVtIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jLXByaW1hcnktbmF2X19pdGVtICsgLmMtcHJpbWFyeS1uYXZfX2l0ZW0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDcwcHg7IH0gfVxuXG4uYy1wcmltYXJ5LW5hdl9fbGluayB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jLXByaW1hcnktbmF2X19saW5rIHtcbiAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjMxMjU7XG4gICAgICBjb2xvcjogI2ZmZjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmMtcHJpbWFyeS1uYXZfX2xpbmsge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTsgfSB9XG4gIC5jLXByaW1hcnktbmF2X19saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogI2UwMjMxZTsgfVxuICAuYy1wcmltYXJ5LW5hdl9fbGluay5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiAjZTAyMzFlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLmMtcHJvamVjdC1pdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyIC8gY292ZXI7XG4gIGhlaWdodDogMTgwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jLXByb2plY3QtaXRlbSB7XG4gICAgICBoZWlnaHQ6IDIzMHB4OyB9IH1cbiAgLmMtcHJvamVjdC1pdGVtOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsgfVxuICAuYy1wcm9qZWN0LWl0ZW06aG92ZXIgLmMtcHJvamVjdC1pdGVtX19sYWJlbCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmMtcHJvamVjdC1pdGVtLS1sYXJnZSB7XG4gICAgaGVpZ2h0OiA0NjBweDsgfSB9XG5cbi5jLXByb2plY3QtaXRlbV9fbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBwYWRkaW5nOiAxZW07XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNlMDIzMWU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgMC42KSA0MHB4LCB0cmFuc3BhcmVudCAyMDBweCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IDIwMG1zOyB9XG5cbi5jLXByb2plY3QtdGVhc2VyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYy1wcm9qZWN0LXRlYXNlcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOyB9XG4gIC5jLXByb2plY3QtdGVhc2VyOmhvdmVyOjphZnRlciB7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4uYy1wcm9qZWN0cy1ncmlkIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDEwcHgpO1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICBtYXJnaW4tbGVmdDogLTVweDsgfVxuXG4uYy1wcm9qZWN0cy1ncmlkX19jZWxsIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi5jLXByb2plY3RzIHtcbiAgbWFyZ2luLXRvcDogODBweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jLXByb2plY3RzIHtcbiAgICAgIG1hcmdpbi10b3A6IDE2MHB4OyB9IH1cbiAgLmMtcHJvamVjdHMgaDIge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jLXByb2plY3RzIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQ1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7IH0gfVxuXG4uYy1wcm9qZWN0c19fZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4uYy1zaG93LW1lbnUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmMtc2hvdy1tZW51OmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmMtc2hvdy1tZW51IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uYy1zbGlkZXIge1xuICBoZWlnaHQ6IDM2OHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jLXNsaWRlciB7XG4gICAgICBoZWlnaHQ6IDQ2OHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYy1zbGlkZXIge1xuICAgICAgaGVpZ2h0OiA1NjhweDsgfSB9XG4gIC5jLXNsaWRlciAuZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGhlaWdodDogOXB4O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDM0cHgpOyB9XG4gICAgLmMtc2xpZGVyIC5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuYy1zbGlkZXIgLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90IHtcbiAgICAgICAgICB3aWR0aDogNTRweDsgfSB9XG4gICAgICAuYy1zbGlkZXIgLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90ICsgLmRvdCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4OyB9XG4gICAgICAuYy1zbGlkZXIgLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90LmlzLXNlbGVjdGVkIHtcbiAgICAgICAgaGVpZ2h0OiA5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNjYWNhY2E7IH1cblxuLmMtc2xpZGVyX19pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0NMRUFSRklYXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBdHRhY2ggb3VyIGNsZWFyZml4IG1peGluIHRvIGEgdXRpbGl0eSBjbGFzcy5cbiAqL1xuLnUtY2xlYXJmaXg6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGNsZWFyOiBib3RoICFpbXBvcnRhbnQ7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNXSURUSFNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIGludWl0Y3NzIGdlbmVyYXRlcyBhIHNlcmllcyBvZiB1dGlsaXR5IGNsYXNzZXMgdGhhdCBnaXZlIGEgZmx1aWQgd2lkdGggdG9cbiAqIHdoaWNoZXZlciBlbGVtZW50IHRoZXnigJlyZSBhcHBsaWVkLCBlLmcuOlxuICpcbiAqICAgPGltZyBzcmM9XCJcIiBhbHQ9XCJcIiBjbGFzcz1cInUtMS8yXCIgLz5cbiAqXG4gKiBUaGVzZSBjbGFzc2VzIGFyZSBtb3N0IGNvbW1vbmx5IHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBvdXIgbGF5b3V0IHN5c3RlbSxcbiAqIGUuZy46XG4gKlxuICogICA8ZGl2IGNsYXNzPVwiby1sYXlvdXRfX2l0ZW0gIHUtMS8yXCI+XG4gKlxuICogQnkgZGVmYXVsdCwgaW51aXRjc3Mgd2lsbCBhbHNvIGdlbmVyYXRlIHJlc3BvbnNpdmUgdmFyaWFudHMgb2YgZWFjaCBvZiB0aGVzZVxuICogY2xhc3NlcyBieSB1c2luZyB5b3VyIFNhc3MgTVEgY29uZmlndXJhdGlvbiwgZS5nLjpcbiAqXG4gKiAgIDxkaXYgY2xhc3M9XCJvLWxheW91dF9faXRlbSAgdS0xLzEgIHUtMS8yQHRhYmxldCAgdS0xLzNAZGVza3RvcFwiPlxuICpcbiAqIE9wdGlvbmFsbHksIGludWl0Y3NzIGNhbiBnZW5lcmF0ZSBvZmZzZXQgY2xhc3NlcyB3aGljaCBjYW4gcHVzaCBhbmQgcHVsbFxuICogZWxlbWVudHMgbGVmdCBhbmQgcmlnaHQgYnkgYSBzcGVjaWZpZWQgYW1vdW50LCBlLmcuOlxuICpcbiAqICAgPGRpdiBjbGFzcz1cIm8tbGF5b3V0X19pdGVtICB1LTIvMyAgdS1wdWxsLTEvM1wiPlxuICpcbiAqIFRoaXMgaXMgdXNlZnVsIGZvciBtYWtpbmcgdmVyeSBncmFudWxhciBjaGFuZ2VzIHRvIHRoZSByZW5kZXJlZCBvcmRlciBvZlxuICogaXRlbXMgaW4gYSBsYXlvdXQuXG4gKlxuICogTi5CLiBUaGlzIG9wdGlvbiBpcyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQuXG4gKi9cbi8qKlxuICogQSBzZXJpZXMgb2Ygd2lkdGggaGVscGVyIGNsYXNzZXMgdGhhdCB5b3UgY2FuIHVzZSB0byBzaXplIHRoaW5ncyBsaWtlIGdyaWRcbiAqIHN5c3RlbXMuIENsYXNzZXMgdGFrZSBhIGZyYWN0aW9uLWxpa2UgZm9ybWF0IChlLmcuIGAudS0yLzNgKS4gVXNlIHRoZXNlIGluXG4gKiB5b3VyIG1hcmt1cDpcbiAqXG4gKiA8ZGl2IGNsYXNzPVwidS03LzEyXCI+XG4gKlxuICogVGhlIGZvbGxvd2luZyB3aWxsIGdlbmVyYXRlIHdpZHRocyBoZWxwZXIgY2xhc3NlcyBiYXNlZCBvbiB0aGUgZnJhY3Rpb25zXG4gKiBkZWZpbmVkIGluIHRoZSBgJGludWl0LWZyYWN0aW9uc2AgbGlzdC5cbiAqL1xuLnUtMVxcLzEge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtMVxcLzEge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovXG4gIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTFcXC8xIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMVxcLzIge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0xXFwvMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiBbMV0gKi9cbiAgbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0xXFwvMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMlxcLzIge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtMlxcLzIge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovXG4gIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTJcXC8yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMVxcLzMge1xuICB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0xXFwvMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiBbMV0gKi9cbiAgbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0xXFwvMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMlxcLzMge1xuICB3aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0yXFwvMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiBbMV0gKi9cbiAgbGVmdDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0yXFwvMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNjYuNjY2NjclICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtM1xcLzMge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtM1xcLzMge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovXG4gIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTNcXC8zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMVxcLzQge1xuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0xXFwvNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiBbMV0gKi9cbiAgbGVmdDogMjUlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0xXFwvNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogMjUlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMlxcLzQge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0yXFwvNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiBbMV0gKi9cbiAgbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0yXFwvNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtM1xcLzQge1xuICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0zXFwvNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiBbMV0gKi9cbiAgbGVmdDogNzUlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0zXFwvNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNzUlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtNFxcLzQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtNFxcLzQge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovXG4gIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTRcXC80IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMVxcLzUge1xuICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0xXFwvNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiBbMV0gKi9cbiAgbGVmdDogMjAlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0xXFwvNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogMjAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMlxcLzUge1xuICB3aWR0aDogNDAlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0yXFwvNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiBbMV0gKi9cbiAgbGVmdDogNDAlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0yXFwvNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtM1xcLzUge1xuICB3aWR0aDogNjAlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0zXFwvNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiBbMV0gKi9cbiAgbGVmdDogNjAlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0zXFwvNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNjAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtNFxcLzUge1xuICB3aWR0aDogODAlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC00XFwvNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiBbMV0gKi9cbiAgbGVmdDogODAlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC00XFwvNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogODAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtNVxcLzUge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtNVxcLzUge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovXG4gIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTVcXC81IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLyoqXG4gKiBJZiB3ZeKAmXJlIHVzaW5nIFNhc3MtTVEsIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgZ3JpZCBzeXN0ZW0ocykgZm9yIGVhY2ggb2Ygb3VyXG4gKiBkZWZpbmVkIGJyZWFrcG9pbnRzLCBhbmQgZ2l2ZSB0aGVtIGEgUmVzcG9uc2l2ZSBTdWZmaXgsIGUuZy46XG4gKlxuICogPGRpdiBjbGFzcz1cInUtMy8xMkBtb2JpbGVcIj5cbiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLnUtMVxcLzFcXEBtb2JpbGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTFcXC8xXFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTFcXC8xXFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0xXFwvMlxcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0xXFwvMlxcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTFcXC8yXFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTJcXC8yXFxAbW9iaWxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvMlxcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0yXFwvMlxcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMVxcLzNcXEBtb2JpbGUge1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMVxcLzNcXEBtb2JpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xXFwvM1xcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0yXFwvM1xcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvM1xcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTJcXC8zXFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNjYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTNcXC8zXFxAbW9iaWxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0zXFwvM1xcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0zXFwvM1xcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMVxcLzRcXEBtb2JpbGUge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMVxcLzRcXEBtb2JpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xXFwvNFxcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDI1JSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0yXFwvNFxcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvNFxcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTJcXC80XFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTNcXC80XFxAbW9iaWxlIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTNcXC80XFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtM1xcLzRcXEBtb2JpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA3NSUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtNFxcLzRcXEBtb2JpbGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTRcXC80XFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTRcXC80XFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0xXFwvNVxcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0xXFwvNVxcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAyMCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTFcXC81XFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMjAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTJcXC81XFxAbW9iaWxlIHtcbiAgICB3aWR0aDogNDAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTJcXC81XFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDQwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMlxcLzVcXEBtb2JpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA0MCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtM1xcLzVcXEBtb2JpbGUge1xuICAgIHdpZHRoOiA2MCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtM1xcLzVcXEBtb2JpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNjAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0zXFwvNVxcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDYwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS00XFwvNVxcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDgwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC00XFwvNVxcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA4MCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTRcXC81XFxAbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogODAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTVcXC81XFxAbW9iaWxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC01XFwvNVxcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC01XFwvNVxcQG1vYmlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtcHVzaC1ub25lXFxAbW9iaWxlIHtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC1ub25lXFxAbW9iaWxlIHtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnUtMVxcLzFcXEB0YWJsZXQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTFcXC8xXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTFcXC8xXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0xXFwvMlxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0xXFwvMlxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTFcXC8yXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTJcXC8yXFxAdGFibGV0IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvMlxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0yXFwvMlxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMVxcLzNcXEB0YWJsZXQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMVxcLzNcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xXFwvM1xcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0yXFwvM1xcQHRhYmxldCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvM1xcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTJcXC8zXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNjYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTNcXC8zXFxAdGFibGV0IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0zXFwvM1xcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0zXFwvM1xcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMVxcLzRcXEB0YWJsZXQge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMVxcLzRcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xXFwvNFxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDI1JSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0yXFwvNFxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvNFxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTJcXC80XFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTNcXC80XFxAdGFibGV0IHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTNcXC80XFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtM1xcLzRcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA3NSUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtNFxcLzRcXEB0YWJsZXQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTRcXC80XFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTRcXC80XFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0xXFwvNVxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0xXFwvNVxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAyMCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTFcXC81XFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMjAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTJcXC81XFxAdGFibGV0IHtcbiAgICB3aWR0aDogNDAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTJcXC81XFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDQwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMlxcLzVcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA0MCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtM1xcLzVcXEB0YWJsZXQge1xuICAgIHdpZHRoOiA2MCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtM1xcLzVcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNjAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0zXFwvNVxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDYwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS00XFwvNVxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDgwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC00XFwvNVxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA4MCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTRcXC81XFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogODAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTVcXC81XFxAdGFibGV0IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC01XFwvNVxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC01XFwvNVxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtcHVzaC1ub25lXFxAdGFibGV0IHtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC1ub25lXFxAdGFibGV0IHtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnUtMVxcLzFcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0xXFwvMVxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMVxcLzFcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0xXFwvMlxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMVxcLzJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMVxcLzJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTJcXC8yXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMlxcLzJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTJcXC8yXFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMVxcLzNcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTFcXC8zXFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTFcXC8zXFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0yXFwvM1xcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMlxcLzNcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMlxcLzNcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNjYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTNcXC8zXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtM1xcLzNcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTNcXC8zXFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMVxcLzRcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTFcXC80XFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAyNSUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTFcXC80XFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDI1JSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0yXFwvNFxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMlxcLzRcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMlxcLzRcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTNcXC80XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0zXFwvNFxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0zXFwvNFxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA3NSUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtNFxcLzRcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC00XFwvNFxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtNFxcLzRcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0xXFwvNVxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiAyMCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMVxcLzVcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDIwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMVxcLzVcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMjAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTJcXC81XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDQwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvNVxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0yXFwvNVxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA0MCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtM1xcLzVcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogNjAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTNcXC81XFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA2MCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTNcXC81XFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDYwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS00XFwvNVxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA4MCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtNFxcLzVcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDgwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtNFxcLzVcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogODAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTVcXC81XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtNVxcLzVcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTVcXC81XFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtcHVzaC1ub25lXFxAZGVza3RvcCB7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtbm9uZVxcQGRlc2t0b3Age1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAudS0xXFwvMVxcQHdpZGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTFcXC8xXFxAd2lkZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xXFwvMVxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTFcXC8yXFxAd2lkZSB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0xXFwvMlxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xXFwvMlxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA1MCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMlxcLzJcXEB3aWRlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvMlxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMlxcLzJcXEB3aWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0xXFwvM1xcQHdpZGUge1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMVxcLzNcXEB3aWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMVxcLzNcXEB3aWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTJcXC8zXFxAd2lkZSB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvM1xcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0yXFwvM1xcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA2Ni42NjY2NyUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtM1xcLzNcXEB3aWRlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0zXFwvM1xcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtM1xcLzNcXEB3aWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0xXFwvNFxcQHdpZGUge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMVxcLzRcXEB3aWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMVxcLzRcXEB3aWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMjUlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTJcXC80XFxAd2lkZSB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvNFxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0yXFwvNFxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA1MCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtM1xcLzRcXEB3aWRlIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTNcXC80XFxAd2lkZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA3NSUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTNcXC80XFxAd2lkZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDc1JSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS00XFwvNFxcQHdpZGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTRcXC80XFxAd2lkZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC00XFwvNFxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTFcXC81XFxAd2lkZSB7XG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0xXFwvNVxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMjAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xXFwvNVxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAyMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMlxcLzVcXEB3aWRlIHtcbiAgICB3aWR0aDogNDAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTJcXC81XFxAd2lkZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA0MCUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTJcXC81XFxAd2lkZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDQwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0zXFwvNVxcQHdpZGUge1xuICAgIHdpZHRoOiA2MCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtM1xcLzVcXEB3aWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDYwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtM1xcLzVcXEB3aWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNjAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTRcXC81XFxAd2lkZSB7XG4gICAgd2lkdGg6IDgwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC00XFwvNVxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogODAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC00XFwvNVxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA4MCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtNVxcLzVcXEB3aWRlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC01XFwvNVxcQHdpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtNVxcLzVcXEB3aWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS1wdXNoLW5vbmVcXEB3aWRlIHtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC1ub25lXFxAd2lkZSB7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjV0lEVEhTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnUtMVxcLzEyIHtcbiAgd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0xXFwvMTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovXG4gIGxlZnQ6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0xXFwvMTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IDguMzMzMzMlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMlxcLzEyIHtcbiAgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtMlxcLzEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIC8qIFsxXSAqL1xuICBsZWZ0OiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTJcXC8xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogMTYuNjY2NjclICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtM1xcLzEyIHtcbiAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtM1xcLzEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIC8qIFsxXSAqL1xuICBsZWZ0OiAyNSUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTNcXC8xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogMjUlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtNFxcLzEyIHtcbiAgd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtNFxcLzEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIC8qIFsxXSAqL1xuICBsZWZ0OiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTRcXC8xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtNVxcLzEyIHtcbiAgd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtNVxcLzEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIC8qIFsxXSAqL1xuICBsZWZ0OiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTVcXC8xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNDEuNjY2NjclICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtNlxcLzEyIHtcbiAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtNlxcLzEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIC8qIFsxXSAqL1xuICBsZWZ0OiA1MCUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTZcXC8xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtN1xcLzEyIHtcbiAgd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtN1xcLzEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIC8qIFsxXSAqL1xuICBsZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTdcXC8xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNTguMzMzMzMlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtOFxcLzEyIHtcbiAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtOFxcLzEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIC8qIFsxXSAqL1xuICBsZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLThcXC8xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNjYuNjY2NjclICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtOVxcLzEyIHtcbiAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbi51LXB1c2gtOVxcLzEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIC8qIFsxXSAqL1xuICBsZWZ0OiA3NSUgIWltcG9ydGFudDsgfVxuXG4udS1wdWxsLTlcXC8xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogNzUlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMTBcXC8xMiB7XG4gIHdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuXG4vKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4udS1wdXNoLTEwXFwvMTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovXG4gIGxlZnQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi51LXB1bGwtMTBcXC8xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogODMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMTFcXC8xMiB7XG4gIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4vKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4udS1wdXNoLTExXFwvMTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovXG4gIGxlZnQ6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi51LXB1bGwtMTFcXC8xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICByaWdodDogOTEuNjY2NjclICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuLnUtMTJcXC8xMiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuLnUtcHVzaC0xMlxcLzEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIC8qIFsxXSAqL1xuICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLnUtcHVsbC0xMlxcLzEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgLyogWzFdICovIH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnUtMVxcLzEyXFxAdGFibGV0IHtcbiAgICB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMVxcLzEyXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xXFwvMTJcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0yXFwvMTJcXEB0YWJsZXQge1xuICAgIHdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMlxcLzEyXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMlxcLzEyXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMTYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTNcXC8xMlxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0zXFwvMTJcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0zXFwvMTJcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAyNSUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtNFxcLzEyXFxAdGFibGV0IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTRcXC8xMlxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTRcXC8xMlxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS01XFwvMTJcXEB0YWJsZXQge1xuICAgIHdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtNVxcLzEyXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtNVxcLzEyXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNDEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTZcXC8xMlxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC02XFwvMTJcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC02XFwvMTJcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA1MCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtN1xcLzEyXFxAdGFibGV0IHtcbiAgICB3aWR0aDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTdcXC8xMlxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTdcXC8xMlxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDU4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS04XFwvMTJcXEB0YWJsZXQge1xuICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtOFxcLzEyXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtOFxcLzEyXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNjYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTlcXC8xMlxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC05XFwvMTJcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC05XFwvMTJcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA3NSUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMTBcXC8xMlxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0xMFxcLzEyXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMTBcXC8xMlxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0xMVxcLzEyXFxAdGFibGV0IHtcbiAgICB3aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTExXFwvMTJcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xMVxcLzEyXFxAdGFibGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogOTEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTEyXFwvMTJcXEB0YWJsZXQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTEyXFwvMTJcXEB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMTJcXC8xMlxcQHRhYmxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtcHVzaC1ub25lXFxAdGFibGV0IHtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC1ub25lXFxAdGFibGV0IHtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51LTFcXC8xMlxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0xXFwvMTJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xXFwvMTJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogOC4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMlxcLzEyXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC0yXFwvMTJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMlxcLzEyXFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDE2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0zXFwvMTJcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTNcXC8xMlxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0zXFwvMTJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogMjUlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTRcXC8xMlxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtNFxcLzEyXFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTRcXC8xMlxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAzMy4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtNVxcLzEyXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC01XFwvMTJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtNVxcLzEyXFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDQxLjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS02XFwvMTJcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTZcXC8xMlxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC02XFwvMTJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTdcXC8xMlxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtN1xcLzEyXFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBsZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS1wdWxsLTdcXC8xMlxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA1OC4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtOFxcLzEyXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC8qKlxuICAgICAgICAgKiAxLiBSZXNldCBhbnkgbGVmdG92ZXIgb3IgY29uZmxpY3RpbmcgYGxlZnRgL2ByaWdodGAgdmFsdWVzLlxuICAgICAgICAgKi9cbiAgLnUtcHVzaC04XFwvMTJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtOFxcLzEyXFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDY2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS05XFwvMTJcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTlcXC8xMlxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC05XFwvMTJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogNzUlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LTEwXFwvMTJcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLyoqXG4gICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAudS1wdXNoLTEwXFwvMTJcXEBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqL1xuICAgIGxlZnQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMTBcXC8xMlxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiA4My4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovIH1cbiAgLnUtMTFcXC8xMlxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMTFcXC8xMlxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLnUtcHVsbC0xMVxcLzEyXFxAZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDkxLjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi8gfVxuICAudS0xMlxcLzEyXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG4gIC51LXB1c2gtMTJcXC8xMlxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgLyogWzFdICovXG4gICAgbGVmdDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LXB1bGwtMTJcXC8xMlxcQGRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIC8qIFsxXSAqLyB9XG4gIC51LXB1c2gtbm9uZVxcQGRlc2t0b3Age1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAudS1wdWxsLW5vbmVcXEBkZXNrdG9wIHtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNIRUFESU5HU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVkZWZpbmUgYWxsIG9mIG91ciBiYXNpYyBoZWFkaW5nIHN0eWxlcyBhZ2FpbnN0IHV0aWxpdHkgY2xhc3NlcyBzbyBhcyB0b1xuICogYWxsb3cgZm9yIGRvdWJsZSBzdHJhbmRlZCBoZWFkaW5nIGhpZXJhcmNoeSwgZS5nLiB3ZSBzZW1hbnRpY2FsbHkgbmVlZCBhbiBIMixcbiAqIGJ1dCB3ZSB3YW50IGl0IHRvIGJlIHNpemVkIGxpa2UgYW4gSDE6XG4gKlxuICogICA8aDIgY2xhc3M9XCJ1LWgxXCI+PC9oMj5cbiAqXG4gKi9cbi51LWgxIHtcbiAgZm9udC1zaXplOiAzNnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMi4yNXJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS4xNjY2NyAhaW1wb3J0YW50OyB9XG5cbi51LWgyIHtcbiAgZm9udC1zaXplOiAyOHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS43NXJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS4yODU3MSAhaW1wb3J0YW50OyB9XG5cbi51LWgzIHtcbiAgZm9udC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1ICFpbXBvcnRhbnQ7IH1cblxuLnUtaDQge1xuICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjUgIWltcG9ydGFudDsgfVxuXG4udS1oNSB7XG4gIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuMTI1cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzICFpbXBvcnRhbnQ7IH1cblxuLnUtaDYge1xuICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjUgIWltcG9ydGFudDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0hJREVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqL1xuLnUtaGlkZGVuLXZpc3VhbGx5IHtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICogSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycy5cbiAqL1xuLnUtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi51LXRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi51LXRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udS1saW5lLXRocm91Z2gge1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxuXG4udS1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDExMjRweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnUtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDUycHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDUycHg7IH0gfVxuXG4udS1jb250YWluZXItLXNtYWxsIHtcbiAgbWF4LXdpZHRoOiAxMDI0cHg7IH1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjQk9YLVNJWklOR1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94LXNpemluZzpcbiAqIGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZVxuICovXG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4qIHtcblxuICAmLFxuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2Ny4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5tYWluIHsgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LSBhbmQgRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscywgLyogMSAqL1xubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIFNjcmlwdGluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBIaWRkZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjUkVTRVRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQSB2ZXJ5IHNpbXBsZSByZXNldCB0aGF0IHNpdHMgb24gdG9wIG9mIE5vcm1hbGl6ZS5jc3MuXG4gKi9cblxuYm9keSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG5ibG9ja3F1b3RlLCBwLCBwcmUsXG5kbCwgZGQsIG9sLCB1bCxcbmZpZ3VyZSxcbmhyLFxuZmllbGRzZXQsIGxlZ2VuZCB7XG4gIG1hcmdpbjogIDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cblxuXG4vKipcbiAqIFJlbW92ZSB0cmFpbGluZyBtYXJnaW5zIGZyb20gbmVzdGVkIGxpc3RzLlxuICovXG5cbmxpID4ge1xuXG4gIG9sLFxuICB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG59XG5cblxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHRhYmxlIHNwYWNpbmcuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxuXG5cbi8qKlxuICogMS4gUmVzZXQgQ2hyb21lIGFuZCBGaXJlZm94IGJlaGF2aW91ciB3aGljaCBzZXRzIGEgYG1pbi13aWR0aDogbWluLWNvbnRlbnQ7YFxuICogICAgb24gZmllbGRzZXRzLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgbWluLXdpZHRoOiAwOyAvKiBbMV0gKi9cbiAgYm9yZGVyOiAwO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNTSEFSRURcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogU2hhcmVkIGRlY2xhcmF0aW9ucyBmb3IgY2VydGFpbiBlbGVtZW50cy5cbiAqL1xuXG4vKipcbiAqIEFsd2F5cyBkZWNsYXJlIG1hcmdpbnMgaW4gdGhlIHNhbWUgZGlyZWN0aW9uOlxuICogY3Nzd2l6YXJkcnkuY29tLzIwMTIvMDYvc2luZ2xlLWRpcmVjdGlvbi1tYXJnaW4tZGVjbGFyYXRpb25zXG4gKi9cblxuYWRkcmVzcyxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG5ibG9ja3F1b3RlLCBwLCBwcmUsXG5kbCwgb2wsIHVsLFxuZmlndXJlLFxuaHIsXG50YWJsZSxcbmZpZWxkc2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQ7XG59XG5cblxuXG4vKipcbiAqIENvbnNpc3RlbnQgaW5kZW50YXRpb24gZm9yIGxpc3RzLlxuICovXG5cbmRkLCBvbCwgdWwge1xuICBtYXJnaW4tbGVmdDogJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQ7XG59XG4iLCIvLy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gICAjQ09SRVxuLy8gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gVGhpcyBjb3JlIGZpbGUgc2V0cyB1cCBpbnVpdGNzc+KAmSBtb3N0IGltcG9ydGFudCBzZXR1cCB2YXJpYWJsZXMuIFRoZXlcbi8vIHVuZGVycGluIGEgbG90IG9mIGhvdyB0aGUgZnJhbWV3b3JrIGZ1bmN0aW9ucyBhbmQgc2hvdWxkIGJlIG1vZGlmaWVkIGFuZFxuLy8gcHJlY29uZmlndXJlZCB3aXRoIGNhdXRpb24uXG5cblxuXG4vLyBCYXNlbGluZSBncmlkIGxpbmVzIGhlaWdodC5cbi8vIEV2ZXJ5IHNwYWNpbmcgbWV0cmljIHNob3VsZCBiZSBiYXNlZCBvbiB0aGlzLlxuXG4kaW51aXQtZ2xvYmFsLWJhc2VsaW5lOiAgICAgNnB4ICFkZWZhdWx0O1xuXG5cblxuLy8gSG93IG1hbnkgZ3JpZCBsaW5lcyBzaG91bGQgb3VyIHNwYWNpbmcgdW5pdCB2YXJpYW50cyBzcGFuP1xuLy8gRWFjaCB2YWx1ZSBzaG91bGQgYmUgYW4gdW5pdGxlc3MgaW50ZWdlci5cblxuJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtZmFjdG9yLXRpbnk6ICAgMSAhZGVmYXVsdDsgICAvLyA2cHhcbiRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LWZhY3Rvci1zbWFsbDogIDIgIWRlZmF1bHQ7ICAgLy8gMTJweFxuJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtZmFjdG9yOiAgICAgICAgNCAhZGVmYXVsdDsgICAvLyAyNHB4XG4kaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1mYWN0b3ItbGFyZ2U6ICA4ICFkZWZhdWx0OyAgIC8vIDQ4cHhcbiRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LWZhY3Rvci1odWdlOiAgIDE2ICFkZWZhdWx0OyAgLy8gOTZweFxuXG5cblxuLy8gU3BhY2luZyB2YWx1ZXMgYXJlIGRldGVybWluZWQgYmFzZWQgb24geW91ciBwcm9qZWN04oCZcyBnbG9iYWwgYmFzZWxpbmUgZ3JpZC5cbi8vIEl0IGlzIG5vdCByZWNvbW1lbmRlZCB0aGF0IHlvdSBtb2RpZnkgdGhlc2UgZm9sbG93aW5nIHZhcmlhYmxlc1xuLy8gKGl0IGNhbiBicmVhayB5b3VyIHZlcnRpY2FsIHJoeXRobSksIGJ1dCBpZiB5b3UgbmVlZCB0bywgeW91IGNhbi5cblxuJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQ6ICAgICAgICRpbnVpdC1nbG9iYWwtYmFzZWxpbmUgKiAkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1mYWN0b3IgIWRlZmF1bHQ7XG4kaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC10aW55OiAgJGludWl0LWdsb2JhbC1iYXNlbGluZSAqICRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LWZhY3Rvci10aW55ICFkZWZhdWx0O1xuJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtc21hbGw6ICRpbnVpdC1nbG9iYWwtYmFzZWxpbmUgKiAkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1mYWN0b3Itc21hbGwgIWRlZmF1bHQ7XG4kaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1sYXJnZTogJGludWl0LWdsb2JhbC1iYXNlbGluZSAqICRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LWZhY3Rvci1sYXJnZSAhZGVmYXVsdDtcbiRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LWh1Z2U6ICAkaW51aXQtZ2xvYmFsLWJhc2VsaW5lICogJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtZmFjdG9yLWh1Z2UgIWRlZmF1bHQ7XG5cblxuXG4vLyBCYXNlIHR5cG9ncmFwaGljYWwgc3R5bGVzLlxuXG4kaW51aXQtZ2xvYmFsLWZvbnQtc2l6ZTogICAgMTZweCAhZGVmYXVsdDtcbiRpbnVpdC1nbG9iYWwtbGluZS1oZWlnaHQ6ICAkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdCAhZGVmYXVsdDtcblxuXG5cblxuXG4vLyBDaGVjayB0aGF0IHRoZSBjaG9zZW4gZm9udCBydWxlcyBhcmUgcGl4ZWwgbnVtYmVycy5cblxuQGVhY2ggJF9pbnVpdC1mb250LWdsb2JhbHMgaW5cbiAgICAgICRpbnVpdC1nbG9iYWwtZm9udC1zaXplXG4gICAgICAkaW51aXQtZ2xvYmFsLWxpbmUtaGVpZ2h0IHtcblxuICBAaWYgKHR5cGUtb2YoJF9pbnVpdC1mb250LWdsb2JhbHMpID09IG51bWJlcikge1xuXG4gICAgQGlmICh1bml0KCRfaW51aXQtZm9udC1nbG9iYWxzKSAhPSBcInB4XCIpIHtcbiAgICAgIEBlcnJvciBcImAjeyRfaW51aXQtZm9udC1nbG9iYWxzfWAgbmVlZHMgdG8gYmUgYSBwaXhlbCB2YWx1ZS5cIjtcbiAgICB9XG5cbiAgfSBAZWxzZSB7XG4gICAgQGVycm9yIFwiYCN7JF9pbnVpdC1mb250LWdsb2JhbHN9YCBuZWVkcyB0byBiZSBhIG51bWJlci5cIjtcbiAgfVxuXG59XG5cblxuXG4vLyBDaGVjayB0aGF0IHRoZSBjaG9zZW4gc2l6ZSBmYWN0b3JzIGFyZSB1bml0bGVzcywgaW50ZWdlciBudW1iZXJzLlxuXG5AZWFjaCAkX2ludWl0LXNwYWNpbmctdW5pdCBpblxuICAgICAgJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtZmFjdG9yLXRpbnlcbiAgICAgICRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LWZhY3Rvci1zbWFsbFxuICAgICAgJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtZmFjdG9yLWxhcmdlXG4gICAgICAkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1mYWN0b3ItaHVnZSB7XG5cbiAgQGlmICh0eXBlLW9mKCRfaW51aXQtc3BhY2luZy11bml0KSA9PSBudW1iZXIpIHtcblxuICAgIEBpZiAodW5pdGxlc3MoJF9pbnVpdC1zcGFjaW5nLXVuaXQpID09IGZhbHNlKSB7XG4gICAgICBAZXJyb3IgXCJgI3skX2ludWl0LXNwYWNpbmctdW5pdH1gIG5lZWRzIHRvIGJlIHVuaXRsZXNzLlwiO1xuICAgIH1cblxuICAgIEBpZiAoJF9pbnVpdC1zcGFjaW5nLXVuaXQgIT0gY2VpbCgkX2ludWl0LXNwYWNpbmctdW5pdCkpIHtcbiAgICAgIEBlcnJvciBcImAjeyRfaW51aXQtc3BhY2luZy11bml0fWAgbmVlZHMgdG8gYmUgYW4gaW50ZWdlci5cIjtcbiAgICB9XG5cbiAgfSBAZWxzZSB7XG4gICAgQGVycm9yIFwiYCN7JF9pbnVpdC1zcGFjaW5nLXVuaXR9YCBuZWVkcyB0byBiZSBhIG51bWJlci5cIjtcbiAgfVxuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1BBR0VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogU2ltcGxlIHBhZ2UtbGV2ZWwgc2V0dXAuXG4gKlxuICogMS4gU2V0IHRoZSBkZWZhdWx0IGBmb250LXNpemVgIGFuZCBgbGluZS1oZWlnaHRgIGZvciB0aGUgZW50aXJlIHByb2plY3QsXG4gKiAgICBzb3VyY2VkIGZyb20gb3VyIGRlZmF1bHQgdmFyaWFibGVzLiBUaGUgYGZvbnQtc2l6ZWAgaXMgY2FsY3VsYXRlZCB0byBleGlzdFxuICogICAgaW4gZW1zLCB0aGUgYGxpbmUtaGVpZ2h0YCBpcyBjYWxjdWxhdGVkIHRvIGV4aXN0IHVuaXRsZXNzbHkuXG4gKiAyLiBGb3JjZSBzY3JvbGxiYXJzIHRvIGFsd2F5cyBiZSB2aXNpYmxlIHRvIHByZXZlbnQgYXdrd2FyZCDigJhqdW1wc+KAmSB3aGVuXG4gKiAgICBuYXZpZ2F0aW5nIGJldHdlZW4gcGFnZXMgdGhhdCBkby9kbyBub3QgaGF2ZSBlbm91Z2ggY29udGVudCB0byBwcm9kdWNlXG4gKiAgICBzY3JvbGxiYXJzIG5hdHVyYWxseS5cbiAqIDMuIEVuc3VyZSB0aGUgcGFnZSBhbHdheXMgZmlsbHMgYXQgbGVhc3QgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0LlxuICovXG5cbmh0bWwge1xuICBmb250LXNpemU6ICgkaW51aXQtZ2xvYmFsLWZvbnQtc2l6ZSAvIDE2cHgpICogMWVtOyAvKiBbMV0gKi9cbiAgbGluZS1oZWlnaHQ6ICRpbnVpdC1nbG9iYWwtbGluZS1oZWlnaHQgLyAkaW51aXQtZ2xvYmFsLWZvbnQtc2l6ZTsgLyogWzFdICovXG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgLyogWzJdICovXG4gIG1pbi1oZWlnaHQ6IDEwMCU7IC8qIFszXSAqL1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNIRUFESU5HU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBTaW1wbGUgZGVmYXVsdCBzdHlsZXMgZm9yIGhlYWRpbmdzIDEgdGhyb3VnaCA2LiBBbnl0aGluZyBtb3JlIG9waW5pb25hdGVkXG4gKiB0aGFuIHNpbXBsZSBmb250LXNpemUgY2hhbmdlcyBzaG91bGQgbGlrZWx5IGJlIGFwcGxpZWQgdmlhIGNsYXNzZXMgKHNlZTpcbiAqIGh0dHA6Ly9jc3N3aXphcmRyeS5jb20vMjAxNi8wMi9tYW5hZ2luZy10eXBvZ3JhcGh5LW9uLWxhcmdlLWFwcHMvKS5cbiAqL1xuXG4vLyBXZSBoYXZlIGFsbCBvZiBvdXIgaGVhZGluZyBmb250IHNpemVzIGRlZmluZWQgaGVyZS4gUGFzc2luZyB0aGVzZSBwaXhlbFxuLy8gdmFsdWVzIGludG8gb3VyIGBpbnVpdC1mb250LXNpemUoKWAgbWl4aW4gd2lsbCBnZW5lcmF0ZSBhIHJlbS1iYXNlZFxuLy8gYGZvbnQtc2l6ZWAgd2l0aCBhIHBpeGVsIGZhbGxiYWNrLCBhcyB3ZWxsIGFzIGdlbmVyYXRpbmcgYSBgbGluZS1oZWlnaHRgIHRoYXRcbi8vIHdpbGwgc2l0IG9uIG91ciBiYXNlbGluZSBncmlkLlxuXG4kaW51aXQtZm9udC1zaXplLWgxOiAgMzZweCAhZGVmYXVsdDtcbiRpbnVpdC1mb250LXNpemUtaDI6ICAyOHB4ICFkZWZhdWx0O1xuJGludWl0LWZvbnQtc2l6ZS1oMzogIDI0cHggIWRlZmF1bHQ7XG4kaW51aXQtZm9udC1zaXplLWg0OiAgMjBweCAhZGVmYXVsdDtcbiRpbnVpdC1mb250LXNpemUtaDU6ICAxOHB4ICFkZWZhdWx0O1xuJGludWl0LWZvbnQtc2l6ZS1oNjogIDE2cHggIWRlZmF1bHQ7XG5cbmgxIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKCRpbnVpdC1mb250LXNpemUtaDEpO1xufVxuXG5oMiB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgkaW51aXQtZm9udC1zaXplLWgyKTtcbn1cblxuaDMge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoJGludWl0LWZvbnQtc2l6ZS1oMyk7XG59XG5cbmg0IHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKCRpbnVpdC1mb250LXNpemUtaDQpO1xufVxuXG5oNSB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgkaW51aXQtZm9udC1zaXplLWg1KTtcbn1cblxuaDYge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoJGludWl0LWZvbnQtc2l6ZS1oNik7XG59XG4iLCIvLy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gICAjRk9OVC1TSVpFXG4vLyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBHZW5lcmF0ZXMgYSByZW0gZm9udC1zaXplICh3aXRoIHBpeGVsIGZhbGxiYWNrKSBhbmQgYSBiYXNlbGluZS1jb21wYXRpYmxlXG4vLyB1bml0bGVzcyBsaW5lLWhlaWdodCBmcm9tIGEgcGl4ZWwgZm9udC1zaXplIHZhbHVlLiBCYXNpYyB1c2FnZSBpcyBzaW1wbHk6XG4vL1xuLy8gICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMThweCk7XG4vL1xuLy8gWW91IGNhbiBmb3JjZSBhIHNwZWNpZmljIGxpbmUtaGVpZ2h0IGJ5IHBhc3NpbmcgaXQgYXMgdGhlIHNlY29uZCBhcmd1bWVudDpcbi8vXG4vLyAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNnB4LCAxKTtcbi8vXG4vLyBZb3UgY2FuIGFsc28gbW9kaWZ5IHRoZSBsaW5lLWhlaWdodCBieSBpbmNyZW1lbnRzLCB3aGlsZSBzdGF5aW5nIGluIHRoZVxuLy8gYmFzZWxpbmUgZ3JpZCwgYnkgc2V0dGluZyB0aGUgYCRtb2RpZmllcmAgcGFyYW1ldGVyLiBJdCB0YWtlcyBhIHBvc2l0aXZlXG4vLyBvciBuZWdhdGl2ZSBpbnRlZ2VyLCBhbmQgaXQgd2lsbCBhZGQgb3IgcmVtb3ZlIFwibGluZXNcIiB0byB0aGUgIGdlbmVyYXRlZFxuLy8gbGluZS1oZWlnaHQuIFRoaXMgaXMgdGhlIHJlY29tZW5kZWQgd2F5IHRvIGRvIGl0LCB1bmxlc3MgeW91IHJlYWxseSBuZWVkXG4vLyBhbiBhYnNvbHV0ZSB2YWx1ZS4gaS5lLjpcbi8vXG4vLyAgIC8vIGFkZCAyIGxpbmVzOlxuLy8gICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMjRweCwgJG1vZGlmaWVyOiArMik7XG4vL1xuLy8gICAvLyBzdWJ0cmFjdCAxIGxpbmU6XG4vLyAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgyNHB4LCAkbW9kaWZpZXI6IC0xKTtcblxuQG1peGluIGludWl0LWZvbnQtc2l6ZSgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IGF1dG8sICRtb2RpZmllcjogMCwgJGltcG9ydGFudDogZmFsc2UpIHtcblxuICBAaWYgKHR5cGUtb2YoJGZvbnQtc2l6ZSkgPT0gbnVtYmVyKSB7XG4gICAgQGlmICh1bml0KCRmb250LXNpemUpICE9IFwicHhcIikge1xuICAgICAgQGVycm9yIFwiYCN7JGZvbnQtc2l6ZX1gIG5lZWRzIHRvIGJlIGEgcGl4ZWwgdmFsdWUuXCI7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAZXJyb3IgXCJgI3skZm9udC1zaXplfWAgbmVlZHMgdG8gYmUgYSBudW1iZXIuXCI7XG4gIH1cblxuICBAaWYgKCRpbXBvcnRhbnQgPT0gdHJ1ZSkge1xuICAgICRpbXBvcnRhbnQ6ICFpbXBvcnRhbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbXBvcnRhbnQgPT0gZmFsc2UpIHtcbiAgICAkaW1wb3J0YW50OiBudWxsO1xuICB9IEBlbHNlIHtcbiAgICBAZXJyb3IgXCJgI3skaW1wb3J0YW50fWAgbmVlZHMgdG8gYmUgYHRydWVgIG9yIGBmYWxzZWAuXCI7XG4gIH1cblxuICAvLyBXZSBwcm92aWRlIGEgYHB4YCBmYWxsYmFjayBmb3Igb2xkIElFcyBub3Qgc3VwcG9ydGluZyBgcmVtYCB2YWx1ZXMuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZSAkaW1wb3J0YW50O1xuICBmb250LXNpemU6ICgkZm9udC1zaXplIC8gJGludWl0LWdsb2JhbC1mb250LXNpemUpICogMXJlbSAkaW1wb3J0YW50O1xuXG4gIEBpZiAoJGxpbmUtaGVpZ2h0ID09IFwiYXV0b1wiKSB7XG5cbiAgICAvLyBEZWZpbmUgaG93IG1hbnkgZ3JpZCBsaW5lcyBlYWNoIHRleHQgbGluZSBzaG91bGQgc3Bhbi5cbiAgICAvLyBCeSBkZWZhdWx0LCB3ZSBzZXQgaXQgdG8gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGxpbmVzIG5lY2Vzc2FyeVxuICAgIC8vIGluIG9yZGVyIHRvIGNvbnRhaW4gdGhlIGRlZmluZWQgZm9udC1zaXplLCArMSBmb3Igc29tZSBicmVhdGhpbmcgcm9vbS5cbiAgICAvLyBUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHRoZSBgJG1vZGlmaWVyYCBwYXJhbWV0ZXIuXG4gICAgJGxpbmVzOiBjZWlsKCRmb250LXNpemUgLyAkaW51aXQtZ2xvYmFsLWJhc2VsaW5lKSArICRtb2RpZmllciArIDE7XG4gICAgJGxpbmUtaGVpZ2h0OiAkbGluZXMgKiAkaW51aXQtZ2xvYmFsLWJhc2VsaW5lO1xuXG4gICAgbGluZS1oZWlnaHQ6ICgkbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKSAkaW1wb3J0YW50O1xuICB9XG5cbiAgQGVsc2Uge1xuXG4gICAgQGlmICh0eXBlLW9mKCRsaW5lLWhlaWdodCkgPT0gbnVtYmVyIG9yICRsaW5lLWhlaWdodCA9PSBcImluaGVyaXRcIiBvciAkbGluZS1oZWlnaHQgPT0gXCJub3JtYWxcIikge1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCAkaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBlbHNlIGlmICgkbGluZS1oZWlnaHQgIT0gJ25vbmUnIGFuZCAkbGluZS1oZWlnaHQgIT0gZmFsc2UpIHtcbiAgICAgIEBlcnJvciBcIkTigJlvaCEgYCN7JGxpbmUtaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGAkbGluZS1oZWlnaHRgLlwiXG4gICAgfVxuXG4gIH1cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNJTUFHRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gRmx1aWQgaW1hZ2VzIGZvciByZXNwb25zaXZlIHB1cnBvc2VzLlxuICogMi4gT2Zmc2V0IGBhbHRgIHRleHQgZnJvbSBzdXJyb3VuZGluZyBjb3B5LlxuICogMy4gU2V0dGluZyBgdmVydGljYWwtYWxpZ25gIHJlbW92ZXMgdGhlIHdoaXRlc3BhY2UgdGhhdCBhcHBlYXJzIHVuZGVyIGBpbWdgXG4gKiAgICBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGRyb3BwZWQgaW50byBhIHBhZ2UgYXMtaXMuIFNhZmVyIGFsdGVybmF0aXZlIHRvXG4gKiAgICB1c2luZyBgZGlzcGxheTogYmxvY2s7YC5cbiAqL1xuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIFsxXSAqL1xuICBmb250LXN0eWxlOiBpdGFsaWM7IC8qIFsyXSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiBbM10gKi9cbn1cblxuXG5cbi8vIEluIGNhc2UgeW91IGRvbid0IGhhdmUgY29udHJvbCBvdmVyIGdlbmVyYXRlZCBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBhdHRyaWJ1dGVzXG4vLyBvbiBgPGltZz5gIGVsZW1lbnRzIGluIHlvdXIgbWFya3VwLCBidXQgc3RpbGwgd2FudCB0aGUgaW1hZ2VzIHRvIGJlIGZsdWlkLFxuLy8gc2V0IHRoaXMgdG8gYGZhbHNlYC5cblxuJGludWl0LXN0YXRpYy1pbWFnZXM6IHRydWUgIWRlZmF1bHQ7XG5cbiAgQGlmICgkaW51aXQtc3RhdGljLWltYWdlcyA9PSB0cnVlKSB7XG5cbiAgLyoqXG4gICAqIElmIGEgYHdpZHRoYCBhbmQvb3IgYGhlaWdodGAgYXR0cmlidXRlIGhhcyBiZWVuIGV4cGxpY2l0bHkgZGVmaW5lZCwgbGV04oCZc1xuICAgKiBub3QgbWFrZSB0aGUgaW1hZ2UgZmx1aWQuXG4gICAqL1xuXG4gIGltZ1t3aWR0aF0sXG4gIGltZ1toZWlnaHRdIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNUQUJMRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gRW5zdXJlIHRhYmxlcyBmaWxsIHVwIGFzIG11Y2ggc3BhY2UgYXMgcG9zc2libGUuXG4gKi9cblxudGFibGUge1xuICB3aWR0aDogMTAwJTsgLyogWzFdICovXG59XG4iLCJodG1sIHtcbiAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbn1cblxuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgY29sb3I6ICRiYXNlLWNvbG9yO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICBAaW5jbHVkZSBtcSgkZnJvbTogd2lkZSkge1xuICAgICYuYy1wYWdlLWhvbWUsXG4gICAgJi5jLXBhZ2UtY29udGFjdCxcbiAgICAmLmMtcGFnZS1hYm91dCxcbiAgICAmLmMtcGFnZS1wcm9qZWN0cyB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmMtcGFnZS1ob21lLFxuICAgICYuYy1wYWdlLWFib3V0LFxuICAgICYuYy1wYWdlLXByb2plY3RzIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDE4N3B4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZWRlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuYy1wYWdlLWNvbnRhY3Qge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5pcy1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbmxhYmVsLFxuaW5wdXQsXG5zZWxlY3QsXG5idXR0b24sXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogOTAwO1xufVxuXG5hIHtcbiAgY29sb3I6ICRiYXNlLWNvbG9yO1xufVxuIiwiLy8vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICAgI0dMT0JBTFxuLy8gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuJG1xLWJyZWFrcG9pbnRzOiAoXG4gICAgbW9iaWxlOiA0ODBweCxcbiAgICB0YWJsZXQ6IDc2OHB4LFxuICAgIGRlc2t0b3A6IDEwMjRweCxcbiAgICB3aWRlOiAxMjgwcHhcbik7XG5cbiRpbnVpdC1vZmZzZXRzOiB0cnVlOyAvLyBFbmFibGUgcHVzaCBhbmQgcHVsbCBjbGFzc2VzXG5cbi8vIEZvbnRzXG4kYmFzZS1mb250LWZhbWlseTogJ2tvcm9sZXYnLCBzYW5zLXNlcmlmO1xuIiwiLy8vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICAgI0NPTE9SU1xuLy8gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuJHdoaXRlLWNvbG9yOiAjZmZmO1xuJGJsYWNrLWNvbG9yOiAjMDAwO1xuJGJhc2UtY29sb3I6ICMyZTJlMmU7XG4kcHJpbWFyeS1jb2xvcjogI2UwMjMxZTtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjsgLy8gRml4ZXMgYW4gaXNzdWUgd2hlcmUgUnVieSBsb2NhbGUgaXMgbm90IHNldCBwcm9wZXJseVxuICAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvcHVsbC8xMFxuXG4vLy8gQmFzZSBmb250IHNpemUgb24gdGhlIGA8Ym9keT5gIGVsZW1lbnRcbi8vL1xuLy8vIERvIG5vdCBvdmVycmlkZSB0aGlzIHZhbHVlLCBvciB0aGluZ3Mgd2lsbCBicmVha1xuLy8vXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9pc3N1ZXMvMTIyXG4vLy8gQGRlcHJlY2F0ZWQgVGhpcyBzZXR0aW5nIHdpbGwgYmUgcmVtb3ZlZCBpbiBzYXNzLW1xIHY2LjAuMFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgbW9kZVxuLy8vXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcbi8vL1xuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2Vycyxcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBvbGQtaWUuc2Nzc1xuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBsaXN0XG4vLy9cbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1icmVha3BvaW50czogKFxuICAgIG1vYmlsZTogIDMyMHB4LFxuICAgIHRhYmxldDogIDc0MHB4LFxuICAgIGRlc2t0b3A6IDk4MHB4LFxuICAgIHdpZGU6ICAgIDEzMDBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcbi8vL1xuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3Ncbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xuLy8vICAvL1xuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChzdWNoIGFzIHRoZSBsYXlvdXQpIGF0IHRhYmxldCB3aWR0aFxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gICRtcS1zdGF0aWMtYnJlYWtwb2ludDogdGFibGV0O1xuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byB0YWJsZXRcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2FkZGluZy1jdXN0b20tYnJlYWtwb2ludHMgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJG1xLXN0YXRpYy1icmVha3BvaW50OiBkZXNrdG9wICFkZWZhdWx0O1xuXG4vLy8gU2hvdyBicmVha3BvaW50cyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vXG4vLy8gSWYgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3Bcbi8vLyByaWdodCBjb3JuZXIgb2YgeW91ciBzaXRlIGR1cmluZyBkZXZlbG9wbWVudCwgYWRkIHRoZSBicmVha3BvaW50c1xuLy8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aC4gRm9yIGV4YW1wbGU6IChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAkbXEtc2hvdy1icmVha3BvaW50czogKG1vYmlsZSwgdGFibGV0LCBkZXNrdG9wKTtcbi8vLyAgIEBpbXBvcnQgJ3BhdGgvdG8vbXEnO1xuLy8vXG4vLy8gQHR5cGUgbWFwXG4kbXEtc2hvdy1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG5cbi8vLyBDdXN0b21pemUgdGhlIG1lZGlhIHR5cGUgKGZvciBleGFtcGxlOiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xuXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxuLy8vIEBpZ25vcmUgQHBhcmFtIHtOdW1iZXJ9ICRiYXNlLWZvbnQtc2l6ZSBbJG1xLWJhc2UtZm9udC1zaXplXSAtIGA8Ym9keT5gIGZvbnQgc2l6ZSAoZGVwcmVjYXRlZClcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxuLy8vXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xuICAgIEBpZiAoJG1xLWJhc2UtZm9udC1zaXplICE9IDE2cHgpIHtcbiAgICAgICAgQHdhcm4gXCJPdmVycmlkaW5nICRtcS1iYXNlLWZvbnQtc2l6ZSB3aWxsIGJyZWFrIHRoaW5ncywgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvaXNzdWVzLzEyMi5cIjtcbiAgICB9XG4gICAgQGlmICgkYmFzZS1mb250LXNpemUgIT0gMTZweCkge1xuICAgICAgICBAd2FybiBcIlRoZSAkYmFzZS1mb250LXNpemUgYXJndW1lbnQgd2lsbCBiZSByZW1vdmVkIGluIHNhc3MtbXEgdjYuMC4wLCBhcyBvdmVycmlkaW5nIGl0IGJyZWFrcyB0aGluZ3MsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2lzc3Vlcy8xMjIuXCI7XG4gICAgfVxuICAgIEBpZiB1bml0bGVzcygkcHgpIHtcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIH1cbn1cblxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIFtmYWxzZV0gLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgW2ZhbHNlXSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgW2ZhbHNlXSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSBbJG1xLW1lZGlhLXR5cGVdIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxuLy8vXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzIFskbXEtYnJlYWtwb2ludHNdXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50IFskbXEtc3RhdGljLWJyZWFrcG9pbnRdXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuLy8vICAgICAgY29sb3I6IHJlZDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcShtb2JpbGUsIHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGdyZWVuO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xuLy8vICAgICAgY29sb3I6IHRlYWw7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKDk1MHB4KSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gIH1cbkBtaXhpbiBtcShcbiAgICAkZnJvbTogZmFsc2UsXG4gICAgJHVudGlsOiBmYWxzZSxcbiAgICAkYW5kOiBmYWxzZSxcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXG4gICAgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XG4pIHtcbiAgICAkbWluLXdpZHRoOiAwO1xuICAgICRtYXgtd2lkdGg6IDA7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcblxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxuICAgIEBpZiAkZnJvbSB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcbiAgICBAaWYgJHVudGlsIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XG5cbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcbiAgICAgICAgICAgIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIGFuZCAoXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYW5kICRtZWRpYS10eXBlICE9ICdwcmludCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBlbmFibGVkLCBvdXRwdXQgcnVsZXMgaW5zaWRlIEBtZWRpYSBxdWVyaWVzXG4gICAgQGVsc2Uge1xuICAgICAgICBAaWYgJG1pbi13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWluLXdpZHRoOiAjeyRtaW4td2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRtYXgtd2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkYW5kICAgICAgICAgICAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kICN7JGFuZH0nOyB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXG4gICAgICAgIEBpZiAoJG1lZGlhLXR5cGUgPT0gJ2FsbCcgYW5kICRtZWRpYS1xdWVyeSAhPSAnJykge1xuICAgICAgICAgICAgJG1lZGlhLXR5cGU6ICcnO1xuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHItc2xpY2UodW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vIFF1aWNrIHNvcnRcbi8vL1xuLy8vIEBhdXRob3IgU2FtIFJpY2hhcmRzXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc29ydFxuLy8vIEByZXR1cm5zIHtMaXN0fSBTb3J0ZWQgTGlzdFxuQGZ1bmN0aW9uIF9tcS1xdWljay1zb3J0KCRsaXN0KSB7XG4gICAgJGxlc3M6ICAoKTtcbiAgICAkZXF1YWw6ICgpO1xuICAgICRsYXJnZTogKCk7XG5cbiAgICBAaWYgbGVuZ3RoKCRsaXN0KSA+IDEge1xuICAgICAgICAkc2VlZDogbnRoKCRsaXN0LCBjZWlsKGxlbmd0aCgkbGlzdCkgLyAyKSk7XG5cbiAgICAgICAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgICAgICAgICAgQGlmICgkaXRlbSA9PSAkc2VlZCkge1xuICAgICAgICAgICAgICAgICRlcXVhbDogYXBwZW5kKCRlcXVhbCwgJGl0ZW0pO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGl0ZW0gPCAkc2VlZCkge1xuICAgICAgICAgICAgICAgICRsZXNzOiBhcHBlbmQoJGxlc3MsICRpdGVtKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtID4gJHNlZWQpIHtcbiAgICAgICAgICAgICAgICAkbGFyZ2U6IGFwcGVuZCgkbGFyZ2UsICRpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEByZXR1cm4gam9pbihqb2luKF9tcS1xdWljay1zb3J0KCRsZXNzKSwgJGVxdWFsKSwgX21xLXF1aWNrLXNvcnQoJGxhcmdlKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFNvcnQgYSBtYXAgYnkgdmFsdWVzICh3b3JrcyB3aXRoIG51bWJlcnMgb25seSlcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNvcnRcbi8vLyBAcmV0dXJucyB7TWFwfSBNYXAgc29ydGVkIGJ5IHZhbHVlXG5AZnVuY3Rpb24gX21xLW1hcC1zb3J0LWJ5LXZhbHVlKCRtYXApIHtcbiAgICAkbWFwLXNvcnRlZDogKCk7XG4gICAgJG1hcC1rZXlzOiBtYXAta2V5cygkbWFwKTtcbiAgICAkbWFwLXZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcbiAgICAkbWFwLXZhbHVlcy1zb3J0ZWQ6IF9tcS1xdWljay1zb3J0KCRtYXAtdmFsdWVzKTtcblxuICAgIC8vIFJlb3JkZXIga2V5L3ZhbHVlIHBhaXJzIGJhc2VkIG9uIGtleSB2YWx1ZXNcbiAgICBAZWFjaCAkdmFsdWUgaW4gJG1hcC12YWx1ZXMtc29ydGVkIHtcbiAgICAgICAgJGluZGV4OiBpbmRleCgkbWFwLXZhbHVlcywgJHZhbHVlKTtcbiAgICAgICAgJGtleTogbnRoKCRtYXAta2V5cywgJGluZGV4KTtcbiAgICAgICAgJG1hcC1zb3J0ZWQ6IG1hcC1tZXJnZSgkbWFwLXNvcnRlZCwgKCRrZXk6ICR2YWx1ZSkpO1xuXG4gICAgICAgIC8vIFVuc2V0IHRoZSB2YWx1ZSBpbiAkbWFwLXZhbHVlcyB0byBwcmV2ZW50IHRoZSBsb29wXG4gICAgICAgIC8vIGZyb20gZmluZGluZyB0aGUgc2FtZSBpbmRleCB0d2ljZVxuICAgICAgICAkbWFwLXZhbHVlczogc2V0LW50aCgkbWFwLXZhbHVlcywgJGluZGV4LCAwKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRtYXAtc29ydGVkO1xufVxuXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBfbXEtbWFwLXNvcnQtYnktdmFsdWUoJG1xLWJyZWFrcG9pbnRzKSAhZ2xvYmFsO1xufVxuXG4vLy8gU2hvdyB0aGUgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIgb2YgdGhlIHZpZXdwb3J0XG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvdy1icmVha3BvaW50cyBbJG1xLXNob3ctYnJlYWtwb2ludHNdIC0gTGlzdCBvZiBicmVha3BvaW50cyB0byBzaG93IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyBbJG1xLWJyZWFrcG9pbnRzXSAtIEJyZWFrcG9pbnQgbmFtZXMgYW5kIHNpemVzXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc2hvdy1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGdsb2JhbCBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xuLy8vXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgY3VzdG9tIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHMoKEwsIFhMKSwgKFM6IDMwMHB4LCBMOiA4MDBweCwgWEw6IDEyMDBweCkpO1xuQG1peGluIG1xLXNob3ctYnJlYWtwb2ludHMoJHNob3ctYnJlYWtwb2ludHM6ICRtcS1zaG93LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xuICAgIGJvZHk6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjhFMztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgY29sb3I6ICNDMDk4NTM7XG4gICAgICAgIGZvbnQ6IHNtYWxsLWNhcHRpb247XG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXG4gICAgICAgIEBlYWNoICRzaG93LWJyZWFrcG9pbnQgaW4gJHNob3ctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiN7JHNob3ctYnJlYWtwb2ludH0g4omlICN7JHdpZHRofSAoI3ttcS1weDJlbSgkd2lkdGgpfSlcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmIGxlbmd0aCgkbXEtc2hvdy1icmVha3BvaW50cykgPiAwIHtcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNHUklEXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFRoaXMgcGx1Z2luIHByb3ZpZGVzIGEgZmxleGJveCBncmlkIGZvciBpbnVpdGNzcy4gU3VwcG9ydCBmb3IgSUU5IGN1cnJlbnRseVxuICogcHJldmVudHMgaW51aXRjc3MgZnJvbSB1c2luZyB0aGUgZmxleGJveCBsYXlvdXQgbW9kZS5cbiAqXG4gKiBDZWxscyBhcmUgZnVsbC13aWR0aCBhbmQgd2lsbCBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlciBieSBkZWZhdWx0OlxuICpcbiAqIDxkaXYgY2xhc3M9XCJvLWdyaWRcIj5cbiAqICAgPGRpdiBjbGFzcz1cIm8tZ3JpZF9fY2VsbFwiPlxuICogICA8L2Rpdj5cbiAqICAgPGRpdiBjbGFzcz1cIm8tZ3JpZF9fY2VsbFwiPlxuICogICA8L2Rpdj5cbiAqIDwvZGl2PlxuICpcbiAqIENlbGxzIHdpbGwgaW4gbW9zdCBjYXNlcyBiZSBhY2NvbXBhbmllZCBieSB1dGlsaXR5IGNsYXNzZXMgdGhhdCBkaXZpZGVcbiAqIHRoZSBncmlkIGludG8gZnJhY3Rpb25zLiBUaGVzZSBhcmUgcHJvdmlkZWQgYnkgaW51aXRjc3M6XG4gKlxuICogPGRpdiBjbGFzcz1cIm8tZ3JpZFwiPlxuICogICA8ZGl2IGNsYXNzPVwiby1ncmlkX19jZWxsIHUtMS8yXCI+XG4gKiAgIDwvZGl2PlxuICogICA8ZGl2IGNsYXNzPVwiby1ncmlkX19jZWxsIHUtMS8yXCI+XG4gKiAgIDwvZGl2PlxuICogPC9kaXY+XG4gKlxuICogU2V2ZXJhbCBtb2RpZmllciBjbGFzc2VzIGFyZSBwcm92aWRlZC4gRm9yIGV4YW1wbGUsIGBvLWdyaWQtLWF1dG9gIHdpbGxcbiAqIGRpdmlkZSB0aGUgc3BhY2UgZXF1YWxseSBiZXR3ZWVuIGFsbCBjb250YWluaW5nIGNlbGxzIHdpdGhvdXQgdGhlIG5lZWRcbiAqIGZvciB3aWR0aCB1dGlsaXR5IGNsYXNzZXMuXG4gKlxuICogPGRpdiBjbGFzcz1cIm8tZ3JpZC0tYXV0b1wiPlxuICogICA8ZGl2IGNsYXNzPVwiby1ncmlkX19jZWxsXCI+XG4gKiAgIDwvZGl2PlxuICogICA8ZGl2IGNsYXNzPVwiby1ncmlkX19jZWxsXCI+XG4gKiAgIDwvZGl2PlxuICogPC9kaXY+XG4gKi9cblxuLy8gVGhpcyB2YXJpYWJsZSBpcyBkZXByZWNhdGVkLiBVc2UgJGludWl0LWZsZXhncmlkLXNwYWNpbmctc2l6ZXMgaW5zdGVhZC5cblxuJGludWl0LWZsZXhncmlkLWd1dHRlci13aWR0aDogJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQgIWRlZmF1bHQ7XG5cbi8vIFNwZWNpZnkgYSBtYXAgb2YgcG9zc2libGUgZ3V0dGVyIHdpZHRocy4gQnkgZGVmYXVsdCB3ZSB1c2UgdGhlIGdsb2JhbFxuLy8gc3BhY2luZyB1bml0cyBwcm92aWRlZCBieSBpbnVpdGNzcyBhbmQgdGhlaXIgY29udmVudGlvbmFsIGNsYXNzXG4vLyBuYW1lIHN1ZmZpeGVzICgtLXRpbnksIC0tc21hbGwsIC0tbGFyZ2UgZXRjKS5cblxuJGludWl0LWZsZXhncmlkLXNwYWNpbmctc2l6ZXM6IChcbiAgICBudWxsOiAkaW51aXQtZmxleGdyaWQtZ3V0dGVyLXdpZHRoLFxuICAgICctLXRpbnknOiAkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC10aW55LFxuICAgICctLXNtYWxsJzogJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtc21hbGwsXG4gICAgJy0tbGFyZ2UnOiAkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1sYXJnZSxcbiAgICAnLS1odWdlJzogJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtaHVnZSxcbiAgICAnLS1mbHVzaCc6IDAsXG4pICFkZWZhdWx0O1xuXG4vLyBTcGVjaWZ5IHBvc3NpYmxlIGFsaWdubWVudCB2YWx1ZXNcblxuJGludWl0LWZsZXhncmlkLWFsaWdubWVudC12YWx1ZXM6IChcbiAgICAnLS10b3AnOiAnZmxleC1zdGFydCcsXG4gICAgJy0tbWlkZGxlJzogJ2NlbnRlcicsXG4gICAgJy0tYm90dG9tJzogJ2ZsZXgtZW5kJyxcbiAgICAnLS1iYXNlbGluZSc6ICdiYXNlbGluZScsXG4gICAgJy0tc3RyZXRjaCc6ICdzdHJldGNoJyxcbikgIWRlZmF1bHQ7XG5cbi8vIFNwZWNpZnkgcG9zc2libGUganVzdGlmeSB2YWx1ZXNcblxuJGludWl0LWZsZXhncmlkLWp1c3RpZnktdmFsdWVzOiAoXG4gICAgJy0tbGVmdCc6ICdmbGV4LXN0YXJ0JyxcbiAgICAnLS1jZW50ZXInOiAnY2VudGVyJyxcbiAgICAnLS1yaWdodCc6ICdmbGV4LWVuZCcsXG4gICAgJy0tYmV0d2Vlbic6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAnLS1hcm91bmQnOiAnc3BhY2UtYXJvdW5kJyxcbikgIWRlZmF1bHQ7XG5cbi8qIFRoZSBncmlkXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uby1ncmlkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIDEuIENlbGxzIGFyZSBmdWxsLXdpZHRoIGFuZCBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlciBieSBkZWZhdWx0LlxuICovXG5cbi5vLWdyaWRfX2NlbGwge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiAxMDAlOyAvKiBbMV0gKi9cbn1cblxuXG4vKiBHdXR0ZXJzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIFRoZSBtYXAgJGludWl0LWZsZXhncmlkLXNwYWNpbmctc2l6ZXMgY29udGFpbnMgYSBgbnVsbGAga2V5IHdoaWNoXG4gKiAgICB3aWxsIGJlIG91ciBkZWZhdWx0IGd1dHRlciBzaXplLlxuICogMi4gQWRkIGEgbmVnYXRpdmUgbWFyZ2luIG9uIG9uZSBzaWRlIG9ubHkuIFRoYXQgd2F5IHdlIGFyZW4ndCByZXF1aXJlZCB0byB1c2VcbiAqICAgIGEgd3JhcHBlciB3aXRoIHRoZSBzYW1lIGFtb3VudCBvZiBzcGFjaW5nLCB0aG91Z2ggaXQncyBjb21tb24gdG8gZG8gc28uXG4gKiAzLiBOZXV0cmFsaXplIHRoZSBsZWZ0IG1hcmdpbiBvbiBgby1ncmlkYC5cbiAqL1xuXG5AZWFjaCAkc2l6ZS1uYW1lc3BhY2UsICRzaXplIGluICRpbnVpdC1mbGV4Z3JpZC1zcGFjaW5nLXNpemVzIHtcbiAgICAuby1ncmlkI3skc2l6ZS1uYW1lc3BhY2V9IHsgLyogWzFdICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNpemU7IC8qIFsyXSAqL1xuICAgICAgICAmID4gLm8tZ3JpZF9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaXplOyAvKiBbM10gKi9cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKiBBdXRvbWF0aWNhbGx5IHNpemUgY2VsbHMgYnkgZGlzdHJpYnV0aW5nIHRoZW0gZXF1YWxseVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLm8tZ3JpZC0tYXV0byB7XG4gICAgJiA+IC5vLWdyaWRfX2NlbGwge1xuICAgICAgICBmbGV4OiAxIDAgMDtcbiAgICB9XG59XG5cblxuLyogSG9yaXpvbnRhbCBhbGlnbm1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBlYWNoICRuYW1lc3BhY2UsICR2YWx1ZSBpbiAkaW51aXQtZmxleGdyaWQtanVzdGlmeS12YWx1ZXMge1xuICAgIC5vLWdyaWQjeyRuYW1lc3BhY2V9IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiAjeyR2YWx1ZX07XG4gICAgfVxufVxuXG5cbi8qIFB1bGwgYmVoYXZpb3JcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5vLWdyaWRfX2NlbGwtLXB1bGwtbGVmdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uby1ncmlkX19jZWxsLS1wdWxsLXJpZ2h0IHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuXG4vKiBWZXJ0aWNhbCBhbGlnbm1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBlYWNoICRuYW1lc3BhY2UsICR2YWx1ZSBpbiAkaW51aXQtZmxleGdyaWQtYWxpZ25tZW50LXZhbHVlcyB7XG4gICAgLm8tZ3JpZCN7JG5hbWVzcGFjZX0ge1xuICAgICAgICBhbGlnbi1pdGVtczogI3skdmFsdWV9O1xuICAgIH1cbn1cblxuQGVhY2ggJG5hbWVzcGFjZSwgJHZhbHVlIGluICRpbnVpdC1mbGV4Z3JpZC1hbGlnbm1lbnQtdmFsdWVzIHtcbiAgICAuby1ncmlkX19jZWxsI3skbmFtZXNwYWNlfSB7XG4gICAgICAgIGFsaWduLXNlbGY6ICN7JHZhbHVlfTtcbiAgICB9XG59XG5cblxuLyogQ29udGVudCBkaXN0cmlidXRpb25cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5vLWdyaWQtLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLm8tZ3JpZC0tY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uby1ncmlkLS1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuIiwiLmMtYm9keSB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNnB4LCAyNnB4KTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICBAaW5jbHVkZSBtcSgkZnJvbTogZGVza3RvcCkge1xuICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxOHB4LCAyOHB4KTtcbiAgfVxuXG4gID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIuYy1ib3gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBwYWRkaW5nOiA1MHB4IDI1cHg7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBwYWRkaW5nOiA4MHB4IDUwcHg7XG4gIH1cblxuICBoMiB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDI1cHgsIDMwcHgpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMzBweCwgMzVweCk7XG4gICAgfVxuICB9XG59XG5cbi5jLWJveC0tbWlkZGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jLWJveC0tZnVsbCB7XG4gIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgfVxufVxuXG4uYy1idXR0b25fX2Zvb3RlciB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICB9XG59XG4iLCIuYy1idXR0b24ge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTJweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibGFjay1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMTRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMS41cHg7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBwYWRkaW5nOiAyNHB4O1xuICB9XG59XG5cbi5jLWJ1dHRvbi0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xufVxuXG4uYy1idXR0b24tLWZ1bGwge1xuICB3aWR0aDogMTAwJTtcbn1cbiIsIi5jLWNsb3NlLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBhdC1yb290IC5pcy1vcGVuICYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi5jLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jLWNvbnRlbnRfX2xhYmVsIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDIwcHgpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiA0cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgQGluY2x1ZGUgbXEoJHVudGlsOiBkZXNrdG9wKSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKC0xMDAlKSB0cmFuc2xhdGVZKC00MHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIuYy1jdGEge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMjBweCwgMzBweCk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL3dvb2QtcGF0dGVybi5qcGcnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlciAvIGNvdmVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAkd2hpdGUtY29sb3I7XG4gIG1hcmdpbi10b3A6IDUwcHg7XG4gIHBhZGRpbmc6IDUwcHggMjVweDtcblxuICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkdW50aWw6IGRlc2t0b3ApIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMjVweCwgMzVweCk7XG4gIH1cblxuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDM1cHgsIDQ1cHgpO1xuICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogJHdoaXRlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG59XG4iLCIuYy1mYi1mb2xsb3cge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTJweCwgMTJweCk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICBjb2xvcjogJHdoaXRlLWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZVkoMTAwJSk7XG4gIHBhZGRpbmc6IDIwcHggMzBweDtcblxuICBAaW5jbHVkZSBtcSgkZnJvbTogZGVza3RvcCkge1xuICAgIGxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogNTlweDtcbiAgfVxufVxuXG4uYy1mYi1mb2xsb3dfX2ljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNTAlO1xuICByaWdodDogMjBweDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZVgoNTAlKTtcbn1cblxuLmMtZmItZm9sbG93X19sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIH1cbn1cbiIsIi5jLWZvb3Rlci1sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICBAaW5jbHVkZSBtcSgkdW50aWw6IGRlc2t0b3ApIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuXG4uYy1mb290ZXItbG9nb19faW1hZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gIG1pbi13aWR0aDogNDhweDtcbn1cblxuLmMtZm9vdGVyLWxvZ29fX3RleHQge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTRweCwgMjRweCk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuIiwiLmMtaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMjBweDtcbiAgfVxufVxuXG4uYy1oZXJvX190ZXh0IHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDMwcHgsIDQwcHgpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCwgJHVudGlsOiBkZXNrdG9wKSB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDQwcHgsIDU1cHgpO1xuICB9XG5cbiAgQGluY2x1ZGUgbXEoJHVudGlsOiBkZXNrdG9wKSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoNTVweCwgNzBweCk7XG4gICAgbGVmdDogNTBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cblxuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCwgJHVudGlsOiBkZXNrdG9wKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICAgIH1cbiAgfVxufVxuXG4uYy1oZXJvX19zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBtYXJnaW4tbGVmdDogMjM0cHg7XG4gIH1cbn1cblxuLmMtaGVyb19fc2Nyb2xsIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBtcSgkZnJvbTogZGVza3RvcCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcblxuICAgIHN2ZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwcHgsIDEwMCUpO1xuICAgIH1cbiAgfVxufVxuXG4uYy1oZXJvX19zY3JvbGwtbGFiZWwge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTBweCk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiA0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZVkoLTEwcHgpO1xufVxuXG4uYy1oZXJvX19zY3JvbGwtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4iLCIuYy1qdW1ib3Ryb24ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMjBweDtcbiAgYmFja2dyb3VuZDogbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIgLyBjb3ZlcjtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcblxuICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkdW50aWw6IGRlc2t0b3ApIHtcbiAgICBoZWlnaHQ6IDQyMHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBoZWlnaHQ6IDUyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEzMHB4O1xuICB9XG59XG4iLCIuYy1tYXBzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzUwcHg7XG4gIGJhY2tncm91bmQ6ICRiYXNlLWNvbG9yO1xufVxuIiwiLmMtcGFnZS1mb290ZXIge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTRweCwgMjRweCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibGFjay1jb2xvcjtcbiAgY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiAgcGFkZGluZy10b3A6IDUwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogZGVza3RvcCkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgcGFkZGluZy10b3A6IDEwMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG4iLCIuYy1wYWdlLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiAxMDY0cHg7XG4gIG1hcmdpbjogMzBweCBhdXRvIDI1cHggYXV0bztcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgbWFyZ2luLXRvcDogODBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICB9XG59XG4iLCIuYy1wYWdlLWludHJvIHtcbiAgbWF4LXdpZHRoOiA3NDBweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTMwcHg7XG4gIH1cbn1cbiIsIi5jLXBhZ2UtbG9nb19fbGluayB7XG4gZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYy1wYWdlLWxvZ29fX2ltYWdlIHtcbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICB3aWR0aDogMjU3cHg7XG4gICAgaGVpZ2h0OiA1N3B4O1xuICB9XG59XG4iLCIuYy1wYWdlLXRpdGxlIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDM1cHgpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQsICR1bnRpbDogZGVza3RvcCkge1xuICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSg0NXB4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDY1cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDE0MHB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgfVxufVxuIiwiLmMtcHJpbWFyeS1uYXYge1xuXG59XG5cbi5jLXByaW1hcnktbmF2X19tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBtcSgkdW50aWw6IGRlc2t0b3ApIHtcbiAgICBAYXQtcm9vdCAuaXMtb3BlbiAmIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stY29sb3I7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgcGFkZGluZzogNTBweCAzMHB4O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLmMtcHJpbWFyeS1uYXZfX2xpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG5cbi5jLXByaW1hcnktbmF2X19pdGVtIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogZGVza3RvcCkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICsgLmMtcHJpbWFyeS1uYXZfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogZGVza3RvcCkge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtcSgkZnJvbTogZGVza3RvcCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDcwcHg7XG4gICAgfVxuICB9XG59XG5cbi5jLXByaW1hcnktbmF2X19saW5rIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogNTAwO1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogZGVza3RvcCkge1xuICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgzMnB4KTtcbiAgICBjb2xvcjogJHdoaXRlLWNvbG9yO1xuICB9XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTZweCk7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gIH1cblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cbn1cbiIsIi5jLXByb2plY3QtaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgY2VudGVyIGNlbnRlciAvIGNvdmVyO1xuICBoZWlnaHQ6IDE4MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBoZWlnaHQ6IDIzMHB4O1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHdoaXRlLWNvbG9yLCAwLjQ1KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIC5jLXByb2plY3QtaXRlbV9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gIH1cbn1cblxuLmMtcHJvamVjdC1pdGVtLS1sYXJnZSB7XG4gIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgaGVpZ2h0OiA0NjBweDtcbiAgfVxufVxuXG4uYy1wcm9qZWN0LWl0ZW1fX2xhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgcGFkZGluZzogMWVtO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgjMDAwLCAwLjYpIDQwcHgsIHRyYW5zcGFyZW50IDIwMHB4KTtcblxuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiAyMDBtcztcbn1cbiIsIi5jLXByb2plY3QtdGVhc2VyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206ICRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCR3aGl0ZS1jb2xvciwgMC40NSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuIiwiLmMtcHJvamVjdHMtZ3JpZCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAxMHB4KTtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG59XG5cbi5jLXByb2plY3RzLWdyaWRfX2NlbGwge1xuICBwYWRkaW5nOiA1cHg7XG59XG4iLCIuYy1wcm9qZWN0cyB7XG4gIG1hcmdpbi10b3A6IDgwcHg7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IGRlc2t0b3ApIHtcbiAgICBtYXJnaW4tdG9wOiAxNjBweDtcbiAgfVxuXG4gIGgyIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMzBweCwgMzVweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtcSgkZnJvbTogZGVza3RvcCkge1xuICAgICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDQwcHgsIDQ1cHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgICB9XG4gIH1cbn1cblxuLmMtcHJvamVjdHNfX2Zvb3RlciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4iLCIuYy1zaG93LW1lbnUge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTZweCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBtcSgkZnJvbTogZGVza3RvcCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi5jLXNsaWRlciB7XG4gIGhlaWdodDogMzY4cHg7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCwgJHVudGlsOiBkZXNrdG9wKSB7XG4gICAgaGVpZ2h0OiA0NjhweDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgaGVpZ2h0OiA1NjhweDtcbiAgfVxuXG4gIC5mbGlja2l0eS1wYWdlLWRvdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgaGVpZ2h0OiA5cHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzRweCk7XG5cbiAgICAuZG90IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICBoZWlnaHQ6IDNweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICBtYXJnaW46IDA7XG5cbiAgICAgIEBpbmNsdWRlIG1xKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgICAgIHdpZHRoOiA1NHB4O1xuICAgICAgfVxuXG4gICAgICArIC5kb3Qge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgIH1cblxuICAgICAgJi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGhlaWdodDogOXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjY2FjYWNhO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYy1zbGlkZXJfX2l0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNDTEVBUkZJWFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBdHRhY2ggb3VyIGNsZWFyZml4IG1peGluIHRvIGEgdXRpbGl0eSBjbGFzcy5cbiAqL1xuXG4udS1jbGVhcmZpeCB7XG4gIEBpbmNsdWRlIGludWl0LWNsZWFyZml4KCk7XG59XG4iLCIvLy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gICAjQ0xFQVJGSVhcbi8vICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIE1peGluIHRvIGRyb3AgbWljcm8gY2xlYXJmaXggaW50byBhIHNlbGVjdG9yLiBGdXJ0aGVyIHJlYWRpbmc6XG4vLyBodHRwOi8vd3d3LmNzc21vam8uY29tL3RoZS12ZXJ5LWxhdGVzdC1jbGVhcmZpeC1yZWxvYWRlZC9cbi8vXG4vLyAudXNhZ2Uge1xuLy8gICBAaW5jbHVkZSBpbnVpdC1jbGVhcmZpeCgpO1xuLy8gfVxuXG5AbWl4aW4gaW51aXQtY2xlYXJmaXgoKSB7XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIiAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgY2xlYXI6IGJvdGggIWltcG9ydGFudDtcbiAgfVxuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1dJRFRIU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBpbnVpdGNzcyBnZW5lcmF0ZXMgYSBzZXJpZXMgb2YgdXRpbGl0eSBjbGFzc2VzIHRoYXQgZ2l2ZSBhIGZsdWlkIHdpZHRoIHRvXG4gKiB3aGljaGV2ZXIgZWxlbWVudCB0aGV54oCZcmUgYXBwbGllZCwgZS5nLjpcbiAqXG4gKiAgIDxpbWcgc3JjPVwiXCIgYWx0PVwiXCIgY2xhc3M9XCJ1LTEvMlwiIC8+XG4gKlxuICogVGhlc2UgY2xhc3NlcyBhcmUgbW9zdCBjb21tb25seSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggb3VyIGxheW91dCBzeXN0ZW0sXG4gKiBlLmcuOlxuICpcbiAqICAgPGRpdiBjbGFzcz1cIm8tbGF5b3V0X19pdGVtICB1LTEvMlwiPlxuICpcbiAqIEJ5IGRlZmF1bHQsIGludWl0Y3NzIHdpbGwgYWxzbyBnZW5lcmF0ZSByZXNwb25zaXZlIHZhcmlhbnRzIG9mIGVhY2ggb2YgdGhlc2VcbiAqIGNsYXNzZXMgYnkgdXNpbmcgeW91ciBTYXNzIE1RIGNvbmZpZ3VyYXRpb24sIGUuZy46XG4gKlxuICogICA8ZGl2IGNsYXNzPVwiby1sYXlvdXRfX2l0ZW0gIHUtMS8xICB1LTEvMkB0YWJsZXQgIHUtMS8zQGRlc2t0b3BcIj5cbiAqXG4gKiBPcHRpb25hbGx5LCBpbnVpdGNzcyBjYW4gZ2VuZXJhdGUgb2Zmc2V0IGNsYXNzZXMgd2hpY2ggY2FuIHB1c2ggYW5kIHB1bGxcbiAqIGVsZW1lbnRzIGxlZnQgYW5kIHJpZ2h0IGJ5IGEgc3BlY2lmaWVkIGFtb3VudCwgZS5nLjpcbiAqXG4gKiAgIDxkaXYgY2xhc3M9XCJvLWxheW91dF9faXRlbSAgdS0yLzMgIHUtcHVsbC0xLzNcIj5cbiAqXG4gKiBUaGlzIGlzIHVzZWZ1bCBmb3IgbWFraW5nIHZlcnkgZ3JhbnVsYXIgY2hhbmdlcyB0byB0aGUgcmVuZGVyZWQgb3JkZXIgb2ZcbiAqIGl0ZW1zIGluIGEgbGF5b3V0LlxuICpcbiAqIE4uQi4gVGhpcyBvcHRpb24gaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0LlxuICovXG5cblxuXG4vLyBXaGljaCBmcmFjdGlvbnMgd291bGQgeW91IGxpa2UgaW4geW91ciBncmlkIHN5c3RlbShzKT8gQnkgZGVmYXVsdCwgaW51aXRjc3Ncbi8vIHByb3ZpZGVzIHlvdSBmcmFjdGlvbnMgb2Ygb25lIHdob2xlLCBoYWx2ZXMsIHRoaXJkcywgcXVhcnRlcnMgYW5kIGZpZnRocyxcbi8vIGUuZy46XG4vL1xuLy8gICAudS0xLzJcbi8vICAgLnUtMi81XG4vLyAgIC51LTMvNFxuLy8gICAudS0yLzNcblxuJGludWl0LWZyYWN0aW9uczogMSAyIDMgNCA1ICFkZWZhdWx0O1xuXG5cblxuXG5cbi8vIE9wdGlvbmFsbHksIGludWl0Y3NzIGNhbiBnZW5lcmF0ZSBjbGFzc2VzIHRvIG9mZnNldCBpdGVtcyBieSBhIGNlcnRhaW4gd2lkdGguXG4vLyBXb3VsZCB5b3UgbGlrZSB0byBnZW5lcmF0ZSB0aGVzZSB0eXBlcyBvZiBjbGFzcyBhcyB3ZWxsPyBFLmcuOlxuLy9cbi8vICAgLnUtcHVzaC0xLzNcbi8vICAgLnUtcHVsbC0yLzRcbi8vICAgLnUtcHVsbC0xLzVcbi8vICAgLnUtcHVzaC0yLzNcblxuJGludWl0LW9mZnNldHM6IGZhbHNlICFkZWZhdWx0O1xuXG5cblxuXG5cbi8vIEJ5IGRlZmF1bHQsIGludWl0Y3NzIHVzZXMgZnJhY3Rpb25zLWxpa2UgY2xhc3NlcyBsaWtlIGA8ZGl2IGNsYXNzPVwidS0xLzRcIj5gLlxuLy8gWW91IGNhbiBjaGFuZ2UgdGhlIGAvYCB0byB3aGF0ZXZlciB5b3UgZmFuY3kgd2l0aCB0aGlzIHZhcmlhYmxlLlxuJGludWl0LXdpZHRocy1kZWxpbWl0ZXI6IFxcLyAhZGVmYXVsdDtcblxuXG5cblxuXG4vLyBXaGVuIHVzaW5nIFNhc3MtTVEsIHRoaXMgZGVmaW5lcyB0aGUgc2VwYXJhdG9yIGZvciB0aGUgYnJlYWtwb2ludHMgc3VmZml4XG4vLyBpbiB0aGUgY2xhc3MgbmFtZS4gQnkgZGVmYXVsdCwgd2UgYXJlIGdlbmVyYXRpbmcgdGhlIHJlc3BvbnNpdmUgc3VmZml4ZXNcbi8vIGZvciB0aGUgY2xhc3NlcyB3aXRoIGEgYEBgIHN5bWJvbCBzbyB5b3UgZ2V0IGNsYXNzZXMgbGlrZTpcbi8vIDxkaXYgY2xhc3M9XCJ1LTMvMTJAbW9iaWxlXCI+XG4kaW51aXQtd2lkdGhzLWJyZWFrcG9pbnQtc2VwYXJhdG9yOiBcXEAgIWRlZmF1bHQ7XG5cblxuXG5cblxuLy8gQSBtaXhpbiB0byBzcGl0IG91dCBvdXIgd2lkdGggY2xhc3Nlcy4gUGFzcyBpbiB0aGUgY29sdW1ucyB3ZSB3YW50IHRoZSB3aWR0aHNcbi8vIHRvIGhhdmUsIGFuZCBhbiBvcHRpb25hbCBzdWZmaXggZm9yIHJlc3BvbnNpdmUgd2lkdGhzLiBFLmcuIHRvIGNyZWF0ZSB0aGlyZHNcbi8vIGFuZCBxdWFydGVycyBmb3IgYSBzbWFsbCBicmVha3BvaW50OlxuLy9cbi8vIEBpbmNsdWRlIHdpZHRocygzIDQsIC1zbSk7XG5cbkBtaXhpbiBpbnVpdC13aWR0aHMoJGNvbHVtbnMsICRicmVha3BvaW50OiBudWxsKSB7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBudW1iZXIgb2YgY29sdW1ucyBmb3IgZWFjaCBkZW5vbWluYXRvciBvZiBvdXIgZnJhY3Rpb25zLlxuICBAZWFjaCAkZGVub21pbmF0b3IgaW4gJGNvbHVtbnMge1xuXG4gICAgLy8gQmVnaW4gY3JlYXRpbmcgYSBudW1lcmF0b3IgZm9yIG91ciBmcmFjdGlvbiB1cCB1bnRpbCB3ZSBoaXQgdGhlXG4gICAgLy8gZGVub21pbmF0b3IuXG4gICAgQGZvciAkbnVtZXJhdG9yIGZyb20gMSB0aHJvdWdoICRkZW5vbWluYXRvciB7XG5cbiAgICAgIC8vIEJ1aWxkIGEgY2xhc3MgaW4gdGhlIGZvcm1hdCBgLnUtMy80W0A8YnJlYWtwb2ludD5dYC5cblxuICAgICAgLnUtI3skbnVtZXJhdG9yfSN7JGludWl0LXdpZHRocy1kZWxpbWl0ZXJ9I3skZGVub21pbmF0b3J9I3skYnJlYWtwb2ludH0ge1xuICAgICAgICB3aWR0aDogKCRudW1lcmF0b3IgLyAkZGVub21pbmF0b3IpICogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBAaWYgKCRpbnVpdC1vZmZzZXRzID09IHRydWUpIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogMS4gUmVzZXQgYW55IGxlZnRvdmVyIG9yIGNvbmZsaWN0aW5nIGBsZWZ0YC9gcmlnaHRgIHZhbHVlcy5cbiAgICAgICAgICovXG5cbiAgICAgICAgLy8gQnVpbGQgYSBjbGFzcyBpbiB0aGUgZm9ybWF0IGAudS1wdXNoLTEvMltAPGJyZWFrcG9pbnQ+XWAuXG5cbiAgICAgICAgLnUtcHVzaC0jeyRudW1lcmF0b3J9I3skaW51aXQtd2lkdGhzLWRlbGltaXRlcn0jeyRkZW5vbWluYXRvcn0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgLyogWzFdICovXG4gICAgICAgICAgbGVmdDogKCRudW1lcmF0b3IgLyAkZGVub21pbmF0b3IpICogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQnVpbGQgYSBjbGFzcyBpbiB0aGUgZm9ybWF0IGAudS1wdWxsLTUvNltAPGJyZWFrcG9pbnQ+XWAuXG5cbiAgICAgICAgLnUtcHVsbC0jeyRudW1lcmF0b3J9I3skaW51aXQtd2lkdGhzLWRlbGltaXRlcn0jeyRkZW5vbWluYXRvcn0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcmlnaHQ6ICgkbnVtZXJhdG9yIC8gJGRlbm9taW5hdG9yKSAqIDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgQGlmICgkaW51aXQtb2Zmc2V0cyA9PSB0cnVlIGFuZCAkYnJlYWtwb2ludCAhPSBudWxsKSB7XG5cbiAgICAvLyBDcmVhdGUgYXV0byBwdXNoIGFuZCBwdWxsIGNsYXNzZXMuXG5cbiAgICAudS1wdXNoLW5vbmUjeyRicmVha3BvaW50fSB7XG4gICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnUtcHVsbC1ub25lI3skYnJlYWtwb2ludH0ge1xuICAgICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgfVxuXG59XG5cblxuXG5cblxuLyoqXG4gKiBBIHNlcmllcyBvZiB3aWR0aCBoZWxwZXIgY2xhc3NlcyB0aGF0IHlvdSBjYW4gdXNlIHRvIHNpemUgdGhpbmdzIGxpa2UgZ3JpZFxuICogc3lzdGVtcy4gQ2xhc3NlcyB0YWtlIGEgZnJhY3Rpb24tbGlrZSBmb3JtYXQgKGUuZy4gYC51LTIvM2ApLiBVc2UgdGhlc2UgaW5cbiAqIHlvdXIgbWFya3VwOlxuICpcbiAqIDxkaXYgY2xhc3M9XCJ1LTcvMTJcIj5cbiAqXG4gKiBUaGUgZm9sbG93aW5nIHdpbGwgZ2VuZXJhdGUgd2lkdGhzIGhlbHBlciBjbGFzc2VzIGJhc2VkIG9uIHRoZSBmcmFjdGlvbnNcbiAqIGRlZmluZWQgaW4gdGhlIGAkaW51aXQtZnJhY3Rpb25zYCBsaXN0LlxuICovXG5cbkBpbmNsdWRlIGludWl0LXdpZHRocygkaW51aXQtZnJhY3Rpb25zKTtcblxuXG5cblxuXG4vKipcbiAqIElmIHdl4oCZcmUgdXNpbmcgU2Fzcy1NUSwgYXV0b21hdGljYWxseSBnZW5lcmF0ZSBncmlkIHN5c3RlbShzKSBmb3IgZWFjaCBvZiBvdXJcbiAqIGRlZmluZWQgYnJlYWtwb2ludHMsIGFuZCBnaXZlIHRoZW0gYSBSZXNwb25zaXZlIFN1ZmZpeCwgZS5nLjpcbiAqXG4gKiA8ZGl2IGNsYXNzPVwidS0zLzEyQG1vYmlsZVwiPlxuICovXG5cbkBpZiAodmFyaWFibGUtZXhpc3RzKG1xLWJyZWFrcG9pbnRzKSkge1xuXG4gIEBlYWNoICRpbnVpdC1icC1uYW1lLCAkaW51aXQtYnAtdmFsdWUgaW4gJG1xLWJyZWFrcG9pbnRzIHtcblxuICAgIEBpbmNsdWRlIG1xKCRmcm9tOiAkaW51aXQtYnAtbmFtZSkge1xuICAgICAgQGluY2x1ZGUgaW51aXQtd2lkdGhzKCRpbnVpdC1mcmFjdGlvbnMsICN7JGludWl0LXdpZHRocy1icmVha3BvaW50LXNlcGFyYXRvcn0jeyRpbnVpdC1icC1uYW1lfSk7XG4gICAgfVxuXG4gIH1cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNXSURUSFNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBpbmNsdWRlIGludWl0LXdpZHRocygxMik7XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIEBpbmNsdWRlIGludWl0LXdpZHRocygxMiwgXFxAdGFibGV0KTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIEBpbmNsdWRlIGludWl0LXdpZHRocygxMiwgXFxAZGVza3RvcCk7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0hFQURJTkdTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlZGVmaW5lIGFsbCBvZiBvdXIgYmFzaWMgaGVhZGluZyBzdHlsZXMgYWdhaW5zdCB1dGlsaXR5IGNsYXNzZXMgc28gYXMgdG9cbiAqIGFsbG93IGZvciBkb3VibGUgc3RyYW5kZWQgaGVhZGluZyBoaWVyYXJjaHksIGUuZy4gd2Ugc2VtYW50aWNhbGx5IG5lZWQgYW4gSDIsXG4gKiBidXQgd2Ugd2FudCBpdCB0byBiZSBzaXplZCBsaWtlIGFuIEgxOlxuICpcbiAqICAgPGgyIGNsYXNzPVwidS1oMVwiPjwvaDI+XG4gKlxuICovXG5cbi51LWgxIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKCRpbnVpdC1mb250LXNpemUtaDEsICRpbXBvcnRhbnQ6IHRydWUpO1xufVxuXG4udS1oMiB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgkaW51aXQtZm9udC1zaXplLWgyLCAkaW1wb3J0YW50OiB0cnVlKTtcbn1cblxuLnUtaDMge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoJGludWl0LWZvbnQtc2l6ZS1oMywgJGltcG9ydGFudDogdHJ1ZSk7XG59XG5cbi51LWg0IHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKCRpbnVpdC1mb250LXNpemUtaDQsICRpbXBvcnRhbnQ6IHRydWUpO1xufVxuXG4udS1oNSB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgkaW51aXQtZm9udC1zaXplLWg1LCAkaW1wb3J0YW50OiB0cnVlKTtcbn1cblxuLnUtaDYge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoJGludWl0LWZvbnQtc2l6ZS1oNiwgJGltcG9ydGFudDogdHJ1ZSk7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0hJREVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICovXG5cbi51LWhpZGRlbi12aXN1YWxseSB7XG4gIEBpbmNsdWRlIGludWl0LWhpZGRlbi12aXN1YWxseSgpO1xufVxuXG5cbi8qKlxuICogSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycy5cbiAqL1xuXG4udS1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCIvLy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gICAjSElEREVOLVZJU1VBTExZXG4vLyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBNaXhpbiB0byBxdWlja2x5IGFwcGx5IGFjY2Vzc2libGUgaGlkaW5nIHRvIGVsZW1lbnRzLlxuXG5AbWl4aW4gaW51aXQtaGlkZGVuLXZpc3VhbGx5KCkge1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSkgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG59XG4iLCIudS10ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnUtdGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4udS1saW5lLXRocm91Z2gge1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbn1cblxuLnUtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMTI0cHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcblxuICBAaW5jbHVkZSBtcSgkZnJvbTogZGVza3RvcCkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDUycHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1MnB4O1xuICB9XG59XG5cbi51LWNvbnRhaW5lci0tc21hbGwge1xuICBtYXgtd2lkdGg6IDEwMjRweDtcbn1cbiJdfQ== */
