@charset "UTF-8";
/* ==========================================================================
   INUITCSS
   ========================================================================== */
/*!*
 * inuitcss, by @csswizardry modified by Daveloose
 *
 * github.com/inuitcss | inuitcss.com
 */
/*------------------------------------*    SETTINGS
\*------------------------------------*/
/*------------------------------------*    TOOLS
\*------------------------------------*/
/*------------------------------------*    GENERIC
\*------------------------------------*/
/* ==========================================================================
   #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 v5.0.0 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Correct the line height in all browsers.
 * 3. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
/* Document
   ========================================================================== */
html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */ }

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
word-wrap: break-word;
    -webkit-hyphens: auto;
       -moz-hyphens: auto;
        -ms-hyphens: auto;
            hyphens: auto;  }

/**
 * 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; }

#colofon h1 {
  font-size: 2.25rem;
}

/* 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 */ }

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */
a:active,
a:hover {
  outline-width: 0; }

/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */ }

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit; }

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder; }

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic; }

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000; }

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

/* Embedded content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
audio,
video {
  display: inline-block; }

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none; }

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden; }

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
 * Show the overflow in IE.
 * 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; }

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  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
 */
/* stylelint-disable selector-list-comma-newline-after */
address,
h1, h2, h3, h4, h5, h6,
blockquote, p, pre,
dl, ol, ul,
figure,
hr,
table,
fieldset {
  margin-bottom: 24px;
  margin-bottom: 1.5rem; }

/**
 * Consistent indentation for lists.
 */
dd, ol, ul {
  margin-left: 24px;
  margin-left: 1.5rem; }

/* stylelint-enable selector-list-comma-newline-after */
/*------------------------------------*    ELEMENTS
\*------------------------------------*/
/* ==========================================================================
   #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.33333; }

h2 {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.71429; }

h3 {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1; }

h4 {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 1.2; }

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] */ }

/**
 * 1. If a `width` and/or `height` attribute have been explicitly defined, let’s
 *    not make the image fluid.
 */
img[width],
img[height] {
  /* [1] */
  max-width: none; }

/* ==========================================================================
   #TABLES
   ========================================================================== */
/**
 * 1. Ensure tables fill up as much space as possible.
 */
table {
  width: 100%;
  /* [1] */ }

/*------------------------------------*    UTILITIES
\*------------------------------------*/
/* ==========================================================================
   #CLEARFIX
   ========================================================================== */
/**
 * Attach our clearfix mixin to a utility class.
 */
.u-clearfix:after, .l-article__content:after, .l-grid: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; }

.u-1\/2 {
  width: 50% !important; }

.u-2\/2 {
  width: 100% !important; }

.u-1\/3 {
  width: 33.33333% !important; }

.u-2\/3 {
  width: 66.66667% !important; }

.u-3\/3 {
  width: 100% !important; }

.u-1\/4 {
  width: 25% !important; }

.u-2\/4 {
  width: 50% !important; }

.u-3\/4 {
  width: 75% !important; }

.u-4\/4 {
  width: 100% !important; }

.u-1\/5 {
  width: 20% !important; }

.u-2\/5 {
  width: 40% !important; }

.u-3\/5 {
  width: 60% !important; }

.u-4\/5 {
  width: 80% !important; }

.u-5\/5 {
  width: 100% !important; }

/**
 * 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: 20em) {
  .u-1\/1\@mobile {
    width: 100% !important; }
  .u-1\/2\@mobile {
    width: 50% !important; }
  .u-2\/2\@mobile {
    width: 100% !important; }
  .u-1\/3\@mobile {
    width: 33.33333% !important; }
  .u-2\/3\@mobile {
    width: 66.66667% !important; }
  .u-3\/3\@mobile {
    width: 100% !important; }
  .u-1\/4\@mobile {
    width: 25% !important; }
  .u-2\/4\@mobile {
    width: 50% !important; }
  .u-3\/4\@mobile {
    width: 75% !important; }
  .u-4\/4\@mobile {
    width: 100% !important; }
  .u-1\/5\@mobile {
    width: 20% !important; }
  .u-2\/5\@mobile {
    width: 40% !important; }
  .u-3\/5\@mobile {
    width: 60% !important; }
  .u-4\/5\@mobile {
    width: 80% !important; }
  .u-5\/5\@mobile {
    width: 100% !important; } }

@media (min-width: 48em) {
  .u-1\/1\@tablet {
    width: 100% !important; }
  .u-1\/2\@tablet {
    width: 50% !important; }
  .u-2\/2\@tablet {
    width: 100% !important; }
  .u-1\/3\@tablet {
    width: 33.33333% !important; }
  .u-2\/3\@tablet {
    width: 66.66667% !important; }
  .u-3\/3\@tablet {
    width: 100% !important; }
  .u-1\/4\@tablet {
    width: 25% !important; }
  .u-2\/4\@tablet {
    width: 50% !important; }
  .u-3\/4\@tablet {
    width: 75% !important; }
  .u-4\/4\@tablet {
    width: 100% !important; }
  .u-1\/5\@tablet {
    width: 20% !important; }
  .u-2\/5\@tablet {
    width: 40% !important; }
  .u-3\/5\@tablet {
    width: 60% !important; }
  .u-4\/5\@tablet {
    width: 80% !important; }
  .u-5\/5\@tablet {
    width: 100% !important; } }

@media (min-width: 64em) {
  .u-1\/1\@desktop {
    width: 100% !important; }
  .u-1\/2\@desktop {
    width: 50% !important; }
  .u-2\/2\@desktop {
    width: 100% !important; }
  .u-1\/3\@desktop {
    width: 33.33333% !important; }
  .u-2\/3\@desktop {
    width: 66.66667% !important; }
  .u-3\/3\@desktop {
    width: 100% !important; }
  .u-1\/4\@desktop {
    width: 25% !important; }
  .u-2\/4\@desktop {
    width: 50% !important; }
  .u-3\/4\@desktop {
    width: 75% !important; }
  .u-4\/4\@desktop {
    width: 100% !important; }
  .u-1\/5\@desktop {
    width: 20% !important; }
  .u-2\/5\@desktop {
    width: 40% !important; }
  .u-3\/5\@desktop {
    width: 60% !important; }
  .u-4\/5\@desktop {
    width: 80% !important; }
  .u-5\/5\@desktop {
    width: 100% !important; } }

/* ==========================================================================
   #PRINT
   ========================================================================== */
/**
 * Very crude, reset-like styles taken from the HTML5 Boilerplate:
 * https://github.com/h5bp/html5-boilerplate/blob/5.3.0/dist/doc/css.md#print-styles
 * https://github.com/h5bp/html5-boilerplate/blob/master/dist/css/main.css#L205-L282
 */
@media print {
  /**
   * 1. Black prints faster: http://www.sanbeiji.com/archives/953
   */
  *,
  *:before,
  *:after,
  *:first-letter,
  *:first-line {
    background: transparent !important;
    color: #000 !important;
    /* [1] */
    box-shadow: none !important;
    text-shadow: none !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  /**
   * Don't show links that are fragment identifiers, or use the `javascript:`
   * pseudo protocol.
   */
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  /**
   * Printing Tables: http://css-discuss.incutio.com/wiki/Printing_Tables
   */
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; } }

/* ==========================================================================
   #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;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important; }

/**
 * Hide visually and from screen readers.
 */
.u-hidden {
  display: none !important; }

.u-inner {
  position: relative;
  max-width: 1024px;
  margin: 0 auto;
  padding: 0 20px; }

/* ==========================================================================
   #WIDTHS
   ========================================================================== */
/**
 * A series of width helper classes that you can use to size things like grid
 * systems. Classes can take a fraction-like format (e.g. `.u-2/3`) or a spoken-
 * word format (e.g. `.u-2-of-3`). Use these in your markup:
 *
 * <div class="u-7/12">
 *
 * The following will generate a 12 and a 16 column grid system.
 */
.u-1\/12 {
  width: 8.33333% !important; }

.u-2\/12 {
  width: 16.66667% !important; }

.u-3\/12 {
  width: 25% !important; }

.u-4\/12 {
  width: 33.33333% !important; }

.u-5\/12 {
  width: 41.66667% !important; }

.u-6\/12 {
  width: 50% !important; }

.u-7\/12 {
  width: 58.33333% !important; }

.u-8\/12 {
  width: 66.66667% !important; }

.u-9\/12 {
  width: 75% !important; }

.u-10\/12 {
  width: 83.33333% !important; }

.u-11\/12 {
  width: 91.66667% !important; }

.u-12\/12 {
  width: 100% !important; }

@media screen and (max-width: 767px) {
  .u-1\/12\@palm {
    width: 8.33333% !important; }
  .u-2\/12\@palm {
    width: 16.66667% !important; }
  .u-3\/12\@palm {
    width: 25% !important; }
  .u-4\/12\@palm {
    width: 33.33333% !important; }
  .u-5\/12\@palm {
    width: 41.66667% !important; }
  .u-6\/12\@palm {
    width: 50% !important; }
  .u-7\/12\@palm {
    width: 58.33333% !important; }
  .u-8\/12\@palm {
    width: 66.66667% !important; }
  .u-9\/12\@palm {
    width: 75% !important; }
  .u-10\/12\@palm {
    width: 83.33333% !important; }
  .u-11\/12\@palm {
    width: 91.66667% !important; }
  .u-12\/12\@palm {
    width: 100% !important; } }

@media screen and (max-width: 1023px) {
  .u-1\/12\@portable {
    width: 8.33333% !important; }
  .u-2\/12\@portable {
    width: 16.66667% !important; }
  .u-3\/12\@portable {
    width: 25% !important; }
  .u-4\/12\@portable {
    width: 33.33333% !important; }
  .u-5\/12\@portable {
    width: 41.66667% !important; }
  .u-6\/12\@portable {
    width: 50% !important; }
  .u-7\/12\@portable {
    width: 58.33333% !important; }
  .u-8\/12\@portable {
    width: 66.66667% !important; }
  .u-9\/12\@portable {
    width: 75% !important; }
  .u-10\/12\@portable {
    width: 83.33333% !important; }
  .u-11\/12\@portable {
    width: 91.66667% !important; }
  .u-12\/12\@portable {
    width: 100% !important; } }

@media screen and (min-width: 768px) and (max-width: 1023px) {
  .u-1\/12\@lap {
    width: 8.33333% !important; }
  .u-2\/12\@lap {
    width: 16.66667% !important; }
  .u-3\/12\@lap {
    width: 25% !important; }
  .u-4\/12\@lap {
    width: 33.33333% !important; }
  .u-5\/12\@lap {
    width: 41.66667% !important; }
  .u-6\/12\@lap {
    width: 50% !important; }
  .u-7\/12\@lap {
    width: 58.33333% !important; }
  .u-8\/12\@lap {
    width: 66.66667% !important; }
  .u-9\/12\@lap {
    width: 75% !important; }
  .u-10\/12\@lap {
    width: 83.33333% !important; }
  .u-11\/12\@lap {
    width: 91.66667% !important; }
  .u-12\/12\@lap {
    width: 100% !important; } }

@media screen and (min-width: 768px) {
  .u-1\/12\@lap-and-up {
    width: 8.33333% !important; }
  .u-2\/12\@lap-and-up {
    width: 16.66667% !important; }
  .u-3\/12\@lap-and-up {
    width: 25% !important; }
  .u-4\/12\@lap-and-up {
    width: 33.33333% !important; }
  .u-5\/12\@lap-and-up {
    width: 41.66667% !important; }
  .u-6\/12\@lap-and-up {
    width: 50% !important; }
  .u-7\/12\@lap-and-up {
    width: 58.33333% !important; }
  .u-8\/12\@lap-and-up {
    width: 66.66667% !important; }
  .u-9\/12\@lap-and-up {
    width: 75% !important; }
  .u-10\/12\@lap-and-up {
    width: 83.33333% !important; }
  .u-11\/12\@lap-and-up {
    width: 91.66667% !important; }
  .u-12\/12\@lap-and-up {
    width: 100% !important; } }

@media screen and (min-width: 1024px) {
  .u-1\/12\@desktop {
    width: 8.33333% !important; }
  .u-2\/12\@desktop {
    width: 16.66667% !important; }
  .u-3\/12\@desktop {
    width: 25% !important; }
  .u-4\/12\@desktop {
    width: 33.33333% !important; }
  .u-5\/12\@desktop {
    width: 41.66667% !important; }
  .u-6\/12\@desktop {
    width: 50% !important; }
  .u-7\/12\@desktop {
    width: 58.33333% !important; }
  .u-8\/12\@desktop {
    width: 66.66667% !important; }
  .u-9\/12\@desktop {
    width: 75% !important; }
  .u-10\/12\@desktop {
    width: 83.33333% !important; }
  .u-11\/12\@desktop {
    width: 91.66667% !important; }
  .u-12\/12\@desktop {
    width: 100% !important; } }

/**
 * Create a 12 and a 16 column grid system on screens over 1200px wide, and give
 * them a Responsive Suffix of `@lg`, e.g.:
 *
 * <div class="u-3/12@lg">
 */
/* @media screen and (min-width: 75em) {
  // @include inuit-widths(12 16, \@lg);
  @include inuit-widths(12, \@lg);
} */
/*------------------------------------*    BASE
\*------------------------------------*/
@font-face {
  font-family: 'Fjalla One';
  src: url("/inc/fonts/FjallaOne/FjallaOne-Regular.woff2") format("woff2"), url("/inc/fonts/FjallaOne/FjallaOne-Regular.woff") format("woff");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'Lato';
  src: url("/inc/fonts/Lato/Lato-Bold.woff2") format("woff2"), url("/inc/fonts/Lato/Lato-Bold.woff") format("woff");
  font-weight: bold;
  font-style: normal; }

@font-face {
  font-family: 'Lato';
  src: url("/inc/fonts/Lato/Lato-Light.woff2") format("woff2"), url("/inc/fonts/Lato/Lato-Light.woff") format("woff");
  font-weight: 300;
  font-style: normal; }

@font-face {
  font-family: 'Khula';
  src: url("/inc/fonts/Khula/Khula-Bold.woff2") format("woff2"), url("/inc/fonts/Khula/Khula-Bold.woff") format("woff");
  font-weight: bold;
  font-style: normal; }

@font-face {
  font-family: 'Khula';
  src: url("/inc/fonts/Khula/Khula-Light.woff2") format("woff2"), url("/inc/fonts/Khula/Khula-Light.woff") format("woff");
  font-weight: 300;
  font-style: normal; }

html,
body {
  height: 100%;
 }

html {
  position: relative;
  left: 0;
  transition: 0.4s all; }
  html.locked {
    overflow: hidden; }
  html.open {
    left: 300px; }

body {
  color: #1a1a18;
  font-family: 'Lato', Calibri, Arial, sans-serif;
  font-weight: 300; }
  body.cke_editable {
    margin: 20px; }

b,
strong {
  font-weight: bold; }

h1 {
  font-size: 100px;
  font-size: 6.25rem;
  line-height: 1;
  color: #006582;
  text-transform: uppercase;
  margin: 0 0 20px;
  font-family: 'Fjalla One', Calibri, Arial, sans-serif;
  font-weight: 300; }
  @media (max-width: 47.99em) {
    h1 {
      font-size: 60px;
      font-size: 3.75rem;
      line-height: 1;
       } }

h2 {
  font-size: 40px;
  font-size: 2.5rem;
  line-height: 1.4;
  color: #006582;
  font-weight: 400;
  margin: 10px 0; }
  @media (max-width: 47.99em) {
    h2 {
      font-size: 30px;
      font-size: 1.875rem;
      line-height: 1.4; } }

h3 {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.4;
  margin: 20px 0 20px 20px;
  text-transform: uppercase;
  font-weight: 700; }

h4 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.6;
  margin: 20px 0 0;
  font-weight: 700; }

p {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.6;
  font-weight: 300;
  margin-bottom: 15px; }
  @media (max-width: 47.99em) {
    p {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 1.6; } }
  p:last-child {
    margin-bottom: 0; }

a {
  color: #006582;
  transition: 0.3s all; }
  a:hover {
    color: #b4a030; }

blockquote {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.4;
  font-family: 'Fjalla One', Calibri, Arial, sans-serif;
  color: #b4a030;
  text-transform: uppercase;
  text-align: center;
  border: 0;
  padding: 0;
  margin: 50px 0; }
  blockquote::before {
    content: '"'; }
  blockquote::after {
    content: '"'; }

table {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.4;
  margin-top: 10px;
  margin-bottom: 5px;
  width: 100% !important;
  height: auto !important;
  border: 0; }
  @media (max-width: 47.99em) {
    table {
      display: block;
      overflow: auto; } }
  table th,
  table td {
    padding: 8px;
    vertical-align: top;
    border: 1px solid #e6e6e6;
    min-width: 100px;
    text-align: left; }
  table th {
    vertical-align: middle; }

.l-article__sidebar + .l-article__content table {
  max-width: calc(100% - 375px); }
  @media (max-width: 47.99em) {
    .l-article__sidebar + .l-article__content table {
      max-width: 100%; } }

.slick-list,
.slick-track {
  height: 100%;
  width: 100%; }

.ie-message {
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;
  width: 100%;
  height: 100%;
  background: #fff;
  text-align: center;
  color: #1a1a18;
  padding: 70px; }
  .ie-message h1 {
    font-size: 45px;
    font-size: 2.8125rem;
    line-height: 1.06667;
    margin-bottom: 20px; }
  .ie-message a {
    color: #006582;
    text-decoration: none; }
  .ie-message img {
    margin-bottom: 20px; }

/*------------------------------------*    TYEPKIT FOUT
\*------------------------------------*/
.wf-loading * {
  visibility: hidden; }

.wf-active *,
.wf-inactive * {
  visibility: visible; }

/*------------------------------------*\*------------------------------------*/
/*------------------------------------*    LAYOUT
\*------------------------------------*/
.l-article {
  padding-bottom: 100px;
  background-color: #fff; }
  @media (max-width: 47.99em) {
    .l-article {
      padding-bottom: 50px; } }

.l-article__content {
  display: inline-block;
  width: 100%;
  vertical-align: top; }

.l-article__content--sidebar {
  width: calc(100% - 380px); }
  @media (max-width: 47.99em) {
    .l-article__content--sidebar {
      width: 100%; } }

.l-article__sidebar {
  width: 335px;
  display: inline-block;
  margin-left: 40px; }
  @media (max-width: 47.99em) {
    .l-article__sidebar {
      width: 100%;
      margin-left: 0;
      margin-top: 20px; } }

.l-article__intro p {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 1.6;
  margin: 30px 0;
  font-weight: 300; }
  @media (max-width: 47.99em) {
    .l-article__intro p {
      font-size: 20px;
      font-size: 1.25rem;
      line-height: 1.6; } }

.l-article__info {
	border: 2px solid #1a1a18;
	padding: 10px;
	font-style: italic;
	margin: 21px auto;
}
  .l-article__info h3 {
    font-family: 'Fjalla One', Calibri, Arial, sans-serif;
    text-transform: uppercase;
    font-style: normal;
    color: #006582; }

.l-article__author {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1;
  color: #006582;
  font-style: italic;
  font-weight: 300; }
  @media (max-width: 47.99em) {
    .l-article__author {
      font-size: 16px;
      font-size: 1rem;
      line-height: 1; } }
  .l-article__author::after {
    content: '&'; }
  .l-article__author:last-of-type::after {
    display: none; }
  .l-article__author sup {
    font-size: 13px;
    font-size: 0.8125rem;
    line-height: 1;
    font-weight: 400;
    background-color: #006582;
    color: #fff;
    padding: 2px 6px 2px 5px;
    border-radius: 50%;
    cursor: help;
    display: inline-block;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    transition: 0.3s all; }
    .l-article__author sup:hover, .l-article__author sup:focus {
      background-color: #1a1a18; }
    .l-article__author sup::after {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 1.4;
      padding: 10px; }

.l-article__sources {
  border-top: 1px solid #1a1a18;
  padding-top: 20px; }
  .l-article__sources ul {
    margin: 0 0 0 20px; }
  .l-article__sources p, .l-article__sources li {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.4;
    margin-bottom: 10px; }

.l-article__collab-container {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.4;
  margin-bottom: 10px; }
  .l-article__collab-container sup {
    font-size: 10px;
    font-size: 0.625rem;
    line-height: 1;
    padding: 2px 5px 2px 4px; }

.l-article__collab::after {
  content: ','; }

.l-article__collab:last-of-type::after {
  display: none; }

.l-article__divider {
  display: none;
  position: absolute;
  background: url("../img/article-header-divider.svg") no-repeat;
  width: calc(100% + 1px);
  height: 100px;
  bottom: -1px;
  left: -1px; }
  @media (max-width: 47.99em) {
    .l-article__divider {
      height: 50px; } }

/* 'Vruchten van de zee' layout */
.l-article--category .l-article__divider,
.l-article--sea .l-article__divider {
  display: block; }

.l-article--category .l-article__header {
  position: relative;
  background: url("../img/category-background.svg") no-repeat;
  background-size: cover;
  padding-top: 50px;
  padding-bottom: 80px; }
  @media (max-width: 47.99em) {
    .l-article--category .l-article__header {
      padding-bottom: 30px; } }

.l-article--category h1 {
  font-size: 56px;
  font-size: 3.5rem;
  line-height: 1;
  font-family: 'Lato', Calibri, Arial, sans-serif;
  text-transform: none; }
  @media (max-width: 47.99em) {
    .l-article--category h1 {
      font-size: 40px;
      font-size: 2.5rem;
      line-height: 1; } }

.l-article__category-label {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1;
  font-family: 'Fjalla One', Calibri, Arial, sans-serif;
  display: inline-block;
  padding: 5px 10px;
  color: #fff;
  text-transform: uppercase;
  float: right;
  margin-bottom: 20px; }
  .l-article--category1 .l-article__category-label {
    background-color: #75AA99; }
  .l-article--category2 .l-article__category-label {
    background-color: #B07269; }
  .l-article--category3 .l-article__category-label {
    background-color: #63624F; }
  .l-article--category4 .l-article__category-label {
    background-color: #527083; }
  .l-article--category5 .l-article__category-label {
    background-color: #527083; }
  .l-article--category6 .l-article__category-label {
    background-color: #7698BD; }
  .l-article--category7 .l-article__category-label {
    background-color: #D3CC54; }

/* 'In de branding' layout */
.l-article--rock {
  margin: 0;
  background: url("../img/sand-pattern.jpg") repeat;
  padding: 50px 0; }
  .l-article--rock h1 {
    margin-bottom: 50px;
    text-align: center;
    color: #b4a030; }

/* 'Kustkiekje' layout */
.l-article__fullscreen {
  height: 80vh;
  margin-bottom: 40px; }

.l-back-cover {
  padding-top: 100px;
  padding-bottom: 200px;
  background-color: #008aab;
  color: #fff; }
  @media (max-width: 47.99em) {
    .l-back-cover {
      padding-top: 50px;
      padding-bottom: 70px; } }
  .l-back-cover h2 {
    font-size: 50px;
    font-size: 3.125rem;
    line-height: 1.4;
    color: #fff;
    margin-bottom: 20px; }
    @media (max-width: 47.99em) {
      .l-back-cover h2 {
        font-size: 30px;
        font-size: 1.875rem;
        line-height: 1.4; } }
  .l-back-cover a {
    color: #fff;
    text-decoration: underline; }

.l-back-cover__info {
  border: 2px solid #fff;
  padding: 10px;
  font-style: italic; }

.l-edito {
  padding-top: 50px; }
  @media (max-width: 47.99em) {
    .l-edito {
      padding-top: 25px; } }

.l-edito__title {
  margin-bottom: 30px; }
  @media (min-width: 48em) {
    .l-edito__title {
      font-size: 80px;
      font-size: 5rem;
      line-height: 1.2; } }

@media (min-width: 48em) {
  .l-edito__container {
    border-right: 1px solid #1a1a18;
    padding-right: 20px; } }

@media (min-width: 48em) {
  .l-edito__summary {
    margin-left: -40px; } }

@media (min-width: 48em) {
  .l-edito__summary .c-masonry {
    padding-left: 20px; } }

.l-edito__summary__title {
  font-size: 30px;
  font-size: 1.875rem;
  line-height: 1;
  margin-bottom: 10px;
  margin-top: 40px; }
  @media (min-width: 48em) {
    .l-edito__summary__title {
      font-size: 40px;
      font-size: 2.5rem;
      line-height: 1;
      padding-left: 20px;
      margin-bottom: 35px;
      margin-top: 0; } }

@media (min-width: 48em) {
  .l-grid {
    margin-left: -40px; } }

.l-grid__item {
  width: 100%;
  float: left;
  box-sizing: border-box; }
  @media (min-width: 48em) {
    .l-grid__item {
      padding-left: 40px; } }

/*------------------------------------*    COMPONENTS
\*------------------------------------*/
.c-back-to-top {
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 1;
  position: fixed;
  right: 20px;
  bottom: 20px;
  background-color: #1a1a18;
  font-weight: 700;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  text-align: center;
  width: 50px;
  height: 50px;
  z-index: 9999;
  opacity: 0;
  cursor: pointer;
  transition: 0.5s opacity, 0.4s background-color; }
  .c-back-to-top.faded-in {
    opacity: 1; }
  .c-back-to-top:hover, .c-back-to-top:focus {
    background-color: #353530; }
  .c-back-to-top img {
    height: 100%;
    padding: 10px 0; }

.c-carousel {
  height: 400px;
  margin-bottom: 50px; }

.c-carousel__item {
  position: relative; }

.c-carousel__item__title {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.4;
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 5px 10px;
  color: #fff;
  display: inline-block;
  font-style: italic;
  background-color: rgba(0, 0, 0, 0.7); }

.c-colofon {
  padding-top: 50px;
  padding-bottom: 50px;
  background-color: #fff; }
  @media (max-width: 47.99em) {
    .c-colofon {
      padding-bottom: 100px; } }
  .c-colofon p {
    font-size: 15px;
    font-size: 0.9375rem;
    line-height: 1.6;
    margin-bottom: 10px; }

.c-colofon__title {
  color: #008aab;
  font-weight: normal; }

@media (min-width: 48em) {
  .c-colofon__content--columns {
    -webkit-columns: 3;
            columns: 3;
    -webkit-column-gap: 50px;
            column-gap: 50px;
    -webkit-column-rule: 1px outset #cccccc;
            column-rule: 1px outset #cccccc; } }

.c-colofon__link {
  font-size: 45px;
  font-size: 2.8125rem;
  line-height: 1.06667;
  color: #008aab;
  display: block;
  margin-top: 50px;
  text-decoration: none; }

.c-colofon__sponsors {
  margin-top: 20px; }
  .c-colofon__sponsors img {
    height: 35px;
    margin-right: 20px;
    margin-bottom: 10px; }

.c-cover {
  width: 100%;
  height: 100%;
  min-height: 770px;
  padding: 0;
  margin: 0 auto;
  position: relative; }
  @media (max-width: 47.99em) {
    .c-cover {
      min-height: 650px; } }

.c-cover__header {
  position: relative;
  background-color: #fff;
  padding: 40px;
  text-align: center; }
  @media (max-width: 47.99em) {
    .c-cover__header {
      text-align: right;
      padding: 20px; } }
  .c-cover__header p {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.4;
    margin-bottom: 10px; }
    @media (max-width: 47.99em) {
      .c-cover__header p {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 1.4; } }
  .c-cover__header h1 {
    color: #eac290; }
  .c-cover__header h2 {
    color: #1a1a18;
    text-transform: uppercase; }

.c-cover__number {
  font-family: 'Khula', Calibri, Arial, sans-serif;
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  bottom: -80px;
  border-radius: 100%;
  background-color: #b4a030;
  color: #fff;
  text-align: center;
  padding: 35px 10px;
  width: 129px; }
  @media (max-width: 47.99em) {
    .c-cover__number {
      left: auto;
      right: 20px;
      -webkit-transform: none;
              transform: none;
      padding: 34px 10px;
      width: 110px; } }
  .c-cover__number span {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1;
    display: block;
    text-transform: uppercase;
    min-width: 60px; }
    @media (max-width: 47.99em) {
      .c-cover__number span {
        font-size: 12px;
        font-size: 0.75rem;
        line-height: 1;
        min-width: 50px; } }
    .c-cover__number span:first-child {
      font-size: 45px;
      font-size: 2.8125rem;
      line-height: 1;
      font-weight: 700; }
      @media (max-width: 47.99em) {
        .c-cover__number span:first-child {
          font-size: 30px;
          font-size: 1.875rem;
          line-height: 1; } }

.c-cover__articles {
  position: absolute;
  right: 30px;
  margin-top: 90px;
  padding: 20px;
  max-width: 500px; }
  @media (max-width: 47.99em) {
    .c-cover__articles {
      max-width: 100%;
      right: 0;
      margin-top: 80px; } }
  .c-cover__articles p {
    font-size: 22px;
    font-size: 1.375rem;
    line-height: 1.4;
    font-weight: 400;
    display: inline-block;
    background-color: rgba(255, 255, 255, 0.8);
    margin: 0;
    padding: 5px 10px 0; }
    @media (max-width: 47.99em) {
      .c-cover__articles p {
        font-size: 16px;
        font-size: 1rem;
        line-height: 1.4; } }
  .c-cover__articles a {
    color: #1a1a18;
    margin-bottom: 30px;
    display: inline;
    text-decoration: none; }
    .c-cover__articles a:hover {
      text-decoration: none; }

.c-cover__top-article {
  position: absolute;
  left: 100px;
  bottom: 30px;
  padding: 20px;
  max-width: 640px; }
  @media (max-width: 47.99em) {
    .c-cover__top-article {
      max-width: 100%;
      left: 0;
      bottom: 0; } }
  .c-cover__top-article p {
    font-size: 28px;
    font-size: 1.75rem;
    line-height: 1.4;
    font-weight: 400;
    display: inline-block;
    background-color: #000;
    margin: 0;
    padding: 5px 10px 0; }
    @media (max-width: 47.99em) {
      .c-cover__top-article p {
        font-size: 20px;
        font-size: 1.25rem;
        line-height: 1.4; } }
  .c-cover__top-article a {
    color: #fff;
    margin-bottom: 30px;
    display: inline; }
    .c-cover__top-article a:hover {
      text-decoration: none; }

.c-img-block {
  display: block;
  width: 100%;
  margin-bottom: 10px; }

.c-img-block__note {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.4;
  display: block;
  margin-bottom: 20px;
  font-style: italic; }
  .c-img-block__note p {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.4; }

.c-masonry {
  opacity: 0;
  transition: 0.5s opacity; }
  .c-masonry.active {
    opacity: 1; }

.c-masonry__item {
  margin-bottom: 10px;
  width: calc(50% - 15px);
  overflow: hidden;
  position: relative; }
  .c-masonry__item img {
    width: 100%;
    transition: 0.3s all; }
  .c-masonry__item a img:hover {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); }

.c-masonry__item__title {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.4;
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 5px 10px;
  color: #fff;
  display: inline-block;
  font-style: italic;
  background-color: rgba(0, 0, 0, 0.7); }

.c-masonry__item--big {
  margin-bottom: 40px;
  width: calc(50% - 20px); }
  @media (max-width: 47.99em) {
    .c-masonry__item--big {
      width: 100%; } }

.c-paragraph-card {
  font-weight: 300;
  background-color: #fff;
  padding: 15px;
  box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.2); }
  .c-paragraph-card p {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.6; }
    @media (max-width: 47.99em) {
      .c-paragraph-card p {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 1.6; } }
  .c-paragraph-card img {
    margin-bottom: 15px; }

.c-paragraph-card__title {
  font-size: 32px;
  font-size: 2rem;
  line-height: 1;
  color: #006582;
  text-transform: uppercase;
  font-family: 'Fjalla One', Calibri, Arial, sans-serif;
  margin-top: 0;
  margin-bottom: 15px; }
  @media (max-width: 47.99em) {
    .c-paragraph-card__title {
      font-size: 26px;
      font-size: 1.625rem;
      line-height: 1; } }

.c-paragraph-card__authors {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  padding-top: 15px; }

.c-paragraph-card__author::after {
  content: '&'; }

.c-paragraph-card__author:last-of-type::after {
  display: none; }

.c-pdf-download {
  font-size: 13px;
  font-size: 0.8125rem;
  position: fixed;
  left: 20px;
  bottom: 20px;
  background-color: #1a1a18;
  font-weight: 700;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  text-align: center;
  width: 50px;
  height: 50px;
  z-index: 9999;
  cursor: pointer;
  transition: 0.4s all; }
  .c-pdf-download:hover, .c-pdf-download:focus {
    background-color: #353530; }
  .c-pdf-download img {
    height: 100%;
    padding: 10px 0; }

.open .c-pdf-download {
  left: 320px; }

.c-sea-header {
  position: relative;
  background-color: #008aab;
  padding: 50px 0;
  min-height: 360px; }
  .c-sea-header p {
    font-size: 22px;
    font-size: 1.375rem;
    line-height: 1.4;
    display: inline-block;
    color: #fff;
    vertical-align: middle;
    margin: 10px 0; }
    @media (max-width: 47.99em) {
      .c-sea-header p {
        font-size: 18px;
        font-size: 1.125rem;
        line-height: 1.4; } }

.c-sea-header__title {
  font-size: 100px;
  font-size: 6.25rem;
  line-height: 1;
  color: #fff;
  text-transform: uppercase;
  font-family: 'Fjalla One', Calibri, Arial, sans-serif;
  font-weight: 300; }
  @media (max-width: 47.99em) {
    .c-sea-header__title {
      font-size: 45px;
      font-size: 2.8125rem;
      line-height: 1; } }

.c-sea-header__author {
  font-style: italic; }
  .c-sea-header__author::after {
    content: ','; }
  .c-sea-header__author:last-child::after {
    display: none; }

.l-article--sea + .l-article--sea .c-sea-header {
  display: none; }

.c-summary {
  width: 300px;
  height: 100%;
  background-color: #b4a030;
  display: inline-block;
  position: fixed;
  top: 0;
  left: -100px;
  z-index: -100;
  padding: 20px 0;
  opacity: 1;
  overflow: auto;
  box-shadow: inset 0 0 30px 0 rgba(0, 0, 0, 0.3);
  transition: 0.4s all; }
  .c-summary.open {
    left: 0; }
  .c-summary ul {
    margin: 0;
    padding: 0; }
  .c-summary li {
    list-style: none;
    border-bottom: 1px solid #ab982e; }
  .c-summary a {
    font-size: 20px;
    font-size: 1.25rem;
    line-height: 1.6;
    color: #fff;
    display: block;
    padding: 10px 20px;
    text-decoration: none;
    transition: 0.3s all; }
    .c-summary a:hover, .c-summary a.active {
      background-color: #ceba49;
      text-decoration: none; }
    @media (max-width: 47.99em) {
      .c-summary a {
        font-size: 18px;
        font-size: 1.125rem;
        line-height: 1.6; } }

.c-summary-inline {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #1a1a18; }
  @media (min-width: 48em) {
    .c-summary-inline {
      padding-left: 20px; } }
  .c-summary-inline ul {
    margin: 0; }
  .c-summary-inline li {
    margin: 0 0 10px 0;
    padding: 0;
    list-style: none;
    border-bottom: 1px dotted rgba(26, 26, 24, 0.2); }
  .c-summary-inline a {
    text-decoration: none;
    color: #1a1a18;
    font-weight: 300;
    transition: 0.3s all; }
    .c-summary-inline a:hover {
      color: #b4a030; }

.c-summary-toggle {
  font-size: 13px;
  font-size: 0.8125rem;
  position: fixed;
  left: 20px;
  top: 20px;
  background-color: #1a1a18;
  font-weight: 700;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  text-align: center;
  width: 50px;
  height: 50px;
  z-index: 9999;
  cursor: pointer;
  transition: 0.4s all; }
  .c-summary-toggle:hover, .c-summary-toggle:focus {
    background-color: #353530; }
  .c-summary-toggle.open {
    left: 320px;
    background-color: #b4a030; }
    .c-summary-toggle.open:hover, .c-summary-toggle.open:focus {
      background-color: #ceba49; }

.c-summary-toggle__icon {
  width: 30px;
  height: 20px;
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); }
  .c-summary-toggle__icon span {
    display: block;
    position: absolute;
    height: 3px;
    width: 100%;
    background-color: #fff;
    opacity: 1;
    left: 0;
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
    transition: 0.25s ease-in-out; }
    .c-summary-toggle__icon span:nth-child(1) {
      top: 0; }
    .c-summary-toggle__icon span:nth-child(2), .c-summary-toggle__icon span:nth-child(3) {
      top: 8px; }
    .c-summary-toggle__icon span:nth-child(4) {
      top: 16px; }

.c-summary-toggle__icon.open span:nth-child(1) {
  top: 4px;
  width: 0;
  left: 50%; }

.c-summary-toggle__icon.open span:nth-child(2) {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg); }

.c-summary-toggle__icon.open span:nth-child(3) {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg); }

.c-summary-toggle__icon.open span:nth-child(4) {
  top: 4px;
  width: 0;
  left: 50%; }

.c-tooltip {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #fff;
  background: #1a1a18;
  text-align: center;
  position: absolute;
  z-index: 100;
  padding: 10px;
  max-width: 340px; }
  .c-tooltip::after {
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid #1a1a18;
    content: '';
    position: absolute;
    left: 50%;
    bottom: -10px;
    margin-left: -10px; }
  .c-tooltip.top::after {
    border-top-color: transparent;
    border-bottom: 10px solid #1a1a18;
    top: -20px;
    bottom: auto; }
  .c-tooltip.left::after {
    left: 10px;
    margin: 0; }
  .c-tooltip.right::after {
    right: 10px;
    left: auto;
    margin: 0; }

/*------------------------------------*    DRUPAL CORE ELEMENTS
\*------------------------------------*/

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiLCJzdHlsZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy9nZW5lcmljL19nZW5lcmljLmJveC1zaXppbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy9nZW5lcmljL19nZW5lcmljLm5vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2dlbmVyaWMvX2dlbmVyaWMucmVzZXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy9nZW5lcmljL19nZW5lcmljLnNoYXJlZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL3Rvb2xzL190b29scy5yZW0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy9zZXR0aW5ncy9fc2V0dGluZ3MuY29yZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2VsZW1lbnRzL19lbGVtZW50cy5wYWdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3MvZWxlbWVudHMvX2VsZW1lbnRzLmhlYWRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3MvdG9vbHMvX3Rvb2xzLmZvbnQtc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2VsZW1lbnRzL19lbGVtZW50cy5pbWFnZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy9lbGVtZW50cy9fZWxlbWVudHMudGFibGVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3MvdXRpbGl0aWVzL191dGlsaXRpZXMuY2xlYXJmaXguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy90b29scy9fdG9vbHMuY2xlYXJmaXguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy91dGlsaXRpZXMvX3V0aWxpdGllcy53aWR0aHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLW1xL19tcS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL3V0aWxpdGllcy9fdXRpbGl0aWVzLnByaW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3MvdXRpbGl0aWVzL191dGlsaXRpZXMuaGlkZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL3Rvb2xzL190b29scy5oaWRkZW4uc2NzcyIsInV0aWxpdGllcy9faGVscGVycy5zY3NzIiwidXRpbGl0aWVzL191dGlsaXRpZXMud2lkdGhzLnNjc3MiLCJiYXNlL19iYXNlLnNjc3MiLCJzZXR0aW5ncy9fc2V0dGluZ3MuY29sb3JzLnNjc3MiLCJ1dGlsaXRpZXMvX2Z1bmN0aW9ucy5zY3NzIiwibGF5b3V0L19sLWFydGljbGUuc2NzcyIsImxheW91dC9fbC1iYWNrLWNvdmVyLnNjc3MiLCJsYXlvdXQvX2wtZWRpdG8uc2NzcyIsImxheW91dC9fbC1ncmlkLnNjc3MiLCJjb21wb25lbnRzL19jLWJhY2stdG8tdG9wLnNjc3MiLCJjb21wb25lbnRzL19jLWNhcm91c2VsLnNjc3MiLCJjb21wb25lbnRzL19jLWNvbG9mb24uc2NzcyIsImNvbXBvbmVudHMvX2MtY292ZXIuc2NzcyIsImNvbXBvbmVudHMvX2MtaW1nLWJsb2NrLnNjc3MiLCJjb21wb25lbnRzL19jLW1hc29ucnkuc2NzcyIsImNvbXBvbmVudHMvX2MtcGFyYWdyYXBoLWNhcmQuc2NzcyIsImNvbXBvbmVudHMvX2MtcGRmLWRvd25sb2FkLnNjc3MiLCJjb21wb25lbnRzL19jLXNlYS1oZWFkZXIuc2NzcyIsImNvbXBvbmVudHMvX2Mtc3VtbWFyeS5zY3NzIiwiY29tcG9uZW50cy9fYy1zdW1tYXJ5LWlubGluZS5zY3NzIiwiY29tcG9uZW50cy9fYy1zdW1tYXJ5LXRvZ2dsZS5zY3NzIiwiY29tcG9uZW50cy9fYy10b29sdGlwLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOztn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Q3JEO0VBRkQ7SUFDRSxzQkFBb0QsRUFDckQ7RUFGRDtJQUNFLDRCQUFvRCxFQUNyRDtFQUZEO0lBQ0UsNEJBQW9ELEVBQ3JEO0VBRkQ7SUFDRSxzQkFBb0QsRUFDckQ7RUFGRDtJQUNFLDRCQUFvRCxFQUNyRDtFQUZEO0lBQ0UsNEJBQW9ELEVBQ3JEO0VBRkQ7SUFDRSx1QkFBb0QsRUFDckQsRUFBQTs7QU1oRlA7RU44RU07SUFDRSwyQkFBb0QsRUFDckQ7RUFGRDtJQUNFLDRCQUFvRCxFQUNyRDtFQUZEO0lBQ0Usc0JBQW9ELEVBQ3JEO0VBRkQ7SUFDRSw0QkFBb0QsRUFDckQ7RUFGRDtJQUNFLDRCQUFvRCxFQUNyRDtFQUZEO0lBQ0Usc0JBQW9ELEVBQ3JEO0VBRkQ7SUFDRSw0QkFBb0QsRUFDckQ7RUFGRDtJQUNFLDRCQUFvRCxFQUNyRDtFQUZEO0lBQ0Usc0JBQW9ELEVBQ3JEO0VBRkQ7SUFDRSw0QkFBb0QsRUFDckQ7RUFGRDtJQUNFLDRCQUFvRCxFQUNyRDtFQUZEO0lBQ0UsdUJBQW9ELEVBQ3JELEVBQUE7O0FNNUVQO0VOMEVNO0lBQ0UsMkJBQW9ELEVBQ3JEO0VBRkQ7SUFDRSw0QkFBb0QsRUFDckQ7RUFGRDtJQUNFLHNCQUFvRCxFQUNyRDtFQUZEO0lBQ0UsNEJBQW9ELEVBQ3JEO0VBRkQ7SUFDRSw0QkFBb0QsRUFDckQ7RUFGRDtJQUNFLHNCQUFvRCxFQUNyRDtFQUZEO0lBQ0UsNEJBQW9ELEVBQ3JEO0VBRkQ7SUFDRSw0QkFBb0QsRUFDckQ7RUFGRDtJQUNFLHNCQUFvRCxFQUNyRDtFQUZEO0lBQ0UsNEJBQW9ELEVBQ3JEO0VBRkQ7SUFDRSw0QkFBb0QsRUFDckQ7RUFGRDtJQUNFLHVCQUFvRCxFQUNyRCxFQUFBOztBTXhFUDtFTnNFTTtJQUNFLDJCQUFvRCxFQUNyRDtFQUZEO0lBQ0UsNEJBQW9ELEVBQ3JEO0VBRkQ7SUFDRSxzQkFBb0QsRUFDckQ7RUFGRDtJQUNFLDRCQUFvRCxFQUNyRDtFQUZEO0lBQ0UsNEJBQW9ELEVBQ3JEO0VBRkQ7SUFDRSxzQkFBb0QsRUFDckQ7RUFGRDtJ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LFVBQVMsRUFDVjs7QUFJTDtFQUNFLFNBQVE7RUFDUixTQUFRO0VBQ1IsVUFBUyxFQUNWOztBQUVEO0VBQ0UsaUNBQXdCO1VBQXhCLHlCQUF3QixFQUN6Qjs7QUFFRDtFQUNFLGtDQUF5QjtVQUF6QiwwQkFBeUIsRUFDMUI7O0FBRUQ7RUFDRSxTQUFRO0VBQ1IsU0FBUTtFQUNSLFVBQVMsRUFDVjs7QUNyRkQ7RS9Cd0JFLGdCK0J2QjZCO0UvQndCN0Isb0JBQXdEO0VBU3BELGlCK0JqQzhCO0VBQ2xDLFlsQkdnQjtFa0JGaEIsb0JsQklrQjtFa0JIbEIsbUJBQWtCO0VBQ2xCLG1CQUFrQjtFQUNsQixhQUFZO0VBQ1osY0FBYTtFQUNiLGlCQUFnQixFQWdDakI7RUF4Q0Q7SUFXSSxTQUFRO0lBQ1IsVUFBUztJQUNULG9DQUFtQztJQUNuQyxxQ0FBb0M7SUFDcEMsK0JsQlJnQjtJa0JTaEIsWUFBVztJQUNYLG1CQUFrQjtJQUNsQixVQUFTO0lBQ1QsY0FBYTtJQUNiLG1CQUFrQixFQUNuQjtFQXJCSDtJQXdCSSw4QkFBNkI7SUFDN0Isa0NsQmxCZ0I7SWtCbUJoQixXQUFVO0lBQ1YsYUFBWSxFQUNiO0VBNUJIO0lBK0JJLFdBQVU7SUFDVixVQUFTLEVBQ1Y7RUFqQ0g7SUFvQ0ksWUFBVztJQUNYLFdBQVU7SUFDVixVQUFTLEVBQ1Y7O0F4Q3dESDt3Q0FFd0MiLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJTlVJVENTU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qISpcbiAqIGludWl0Y3NzLCBieSBAY3Nzd2l6YXJkcnkgbW9kaWZpZWQgYnkgRGF2ZWxvb3NlXG4gKlxuICogZ2l0aHViLmNvbS9pbnVpdGNzcyB8IGludWl0Y3NzLmNvbVxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgU0VUVElOR1NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgVE9PTFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgR0VORVJJQ1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjQk9YLVNJWklOR1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogTW9yZSBzZW5zaWJsZSBkZWZhdWx0IGJveC1zaXppbmc6XG4gKiBjc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2VcbiAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbi8qISBub3JtYWxpemUuY3NzIHY1LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMiAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi8gfVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5maWdjYXB0aW9uLFxuZmlndXJlLFxubWFpbiB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDsgfVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqLyB9XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovIH1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMsXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKiBTY3JpcHRpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEhpZGRlblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNSRVNFVFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQSB2ZXJ5IHNpbXBsZSByZXNldCB0aGF0IHNpdHMgb24gdG9wIG9mIE5vcm1hbGl6ZS5jc3MuXG4gKi9cbmJvZHksXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxuYmxvY2txdW90ZSwgcCwgcHJlLFxuZGwsIGRkLCBvbCwgdWwsXG5maWd1cmUsXG5ocixcbmZpZWxkc2V0LCBsZWdlbmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBSZW1vdmUgdHJhaWxpbmcgbWFyZ2lucyBmcm9tIG5lc3RlZCBsaXN0cy5cbiAqL1xubGkgPiBvbCxcbmxpID4gdWwge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdGFibGUgc3BhY2luZy5cbiAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4vKipcbiAqIDEuIFJlc2V0IENocm9tZSBhbmQgRmlyZWZveCBiZWhhdmlvdXIgd2hpY2ggc2V0cyBhIGBtaW4td2lkdGg6IG1pbi1jb250ZW50O2BcbiAqICAgIG9uIGZpZWxkc2V0cy5cbiAqL1xuZmllbGRzZXQge1xuICBtaW4td2lkdGg6IDA7XG4gIC8qIFsxXSAqL1xuICBib3JkZXI6IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNTSEFSRURcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFNoYXJlZCBkZWNsYXJhdGlvbnMgZm9yIGNlcnRhaW4gZWxlbWVudHMuXG4gKi9cbi8qKlxuICogQWx3YXlzIGRlY2xhcmUgbWFyZ2lucyBpbiB0aGUgc2FtZSBkaXJlY3Rpb246XG4gKiBjc3N3aXphcmRyeS5jb20vMjAxMi8wNi9zaW5nbGUtZGlyZWN0aW9uLW1hcmdpbi1kZWNsYXJhdGlvbnNcbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbGlzdC1jb21tYS1uZXdsaW5lLWFmdGVyICovXG5hZGRyZXNzLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbmJsb2NrcXVvdGUsIHAsIHByZSxcbmRsLCBvbCwgdWwsXG5maWd1cmUsXG5ocixcbnRhYmxlLFxuZmllbGRzZXQge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cblxuLyoqXG4gKiBDb25zaXN0ZW50IGluZGVudGF0aW9uIGZvciBsaXN0cy5cbiAqL1xuZGQsIG9sLCB1bCB7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICBtYXJnaW4tbGVmdDogMS41cmVtOyB9XG5cbi8qIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbGlzdC1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgRUxFTUVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1BBR0VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFNpbXBsZSBwYWdlLWxldmVsIHNldHVwLlxuICpcbiAqIDEuIFNldCB0aGUgZGVmYXVsdCBgZm9udC1zaXplYCBhbmQgYGxpbmUtaGVpZ2h0YCBmb3IgdGhlIGVudGlyZSBwcm9qZWN0LFxuICogICAgc291cmNlZCBmcm9tIG91ciBkZWZhdWx0IHZhcmlhYmxlcy4gVGhlIGBmb250LXNpemVgIGlzIGNhbGN1bGF0ZWQgdG8gZXhpc3RcbiAqICAgIGluIGVtcywgdGhlIGBsaW5lLWhlaWdodGAgaXMgY2FsY3VsYXRlZCB0byBleGlzdCB1bml0bGVzc2x5LlxuICogMi4gRm9yY2Ugc2Nyb2xsYmFycyB0byBhbHdheXMgYmUgdmlzaWJsZSB0byBwcmV2ZW50IGF3a3dhcmQg4oCYanVtcHPigJkgd2hlblxuICogICAgbmF2aWdhdGluZyBiZXR3ZWVuIHBhZ2VzIHRoYXQgZG8vZG8gbm90IGhhdmUgZW5vdWdoIGNvbnRlbnQgdG8gcHJvZHVjZVxuICogICAgc2Nyb2xsYmFycyBuYXR1cmFsbHkuXG4gKiAzLiBFbnN1cmUgdGhlIHBhZ2UgYWx3YXlzIGZpbGxzIGF0IGxlYXN0IHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydC5cbiAqL1xuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiBbMV0gKi9cbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgLyogWzFdICovXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgLyogWzJdICovXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIC8qIFszXSAqLyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjSEVBRElOR1NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFNpbXBsZSBkZWZhdWx0IHN0eWxlcyBmb3IgaGVhZGluZ3MgMSB0aHJvdWdoIDYuIEFueXRoaW5nIG1vcmUgb3BpbmlvbmF0ZWRcbiAqIHRoYW4gc2ltcGxlIGZvbnQtc2l6ZSBjaGFuZ2VzIHNob3VsZCBsaWtlbHkgYmUgYXBwbGllZCB2aWEgY2xhc3NlcyAoc2VlOlxuICogaHR0cDovL2Nzc3dpemFyZHJ5LmNvbS8yMDE2LzAyL21hbmFnaW5nLXR5cG9ncmFwaHktb24tbGFyZ2UtYXBwcy8pLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgZm9udC1zaXplOiAyLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS43MTQyOTsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbmg0IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuaDUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzOyB9XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNJTUFHRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIEZsdWlkIGltYWdlcyBmb3IgcmVzcG9uc2l2ZSBwdXJwb3Nlcy5cbiAqIDIuIE9mZnNldCBgYWx0YCB0ZXh0IGZyb20gc3Vycm91bmRpbmcgY29weS5cbiAqIDMuIFNldHRpbmcgYHZlcnRpY2FsLWFsaWduYCByZW1vdmVzIHRoZSB3aGl0ZXNwYWNlIHRoYXQgYXBwZWFycyB1bmRlciBgaW1nYFxuICogICAgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBkcm9wcGVkIGludG8gYSBwYWdlIGFzLWlzLiBTYWZlciBhbHRlcm5hdGl2ZSB0b1xuICogICAgdXNpbmcgYGRpc3BsYXk6IGJsb2NrO2AuXG4gKi9cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogWzFdICovXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgLyogWzJdICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIFszXSAqLyB9XG5cbi8qKlxuICogMS4gSWYgYSBgd2lkdGhgIGFuZC9vciBgaGVpZ2h0YCBhdHRyaWJ1dGUgaGF2ZSBiZWVuIGV4cGxpY2l0bHkgZGVmaW5lZCwgbGV04oCZc1xuICogICAgbm90IG1ha2UgdGhlIGltYWdlIGZsdWlkLlxuICovXG5pbWdbd2lkdGhdLFxuaW1nW2hlaWdodF0ge1xuICAvKiBbMV0gKi9cbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjVEFCTEVTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBFbnN1cmUgdGFibGVzIGZpbGwgdXAgYXMgbXVjaCBzcGFjZSBhcyBwb3NzaWJsZS5cbiAqL1xudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgLyogWzFdICovIH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgIFVUSUxJVElFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjQ0xFQVJGSVhcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEF0dGFjaCBvdXIgY2xlYXJmaXggbWl4aW4gdG8gYSB1dGlsaXR5IGNsYXNzLlxuICovXG4udS1jbGVhcmZpeDphZnRlciwgLmwtYXJ0aWNsZV9fY29udGVudDphZnRlciwgLmwtZ3JpZDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCIgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgY2xlYXI6IGJvdGggIWltcG9ydGFudDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1dJRFRIU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogaW51aXRjc3MgZ2VuZXJhdGVzIGEgc2VyaWVzIG9mIHV0aWxpdHkgY2xhc3NlcyB0aGF0IGdpdmUgYSBmbHVpZCB3aWR0aCB0b1xuICogd2hpY2hldmVyIGVsZW1lbnQgdGhleeKAmXJlIGFwcGxpZWQsIGUuZy46XG4gKlxuICogICA8aW1nIHNyYz1cIlwiIGFsdD1cIlwiIGNsYXNzPVwidS0xLzJcIiAvPlxuICpcbiAqIFRoZXNlIGNsYXNzZXMgYXJlIG1vc3QgY29tbW9ubHkgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIG91ciBsYXlvdXQgc3lzdGVtLFxuICogZS5nLjpcbiAqXG4gKiAgIDxkaXYgY2xhc3M9XCJvLWxheW91dF9faXRlbSAgdS0xLzJcIj5cbiAqXG4gKiBCeSBkZWZhdWx0LCBpbnVpdGNzcyB3aWxsIGFsc28gZ2VuZXJhdGUgcmVzcG9uc2l2ZSB2YXJpYW50cyBvZiBlYWNoIG9mIHRoZXNlXG4gKiBjbGFzc2VzIGJ5IHVzaW5nIHlvdXIgU2FzcyBNUSBjb25maWd1cmF0aW9uLCBlLmcuOlxuICpcbiAqICAgPGRpdiBjbGFzcz1cIm8tbGF5b3V0X19pdGVtICB1LTEvMSAgdS0xLzJAdGFibGV0ICB1LTEvM0BkZXNrdG9wXCI+XG4gKlxuICogT3B0aW9uYWxseSwgaW51aXRjc3MgY2FuIGdlbmVyYXRlIG9mZnNldCBjbGFzc2VzIHdoaWNoIGNhbiBwdXNoIGFuZCBwdWxsXG4gKiBlbGVtZW50cyBsZWZ0IGFuZCByaWdodCBieSBhIHNwZWNpZmllZCBhbW91bnQsIGUuZy46XG4gKlxuICogICA8ZGl2IGNsYXNzPVwiby1sYXlvdXRfX2l0ZW0gIHUtMi8zICB1LXB1bGwtMS8zXCI+XG4gKlxuICogVGhpcyBpcyB1c2VmdWwgZm9yIG1ha2luZyB2ZXJ5IGdyYW51bGFyIGNoYW5nZXMgdG8gdGhlIHJlbmRlcmVkIG9yZGVyIG9mXG4gKiBpdGVtcyBpbiBhIGxheW91dC5cbiAqXG4gKiBOLkIuIFRoaXMgb3B0aW9uIGlzIHR1cm5lZCBvZmYgYnkgZGVmYXVsdC5cbiAqL1xuLyoqXG4gKiBBIHNlcmllcyBvZiB3aWR0aCBoZWxwZXIgY2xhc3NlcyB0aGF0IHlvdSBjYW4gdXNlIHRvIHNpemUgdGhpbmdzIGxpa2UgZ3JpZFxuICogc3lzdGVtcy4gQ2xhc3NlcyB0YWtlIGEgZnJhY3Rpb24tbGlrZSBmb3JtYXQgKGUuZy4gYC51LTIvM2ApLiBVc2UgdGhlc2UgaW5cbiAqIHlvdXIgbWFya3VwOlxuICpcbiAqIDxkaXYgY2xhc3M9XCJ1LTcvMTJcIj5cbiAqXG4gKiBUaGUgZm9sbG93aW5nIHdpbGwgZ2VuZXJhdGUgd2lkdGhzIGhlbHBlciBjbGFzc2VzIGJhc2VkIG9uIHRoZSBmcmFjdGlvbnNcbiAqIGRlZmluZWQgaW4gdGhlIGAkaW51aXQtZnJhY3Rpb25zYCBsaXN0LlxuICovXG4udS0xXFwvMSB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLnUtMVxcLzIge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLnUtMlxcLzIge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi51LTFcXC8zIHtcbiAgd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi51LTJcXC8zIHtcbiAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi51LTNcXC8zIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4udS0xXFwvNCB7XG4gIHdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuXG4udS0yXFwvNCB7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuXG4udS0zXFwvNCB7XG4gIHdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuXG4udS00XFwvNCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLnUtMVxcLzUge1xuICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7IH1cblxuLnUtMlxcLzUge1xuICB3aWR0aDogNDAlICFpbXBvcnRhbnQ7IH1cblxuLnUtM1xcLzUge1xuICB3aWR0aDogNjAlICFpbXBvcnRhbnQ7IH1cblxuLnUtNFxcLzUge1xuICB3aWR0aDogODAlICFpbXBvcnRhbnQ7IH1cblxuLnUtNVxcLzUge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICogSWYgd2XigJlyZSB1c2luZyBTYXNzLU1RLCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGdyaWQgc3lzdGVtKHMpIGZvciBlYWNoIG9mIG91clxuICogZGVmaW5lZCBicmVha3BvaW50cywgYW5kIGdpdmUgdGhlbSBhIFJlc3BvbnNpdmUgU3VmZml4LCBlLmcuOlxuICpcbiAqIDxkaXYgY2xhc3M9XCJ1LTMvMTJAbW9iaWxlXCI+XG4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LTFcXC8xXFxAbW9iaWxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LTFcXC8yXFxAbW9iaWxlIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMlxcLzJcXEBtb2JpbGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMVxcLzNcXEBtb2JpbGUge1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS0yXFwvM1xcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LTNcXC8zXFxAbW9iaWxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LTFcXC80XFxAbW9iaWxlIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMlxcLzRcXEBtb2JpbGUge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAudS0zXFwvNFxcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC51LTRcXC80XFxAbW9iaWxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LTFcXC81XFxAbW9iaWxlIHtcbiAgICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMlxcLzVcXEBtb2JpbGUge1xuICAgIHdpZHRoOiA0MCUgIWltcG9ydGFudDsgfVxuICAudS0zXFwvNVxcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDYwJSAhaW1wb3J0YW50OyB9XG4gIC51LTRcXC81XFxAbW9iaWxlIHtcbiAgICB3aWR0aDogODAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtNVxcLzVcXEBtb2JpbGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAudS0xXFwvMVxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS0xXFwvMlxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC51LTJcXC8yXFxAdGFibGV0IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LTFcXC8zXFxAdGFibGV0IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMlxcLzNcXEB0YWJsZXQge1xuICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS0zXFwvM1xcQHRhYmxldCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS0xXFwvNFxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC51LTJcXC80XFxAdGFibGV0IHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtM1xcLzRcXEB0YWJsZXQge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAudS00XFwvNFxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS0xXFwvNVxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50OyB9XG4gIC51LTJcXC81XFxAdGFibGV0IHtcbiAgICB3aWR0aDogNDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtM1xcLzVcXEB0YWJsZXQge1xuICAgIHdpZHRoOiA2MCUgIWltcG9ydGFudDsgfVxuICAudS00XFwvNVxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDgwJSAhaW1wb3J0YW50OyB9XG4gIC51LTVcXC81XFxAdGFibGV0IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnUtMVxcLzFcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LTFcXC8yXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC51LTJcXC8yXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAudS0xXFwvM1xcQGRlc2t0b3Age1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS0yXFwvM1xcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS0zXFwvM1xcQGRlc2t0b3Age1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMVxcLzRcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMlxcLzRcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtM1xcLzRcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtNFxcLzRcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC51LTFcXC81XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50OyB9XG4gIC51LTJcXC81XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDQwJSAhaW1wb3J0YW50OyB9XG4gIC51LTNcXC81XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDYwJSAhaW1wb3J0YW50OyB9XG4gIC51LTRcXC81XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDgwJSAhaW1wb3J0YW50OyB9XG4gIC51LTVcXC81XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjUFJJTlRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFZlcnkgY3J1ZGUsIHJlc2V0LWxpa2Ugc3R5bGVzIHRha2VuIGZyb20gdGhlIEhUTUw1IEJvaWxlcnBsYXRlOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi81LjMuMC9kaXN0L2RvYy9jc3MubWQjcHJpbnQtc3R5bGVzXG4gKiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9kaXN0L2Nzcy9tYWluLmNzcyNMMjA1LUwyODJcbiAqL1xuQG1lZGlhIHByaW50IHtcbiAgLyoqXG4gICAqIDEuIEJsYWNrIHByaW50cyBmYXN0ZXI6IGh0dHA6Ly93d3cuc2FuYmVpamkuY29tL2FyY2hpdmVzLzk1M1xuICAgKi9cbiAgKixcbiAgKjpiZWZvcmUsXG4gICo6YWZ0ZXIsXG4gICo6Zmlyc3QtbGV0dGVyLFxuICAqOmZpcnN0LWxpbmUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICAvKiBbMV0gKi9cbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgLyoqXG4gICAqIERvbid0IHNob3cgbGlua3MgdGhhdCBhcmUgZnJhZ21lbnQgaWRlbnRpZmllcnMsIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YFxuICAgKiBwc2V1ZG8gcHJvdG9jb2wuXG4gICAqL1xuICBhW2hyZWZePVwiI1wiXTphZnRlcixcbiAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgLyoqXG4gICAqIFByaW50aW5nIFRhYmxlczogaHR0cDovL2Nzcy1kaXNjdXNzLmluY3V0aW8uY29tL3dpa2kvUHJpbnRpbmdfVGFibGVzXG4gICAqL1xuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7IH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjSElERVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICovXG4udS1oaWRkZW4tdmlzdWFsbHkge1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLlxuICovXG4udS1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnUtaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMTAyNHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAyMHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjV0lEVEhTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBIHNlcmllcyBvZiB3aWR0aCBoZWxwZXIgY2xhc3NlcyB0aGF0IHlvdSBjYW4gdXNlIHRvIHNpemUgdGhpbmdzIGxpa2UgZ3JpZFxuICogc3lzdGVtcy4gQ2xhc3NlcyBjYW4gdGFrZSBhIGZyYWN0aW9uLWxpa2UgZm9ybWF0IChlLmcuIGAudS0yLzNgKSBvciBhIHNwb2tlbi1cbiAqIHdvcmQgZm9ybWF0IChlLmcuIGAudS0yLW9mLTNgKS4gVXNlIHRoZXNlIGluIHlvdXIgbWFya3VwOlxuICpcbiAqIDxkaXYgY2xhc3M9XCJ1LTcvMTJcIj5cbiAqXG4gKiBUaGUgZm9sbG93aW5nIHdpbGwgZ2VuZXJhdGUgYSAxMiBhbmQgYSAxNiBjb2x1bW4gZ3JpZCBzeXN0ZW0uXG4gKi9cbi51LTFcXC8xMiB7XG4gIHdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi51LTJcXC8xMiB7XG4gIHdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4udS0zXFwvMTIge1xuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cblxuLnUtNFxcLzEyIHtcbiAgd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi51LTVcXC8xMiB7XG4gIHdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4udS02XFwvMTIge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLnUtN1xcLzEyIHtcbiAgd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi51LThcXC8xMiB7XG4gIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4udS05XFwvMTIge1xuICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cblxuLnUtMTBcXC8xMiB7XG4gIHdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuXG4udS0xMVxcLzEyIHtcbiAgd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi51LTEyXFwvMTIge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51LTFcXC8xMlxcQHBhbG0ge1xuICAgIHdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC51LTJcXC8xMlxcQHBhbG0ge1xuICAgIHdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS0zXFwvMTJcXEBwYWxtIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtNFxcLzEyXFxAcGFsbSB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC51LTVcXC8xMlxcQHBhbG0ge1xuICAgIHdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS02XFwvMTJcXEBwYWxtIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtN1xcLzEyXFxAcGFsbSB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC51LThcXC8xMlxcQHBhbG0ge1xuICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS05XFwvMTJcXEBwYWxtIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMTBcXC8xMlxcQHBhbG0ge1xuICAgIHdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS0xMVxcLzEyXFxAcGFsbSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LTEyXFwvMTJcXEBwYWxtIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC51LTFcXC8xMlxcQHBvcnRhYmxlIHtcbiAgICB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS0yXFwvMTJcXEBwb3J0YWJsZSB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LTNcXC8xMlxcQHBvcnRhYmxlIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtNFxcLzEyXFxAcG9ydGFibGUge1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS01XFwvMTJcXEBwb3J0YWJsZSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LTZcXC8xMlxcQHBvcnRhYmxlIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLnUtN1xcLzEyXFxAcG9ydGFibGUge1xuICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS04XFwvMTJcXEBwb3J0YWJsZSB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LTlcXC8xMlxcQHBvcnRhYmxlIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMTBcXC8xMlxcQHBvcnRhYmxlIHtcbiAgICB3aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMTFcXC8xMlxcQHBvcnRhYmxlIHtcbiAgICB3aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLnUtMTJcXC8xMlxcQHBvcnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLnUtMVxcLzEyXFxAbGFwIHtcbiAgICB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS0yXFwvMTJcXEBsYXAge1xuICAgIHdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS0zXFwvMTJcXEBsYXAge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAudS00XFwvMTJcXEBsYXAge1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS01XFwvMTJcXEBsYXAge1xuICAgIHdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS02XFwvMTJcXEBsYXAge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAudS03XFwvMTJcXEBsYXAge1xuICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS04XFwvMTJcXEBsYXAge1xuICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS05XFwvMTJcXEBsYXAge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAudS0xMFxcLzEyXFxAbGFwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMTFcXC8xMlxcQGxhcCB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC51LTEyXFwvMTJcXEBsYXAge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudS0xXFwvMTJcXEBsYXAtYW5kLXVwIHtcbiAgICB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS0yXFwvMTJcXEBsYXAtYW5kLXVwIHtcbiAgICB3aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLnUtM1xcLzEyXFxAbGFwLWFuZC11cCB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC51LTRcXC8xMlxcQGxhcC1hbmQtdXAge1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS01XFwvMTJcXEBsYXAtYW5kLXVwIHtcbiAgICB3aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLnUtNlxcLzEyXFxAbGFwLWFuZC11cCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC51LTdcXC8xMlxcQGxhcC1hbmQtdXAge1xuICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS04XFwvMTJcXEBsYXAtYW5kLXVwIHtcbiAgICB3aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLnUtOVxcLzEyXFxAbGFwLWFuZC11cCB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC51LTEwXFwvMTJcXEBsYXAtYW5kLXVwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMTFcXC8xMlxcQGxhcC1hbmQtdXAge1xuICAgIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS0xMlxcLzEyXFxAbGFwLWFuZC11cCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudS0xXFwvMTJcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS0yXFwvMTJcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLnUtM1xcLzEyXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC51LTRcXC8xMlxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS01XFwvMTJcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLnUtNlxcLzEyXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC51LTdcXC8xMlxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAudS04XFwvMTJcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLnUtOVxcLzEyXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC51LTEwXFwvMTJcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLnUtMTFcXC8xMlxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAudS0xMlxcLzEyXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbi8qKlxuICogQ3JlYXRlIGEgMTIgYW5kIGEgMTYgY29sdW1uIGdyaWQgc3lzdGVtIG9uIHNjcmVlbnMgb3ZlciAxMjAwcHggd2lkZSwgYW5kIGdpdmVcbiAqIHRoZW0gYSBSZXNwb25zaXZlIFN1ZmZpeCBvZiBgQGxnYCwgZS5nLjpcbiAqXG4gKiA8ZGl2IGNsYXNzPVwidS0zLzEyQGxnXCI+XG4gKi9cbi8qIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLy8gQGluY2x1ZGUgaW51aXQtd2lkdGhzKDEyIDE2LCBcXEBsZyk7XG4gIEBpbmNsdWRlIGludWl0LXdpZHRocygxMiwgXFxAbGcpO1xufSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgIEJBU0VcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGamFsbGEgT25lJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9GamFsbGFPbmUvRmphbGxhT25lLVJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL0ZqYWxsYU9uZS9GamFsbGFPbmUtUmVndWxhci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9MYXRvL0xhdG8tQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvTGF0by9MYXRvLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0xhdG8nO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0xhdG8vTGF0by1MaWdodC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvTGF0by9MYXRvLUxpZ2h0LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0todWxhJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9LaHVsYS9LaHVsYS1Cb2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9LaHVsYS9LaHVsYS1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdLaHVsYSc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvS2h1bGEvS2h1bGEtTGlnaHQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL0todWxhL0todWxhLUxpZ2h0LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbmh0bWwsXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbmh0bWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zaXRpb246IDAuNHMgYWxsOyB9XG4gIGh0bWwubG9ja2VkIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIGh0bWwub3BlbiB7XG4gICAgbGVmdDogMzAwcHg7IH1cblxuYm9keSB7XG4gIGNvbG9yOiAjMWExYTE4O1xuICBmb250LWZhbWlseTogJ0xhdG8nLCBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICBib2R5LmNrZV9lZGl0YWJsZSB7XG4gICAgbWFyZ2luOiAyMHB4OyB9XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIGZvbnQtc2l6ZTogNi4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMDA2NTgyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDAgMCAyMHB4O1xuICBmb250LWZhbWlseTogJ0ZqYWxsYSBPbmUnLCBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogNjBweDtcbiAgICAgIGZvbnQtc2l6ZTogMy43NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOyB9IH1cblxuaDIge1xuICBmb250LXNpemU6IDQwcHg7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzAwNjU4MjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luOiAxMHB4IDA7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICBoMiB7XG4gICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDsgfSB9XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW46IDIwcHggMCAyMHB4IDIwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuaDQge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbWFyZ2luOiAyMHB4IDAgMDtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5wIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS42OyB9IH1cbiAgcDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmEge1xuICBjb2xvcjogIzAwNjU4MjtcbiAgdHJhbnNpdGlvbjogMC4zcyBhbGw7IH1cbiAgYTpob3ZlciB7XG4gICAgY29sb3I6ICNiNGEwMzA7IH1cblxuYmxvY2txdW90ZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGZvbnQtZmFtaWx5OiAnRmphbGxhIE9uZScsIENhbGlicmksIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogI2I0YTAzMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogNTBweCAwOyB9XG4gIGJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1wiJzsgfVxuICBibG9ja3F1b3RlOjphZnRlciB7XG4gICAgY29udGVudDogJ1wiJzsgfVxuXG50YWJsZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgdGFibGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvdmVyZmxvdzogYXV0bzsgfSB9XG4gIHRhYmxlIHRoLFxuICB0YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgdGFibGUgdGgge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmwtYXJ0aWNsZV9fc2lkZWJhciArIC5sLWFydGljbGVfX2NvbnRlbnQgdGFibGUge1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDM3NXB4KTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5sLWFydGljbGVfX3NpZGViYXIgKyAubC1hcnRpY2xlX19jb250ZW50IHRhYmxlIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG5cbi5zbGljay1saXN0LFxuLnNsaWNrLXRyYWNrIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uaWUtbWVzc2FnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogOTk5OTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzFhMWExODtcbiAgcGFkZGluZzogNzBweDsgfVxuICAuaWUtbWVzc2FnZSBoMSB7XG4gICAgZm9udC1zaXplOiA0NXB4O1xuICAgIGZvbnQtc2l6ZTogMi44MTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjA2NjY3O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLmllLW1lc3NhZ2UgYSB7XG4gICAgY29sb3I6ICMwMDY1ODI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5pZS1tZXNzYWdlIGltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgVFlFUEtJVCBGT1VUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLndmLWxvYWRpbmcgKiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4ud2YtYWN0aXZlICosXG4ud2YtaW5hY3RpdmUgKiB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICBMQVlPVVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ubC1hcnRpY2xlIHtcbiAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmwtYXJ0aWNsZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNTBweDsgfSB9XG5cbi5sLWFydGljbGVfX2NvbnRlbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi5sLWFydGljbGVfX2NvbnRlbnQtLXNpZGViYXIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzgwcHgpOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmwtYXJ0aWNsZV9fY29udGVudC0tc2lkZWJhciB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5sLWFydGljbGVfX3NpZGViYXIge1xuICB3aWR0aDogMzM1cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDQwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAubC1hcnRpY2xlX19zaWRlYmFyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4OyB9IH1cblxuLmwtYXJ0aWNsZV9faW50cm8gcCB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW46IDMwcHggMDtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5sLWFydGljbGVfX2ludHJvIHAge1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjsgfSB9XG5cbi5sLWFydGljbGVfX2luZm8ge1xuICBib3JkZXI6IDJweCBzb2xpZCAjMWExYTE4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLmwtYXJ0aWNsZV9faW5mbyBoMyB7XG4gICAgZm9udC1mYW1pbHk6ICdGamFsbGEgT25lJywgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgY29sb3I6ICMwMDY1ODI7IH1cblxuLmwtYXJ0aWNsZV9fYXV0aG9yIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMwMDY1ODI7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5sLWFydGljbGVfX2F1dGhvciB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMTsgfSB9XG4gIC5sLWFydGljbGVfX2F1dGhvcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcmJzsgfVxuICAubC1hcnRpY2xlX19hdXRob3I6bGFzdC1vZi10eXBlOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubC1hcnRpY2xlX19hdXRob3Igc3VwIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2NTgyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDJweCA2cHggMnB4IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbDsgfVxuICAgIC5sLWFydGljbGVfX2F1dGhvciBzdXA6aG92ZXIsIC5sLWFydGljbGVfX2F1dGhvciBzdXA6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExODsgfVxuICAgIC5sLWFydGljbGVfX2F1dGhvciBzdXA6OmFmdGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgcGFkZGluZzogMTBweDsgfVxuXG4ubC1hcnRpY2xlX19zb3VyY2VzIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMxYTFhMTg7XG4gIHBhZGRpbmctdG9wOiAyMHB4OyB9XG4gIC5sLWFydGljbGVfX3NvdXJjZXMgdWwge1xuICAgIG1hcmdpbjogMCAwIDAgMjBweDsgfVxuICAubC1hcnRpY2xlX19zb3VyY2VzIHAsIC5sLWFydGljbGVfX3NvdXJjZXMgbGkge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4ubC1hcnRpY2xlX19jb2xsYWItY29udGFpbmVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5sLWFydGljbGVfX2NvbGxhYi1jb250YWluZXIgc3VwIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC1zaXplOiAwLjYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nOiAycHggNXB4IDJweCA0cHg7IH1cblxuLmwtYXJ0aWNsZV9fY29sbGFiOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcsJzsgfVxuXG4ubC1hcnRpY2xlX19jb2xsYWI6bGFzdC1vZi10eXBlOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmwtYXJ0aWNsZV9fZGl2aWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2FydGljbGUtaGVhZGVyLWRpdmlkZXIuc3ZnXCIpIG5vLXJlcGVhdDtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gIGhlaWdodDogMTAwcHg7XG4gIGJvdHRvbTogLTFweDtcbiAgbGVmdDogLTFweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5sLWFydGljbGVfX2RpdmlkZXIge1xuICAgICAgaGVpZ2h0OiA1MHB4OyB9IH1cblxuLyogJ1ZydWNodGVuIHZhbiBkZSB6ZWUnIGxheW91dCAqL1xuLmwtYXJ0aWNsZS0tY2F0ZWdvcnkgLmwtYXJ0aWNsZV9fZGl2aWRlcixcbi5sLWFydGljbGUtLXNlYSAubC1hcnRpY2xlX19kaXZpZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmwtYXJ0aWNsZS0tY2F0ZWdvcnkgLmwtYXJ0aWNsZV9faGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvY2F0ZWdvcnktYmFja2dyb3VuZC5zdmdcIikgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBwYWRkaW5nLXRvcDogNTBweDtcbiAgcGFkZGluZy1ib3R0b206IDgwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAubC1hcnRpY2xlLS1jYXRlZ29yeSAubC1hcnRpY2xlX19oZWFkZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206IDMwcHg7IH0gfVxuXG4ubC1hcnRpY2xlLS1jYXRlZ29yeSBoMSB7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC1zaXplOiAzLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAubC1hcnRpY2xlLS1jYXRlZ29yeSBoMSB7XG4gICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9IH1cblxuLmwtYXJ0aWNsZV9fY2F0ZWdvcnktbGFiZWwge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1mYW1pbHk6ICdGamFsbGEgT25lJywgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLmwtYXJ0aWNsZS0tY2F0ZWdvcnkxIC5sLWFydGljbGVfX2NhdGVnb3J5LWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzVBQTk5OyB9XG4gIC5sLWFydGljbGUtLWNhdGVnb3J5MiAubC1hcnRpY2xlX19jYXRlZ29yeS1sYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0IwNzI2OTsgfVxuICAubC1hcnRpY2xlLS1jYXRlZ29yeTMgLmwtYXJ0aWNsZV9fY2F0ZWdvcnktbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MzYyNEY7IH1cbiAgLmwtYXJ0aWNsZS0tY2F0ZWdvcnk0IC5sLWFydGljbGVfX2NhdGVnb3J5LWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTI3MDgzOyB9XG4gIC5sLWFydGljbGUtLWNhdGVnb3J5NSAubC1hcnRpY2xlX19jYXRlZ29yeS1sYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUyNzA4MzsgfVxuICAubC1hcnRpY2xlLS1jYXRlZ29yeTYgLmwtYXJ0aWNsZV9fY2F0ZWdvcnktbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njk4QkQ7IH1cbiAgLmwtYXJ0aWNsZS0tY2F0ZWdvcnk3IC5sLWFydGljbGVfX2NhdGVnb3J5LWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDNDQzU0OyB9XG5cbi8qICdJbiBkZSBicmFuZGluZycgbGF5b3V0ICovXG4ubC1hcnRpY2xlLS1yb2NrIHtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvc2FuZC1wYXR0ZXJuLmpwZ1wiKSByZXBlYXQ7XG4gIHBhZGRpbmc6IDUwcHggMDsgfVxuICAubC1hcnRpY2xlLS1yb2NrIGgxIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogI2I0YTAzMDsgfVxuXG4vKiAnS3VzdGtpZWtqZScgbGF5b3V0ICovXG4ubC1hcnRpY2xlX19mdWxsc2NyZWVuIHtcbiAgaGVpZ2h0OiA4MHZoO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG5cbi5sLWJhY2stY292ZXIge1xuICBwYWRkaW5nLXRvcDogMTAwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOGFhYjtcbiAgY29sb3I6ICNmZmY7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAubC1iYWNrLWNvdmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDcwcHg7IH0gfVxuICAubC1iYWNrLWNvdmVyIGgyIHtcbiAgICBmb250LXNpemU6IDUwcHg7XG4gICAgZm9udC1zaXplOiAzLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmwtYmFjay1jb3ZlciBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsgfSB9XG4gIC5sLWJhY2stY292ZXIgYSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLmwtYmFjay1jb3Zlcl9faW5mbyB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4ubC1lZGl0byB7XG4gIHBhZGRpbmctdG9wOiA1MHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmwtZWRpdG8ge1xuICAgICAgcGFkZGluZy10b3A6IDI1cHg7IH0gfVxuXG4ubC1lZGl0b19fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmwtZWRpdG9fX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogODBweDtcbiAgICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAubC1lZGl0b19fY29udGFpbmVyIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMWExYTE4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAubC1lZGl0b19fc3VtbWFyeSB7XG4gICAgbWFyZ2luLWxlZnQ6IC00MHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmwtZWRpdG9fX3N1bW1hcnkgLmMtbWFzb25yeSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9IH1cblxuLmwtZWRpdG9fX3N1bW1hcnlfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLXRvcDogNDBweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5sLWVkaXRvX19zdW1tYXJ5X190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAubC1ncmlkIHtcbiAgICBtYXJnaW4tbGVmdDogLTQwcHg7IH0gfVxuXG4ubC1ncmlkX19pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmwtZ3JpZF9faXRlbSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7IH0gfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgQ09NUE9ORU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5jLWJhY2stdG8tdG9wIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBmb250LXNpemU6IDEuNjI1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMjBweDtcbiAgYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTE4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogMC41cyBvcGFjaXR5LCAwLjRzIGJhY2tncm91bmQtY29sb3I7IH1cbiAgLmMtYmFjay10by10b3AuZmFkZWQtaW4ge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmMtYmFjay10by10b3A6aG92ZXIsIC5jLWJhY2stdG8tdG9wOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzUzNTMwOyB9XG4gIC5jLWJhY2stdG8tdG9wIGltZyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMDsgfVxuXG4uYy1jYXJvdXNlbCB7XG4gIGhlaWdodDogNDAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7IH1cblxuLmMtY2Fyb3VzZWxfX2l0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmMtY2Fyb3VzZWxfX2l0ZW1fX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuXG4uYy1jb2xvZm9uIHtcbiAgcGFkZGluZy10b3A6IDUwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmMtY29sb2ZvbiB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7IH0gfVxuICAuYy1jb2xvZm9uIHAge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLmMtY29sb2Zvbl9fdGl0bGUge1xuICBjb2xvcjogIzAwOGFhYjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuYy1jb2xvZm9uX19jb250ZW50LS1jb2x1bW5zIHtcbiAgICBjb2x1bW5zOiAzO1xuICAgIGNvbHVtbi1nYXA6IDUwcHg7XG4gICAgY29sdW1uLXJ1bGU6IDFweCBvdXRzZXQgI2NjY2NjYzsgfSB9XG5cbi5jLWNvbG9mb25fX2xpbmsge1xuICBmb250LXNpemU6IDQ1cHg7XG4gIGZvbnQtc2l6ZTogMi44MTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4wNjY2NztcbiAgY29sb3I6ICMwMDhhYWI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmMtY29sb2Zvbl9fc3BvbnNvcnMge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gIC5jLWNvbG9mb25fX3Nwb25zb3JzIGltZyB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5jLWNvdmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogNzcwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuYy1jb3ZlciB7XG4gICAgICBtaW4taGVpZ2h0OiA2NTBweDsgfSB9XG5cbi5jLWNvdmVyX19oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDQwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jLWNvdmVyX19oZWFkZXIge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBwYWRkaW5nOiAyMHB4OyB9IH1cbiAgLmMtY292ZXJfX2hlYWRlciBwIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuYy1jb3Zlcl9faGVhZGVyIHAge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7IH0gfVxuICAuYy1jb3Zlcl9faGVhZGVyIGgxIHtcbiAgICBjb2xvcjogI2VhYzI5MDsgfVxuICAuYy1jb3Zlcl9faGVhZGVyIGgyIHtcbiAgICBjb2xvcjogIzFhMWExODtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5jLWNvdmVyX19udW1iZXIge1xuICBmb250LWZhbWlseTogJ0todWxhJywgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJvdHRvbTogLTgwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNGEwMzA7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDM1cHggMTBweDtcbiAgd2lkdGg6IDEyOXB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmMtY292ZXJfX251bWJlciB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICBwYWRkaW5nOiAzNHB4IDEwcHg7XG4gICAgICB3aWR0aDogMTEwcHg7IH0gfVxuICAuYy1jb3Zlcl9fbnVtYmVyIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWluLXdpZHRoOiA2MHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jLWNvdmVyX19udW1iZXIgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgbWluLXdpZHRoOiA1MHB4OyB9IH1cbiAgICAuYy1jb3Zlcl9fbnVtYmVyIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgZm9udC1zaXplOiA0NXB4O1xuICAgICAgZm9udC1zaXplOiAyLjgxMjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgIC5jLWNvdmVyX19udW1iZXIgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE7IH0gfVxuXG4uYy1jb3Zlcl9fYXJ0aWNsZXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAzMHB4O1xuICBtYXJnaW4tdG9wOiA5MHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICBtYXgtd2lkdGg6IDUwMHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmMtY292ZXJfX2FydGljbGVzIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLXRvcDogODBweDsgfSB9XG4gIC5jLWNvdmVyX19hcnRpY2xlcyBwIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuYy1jb3Zlcl9fYXJ0aWNsZXMgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40OyB9IH1cbiAgLmMtY292ZXJfX2FydGljbGVzIGEge1xuICAgIGNvbG9yOiAjMWExYTE4O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jLWNvdmVyX19hcnRpY2xlcyBhOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uYy1jb3Zlcl9fdG9wLWFydGljbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwMHB4O1xuICBib3R0b206IDMwcHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIG1heC13aWR0aDogNjQwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuYy1jb3Zlcl9fdG9wLWFydGljbGUge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTogMDsgfSB9XG4gIC5jLWNvdmVyX190b3AtYXJ0aWNsZSBwIHtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuYy1jb3Zlcl9fdG9wLWFydGljbGUgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40OyB9IH1cbiAgLmMtY292ZXJfX3RvcC1hcnRpY2xlIGEge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgLmMtY292ZXJfX3RvcC1hcnRpY2xlIGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5jLWltZy1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uYy1pbWctYmxvY2tfX25vdGUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLmMtaW1nLWJsb2NrX19ub3RlIHAge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuLmMtbWFzb25yeSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IDAuNXMgb3BhY2l0eTsgfVxuICAuYy1tYXNvbnJ5LmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4uYy1tYXNvbnJ5X19pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMTVweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYy1tYXNvbnJ5X19pdGVtIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7IH1cbiAgLmMtbWFzb25yeV9faXRlbSBhIGltZzpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG5cbi5jLW1hc29ucnlfX2l0ZW1fX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuXG4uYy1tYXNvbnJ5X19pdGVtLS1iaWcge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICB3aWR0aDogY2FsYyg1MCUgLSAyMHB4KTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jLW1hc29ucnlfX2l0ZW0tLWJpZyB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5jLXBhcmFncmFwaC1jYXJkIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMTVweDtcbiAgYm94LXNoYWRvdzogMCAwIDMwcHggMCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cbiAgLmMtcGFyYWdyYXBoLWNhcmQgcCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jLXBhcmFncmFwaC1jYXJkIHAge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7IH0gfVxuICAuYy1wYXJhZ3JhcGgtY2FyZCBpbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuLmMtcGFyYWdyYXBoLWNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzAwNjU4MjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6ICdGamFsbGEgT25lJywgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuYy1wYXJhZ3JhcGgtY2FyZF9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9IH1cblxuLmMtcGFyYWdyYXBoLWNhcmRfX2F1dGhvcnMge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwYWRkaW5nLXRvcDogMTVweDsgfVxuXG4uYy1wYXJhZ3JhcGgtY2FyZF9fYXV0aG9yOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcmJzsgfVxuXG4uYy1wYXJhZ3JhcGgtY2FyZF9fYXV0aG9yOmxhc3Qtb2YtdHlwZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5jLXBkZi1kb3dubG9hZCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMjBweDtcbiAgYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTE4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogMC40cyBhbGw7IH1cbiAgLmMtcGRmLWRvd25sb2FkOmhvdmVyLCAuYy1wZGYtZG93bmxvYWQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNTM1MzA7IH1cbiAgLmMtcGRmLWRvd25sb2FkIGltZyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMDsgfVxuXG4ub3BlbiAuYy1wZGYtZG93bmxvYWQge1xuICBsZWZ0OiAzMjBweDsgfVxuXG4uYy1zZWEtaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4YWFiO1xuICBwYWRkaW5nOiA1MHB4IDA7XG4gIG1pbi1oZWlnaHQ6IDM2MHB4OyB9XG4gIC5jLXNlYS1oZWFkZXIgcCB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IDEwcHggMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuYy1zZWEtaGVhZGVyIHAge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7IH0gfVxuXG4uYy1zZWEtaGVhZGVyX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIGZvbnQtc2l6ZTogNi4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogJ0ZqYWxsYSBPbmUnLCBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jLXNlYS1oZWFkZXJfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogNDVweDtcbiAgICAgIGZvbnQtc2l6ZTogMi44MTI1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7IH0gfVxuXG4uYy1zZWEtaGVhZGVyX19hdXRob3Ige1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLmMtc2VhLWhlYWRlcl9fYXV0aG9yOjphZnRlciB7XG4gICAgY29udGVudDogJywnOyB9XG4gIC5jLXNlYS1oZWFkZXJfX2F1dGhvcjpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4ubC1hcnRpY2xlLS1zZWEgKyAubC1hcnRpY2xlLS1zZWEgLmMtc2VhLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmMtc3VtbWFyeSB7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjRhMDMwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMTAwcHg7XG4gIHotaW5kZXg6IC0xMDA7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgb3BhY2l0eTogMTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAzMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xuICB0cmFuc2l0aW9uOiAwLjRzIGFsbDsgfVxuICAuYy1zdW1tYXJ5Lm9wZW4ge1xuICAgIGxlZnQ6IDA7IH1cbiAgLmMtc3VtbWFyeSB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmMtc3VtbWFyeSBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FiOTgyZTsgfVxuICAuYy1zdW1tYXJ5IGEge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsOyB9XG4gICAgLmMtc3VtbWFyeSBhOmhvdmVyLCAuYy1zdW1tYXJ5IGEuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjZWJhNDk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmMtc3VtbWFyeSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS42OyB9IH1cblxuLmMtc3VtbWFyeS1pbmxpbmUge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMxYTFhMTg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuYy1zdW1tYXJ5LWlubGluZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH0gfVxuICAuYy1zdW1tYXJ5LWlubGluZSB1bCB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jLXN1bW1hcnktaW5saW5lIGxpIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgcmdiYSgyNiwgMjYsIDI0LCAwLjIpOyB9XG4gIC5jLXN1bW1hcnktaW5saW5lIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzFhMWExODtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsOyB9XG4gICAgLmMtc3VtbWFyeS1pbmxpbmUgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2I0YTAzMDsgfVxuXG4uYy1zdW1tYXJ5LXRvZ2dsZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMjBweDtcbiAgdG9wOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTE4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogMC40cyBhbGw7IH1cbiAgLmMtc3VtbWFyeS10b2dnbGU6aG92ZXIsIC5jLXN1bW1hcnktdG9nZ2xlOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzUzNTMwOyB9XG4gIC5jLXN1bW1hcnktdG9nZ2xlLm9wZW4ge1xuICAgIGxlZnQ6IDMyMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNiNGEwMzA7IH1cbiAgICAuYy1zdW1tYXJ5LXRvZ2dsZS5vcGVuOmhvdmVyLCAuYy1zdW1tYXJ5LXRvZ2dsZS5vcGVuOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjZWJhNDk7IH1cblxuLmMtc3VtbWFyeS10b2dnbGVfX2ljb24ge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gIC5jLXN1bW1hcnktdG9nZ2xlX19pY29uIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDNweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiAwLjI1cyBlYXNlLWluLW91dDsgfVxuICAgIC5jLXN1bW1hcnktdG9nZ2xlX19pY29uIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgICAgIHRvcDogMDsgfVxuICAgIC5jLXN1bW1hcnktdG9nZ2xlX19pY29uIHNwYW46bnRoLWNoaWxkKDIpLCAuYy1zdW1tYXJ5LXRvZ2dsZV9faWNvbiBzcGFuOm50aC1jaGlsZCgzKSB7XG4gICAgICB0b3A6IDhweDsgfVxuICAgIC5jLXN1bW1hcnktdG9nZ2xlX19pY29uIHNwYW46bnRoLWNoaWxkKDQpIHtcbiAgICAgIHRvcDogMTZweDsgfVxuXG4uYy1zdW1tYXJ5LXRvZ2dsZV9faWNvbi5vcGVuIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgdG9wOiA0cHg7XG4gIHdpZHRoOiAwO1xuICBsZWZ0OiA1MCU7IH1cblxuLmMtc3VtbWFyeS10b2dnbGVfX2ljb24ub3BlbiBzcGFuOm50aC1jaGlsZCgyKSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuXG4uYy1zdW1tYXJ5LXRvZ2dsZV9faWNvbi5vcGVuIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4uYy1zdW1tYXJ5LXRvZ2dsZV9faWNvbi5vcGVuIHNwYW46bnRoLWNoaWxkKDQpIHtcbiAgdG9wOiA0cHg7XG4gIHdpZHRoOiAwO1xuICBsZWZ0OiA1MCU7IH1cblxuLmMtdG9vbHRpcCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6ICMxYTFhMTg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDA7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1heC13aWR0aDogMzQwcHg7IH1cbiAgLmMtdG9vbHRpcDo6YWZ0ZXIge1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogMTBweCBzb2xpZCAjMWExYTE4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm90dG9tOiAtMTBweDtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7IH1cbiAgLmMtdG9vbHRpcC50b3A6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkICMxYTFhMTg7XG4gICAgdG9wOiAtMjBweDtcbiAgICBib3R0b206IGF1dG87IH1cbiAgLmMtdG9vbHRpcC5sZWZ0OjphZnRlciB7XG4gICAgbGVmdDogMTBweDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmMtdG9vbHRpcC5yaWdodDo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICBEUlVQQUwgQ09SRSBFTEVNRU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJTlVJVENTU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyohKlxuICogaW51aXRjc3MsIGJ5IEBjc3N3aXphcmRyeSBtb2RpZmllZCBieSBEYXZlbG9vc2VcbiAqXG4gKiBnaXRodWIuY29tL2ludWl0Y3NzIHwgaW51aXRjc3MuY29tXG4gKi9cblxuJG1xLWJyZWFrcG9pbnRzOiAoXG4gICAgICAgIG1vYmlsZTogIDMyMHB4LFxuICAgICAgICB0YWJsZXQ6ICA3NjhweCxcbiAgICAgICAgZGVza3RvcDogMTAyNHB4XG4pO1xuXG4vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcbi8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxuLy8gJG1xLXNob3ctYnJlYWtwb2ludHM6ICgnbW9iaWxlJywgJ3RhYmxldCcsICdkZXNrdG9wJyk7XG5cbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLW1xL21xJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICBTRVRUSU5HU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzLmNvbmZpZyc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3Mvc2V0dGluZ3Mvc2V0dGluZ3MuY29yZSc7XG5AaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncy5jb2xvcnMnO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgIFRPT0xTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL3Rvb2xzL3Rvb2xzLmNsZWFyZml4JztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy90b29scy90b29scy5mb250LXNpemUnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL3Rvb2xzL3Rvb2xzLmhpZGRlbic7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvaW51aXRjc3MvdG9vbHMvdG9vbHMucmVtJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICBHRU5FUklDXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2dlbmVyaWMvZ2VuZXJpYy5ib3gtc2l6aW5nJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy9nZW5lcmljL2dlbmVyaWMubm9ybWFsaXplJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy9nZW5lcmljL2dlbmVyaWMucmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2dlbmVyaWMvZ2VuZXJpYy5zaGFyZWQnO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgIEVMRU1FTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2VsZW1lbnRzL2VsZW1lbnRzLnBhZ2UnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2VsZW1lbnRzL2VsZW1lbnRzLmhlYWRpbmdzJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy9lbGVtZW50cy9lbGVtZW50cy5pbWFnZXMnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL2VsZW1lbnRzL2VsZW1lbnRzLnRhYmxlcyc7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgVVRJTElUSUVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL3V0aWxpdGllcy91dGlsaXRpZXMuY2xlYXJmaXgnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ludWl0Y3NzL3V0aWxpdGllcy91dGlsaXRpZXMud2lkdGhzJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy91dGlsaXRpZXMvdXRpbGl0aWVzLnByaW50JztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9pbnVpdGNzcy91dGlsaXRpZXMvdXRpbGl0aWVzLmhpZGUnO1xuQGltcG9ydCAndXRpbGl0aWVzL2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICd1dGlsaXRpZXMvaGVscGVycyc7XG5AaW1wb3J0ICd1dGlsaXRpZXMvdXRpbGl0aWVzLndpZHRocyc7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgQkFTRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ2Jhc2UvYmFzZSc7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgTEFZT1VUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnbGF5b3V0L2wtYXJ0aWNsZSc7XG5AaW1wb3J0ICdsYXlvdXQvbC1iYWNrLWNvdmVyJztcbkBpbXBvcnQgJ2xheW91dC9sLWVkaXRvJztcbkBpbXBvcnQgJ2xheW91dC9sLWdyaWQnO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgIENPTVBPTkVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdjb21wb25lbnRzL2MtYmFjay10by10b3AnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jLWNhcm91c2VsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYy1jb2xvZm9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYy1jb3Zlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2MtaW1nLWJsb2NrJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYy1tYXNvbnJ5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYy1wYXJhZ3JhcGgtY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2MtcGRmLWRvd25sb2FkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYy1zZWEtaGVhZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYy1zdW1tYXJ5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYy1zdW1tYXJ5LWlubGluZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Mtc3VtbWFyeS10b2dnbGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jLXRvb2x0aXAnO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgIERSVVBBTCBDT1JFIEVMRU1FTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNCT1gtU0laSU5HXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIE1vcmUgc2Vuc2libGUgZGVmYXVsdCBib3gtc2l6aW5nOlxuICogY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlXG4gKi9cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbioge1xuXG4gICYsXG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHY1LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMiAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4geyAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzLCAvKiAxICovXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogU2NyaXB0aW5nXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEhpZGRlblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNSRVNFVFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBIHZlcnkgc2ltcGxlIHJlc2V0IHRoYXQgc2l0cyBvbiB0b3Agb2YgTm9ybWFsaXplLmNzcy5cbiAqL1xuXG5ib2R5LFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbmJsb2NrcXVvdGUsIHAsIHByZSxcbmRsLCBkZCwgb2wsIHVsLFxuZmlndXJlLFxuaHIsXG5maWVsZHNldCwgbGVnZW5kIHtcbiAgbWFyZ2luOiAgMDtcbiAgcGFkZGluZzogMDtcbn1cblxuXG4vKipcbiAqIFJlbW92ZSB0cmFpbGluZyBtYXJnaW5zIGZyb20gbmVzdGVkIGxpc3RzLlxuICovXG5cbmxpID4ge1xuXG4gIG9sLFxuICB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG59XG5cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB0YWJsZSBzcGFjaW5nLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cblxuLyoqXG4gKiAxLiBSZXNldCBDaHJvbWUgYW5kIEZpcmVmb3ggYmVoYXZpb3VyIHdoaWNoIHNldHMgYSBgbWluLXdpZHRoOiBtaW4tY29udGVudDtgXG4gKiAgICBvbiBmaWVsZHNldHMuXG4gKi9cblxuZmllbGRzZXQge1xuICBtaW4td2lkdGg6IDA7IC8qIFsxXSAqL1xuICBib3JkZXI6IDA7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1NIQVJFRFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBTaGFyZWQgZGVjbGFyYXRpb25zIGZvciBjZXJ0YWluIGVsZW1lbnRzLlxuICovXG5cbi8qKlxuICogQWx3YXlzIGRlY2xhcmUgbWFyZ2lucyBpbiB0aGUgc2FtZSBkaXJlY3Rpb246XG4gKiBjc3N3aXphcmRyeS5jb20vMjAxMi8wNi9zaW5nbGUtZGlyZWN0aW9uLW1hcmdpbi1kZWNsYXJhdGlvbnNcbiAqL1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1saXN0LWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cblxuYWRkcmVzcyxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG5ibG9ja3F1b3RlLCBwLCBwcmUsXG5kbCwgb2wsIHVsLFxuZmlndXJlLFxuaHIsXG50YWJsZSxcbmZpZWxkc2V0IHtcbiAgQGluY2x1ZGUgaW51aXQtcmVtKG1hcmdpbi1ib3R0b20sICRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0KTtcbn1cblxuXG4vKipcbiAqIENvbnNpc3RlbnQgaW5kZW50YXRpb24gZm9yIGxpc3RzLlxuICovXG5cbmRkLCBvbCwgdWwge1xuICBAaW5jbHVkZSBpbnVpdC1yZW0obWFyZ2luLWxlZnQsICRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0KTtcbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1saXN0LWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiIsIi8vLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgICNSRU1cbi8vICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIENvbnZlcnQgYW55IHB4IHZhbHVlIGludG8gaXRzIHJlbSBlcXVpdmFsZW50LlxuXG5AZnVuY3Rpb24gaW51aXQtcmVtKCR2YWx1ZSkge1xuXG4gIEBpZiAodHlwZS1vZigkdmFsdWUpID09IG51bWJlcikge1xuXG4gICAgQGlmICh1bml0KCR2YWx1ZSkgIT0gXCJweFwiKSB7XG4gICAgICBAZXJyb3IgXCJgI3skdmFsdWV9YCBuZWVkcyB0byBiZSBhIHBpeGVsIHZhbHVlLlwiO1xuICAgIH1cblxuICB9IEBlbHNlIHtcbiAgICBAZXJyb3IgXCJgI3skdmFsdWV9YCBuZWVkcyB0byBiZSBhIG51bWJlci5cIjtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlIC8gJGludWl0LWdsb2JhbC1mb250LXNpemUgKiAxcmVtO1xuXG59XG5cblxuLy8gTWl4aW4gdG8gY3JlYXRlIGEgZGVjbGFyYXRpb24gd2hvc2UgdmFsdWUgaXMgYSByZW0gdW5pdC4gQWxzbyBwcm92aWRlIHBpeGVsXG4vLyBmYWxsYmFjay5cbi8vXG4vLyAuc2ltcGxlLXVzYWdlIHtcbi8vICAgQGluY2x1ZGUgaW51aXQtcmVtKHBhZGRpbmcsIDEwcHgpO1xuLy8gfVxuXG5AbWl4aW4gaW51aXQtcmVtKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG5cbiAgQGlmICh0eXBlLW9mKCR2YWx1ZSkgPT0gbnVtYmVyKSB7XG5cbiAgICBAaWYgKHVuaXQoJHZhbHVlKSAhPSBcInB4XCIpIHtcbiAgICAgIEBlcnJvciBcImAjeyR2YWx1ZX1gIG5lZWRzIHRvIGJlIGEgcGl4ZWwgdmFsdWUuXCI7XG4gICAgfVxuXG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcImAjeyR2YWx1ZX1gIG5lZWRzIHRvIGJlIGEgbnVtYmVyLlwiO1xuICB9XG5cbiAgLy8gV2UgcHJvdmlkZSBhIGBweGAgZmFsbGJhY2sgZm9yIG9sZCBJRXMgbm90IHN1cHBvcnRpbmcgYHJlbWAgdmFsdWVzLlxuICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcblxuICAjeyRwcm9wZXJ0eX06IGludWl0LXJlbSgkdmFsdWUpO1xuXG59XG4iLCIvLy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gICAjQ09SRVxuLy8gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gVGhpcyBjb3JlIGZpbGUgc2V0cyB1cCBpbnVpdGNzc+KAmSBtb3N0IGltcG9ydGFudCBzZXR1cCB2YXJpYWJsZXMuIFRoZXlcbi8vIHVuZGVycGluIGEgbG90IG9mIGhvdyB0aGUgZnJhbWV3b3JrIGZ1bmN0aW9ucyBhbmQgc2hvdWxkIGJlIG1vZGlmaWVkIGFuZFxuLy8gcHJlY29uZmlndXJlZCB3aXRoIGNhdXRpb24uXG5cblxuLy8gQmFzZSB0eXBvZ3JhcGhpY2FsIHN0eWxlcyBhbmQgYmFzZWxpbmUgZ3JpZC4gWW91IG5lZWQgdG8gZGVmaW5lIHRoZXNlIHZhbHVlc1xuLy8gaW4gcGl4ZWxzOiBpbnVpdGNzcyB3aWxsIGNvbnZlcnQgdGhlbSB0byBtb3JlIGFwcHJvcHJpYXRlIHVuaXRzLlxuXG4kaW51aXQtZ2xvYmFsLWZvbnQtc2l6ZTogICAgMTZweCAhZGVmYXVsdDtcbiRpbnVpdC1nbG9iYWwtbGluZS1oZWlnaHQ6ICAyNHB4ICFkZWZhdWx0O1xuXG5cblxuXG5cbi8vIFNwYWNpbmcgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJhc2VkIG9uIHlvdXIgcHJvamVjdOKAmXMgZ2xvYmFsIGxpbmUgaGVpZ2h0IChpLmVcbi8vIHlvdXIgYmFzZWxpbmUgZ3JpZCkuIEl0IGlzIG5vdCByZWNvbW1lbmRlZCB0aGF0IHlvdSBtb2RpZnkgdGhlc2UgZm9sbG93aW5nXG4vLyB2YXJpYWJsZXMgKGl0IGNhbiBicmVhayB5b3VyIHZlcnRpY2FsIHJoeXRobSksIGJ1dCBpZiB5b3UgbmVlZCB0bywgeW91IGNhbi5cblxuJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQ6IHJvdW5kKCRpbnVpdC1nbG9iYWwtbGluZS1oZWlnaHQpICFkZWZhdWx0O1xuXG5cbi8vIEhvdyBtYW55IHRpbWVzIGxhcmdlci9zbWFsbGVyIHRoYW4gdGhlIGRlZmF1bHQgc2hvdWxkIG91ciBzcGFjaW5nIHVuaXRcbi8vIHZhcmlhbnRzIGJlP1xuXG4kaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1mYWN0b3ItdGlueTogICAwLjI1ICFkZWZhdWx0O1xuJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtZmFjdG9yLXNtYWxsOiAgMC41ICAhZGVmYXVsdDtcbiRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LWZhY3Rvci1sYXJnZTogIDIgICAgIWRlZmF1bHQ7XG4kaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1mYWN0b3ItaHVnZTogICA0ICAgICFkZWZhdWx0O1xuXG5cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVyBBIFIgTiBJIE4gRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vXG4vLyAgICAgICAgICAgICAgICAgIERPIE5PVCBNT0RJRlkgQU5ZVEhJTkcgQkVZT05EIFRISVMgUE9JTlQgICAgICAgICAgICAgICAgICAvL1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cblxuLy8gQ2hlY2sgdGhhdCB0aGUgY2hvc2VuIGZvbnQgcnVsZXMgYXJlIHBpeGVsIG51bWJlcnMuXG5cbkBlYWNoICRfaW51aXQtZm9udC1nbG9iYWxzIGluXG4gICAgICAkaW51aXQtZ2xvYmFsLWZvbnQtc2l6ZVxuICAgICAgJGludWl0LWdsb2JhbC1saW5lLWhlaWdodCB7XG5cbiAgQGlmICh0eXBlLW9mKCRfaW51aXQtZm9udC1nbG9iYWxzKSA9PSBudW1iZXIpIHtcblxuICAgIEBpZiAodW5pdCgkX2ludWl0LWZvbnQtZ2xvYmFscykgIT0gXCJweFwiKSB7XG4gICAgICBAZXJyb3IgXCJgI3skX2ludWl0LWZvbnQtZ2xvYmFsc31gIG5lZWRzIHRvIGJlIGEgcGl4ZWwgdmFsdWUuXCI7XG4gICAgfVxuXG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcImAjeyRfaW51aXQtZm9udC1nbG9iYWxzfWAgbmVlZHMgdG8gYmUgYSBudW1iZXIuXCI7XG4gIH1cblxufVxuXG5cbi8vIENoZWNrIHRoYXQgdGhlIGNob3NlbiBzaXplIGZhY3RvcnMgYXJlIHVuaXRsZXNzIG51bWJlcnMuXG5cbkBlYWNoICRfaW51aXQtc3BhY2luZy11bml0IGluXG4gICAgICAkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1mYWN0b3ItdGlueVxuICAgICAgJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtZmFjdG9yLXNtYWxsXG4gICAgICAkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1mYWN0b3ItbGFyZ2VcbiAgICAgICRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LWZhY3Rvci1odWdlIHtcblxuICBAaWYgKHR5cGUtb2YoJF9pbnVpdC1zcGFjaW5nLXVuaXQpID09IG51bWJlcikge1xuXG4gICAgQGlmICh1bml0bGVzcygkX2ludWl0LXNwYWNpbmctdW5pdCkgPT0gZmFsc2UpIHtcbiAgICAgIEBlcnJvciBcImAjeyRfaW51aXQtc3BhY2luZy11bml0fWAgbmVlZHMgdG8gYmUgdW5pdGxlc3MuXCI7XG4gICAgfVxuXG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcImAjeyRfaW51aXQtc3BhY2luZy11bml0fWAgbmVlZHMgdG8gYmUgYSBudW1iZXIuXCI7XG4gIH1cblxufVxuXG5cbi8vIFByaXZhdGUvZnJhbWV3b3JrLW9ubHkgcmVhc3NpZ25tZW50LiBEbyBub3QgYWx0ZXIgYW55dGhpbmcgYmVsb3cuXG5cbiRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LXRpbnk6ICByb3VuZCgkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdCAqICRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LWZhY3Rvci10aW55KTtcbiRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LXNtYWxsOiByb3VuZCgkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdCAqICRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LWZhY3Rvci1zbWFsbCk7XG4kaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1sYXJnZTogcm91bmQoJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQgKiAkaW51aXQtZ2xvYmFsLXNwYWNpbmctdW5pdC1mYWN0b3ItbGFyZ2UpO1xuJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtaHVnZTogIHJvdW5kKCRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0ICogJGludWl0LWdsb2JhbC1zcGFjaW5nLXVuaXQtZmFjdG9yLWh1Z2UpO1xuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNQQUdFXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFNpbXBsZSBwYWdlLWxldmVsIHNldHVwLlxuICpcbiAqIDEuIFNldCB0aGUgZGVmYXVsdCBgZm9udC1zaXplYCBhbmQgYGxpbmUtaGVpZ2h0YCBmb3IgdGhlIGVudGlyZSBwcm9qZWN0LFxuICogICAgc291cmNlZCBmcm9tIG91ciBkZWZhdWx0IHZhcmlhYmxlcy4gVGhlIGBmb250LXNpemVgIGlzIGNhbGN1bGF0ZWQgdG8gZXhpc3RcbiAqICAgIGluIGVtcywgdGhlIGBsaW5lLWhlaWdodGAgaXMgY2FsY3VsYXRlZCB0byBleGlzdCB1bml0bGVzc2x5LlxuICogMi4gRm9yY2Ugc2Nyb2xsYmFycyB0byBhbHdheXMgYmUgdmlzaWJsZSB0byBwcmV2ZW50IGF3a3dhcmQg4oCYanVtcHPigJkgd2hlblxuICogICAgbmF2aWdhdGluZyBiZXR3ZWVuIHBhZ2VzIHRoYXQgZG8vZG8gbm90IGhhdmUgZW5vdWdoIGNvbnRlbnQgdG8gcHJvZHVjZVxuICogICAgc2Nyb2xsYmFycyBuYXR1cmFsbHkuXG4gKiAzLiBFbnN1cmUgdGhlIHBhZ2UgYWx3YXlzIGZpbGxzIGF0IGxlYXN0IHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydC5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1zaXplOiAoJGludWl0LWdsb2JhbC1mb250LXNpemUgLyAxNnB4KSAqIDFlbTsgLyogWzFdICovXG4gIGxpbmUtaGVpZ2h0OiAkaW51aXQtZ2xvYmFsLWxpbmUtaGVpZ2h0IC8gJGludWl0LWdsb2JhbC1mb250LXNpemU7IC8qIFsxXSAqL1xuICBvdmVyZmxvdy15OiBzY3JvbGw7IC8qIFsyXSAqL1xuICBtaW4taGVpZ2h0OiAxMDAlOyAvKiBbM10gKi9cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjSEVBRElOR1NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogU2ltcGxlIGRlZmF1bHQgc3R5bGVzIGZvciBoZWFkaW5ncyAxIHRocm91Z2ggNi4gQW55dGhpbmcgbW9yZSBvcGluaW9uYXRlZFxuICogdGhhbiBzaW1wbGUgZm9udC1zaXplIGNoYW5nZXMgc2hvdWxkIGxpa2VseSBiZSBhcHBsaWVkIHZpYSBjbGFzc2VzIChzZWU6XG4gKiBodHRwOi8vY3Nzd2l6YXJkcnkuY29tLzIwMTYvMDIvbWFuYWdpbmctdHlwb2dyYXBoeS1vbi1sYXJnZS1hcHBzLykuXG4gKi9cblxuXG4vLyBXZSBoYXZlIGFsbCBvZiBvdXIgaGVhZGluZyBmb250IHNpemVzIGRlZmluZWQgaGVyZS4gUGFzc2luZyB0aGVzZSBwaXhlbFxuLy8gdmFsdWVzIGludG8gb3VyIGBpbnVpdC1mb250LXNpemUoKWAgbWl4aW4gd2lsbCBnZW5lcmF0ZSBhIHJlbS1iYXNlZFxuLy8gYGZvbnQtc2l6ZWAgd2l0aCBhIHBpeGVsIGZhbGxiYWNrLCBhcyB3ZWxsIGFzIGdlbmVyYXRpbmcgYSBgbGluZS1oZWlnaHRgIHRoYXRcbi8vIHdpbGwgc2l0IG9uIG91ciBiYXNlbGluZSBncmlkLlxuXG4kaW51aXQtZm9udC1zaXplLWgxOiAgMzZweCAhZGVmYXVsdDtcbiRpbnVpdC1mb250LXNpemUtaDI6ICAyOHB4ICFkZWZhdWx0O1xuJGludWl0LWZvbnQtc2l6ZS1oMzogIDI0cHggIWRlZmF1bHQ7XG4kaW51aXQtZm9udC1zaXplLWg0OiAgMjBweCAhZGVmYXVsdDtcbiRpbnVpdC1mb250LXNpemUtaDU6ICAxOHB4ICFkZWZhdWx0O1xuJGludWl0LWZvbnQtc2l6ZS1oNjogIDE2cHggIWRlZmF1bHQ7XG5cblxuaDEge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoJGludWl0LWZvbnQtc2l6ZS1oMSk7XG59XG5cbmgyIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKCRpbnVpdC1mb250LXNpemUtaDIpO1xufVxuXG5oMyB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgkaW51aXQtZm9udC1zaXplLWgzKTtcbn1cblxuaDQge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoJGludWl0LWZvbnQtc2l6ZS1oNCk7XG59XG5cbmg1IHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKCRpbnVpdC1mb250LXNpemUtaDUpO1xufVxuXG5oNiB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgkaW51aXQtZm9udC1zaXplLWg2KTtcbn1cbiIsIi8vLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgICNGT05ULVNJWkVcbi8vICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIEdlbmVyYXRlIGEgZm9udC1zaXplIGFuZCBiYXNlbGluZS1jb21wYXRpYmxlIGxpbmUtaGVpZ2h0LlxuQG1peGluIGludWl0LWZvbnQtc2l6ZSgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IGF1dG8sICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG5cbiAgQGlmICh0eXBlLW9mKCRmb250LXNpemUpID09IG51bWJlcikge1xuICAgIEBpZiAodW5pdCgkZm9udC1zaXplKSAhPSBcInB4XCIpIHtcbiAgICAgIEBlcnJvciBcImAjeyRmb250LXNpemV9YCBuZWVkcyB0byBiZSBhIHBpeGVsIHZhbHVlLlwiO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGVycm9yIFwiYCN7JGZvbnQtc2l6ZX1gIG5lZWRzIHRvIGJlIGEgbnVtYmVyLlwiO1xuICB9XG5cbiAgQGlmICgkaW1wb3J0YW50ID09IHRydWUpIHtcbiAgICAkaW1wb3J0YW50OiAhaW1wb3J0YW50O1xuICB9IEBlbHNlaWYgKCRpbXBvcnRhbnQgPT0gZmFsc2UpIHtcbiAgICAkaW1wb3J0YW50OiBudWxsO1xuICB9IEBlbHNlIHtcbiAgICBAZXJyb3IgXCJgI3skaW1wb3J0YW50fWAgbmVlZHMgdG8gYmUgYHRydWVgIG9yIGBmYWxzZWAuXCJcbiAgfVxuXG4gIC8vIFdlIHByb3ZpZGUgYSBgcHhgIGZhbGxiYWNrIGZvciBvbGQgSUVzIG5vdCBzdXBwb3J0aW5nIGByZW1gIHZhbHVlcy5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplICRpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogKCRmb250LXNpemUgLyAkaW51aXQtZ2xvYmFsLWZvbnQtc2l6ZSkgKiAxcmVtICRpbXBvcnRhbnQ7XG5cbiAgQGlmICgkbGluZS1oZWlnaHQgPT0gJ2F1dG8nKSB7XG4gICAgbGluZS1oZWlnaHQ6IGNlaWwoJGZvbnQtc2l6ZSAvICRpbnVpdC1nbG9iYWwtbGluZS1oZWlnaHQpICogKCRpbnVpdC1nbG9iYWwtbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKSAkaW1wb3J0YW50O1xuICB9XG5cbiAgQGVsc2Uge1xuXG4gICAgQGlmICh0eXBlLW9mKCRsaW5lLWhlaWdodCkgPT0gbnVtYmVyIG9yICRsaW5lLWhlaWdodCA9PSAnaW5oZXJpdCcgb3IgJGxpbmUtaGVpZ2h0ID09ICdub3JtYWwnKSB7XG4gICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0ICRpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAoJGxpbmUtaGVpZ2h0ICE9ICdub25lJyBhbmQgJGxpbmUtaGVpZ2h0ICE9IGZhbHNlKSB7XG4gICAgICBAZXJyb3IgXCJE4oCZb2ghIGAjeyRsaW5lLWhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBgJGxpbmUtaGVpZ2h0YC5cIlxuICAgIH1cblxuICB9XG5cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjSU1BR0VTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEZsdWlkIGltYWdlcyBmb3IgcmVzcG9uc2l2ZSBwdXJwb3Nlcy5cbiAqIDIuIE9mZnNldCBgYWx0YCB0ZXh0IGZyb20gc3Vycm91bmRpbmcgY29weS5cbiAqIDMuIFNldHRpbmcgYHZlcnRpY2FsLWFsaWduYCByZW1vdmVzIHRoZSB3aGl0ZXNwYWNlIHRoYXQgYXBwZWFycyB1bmRlciBgaW1nYFxuICogICAgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBkcm9wcGVkIGludG8gYSBwYWdlIGFzLWlzLiBTYWZlciBhbHRlcm5hdGl2ZSB0b1xuICogICAgdXNpbmcgYGRpc3BsYXk6IGJsb2NrO2AuXG4gKi9cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiBbMV0gKi9cbiAgZm9udC1zdHlsZTogaXRhbGljOyAvKiBbMl0gKi9cbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogWzNdICovXG59XG5cblxuLyoqXG4gKiAxLiBJZiBhIGB3aWR0aGAgYW5kL29yIGBoZWlnaHRgIGF0dHJpYnV0ZSBoYXZlIGJlZW4gZXhwbGljaXRseSBkZWZpbmVkLCBsZXTigJlzXG4gKiAgICBub3QgbWFrZSB0aGUgaW1hZ2UgZmx1aWQuXG4gKi9cblxuaW1nW3dpZHRoXSwgLyogWzFdICovXG5pbWdbaGVpZ2h0XSB7ICAvKiBbMV0gKi9cbiAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNUQUJMRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gRW5zdXJlIHRhYmxlcyBmaWxsIHVwIGFzIG11Y2ggc3BhY2UgYXMgcG9zc2libGUuXG4gKi9cblxudGFibGUge1xuICB3aWR0aDogMTAwJTsgLyogWzFdICovXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0NMRUFSRklYXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEF0dGFjaCBvdXIgY2xlYXJmaXggbWl4aW4gdG8gYSB1dGlsaXR5IGNsYXNzLlxuICovXG5cbi51LWNsZWFyZml4IHtcbiAgQGluY2x1ZGUgaW51aXQtY2xlYXJmaXgoKTtcbn1cbiIsIi8vLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgICNDTEVBUkZJWFxuLy8gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gTWl4aW4gdG8gZHJvcCBtaWNybyBjbGVhcmZpeCBpbnRvIGEgc2VsZWN0b3IuIEZ1cnRoZXIgcmVhZGluZzpcbi8vIGh0dHA6Ly93d3cuY3NzbW9qby5jb20vdGhlLXZlcnktbGF0ZXN0LWNsZWFyZml4LXJlbG9hZGVkL1xuLy9cbi8vIC51c2FnZSB7XG4vLyAgIEBpbmNsdWRlIGludWl0LWNsZWFyZml4KCk7XG4vLyB9XG5AbWl4aW4gaW51aXQtY2xlYXJmaXgoKSB7XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIiAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgY2xlYXI6IGJvdGggIWltcG9ydGFudDtcbiAgfVxuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1dJRFRIU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBpbnVpdGNzcyBnZW5lcmF0ZXMgYSBzZXJpZXMgb2YgdXRpbGl0eSBjbGFzc2VzIHRoYXQgZ2l2ZSBhIGZsdWlkIHdpZHRoIHRvXG4gKiB3aGljaGV2ZXIgZWxlbWVudCB0aGV54oCZcmUgYXBwbGllZCwgZS5nLjpcbiAqXG4gKiAgIDxpbWcgc3JjPVwiXCIgYWx0PVwiXCIgY2xhc3M9XCJ1LTEvMlwiIC8+XG4gKlxuICogVGhlc2UgY2xhc3NlcyBhcmUgbW9zdCBjb21tb25seSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggb3VyIGxheW91dCBzeXN0ZW0sXG4gKiBlLmcuOlxuICpcbiAqICAgPGRpdiBjbGFzcz1cIm8tbGF5b3V0X19pdGVtICB1LTEvMlwiPlxuICpcbiAqIEJ5IGRlZmF1bHQsIGludWl0Y3NzIHdpbGwgYWxzbyBnZW5lcmF0ZSByZXNwb25zaXZlIHZhcmlhbnRzIG9mIGVhY2ggb2YgdGhlc2VcbiAqIGNsYXNzZXMgYnkgdXNpbmcgeW91ciBTYXNzIE1RIGNvbmZpZ3VyYXRpb24sIGUuZy46XG4gKlxuICogICA8ZGl2IGNsYXNzPVwiby1sYXlvdXRfX2l0ZW0gIHUtMS8xICB1LTEvMkB0YWJsZXQgIHUtMS8zQGRlc2t0b3BcIj5cbiAqXG4gKiBPcHRpb25hbGx5LCBpbnVpdGNzcyBjYW4gZ2VuZXJhdGUgb2Zmc2V0IGNsYXNzZXMgd2hpY2ggY2FuIHB1c2ggYW5kIHB1bGxcbiAqIGVsZW1lbnRzIGxlZnQgYW5kIHJpZ2h0IGJ5IGEgc3BlY2lmaWVkIGFtb3VudCwgZS5nLjpcbiAqXG4gKiAgIDxkaXYgY2xhc3M9XCJvLWxheW91dF9faXRlbSAgdS0yLzMgIHUtcHVsbC0xLzNcIj5cbiAqXG4gKiBUaGlzIGlzIHVzZWZ1bCBmb3IgbWFraW5nIHZlcnkgZ3JhbnVsYXIgY2hhbmdlcyB0byB0aGUgcmVuZGVyZWQgb3JkZXIgb2ZcbiAqIGl0ZW1zIGluIGEgbGF5b3V0LlxuICpcbiAqIE4uQi4gVGhpcyBvcHRpb24gaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0LlxuICovXG5cblxuXG5cblxuLy8gV2hpY2ggZnJhY3Rpb25zIHdvdWxkIHlvdSBsaWtlIGluIHlvdXIgZ3JpZCBzeXN0ZW0ocyk/IEJ5IGRlZmF1bHQsIGludWl0Y3NzXG4vLyBwcm92aWRlcyB5b3UgZnJhY3Rpb25zIG9mIG9uZSB3aG9sZSwgaGFsdmVzLCB0aGlyZHMsIHF1YXJ0ZXJzIGFuZCBmaWZ0aHMsXG4vLyBlLmcuOlxuLy9cbi8vICAgLnUtMS8yXG4vLyAgIC51LTIvNVxuLy8gICAudS0zLzRcbi8vICAgLnUtMi8zXG5cbiRpbnVpdC1mcmFjdGlvbnM6IDEgMiAzIDQgNSAhZGVmYXVsdDtcblxuXG5cblxuXG4vLyBPcHRpb25hbGx5LCBpbnVpdGNzcyBjYW4gZ2VuZXJhdGUgY2xhc3NlcyB0byBvZmZzZXQgaXRlbXMgYnkgYSBjZXJ0YWluIHdpZHRoLlxuLy8gV291bGQgeW91IGxpa2UgdG8gZ2VuZXJhdGUgdGhlc2UgdHlwZXMgb2YgY2xhc3MgYXMgd2VsbD8gRS5nLjpcbi8vXG4vLyAgIC51LXB1c2gtMS8zXG4vLyAgIC51LXB1bGwtMi80XG4vLyAgIC51LXB1bGwtMS81XG4vLyAgIC51LXB1c2gtMi8zXG5cbiRpbnVpdC1vZmZzZXRzOiBmYWxzZSAhZGVmYXVsdDtcblxuXG5cblxuXG4vLyBCeSBkZWZhdWx0LCBpbnVpdGNzcyB1c2VzIGZyYWN0aW9ucy1saWtlIGNsYXNzZXMgbGlrZSBgPGRpdiBjbGFzcz1cInUtMS80XCI+YC5cbi8vIFlvdSBjYW4gY2hhbmdlIHRoZSBgL2AgdG8gd2hhdGV2ZXIgeW91IGZhbmN5IHdpdGggdGhpcyB2YXJpYWJsZS5cbiRpbnVpdC13aWR0aHMtZGVsaW1pdGVyOiBcXC8gIWRlZmF1bHQ7XG5cblxuXG5cblxuLy8gV2hlbiB1c2luZyBTYXNzLU1RLCB0aGlzIGRlZmluZXMgdGhlIHNlcGFyYXRvciBmb3IgdGhlIGJyZWFrcG9pbnRzIHN1ZmZpeFxuLy8gaW4gdGhlIGNsYXNzIG5hbWUuIEJ5IGRlZmF1bHQsIHdlIGFyZSBnZW5lcmF0aW5nIHRoZSByZXNwb25zaXZlIHN1ZmZpeGVzXG4vLyBmb3IgdGhlIGNsYXNzZXMgd2l0aCBhIGBAYCBzeW1ib2wgc28geW91IGdldCBjbGFzc2VzIGxpa2U6XG4vLyA8ZGl2IGNsYXNzPVwidS0zLzEyQG1vYmlsZVwiPlxuJGludWl0LXdpZHRocy1icmVha3BvaW50LXNlcGFyYXRvcjogXFxAICFkZWZhdWx0O1xuXG5cblxuXG5cbi8vIEEgbWl4aW4gdG8gc3BpdCBvdXQgb3VyIHdpZHRoIGNsYXNzZXMuIFBhc3MgaW4gdGhlIGNvbHVtbnMgd2Ugd2FudCB0aGUgd2lkdGhzXG4vLyB0byBoYXZlLCBhbmQgYW4gb3B0aW9uYWwgc3VmZml4IGZvciByZXNwb25zaXZlIHdpZHRocy4gRS5nLiB0byBjcmVhdGUgdGhpcmRzXG4vLyBhbmQgcXVhcnRlcnMgZm9yIGEgc21hbGwgYnJlYWtwb2ludDpcbi8vXG4vLyBAaW5jbHVkZSB3aWR0aHMoMyA0LCAtc20pO1xuXG5AbWl4aW4gaW51aXQtd2lkdGhzKCRjb2x1bW5zLCAkYnJlYWtwb2ludDogbnVsbCkge1xuXG4gIC8vIExvb3AgdGhyb3VnaCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIGVhY2ggZGVub21pbmF0b3Igb2Ygb3VyIGZyYWN0aW9ucy5cbiAgQGVhY2ggJGRlbm9taW5hdG9yIGluICRjb2x1bW5zIHtcblxuICAgIC8vIEJlZ2luIGNyZWF0aW5nIGEgbnVtZXJhdG9yIGZvciBvdXIgZnJhY3Rpb24gdXAgdW50aWwgd2UgaGl0IHRoZVxuICAgIC8vIGRlbm9taW5hdG9yLlxuICAgIEBmb3IgJG51bWVyYXRvciBmcm9tIDEgdGhyb3VnaCAkZGVub21pbmF0b3Ige1xuXG4gICAgICAvLyBCdWlsZCBhIGNsYXNzIGluIHRoZSBmb3JtYXQgYC51LTMvNFtAPGJyZWFrcG9pbnQ+XWAuXG4gICAgICAudS0jeyRudW1lcmF0b3J9I3skaW51aXQtd2lkdGhzLWRlbGltaXRlcn0jeyRkZW5vbWluYXRvcn0jeyRicmVha3BvaW50fSB7XG4gICAgICAgIHdpZHRoOiAoJG51bWVyYXRvciAvICRkZW5vbWluYXRvcikgKiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIEBpZiAoJGludWl0LW9mZnNldHMgPT0gdHJ1ZSkge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAqIDEuIFJlc2V0IGFueSBsZWZ0b3ZlciBvciBjb25mbGljdGluZyBgbGVmdGAvYHJpZ2h0YCB2YWx1ZXMuXG4gICAgICAgICovXG5cbiAgICAgICAgLy8gQnVpbGQgYSBjbGFzcyBpbiB0aGUgZm9ybWF0IGAudS1wdXNoLTEvMltAPGJyZWFrcG9pbnQ+XWAuXG4gICAgICAgIC51LXB1c2gtI3skbnVtZXJhdG9yfSN7JGludWl0LXdpZHRocy1kZWxpbWl0ZXJ9I3skZGVub21pbmF0b3J9I3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgICAgICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICAgICAgICAgIGxlZnQ6ICgkbnVtZXJhdG9yIC8gJGRlbm9taW5hdG9yKSAqIDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJ1aWxkIGEgY2xhc3MgaW4gdGhlIGZvcm1hdCBgLnUtcHVsbC01LzZbQDxicmVha3BvaW50Pl1gLlxuICAgICAgICAudS1wdWxsLSN7JG51bWVyYXRvcn0jeyRpbnVpdC13aWR0aHMtZGVsaW1pdGVyfSN7JGRlbm9taW5hdG9yfSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICAgICAgICByaWdodDogKCRudW1lcmF0b3IgLyAkZGVub21pbmF0b3IpICogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDsgLyogWzFdICovXG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxufVxuXG5cblxuXG4vKipcbiAqIEEgc2VyaWVzIG9mIHdpZHRoIGhlbHBlciBjbGFzc2VzIHRoYXQgeW91IGNhbiB1c2UgdG8gc2l6ZSB0aGluZ3MgbGlrZSBncmlkXG4gKiBzeXN0ZW1zLiBDbGFzc2VzIHRha2UgYSBmcmFjdGlvbi1saWtlIGZvcm1hdCAoZS5nLiBgLnUtMi8zYCkuIFVzZSB0aGVzZSBpblxuICogeW91ciBtYXJrdXA6XG4gKlxuICogPGRpdiBjbGFzcz1cInUtNy8xMlwiPlxuICpcbiAqIFRoZSBmb2xsb3dpbmcgd2lsbCBnZW5lcmF0ZSB3aWR0aHMgaGVscGVyIGNsYXNzZXMgYmFzZWQgb24gdGhlIGZyYWN0aW9uc1xuICogZGVmaW5lZCBpbiB0aGUgYCRpbnVpdC1mcmFjdGlvbnNgIGxpc3QuXG4gKi9cblxuQGluY2x1ZGUgaW51aXQtd2lkdGhzKCRpbnVpdC1mcmFjdGlvbnMpO1xuXG5cblxuXG4vKipcbiAqIElmIHdl4oCZcmUgdXNpbmcgU2Fzcy1NUSwgYXV0b21hdGljYWxseSBnZW5lcmF0ZSBncmlkIHN5c3RlbShzKSBmb3IgZWFjaCBvZiBvdXJcbiAqIGRlZmluZWQgYnJlYWtwb2ludHMsIGFuZCBnaXZlIHRoZW0gYSBSZXNwb25zaXZlIFN1ZmZpeCwgZS5nLjpcbiAqXG4gKiA8ZGl2IGNsYXNzPVwidS0zLzEyQG1vYmlsZVwiPlxuICovXG5cbkBpZiAodmFyaWFibGUtZXhpc3RzKG1xLWJyZWFrcG9pbnRzKSkge1xuXG4gIEBlYWNoICRpbnVpdC1icC1uYW1lLCAkaW51aXQtYnAtdmFsdWUgaW4gJG1xLWJyZWFrcG9pbnRzIHtcblxuICAgIEBpbmNsdWRlIG1xKCRmcm9tOiAkaW51aXQtYnAtbmFtZSkge1xuICAgICAgQGluY2x1ZGUgaW51aXQtd2lkdGhzKCRpbnVpdC1mcmFjdGlvbnMsICN7JGludWl0LXdpZHRocy1icmVha3BvaW50LXNlcGFyYXRvcn0jeyRpbnVpdC1icC1uYW1lfSk7XG4gICAgfVxuXG4gIH1cblxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXG5cbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgbW9kZVxuLy8vXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcbi8vL1xuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2Vycyxcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBvbGQtaWUuc2Nzc1xuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBsaXN0XG4vLy9cbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1icmVha3BvaW50czogKFxuICAgIG1vYmlsZTogIDMyMHB4LFxuICAgIHRhYmxldDogIDc0MHB4LFxuICAgIGRlc2t0b3A6IDk4MHB4LFxuICAgIHdpZGU6ICAgIDEzMDBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcbi8vL1xuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3Ncbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xuLy8vICAvL1xuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgJG1xLXN0YXRpYy1icmVha3BvaW50OiB0YWJsZXQ7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IGRlc2t0b3AgIWRlZmF1bHQ7XG5cbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy9cbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXG4vLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLy9cbi8vLyBAdHlwZSBtYXBcbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcblxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xuXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZS1mb250LXNpemUgKCRtcS1iYXNlLWZvbnQtc2l6ZSkgLSBgPGJvZHk+YCBmb250IHNpemVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxuLy8vXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xuICAgIEBpZiB1bml0bGVzcygkcHgpIHtcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIH1cbn1cblxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSAoJG1xLW1lZGlhLXR5cGUpIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxuLy8vXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuLy8vICAgICAgY29sb3I6IHJlZDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcShtb2JpbGUsIHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGdyZWVuO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xuLy8vICAgICAgY29sb3I6IHRlYWw7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKDk1MHB4KSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gIH1cbkBtaXhpbiBtcShcbiAgICAkZnJvbTogZmFsc2UsXG4gICAgJHVudGlsOiBmYWxzZSxcbiAgICAkYW5kOiBmYWxzZSxcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXG4gICAgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XG4pIHtcbiAgICAkbWluLXdpZHRoOiAwO1xuICAgICRtYXgtd2lkdGg6IDA7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcblxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxuICAgIEBpZiAkZnJvbSB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcbiAgICBAaWYgJHVudGlsIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XG5cbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcbiAgICAgICAgICAgIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIGFuZCAoXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGVuYWJsZWQsIG91dHB1dCBydWxlcyBpbnNpZGUgQG1lZGlhIHF1ZXJpZXNcbiAgICBAZWxzZSB7XG4gICAgICAgIEBpZiAkbWluLXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJG1heC13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWF4LXdpZHRoOiAjeyRtYXgtd2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRhbmQgICAgICAgICAgICB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgI3skYW5kfSc7IH1cblxuICAgICAgICAvLyBSZW1vdmUgdW5uZWNlc3NhcnkgbWVkaWEgcXVlcnkgcHJlZml4ICdhbGwgYW5kICdcbiAgICAgICAgQGlmICgkbWVkaWEtdHlwZSA9PSAnYWxsJyBhbmQgJG1lZGlhLXF1ZXJ5ICE9ICcnKSB7XG4gICAgICAgICAgICAkbWVkaWEtdHlwZTogJyc7XG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6IHN0ci1zbGljZSh1bnF1b3RlKCRtZWRpYS1xdWVyeSksIDYpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGlhLXR5cGUgKyAkbWVkaWEtcXVlcnl9IHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XG59XG5cbi8vLyBTaG93IHRoZSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgdmlld3BvcnRcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG93LWJyZWFrcG9pbnRzICgkbXEtc2hvdy1icmVha3BvaW50cykgLSBMaXN0IG9mIGJyZWFrcG9pbnRzIHRvIHNob3cgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpIC0gQnJlYWtwb2ludCBuYW1lcyBhbmQgc2l6ZXNcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zaG93LWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgZ2xvYmFsIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XG4vLy9cbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBjdXN0b20gc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cygoTCwgWEwpLCAoUzogMzAwcHgsIEw6IDgwMHB4LCBYTDogMTIwMHB4KSk7XG5AbWl4aW4gbXEtc2hvdy1icmVha3BvaW50cygkc2hvdy1icmVha3BvaW50czogJG1xLXNob3ctYnJlYWtwb2ludHMsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XG4gICAgYm9keTpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGOEUzO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBjb2xvcjogI0MwOTg1MztcbiAgICAgICAgZm9udDogc21hbGwtY2FwdGlvbjtcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTAwO1xuXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgdGhhdCBzaG91bGQgYmUgc2hvd25cbiAgICAgICAgQGVhY2ggJHNob3ctYnJlYWtwb2ludCBpbiAkc2hvdy1icmVha3BvaW50cyB7XG4gICAgICAgICAgICAkd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skc2hvdy1icmVha3BvaW50fSDiiaUgI3skd2lkdGh9ICgje21xLXB4MmVtKCR3aWR0aCl9KVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaWYgbGVuZ3RoKCRtcS1zaG93LWJyZWFrcG9pbnRzKSA+IDAge1xuICAgIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1BSSU5UXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFZlcnkgY3J1ZGUsIHJlc2V0LWxpa2Ugc3R5bGVzIHRha2VuIGZyb20gdGhlIEhUTUw1IEJvaWxlcnBsYXRlOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi81LjMuMC9kaXN0L2RvYy9jc3MubWQjcHJpbnQtc3R5bGVzXG4gKiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9kaXN0L2Nzcy9tYWluLmNzcyNMMjA1LUwyODJcbiAqL1xuXG5AbWVkaWEgcHJpbnQge1xuXG4gIC8qKlxuICAgKiAxLiBCbGFjayBwcmludHMgZmFzdGVyOiBodHRwOi8vd3d3LnNhbmJlaWppLmNvbS9hcmNoaXZlcy85NTNcbiAgICovXG5cbiAgKixcbiAgKjpiZWZvcmUsXG4gICo6YWZ0ZXIsXG4gICo6Zmlyc3QtbGV0dGVyLFxuICAqOmZpcnN0LWxpbmUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsgLyogWzFdICovXG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuXG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgfVxuXG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBEb24ndCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLCBvciB1c2UgdGhlIGBqYXZhc2NyaXB0OmBcbiAgICogcHNldWRvIHByb3RvY29sLlxuICAgKi9cblxuICBhW2hyZWZePVwiI1wiXTphZnRlcixcbiAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG5cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFByaW50aW5nIFRhYmxlczogaHR0cDovL2Nzcy1kaXNjdXNzLmluY3V0aW8uY29tL3dpa2kvUHJpbnRpbmdfVGFibGVzXG4gICAqL1xuXG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gIH1cblxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cblxuXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzO1xuICB9XG5cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgfVxuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0hJREVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICovXG5cbi51LWhpZGRlbi12aXN1YWxseSB7XG4gIEBpbmNsdWRlIGludWl0LWhpZGRlbi12aXN1YWxseSgpO1xufVxuXG5cbi8qKlxuICogSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycy5cbiAqL1xuXG4udS1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCIvLy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gICAjSElEREVOLVZJU1VBTExZXG4vLyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBNaXhpbiB0byBxdWlja2x5IGFwcGx5IGFjY2Vzc2libGUgaGlkaW5nIHRvIGVsZW1lbnRzLlxuQG1peGluIGludWl0LWhpZGRlbi12aXN1YWxseSgpIHtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuIiwiLnUtaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMTAyNHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAyMHB4O1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNXSURUSFNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQSBzZXJpZXMgb2Ygd2lkdGggaGVscGVyIGNsYXNzZXMgdGhhdCB5b3UgY2FuIHVzZSB0byBzaXplIHRoaW5ncyBsaWtlIGdyaWRcbiAqIHN5c3RlbXMuIENsYXNzZXMgY2FuIHRha2UgYSBmcmFjdGlvbi1saWtlIGZvcm1hdCAoZS5nLiBgLnUtMi8zYCkgb3IgYSBzcG9rZW4tXG4gKiB3b3JkIGZvcm1hdCAoZS5nLiBgLnUtMi1vZi0zYCkuIFVzZSB0aGVzZSBpbiB5b3VyIG1hcmt1cDpcbiAqXG4gKiA8ZGl2IGNsYXNzPVwidS03LzEyXCI+XG4gKlxuICogVGhlIGZvbGxvd2luZyB3aWxsIGdlbmVyYXRlIGEgMTIgYW5kIGEgMTYgY29sdW1uIGdyaWQgc3lzdGVtLlxuICovXG5cbkBpbmNsdWRlIGludWl0LXdpZHRocygxMik7XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIEBpbmNsdWRlIGludWl0LXdpZHRocygxMiwgXFxAcGFsbSk7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICBAaW5jbHVkZSBpbnVpdC13aWR0aHMoMTIsIFxcQHBvcnRhYmxlKTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgQGluY2x1ZGUgaW51aXQtd2lkdGhzKDEyLCBcXEBsYXApO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICBAaW5jbHVkZSBpbnVpdC13aWR0aHMoMTIsIFxcQGxhcC1hbmQtdXApO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgQGluY2x1ZGUgaW51aXQtd2lkdGhzKDEyLCBcXEBkZXNrdG9wKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSAxMiBhbmQgYSAxNiBjb2x1bW4gZ3JpZCBzeXN0ZW0gb24gc2NyZWVucyBvdmVyIDEyMDBweCB3aWRlLCBhbmQgZ2l2ZVxuICogdGhlbSBhIFJlc3BvbnNpdmUgU3VmZml4IG9mIGBAbGdgLCBlLmcuOlxuICpcbiAqIDxkaXYgY2xhc3M9XCJ1LTMvMTJAbGdcIj5cbiAqL1xuXG4vKiBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC8vIEBpbmNsdWRlIGludWl0LXdpZHRocygxMiAxNiwgXFxAbGcpO1xuICBAaW5jbHVkZSBpbnVpdC13aWR0aHMoMTIsIFxcQGxnKTtcbn0gKi9cblxuIiwiQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmphbGxhIE9uZSc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9GamFsbGFPbmUvRmphbGxhT25lLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvRmphbGxhT25lL0ZqYWxsYU9uZS1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL0xhdG8vTGF0by1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL0xhdG8vTGF0by1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0byc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9MYXRvL0xhdG8tTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvTGF0by9MYXRvLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdLaHVsYSc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9LaHVsYS9LaHVsYS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL0todWxhL0todWxhLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdLaHVsYSc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9LaHVsYS9LaHVsYS1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCcuLi9mb250cy9LaHVsYS9LaHVsYS1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmh0bWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zaXRpb246IDAuNHMgYWxsO1xuXG4gICYubG9ja2VkIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJi5vcGVuIHtcbiAgICBsZWZ0OiAzMDBweDtcbiAgfVxufVxuXG5ib2R5IHtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICAmLmNrZV9lZGl0YWJsZSB7XG4gICAgbWFyZ2luOiAyMHB4O1xuICB9XG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuaDEge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTAwcHgsIDEpO1xuICBjb2xvcjogJGJyYW5kLXByaW1hcnktY29sb3I7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbjogMCAwIDIwcHg7XG4gIGZvbnQtZmFtaWx5OiAnRmphbGxhIE9uZScsIENhbGlicmksIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMzAwO1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDYwcHgsIDEpO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfVxufVxuXG5oMiB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSg0MHB4LCAxLjQpO1xuICBjb2xvcjogJGJyYW5kLXByaW1hcnktY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG1hcmdpbjogMTBweCAwO1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDMwcHgsIDEuNCk7XG4gIH1cbn1cblxuaDMge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMThweCwgMS40KTtcbiAgbWFyZ2luOiAyMHB4IDAgMjBweCAyMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5oNCB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNnB4LCAxLjYpO1xuICBtYXJnaW46IDIwcHggMCAwO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5wIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDE2cHgsIDEuNik7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG5cbiAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTRweCwgMS42KTtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5hIHtcbiAgY29sb3I6ICRicmFuZC1wcmltYXJ5LWNvbG9yO1xuICB0cmFuc2l0aW9uOiAwLjNzIGFsbDtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGJyYW5kLXNlY29uZGFyeS1jb2xvcjtcbiAgfVxufVxuXG5ibG9ja3F1b3RlIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDI0cHgsIDEuNCk7XG4gIGZvbnQtZmFtaWx5OiAnRmphbGxhIE9uZScsIENhbGlicmksIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogJGJyYW5kLXNlY29uZGFyeS1jb2xvcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogNTBweCAwO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1wiJztcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnXCInO1xuICB9XG59XG5cbnRhYmxlIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDE0cHgsIDEuNCk7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMDtcblxuICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgdGgsXG4gIHRkIHtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBzaGFkZSgkd2hpdGUtY29sb3IsIDEwJSk7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgdGgge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbn1cblxuLmwtYXJ0aWNsZV9fc2lkZWJhciArIC5sLWFydGljbGVfX2NvbnRlbnQge1xuICB0YWJsZSB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzNzVweCk7XG5cbiAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4uc2xpY2stbGlzdCxcbi5zbGljay10cmFjayB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pZS1tZXNzYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA5OTk5O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAkd2hpdGUtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBwYWRkaW5nOiA3MHB4O1xuXG4gIGgxIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoNDVweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkYnJhbmQtcHJpbWFyeS1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICBpbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICBUWUVQS0lUIEZPVVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ud2YtbG9hZGluZyB7XG4gICoge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuXG4ud2YtYWN0aXZlLFxuLndmLWluYWN0aXZlIHtcbiAgKiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiIsIi8vLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgICNDT0xPUlNcbi8vICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRibGFjay1jb2xvcjogIzAwMDtcbiR3aGl0ZS1jb2xvcjogI2ZmZjtcblxuJHRleHQtY29sb3I6ICMxYTFhMTg7XG4kYmx1ZS1jb2xvcjogIzAwOGFhYjtcbiRicmFuZC1wcmltYXJ5LWNvbG9yOiAjMDA2NTgyO1xuJGJyYW5kLXNlY29uZGFyeS1jb2xvcjogI2I0YTAzMDtcbiIsIi8vLyBTbGlnaHRseSBsaWdodGVuIGEgY29sb3Jcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIGNvbG9yIHRvIHRpbnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHBlcmNlbnRhZ2UgLSBwZXJjZW50YWdlIG9mIGAkY29sb3JgIGluIHJldHVybmVkIGNvbG9yXG4vLy8gQHJldHVybiB7Q29sb3J9XG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50YWdlKSB7XG4gIEByZXR1cm4gbWl4KCR3aGl0ZS1jb2xvciwgJGNvbG9yLCAkcGVyY2VudGFnZSk7XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW4gYSBjb2xvclxuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gY29sb3IgdG8gc2hhZGVcbi8vLyBAcGFyYW0ge051bWJlcn0gJHBlcmNlbnRhZ2UgLSBwZXJjZW50YWdlIG9mIGAkY29sb3JgIGluIHJldHVybmVkIGNvbG9yXG4vLy8gQHJldHVybiB7Q29sb3J9XG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peCgkYmxhY2stY29sb3IsICRjb2xvciwgJHBlcmNlbnRhZ2UpO1xufVxuIiwiLmwtYXJ0aWNsZSB7XG4gIHBhZGRpbmctYm90dG9tOiAxMDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gIH1cbn1cblxuLmwtYXJ0aWNsZV9fY29udGVudCB7XG4gIEBleHRlbmQgLnUtY2xlYXJmaXg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5sLWFydGljbGVfX2NvbnRlbnQtLXNpZGViYXIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzgwcHgpO1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmwtYXJ0aWNsZV9fc2lkZWJhciB7XG4gIHdpZHRoOiAzMzVweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogNDBweDtcblxuICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cbn1cblxuLmwtYXJ0aWNsZV9faW50cm8gcCB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgyMHB4LCAxLjYpO1xuICBtYXJnaW46IDMwcHggMDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgyMHB4LCAxLjYpO1xuICB9XG59XG5cbi5sLWFydGljbGVfX2luZm8ge1xuICBib3JkZXI6IDJweCBzb2xpZCAkdGV4dC1jb2xvcjtcbiAgcGFkZGluZzogMTBweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuXG4gIGgzIHtcbiAgICBmb250LWZhbWlseTogJ0ZqYWxsYSBPbmUnLCBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBjb2xvcjogJGJyYW5kLXByaW1hcnktY29sb3I7XG4gIH1cbn1cblxuLmwtYXJ0aWNsZV9fYXV0aG9yIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDE4cHgsIDEpO1xuICBjb2xvcjogJGJyYW5kLXByaW1hcnktY29sb3I7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNnB4LCAxKTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJic7XG4gIH1cblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuXG4gIHN1cCB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDEzcHgsIDEpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXByaW1hcnktY29sb3I7XG4gICAgY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiAgICBwYWRkaW5nOiAycHggNnB4IDJweCA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDE0cHgsIDEuNCk7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG4ubC1hcnRpY2xlX19zb3VyY2VzIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0ZXh0LWNvbG9yO1xuICBwYWRkaW5nLXRvcDogMjBweDtcblxuICB1bCB7XG4gICAgbWFyZ2luOiAwIDAgMCAyMHB4O1xuICB9XG5cbiAgcCwgbGkge1xuICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNHB4LCAxLjQpO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbn1cblxuLmwtYXJ0aWNsZV9fY29sbGFiLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNHB4LCAxLjQpO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gIHN1cCB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDEwcHgsIDEpO1xuICAgIHBhZGRpbmc6IDJweCA1cHggMnB4IDRweDtcbiAgfVxufVxuXG4ubC1hcnRpY2xlX19jb2xsYWIge1xuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJywnO1xuICB9XG5cbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5sLWFydGljbGVfX2RpdmlkZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2FydGljbGUtaGVhZGVyLWRpdmlkZXIuc3ZnJykgbm8tcmVwZWF0O1xuICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgYm90dG9tOiAtMXB4O1xuICBsZWZ0OiAtMXB4O1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICB9XG59XG5cbi8qICdWcnVjaHRlbiB2YW4gZGUgemVlJyBsYXlvdXQgKi9cbi5sLWFydGljbGUtLWNhdGVnb3J5LFxuLmwtYXJ0aWNsZS0tc2VhIHtcbiAgLmwtYXJ0aWNsZV9fZGl2aWRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLmwtYXJ0aWNsZS0tY2F0ZWdvcnkge1xuICAubC1hcnRpY2xlX19oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9jYXRlZ29yeS1iYWNrZ3JvdW5kLnN2ZycpIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4MHB4O1xuXG4gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIH1cbiAgfVxuXG4gIGgxIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoNTZweCwgMSk7XG4gICAgZm9udC1mYW1pbHk6ICdMYXRvJywgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDQwcHgsIDEpO1xuICAgIH1cbiAgfVxufVxuXG4ubC1hcnRpY2xlX19jYXRlZ29yeS1sYWJlbCB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgyNHB4LCAxKTtcbiAgZm9udC1mYW1pbHk6ICdGamFsbGEgT25lJywgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbG9yOiAkd2hpdGUtY29sb3I7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICBAYXQtcm9vdCAubC1hcnRpY2xlLS1jYXRlZ29yeTEgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc1QUE5OTtcbiAgfVxuXG4gIEBhdC1yb290IC5sLWFydGljbGUtLWNhdGVnb3J5MiAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjA3MjY5O1xuICB9XG5cbiAgQGF0LXJvb3QgLmwtYXJ0aWNsZS0tY2F0ZWdvcnkzICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MzYyNEY7XG4gIH1cblxuICBAYXQtcm9vdCAubC1hcnRpY2xlLS1jYXRlZ29yeTQgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUyNzA4MztcbiAgfVxuXG4gIEBhdC1yb290IC5sLWFydGljbGUtLWNhdGVnb3J5NSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTI3MDgzO1xuICB9XG5cbiAgQGF0LXJvb3QgLmwtYXJ0aWNsZS0tY2F0ZWdvcnk2ICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njk4QkQ7XG4gIH1cblxuICBAYXQtcm9vdCAubC1hcnRpY2xlLS1jYXRlZ29yeTcgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0QzQ0M1NDtcbiAgfVxufVxuXG4vKiAnSW4gZGUgYnJhbmRpbmcnIGxheW91dCAqL1xuLmwtYXJ0aWNsZS0tcm9jayB7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvc2FuZC1wYXR0ZXJuLmpwZycpIHJlcGVhdDtcbiAgcGFkZGluZzogNTBweCAwO1xuXG4gIGgxIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJGJyYW5kLXNlY29uZGFyeS1jb2xvcjtcbiAgfVxufVxuXG4vKiAnS3VzdGtpZWtqZScgbGF5b3V0ICovXG4ubC1hcnRpY2xlX19mdWxsc2NyZWVuIHtcbiAgaGVpZ2h0OiA4MHZoO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuIiwiLmwtYmFjay1jb3ZlciB7XG4gIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS1jb2xvcjtcbiAgY29sb3I6ICR3aGl0ZS1jb2xvcjtcblxuICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA3MHB4O1xuICB9XG5cbiAgaDIge1xuICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSg1MHB4LCAxLjQpO1xuICAgIGNvbG9yOiAkd2hpdGUtY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMzBweCwgMS40KTtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogJHdoaXRlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG5cbi5sLWJhY2stY292ZXJfX2luZm8ge1xuICBib3JkZXI6IDJweCBzb2xpZCAkd2hpdGUtY29sb3I7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbiIsIi5sLWVkaXRvIHtcbiAgcGFkZGluZy10b3A6IDUwcHg7XG5cbiAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbiAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgfVxufVxuXG4ubC1lZGl0b19fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoODBweCk7XG4gIH1cbn1cblxuLmwtZWRpdG9fX2NvbnRhaW5lciB7XG4gIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkdGV4dC1jb2xvcjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICB9XG59XG5cbi5sLWVkaXRvX19zdW1tYXJ5IHtcbiAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuICAgIG1hcmdpbi1sZWZ0OiAtNDBweDtcbiAgfVxuXG4gIC5jLW1hc29ucnkge1xuICAgIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICB9XG4gIH1cbn1cblxuLmwtZWRpdG9fX3N1bW1hcnlfX3RpdGxlIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDMwcHgsIDEpO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoNDBweCwgMSk7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuIiwiLmwtZ3JpZCB7XG4gIEBleHRlbmQgLnUtY2xlYXJmaXg7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuICAgIG1hcmdpbi1sZWZ0OiAtNDBweDtcbiAgfVxufVxuXG4ubC1ncmlkX19pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gIH1cbn1cblxuIiwiLmMtYmFjay10by10b3Age1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMjZweCwgMSk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDIwcHg7XG4gIGJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRleHQtY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAkd2hpdGUtY29sb3I7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICB6LWluZGV4OiA5OTk5O1xuICBvcGFjaXR5OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IDAuNXMgb3BhY2l0eSwgMC40cyBiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICYuZmFkZWQtaW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCR0ZXh0LWNvbG9yLCAxMCUpO1xuICB9XG5cbiAgaW1nIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICB9XG59XG4iLCIuYy1jYXJvdXNlbCB7XG4gIGhlaWdodDogNDAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG59XG5cbi5jLWNhcm91c2VsX19pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYy1jYXJvdXNlbF9faXRlbV9fdGl0bGUge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTRweCwgMS40KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYWNrLWNvbG9yLCAwLjcpO1xufVxuIiwiLmMtY29sb2ZvbiB7XG4gIHBhZGRpbmctdG9wOiA1MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICB9XG5cbiAgcCB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDE1cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbn1cblxuLmMtY29sb2Zvbl9fdGl0bGUge1xuICBjb2xvcjogJGJsdWUtY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5jLWNvbG9mb25fX2NvbnRlbnQtLWNvbHVtbnMge1xuICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG4gICAgY29sdW1uczogMztcbiAgICBjb2x1bW4tZ2FwOiA1MHB4O1xuICAgIGNvbHVtbi1ydWxlOiAxcHggb3V0c2V0IHNoYWRlKCR3aGl0ZS1jb2xvciwgMjAlKTtcbiAgfVxufVxuXG4uYy1jb2xvZm9uX19saW5rIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDQ1cHgpO1xuICBjb2xvcjogJGJsdWUtY29sb3I7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5jLWNvbG9mb25fX3Nwb25zb3JzIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcblxuICBpbWcge1xuICAgIGhlaWdodDogMzVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxufVxuIiwiLmMtY292ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiA3NzBweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgIG1pbi1oZWlnaHQ6IDY1MHB4O1xuICB9XG59XG5cbi5jLWNvdmVyX19oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiAgcGFkZGluZzogNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgcGFkZGluZzogMjBweDtcbiAgfVxuXG4gIHAge1xuICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNnB4LCAxLjQpO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDE0cHgsIDEuNCk7XG4gICAgfVxuICB9XG5cbiAgaDEge1xuICAgIGNvbG9yOiAjZWFjMjkwO1xuICB9XG5cbiAgaDIge1xuICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG59XG5cbi5jLWNvdmVyX19udW1iZXIge1xuICBmb250LWZhbWlseTogJ0todWxhJywgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJvdHRvbTogLTgwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1zZWNvbmRhcnktY29sb3I7XG4gIGNvbG9yOiAkd2hpdGUtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMzVweCAxMHB4O1xuICB3aWR0aDogMTI5cHg7XG5cbiAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAzNHB4IDEwcHg7XG4gICAgd2lkdGg6IDExMHB4O1xuICB9XG5cbiAgc3BhbiB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDE0cHgsIDEpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWluLXdpZHRoOiA2MHB4O1xuXG4gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxMnB4LCAxKTtcbiAgICAgIG1pbi13aWR0aDogNTBweDtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSg0NXB4LCAxKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgzMHB4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmMtY292ZXJfX2FydGljbGVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMzBweDtcbiAgbWFyZ2luLXRvcDogOTBweDtcbiAgcGFkZGluZzogMjBweDtcbiAgbWF4LXdpZHRoOiA1MDBweDtcblxuICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tdG9wOiA4MHB4O1xuICB9XG5cbiAgcCB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDIycHgsIDEuNCk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkd2hpdGUtY29sb3IsIDAuOCk7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4IDA7XG5cbiAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDE2cHgsIDEuNCk7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4uYy1jb3Zlcl9fdG9wLWFydGljbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwMHB4O1xuICBib3R0b206IDMwcHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIG1heC13aWR0aDogNjQwcHg7XG5cbiAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gIH1cblxuICBwIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMjhweCwgMS40KTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stY29sb3I7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4IDA7XG5cbiAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDIwcHgsIDEuNCk7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLmMtaW1nLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uYy1pbWctYmxvY2tfX25vdGUge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTRweCwgMS40KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcblxuICBwIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTRweCwgMS40KTtcbiAgfVxufVxuIiwiLmMtbWFzb25yeSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IDAuNXMgb3BhY2l0eTtcblxuICAmLmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uYy1tYXNvbnJ5X19pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMTVweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICB9XG5cbiAgYSBpbWcge1xuICAgICY6aG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIH1cbiAgfVxufVxuXG4uYy1tYXNvbnJ5X19pdGVtX190aXRsZSB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNHB4LCAxLjQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBjb2xvcjogJHdoaXRlLWNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxhY2stY29sb3IsIDAuNyk7XG59XG5cbi5jLW1hc29ucnlfX2l0ZW0tLWJpZyB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xuXG4gIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi5jLXBhcmFncmFwaC1jYXJkIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3gtc2hhZG93OiAwIDAgMzBweCAwIHJnYmEoJGJsYWNrLWNvbG9yLCAwLjIpO1xuXG4gIHAge1xuICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNnB4LCAxLjYpO1xuXG4gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNHB4LCAxLjYpO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgfVxufVxuXG4uYy1wYXJhZ3JhcGgtY2FyZF9fdGl0bGUge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMzJweCwgMSk7XG4gIGNvbG9yOiAkYnJhbmQtcHJpbWFyeS1jb2xvcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6ICdGamFsbGEgT25lJywgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG5cbiAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMjZweCwgMSk7XG4gIH1cbn1cblxuLmMtcGFyYWdyYXBoLWNhcmRfX2F1dGhvcnMge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgkYmxhY2stY29sb3IsIDAuMSk7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xufVxuXG4uYy1wYXJhZ3JhcGgtY2FyZF9fYXV0aG9yIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcmJztcbiAgfVxuXG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLmMtcGRmLWRvd25sb2FkIHtcbiAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDEzcHgsIGZhbHNlKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAyMHB4O1xuICBib3R0b206IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogJHdoaXRlLWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgei1pbmRleDogOTk5OTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiAwLjRzIGFsbDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCR0ZXh0LWNvbG9yLCAxMCUpO1xuICB9XG5cbiAgaW1nIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICB9XG59XG5cbi5vcGVuIC5jLXBkZi1kb3dubG9hZCB7XG4gIGxlZnQ6IDMyMHB4O1xufVxuIiwiLmMtc2VhLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtY29sb3I7XG4gIHBhZGRpbmc6IDUwcHggMDtcbiAgbWluLWhlaWdodDogMzYwcHg7XG5cbiAgcCB7XG4gICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDIycHgsIDEuNCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAkd2hpdGUtY29sb3I7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IDEwcHggMDtcblxuICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMThweCwgMS40KTtcbiAgICB9XG4gIH1cbn1cblxuLmMtc2VhLWhlYWRlcl9fdGl0bGUge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTAwcHgsIDEpO1xuICBjb2xvcjogJHdoaXRlLWNvbG9yO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogJ0ZqYWxsYSBPbmUnLCBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSg0NXB4LCAxKTtcbiAgfVxufVxuXG4uYy1zZWEtaGVhZGVyX19hdXRob3Ige1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcsJztcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLmwtYXJ0aWNsZS0tc2VhICsgLmwtYXJ0aWNsZS0tc2VhIHtcbiAgLmMtc2VhLWhlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLmMtc3VtbWFyeSB7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtc2Vjb25kYXJ5LWNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMTAwcHg7XG4gIHotaW5kZXg6IC0xMDA7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgb3BhY2l0eTogMTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAzMHB4IDAgcmdiYSgkYmxhY2stY29sb3IsIDAuMyk7XG4gIHRyYW5zaXRpb246IDAuNHMgYWxsO1xuXG4gICYub3BlbiB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBzaGFkZSgkYnJhbmQtc2Vjb25kYXJ5LWNvbG9yLCA1JSk7XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMjBweCwgMS42KTtcbiAgICBjb2xvcjogJHdoaXRlLWNvbG9yO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7XG5cbiAgICAmOmhvdmVyLFxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGJyYW5kLXNlY29uZGFyeS1jb2xvciwgMTAlKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgaW51aXQtZm9udC1zaXplKDE4cHgsIDEuNik7XG4gICAgfVxuICB9XG59XG4iLCIuYy1zdW1tYXJ5LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHRleHQtY29sb3I7XG5cbiAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgfVxuXG4gIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBsaSB7XG4gICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIHJnYmEoJHRleHQtY29sb3IsIDAuMik7XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkYnJhbmQtc2Vjb25kYXJ5LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuIiwiLmMtc3VtbWFyeS10b2dnbGUge1xuICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMTNweCwgZmFsc2UpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDIwcHg7XG4gIHRvcDogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRleHQtY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAkd2hpdGUtY29sb3I7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICB6LWluZGV4OiA5OTk5O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IDAuNHMgYWxsO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHRleHQtY29sb3IsIDEwJSk7XG4gIH1cblxuICAmLm9wZW4ge1xuICAgIGxlZnQ6IDMyMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1zZWNvbmRhcnktY29sb3I7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYnJhbmQtc2Vjb25kYXJ5LWNvbG9yLCAxMCUpO1xuICAgIH1cbiAgfVxufVxuXG4uYy1zdW1tYXJ5LXRvZ2dsZV9faWNvbiB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogM3B4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNpdGlvbjogMC4yNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMiksXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgdG9wOiA4cHg7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgdG9wOiAxNnB4O1xuICAgIH1cbiAgfVxufVxuXG4uYy1zdW1tYXJ5LXRvZ2dsZV9faWNvbi5vcGVuIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgdG9wOiA0cHg7XG4gIHdpZHRoOiAwO1xuICBsZWZ0OiA1MCU7XG59XG5cbi5jLXN1bW1hcnktdG9nZ2xlX19pY29uLm9wZW4gc3BhbjpudGgtY2hpbGQoMikge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbi5jLXN1bW1hcnktdG9nZ2xlX19pY29uLm9wZW4gc3BhbjpudGgtY2hpbGQoMykge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4uYy1zdW1tYXJ5LXRvZ2dsZV9faWNvbi5vcGVuIHNwYW46bnRoLWNoaWxkKDQpIHtcbiAgdG9wOiA0cHg7XG4gIHdpZHRoOiAwO1xuICBsZWZ0OiA1MCU7XG59IiwiLmMtdG9vbHRpcCB7XG4gIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNHB4LCAxLjYpO1xuICBjb2xvcjogJHdoaXRlLWNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkdGV4dC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDtcbiAgcGFkZGluZzogMTBweDtcbiAgbWF4LXdpZHRoOiAzNDBweDtcblxuICAmOjphZnRlciB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkICR0ZXh0LWNvbG9yO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm90dG9tOiAtMTBweDtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIH1cblxuICAmLnRvcDo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgJHRleHQtY29sb3I7XG4gICAgdG9wOiAtMjBweDtcbiAgICBib3R0b206IGF1dG87XG4gIH1cblxuICAmLmxlZnQ6OmFmdGVyIHtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gICYucmlnaHQ6OmFmdGVyIHtcbiAgICByaWdodDogMTBweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuIl19 */
