/* ==========================================================================
BREAKPOINTS
========================================================================== */
/* ==========================================================================
COLOR PALETTE
========================================================================== */
:root {
  --color-true-black: #000;
  --color-black: #231f20;
  --color-white: #fff;
  --color-white-50: rgba(255, 255, 255, 0.5);
  --color-red: #cf3338;
  --color-blue: #005289;
  --color-light-blue: #6da9dc;
  --color-dark-blue: #0a1c2a;
  --color-grey-1: #6d6e71;
  --color-grey-2: #a7a8aa;
  --color-grey-3: #f2f3f5;
  --color-gold: #c8982c;
}

/* ==========================================================================
GRID SETTINGS
========================================================================== */
/* ==========================================================================
IMAGES
All images should be set to variables to be used within the codebase,
this provides a central location for any replacements to be implemented
========================================================================== */
/* ==========================================================================
SPACINGS
========================================================================== */
:root {
  --global-baseline: 8px;
  --spacing-xxs: 4px;
  --spacing-xs: 8px;
  --spacing-s: 16px;
  --spacing-m: 24px;
  --spacing-l: 32px;
  --spacing-xl: 40px;
  --spacing-xxl: 48px;
}

/* ==========================================================================
TRANSITION
========================================================================== */
:root {
  --transition-base-easing: ease-in-out;
  --transition-base-duration: 125ms;
}

:root {
  --font-size-body-desktop: 16px;
  --font-size-body-mobile: 16px;
  --line-height-body-desktop: 1.5;
  --line-height-body-mobile: 1.5;
  --font-size-small-desktop: 14px;
  --font-size-small-mobile: 12px;
  --line-height-small: 1.5;
  --font-size-medium-desktop: 24px;
  --font-size-medium-mobile: 20px;
  --line-height-medium: 1.5;
  --font-size-large-desktop: 36px;
  --font-size-large-mobile: 24px;
  --line-height-large: 1.2;
  --font-size-larger-desktop: 44px;
  --font-size-larger-mobile: 36px;
  --line-height-larger: 1.2;
  --margin-h1-desktop: 0 0 var(--spacing-m);
  --margin-h1-mobile: 0 0 var(--spacing-m);
  --margin-h2-desktop: 0 0 var(--spacing-m);
  --margin-h2-mobile: 0 0 var(--spacing-s);
  --margin-h3-desktop: 0 0 var(--spacing-s);
  --margin-h3-mobile: 0 0 var(--spacing-s);
  --margin-h4-desktop: 0 0 var(--spacing-m);
  --margin-h4-mobile: 0 0 var(--spacing-s);
  --margin-h5-desktop: 0 0 var(--spacing-s);
  --margin-h5-mobile: 0 0 var(--spacing-xs);
  --margin-h6-desktop: 0 0 var(--spacing-xs);
  --margin-h6-mobile: 0 0 var(--spacing-xs);
  --margin-p-desktop: 0 0 var(--spacing-m);
  --margin-p-mobile: 0 0 var(--spacing-s);
  --margin-large-desktop: 0 0 var(--spacing-l);
  --margin-large-mobile: 0 0 var(--spacing-m);
}

/* ==========================================================================
SPACING FUNCTIONS
========================================================================== */
/**
 * Generates the value for a spacing by multiplying
 * the global baseline with the given ratio.
 *
 * USAGE:
 * margin-bottom: spacing(10);
 *
 * NOTE:
 * Please use spacing variables if applicable.
 * This function should only be used if the spacing you're trying
 * to achieve doesn't exist in the styleguide. (see settings/spacings.scss)
 */
/* ==========================================================================
MEDIA QUERIES
Based on https://www.freecodecamp.org/news/the-100-correct-way-to-do-css-breakpoints-88d6a5ba1862/
Example usage:
.my-class {
  padding: 10px;
  @include for-desktop-up {
    padding: 20px;
  }
}
========================================================================== */
/* ==========================================================================
BUTTONS
========================================================================== */
/* ==========================================================================
DIMENSIONS
========================================================================== */
/**
 * Helper for absolute full
 */
/* ==========================================================================
GRID
========================================================================== */
/* ==========================================================================
GRID GAP
========================================================================== */
/* ==========================================================================
IMAGES
========================================================================== */
/**
 * Fit an image to its container
 */
/**
 * Shortcut to background image properties
 */
/* ==========================================================================
PADDING
========================================================================== */
/* ==========================================================================
RESET
========================================================================== */
/**
 * Reset all padding and margin
 */
/**
 * This mixin can be used to reset the appearance of a list element (ul, ol)
 */
/**
 * This mixin can be used to reset the appearance
 * of an input[type="submit"] element
 */
/**
 * This mixin can be used to reset the appearance of a <button> element
 */
/**
 * This mixin can be used to remove the default anchor styling.
 */
/**
 * This mixin can be used to remove the default list styling.
 */
/* ==========================================================================
TRANSITION
========================================================================== */
/**
 * Transition shortcut
 */
/* ==========================================================================
TYPOGRAPHY
========================================================================== */
/**
 * Typography mixins to ensure that the correct desktop
 * and mobile sizes of fonts are correct
 */
/*------------------------------------
Generic
------------------------------------*/
/* ==========================================================================
BODY
========================================================================== */
html {
  scroll-behavior: smooth;
}

body {
  color: var(--color-black);
}

/* ==========================================================================
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 v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

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

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

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

.wp-block-kadence-rowlayout > .kt-row-layout-inner {
	padding:0 20px;
}

/* Grouping content
   ========================================================================== */
/**
 * 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
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 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 */
}

/**
 * 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 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
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 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 {
  overflow: visible;
  /* 1 */
}

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

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

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

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

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

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

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
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 in Chrome and Safari on macOS.
 */
[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 Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

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

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

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

/*------------------------------------
Elements
- only simple HTML tags can go here
------------------------------------*/
/* ==========================================================================
LINKS
========================================================================== */
@media (max-width: 1024px) {
  .alignleft,
.alignright {
    display: block;
    float: none;
  }
}

.ast-no-sidebar .entry-content .alignfull .alignfull {
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  padding-left: 0;
  padding-right: 0;
  max-width: 100vw;
  width: 100vw;
}

/* ==========================================================================
FORMS
========================================================================== */
.single-content input:not([type=button]):not([type=submit]):not([type=reset]),
.single-content textarea,
.single-content select,
#colophon input:not([type=button]):not([type=submit]):not([type=reset]),
#colophon textarea,
#colophon select {
  padding: var(--spacing-s);
  color: var(--color-black);
  border-radius: 0;
  border: solid 1px var(--color-grey-2) !important;
  background-color: var(--color-grey-3);
}
.single-content input:not([type=button]):not([type=submit]):not([type=reset])::placeholder,
.single-content textarea::placeholder,
.single-content select::placeholder,
#colophon input:not([type=button]):not([type=submit]):not([type=reset])::placeholder,
#colophon textarea::placeholder,
#colophon select::placeholder {
  color: var(--color-grey-2);
}
.single-content input:not([type=button]):not([type=submit]):not([type=reset]):focus,
.single-content textarea:focus,
.single-content select:focus,
#colophon input:not([type=button]):not([type=submit]):not([type=reset]):focus,
#colophon textarea:focus,
#colophon select:focus {
  color: var(--color-black);
  border-color: var(--color-red) !important;
}
.single-content select,
#colophon select {
  padding: var(--spacing-s);
  background-color: var(--color-white);
}
.single-content input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]),
.single-content input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]),
#colophon input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]),
#colophon input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]) {
  height: var(--spacing-m) !important;
  width: var(--spacing-m) !important;
  background-color: var(--color-white) !important;
  padding: 0 !important;
  margin: 0;
  border-radius: 0;
  -webkit-appearance: none;
  overflow: hidden;
  position: relative;
  top: 6px;
}
.single-content input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]) + label,
.single-content input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]) + span,
.single-content input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]) label,
.single-content input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]) span,
.single-content input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]) + label,
.single-content input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]) + span,
.single-content input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]) label,
.single-content input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]) span,
#colophon input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]) + label,
#colophon input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]) + span,
#colophon input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]) label,
#colophon input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]) span,
#colophon input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]) + label,
#colophon input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]) + span,
#colophon input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]) label,
#colophon input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]) span {
  display: inline;
  color: var(--color-black);
  font-size: 1em;
  line-height: normal;
  letter-spacing: normal;
  padding: 0 0 0 12px;
  margin: 0;
}
.single-content input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]):focus,
.single-content input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]):focus,
#colophon input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]):focus,
#colophon input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]):focus {
  border-color: var(--color-blue) !important;
}
.single-content input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]):checked,
.single-content input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]):checked,
#colophon input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]):checked,
#colophon input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]):checked {
  border-color: var(--color-blue);
}
.single-content input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]):checked::after,
.single-content input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]):checked::after,
#colophon input[type=radio]:not([type=button]):not([type=submit]):not([type=reset]):checked::after,
#colophon input[type=checkbox]:not([type=button]):not([type=submit]):not([type=reset]):checked::after {
  content: "";
  display: block;
  height: 100% !important;
  width: 100% !important;
  border-color: var(--color-blue);
  background-color: var(--color-blue);
}

/* ==========================================================================
HEADINGS
========================================================================== */
.single-content h1 {
  margin: var(--margin-h1-mobile);
}
@media (min-width: 1025px) {
  .single-content h1 {
    margin: var(--margin-h1-desktop);
  }
}
.single-content h2 {
  margin: var(--margin-h2-mobile);
}
@media (min-width: 1025px) {
  .single-content h2 {
    margin: var(--margin-h2-desktop);
  }
}
.single-content h3 {
  margin: var(--margin-h3-mobile);
}
@media (min-width: 1025px) {
  .single-content h3 {
    margin: var(--margin-h3-desktop);
  }
}
.single-content h4 {
  margin: var(--margin-h4-mobile);
}
@media (min-width: 1025px) {
  .single-content h4 {
    margin: var(--margin-h4-desktop);
  }
}
.single-content h5 {
  margin: var(--margin-h5-mobile);
}
@media (min-width: 1025px) {
  .single-content h5 {
    margin: var(--margin-h5-desktop);
  }
}
.single-content h6 {
  margin: var(--margin-h6-mobile);
}
@media (min-width: 1025px) {
  .single-content h6 {
    margin: var(--margin-h6-desktop);
  }
}

h1 strong {
  font-weight: inherit;
  color: var(--color-green);
}
h1[id] {
  padding-top: 140px;
  margin-top: -140px;
}
@media (max-width: 544px) {
  h1[id] {
    padding-top: 100px;
    margin-top: -100px;
  }
}

h2 strong {
  font-weight: inherit;
  color: var(--color-green);
}
h2[id] {
  padding-top: 140px;
  margin-top: -140px;
}
@media (max-width: 544px) {
  h2[id] {
    padding-top: 100px;
    margin-top: -100px;
  }
}

h3 strong {
  font-weight: inherit;
  color: var(--color-green);
}
h3[id] {
  padding-top: 140px;
  margin-top: -140px;
}
@media (max-width: 544px) {
  h3[id] {
    padding-top: 100px;
    margin-top: -100px;
  }
}

h4 strong {
  font-weight: inherit;
  color: var(--color-green);
}
h4[id] {
  padding-top: 140px;
  margin-top: -140px;
}
@media (max-width: 544px) {
  h4[id] {
    padding-top: 100px;
    margin-top: -100px;
  }
}

h5 strong {
  font-weight: inherit;
  color: var(--color-green);
}
h5[id] {
  padding-top: 140px;
  margin-top: -140px;
}
@media (max-width: 544px) {
  h5[id] {
    padding-top: 100px;
    margin-top: -100px;
  }
}

h6 strong {
  font-weight: inherit;
  color: var(--color-green);
}
h6[id] {
  padding-top: 140px;
  margin-top: -140px;
}
@media (max-width: 544px) {
  h6[id] {
    padding-top: 100px;
    margin-top: -100px;
  }
}

/* ==========================================================================
IMAGES
========================================================================== */
img {
  display: block;
  height: auto;
  max-width: 100%;
}

/* ==========================================================================
LINKS
========================================================================== */
a::before {
  content: "";
  display: none;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  height: 20px;
  width: 20px;
  margin-right: 10px;
  position: relative;
  top: 4px;
}

#masthead a[href*="tel:"]::before {
  display: inline-block;
  color: var(--color-blue);
  background-image: url("../svg/icon-phone-white.svg");
  height: 18px;
  width: 18px;
}
#masthead a[href*="mailto:"]::before {
  display: inline-block;
  background-image: url("../svg/icon-mail-white.svg");
  height: 18px;
  width: 18px;
}

#colophon a[href*="tel:"]::before {
  display: inline-block;
  color: var(--color-blue);
  background-image: url("../svg/icon-phone-red.svg");
}
#colophon a[href*="mailto:"]::before {
  display: inline-block;
  background-image: url("../svg/icon-mail-red.svg");
}

.widget.widget_nav_menu a::before {
  display: inline-block;
  color: var(--color-blue);
  background-image: url("../svg/icon-arrow-right-red.svg");
  height: 18px;
  width: 18px;
}

/* ==========================================================================
LISTS
========================================================================== */
@media (max-width: 544px) {
  .single-content ul,
.single-content ol {
    margin-top: var(--spacing-m);
  }
}

/* ==========================================================================
PARAGRAPHS
========================================================================== */
.entry-content p {
  margin: var(--margin-p-mobile);
}
@media (min-width: 1025px) {
  .entry-content p {
    margin: var(--margin-p-desktop);
  }
}
.entry-content p.has-small-font-size {
  font-size: var(--font-size-small-mobile);
  line-height: var(--line-height-small);
}
@media (min-width: 1025px) {
  .entry-content p.has-small-font-size {
    font-size: var(--font-size-small-desktop);
  }
}
.entry-content p.has-medium-font-size {
  font-size: var(--font-size-medium-mobile);
  line-height: var(--line-height-medium);
}
@media (min-width: 1025px) {
  .entry-content p.has-medium-font-size {
    font-size: var(--font-size-medium-desktop);
  }
}
.entry-content p.has-large-font-size {
  font-size: var(--font-size-large-mobile);
  line-height: var(--line-height-large);
  margin: var(--margin-large-mobile);
}
@media (min-width: 1025px) {
  .entry-content p.has-large-font-size {
    font-size: var(--font-size-large-desktop);
    margin: var(--margin-large-desktop);
  }
}
.entry-content p.has-larger-font-size {
  font-size: var(--font-size-larger-mobile);
  line-height: var(--line-height-larger);
  margin-bottom: var(--margin-bottom-large-mobile);
}
@media (min-width: 1025px) {
  .entry-content p.has-larger-font-size {
    font-size: var(--font-size-larger-desktop);
    margin-bottom: var(--margin-bottom-large-desktop);
  }
}
.entry-content p:empty {
  display: none;
}
.entry-content p:last-of-type {
  margin-bottom: 0;
}

/*------------------------------------
Objects
- must be prefixed with `o-*`
------------------------------------*/
/* ==========================================================================
CARD
========================================================================== */
.agency-ui-card,
.agency-ui-card__content {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.agency-ui-card .card-image img {
  width: 100%;
}

.agency-ui-card__content {
  padding: var(--spacing-m) 0 0;
  background-color: var(--color-white);
}
.agency-ui-card__content .card-title {
  color: var(--color-black);
  margin: 0 0 var(--spacing-s);
}
.agency-ui-card__content p {
  margin-bottom: var(--spacing-s) !important;
}
@media (min-width: 769px) {
  .agency-ui-card__content p {
    margin-bottom: var(--spacing-l) !important;
  }
}
.agency-ui-card__content .wp-block-buttons {
  margin: auto 0 0 !important;
}
.agency-ui-card__content .wp-block-button {
  margin-top: 0 !important;
}

/* ==========================================================================
GLIDEJS CAROUSEL
========================================================================== */
.glide .glide__bullets {
  margin-top: var(--spacing-xxl);
  text-align: center;
}
.glide .glide__bullet {
  padding: 8px;
  margin: 0 var(--spacing-xs);
  border: solid 1px var(--color-red);
  background-color: transparent;
}
.glide .glide__bullet:hover, .glide .glide__bullet:focus, .glide .glide__bullet:active {
  border-color: var(--color-red);
  background-color: var(--color-red);
}
.glide .glide__bullet.glide__bullet--active {
  border-color: var(--color-red);
  background-color: var(--color-red);
}

/* ==========================================================================
GRAVITY FORMS
========================================================================== */
body .gform_wrapper {
  margin: 0;
}
body .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),
body .gform_wrapper textarea {
  padding: var(--spacing-s);
  border-radius: 0;
}
body .gform_wrapper .gform_body ul li:first-of-type {
  margin-top: 0;
}
body .gform_wrapper .top_label div.ginput_container {
  margin: 0 !important;
}
body .gform_wrapper .gform_footer .gform_button {
  line-height: 1.6 !important;
}
body #colophon .gform_wrapper li.hidden_label input,
body #colophon .gform_wrapper .top_label div.ginput_container {
  margin: 0 !important;
}
body #colophon .gform_wrapper ul.gform_fields li.gfield {
  padding: 0;
}
body #colophon .gform_wrapper .gform_footer {
  padding: 0;
}

/* ==========================================================================
GRID
========================================================================== */
.o-grid {
  display: grid;
  gap: var(--spacing-l);
}

.o-grid__2 {
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 544px) {
  .o-grid__2 {
    grid-template-columns: 1fr;
  }
}

.o-grid__3 {
  grid-template-columns: 1fr 1fr 1fr;
}
@media (max-width: 768px) {
  .o-grid__3 {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 544px) {
  .o-grid__3 {
    grid-template-columns: 1fr;
  }
}

.o-grid__4 {
  grid-template-columns: 1fr 1fr 1fr 1fr;
}
@media (max-width: 1024px) {
  .o-grid__4 {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 544px) {
  .o-grid__4 {
    grid-template-columns: 1fr;
  }
}

.o-grid__slim.o-grid__3 {
  grid-template-columns: 1fr 1fr 1fr;
}
@media (max-width: 768px) {
  .o-grid__slim.o-grid__3 {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 544px) {
  .o-grid__slim.o-grid__3 {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
ICONS
========================================================================== */
.footer-adv-company__social a {
  display: block;
  padding: 8px 8px;
}
.footer-adv-company__social a::before {
  content: "";
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  display: block;
  height: 25px;
  width: 25px;
}
.footer-adv-company__social a[href*="facebook.com"]::before {
  background-image: url("");
}
.footer-adv-company__social a[href*="twitter.com"]::before {
  background-image: url("");
}
.footer-adv-company__social a[href*="instagram.com"]::before {
  background-image: url("");
}
.footer-adv-company__social a[href*="youtube.com"]::before {
  background-image: url("");
}
.footer-adv-company__social a[href*="pinterest.com"]::before {
  background-image: url("");
}
.footer-adv-company__social a[href*="houzz.com"]::before {
  background-image: url("");
}

/* ==========================================================================
PAGE
========================================================================== */
#primary,
#secondary {
  margin: 0;
  padding: 0;
}

.error404 .entry-header {
  display: none;
}

.hentry {
  margin: 0;
}

/* ==========================================================================
PAGINATION / POST NAVIGATION
========================================================================== */
.wp-pagenavi {
  display: flex;
  justify-content: center;
  margin-top: 88px;
}
@media (max-width: 768px) {
  .wp-pagenavi {
    margin-top: 64px;
  }
}
.wp-pagenavi .current,
.wp-pagenavi .page,
.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--spacing-l);
  width: var(--spacing-l);
  margin: 0 var(--spacing-xs);
  background-color: var(--color-grey-3);
  color: var(--color-black);
  font-family: var(--global-heading-font-family);
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
}
.wp-pagenavi .page:hover,
.wp-pagenavi .page:focus,
.wp-pagenavi .page:active,
.wp-pagenavi .previouspostslink:hover,
.wp-pagenavi .previouspostslink:focus,
.wp-pagenavi .previouspostslink:active,
.wp-pagenavi .nextpostslink:hover,
.wp-pagenavi .nextpostslink:focus,
.wp-pagenavi .nextpostslink:active,
.wp-pagenavi .current {
  color: var(--color-white);
  border-color: var(--color-blue);
  background-color: var(--color-blue);
}

/* ==========================================================================
SEARCH & FILTER PRO
========================================================================== */
.single-content .searchandfilter {
  padding: var(--spacing-m) var(--spacing-l) var(--spacing-l);
  margin: 0;
  background-color: var(--color-grey-3);
}
.single-content .searchandfilter ul {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: flex-start;
  margin: 0;
  padding: 0;
}
@media (max-width: 768px) {
  .single-content .searchandfilter ul {
    justify-content: space-between;
  }
}
.single-content .searchandfilter li {
  padding: 0;
  width: 100%;
}
.single-content .searchandfilter li + li {
  padding-top: var(--spacing-m);
}
.single-content .searchandfilter li ul {
  margin-top: calc(var(--spacing-xs) * -1);
}
.single-content .searchandfilter li ul li {
  padding-top: var(--spacing-s);
}
.single-content .searchandfilter li.sf-field-submit input, .single-content .searchandfilter li.sf-field-reset input {
  width: 100%;
}
.single-content .searchandfilter li.sf-field-submit {
  padding-top: var(--spacing-l) !important;
}
.single-content .searchandfilter li.sf-field-submit input {
  border-color: var(--color-blue);
  background-color: var(--color-blue);
}
.single-content .searchandfilter li.sf-field-submit input:hover {
  border-color: var(--color-red);
  background-color: var(--color-red);
}
.single-content .searchandfilter li.sf-field-reset input {
  color: var(--color-blue);
  border-color: var(--color-blue);
  background-color: transparent;
}
.single-content .searchandfilter li.sf-field-reset input:hover {
  color: var(--color-red);
  border-color: var(--color-red);
}
.single-content .searchandfilter label {
  width: 100%;
}
.single-content .searchandfilter select.sf-input-select {
  width: 100%;
  min-width: 230px;
}
@media (max-width: 768px) {
  .single-content .searchandfilter select.sf-input-select {
    min-width: unset;
  }
}
.single-content .searchandfilter h4 {
  font-size: 20px;
  margin: 0;
  padding-top: 0;
}

/*------------------------------------
Components
- must be prefixed with `c-*`
------------------------------------*/
/* ==========================================================================
HEADER
========================================================================== */
/* ==========================================================================
HEADER
========================================================================== */
#masthead .site-top-header-wrap ul {
  display: flex;
  margin: 0;
}
#masthead .site-top-header-wrap li {
  list-style: none;
  display: inline-block;
}
#masthead .site-top-header-wrap li + li {
  padding-left: var(--spacing-m);
  margin-left: var(--spacing-m);
  border-left: solid 1px var(--color-white-50);
}
#masthead .site-main-header-wrap .site-header-item-main-navigation,
#masthead .site-main-header-wrap .header-navigation,
#masthead .site-main-header-wrap .header-menu-container,
#masthead .site-main-header-wrap .header-navigation .menu {
  flex: 1;
}

@media (min-width:1025px) {
	.mobile-only {
		display:none !important;
	}
}

/* ==========================================================================
SITE BRANDING
========================================================================== */
#masthead .site-branding {
  display: flex;
  align-items: center;
  height: 100%;
}

/* ==========================================================================
NAVIGATION
========================================================================== */
/* ==========================================================================
PRIMARY HEADER NAVIGATION
========================================================================== */
#primary-menu {
  justify-content: space-between;
}
#primary-menu > li {
  flex: 1;
  text-align: center;
}
#primary-menu li a {
  justify-content: center;
}

/* ==========================================================================
MOBILE HEADER NAVIGATION
========================================================================== */
body.ast-main-header-nav-open #masthead .main-header-bar .main-header-bar-navigation.toggle-on {
  padding-top: 0;
}
body.ast-main-header-nav-open #masthead .main-header-menu {
  background-color: var(--color-white);
}
body.ast-main-header-nav-open #primary-menu .menu-item {
  line-height: 3.1;
}
body.ast-main-header-nav-open #primary-menu .menu-link {
  font-size: 18px;
}
body.ast-main-header-nav-open #primary-menu > .menu-item > .menu-link {
  padding: 0 0 0 var(--spacing-m);
  color: var(--color-black);
}
body.ast-main-header-nav-open #primary-menu > .menu-item.ast-submenu-expanded > .menu-link {
  color: var(--color-white);
}
body.ast-main-header-nav-open #primary-menu > .menu-item.ast-submenu-expanded .ast-menu-toggle {
  color: var(--color-white);
}
body.ast-main-header-nav-open #primary-menu .sub-menu {
  padding: var(--spacing-xs) 0;
}
body.ast-main-header-nav-open #primary-menu .sub-menu .menu-link {
  padding: 0 var(--spacing-l);
  border: none;
}
body.ast-main-header-nav-open #primary-menu .sub-menu .menu-link::before {
  display: none;
}

.ast-header-break-point .main-header-bar-navigation {
  width: 100%;
  margin: 0;
}

.ast-header-break-point .main-header-bar .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle {
  right: var(--spacing-xs);
}

.ast-header-break-point .ast-mobile-menu-buttons .ast-button-wrap .ast-mobile-menu-buttons-minimal {
  font-size: 2em;
}

.ast-button-wrap .menu-toggle .menu-toggle-icon {
  line-height: 1.8;
}

/* ==========================================================================
FOOTER NAVIGATION
========================================================================== */
/* ==========================================================================
FOOTER
========================================================================== */
@media (max-width: 1024px) {
  #colophon .site-middle-footer-wrap {
    text-align: center;
  }
}
@media (min-width: 1025px) {
  #colophon .site-middle-footer-wrap .site-footer-section + .site-footer-section {
    padding-left: var(--spacing-l);
    border-left: solid 1px var(--color-white-50);
  }
}
#colophon .site-bottom-footer-wrap .site-footer-bottom-section-1 {
  justify-content: space-between;
}
@media (max-width: 768px) {
  #colophon .site-bottom-footer-wrap .site-footer-bottom-section-1 {
    flex-wrap: wrap;
    flex-direction: column-reverse;
  }
}
@media (max-width: 768px) {
  #colophon .site-bottom-footer-wrap .site-footer-bottom-section-1 > * {
    flex-basis: 100%;
    max-width: 100%;
    margin: 0;
    text-align: center;
  }
}
@media (max-width: 1024px) {
  #colophon .widget.widget_media_image img {
    max-width: 30% !important;
    margin: 0 auto;
  }
}

/* ==========================================================================
ARCHIVES GENERAL
========================================================================== */
.archive .site-main > .ast-row {
  display: grid;
  gap: var(--spacing-l);
  padding: 96px 0;
}
@media (max-width: 1024px) {
  .archive .site-main > .ast-row {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}

.blog-layout-1 {
  padding-bottom: 0;
  border-bottom: none;
}

/* ==========================================================================
SINGLES GENERAL
========================================================================== */
/*------------------------------------
WP
- In this section you should add any relevant file that overrides
- a specific WordPress component (e.g. block, plugin, etc..)
------------------------------------*/
/* ==========================================================================
GUTENBERG BLOCKS
========================================================================== */
/* Core Blocks */
/* ==========================================================================
BLOCKQUOTE BLOCK
========================================================================== */
.entry-content blockquote.wp-block-quote {
  padding: var(--spacing-l);
  margin: var(--spacing-xxl) 0;
  border: none;
  background-color: var(--color-white);
  box-shadow: 0 8px 10px -8px var(--color-grey-2);
}
@media (min-width: 1025px) {
  .entry-content blockquote.wp-block-quote {
    margin-top: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
  }
}
.entry-content blockquote.wp-block-quote cite {
  font-size: var(--font-size-medium-mobile);
  font-style: normal;
  font-weight: 700;
  color: var(--color-black);
}

/* ==========================================================================
BUTTON BLOCK
========================================================================== */
.single-content .wp-block-buttons {
  margin-top: var(--spacing-l);
}
.single-content .wp-block-buttons .wp-block-button {
  margin-top: var(--spacing-s);
  margin-right: var(--spacing-m);
}
@media (max-width: 544px) {
  .single-content .wp-block-buttons .wp-block-button {
    display: block;
    margin-right: 0;
  }
}
.single-content .wp-block-buttons .wp-block-button__link {
  width: 100%;
}

.wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link:hover, .wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link:focus, .wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link:active {
  border-color: var(--color-light-blue) !important;
  background-color: var(--color-light-blue) !important;
}
.wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link.has-theme-palette-1-background-color {
  border-color: var(--global-palette1);
}
.wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link.has-theme-palette-2-background-color {
  border-color: var(--global-palette2);
}
.wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link.has-theme-palette-3-background-color {
  border-color: var(--global-palette3);
}
.wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link.has-theme-palette-4-background-color {
  border-color: var(--global-palette4);
}
.wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link.has-theme-palette-5-background-color {
  border-color: var(--global-palette5);
}
.wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link.has-theme-palette-6-background-color {
  border-color: var(--global-palette6);
}
.wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link.has-theme-palette-7-background-color {
  border-color: var(--global-palette7);
}
.wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link.has-theme-palette-8-background-color {
  border-color: var(--global-palette8);
}
.wp-block-button:not(.is-style-outline):not(.is-style-featured) > .wp-block-button__link.has-theme-palette-9-background-color {
  border-color: var(--global-palette9);
}

.wp-block-button.is-style-outline > .wp-block-button__link.has-theme-palette-1-color {
  color: var(--global-palette1);
}
.wp-block-button.is-style-outline > .wp-block-button__link.has-theme-palette-2-color {
  color: var(--global-palette2);
}
.wp-block-button.is-style-outline > .wp-block-button__link.has-theme-palette-3-color {
  color: var(--global-palette3);
}
.wp-block-button.is-style-outline > .wp-block-button__link.has-theme-palette-4-color {
  color: var(--global-palette4);
}
.wp-block-button.is-style-outline > .wp-block-button__link.has-theme-palette-5-color {
  color: var(--global-palette5);
}
.wp-block-button.is-style-outline > .wp-block-button__link.has-theme-palette-6-color {
  color: var(--global-palette6);
}
.wp-block-button.is-style-outline > .wp-block-button__link.has-theme-palette-7-color {
  color: var(--global-palette7);
}
.wp-block-button.is-style-outline > .wp-block-button__link.has-theme-palette-8-color {
  color: var(--global-palette8);
}
.wp-block-button.is-style-outline > .wp-block-button__link.has-theme-palette-9-color {
  color: var(--global-palette9);
}
.wp-block-button.is-style-outline > .wp-block-button__link.has-text-color:hover, .wp-block-button.is-style-outline > .wp-block-button__link.has-text-color:focus, .wp-block-button.is-style-outline > .wp-block-button__link.has-text-color:active {
  color: var(--color-light-blue);
}

.wp-block-button.is-style-featured {
  display: block;
  margin-right: 0 !important;
}
.wp-block-button.is-style-featured > .wp-block-button__link {
  display: block;
  padding: var(--spacing-m) calc(102px + var(--spacing-m)) var(--spacing-m) var(--spacing-m);
  margin: var(--spacing-xl) 0;
  font-size: var(--font-size-medium-mobile);
  font-weight: 900;
  text-align: left;
  color: var(--color-dark-blue);
  background-color: var(--color-white);
  border: none;
  width: 100%;
  box-shadow: 0 0 10px 0 var(--color-grey-2);
  position: relative;
}
@media (min-width: 545px) {
  .wp-block-button.is-style-featured > .wp-block-button__link {
    padding-top: var(--spacing-l);
    padding-bottom: var(--spacing-l);
    font-size: var(--font-size-medium-desktop);
  }
}
.wp-block-button.is-style-featured > .wp-block-button__link::after {
  content: "";
  display: inline-block;
  background-color: var(--color-dark-blue);
  background-image: url("../svg/icon-arrow-right-white.svg");
  background-repeat: no-repeat;
  background-size: 22px 22px;
  background-position: center;
  height: 100%;
  width: 102px;
  position: absolute;
  top: 0;
  right: 0;
  transition: background-color 0.2s ease, background-size 0.2s ease;
}
.wp-block-button.is-style-featured > .wp-block-button__link:hover, .wp-block-button.is-style-featured > .wp-block-button__link:focus, .wp-block-button.is-style-featured > .wp-block-button__link:active {
  color: var(--color-red);
}
.wp-block-button.is-style-featured > .wp-block-button__link:hover::after, .wp-block-button.is-style-featured > .wp-block-button__link:focus::after, .wp-block-button.is-style-featured > .wp-block-button__link:active::after {
  background-color: var(--color-red);
  background-size: 32px 32px;
  transition: background-color 0.2s ease, background-size 0.2s ease;
}

/* ==========================================================================
COLUMNS BLOCK
========================================================================== */
/* ==========================================================================
COVER BLOCK
========================================================================== */
.wp-block-cover {
  height: auto;
}
.wp-block-cover.has-true-black-background-color {
  background-color: #000;
}
.wp-block-cover.has-black-background-color {
  background-color: #231f20;
}
.wp-block-cover.has-white-background-color {
  background-color: #fff;
}
.wp-block-cover.has-white-50-background-color {
  background-color: rgba(255, 255, 255, 0.5);
}
.wp-block-cover.has-red-background-color {
  background-color: #cf3338;
}
.wp-block-cover.has-blue-background-color {
  background-color: #005289;
}
.wp-block-cover.has-light-blue-background-color {
  background-color: #6da9dc;
}
.wp-block-cover.has-dark-blue-background-color {
  background-color: #0a1c2a;
}
.wp-block-cover.has-grey-1-background-color {
  background-color: #6d6e71;
}
.wp-block-cover.has-grey-2-background-color {
  background-color: #a7a8aa;
}
.wp-block-cover.has-grey-3-background-color {
  background-color: #f2f3f5;
}
.wp-block-cover.has-gold-background-color {
  background-color: #c8982c;
}
.wp-block-cover .wp-block-cover__inner-container {
  width: 100%;
  max-width: 1400px;
  padding: 0;
}
.wp-block-cover .wp-block-group {
  padding: 0;
}
.wp-block-cover.alignfull .wp-block-cover__inner-container {
  padding-left: 24px;
  padding-right: 24px;
}

.wp-block-cover:not([class*=section--]) {
  padding: 96px 0;
}
@media (max-width: 1024px) {
  .wp-block-cover:not([class*=section--]) {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}

.wp-block-cover.ui-min-height-half .wp-block-cover__inner-container,
.wp-block-cover.ui-min-height-full .wp-block-cover__inner-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* ==========================================================================
GALLERY BLOCK
========================================================================== */
.wp-block-gallery .blocks-gallery-grid {
  margin: 0;
}
.wp-block-gallery .blocks-gallery-grid .blocks-gallery-image figure,
.wp-block-gallery .blocks-gallery-grid .blocks-gallery-item figure,
.wp-block-gallery .blocks-gallery-image figure,
.wp-block-gallery .blocks-gallery-item figure {
  position: relative;
  margin: 0.5em;
}
@media screen and (max-width: 599px) {
  .wp-block-gallery .blocks-gallery-grid .blocks-gallery-image figure,
.wp-block-gallery .blocks-gallery-grid .blocks-gallery-item figure,
.wp-block-gallery .blocks-gallery-image figure,
.wp-block-gallery .blocks-gallery-item figure {
    margin: 0;
  }
}

/* ==========================================================================
GROUP BLOCK
========================================================================== */
.wp-block-group:not([class*=section--]) {
  padding: 96px 0;
}
@media (max-width: 1024px) {
  .wp-block-group:not([class*=section--]) {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}

.wp-block-group .wp-block-group__inner-container {
  width: 100%;
  max-width: 1400px;
  padding: 0;
  margin-left: auto;
  margin-right: auto;
}
.wp-block-group .wp-block-cover {
  padding: 0;
}
.wp-block-group.alignfull .wp-block-group__inner-container {
  padding-left: 24px;
  padding-right: 24px;
  margin-left: auto;
  margin-right: auto;
}

.single-content .wp-block-group {
  margin-top: 0;
}

.wp-block-group.ui-min-height-half .wp-block-group__inner-container,
.wp-block-group.ui-min-height-full .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* ==========================================================================
HEADING BLOCK
========================================================================== */
h1.has-true-black-color a,
h2.has-true-black-color a,
h3.has-true-black-color a,
h4.has-true-black-color a,
h5.has-true-black-color a,
h6.has-true-black-color a {
  color: #000;
}
h1.has-true-black-color a:hover,
h2.has-true-black-color a:hover,
h3.has-true-black-color a:hover,
h4.has-true-black-color a:hover,
h5.has-true-black-color a:hover,
h6.has-true-black-color a:hover {
  text-decoration: underline;
}
h1.has-black-color a,
h2.has-black-color a,
h3.has-black-color a,
h4.has-black-color a,
h5.has-black-color a,
h6.has-black-color a {
  color: #231f20;
}
h1.has-black-color a:hover,
h2.has-black-color a:hover,
h3.has-black-color a:hover,
h4.has-black-color a:hover,
h5.has-black-color a:hover,
h6.has-black-color a:hover {
  text-decoration: underline;
}
h1.has-white-color a,
h2.has-white-color a,
h3.has-white-color a,
h4.has-white-color a,
h5.has-white-color a,
h6.has-white-color a {
  color: #fff;
}
h1.has-white-color a:hover,
h2.has-white-color a:hover,
h3.has-white-color a:hover,
h4.has-white-color a:hover,
h5.has-white-color a:hover,
h6.has-white-color a:hover {
  text-decoration: underline;
}
h1.has-white-50-color a,
h2.has-white-50-color a,
h3.has-white-50-color a,
h4.has-white-50-color a,
h5.has-white-50-color a,
h6.has-white-50-color a {
  color: rgba(255, 255, 255, 0.5);
}
h1.has-white-50-color a:hover,
h2.has-white-50-color a:hover,
h3.has-white-50-color a:hover,
h4.has-white-50-color a:hover,
h5.has-white-50-color a:hover,
h6.has-white-50-color a:hover {
  text-decoration: underline;
}
h1.has-red-color a,
h2.has-red-color a,
h3.has-red-color a,
h4.has-red-color a,
h5.has-red-color a,
h6.has-red-color a {
  color: #cf3338;
}
h1.has-red-color a:hover,
h2.has-red-color a:hover,
h3.has-red-color a:hover,
h4.has-red-color a:hover,
h5.has-red-color a:hover,
h6.has-red-color a:hover {
  text-decoration: underline;
}
h1.has-blue-color a,
h2.has-blue-color a,
h3.has-blue-color a,
h4.has-blue-color a,
h5.has-blue-color a,
h6.has-blue-color a {
  color: #005289;
}
h1.has-blue-color a:hover,
h2.has-blue-color a:hover,
h3.has-blue-color a:hover,
h4.has-blue-color a:hover,
h5.has-blue-color a:hover,
h6.has-blue-color a:hover {
  text-decoration: underline;
}
h1.has-light-blue-color a,
h2.has-light-blue-color a,
h3.has-light-blue-color a,
h4.has-light-blue-color a,
h5.has-light-blue-color a,
h6.has-light-blue-color a {
  color: #6da9dc;
}
h1.has-light-blue-color a:hover,
h2.has-light-blue-color a:hover,
h3.has-light-blue-color a:hover,
h4.has-light-blue-color a:hover,
h5.has-light-blue-color a:hover,
h6.has-light-blue-color a:hover {
  text-decoration: underline;
}
h1.has-dark-blue-color a,
h2.has-dark-blue-color a,
h3.has-dark-blue-color a,
h4.has-dark-blue-color a,
h5.has-dark-blue-color a,
h6.has-dark-blue-color a {
  color: #0a1c2a;
}
h1.has-dark-blue-color a:hover,
h2.has-dark-blue-color a:hover,
h3.has-dark-blue-color a:hover,
h4.has-dark-blue-color a:hover,
h5.has-dark-blue-color a:hover,
h6.has-dark-blue-color a:hover {
  text-decoration: underline;
}
h1.has-grey-1-color a,
h2.has-grey-1-color a,
h3.has-grey-1-color a,
h4.has-grey-1-color a,
h5.has-grey-1-color a,
h6.has-grey-1-color a {
  color: #6d6e71;
}
h1.has-grey-1-color a:hover,
h2.has-grey-1-color a:hover,
h3.has-grey-1-color a:hover,
h4.has-grey-1-color a:hover,
h5.has-grey-1-color a:hover,
h6.has-grey-1-color a:hover {
  text-decoration: underline;
}
h1.has-grey-2-color a,
h2.has-grey-2-color a,
h3.has-grey-2-color a,
h4.has-grey-2-color a,
h5.has-grey-2-color a,
h6.has-grey-2-color a {
  color: #a7a8aa;
}
h1.has-grey-2-color a:hover,
h2.has-grey-2-color a:hover,
h3.has-grey-2-color a:hover,
h4.has-grey-2-color a:hover,
h5.has-grey-2-color a:hover,
h6.has-grey-2-color a:hover {
  text-decoration: underline;
}
h1.has-grey-3-color a,
h2.has-grey-3-color a,
h3.has-grey-3-color a,
h4.has-grey-3-color a,
h5.has-grey-3-color a,
h6.has-grey-3-color a {
  color: #f2f3f5;
}
h1.has-grey-3-color a:hover,
h2.has-grey-3-color a:hover,
h3.has-grey-3-color a:hover,
h4.has-grey-3-color a:hover,
h5.has-grey-3-color a:hover,
h6.has-grey-3-color a:hover {
  text-decoration: underline;
}
h1.has-gold-color a,
h2.has-gold-color a,
h3.has-gold-color a,
h4.has-gold-color a,
h5.has-gold-color a,
h6.has-gold-color a {
  color: #c8982c;
}
h1.has-gold-color a:hover,
h2.has-gold-color a:hover,
h3.has-gold-color a:hover,
h4.has-gold-color a:hover,
h5.has-gold-color a:hover,
h6.has-gold-color a:hover {
  text-decoration: underline;
}

.is-style-sub-heading,
.entry-content .is-style-sub-heading {
  font-family: var(--global-heading-font-family);
  font-size: 20px;
  font-weight: 500;
  text-transform: uppercase;
  margin-bottom: var(--spacing-s) !important;
}
@media (max-width: 768px) {
  .is-style-sub-heading,
.entry-content .is-style-sub-heading {
    margin-bottom: var(--spacing-xs) !important;
  }
}

/* ==========================================================================
MEDIA & TEXT BLOCK
========================================================================== */
@media (max-width: 768px) {
  .wp-block-media-text {
    grid-template-columns: 100%;
  }
}
.wp-block-media-text + .wp-block-media-text {
  margin-top: 56px;
}
@media (min-width: 769px) {
  .wp-block-media-text + .wp-block-media-text {
    margin-top: 72px;
  }
}
@media (min-width: 1025px) {
  .wp-block-media-text + .wp-block-media-text {
    margin-top: 96px;
  }
}
.wp-block-media-text .wp-block-media-text__content {
  padding: 0;
  position: relative;
  z-index: 2;
}
@media (min-width: 769px) {
  .wp-block-media-text .wp-block-media-text__content {
    padding-left: var(--spacing-l);
  }
}
@media (min-width: 1025px) {
  .wp-block-media-text .wp-block-media-text__content {
    padding-left: var(--spacing-xxl);
  }
}
.wp-block-media-text .wp-block-media-text__media {
  width: 100%;
  max-width: 680px;
  position: relative;
  z-index: 2;
}
@media (max-width: 768px) {
  .wp-block-media-text .wp-block-media-text__media {
    max-width: none;
    margin-bottom: var(--spacing-m);
  }
}
.wp-block-media-text.is-style-background {
  position: relative;
  padding-bottom: var(--spacing-l);
}
@media (min-width: 769px) {
  .wp-block-media-text.is-style-background {
    padding-top: var(--spacing-l);
    padding-right: var(--spacing-l);
  }
}
.wp-block-media-text.is-style-background::before {
  content: "";
  display: block;
  position: absolute;
  top: 25%;
  right: -24px;
  bottom: 0;
  left: -24px;
  z-index: 0;
  background-color: var(--color-grey-3);
}
@media (min-width: 769px) {
  .wp-block-media-text.is-style-background::before {
    top: 0;
    right: 0;
    left: 25%;
  }
}
@media (min-width: 769px) {
  .wp-block-media-text.has-media-on-the-right.is-style-background {
    padding-right: 0;
    padding-left: var(--spacing-l);
  }
}
@media (min-width: 769px) {
  .wp-block-media-text.has-media-on-the-right.is-style-background::before {
    right: 25%;
    left: 0;
  }
}
.wp-block-media-text.has-background .wp-block-media-text__content {
  padding: var(--spacing-l);
}
@media (min-width: 769px) {
  .wp-block-media-text.has-background .wp-block-media-text__content {
    padding: 64px var(--spacing-xxl);
  }
}
@media (max-width: 768px) {
  .wp-block-media-text.has-media-on-the-right:not(.has-background) {
    grid-template-columns: 100%;
  }
}
.wp-block-media-text.has-media-on-the-right:not(.has-background) .wp-block-media-text__content {
  padding: 0;
}
@media (min-width: 769px) {
  .wp-block-media-text.has-media-on-the-right:not(.has-background) .wp-block-media-text__content {
    padding-right: var(--spacing-l);
  }
}
@media (min-width: 1025px) {
  .wp-block-media-text.has-media-on-the-right:not(.has-background) .wp-block-media-text__content {
    padding-right: var(--spacing-xxl);
  }
}
@media (min-width: 769px) {
  .wp-block-media-text.has-media-on-the-right:not(.has-background) .wp-block-media-text__media {
    margin: 0 0 0 auto;
  }
}
@media (max-width: 768px) {
  .wp-block-media-text.has-media-on-the-right {
    grid-template-columns: 100%;
  }
}
@media (max-width: 768px) {
  .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media {
    grid-column: 1;
    grid-row: 1;
  }
}
@media (max-width: 768px) {
  .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 2;
  }
}

/* ==========================================================================
BLOCKQUOTE BLOCK
========================================================================== */
.wp-block-pullquote {
  padding: var(--spacing-l) var(--spacing-s);
  border-top: solid 5px var(--color-blue);
  border-bottom: solid 5px var(--color-blue);
}
@media (max-width: 1024px) {
  .wp-block-pullquote {
    margin: var(--spacing-l) 0;
  }
}
.wp-block-pullquote.alignleft {
  margin-right: var(--spacing-s);
}
.wp-block-pullquote.alignright {
  margin-left: var(--spacing-s);
}
.wp-block-pullquote.alignleft, .wp-block-pullquote.alignright {
  max-width: 380px;
  margin-top: var(--spacing-s);
  margin-bottom: var(--spacing-s);
}
@media (max-width: 1024px) {
  .wp-block-pullquote.alignleft, .wp-block-pullquote.alignright {
    max-width: none;
    margin: var(--spacing-l) 0;
  }
}
.wp-block-pullquote blockquote {
  padding: 0;
  margin: 0;
  border: none;
  color: var(--color-black);
}
.wp-block-pullquote blockquote::before {
  display: none;
}
.wp-block-pullquote blockquote p {
  font-family: var(--global-heading-font-family);
  color: var(--color-blue);
  margin-bottom: var(--spacing-s);
}
.wp-block-pullquote blockquote cite {
  font-size: 16px;
  font-style: normal;
  text-transform: unset;
  color: var(--color-grey-1);
}

/* ==========================================================================
SEPARATOR BLOCK
========================================================================== */
.wp-block-separator.has-background:not(.is-style-dots):not(.is-style-wide) {
  height: 4px;
  max-width: 70px;
}

/* ==========================================================================
TABLE BLOCK
========================================================================== */
.wp-block-table thead {
  border: none !important;
}
.wp-block-table th,
.wp-block-table td {
  border-color: var(--color-red) !important;
}
.wp-block-table th {
  font-weight: 700;
  background-color: var(--color-red);
  color: var(--color-white);
}

/* Custom Blocks */
/* ==========================================================================
AGENCY UI - CONTENT GRID BLOCK
========================================================================== */
.wp-block-agency-ui-content-grid .content-grid {
  --gutter: var(--spacing-l);
}
@media (max-width: 768px) {
  .wp-block-agency-ui-content-grid .content-grid {
    grid-template-columns: repeat(1, 1fr);
  }
}
@media (max-width: 544px) {
  .wp-block-agency-ui-content-grid .content-grid {
    --gutter: var(--spacing-m);
  }
}

/* ==========================================================================
AGENCY UI - TILE BLOCK
========================================================================== */
.wp-block-agency-ui-tile {
  background-color: var(--color-white);
  position: relative;
  padding: 0 var(--spacing-m) var(--spacing-m);
}
.wp-block-agency-ui-tile a:not(.wp-block-button__link) {
  display: block;
  color: var(--color-black);
  text-decoration: none;
}
.wp-block-agency-ui-tile a:not(.wp-block-button__link):hover h2,
.wp-block-agency-ui-tile a:not(.wp-block-button__link):hover h3,
.wp-block-agency-ui-tile a:not(.wp-block-button__link):hover .tile--title {
  color: var(--color-light-blue);
}
.wp-block-agency-ui-tile .wp-block-image {
  margin: 0 calc(var(--spacing-m) * -1) 0 !important;
}
.wp-block-agency-ui-tile .wp-block-kadence-icon {
  position: absolute;
  transform: translateY(-50%);
  width: calc(100% - (var(--spacing-m) * 2));
}
.wp-block-agency-ui-tile .wp-block-kadence-icon + h2,
.wp-block-agency-ui-tile .wp-block-kadence-icon + h3,
.wp-block-agency-ui-tile .wp-block-kadence-icon + .tile--title {
  margin-top: 56px;
}
.wp-block-agency-ui-tile h2,
.wp-block-agency-ui-tile h3,
.wp-block-agency-ui-tile .tile--title {
  margin-top: var(--spacing-m);
}
.wp-block-agency-ui-tile p:last-of-type {
  margin-bottom: 0;
}

/* ==========================================================================
TESTIMONIAL SLIDER BLOCK
========================================================================== */
.block--testimonial-slider {
  margin-top: 64px !important;
}
@media (max-width: 768px) {
  .block--testimonial-slider {
    margin-top: var(--spacing-xl) !important;
  }
}
.block--testimonial-slider .glide__slides {
  display: flex;
}

.block--testimonial-slider__slide {
  height: auto !important;
  padding-bottom: 10px !important;
}
.block--testimonial-slider__slide .wp-block-quote {
  display: flex;
  align-items: flex-start;
  height: 100%;
  margin: 0 !important;
}
@media (max-width: 768px) {
  .block--testimonial-slider__slide .wp-block-quote {
    flex-direction: column;
  }
}
.block--testimonial-slider__slide .block--testimonial-slider__img {
  object-fit: cover;
  height: 100px;
  flex-basis: 100px;
  max-width: 100px;
  border-radius: 50%;
  overflow: hidden;
  margin-right: var(--spacing-l);
}
@media (max-width: 768px) {
  .block--testimonial-slider__slide .block--testimonial-slider__img {
    margin: 0 auto var(--spacing-m);
  }
}
.block--testimonial-slider__slide .block--testimonial-slider__content {
  flex: 1;
}
@media (max-width: 768px) {
  .block--testimonial-slider__slide .block--testimonial-slider__content {
    width: 100%;
    text-align: center;
  }
}

/* Figcaption */
div[class*=wp-block-] figcaption,
figure[class*=wp-block-] figcaption {
  font-size: 14px;
  padding-top: var(--spacing-s);
  margin: 0;
}

/* ==========================================================================
GUTENBERG BLOCK PATTERNS
========================================================================== */
/* ==========================================================================
FEATURED COLUMNS BLOCK PATTERN
========================================================================== */
.single-content .section--featured-columns.wp-block-columns {
  margin: 0 0 -56px 0;
  position: relative;
  z-index: 5;
}
@media (max-width: 768px) {
  .single-content .section--featured-columns.wp-block-columns {
    margin-bottom: -40px;
  }
}
.single-content .section--featured-columns.wp-block-columns .wp-block-column {
  margin: 0;
  padding: var(--spacing-xl) var(--spacing-xxl);
}
@media (max-width: 768px) {
  .single-content .section--featured-columns.wp-block-columns .wp-block-column {
    padding: var(--spacing-l);
  }
}
.single-content .section--featured-columns.wp-block-columns .wp-block-column:nth-of-type(1) {
  background-color: var(--color-red);
}
.single-content .section--featured-columns.wp-block-columns .wp-block-column:nth-of-type(2) {
  background-color: var(--color-grey-3);
}
.single-content .section--featured-columns.wp-block-columns .wp-block-column:nth-of-type(3) {
  background-color: var(--color-blue);
}
@media (min-width: 769px) and (max-width: 781px) {
  .single-content .section--featured-columns.wp-block-columns .wp-block-column:not(:only-child) {
    flex-grow: 1;
  }
}
@media (max-width: 768px) {
  .single-content .section--featured-columns.wp-block-columns .wp-block-column:not(:only-child) {
    flex-basis: 100% !important;
    max-width: 100%;
  }
}
.single-content .section--featured-columns.wp-block-columns + div[class*=section--] {
  padding-top: 96px;
}

/* ==========================================================================
FILTER GRID BLOCK PATTERN
========================================================================== */
.section--filter-grid.wp-block-group {
  padding: 96px 0;
}
@media (max-width: 1024px) {
  .section--filter-grid.wp-block-group {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}
.section--filter-grid.wp-block-group .wp-block-columns {
  margin-top: 0;
  flex-wrap: wrap;
}
@media (max-width: 1024px) {
  .section--filter-grid.wp-block-group .wp-block-column {
    flex-basis: 100% !important;
    max-width: 100%;
  }
}
@media (max-width: 1024px) {
  .section--filter-grid.wp-block-group .wp-block-column:not(:first-child) {
    margin: 2em 0 0 0;
  }
}

/* ==========================================================================
FULL CTA BLOCK PATTERN
========================================================================== */
.section--full-cta.wp-block-cover {
  margin-top: 0;
  padding: 96px 0;
}
@media (max-width: 1024px) {
  .section--full-cta.wp-block-cover {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}
.section--full-cta.wp-block-cover .wp-block-cover__inner-container > * {
  width: 100%;
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.section--full-cta.wp-block-cover .wp-block-kadence-advancedbtn {
  margin-bottom: var(--spacing-xxl);
}
.section--full-cta.wp-block-cover .wp-block-buttons {
  margin-top: var(--spacing-xl);
}
@media (max-width: 768px) {
  .section--full-cta.wp-block-cover .wp-block-buttons {
    margin-top: var(--spacing-s);
  }
}

.section--full-cta.wp-block-group {
  margin-top: 0;
}
.section--full-cta.wp-block-group .wp-block-columns {
  margin: var(--spacing-m) 0;
}
.section--full-cta.wp-block-group .wp-block-group {
  padding: 0;
}
.section--full-cta.wp-block-group .wp-block-group .wp-block-group__inner-container {
  padding: 80px 64px;
}
@media (max-width: 1024px) {
  .section--full-cta.wp-block-group .wp-block-group .wp-block-group__inner-container {
    padding: 64px 48px;
  }
}
@media (max-width: 544px) {
  .section--full-cta.wp-block-group .wp-block-group .wp-block-group__inner-container {
    padding: var(--spacing-xl) var(--spacing-l);
  }
}

/* ==========================================================================
GALLERY & TEXT ROWS BLOCK PATTERN
========================================================================== */
.section--gallery-text-row.wp-block-group {
  margin: 0;
  flex-wrap: wrap;
  padding: 96px 0;
}
@media (max-width: 1024px) {
  .section--gallery-text-row.wp-block-group {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}
@media screen and (min-width: 782px) {
  .section--gallery-text-row.wp-block-group {
    flex-wrap: nowrap;
  }
}
.section--gallery-text-row.wp-block-group .wp-block-columns {
  margin-top: 0;
}
.section--gallery-text-row.wp-block-group .wp-block-columns + .wp-block-columns {
  margin-top: 72px;
}
@media (min-width: 1025px) {
  .section--gallery-text-row.wp-block-group .wp-block-columns + .wp-block-columns {
    margin-top: 96px;
  }
}
@media screen and (max-width: 781px) {
  .section--gallery-text-row.wp-block-group .wp-block-column {
    flex-basis: 100% !important;
    max-width: 100%;
  }
}
.section--gallery-text-row.wp-block-group .wp-block-column:first-of-type.section--gallery-text-row__content {
  margin: 0;
}
@media screen and (min-width: 782px) {
  .section--gallery-text-row.wp-block-group .wp-block-column:first-of-type.section--gallery-text-row__content {
    margin-right: 48px;
  }
}
@media (min-width: 1025px) {
  .section--gallery-text-row.wp-block-group .wp-block-column:first-of-type.section--gallery-text-row__content {
    margin-right: 104px;
  }
}
.section--gallery-text-row.wp-block-group .wp-block-column:last-of-type.section--gallery-text-row__content {
  margin: 0;
}
@media screen and (min-width: 782px) {
  .section--gallery-text-row.wp-block-group .wp-block-column:last-of-type.section--gallery-text-row__content {
    margin-left: 48px;
  }
}
@media (min-width: 1025px) {
  .section--gallery-text-row.wp-block-group .wp-block-column:last-of-type.section--gallery-text-row__content {
    margin-left: 104px;
  }
}

/* ==========================================================================
PAGE HERO BLOCK PATTERN
========================================================================== */
.section--page-hero.wp-block-cover {
  padding: var(--spacing-xl) 0;
  height: auto;
  min-height: 575px;
  max-height: none;
}
@media (min-width: 769px) {
  .section--page-hero.wp-block-cover {
    height: 75vh;
    max-height: 740px;
  }
}
@media (min-width: 1025px) {
  .section--page-hero.wp-block-cover {
    max-height: 900px;
  }
}
.section--page-hero.wp-block-cover h1 {
  max-width: 760px;
}
.section--page-hero.wp-block-cover p {
  max-width: 600px;
}
.section--page-hero.wp-block-cover .is-style-sub-heading {
  border-left: solid 3px var(--color-red);
  padding-left: 12px;
}

.section--page-hero.wp-block-group {
  padding: 0;
}
.section--page-hero.wp-block-group .wp-block-group,
.section--page-hero.wp-block-group .wp-block-cover {
  padding: 0;
}
.section--page-hero.wp-block-group .wp-block-agency-ui-content-grid {
  margin-top: calc(var(--spacing-xl) * -1);
  position: relative;
  z-index: 3;
}

/* ==========================================================================
POST GALLERY GRID BLOCK PATTERN
========================================================================== */
.section--post-gallery-grid.wp-block-group div {
  margin-top: 0;
  margin-bottom: 0;
}
.section--post-gallery-grid.wp-block-group div[data-type="agency-ui/tile"] {
  height: 100%;
}
.section--post-gallery-grid.wp-block-group .section--post-gallery-grid__posts {
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
}
.section--post-gallery-grid.wp-block-group .section--post-gallery-grid__posts .wp-block-column {
  margin: 0;
}
@media (max-width: 1024px) {
  .section--post-gallery-grid.wp-block-group .section--post-gallery-grid__posts .wp-block-column {
    flex-basis: 33.333%;
    max-width: 33.333%;
  }
}
@media (max-width: 544px) {
  .section--post-gallery-grid.wp-block-group .section--post-gallery-grid__posts .wp-block-column {
    flex-basis: 100%;
    max-width: 100%;
  }
}
.section--post-gallery-grid.wp-block-group .wp-block-columns:not(.alignfull) {
  margin-top: var(--spacing-l);
}
@media (max-width: 544px) {
  .section--post-gallery-grid.wp-block-group .wp-block-columns:not(.alignfull) .wp-block-column + .wp-block-column {
    margin-top: var(--spacing-l);
  }
}
.section--post-gallery-grid.wp-block-group .wp-block-group {
  margin-top: 0;
}
.section--post-gallery-grid.wp-block-group .wp-block-agency-ui-tile {
  background: linear-gradient(to top, var(--color-true-black) 5%, transparent);
  height: 100%;
  padding: 0;
  position: relative;
  top: 100%;
  transition: top 0.3s ease;
}
.section--post-gallery-grid.wp-block-group .wp-block-agency-ui-tile a {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
  padding: var(--spacing-l);
}
@media (max-width: 1024px) {
  .section--post-gallery-grid.wp-block-group .wp-block-agency-ui-tile a {
    padding: var(--spacing-m);
  }
}
.section--post-gallery-grid.wp-block-group .wp-block-agency-ui-tile a,
.section--post-gallery-grid.wp-block-group .wp-block-agency-ui-tile a:hover .tile--title,
.section--post-gallery-grid.wp-block-group .wp-block-agency-ui-tile .tile--title {
  color: var(--color-white);
}
.section--post-gallery-grid.wp-block-group .wp-block-cover {
  align-items: unset;
  overflow: hidden;
}
@media (max-width: 544px) {
  .section--post-gallery-grid.wp-block-group .wp-block-cover {
    min-height: 240px !important;
  }
}
.section--post-gallery-grid.wp-block-group .wp-block-cover:hover .wp-block-agency-ui-tile {
  top: 0;
  transition: top 0.2s ease;
}

/* ==========================================================================
STAT COLUMNS BLOCK PATTERN
========================================================================== */
.single-content .section--stat-columns.wp-block-group {
  margin-top: 0;
}
.single-content .section--stat-columns.wp-block-group .wp-block-columns {
  margin-top: 0;
  padding: 96px 0;
}
@media (max-width: 1024px) {
  .single-content .section--stat-columns.wp-block-group .wp-block-columns {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}
.single-content .section--stat-columns.wp-block-group .wp-block-column {
  margin: 0;
  padding: 0 var(--spacing-l);
}
@media screen and (max-width: 781px) {
  .single-content .section--stat-columns.wp-block-group .wp-block-column {
    margin: var(--spacing-s) 0;
  }
}
@media screen and (min-width: 782px) {
  .single-content .section--stat-columns.wp-block-group .wp-block-column + .wp-block-column {
    border-left: solid 1px var(--color-white-50);
  }
}
.single-content .section--stat-columns.wp-block-group .wp-block-column .wp-block-image {
  margin-bottom: var(--spacing-m);
}
@media (max-width: 768px) {
  .single-content .section--stat-columns.wp-block-group .wp-block-column .wp-block-image {
    margin-bottom: var(--spacing-xs);
  }
}
.single-content .section--stat-columns.wp-block-group .wp-block-column h3,
.single-content .section--stat-columns.wp-block-group .wp-block-column h4,
.single-content .section--stat-columns.wp-block-group .wp-block-column h5 {
  font-size: 44px;
  margin-bottom: 0;
}
.single-content .section--stat-columns.wp-block-group .wp-block-media-text {
  margin-top: 0;
  margin-bottom: -72px;
  position: relative;
  z-index: 5;
}
.single-content .section--stat-columns.wp-block-group + div[class*=section--] {
  padding-top: 160px;
}
@media (max-width: 1024px) {
  .single-content .section--stat-columns.wp-block-group + div[class*=section--] {
    padding-top: 120px;
  }
}

/*------------------------------------
Utilities
- ideally prefixed with `u-*`
------------------------------------*/
/* ==========================================================================
ACCESSIBILITY UTILITIES
========================================================================== */
/*
 * [1] Many screen reader and browser combinations announce broken words
 *     as they would appear visually.
 * [2] Above WP toolbar.
 */
/* Text meant only for screen readers. */
.u-screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
  /* [1] */
}

.u-screen-reader-text:focus {
  background-color: var(--color-white);
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: var(--color-black);
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: var(--font-weight-primary-bold);
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
  /* [2] */
}

/* ==========================================================================
COLORS UTILITIES
========================================================================== */
.has-background.has-true-black-background-color {
  background-color: #000;
}

.has-text-color.has-true-black-color,
.has-inline-color.has-true-black-color {
  color: #000;
}

.has-background.has-black-background-color {
  background-color: #231f20;
}

.has-text-color.has-black-color,
.has-inline-color.has-black-color {
  color: #231f20;
}

.has-background.has-white-background-color {
  background-color: #fff;
}

.has-text-color.has-white-color,
.has-inline-color.has-white-color {
  color: #fff;
}

.has-background.has-white-50-background-color {
  background-color: rgba(255, 255, 255, 0.5);
}

.has-text-color.has-white-50-color,
.has-inline-color.has-white-50-color {
  color: rgba(255, 255, 255, 0.5);
}

.has-background.has-red-background-color {
  background-color: #cf3338;
}

.has-text-color.has-red-color,
.has-inline-color.has-red-color {
  color: #cf3338;
}

.has-background.has-blue-background-color {
  background-color: #005289;
}

.has-text-color.has-blue-color,
.has-inline-color.has-blue-color {
  color: #005289;
}

.has-background.has-light-blue-background-color {
  background-color: #6da9dc;
}

.has-text-color.has-light-blue-color,
.has-inline-color.has-light-blue-color {
  color: #6da9dc;
}

.has-background.has-dark-blue-background-color {
  background-color: #0a1c2a;
}

.has-text-color.has-dark-blue-color,
.has-inline-color.has-dark-blue-color {
  color: #0a1c2a;
}

.has-background.has-grey-1-background-color {
  background-color: #6d6e71;
}

.has-text-color.has-grey-1-color,
.has-inline-color.has-grey-1-color {
  color: #6d6e71;
}

.has-background.has-grey-2-background-color {
  background-color: #a7a8aa;
}

.has-text-color.has-grey-2-color,
.has-inline-color.has-grey-2-color {
  color: #a7a8aa;
}

.has-background.has-grey-3-background-color {
  background-color: #f2f3f5;
}

.has-text-color.has-grey-3-color,
.has-inline-color.has-grey-3-color {
  color: #f2f3f5;
}

.has-background.has-gold-background-color {
  background-color: #c8982c;
}

.has-text-color.has-gold-color,
.has-inline-color.has-gold-color {
  color: #c8982c;
}

/* ==========================================================================
TYPOGRAPHY UTILITIES
========================================================================== */
/*------------------------------------
Trumps
------------------------------------*/
/* ==========================================================================
SHAME
========================================================================== */
/**
 * The idea of shame.css is that you have a totally new stylesheet reserved
 * just for your hacky code. The code you have to write to get the release
 * out on time, but the code that makes you ashamed.
 *
 * @see https://csswizardry.com/2013/04/shame-css/
 */
/* ==========================================================================
TEMPORARY
========================================================================== */
/**
 * This file should always be empty.
 * It could be a good place to put your styles in as you develop new features.
 * Once done, you should move your styles in the appropriate folder.
 */

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL3N0eWxlLmNzcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzAwLXNldHRpbmdzL19icmVha3BvaW50cy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzAwLXNldHRpbmdzL19jb2xvcnMuc2NzcyIsIndlYnBhY2s6Ly8vc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMC1zZXR0aW5ncy9fZ3JpZC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzAwLXNldHRpbmdzL19pbWFnZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMC1zZXR0aW5ncy9fc3BhY2luZ3Muc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMC1zZXR0aW5ncy9fdHJhbnNpdGlvbi5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzAwLXNldHRpbmdzL190eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDEtdG9vbHMvZnVuY3Rpb25zL19zcGFjaW5ncy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzAxLXRvb2xzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMS10b29scy9taXhpbnMvX2J1dHRvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMS10b29scy9taXhpbnMvX2RpbWVuc2lvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMS10b29scy9taXhpbnMvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMS10b29scy9taXhpbnMvX2dyaWRfZ2FwX2ZhbGxiYWNrLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDEtdG9vbHMvbWl4aW5zL19pbWcuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMS10b29scy9taXhpbnMvX3BhZGRpbmcuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMS10b29scy9taXhpbnMvX3Jlc2V0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDEtdG9vbHMvbWl4aW5zL190cmFuc2l0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDEtdG9vbHMvbWl4aW5zL190eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3Mvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMi1nZW5lcmljL19ib2R5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDItZ2VuZXJpYy9fYm94LXNpemluZy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzAyLWdlbmVyaWMvX25vcm1hbGl6ZS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzAzLWVsZW1lbnRzL19hbGlnbm1lbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMy1lbGVtZW50cy9fZm9ybXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMy1lbGVtZW50cy9faGVhZGluZ3Muc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wMy1lbGVtZW50cy9faW1hZ2VzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDMtZWxlbWVudHMvX2xpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDMtZWxlbWVudHMvX2xpc3RzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDMtZWxlbWVudHMvX3BhcmFncmFwaHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNC1vYmplY3RzL19jYXJkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDQtb2JqZWN0cy9fZ2xpZGVqcy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA0LW9iamVjdHMvX2dyYXZpdHktZm9ybXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNC1vYmplY3RzL19ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDQtb2JqZWN0cy9faWNvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNC1vYmplY3RzL19wYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDQtb2JqZWN0cy9fcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA0LW9iamVjdHMvX3NlYXJjaC1maWx0ZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNS1jb21wb25lbnRzL19oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNS1jb21wb25lbnRzL2hlYWRlci9faGVhZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDUtY29tcG9uZW50cy9oZWFkZXIvX3NpdGUtYnJhbmRpbmcuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNS1jb21wb25lbnRzL19uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDUtY29tcG9uZW50cy9uYXZpZ2F0aW9uL19wcmltYXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDUtY29tcG9uZW50cy9uYXZpZ2F0aW9uL19tb2JpbGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNS1jb21wb25lbnRzL25hdmlnYXRpb24vX2Zvb3Rlci5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA1LWNvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA1LWNvbXBvbmVudHMvX2FyY2hpdmVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDUtY29tcG9uZW50cy9fc2luZ2xlcy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA2LXdwL19ibG9ja3Muc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNi13cC9ibG9ja3MvY29yZS9fYmxvY2txdW90ZS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA2LXdwL2Jsb2Nrcy9jb3JlL19idXR0b24uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNi13cC9ibG9ja3MvY29yZS9fY29sdW1ucy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA2LXdwL2Jsb2Nrcy9jb3JlL19jb3Zlci5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA2LXdwL2Jsb2Nrcy9jb3JlL19nYWxsZXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDYtd3AvYmxvY2tzL2NvcmUvX2dyb3VwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDYtd3AvYmxvY2tzL2NvcmUvX2hlYWRpbmcuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNi13cC9ibG9ja3MvY29yZS9fbWVkaWEtdGV4dC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA2LXdwL2Jsb2Nrcy9jb3JlL19wdWxscXVvdGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNi13cC9ibG9ja3MvY29yZS9fc2VwYXJhdG9yLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDYtd3AvYmxvY2tzL2NvcmUvX3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDYtd3AvYmxvY2tzL2N1c3RvbS9fYWdlbmN5LXVpLWNvbnRlbnQtZ3JpZC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA2LXdwL2Jsb2Nrcy9jdXN0b20vX2FnZW5jeS11aS10aWxlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDYtd3AvYmxvY2tzL2N1c3RvbS9fdGVzdGltb25pYWwtc2xpZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDYtd3AvX3BhdHRlcm5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDYtd3AvcGF0dGVybnMvX2ZlYXR1cmVkLWNvbHVtbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNi13cC9wYXR0ZXJucy9fZmlsdGVyLWdyaWQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNi13cC9wYXR0ZXJucy9fZnVsbC1jdGEuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNi13cC9wYXR0ZXJucy9fZ2FsbGVyeS10ZXh0LXJvd3Muc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy8wNi13cC9wYXR0ZXJucy9fcGFnZS1oZXJvLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDYtd3AvcGF0dGVybnMvX3Bvc3QtZ2FsbGVyeS1ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDYtd3AvcGF0dGVybnMvX3N0YXQtY29sdW1ucy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA3LXV0aWxpdGllcy9fYWNjZXNzaWJpbGl0eS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA3LXV0aWxpdGllcy9fY29sb3JzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDctdXRpbGl0aWVzL190eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvMDgtdHJ1bXBzL19zaGFtZS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzLzA4LXRydW1wcy9fdGVtcC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5CUkVBS1BPSU5UU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuJHBob25lLW1pbjogNTQ1cHg7XG4kcGhvbmUtbWF4OiAkcGhvbmUtbWluIC0gMTtcbiR0YWJsZXQtcG9ydHJhaXQtbWluOiA3NjlweDtcbiR0YWJsZXQtcG9ydHJhaXQtbWF4OiAkdGFibGV0LXBvcnRyYWl0LW1pbiAtIDE7XG4kdGFibGV0LWxhbmRzY2FwZS1taW46IDEwMjVweDtcbiR0YWJsZXQtbGFuZHNjYXBlLW1heDogJHRhYmxldC1sYW5kc2NhcGUtbWluIC0gMTtcbiRkZXNrdG9wLW1pbjogMTIwMHB4O1xuJGRlc2t0b3AtbWF4OiAkZGVza3RvcC1taW4gLSAxO1xuJGJpZy1kZXNrdG9wLW1pbjogMTgwMHB4O1xuJGJpZy1kZXNrdG9wLW1heDogJGJpZy1kZXNrdG9wLW1pbiAtIDE7XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQ09MT1IgUEFMRVRURVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy9cbi8vIE1hcCBvZiBjb2xvdXJzIHdoZXJlIFtrZXldIGlzIHRoZSBuYW1lIG9mIHRoZSBjb2xvdXJcbi8vIGFuZCBbdmFsdWVdIGlzIHRoZSBoZXggY29kZS5cbi8vXG4kY29sb3JzOiAoXG5cdFwidHJ1ZS1ibGFja1wiOiAjMDAwLFxuXHRcImJsYWNrXCI6ICMyMzFmMjAsXG5cdFwid2hpdGVcIjogI2ZmZixcblx0XCJ3aGl0ZS01MFwiOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSksXG5cdFwicmVkXCI6ICNjZjMzMzgsXG5cdFwiYmx1ZVwiOiAjMDA1Mjg5LFxuXHRcImxpZ2h0LWJsdWVcIjogIzZkYTlkYyxcblx0XCJkYXJrLWJsdWVcIjogIzBhMWMyYSxcblx0XCJncmV5LTFcIjogIzZkNmU3MSxcblx0XCJncmV5LTJcIjogI2E3YThhYSxcblx0XCJncmV5LTNcIjogI2YyZjNmNSxcblx0XCJnb2xkXCI6ICNjODk4MmMsXG4pO1xuXG46cm9vdCB7XG5cdC8vIEJyYW5kIGNvbG91cnMuXG5cdEBlYWNoICRjb2xvck5hbWUsICRjb2xvckhleCBpbiAkY29sb3JzIHtcblx0XHQtLWNvbG9yLSN7JGNvbG9yTmFtZX06ICN7JGNvbG9ySGV4fTtcblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkJSRUFLUE9JTlRTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkNPTE9SIFBBTEVUVEVcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG46cm9vdCB7XG4gIC0tY29sb3ItdHJ1ZS1ibGFjazogIzAwMDtcbiAgLS1jb2xvci1ibGFjazogIzIzMWYyMDtcbiAgLS1jb2xvci13aGl0ZTogI2ZmZjtcbiAgLS1jb2xvci13aGl0ZS01MDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAtLWNvbG9yLXJlZDogI2NmMzMzODtcbiAgLS1jb2xvci1ibHVlOiAjMDA1Mjg5O1xuICAtLWNvbG9yLWxpZ2h0LWJsdWU6ICM2ZGE5ZGM7XG4gIC0tY29sb3ItZGFyay1ibHVlOiAjMGExYzJhO1xuICAtLWNvbG9yLWdyZXktMTogIzZkNmU3MTtcbiAgLS1jb2xvci1ncmV5LTI6ICNhN2E4YWE7XG4gIC0tY29sb3ItZ3JleS0zOiAjZjJmM2Y1O1xuICAtLWNvbG9yLWdvbGQ6ICNjODk4MmM7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5HUklEIFNFVFRJTkdTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklNQUdFU1xuQWxsIGltYWdlcyBzaG91bGQgYmUgc2V0IHRvIHZhcmlhYmxlcyB0byBiZSB1c2VkIHdpdGhpbiB0aGUgY29kZWJhc2UsXG50aGlzIHByb3ZpZGVzIGEgY2VudHJhbCBsb2NhdGlvbiBmb3IgYW55IHJlcGxhY2VtZW50cyB0byBiZSBpbXBsZW1lbnRlZFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5TUEFDSU5HU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjpyb290IHtcbiAgLS1nbG9iYWwtYmFzZWxpbmU6IDhweDtcbiAgLS1zcGFjaW5nLXh4czogNHB4O1xuICAtLXNwYWNpbmcteHM6IDhweDtcbiAgLS1zcGFjaW5nLXM6IDE2cHg7XG4gIC0tc3BhY2luZy1tOiAyNHB4O1xuICAtLXNwYWNpbmctbDogMzJweDtcbiAgLS1zcGFjaW5nLXhsOiA0MHB4O1xuICAtLXNwYWNpbmcteHhsOiA0OHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVFJBTlNJVElPTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjpyb290IHtcbiAgLS10cmFuc2l0aW9uLWJhc2UtZWFzaW5nOiBlYXNlLWluLW91dDtcbiAgLS10cmFuc2l0aW9uLWJhc2UtZHVyYXRpb246IDEyNW1zO1xufVxuXG46cm9vdCB7XG4gIC0tZm9udC1zaXplLWJvZHktZGVza3RvcDogMTZweDtcbiAgLS1mb250LXNpemUtYm9keS1tb2JpbGU6IDE2cHg7XG4gIC0tbGluZS1oZWlnaHQtYm9keS1kZXNrdG9wOiAxLjU7XG4gIC0tbGluZS1oZWlnaHQtYm9keS1tb2JpbGU6IDEuNTtcbiAgLS1mb250LXNpemUtc21hbGwtZGVza3RvcDogMTRweDtcbiAgLS1mb250LXNpemUtc21hbGwtbW9iaWxlOiAxMnB4O1xuICAtLWxpbmUtaGVpZ2h0LXNtYWxsOiAxLjU7XG4gIC0tZm9udC1zaXplLW1lZGl1bS1kZXNrdG9wOiAyNHB4O1xuICAtLWZvbnQtc2l6ZS1tZWRpdW0tbW9iaWxlOiAyMHB4O1xuICAtLWxpbmUtaGVpZ2h0LW1lZGl1bTogMS41O1xuICAtLWZvbnQtc2l6ZS1sYXJnZS1kZXNrdG9wOiAzNnB4O1xuICAtLWZvbnQtc2l6ZS1sYXJnZS1tb2JpbGU6IDI0cHg7XG4gIC0tbGluZS1oZWlnaHQtbGFyZ2U6IDEuMjtcbiAgLS1mb250LXNpemUtbGFyZ2VyLWRlc2t0b3A6IDQ0cHg7XG4gIC0tZm9udC1zaXplLWxhcmdlci1tb2JpbGU6IDM2cHg7XG4gIC0tbGluZS1oZWlnaHQtbGFyZ2VyOiAxLjI7XG4gIC0tbWFyZ2luLWgxLWRlc2t0b3A6IDAgMCB2YXIoLS1zcGFjaW5nLW0pO1xuICAtLW1hcmdpbi1oMS1tb2JpbGU6IDAgMCB2YXIoLS1zcGFjaW5nLW0pO1xuICAtLW1hcmdpbi1oMi1kZXNrdG9wOiAwIDAgdmFyKC0tc3BhY2luZy1tKTtcbiAgLS1tYXJnaW4taDItbW9iaWxlOiAwIDAgdmFyKC0tc3BhY2luZy1zKTtcbiAgLS1tYXJnaW4taDMtZGVza3RvcDogMCAwIHZhcigtLXNwYWNpbmctcyk7XG4gIC0tbWFyZ2luLWgzLW1vYmlsZTogMCAwIHZhcigtLXNwYWNpbmctcyk7XG4gIC0tbWFyZ2luLWg0LWRlc2t0b3A6IDAgMCB2YXIoLS1zcGFjaW5nLW0pO1xuICAtLW1hcmdpbi1oNC1tb2JpbGU6IDAgMCB2YXIoLS1zcGFjaW5nLXMpO1xuICAtLW1hcmdpbi1oNS1kZXNrdG9wOiAwIDAgdmFyKC0tc3BhY2luZy1zKTtcbiAgLS1tYXJnaW4taDUtbW9iaWxlOiAwIDAgdmFyKC0tc3BhY2luZy14cyk7XG4gIC0tbWFyZ2luLWg2LWRlc2t0b3A6IDAgMCB2YXIoLS1zcGFjaW5nLXhzKTtcbiAgLS1tYXJnaW4taDYtbW9iaWxlOiAwIDAgdmFyKC0tc3BhY2luZy14cyk7XG4gIC0tbWFyZ2luLXAtZGVza3RvcDogMCAwIHZhcigtLXNwYWNpbmctbSk7XG4gIC0tbWFyZ2luLXAtbW9iaWxlOiAwIDAgdmFyKC0tc3BhY2luZy1zKTtcbiAgLS1tYXJnaW4tbGFyZ2UtZGVza3RvcDogMCAwIHZhcigtLXNwYWNpbmctbCk7XG4gIC0tbWFyZ2luLWxhcmdlLW1vYmlsZTogMCAwIHZhcigtLXNwYWNpbmctbSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5TUEFDSU5HIEZVTkNUSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogR2VuZXJhdGVzIHRoZSB2YWx1ZSBmb3IgYSBzcGFjaW5nIGJ5IG11bHRpcGx5aW5nXG4gKiB0aGUgZ2xvYmFsIGJhc2VsaW5lIHdpdGggdGhlIGdpdmVuIHJhdGlvLlxuICpcbiAqIFVTQUdFOlxuICogbWFyZ2luLWJvdHRvbTogc3BhY2luZygxMCk7XG4gKlxuICogTk9URTpcbiAqIFBsZWFzZSB1c2Ugc3BhY2luZyB2YXJpYWJsZXMgaWYgYXBwbGljYWJsZS5cbiAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBpZiB0aGUgc3BhY2luZyB5b3UncmUgdHJ5aW5nXG4gKiB0byBhY2hpZXZlIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHN0eWxlZ3VpZGUuIChzZWUgc2V0dGluZ3Mvc3BhY2luZ3Muc2NzcylcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbk1FRElBIFFVRVJJRVNcbkJhc2VkIG9uIGh0dHBzOi8vd3d3LmZyZWVjb2RlY2FtcC5vcmcvbmV3cy90aGUtMTAwLWNvcnJlY3Qtd2F5LXRvLWRvLWNzcy1icmVha3BvaW50cy04OGQ2YTViYTE4NjIvXG5FeGFtcGxlIHVzYWdlOlxuLm15LWNsYXNzIHtcbiAgcGFkZGluZzogMTBweDtcbiAgQGluY2x1ZGUgZm9yLWRlc2t0b3AtdXAge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gIH1cbn1cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQlVUVE9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5ESU1FTlNJT05TXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBIZWxwZXIgZm9yIGFic29sdXRlIGZ1bGxcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkdSSURcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuR1JJRCBHQVBcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSU1BR0VTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBGaXQgYW4gaW1hZ2UgdG8gaXRzIGNvbnRhaW5lclxuICovXG4vKipcbiAqIFNob3J0Y3V0IHRvIGJhY2tncm91bmQgaW1hZ2UgcHJvcGVydGllc1xuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUEFERElOR1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SRVNFVFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVzZXQgYWxsIHBhZGRpbmcgYW5kIG1hcmdpblxuICovXG4vKipcbiAqIFRoaXMgbWl4aW4gY2FuIGJlIHVzZWQgdG8gcmVzZXQgdGhlIGFwcGVhcmFuY2Ugb2YgYSBsaXN0IGVsZW1lbnQgKHVsLCBvbClcbiAqL1xuLyoqXG4gKiBUaGlzIG1peGluIGNhbiBiZSB1c2VkIHRvIHJlc2V0IHRoZSBhcHBlYXJhbmNlXG4gKiBvZiBhbiBpbnB1dFt0eXBlPVwic3VibWl0XCJdIGVsZW1lbnRcbiAqL1xuLyoqXG4gKiBUaGlzIG1peGluIGNhbiBiZSB1c2VkIHRvIHJlc2V0IHRoZSBhcHBlYXJhbmNlIG9mIGEgPGJ1dHRvbj4gZWxlbWVudFxuICovXG4vKipcbiAqIFRoaXMgbWl4aW4gY2FuIGJlIHVzZWQgdG8gcmVtb3ZlIHRoZSBkZWZhdWx0IGFuY2hvciBzdHlsaW5nLlxuICovXG4vKipcbiAqIFRoaXMgbWl4aW4gY2FuIGJlIHVzZWQgdG8gcmVtb3ZlIHRoZSBkZWZhdWx0IGxpc3Qgc3R5bGluZy5cbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRSQU5TSVRJT05cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFRyYW5zaXRpb24gc2hvcnRjdXRcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRZUE9HUkFQSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFR5cG9ncmFwaHkgbWl4aW5zIHRvIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IGRlc2t0b3BcbiAqIGFuZCBtb2JpbGUgc2l6ZXMgb2YgZm9udHMgYXJlIGNvcnJlY3RcbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkdlbmVyaWNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQk9EWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmh0bWwge1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuYm9keSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5CT1gtU0laSU5HXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94LXNpemluZzpcbiAqIGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZVxuICovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAxICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAvKiAxICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuW3R5cGU9YnV0dG9uXSxcblt0eXBlPXJlc2V0XSxcblt0eXBlPXN1Ym1pdF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1idXR0b25dOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9cmVzZXRdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9c3VibWl0XTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPWJ1dHRvbl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1yZXNldF06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1zdWJtaXRdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1zZWFyY2hdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuRWxlbWVudHNcbi0gb25seSBzaW1wbGUgSFRNTCB0YWdzIGNhbiBnbyBoZXJlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkxJTktTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuYWxpZ25sZWZ0LFxuLmFsaWducmlnaHQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cbi5hc3Qtbm8tc2lkZWJhciAuZW50cnktY29udGVudCAuYWxpZ25mdWxsIC5hbGlnbmZ1bGwge1xuICBtYXJnaW4tbGVmdDogY2FsYygtNTB2dyArIDUwJSk7XG4gIG1hcmdpbi1yaWdodDogY2FsYygtNTB2dyArIDUwJSk7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDB2dztcbiAgd2lkdGg6IDEwMHZ3O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuRk9STVNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2luZ2xlLWNvbnRlbnQgaW5wdXQ6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKSxcbi5zaW5nbGUtY29udGVudCB0ZXh0YXJlYSxcbi5zaW5nbGUtY29udGVudCBzZWxlY3QsXG4jY29sb3Bob24gaW5wdXQ6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKSxcbiNjb2xvcGhvbiB0ZXh0YXJlYSxcbiNjb2xvcGhvbiBzZWxlY3Qge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXMpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1jb2xvci1ncmV5LTIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyZXktMyk7XG59XG4uc2luZ2xlLWNvbnRlbnQgaW5wdXQ6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKTo6cGxhY2Vob2xkZXIsXG4uc2luZ2xlLWNvbnRlbnQgdGV4dGFyZWE6OnBsYWNlaG9sZGVyLFxuLnNpbmdsZS1jb250ZW50IHNlbGVjdDo6cGxhY2Vob2xkZXIsXG4jY29sb3Bob24gaW5wdXQ6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKTo6cGxhY2Vob2xkZXIsXG4jY29sb3Bob24gdGV4dGFyZWE6OnBsYWNlaG9sZGVyLFxuI2NvbG9waG9uIHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JleS0yKTtcbn1cbi5zaW5nbGUtY29udGVudCBpbnB1dDpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pOmZvY3VzLFxuLnNpbmdsZS1jb250ZW50IHRleHRhcmVhOmZvY3VzLFxuLnNpbmdsZS1jb250ZW50IHNlbGVjdDpmb2N1cyxcbiNjb2xvcGhvbiBpbnB1dDpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pOmZvY3VzLFxuI2NvbG9waG9uIHRleHRhcmVhOmZvY3VzLFxuI2NvbG9waG9uIHNlbGVjdDpmb2N1cyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcmVkKSAhaW1wb3J0YW50O1xufVxuLnNpbmdsZS1jb250ZW50IHNlbGVjdCxcbiNjb2xvcGhvbiBzZWxlY3Qge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG4uc2luZ2xlLWNvbnRlbnQgaW5wdXRbdHlwZT1yYWRpb106bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKSxcbi5zaW5nbGUtY29udGVudCBpbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pLFxuI2NvbG9waG9uIGlucHV0W3R5cGU9cmFkaW9dOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPXJlc2V0XSksXG4jY29sb3Bob24gaW5wdXRbdHlwZT1jaGVja2JveF06bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKSB7XG4gIGhlaWdodDogdmFyKC0tc3BhY2luZy1tKSAhaW1wb3J0YW50O1xuICB3aWR0aDogdmFyKC0tc3BhY2luZy1tKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSkgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDZweDtcbn1cbi5zaW5nbGUtY29udGVudCBpbnB1dFt0eXBlPXJhZGlvXTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pICsgbGFiZWwsXG4uc2luZ2xlLWNvbnRlbnQgaW5wdXRbdHlwZT1yYWRpb106bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKSArIHNwYW4sXG4uc2luZ2xlLWNvbnRlbnQgaW5wdXRbdHlwZT1yYWRpb106bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKSBsYWJlbCxcbi5zaW5nbGUtY29udGVudCBpbnB1dFt0eXBlPXJhZGlvXTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pIHNwYW4sXG4uc2luZ2xlLWNvbnRlbnQgaW5wdXRbdHlwZT1jaGVja2JveF06bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKSArIGxhYmVsLFxuLnNpbmdsZS1jb250ZW50IGlucHV0W3R5cGU9Y2hlY2tib3hdOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPXJlc2V0XSkgKyBzcGFuLFxuLnNpbmdsZS1jb250ZW50IGlucHV0W3R5cGU9Y2hlY2tib3hdOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPXJlc2V0XSkgbGFiZWwsXG4uc2luZ2xlLWNvbnRlbnQgaW5wdXRbdHlwZT1jaGVja2JveF06bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKSBzcGFuLFxuI2NvbG9waG9uIGlucHV0W3R5cGU9cmFkaW9dOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPXJlc2V0XSkgKyBsYWJlbCxcbiNjb2xvcGhvbiBpbnB1dFt0eXBlPXJhZGlvXTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pICsgc3BhbixcbiNjb2xvcGhvbiBpbnB1dFt0eXBlPXJhZGlvXTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pIGxhYmVsLFxuI2NvbG9waG9uIGlucHV0W3R5cGU9cmFkaW9dOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPXJlc2V0XSkgc3BhbixcbiNjb2xvcGhvbiBpbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pICsgbGFiZWwsXG4jY29sb3Bob24gaW5wdXRbdHlwZT1jaGVja2JveF06bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKSArIHNwYW4sXG4jY29sb3Bob24gaW5wdXRbdHlwZT1jaGVja2JveF06bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKSBsYWJlbCxcbiNjb2xvcGhvbiBpbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pIHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDAgMCAxMnB4O1xuICBtYXJnaW46IDA7XG59XG4uc2luZ2xlLWNvbnRlbnQgaW5wdXRbdHlwZT1yYWRpb106bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKTpmb2N1cyxcbi5zaW5nbGUtY29udGVudCBpbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pOmZvY3VzLFxuI2NvbG9waG9uIGlucHV0W3R5cGU9cmFkaW9dOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPXJlc2V0XSk6Zm9jdXMsXG4jY29sb3Bob24gaW5wdXRbdHlwZT1jaGVja2JveF06bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZSkgIWltcG9ydGFudDtcbn1cbi5zaW5nbGUtY29udGVudCBpbnB1dFt0eXBlPXJhZGlvXTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pOmNoZWNrZWQsXG4uc2luZ2xlLWNvbnRlbnQgaW5wdXRbdHlwZT1jaGVja2JveF06bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKTpjaGVja2VkLFxuI2NvbG9waG9uIGlucHV0W3R5cGU9cmFkaW9dOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPXJlc2V0XSk6Y2hlY2tlZCxcbiNjb2xvcGhvbiBpbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pOmNoZWNrZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xufVxuLnNpbmdsZS1jb250ZW50IGlucHV0W3R5cGU9cmFkaW9dOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPXJlc2V0XSk6Y2hlY2tlZDo6YWZ0ZXIsXG4uc2luZ2xlLWNvbnRlbnQgaW5wdXRbdHlwZT1jaGVja2JveF06bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9cmVzZXRdKTpjaGVja2VkOjphZnRlcixcbiNjb2xvcGhvbiBpbnB1dFt0eXBlPXJhZGlvXTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1yZXNldF0pOmNoZWNrZWQ6OmFmdGVyLFxuI2NvbG9waG9uIGlucHV0W3R5cGU9Y2hlY2tib3hdOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPXJlc2V0XSk6Y2hlY2tlZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSEVBRElOR1Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2luZ2xlLWNvbnRlbnQgaDEge1xuICBtYXJnaW46IHZhcigtLW1hcmdpbi1oMS1tb2JpbGUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuc2luZ2xlLWNvbnRlbnQgaDEge1xuICAgIG1hcmdpbjogdmFyKC0tbWFyZ2luLWgxLWRlc2t0b3ApO1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgaDIge1xuICBtYXJnaW46IHZhcigtLW1hcmdpbi1oMi1tb2JpbGUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuc2luZ2xlLWNvbnRlbnQgaDIge1xuICAgIG1hcmdpbjogdmFyKC0tbWFyZ2luLWgyLWRlc2t0b3ApO1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgaDMge1xuICBtYXJnaW46IHZhcigtLW1hcmdpbi1oMy1tb2JpbGUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuc2luZ2xlLWNvbnRlbnQgaDMge1xuICAgIG1hcmdpbjogdmFyKC0tbWFyZ2luLWgzLWRlc2t0b3ApO1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgaDQge1xuICBtYXJnaW46IHZhcigtLW1hcmdpbi1oNC1tb2JpbGUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuc2luZ2xlLWNvbnRlbnQgaDQge1xuICAgIG1hcmdpbjogdmFyKC0tbWFyZ2luLWg0LWRlc2t0b3ApO1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgaDUge1xuICBtYXJnaW46IHZhcigtLW1hcmdpbi1oNS1tb2JpbGUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuc2luZ2xlLWNvbnRlbnQgaDUge1xuICAgIG1hcmdpbjogdmFyKC0tbWFyZ2luLWg1LWRlc2t0b3ApO1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgaDYge1xuICBtYXJnaW46IHZhcigtLW1hcmdpbi1oNi1tb2JpbGUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuc2luZ2xlLWNvbnRlbnQgaDYge1xuICAgIG1hcmdpbjogdmFyKC0tbWFyZ2luLWg2LWRlc2t0b3ApO1xuICB9XG59XG5cbmgxIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JlZW4pO1xufVxuaDFbaWRdIHtcbiAgcGFkZGluZy10b3A6IDE0MHB4O1xuICBtYXJnaW4tdG9wOiAtMTQwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTQ0cHgpIHtcbiAgaDFbaWRdIHtcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEwMHB4O1xuICB9XG59XG5cbmgyIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JlZW4pO1xufVxuaDJbaWRdIHtcbiAgcGFkZGluZy10b3A6IDE0MHB4O1xuICBtYXJnaW4tdG9wOiAtMTQwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTQ0cHgpIHtcbiAgaDJbaWRdIHtcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEwMHB4O1xuICB9XG59XG5cbmgzIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JlZW4pO1xufVxuaDNbaWRdIHtcbiAgcGFkZGluZy10b3A6IDE0MHB4O1xuICBtYXJnaW4tdG9wOiAtMTQwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTQ0cHgpIHtcbiAgaDNbaWRdIHtcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEwMHB4O1xuICB9XG59XG5cbmg0IHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JlZW4pO1xufVxuaDRbaWRdIHtcbiAgcGFkZGluZy10b3A6IDE0MHB4O1xuICBtYXJnaW4tdG9wOiAtMTQwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTQ0cHgpIHtcbiAgaDRbaWRdIHtcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEwMHB4O1xuICB9XG59XG5cbmg1IHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JlZW4pO1xufVxuaDVbaWRdIHtcbiAgcGFkZGluZy10b3A6IDE0MHB4O1xuICBtYXJnaW4tdG9wOiAtMTQwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTQ0cHgpIHtcbiAgaDVbaWRdIHtcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEwMHB4O1xuICB9XG59XG5cbmg2IHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JlZW4pO1xufVxuaDZbaWRdIHtcbiAgcGFkZGluZy10b3A6IDE0MHB4O1xuICBtYXJnaW4tdG9wOiAtMTQwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTQ0cHgpIHtcbiAgaDZbaWRdIHtcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEwMHB4O1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JTUFHRVNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5pbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5MSU5LU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA0cHg7XG59XG5cbiNtYXN0aGVhZCBhW2hyZWYqPVwidGVsOlwiXTo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYmx1ZSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL3N2Zy9pY29uLXBob25lLXdoaXRlLnN2Z1wiKTtcbiAgaGVpZ2h0OiAxOHB4O1xuICB3aWR0aDogMThweDtcbn1cbiNtYXN0aGVhZCBhW2hyZWYqPVwibWFpbHRvOlwiXTo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9zdmcvaWNvbi1tYWlsLXdoaXRlLnN2Z1wiKTtcbiAgaGVpZ2h0OiAxOHB4O1xuICB3aWR0aDogMThweDtcbn1cblxuI2NvbG9waG9uIGFbaHJlZio9XCJ0ZWw6XCJdOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ibHVlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vc3ZnL2ljb24tcGhvbmUtcmVkLnN2Z1wiKTtcbn1cbiNjb2xvcGhvbiBhW2hyZWYqPVwibWFpbHRvOlwiXTo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9zdmcvaWNvbi1tYWlsLXJlZC5zdmdcIik7XG59XG5cbi53aWRnZXQud2lkZ2V0X25hdl9tZW51IGE6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9zdmcvaWNvbi1hcnJvdy1yaWdodC1yZWQuc3ZnXCIpO1xuICBoZWlnaHQ6IDE4cHg7XG4gIHdpZHRoOiAxOHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuTElTVFNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgKG1heC13aWR0aDogNTQ0cHgpIHtcbiAgLnNpbmdsZS1jb250ZW50IHVsLFxuLnNpbmdsZS1jb250ZW50IG9sIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLW0pO1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5QQVJBR1JBUEhTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmVudHJ5LWNvbnRlbnQgcCB7XG4gIG1hcmdpbjogdmFyKC0tbWFyZ2luLXAtbW9iaWxlKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLmVudHJ5LWNvbnRlbnQgcCB7XG4gICAgbWFyZ2luOiB2YXIoLS1tYXJnaW4tcC1kZXNrdG9wKTtcbiAgfVxufVxuLmVudHJ5LWNvbnRlbnQgcC5oYXMtc21hbGwtZm9udC1zaXplIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc21hbGwtbW9iaWxlKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtYWxsKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLmVudHJ5LWNvbnRlbnQgcC5oYXMtc21hbGwtZm9udC1zaXplIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbWFsbC1kZXNrdG9wKTtcbiAgfVxufVxuLmVudHJ5LWNvbnRlbnQgcC5oYXMtbWVkaXVtLWZvbnQtc2l6ZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLW1lZGl1bS1tb2JpbGUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbWVkaXVtKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLmVudHJ5LWNvbnRlbnQgcC5oYXMtbWVkaXVtLWZvbnQtc2l6ZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbWVkaXVtLWRlc2t0b3ApO1xuICB9XG59XG4uZW50cnktY29udGVudCBwLmhhcy1sYXJnZS1mb250LXNpemUge1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sYXJnZS1tb2JpbGUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbGFyZ2UpO1xuICBtYXJnaW46IHZhcigtLW1hcmdpbi1sYXJnZS1tb2JpbGUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuZW50cnktY29udGVudCBwLmhhcy1sYXJnZS1mb250LXNpemUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWxhcmdlLWRlc2t0b3ApO1xuICAgIG1hcmdpbjogdmFyKC0tbWFyZ2luLWxhcmdlLWRlc2t0b3ApO1xuICB9XG59XG4uZW50cnktY29udGVudCBwLmhhcy1sYXJnZXItZm9udC1zaXplIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGFyZ2VyLW1vYmlsZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sYXJnZXIpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1tYXJnaW4tYm90dG9tLWxhcmdlLW1vYmlsZSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gIC5lbnRyeS1jb250ZW50IHAuaGFzLWxhcmdlci1mb250LXNpemUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWxhcmdlci1kZXNrdG9wKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1tYXJnaW4tYm90dG9tLWxhcmdlLWRlc2t0b3ApO1xuICB9XG59XG4uZW50cnktY29udGVudCBwOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5lbnRyeS1jb250ZW50IHA6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbk9iamVjdHNcbi0gbXVzdCBiZSBwcmVmaXhlZCB3aXRoIGBvLSpgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkNBUkRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYWdlbmN5LXVpLWNhcmQsXG4uYWdlbmN5LXVpLWNhcmRfX2NvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5hZ2VuY3ktdWktY2FyZCAuY2FyZC1pbWFnZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmFnZW5jeS11aS1jYXJkX19jb250ZW50IHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy1tKSAwIDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbn1cbi5hZ2VuY3ktdWktY2FyZF9fY29udGVudCAuY2FyZC10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG4gIG1hcmdpbjogMCAwIHZhcigtLXNwYWNpbmctcyk7XG59XG4uYWdlbmN5LXVpLWNhcmRfX2NvbnRlbnQgcCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctcykgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAuYWdlbmN5LXVpLWNhcmRfX2NvbnRlbnQgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1sKSAhaW1wb3J0YW50O1xuICB9XG59XG4uYWdlbmN5LXVpLWNhcmRfX2NvbnRlbnQgLndwLWJsb2NrLWJ1dHRvbnMge1xuICBtYXJnaW46IGF1dG8gMCAwICFpbXBvcnRhbnQ7XG59XG4uYWdlbmN5LXVpLWNhcmRfX2NvbnRlbnQgLndwLWJsb2NrLWJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkdMSURFSlMgQ0FST1VTRUxcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uZ2xpZGUgLmdsaWRlX19idWxsZXRzIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZy14eGwpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZ2xpZGUgLmdsaWRlX19idWxsZXQge1xuICBwYWRkaW5nOiA4cHg7XG4gIG1hcmdpbjogMCB2YXIoLS1zcGFjaW5nLXhzKTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tY29sb3ItcmVkKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ2xpZGUgLmdsaWRlX19idWxsZXQ6aG92ZXIsIC5nbGlkZSAuZ2xpZGVfX2J1bGxldDpmb2N1cywgLmdsaWRlIC5nbGlkZV9fYnVsbGV0OmFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcbn1cbi5nbGlkZSAuZ2xpZGVfX2J1bGxldC5nbGlkZV9fYnVsbGV0LS1hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXJlZCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXJlZCk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5HUkFWSVRZIEZPUk1TXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYm9keSAuZ2Zvcm1fd3JhcHBlciB7XG4gIG1hcmdpbjogMDtcbn1cbmJvZHkgLmdmb3JtX3dyYXBwZXIgaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9aW1hZ2VdKTpub3QoW3R5cGU9ZmlsZV0pLFxuYm9keSAuZ2Zvcm1fd3JhcHBlciB0ZXh0YXJlYSB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctcyk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5ib2R5IC5nZm9ybV93cmFwcGVyIC5nZm9ybV9ib2R5IHVsIGxpOmZpcnN0LW9mLXR5cGUge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuYm9keSAuZ2Zvcm1fd3JhcHBlciAudG9wX2xhYmVsIGRpdi5naW5wdXRfY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5ib2R5IC5nZm9ybV93cmFwcGVyIC5nZm9ybV9mb290ZXIgLmdmb3JtX2J1dHRvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxLjYgIWltcG9ydGFudDtcbn1cbmJvZHkgI2NvbG9waG9uIC5nZm9ybV93cmFwcGVyIGxpLmhpZGRlbl9sYWJlbCBpbnB1dCxcbmJvZHkgI2NvbG9waG9uIC5nZm9ybV93cmFwcGVyIC50b3BfbGFiZWwgZGl2LmdpbnB1dF9jb250YWluZXIge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cbmJvZHkgI2NvbG9waG9uIC5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyBsaS5nZmllbGQge1xuICBwYWRkaW5nOiAwO1xufVxuYm9keSAjY29sb3Bob24gLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2Zvb3RlciB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5HUklEXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm8tZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogdmFyKC0tc3BhY2luZy1sKTtcbn1cblxuLm8tZ3JpZF9fMiB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NDRweCkge1xuICAuby1ncmlkX18yIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuXG4uby1ncmlkX18zIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuby1ncmlkX18zIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NDRweCkge1xuICAuby1ncmlkX18zIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuXG4uby1ncmlkX180IHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxZnI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5vLWdyaWRfXzQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU0NHB4KSB7XG4gIC5vLWdyaWRfXzQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG5cbi5vLWdyaWRfX3NsaW0uby1ncmlkX18zIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuby1ncmlkX19zbGltLm8tZ3JpZF9fMyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTQ0cHgpIHtcbiAgLm8tZ3JpZF9fc2xpbS5vLWdyaWRfXzMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JQ09OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5mb290ZXItYWR2LWNvbXBhbnlfX3NvY2lhbCBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDhweCA4cHg7XG59XG4uZm9vdGVyLWFkdi1jb21wYW55X19zb2NpYWwgYTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDI1cHg7XG4gIHdpZHRoOiAyNXB4O1xufVxuLmZvb3Rlci1hZHYtY29tcGFueV9fc29jaWFsIGFbaHJlZio9XCJmYWNlYm9vay5jb21cIl06OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIlwiKTtcbn1cbi5mb290ZXItYWR2LWNvbXBhbnlfX3NvY2lhbCBhW2hyZWYqPVwidHdpdHRlci5jb21cIl06OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIlwiKTtcbn1cbi5mb290ZXItYWR2LWNvbXBhbnlfX3NvY2lhbCBhW2hyZWYqPVwiaW5zdGFncmFtLmNvbVwiXTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiXCIpO1xufVxuLmZvb3Rlci1hZHYtY29tcGFueV9fc29jaWFsIGFbaHJlZio9XCJ5b3V0dWJlLmNvbVwiXTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiXCIpO1xufVxuLmZvb3Rlci1hZHYtY29tcGFueV9fc29jaWFsIGFbaHJlZio9XCJwaW50ZXJlc3QuY29tXCJdOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJcIik7XG59XG4uZm9vdGVyLWFkdi1jb21wYW55X19zb2NpYWwgYVtocmVmKj1cImhvdXp6LmNvbVwiXTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiXCIpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUEFHRVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiNwcmltYXJ5LFxuI3NlY29uZGFyeSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmVycm9yNDA0IC5lbnRyeS1oZWFkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uaGVudHJ5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUEFHSU5BVElPTiAvIFBPU1QgTkFWSUdBVElPTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi53cC1wYWdlbmF2aSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA4OHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC53cC1wYWdlbmF2aSB7XG4gICAgbWFyZ2luLXRvcDogNjRweDtcbiAgfVxufVxuLndwLXBhZ2VuYXZpIC5jdXJyZW50LFxuLndwLXBhZ2VuYXZpIC5wYWdlLFxuLndwLXBhZ2VuYXZpIC5wcmV2aW91c3Bvc3RzbGluayxcbi53cC1wYWdlbmF2aSAubmV4dHBvc3RzbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IHZhcigtLXNwYWNpbmctbCk7XG4gIHdpZHRoOiB2YXIoLS1zcGFjaW5nLWwpO1xuICBtYXJnaW46IDAgdmFyKC0tc3BhY2luZy14cyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyZXktMyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1nbG9iYWwtaGVhZGluZy1mb250LWZhbWlseSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ud3AtcGFnZW5hdmkgLnBhZ2U6aG92ZXIsXG4ud3AtcGFnZW5hdmkgLnBhZ2U6Zm9jdXMsXG4ud3AtcGFnZW5hdmkgLnBhZ2U6YWN0aXZlLFxuLndwLXBhZ2VuYXZpIC5wcmV2aW91c3Bvc3RzbGluazpob3Zlcixcbi53cC1wYWdlbmF2aSAucHJldmlvdXNwb3N0c2xpbms6Zm9jdXMsXG4ud3AtcGFnZW5hdmkgLnByZXZpb3VzcG9zdHNsaW5rOmFjdGl2ZSxcbi53cC1wYWdlbmF2aSAubmV4dHBvc3RzbGluazpob3Zlcixcbi53cC1wYWdlbmF2aSAubmV4dHBvc3RzbGluazpmb2N1cyxcbi53cC1wYWdlbmF2aSAubmV4dHBvc3RzbGluazphY3RpdmUsXG4ud3AtcGFnZW5hdmkgLmN1cnJlbnQge1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblNFQVJDSCAmIEZJTFRFUiBQUk9cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2luZ2xlLWNvbnRlbnQgLnNlYXJjaGFuZGZpbHRlciB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbSkgdmFyKC0tc3BhY2luZy1sKSB2YXIoLS1zcGFjaW5nLWwpO1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyZXktMyk7XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlYXJjaGFuZGZpbHRlciB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc2luZ2xlLWNvbnRlbnQgLnNlYXJjaGFuZGZpbHRlciB1bCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlYXJjaGFuZGZpbHRlciBsaSB7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnNpbmdsZS1jb250ZW50IC5zZWFyY2hhbmRmaWx0ZXIgbGkgKyBsaSB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjaW5nLW0pO1xufVxuLnNpbmdsZS1jb250ZW50IC5zZWFyY2hhbmRmaWx0ZXIgbGkgdWwge1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNwYWNpbmcteHMpICogLTEpO1xufVxuLnNpbmdsZS1jb250ZW50IC5zZWFyY2hhbmRmaWx0ZXIgbGkgdWwgbGkge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2luZy1zKTtcbn1cbi5zaW5nbGUtY29udGVudCAuc2VhcmNoYW5kZmlsdGVyIGxpLnNmLWZpZWxkLXN1Ym1pdCBpbnB1dCwgLnNpbmdsZS1jb250ZW50IC5zZWFyY2hhbmRmaWx0ZXIgbGkuc2YtZmllbGQtcmVzZXQgaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbn1cbi5zaW5nbGUtY29udGVudCAuc2VhcmNoYW5kZmlsdGVyIGxpLnNmLWZpZWxkLXN1Ym1pdCB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjaW5nLWwpICFpbXBvcnRhbnQ7XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlYXJjaGFuZGZpbHRlciBsaS5zZi1maWVsZC1zdWJtaXQgaW5wdXQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlKTtcbn1cbi5zaW5nbGUtY29udGVudCAuc2VhcmNoYW5kZmlsdGVyIGxpLnNmLWZpZWxkLXN1Ym1pdCBpbnB1dDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcbn1cbi5zaW5nbGUtY29udGVudCAuc2VhcmNoYW5kZmlsdGVyIGxpLnNmLWZpZWxkLXJlc2V0IGlucHV0IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zaW5nbGUtY29udGVudCAuc2VhcmNoYW5kZmlsdGVyIGxpLnNmLWZpZWxkLXJlc2V0IGlucHV0OmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXJlZCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcbn1cbi5zaW5nbGUtY29udGVudCAuc2VhcmNoYW5kZmlsdGVyIGxhYmVsIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlYXJjaGFuZGZpbHRlciBzZWxlY3Quc2YtaW5wdXQtc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMjMwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNpbmdsZS1jb250ZW50IC5zZWFyY2hhbmRmaWx0ZXIgc2VsZWN0LnNmLWlucHV0LXNlbGVjdCB7XG4gICAgbWluLXdpZHRoOiB1bnNldDtcbiAgfVxufVxuLnNpbmdsZS1jb250ZW50IC5zZWFyY2hhbmRmaWx0ZXIgaDQge1xuICBmb250LXNpemU6IDIwcHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5Db21wb25lbnRzXG4tIG11c3QgYmUgcHJlZml4ZWQgd2l0aCBgYy0qYFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5IRUFERVJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSEVBREVSXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuI21hc3RoZWFkIC5zaXRlLXRvcC1oZWFkZXItd3JhcCB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMDtcbn1cbiNtYXN0aGVhZCAuc2l0ZS10b3AtaGVhZGVyLXdyYXAgbGkge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4jbWFzdGhlYWQgLnNpdGUtdG9wLWhlYWRlci13cmFwIGxpICsgbGkge1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNpbmctbSk7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjaW5nLW0pO1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHZhcigtLWNvbG9yLXdoaXRlLTUwKTtcbn1cbiNtYXN0aGVhZCAuc2l0ZS1tYWluLWhlYWRlci13cmFwIC5zaXRlLWhlYWRlci1pdGVtLW1haW4tbmF2aWdhdGlvbixcbiNtYXN0aGVhZCAuc2l0ZS1tYWluLWhlYWRlci13cmFwIC5oZWFkZXItbmF2aWdhdGlvbixcbiNtYXN0aGVhZCAuc2l0ZS1tYWluLWhlYWRlci13cmFwIC5oZWFkZXItbWVudS1jb250YWluZXIsXG4jbWFzdGhlYWQgLnNpdGUtbWFpbi1oZWFkZXItd3JhcCAuaGVhZGVyLW5hdmlnYXRpb24gLm1lbnUge1xuICBmbGV4OiAxO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuU0lURSBCUkFORElOR1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiNtYXN0aGVhZCAuc2l0ZS1icmFuZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbk5BVklHQVRJT05cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUFJJTUFSWSBIRUFERVIgTkFWSUdBVElPTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiNwcmltYXJ5LW1lbnUge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4jcHJpbWFyeS1tZW51ID4gbGkge1xuICBmbGV4OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4jcHJpbWFyeS1tZW51IGxpIGEge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbk1PQklMRSBIRUFERVIgTkFWSUdBVElPTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmJvZHkuYXN0LW1haW4taGVhZGVyLW5hdi1vcGVuICNtYXN0aGVhZCAubWFpbi1oZWFkZXItYmFyIC5tYWluLWhlYWRlci1iYXItbmF2aWdhdGlvbi50b2dnbGUtb24ge1xuICBwYWRkaW5nLXRvcDogMDtcbn1cbmJvZHkuYXN0LW1haW4taGVhZGVyLW5hdi1vcGVuICNtYXN0aGVhZCAubWFpbi1oZWFkZXItbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbn1cbmJvZHkuYXN0LW1haW4taGVhZGVyLW5hdi1vcGVuICNwcmltYXJ5LW1lbnUgLm1lbnUtaXRlbSB7XG4gIGxpbmUtaGVpZ2h0OiAzLjE7XG59XG5ib2R5LmFzdC1tYWluLWhlYWRlci1uYXYtb3BlbiAjcHJpbWFyeS1tZW51IC5tZW51LWxpbmsge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5ib2R5LmFzdC1tYWluLWhlYWRlci1uYXYtb3BlbiAjcHJpbWFyeS1tZW51ID4gLm1lbnUtaXRlbSA+IC5tZW51LWxpbmsge1xuICBwYWRkaW5nOiAwIDAgMCB2YXIoLS1zcGFjaW5nLW0pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xufVxuYm9keS5hc3QtbWFpbi1oZWFkZXItbmF2LW9wZW4gI3ByaW1hcnktbWVudSA+IC5tZW51LWl0ZW0uYXN0LXN1Ym1lbnUtZXhwYW5kZWQgPiAubWVudS1saW5rIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbn1cbmJvZHkuYXN0LW1haW4taGVhZGVyLW5hdi1vcGVuICNwcmltYXJ5LW1lbnUgPiAubWVudS1pdGVtLmFzdC1zdWJtZW51LWV4cGFuZGVkIC5hc3QtbWVudS10b2dnbGUge1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xufVxuYm9keS5hc3QtbWFpbi1oZWFkZXItbmF2LW9wZW4gI3ByaW1hcnktbWVudSAuc3ViLW1lbnUge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXhzKSAwO1xufVxuYm9keS5hc3QtbWFpbi1oZWFkZXItbmF2LW9wZW4gI3ByaW1hcnktbWVudSAuc3ViLW1lbnUgLm1lbnUtbGluayB7XG4gIHBhZGRpbmc6IDAgdmFyKC0tc3BhY2luZy1sKTtcbiAgYm9yZGVyOiBub25lO1xufVxuYm9keS5hc3QtbWFpbi1oZWFkZXItbmF2LW9wZW4gI3ByaW1hcnktbWVudSAuc3ViLW1lbnUgLm1lbnUtbGluazo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmFzdC1oZWFkZXItYnJlYWstcG9pbnQgLm1haW4taGVhZGVyLWJhci1uYXZpZ2F0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLmFzdC1oZWFkZXItYnJlYWstcG9pbnQgLm1haW4taGVhZGVyLWJhciAubWFpbi1oZWFkZXItYmFyLW5hdmlnYXRpb24gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuYXN0LW1lbnUtdG9nZ2xlIHtcbiAgcmlnaHQ6IHZhcigtLXNwYWNpbmcteHMpO1xufVxuXG4uYXN0LWhlYWRlci1icmVhay1wb2ludCAuYXN0LW1vYmlsZS1tZW51LWJ1dHRvbnMgLmFzdC1idXR0b24td3JhcCAuYXN0LW1vYmlsZS1tZW51LWJ1dHRvbnMtbWluaW1hbCB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuXG4uYXN0LWJ1dHRvbi13cmFwIC5tZW51LXRvZ2dsZSAubWVudS10b2dnbGUtaWNvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5GT09URVIgTkFWSUdBVElPTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5GT09URVJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICNjb2xvcGhvbiAuc2l0ZS1taWRkbGUtZm9vdGVyLXdyYXAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAjY29sb3Bob24gLnNpdGUtbWlkZGxlLWZvb3Rlci13cmFwIC5zaXRlLWZvb3Rlci1zZWN0aW9uICsgLnNpdGUtZm9vdGVyLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2luZy1sKTtcbiAgICBib3JkZXItbGVmdDogc29saWQgMXB4IHZhcigtLWNvbG9yLXdoaXRlLTUwKTtcbiAgfVxufVxuI2NvbG9waG9uIC5zaXRlLWJvdHRvbS1mb290ZXItd3JhcCAuc2l0ZS1mb290ZXItYm90dG9tLXNlY3Rpb24tMSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjY29sb3Bob24gLnNpdGUtYm90dG9tLWZvb3Rlci13cmFwIC5zaXRlLWZvb3Rlci1ib3R0b20tc2VjdGlvbi0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI2NvbG9waG9uIC5zaXRlLWJvdHRvbS1mb290ZXItd3JhcCAuc2l0ZS1mb290ZXItYm90dG9tLXNlY3Rpb24tMSA+ICoge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgI2NvbG9waG9uIC53aWRnZXQud2lkZ2V0X21lZGlhX2ltYWdlIGltZyB7XG4gICAgbWF4LXdpZHRoOiAzMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQVJDSElWRVMgR0VORVJBTFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hcmNoaXZlIC5zaXRlLW1haW4gPiAuYXN0LXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogdmFyKC0tc3BhY2luZy1sKTtcbiAgcGFkZGluZzogOTZweCAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuYXJjaGl2ZSAuc2l0ZS1tYWluID4gLmFzdC1yb3cge1xuICAgIHBhZGRpbmctdG9wOiA2NHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2NHB4O1xuICB9XG59XG5cbi5ibG9nLWxheW91dC0xIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5TSU5HTEVTIEdFTkVSQUxcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuV1Bcbi0gSW4gdGhpcyBzZWN0aW9uIHlvdSBzaG91bGQgYWRkIGFueSByZWxldmFudCBmaWxlIHRoYXQgb3ZlcnJpZGVzXG4tIGEgc3BlY2lmaWMgV29yZFByZXNzIGNvbXBvbmVudCAoZS5nLiBibG9jaywgcGx1Z2luLCBldGMuLilcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuR1VURU5CRVJHIEJMT0NLU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIENvcmUgQmxvY2tzICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQkxPQ0tRVU9URSBCTE9DS1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5lbnRyeS1jb250ZW50IGJsb2NrcXVvdGUud3AtYmxvY2stcXVvdGUge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLWwpO1xuICBtYXJnaW46IHZhcigtLXNwYWNpbmcteHhsKSAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgYm94LXNoYWRvdzogMCA4cHggMTBweCAtOHB4IHZhcigtLWNvbG9yLWdyZXktMik7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gIC5lbnRyeS1jb250ZW50IGJsb2NrcXVvdGUud3AtYmxvY2stcXVvdGUge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmcteGwpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmcteGwpO1xuICB9XG59XG4uZW50cnktY29udGVudCBibG9ja3F1b3RlLndwLWJsb2NrLXF1b3RlIGNpdGUge1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1tZWRpdW0tbW9iaWxlKTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQlVUVE9OIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNpbmdsZS1jb250ZW50IC53cC1ibG9jay1idXR0b25zIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZy1sKTtcbn1cbi5zaW5nbGUtY29udGVudCAud3AtYmxvY2stYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZy1zKTtcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLW0pO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU0NHB4KSB7XG4gIC5zaW5nbGUtY29udGVudCAud3AtYmxvY2stYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cbi5zaW5nbGUtY29udGVudCAud3AtYmxvY2stYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uX19saW5rIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi53cC1ibG9jay1idXR0b246bm90KC5pcy1zdHlsZS1vdXRsaW5lKTpub3QoLmlzLXN0eWxlLWZlYXR1cmVkKSA+IC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsIC53cC1ibG9jay1idXR0b246bm90KC5pcy1zdHlsZS1vdXRsaW5lKTpub3QoLmlzLXN0eWxlLWZlYXR1cmVkKSA+IC53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXMsIC53cC1ibG9jay1idXR0b246bm90KC5pcy1zdHlsZS1vdXRsaW5lKTpub3QoLmlzLXN0eWxlLWZlYXR1cmVkKSA+IC53cC1ibG9jay1idXR0b25fX2xpbms6YWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1saWdodC1ibHVlKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1saWdodC1ibHVlKSAhaW1wb3J0YW50O1xufVxuLndwLWJsb2NrLWJ1dHRvbjpub3QoLmlzLXN0eWxlLW91dGxpbmUpOm5vdCguaXMtc3R5bGUtZmVhdHVyZWQpID4gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtdGhlbWUtcGFsZXR0ZS0xLWJhY2tncm91bmQtY29sb3Ige1xuICBib3JkZXItY29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlMSk7XG59XG4ud3AtYmxvY2stYnV0dG9uOm5vdCguaXMtc3R5bGUtb3V0bGluZSk6bm90KC5pcy1zdHlsZS1mZWF0dXJlZCkgPiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy10aGVtZS1wYWxldHRlLTItYmFja2dyb3VuZC1jb2xvciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGUyKTtcbn1cbi53cC1ibG9jay1idXR0b246bm90KC5pcy1zdHlsZS1vdXRsaW5lKTpub3QoLmlzLXN0eWxlLWZlYXR1cmVkKSA+IC53cC1ibG9jay1idXR0b25fX2xpbmsuaGFzLXRoZW1lLXBhbGV0dGUtMy1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTMpO1xufVxuLndwLWJsb2NrLWJ1dHRvbjpub3QoLmlzLXN0eWxlLW91dGxpbmUpOm5vdCguaXMtc3R5bGUtZmVhdHVyZWQpID4gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtdGhlbWUtcGFsZXR0ZS00LWJhY2tncm91bmQtY29sb3Ige1xuICBib3JkZXItY29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlNCk7XG59XG4ud3AtYmxvY2stYnV0dG9uOm5vdCguaXMtc3R5bGUtb3V0bGluZSk6bm90KC5pcy1zdHlsZS1mZWF0dXJlZCkgPiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy10aGVtZS1wYWxldHRlLTUtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGU1KTtcbn1cbi53cC1ibG9jay1idXR0b246bm90KC5pcy1zdHlsZS1vdXRsaW5lKTpub3QoLmlzLXN0eWxlLWZlYXR1cmVkKSA+IC53cC1ibG9jay1idXR0b25fX2xpbmsuaGFzLXRoZW1lLXBhbGV0dGUtNi1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTYpO1xufVxuLndwLWJsb2NrLWJ1dHRvbjpub3QoLmlzLXN0eWxlLW91dGxpbmUpOm5vdCguaXMtc3R5bGUtZmVhdHVyZWQpID4gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtdGhlbWUtcGFsZXR0ZS03LWJhY2tncm91bmQtY29sb3Ige1xuICBib3JkZXItY29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlNyk7XG59XG4ud3AtYmxvY2stYnV0dG9uOm5vdCguaXMtc3R5bGUtb3V0bGluZSk6bm90KC5pcy1zdHlsZS1mZWF0dXJlZCkgPiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy10aGVtZS1wYWxldHRlLTgtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGU4KTtcbn1cbi53cC1ibG9jay1idXR0b246bm90KC5pcy1zdHlsZS1vdXRsaW5lKTpub3QoLmlzLXN0eWxlLWZlYXR1cmVkKSA+IC53cC1ibG9jay1idXR0b25fX2xpbmsuaGFzLXRoZW1lLXBhbGV0dGUtOS1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTkpO1xufVxuXG4ud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLW91dGxpbmUgPiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy10aGVtZS1wYWxldHRlLTEtY29sb3Ige1xuICBjb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGUxKTtcbn1cbi53cC1ibG9jay1idXR0b24uaXMtc3R5bGUtb3V0bGluZSA+IC53cC1ibG9jay1idXR0b25fX2xpbmsuaGFzLXRoZW1lLXBhbGV0dGUtMi1jb2xvciB7XG4gIGNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTIpO1xufVxuLndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1vdXRsaW5lID4gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtdGhlbWUtcGFsZXR0ZS0zLWNvbG9yIHtcbiAgY29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlMyk7XG59XG4ud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLW91dGxpbmUgPiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy10aGVtZS1wYWxldHRlLTQtY29sb3Ige1xuICBjb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGU0KTtcbn1cbi53cC1ibG9jay1idXR0b24uaXMtc3R5bGUtb3V0bGluZSA+IC53cC1ibG9jay1idXR0b25fX2xpbmsuaGFzLXRoZW1lLXBhbGV0dGUtNS1jb2xvciB7XG4gIGNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTUpO1xufVxuLndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1vdXRsaW5lID4gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtdGhlbWUtcGFsZXR0ZS02LWNvbG9yIHtcbiAgY29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlNik7XG59XG4ud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLW91dGxpbmUgPiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy10aGVtZS1wYWxldHRlLTctY29sb3Ige1xuICBjb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGU3KTtcbn1cbi53cC1ibG9jay1idXR0b24uaXMtc3R5bGUtb3V0bGluZSA+IC53cC1ibG9jay1idXR0b25fX2xpbmsuaGFzLXRoZW1lLXBhbGV0dGUtOC1jb2xvciB7XG4gIGNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTgpO1xufVxuLndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1vdXRsaW5lID4gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtdGhlbWUtcGFsZXR0ZS05LWNvbG9yIHtcbiAgY29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlOSk7XG59XG4ud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLW91dGxpbmUgPiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy10ZXh0LWNvbG9yOmhvdmVyLCAud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLW91dGxpbmUgPiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy10ZXh0LWNvbG9yOmZvY3VzLCAud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLW91dGxpbmUgPiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy10ZXh0LWNvbG9yOmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1saWdodC1ibHVlKTtcbn1cblxuLndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1mZWF0dXJlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi53cC1ibG9jay1idXR0b24uaXMtc3R5bGUtZmVhdHVyZWQgPiAud3AtYmxvY2stYnV0dG9uX19saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbSkgY2FsYygxMDJweCArIHZhcigtLXNwYWNpbmctbSkpIHZhcigtLXNwYWNpbmctbSkgdmFyKC0tc3BhY2luZy1tKTtcbiAgbWFyZ2luOiB2YXIoLS1zcGFjaW5nLXhsKSAwO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1tZWRpdW0tbW9iaWxlKTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWRhcmstYmx1ZSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgYm9yZGVyOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCB2YXIoLS1jb2xvci1ncmV5LTIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNTQ1cHgpIHtcbiAgLndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1mZWF0dXJlZCA+IC53cC1ibG9jay1idXR0b25fX2xpbmsge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjaW5nLWwpO1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjaW5nLWwpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLW1lZGl1bS1kZXNrdG9wKTtcbiAgfVxufVxuLndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1mZWF0dXJlZCA+IC53cC1ibG9jay1idXR0b25fX2xpbms6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1kYXJrLWJsdWUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9zdmcvaWNvbi1hcnJvdy1yaWdodC13aGl0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMjJweCAyMnB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLXNpemUgMC4ycyBlYXNlO1xufVxuLndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1mZWF0dXJlZCA+IC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsIC53cC1ibG9jay1idXR0b24uaXMtc3R5bGUtZmVhdHVyZWQgPiAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzLCAud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLWZlYXR1cmVkID4gLndwLWJsb2NrLWJ1dHRvbl9fbGluazphY3RpdmUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcbn1cbi53cC1ibG9jay1idXR0b24uaXMtc3R5bGUtZmVhdHVyZWQgPiAud3AtYmxvY2stYnV0dG9uX19saW5rOmhvdmVyOjphZnRlciwgLndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1mZWF0dXJlZCA+IC53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXM6OmFmdGVyLCAud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLWZlYXR1cmVkID4gLndwLWJsb2NrLWJ1dHRvbl9fbGluazphY3RpdmU6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcbiAgYmFja2dyb3VuZC1zaXplOiAzMnB4IDMycHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLXNpemUgMC4ycyBlYXNlO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQ09MVU1OUyBCTE9DS1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5DT1ZFUiBCTE9DS1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi53cC1ibG9jay1jb3ZlciB7XG4gIGhlaWdodDogYXV0bztcbn1cbi53cC1ibG9jay1jb3Zlci5oYXMtdHJ1ZS1ibGFjay1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbi53cC1ibG9jay1jb3Zlci5oYXMtYmxhY2stYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzFmMjA7XG59XG4ud3AtYmxvY2stY292ZXIuaGFzLXdoaXRlLWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLndwLWJsb2NrLWNvdmVyLmhhcy13aGl0ZS01MC1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLndwLWJsb2NrLWNvdmVyLmhhcy1yZWQtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZjMzMzg7XG59XG4ud3AtYmxvY2stY292ZXIuaGFzLWJsdWUtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDUyODk7XG59XG4ud3AtYmxvY2stY292ZXIuaGFzLWxpZ2h0LWJsdWUtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ZGE5ZGM7XG59XG4ud3AtYmxvY2stY292ZXIuaGFzLWRhcmstYmx1ZS1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMWMyYTtcbn1cbi53cC1ibG9jay1jb3Zlci5oYXMtZ3JleS0xLWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmQ2ZTcxO1xufVxuLndwLWJsb2NrLWNvdmVyLmhhcy1ncmV5LTItYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhN2E4YWE7XG59XG4ud3AtYmxvY2stY292ZXIuaGFzLWdyZXktMy1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjNmNTtcbn1cbi53cC1ibG9jay1jb3Zlci5oYXMtZ29sZC1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M4OTgyYztcbn1cbi53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2lubmVyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDE0MDBweDtcbiAgcGFkZGluZzogMDtcbn1cbi53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stZ3JvdXAge1xuICBwYWRkaW5nOiAwO1xufVxuLndwLWJsb2NrLWNvdmVyLmFsaWduZnVsbCAud3AtYmxvY2stY292ZXJfX2lubmVyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMjRweDtcbiAgcGFkZGluZy1yaWdodDogMjRweDtcbn1cblxuLndwLWJsb2NrLWNvdmVyOm5vdChbY2xhc3MqPXNlY3Rpb24tLV0pIHtcbiAgcGFkZGluZzogOTZweCAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAud3AtYmxvY2stY292ZXI6bm90KFtjbGFzcyo9c2VjdGlvbi0tXSkge1xuICAgIHBhZGRpbmctdG9wOiA2NHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2NHB4O1xuICB9XG59XG5cbi53cC1ibG9jay1jb3Zlci51aS1taW4taGVpZ2h0LWhhbGYgLndwLWJsb2NrLWNvdmVyX19pbm5lci1jb250YWluZXIsXG4ud3AtYmxvY2stY292ZXIudWktbWluLWhlaWdodC1mdWxsIC53cC1ibG9jay1jb3Zlcl9faW5uZXItY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5HQUxMRVJZIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLndwLWJsb2NrLWdhbGxlcnkgLmJsb2Nrcy1nYWxsZXJ5LWdyaWQge1xuICBtYXJnaW46IDA7XG59XG4ud3AtYmxvY2stZ2FsbGVyeSAuYmxvY2tzLWdhbGxlcnktZ3JpZCAuYmxvY2tzLWdhbGxlcnktaW1hZ2UgZmlndXJlLFxuLndwLWJsb2NrLWdhbGxlcnkgLmJsb2Nrcy1nYWxsZXJ5LWdyaWQgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW0gZmlndXJlLFxuLndwLWJsb2NrLWdhbGxlcnkgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlIGZpZ3VyZSxcbi53cC1ibG9jay1nYWxsZXJ5IC5ibG9ja3MtZ2FsbGVyeS1pdGVtIGZpZ3VyZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwLjVlbTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC53cC1ibG9jay1nYWxsZXJ5IC5ibG9ja3MtZ2FsbGVyeS1ncmlkIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSBmaWd1cmUsXG4ud3AtYmxvY2stZ2FsbGVyeSAuYmxvY2tzLWdhbGxlcnktZ3JpZCAuYmxvY2tzLWdhbGxlcnktaXRlbSBmaWd1cmUsXG4ud3AtYmxvY2stZ2FsbGVyeSAuYmxvY2tzLWdhbGxlcnktaW1hZ2UgZmlndXJlLFxuLndwLWJsb2NrLWdhbGxlcnkgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW0gZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkdST1VQIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLndwLWJsb2NrLWdyb3VwOm5vdChbY2xhc3MqPXNlY3Rpb24tLV0pIHtcbiAgcGFkZGluZzogOTZweCAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAud3AtYmxvY2stZ3JvdXA6bm90KFtjbGFzcyo9c2VjdGlvbi0tXSkge1xuICAgIHBhZGRpbmctdG9wOiA2NHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2NHB4O1xuICB9XG59XG5cbi53cC1ibG9jay1ncm91cCAud3AtYmxvY2stZ3JvdXBfX2lubmVyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDE0MDBweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY292ZXIge1xuICBwYWRkaW5nOiAwO1xufVxuLndwLWJsb2NrLWdyb3VwLmFsaWduZnVsbCAud3AtYmxvY2stZ3JvdXBfX2lubmVyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMjRweDtcbiAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLnNpbmdsZS1jb250ZW50IC53cC1ibG9jay1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi53cC1ibG9jay1ncm91cC51aS1taW4taGVpZ2h0LWhhbGYgLndwLWJsb2NrLWdyb3VwX19pbm5lci1jb250YWluZXIsXG4ud3AtYmxvY2stZ3JvdXAudWktbWluLWhlaWdodC1mdWxsIC53cC1ibG9jay1ncm91cF9faW5uZXItY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5IRUFESU5HIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuaDEuaGFzLXRydWUtYmxhY2stY29sb3IgYSxcbmgyLmhhcy10cnVlLWJsYWNrLWNvbG9yIGEsXG5oMy5oYXMtdHJ1ZS1ibGFjay1jb2xvciBhLFxuaDQuaGFzLXRydWUtYmxhY2stY29sb3IgYSxcbmg1Lmhhcy10cnVlLWJsYWNrLWNvbG9yIGEsXG5oNi5oYXMtdHJ1ZS1ibGFjay1jb2xvciBhIHtcbiAgY29sb3I6ICMwMDA7XG59XG5oMS5oYXMtdHJ1ZS1ibGFjay1jb2xvciBhOmhvdmVyLFxuaDIuaGFzLXRydWUtYmxhY2stY29sb3IgYTpob3ZlcixcbmgzLmhhcy10cnVlLWJsYWNrLWNvbG9yIGE6aG92ZXIsXG5oNC5oYXMtdHJ1ZS1ibGFjay1jb2xvciBhOmhvdmVyLFxuaDUuaGFzLXRydWUtYmxhY2stY29sb3IgYTpob3Zlcixcbmg2Lmhhcy10cnVlLWJsYWNrLWNvbG9yIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmgxLmhhcy1ibGFjay1jb2xvciBhLFxuaDIuaGFzLWJsYWNrLWNvbG9yIGEsXG5oMy5oYXMtYmxhY2stY29sb3IgYSxcbmg0Lmhhcy1ibGFjay1jb2xvciBhLFxuaDUuaGFzLWJsYWNrLWNvbG9yIGEsXG5oNi5oYXMtYmxhY2stY29sb3IgYSB7XG4gIGNvbG9yOiAjMjMxZjIwO1xufVxuaDEuaGFzLWJsYWNrLWNvbG9yIGE6aG92ZXIsXG5oMi5oYXMtYmxhY2stY29sb3IgYTpob3ZlcixcbmgzLmhhcy1ibGFjay1jb2xvciBhOmhvdmVyLFxuaDQuaGFzLWJsYWNrLWNvbG9yIGE6aG92ZXIsXG5oNS5oYXMtYmxhY2stY29sb3IgYTpob3Zlcixcbmg2Lmhhcy1ibGFjay1jb2xvciBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5oMS5oYXMtd2hpdGUtY29sb3IgYSxcbmgyLmhhcy13aGl0ZS1jb2xvciBhLFxuaDMuaGFzLXdoaXRlLWNvbG9yIGEsXG5oNC5oYXMtd2hpdGUtY29sb3IgYSxcbmg1Lmhhcy13aGl0ZS1jb2xvciBhLFxuaDYuaGFzLXdoaXRlLWNvbG9yIGEge1xuICBjb2xvcjogI2ZmZjtcbn1cbmgxLmhhcy13aGl0ZS1jb2xvciBhOmhvdmVyLFxuaDIuaGFzLXdoaXRlLWNvbG9yIGE6aG92ZXIsXG5oMy5oYXMtd2hpdGUtY29sb3IgYTpob3Zlcixcbmg0Lmhhcy13aGl0ZS1jb2xvciBhOmhvdmVyLFxuaDUuaGFzLXdoaXRlLWNvbG9yIGE6aG92ZXIsXG5oNi5oYXMtd2hpdGUtY29sb3IgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuaDEuaGFzLXdoaXRlLTUwLWNvbG9yIGEsXG5oMi5oYXMtd2hpdGUtNTAtY29sb3IgYSxcbmgzLmhhcy13aGl0ZS01MC1jb2xvciBhLFxuaDQuaGFzLXdoaXRlLTUwLWNvbG9yIGEsXG5oNS5oYXMtd2hpdGUtNTAtY29sb3IgYSxcbmg2Lmhhcy13aGl0ZS01MC1jb2xvciBhIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbmgxLmhhcy13aGl0ZS01MC1jb2xvciBhOmhvdmVyLFxuaDIuaGFzLXdoaXRlLTUwLWNvbG9yIGE6aG92ZXIsXG5oMy5oYXMtd2hpdGUtNTAtY29sb3IgYTpob3Zlcixcbmg0Lmhhcy13aGl0ZS01MC1jb2xvciBhOmhvdmVyLFxuaDUuaGFzLXdoaXRlLTUwLWNvbG9yIGE6aG92ZXIsXG5oNi5oYXMtd2hpdGUtNTAtY29sb3IgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuaDEuaGFzLXJlZC1jb2xvciBhLFxuaDIuaGFzLXJlZC1jb2xvciBhLFxuaDMuaGFzLXJlZC1jb2xvciBhLFxuaDQuaGFzLXJlZC1jb2xvciBhLFxuaDUuaGFzLXJlZC1jb2xvciBhLFxuaDYuaGFzLXJlZC1jb2xvciBhIHtcbiAgY29sb3I6ICNjZjMzMzg7XG59XG5oMS5oYXMtcmVkLWNvbG9yIGE6aG92ZXIsXG5oMi5oYXMtcmVkLWNvbG9yIGE6aG92ZXIsXG5oMy5oYXMtcmVkLWNvbG9yIGE6aG92ZXIsXG5oNC5oYXMtcmVkLWNvbG9yIGE6aG92ZXIsXG5oNS5oYXMtcmVkLWNvbG9yIGE6aG92ZXIsXG5oNi5oYXMtcmVkLWNvbG9yIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmgxLmhhcy1ibHVlLWNvbG9yIGEsXG5oMi5oYXMtYmx1ZS1jb2xvciBhLFxuaDMuaGFzLWJsdWUtY29sb3IgYSxcbmg0Lmhhcy1ibHVlLWNvbG9yIGEsXG5oNS5oYXMtYmx1ZS1jb2xvciBhLFxuaDYuaGFzLWJsdWUtY29sb3IgYSB7XG4gIGNvbG9yOiAjMDA1Mjg5O1xufVxuaDEuaGFzLWJsdWUtY29sb3IgYTpob3ZlcixcbmgyLmhhcy1ibHVlLWNvbG9yIGE6aG92ZXIsXG5oMy5oYXMtYmx1ZS1jb2xvciBhOmhvdmVyLFxuaDQuaGFzLWJsdWUtY29sb3IgYTpob3Zlcixcbmg1Lmhhcy1ibHVlLWNvbG9yIGE6aG92ZXIsXG5oNi5oYXMtYmx1ZS1jb2xvciBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5oMS5oYXMtbGlnaHQtYmx1ZS1jb2xvciBhLFxuaDIuaGFzLWxpZ2h0LWJsdWUtY29sb3IgYSxcbmgzLmhhcy1saWdodC1ibHVlLWNvbG9yIGEsXG5oNC5oYXMtbGlnaHQtYmx1ZS1jb2xvciBhLFxuaDUuaGFzLWxpZ2h0LWJsdWUtY29sb3IgYSxcbmg2Lmhhcy1saWdodC1ibHVlLWNvbG9yIGEge1xuICBjb2xvcjogIzZkYTlkYztcbn1cbmgxLmhhcy1saWdodC1ibHVlLWNvbG9yIGE6aG92ZXIsXG5oMi5oYXMtbGlnaHQtYmx1ZS1jb2xvciBhOmhvdmVyLFxuaDMuaGFzLWxpZ2h0LWJsdWUtY29sb3IgYTpob3Zlcixcbmg0Lmhhcy1saWdodC1ibHVlLWNvbG9yIGE6aG92ZXIsXG5oNS5oYXMtbGlnaHQtYmx1ZS1jb2xvciBhOmhvdmVyLFxuaDYuaGFzLWxpZ2h0LWJsdWUtY29sb3IgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuaDEuaGFzLWRhcmstYmx1ZS1jb2xvciBhLFxuaDIuaGFzLWRhcmstYmx1ZS1jb2xvciBhLFxuaDMuaGFzLWRhcmstYmx1ZS1jb2xvciBhLFxuaDQuaGFzLWRhcmstYmx1ZS1jb2xvciBhLFxuaDUuaGFzLWRhcmstYmx1ZS1jb2xvciBhLFxuaDYuaGFzLWRhcmstYmx1ZS1jb2xvciBhIHtcbiAgY29sb3I6ICMwYTFjMmE7XG59XG5oMS5oYXMtZGFyay1ibHVlLWNvbG9yIGE6aG92ZXIsXG5oMi5oYXMtZGFyay1ibHVlLWNvbG9yIGE6aG92ZXIsXG5oMy5oYXMtZGFyay1ibHVlLWNvbG9yIGE6aG92ZXIsXG5oNC5oYXMtZGFyay1ibHVlLWNvbG9yIGE6aG92ZXIsXG5oNS5oYXMtZGFyay1ibHVlLWNvbG9yIGE6aG92ZXIsXG5oNi5oYXMtZGFyay1ibHVlLWNvbG9yIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmgxLmhhcy1ncmV5LTEtY29sb3IgYSxcbmgyLmhhcy1ncmV5LTEtY29sb3IgYSxcbmgzLmhhcy1ncmV5LTEtY29sb3IgYSxcbmg0Lmhhcy1ncmV5LTEtY29sb3IgYSxcbmg1Lmhhcy1ncmV5LTEtY29sb3IgYSxcbmg2Lmhhcy1ncmV5LTEtY29sb3IgYSB7XG4gIGNvbG9yOiAjNmQ2ZTcxO1xufVxuaDEuaGFzLWdyZXktMS1jb2xvciBhOmhvdmVyLFxuaDIuaGFzLWdyZXktMS1jb2xvciBhOmhvdmVyLFxuaDMuaGFzLWdyZXktMS1jb2xvciBhOmhvdmVyLFxuaDQuaGFzLWdyZXktMS1jb2xvciBhOmhvdmVyLFxuaDUuaGFzLWdyZXktMS1jb2xvciBhOmhvdmVyLFxuaDYuaGFzLWdyZXktMS1jb2xvciBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5oMS5oYXMtZ3JleS0yLWNvbG9yIGEsXG5oMi5oYXMtZ3JleS0yLWNvbG9yIGEsXG5oMy5oYXMtZ3JleS0yLWNvbG9yIGEsXG5oNC5oYXMtZ3JleS0yLWNvbG9yIGEsXG5oNS5oYXMtZ3JleS0yLWNvbG9yIGEsXG5oNi5oYXMtZ3JleS0yLWNvbG9yIGEge1xuICBjb2xvcjogI2E3YThhYTtcbn1cbmgxLmhhcy1ncmV5LTItY29sb3IgYTpob3ZlcixcbmgyLmhhcy1ncmV5LTItY29sb3IgYTpob3ZlcixcbmgzLmhhcy1ncmV5LTItY29sb3IgYTpob3Zlcixcbmg0Lmhhcy1ncmV5LTItY29sb3IgYTpob3Zlcixcbmg1Lmhhcy1ncmV5LTItY29sb3IgYTpob3Zlcixcbmg2Lmhhcy1ncmV5LTItY29sb3IgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuaDEuaGFzLWdyZXktMy1jb2xvciBhLFxuaDIuaGFzLWdyZXktMy1jb2xvciBhLFxuaDMuaGFzLWdyZXktMy1jb2xvciBhLFxuaDQuaGFzLWdyZXktMy1jb2xvciBhLFxuaDUuaGFzLWdyZXktMy1jb2xvciBhLFxuaDYuaGFzLWdyZXktMy1jb2xvciBhIHtcbiAgY29sb3I6ICNmMmYzZjU7XG59XG5oMS5oYXMtZ3JleS0zLWNvbG9yIGE6aG92ZXIsXG5oMi5oYXMtZ3JleS0zLWNvbG9yIGE6aG92ZXIsXG5oMy5oYXMtZ3JleS0zLWNvbG9yIGE6aG92ZXIsXG5oNC5oYXMtZ3JleS0zLWNvbG9yIGE6aG92ZXIsXG5oNS5oYXMtZ3JleS0zLWNvbG9yIGE6aG92ZXIsXG5oNi5oYXMtZ3JleS0zLWNvbG9yIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmgxLmhhcy1nb2xkLWNvbG9yIGEsXG5oMi5oYXMtZ29sZC1jb2xvciBhLFxuaDMuaGFzLWdvbGQtY29sb3IgYSxcbmg0Lmhhcy1nb2xkLWNvbG9yIGEsXG5oNS5oYXMtZ29sZC1jb2xvciBhLFxuaDYuaGFzLWdvbGQtY29sb3IgYSB7XG4gIGNvbG9yOiAjYzg5ODJjO1xufVxuaDEuaGFzLWdvbGQtY29sb3IgYTpob3ZlcixcbmgyLmhhcy1nb2xkLWNvbG9yIGE6aG92ZXIsXG5oMy5oYXMtZ29sZC1jb2xvciBhOmhvdmVyLFxuaDQuaGFzLWdvbGQtY29sb3IgYTpob3Zlcixcbmg1Lmhhcy1nb2xkLWNvbG9yIGE6aG92ZXIsXG5oNi5oYXMtZ29sZC1jb2xvciBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5pcy1zdHlsZS1zdWItaGVhZGluZyxcbi5lbnRyeS1jb250ZW50IC5pcy1zdHlsZS1zdWItaGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1nbG9iYWwtaGVhZGluZy1mb250LWZhbWlseSk7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1zKSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5pcy1zdHlsZS1zdWItaGVhZGluZyxcbi5lbnRyeS1jb250ZW50IC5pcy1zdHlsZS1zdWItaGVhZGluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14cykgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuTUVESUEgJiBURVhUIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC53cC1ibG9jay1tZWRpYS10ZXh0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG4gIH1cbn1cbi53cC1ibG9jay1tZWRpYS10ZXh0ICsgLndwLWJsb2NrLW1lZGlhLXRleHQge1xuICBtYXJnaW4tdG9wOiA1NnB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OXB4KSB7XG4gIC53cC1ibG9jay1tZWRpYS10ZXh0ICsgLndwLWJsb2NrLW1lZGlhLXRleHQge1xuICAgIG1hcmdpbi10b3A6IDcycHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLndwLWJsb2NrLW1lZGlhLXRleHQgKyAud3AtYmxvY2stbWVkaWEtdGV4dCB7XG4gICAgbWFyZ2luLXRvcDogOTZweDtcbiAgfVxufVxuLndwLWJsb2NrLW1lZGlhLXRleHQgLndwLWJsb2NrLW1lZGlhLXRleHRfX2NvbnRlbnQge1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgLndwLWJsb2NrLW1lZGlhLXRleHQgLndwLWJsb2NrLW1lZGlhLXRleHRfX2NvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2luZy1sKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAud3AtYmxvY2stbWVkaWEtdGV4dCAud3AtYmxvY2stbWVkaWEtdGV4dF9fY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjaW5nLXh4bCk7XG4gIH1cbn1cbi53cC1ibG9jay1tZWRpYS10ZXh0IC53cC1ibG9jay1tZWRpYS10ZXh0X19tZWRpYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY4MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLndwLWJsb2NrLW1lZGlhLXRleHQgLndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tKTtcbiAgfVxufVxuLndwLWJsb2NrLW1lZGlhLXRleHQuaXMtc3R5bGUtYmFja2dyb3VuZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmctbCk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgLndwLWJsb2NrLW1lZGlhLXRleHQuaXMtc3R5bGUtYmFja2dyb3VuZCB7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNpbmctbCk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2luZy1sKTtcbiAgfVxufVxuLndwLWJsb2NrLW1lZGlhLXRleHQuaXMtc3R5bGUtYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyNSU7XG4gIHJpZ2h0OiAtMjRweDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAtMjRweDtcbiAgei1pbmRleDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JleS0zKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAud3AtYmxvY2stbWVkaWEtdGV4dC5pcy1zdHlsZS1iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAud3AtYmxvY2stbWVkaWEtdGV4dC5oYXMtbWVkaWEtb24tdGhlLXJpZ2h0LmlzLXN0eWxlLWJhY2tncm91bmQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjaW5nLWwpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgLndwLWJsb2NrLW1lZGlhLXRleHQuaGFzLW1lZGlhLW9uLXRoZS1yaWdodC5pcy1zdHlsZS1iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIHJpZ2h0OiAyNSU7XG4gICAgbGVmdDogMDtcbiAgfVxufVxuLndwLWJsb2NrLW1lZGlhLXRleHQuaGFzLWJhY2tncm91bmQgLndwLWJsb2NrLW1lZGlhLXRleHRfX2NvbnRlbnQge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLWwpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OXB4KSB7XG4gIC53cC1ibG9jay1tZWRpYS10ZXh0Lmhhcy1iYWNrZ3JvdW5kIC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50IHtcbiAgICBwYWRkaW5nOiA2NHB4IHZhcigtLXNwYWNpbmcteHhsKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC53cC1ibG9jay1tZWRpYS10ZXh0Lmhhcy1tZWRpYS1vbi10aGUtcmlnaHQ6bm90KC5oYXMtYmFja2dyb3VuZCkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcbiAgfVxufVxuLndwLWJsb2NrLW1lZGlhLXRleHQuaGFzLW1lZGlhLW9uLXRoZS1yaWdodDpub3QoLmhhcy1iYWNrZ3JvdW5kKSAud3AtYmxvY2stbWVkaWEtdGV4dF9fY29udGVudCB7XG4gIHBhZGRpbmc6IDA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgLndwLWJsb2NrLW1lZGlhLXRleHQuaGFzLW1lZGlhLW9uLXRoZS1yaWdodDpub3QoLmhhcy1iYWNrZ3JvdW5kKSAud3AtYmxvY2stbWVkaWEtdGV4dF9fY29udGVudCB7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2luZy1sKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAud3AtYmxvY2stbWVkaWEtdGV4dC5oYXMtbWVkaWEtb24tdGhlLXJpZ2h0Om5vdCguaGFzLWJhY2tncm91bmQpIC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXh4bCk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAud3AtYmxvY2stbWVkaWEtdGV4dC5oYXMtbWVkaWEtb24tdGhlLXJpZ2h0Om5vdCguaGFzLWJhY2tncm91bmQpIC53cC1ibG9jay1tZWRpYS10ZXh0X19tZWRpYSB7XG4gICAgbWFyZ2luOiAwIDAgMCBhdXRvO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLndwLWJsb2NrLW1lZGlhLXRleHQuaGFzLW1lZGlhLW9uLXRoZS1yaWdodCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLndwLWJsb2NrLW1lZGlhLXRleHQuaXMtc3RhY2tlZC1vbi1tb2JpbGUgLndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhIHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICBncmlkLXJvdzogMTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC53cC1ibG9jay1tZWRpYS10ZXh0LmlzLXN0YWNrZWQtb24tbW9iaWxlIC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50IHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICBncmlkLXJvdzogMjtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQkxPQ0tRVU9URSBCTE9DS1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi53cC1ibG9jay1wdWxscXVvdGUge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLWwpIHZhcigtLXNwYWNpbmctcyk7XG4gIGJvcmRlci10b3A6IHNvbGlkIDVweCB2YXIoLS1jb2xvci1ibHVlKTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgNXB4IHZhcigtLWNvbG9yLWJsdWUpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAud3AtYmxvY2stcHVsbHF1b3RlIHtcbiAgICBtYXJnaW46IHZhcigtLXNwYWNpbmctbCkgMDtcbiAgfVxufVxuLndwLWJsb2NrLXB1bGxxdW90ZS5hbGlnbmxlZnQge1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmctcyk7XG59XG4ud3AtYmxvY2stcHVsbHF1b3RlLmFsaWducmlnaHQge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2luZy1zKTtcbn1cbi53cC1ibG9jay1wdWxscXVvdGUuYWxpZ25sZWZ0LCAud3AtYmxvY2stcHVsbHF1b3RlLmFsaWducmlnaHQge1xuICBtYXgtd2lkdGg6IDM4MHB4O1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLXMpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXMpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAud3AtYmxvY2stcHVsbHF1b3RlLmFsaWdubGVmdCwgLndwLWJsb2NrLXB1bGxxdW90ZS5hbGlnbnJpZ2h0IHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWFyZ2luOiB2YXIoLS1zcGFjaW5nLWwpIDA7XG4gIH1cbn1cbi53cC1ibG9jay1wdWxscXVvdGUgYmxvY2txdW90ZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xufVxuLndwLWJsb2NrLXB1bGxxdW90ZSBibG9ja3F1b3RlOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndwLWJsb2NrLXB1bGxxdW90ZSBibG9ja3F1b3RlIHAge1xuICBmb250LWZhbWlseTogdmFyKC0tZ2xvYmFsLWhlYWRpbmctZm9udC1mYW1pbHkpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYmx1ZSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctcyk7XG59XG4ud3AtYmxvY2stcHVsbHF1b3RlIGJsb2NrcXVvdGUgY2l0ZSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogdW5zZXQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmV5LTEpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuU0VQQVJBVE9SIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLndwLWJsb2NrLXNlcGFyYXRvci5oYXMtYmFja2dyb3VuZDpub3QoLmlzLXN0eWxlLWRvdHMpOm5vdCguaXMtc3R5bGUtd2lkZSkge1xuICBoZWlnaHQ6IDRweDtcbiAgbWF4LXdpZHRoOiA3MHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVEFCTEUgQkxPQ0tcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ud3AtYmxvY2stdGFibGUgdGhlYWQge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cbi53cC1ibG9jay10YWJsZSB0aCxcbi53cC1ibG9jay10YWJsZSB0ZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcmVkKSAhaW1wb3J0YW50O1xufVxuLndwLWJsb2NrLXRhYmxlIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbn1cblxuLyogQ3VzdG9tIEJsb2NrcyAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkFHRU5DWSBVSSAtIENPTlRFTlQgR1JJRCBCTE9DS1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi53cC1ibG9jay1hZ2VuY3ktdWktY29udGVudC1ncmlkIC5jb250ZW50LWdyaWQge1xuICAtLWd1dHRlcjogdmFyKC0tc3BhY2luZy1sKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAud3AtYmxvY2stYWdlbmN5LXVpLWNvbnRlbnQtZ3JpZCAuY29udGVudC1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTQ0cHgpIHtcbiAgLndwLWJsb2NrLWFnZW5jeS11aS1jb250ZW50LWdyaWQgLmNvbnRlbnQtZ3JpZCB7XG4gICAgLS1ndXR0ZXI6IHZhcigtLXNwYWNpbmctbSk7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkFHRU5DWSBVSSAtIFRJTEUgQkxPQ0tcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ud3AtYmxvY2stYWdlbmN5LXVpLXRpbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCB2YXIoLS1zcGFjaW5nLW0pIHZhcigtLXNwYWNpbmctbSk7XG59XG4ud3AtYmxvY2stYWdlbmN5LXVpLXRpbGUgYTpub3QoLndwLWJsb2NrLWJ1dHRvbl9fbGluaykge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLndwLWJsb2NrLWFnZW5jeS11aS10aWxlIGE6bm90KC53cC1ibG9jay1idXR0b25fX2xpbmspOmhvdmVyIGgyLFxuLndwLWJsb2NrLWFnZW5jeS11aS10aWxlIGE6bm90KC53cC1ibG9jay1idXR0b25fX2xpbmspOmhvdmVyIGgzLFxuLndwLWJsb2NrLWFnZW5jeS11aS10aWxlIGE6bm90KC53cC1ibG9jay1idXR0b25fX2xpbmspOmhvdmVyIC50aWxlLS10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1saWdodC1ibHVlKTtcbn1cbi53cC1ibG9jay1hZ2VuY3ktdWktdGlsZSAud3AtYmxvY2staW1hZ2Uge1xuICBtYXJnaW46IDAgY2FsYyh2YXIoLS1zcGFjaW5nLW0pICogLTEpIDAgIWltcG9ydGFudDtcbn1cbi53cC1ibG9jay1hZ2VuY3ktdWktdGlsZSAud3AtYmxvY2sta2FkZW5jZS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAodmFyKC0tc3BhY2luZy1tKSAqIDIpKTtcbn1cbi53cC1ibG9jay1hZ2VuY3ktdWktdGlsZSAud3AtYmxvY2sta2FkZW5jZS1pY29uICsgaDIsXG4ud3AtYmxvY2stYWdlbmN5LXVpLXRpbGUgLndwLWJsb2NrLWthZGVuY2UtaWNvbiArIGgzLFxuLndwLWJsb2NrLWFnZW5jeS11aS10aWxlIC53cC1ibG9jay1rYWRlbmNlLWljb24gKyAudGlsZS0tdGl0bGUge1xuICBtYXJnaW4tdG9wOiA1NnB4O1xufVxuLndwLWJsb2NrLWFnZW5jeS11aS10aWxlIGgyLFxuLndwLWJsb2NrLWFnZW5jeS11aS10aWxlIGgzLFxuLndwLWJsb2NrLWFnZW5jeS11aS10aWxlIC50aWxlLS10aXRsZSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmctbSk7XG59XG4ud3AtYmxvY2stYWdlbmN5LXVpLXRpbGUgcDpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVEVTVElNT05JQUwgU0xJREVSIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmJsb2NrLS10ZXN0aW1vbmlhbC1zbGlkZXIge1xuICBtYXJnaW4tdG9wOiA2NHB4ICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJsb2NrLS10ZXN0aW1vbmlhbC1zbGlkZXIge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmcteGwpICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5ibG9jay0tdGVzdGltb25pYWwtc2xpZGVyIC5nbGlkZV9fc2xpZGVzIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmJsb2NrLS10ZXN0aW1vbmlhbC1zbGlkZXJfX3NsaWRlIHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG59XG4uYmxvY2stLXRlc3RpbW9uaWFsLXNsaWRlcl9fc2xpZGUgLndwLWJsb2NrLXF1b3RlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJsb2NrLS10ZXN0aW1vbmlhbC1zbGlkZXJfX3NsaWRlIC53cC1ibG9jay1xdW90ZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuLmJsb2NrLS10ZXN0aW1vbmlhbC1zbGlkZXJfX3NsaWRlIC5ibG9jay0tdGVzdGltb25pYWwtc2xpZGVyX19pbWcge1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgZmxleC1iYXNpczogMTAwcHg7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLWwpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5ibG9jay0tdGVzdGltb25pYWwtc2xpZGVyX19zbGlkZSAuYmxvY2stLXRlc3RpbW9uaWFsLXNsaWRlcl9faW1nIHtcbiAgICBtYXJnaW46IDAgYXV0byB2YXIoLS1zcGFjaW5nLW0pO1xuICB9XG59XG4uYmxvY2stLXRlc3RpbW9uaWFsLXNsaWRlcl9fc2xpZGUgLmJsb2NrLS10ZXN0aW1vbmlhbC1zbGlkZXJfX2NvbnRlbnQge1xuICBmbGV4OiAxO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5ibG9jay0tdGVzdGltb25pYWwtc2xpZGVyX19zbGlkZSAuYmxvY2stLXRlc3RpbW9uaWFsLXNsaWRlcl9fY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi8qIEZpZ2NhcHRpb24gKi9cbmRpdltjbGFzcyo9d3AtYmxvY2stXSBmaWdjYXB0aW9uLFxuZmlndXJlW2NsYXNzKj13cC1ibG9jay1dIGZpZ2NhcHRpb24ge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjaW5nLXMpO1xuICBtYXJnaW46IDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5HVVRFTkJFUkcgQkxPQ0sgUEFUVEVSTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuRkVBVFVSRUQgQ09MVU1OUyBCTE9DSyBQQVRURVJOXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1mZWF0dXJlZC1jb2x1bW5zLndwLWJsb2NrLWNvbHVtbnMge1xuICBtYXJnaW46IDAgMCAtNTZweCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1mZWF0dXJlZC1jb2x1bW5zLndwLWJsb2NrLWNvbHVtbnMge1xuICAgIG1hcmdpbi1ib3R0b206IC00MHB4O1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLWZlYXR1cmVkLWNvbHVtbnMud3AtYmxvY2stY29sdW1ucyAud3AtYmxvY2stY29sdW1uIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXhsKSB2YXIoLS1zcGFjaW5nLXh4bCk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1mZWF0dXJlZC1jb2x1bW5zLndwLWJsb2NrLWNvbHVtbnMgLndwLWJsb2NrLWNvbHVtbiB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy1sKTtcbiAgfVxufVxuLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1mZWF0dXJlZC1jb2x1bW5zLndwLWJsb2NrLWNvbHVtbnMgLndwLWJsb2NrLWNvbHVtbjpudGgtb2YtdHlwZSgxKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXJlZCk7XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLWZlYXR1cmVkLWNvbHVtbnMud3AtYmxvY2stY29sdW1ucyAud3AtYmxvY2stY29sdW1uOm50aC1vZi10eXBlKDIpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JleS0zKTtcbn1cbi5zaW5nbGUtY29udGVudCAuc2VjdGlvbi0tZmVhdHVyZWQtY29sdW1ucy53cC1ibG9jay1jb2x1bW5zIC53cC1ibG9jay1jb2x1bW46bnRoLW9mLXR5cGUoMykge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkgYW5kIChtYXgtd2lkdGg6IDc4MXB4KSB7XG4gIC5zaW5nbGUtY29udGVudCAuc2VjdGlvbi0tZmVhdHVyZWQtY29sdW1ucy53cC1ibG9jay1jb2x1bW5zIC53cC1ibG9jay1jb2x1bW46bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1mZWF0dXJlZC1jb2x1bW5zLndwLWJsb2NrLWNvbHVtbnMgLndwLWJsb2NrLWNvbHVtbjpub3QoOm9ubHktY2hpbGQpIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLWZlYXR1cmVkLWNvbHVtbnMud3AtYmxvY2stY29sdW1ucyArIGRpdltjbGFzcyo9c2VjdGlvbi0tXSB7XG4gIHBhZGRpbmctdG9wOiA5NnB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuRklMVEVSIEdSSUQgQkxPQ0sgUEFUVEVSTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zZWN0aW9uLS1maWx0ZXItZ3JpZC53cC1ibG9jay1ncm91cCB7XG4gIHBhZGRpbmc6IDk2cHggMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnNlY3Rpb24tLWZpbHRlci1ncmlkLndwLWJsb2NrLWdyb3VwIHtcbiAgICBwYWRkaW5nLXRvcDogNjRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjRweDtcbiAgfVxufVxuLnNlY3Rpb24tLWZpbHRlci1ncmlkLndwLWJsb2NrLWdyb3VwIC53cC1ibG9jay1jb2x1bW5zIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuc2VjdGlvbi0tZmlsdGVyLWdyaWQud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWNvbHVtbiB7XG4gICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuc2VjdGlvbi0tZmlsdGVyLWdyaWQud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWNvbHVtbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luOiAyZW0gMCAwIDA7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkZVTEwgQ1RBIEJMT0NLIFBBVFRFUk5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2VjdGlvbi0tZnVsbC1jdGEud3AtYmxvY2stY292ZXIge1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nOiA5NnB4IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5zZWN0aW9uLS1mdWxsLWN0YS53cC1ibG9jay1jb3ZlciB7XG4gICAgcGFkZGluZy10b3A6IDY0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDY0cHg7XG4gIH1cbn1cbi5zZWN0aW9uLS1mdWxsLWN0YS53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2lubmVyLWNvbnRhaW5lciA+ICoge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA3NjBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5zZWN0aW9uLS1mdWxsLWN0YS53cC1ibG9jay1jb3ZlciAud3AtYmxvY2sta2FkZW5jZS1hZHZhbmNlZGJ0biB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmcteHhsKTtcbn1cbi5zZWN0aW9uLS1mdWxsLWN0YS53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stYnV0dG9ucyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmcteGwpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5zZWN0aW9uLS1mdWxsLWN0YS53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stYnV0dG9ucyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZy1zKTtcbiAgfVxufVxuXG4uc2VjdGlvbi0tZnVsbC1jdGEud3AtYmxvY2stZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLnNlY3Rpb24tLWZ1bGwtY3RhLndwLWJsb2NrLWdyb3VwIC53cC1ibG9jay1jb2x1bW5zIHtcbiAgbWFyZ2luOiB2YXIoLS1zcGFjaW5nLW0pIDA7XG59XG4uc2VjdGlvbi0tZnVsbC1jdGEud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWdyb3VwIHtcbiAgcGFkZGluZzogMDtcbn1cbi5zZWN0aW9uLS1mdWxsLWN0YS53cC1ibG9jay1ncm91cCAud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWdyb3VwX19pbm5lci1jb250YWluZXIge1xuICBwYWRkaW5nOiA4MHB4IDY0cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5zZWN0aW9uLS1mdWxsLWN0YS53cC1ibG9jay1ncm91cCAud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWdyb3VwX19pbm5lci1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDY0cHggNDhweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU0NHB4KSB7XG4gIC5zZWN0aW9uLS1mdWxsLWN0YS53cC1ibG9jay1ncm91cCAud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWdyb3VwX19pbm5lci1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteGwpIHZhcigtLXNwYWNpbmctbCk7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkdBTExFUlkgJiBURVhUIFJPV1MgQkxPQ0sgUEFUVEVSTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zZWN0aW9uLS1nYWxsZXJ5LXRleHQtcm93LndwLWJsb2NrLWdyb3VwIHtcbiAgbWFyZ2luOiAwO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmc6IDk2cHggMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnNlY3Rpb24tLWdhbGxlcnktdGV4dC1yb3cud3AtYmxvY2stZ3JvdXAge1xuICAgIHBhZGRpbmctdG9wOiA2NHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2NHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3ODJweCkge1xuICAuc2VjdGlvbi0tZ2FsbGVyeS10ZXh0LXJvdy53cC1ibG9jay1ncm91cCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cbi5zZWN0aW9uLS1nYWxsZXJ5LXRleHQtcm93LndwLWJsb2NrLWdyb3VwIC53cC1ibG9jay1jb2x1bW5zIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5zZWN0aW9uLS1nYWxsZXJ5LXRleHQtcm93LndwLWJsb2NrLWdyb3VwIC53cC1ibG9jay1jb2x1bW5zICsgLndwLWJsb2NrLWNvbHVtbnMge1xuICBtYXJnaW4tdG9wOiA3MnB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuc2VjdGlvbi0tZ2FsbGVyeS10ZXh0LXJvdy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY29sdW1ucyArIC53cC1ibG9jay1jb2x1bW5zIHtcbiAgICBtYXJnaW4tdG9wOiA5NnB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3ODFweCkge1xuICAuc2VjdGlvbi0tZ2FsbGVyeS10ZXh0LXJvdy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY29sdW1uIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG4uc2VjdGlvbi0tZ2FsbGVyeS10ZXh0LXJvdy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY29sdW1uOmZpcnN0LW9mLXR5cGUuc2VjdGlvbi0tZ2FsbGVyeS10ZXh0LXJvd19fY29udGVudCB7XG4gIG1hcmdpbjogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc4MnB4KSB7XG4gIC5zZWN0aW9uLS1nYWxsZXJ5LXRleHQtcm93LndwLWJsb2NrLWdyb3VwIC53cC1ibG9jay1jb2x1bW46Zmlyc3Qtb2YtdHlwZS5zZWN0aW9uLS1nYWxsZXJ5LXRleHQtcm93X19jb250ZW50IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLnNlY3Rpb24tLWdhbGxlcnktdGV4dC1yb3cud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWNvbHVtbjpmaXJzdC1vZi10eXBlLnNlY3Rpb24tLWdhbGxlcnktdGV4dC1yb3dfX2NvbnRlbnQge1xuICAgIG1hcmdpbi1yaWdodDogMTA0cHg7XG4gIH1cbn1cbi5zZWN0aW9uLS1nYWxsZXJ5LXRleHQtcm93LndwLWJsb2NrLWdyb3VwIC53cC1ibG9jay1jb2x1bW46bGFzdC1vZi10eXBlLnNlY3Rpb24tLWdhbGxlcnktdGV4dC1yb3dfX2NvbnRlbnQge1xuICBtYXJnaW46IDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3ODJweCkge1xuICAuc2VjdGlvbi0tZ2FsbGVyeS10ZXh0LXJvdy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY29sdW1uOmxhc3Qtb2YtdHlwZS5zZWN0aW9uLS1nYWxsZXJ5LXRleHQtcm93X19jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogNDhweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuc2VjdGlvbi0tZ2FsbGVyeS10ZXh0LXJvdy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY29sdW1uOmxhc3Qtb2YtdHlwZS5zZWN0aW9uLS1nYWxsZXJ5LXRleHQtcm93X19jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMTA0cHg7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblBBR0UgSEVSTyBCTE9DSyBQQVRURVJOXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNlY3Rpb24tLXBhZ2UtaGVyby53cC1ibG9jay1jb3ZlciB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteGwpIDA7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTc1cHg7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgLnNlY3Rpb24tLXBhZ2UtaGVyby53cC1ibG9jay1jb3ZlciB7XG4gICAgaGVpZ2h0OiA3NXZoO1xuICAgIG1heC1oZWlnaHQ6IDc0MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gIC5zZWN0aW9uLS1wYWdlLWhlcm8ud3AtYmxvY2stY292ZXIge1xuICAgIG1heC1oZWlnaHQ6IDkwMHB4O1xuICB9XG59XG4uc2VjdGlvbi0tcGFnZS1oZXJvLndwLWJsb2NrLWNvdmVyIGgxIHtcbiAgbWF4LXdpZHRoOiA3NjBweDtcbn1cbi5zZWN0aW9uLS1wYWdlLWhlcm8ud3AtYmxvY2stY292ZXIgcCB7XG4gIG1heC13aWR0aDogNjAwcHg7XG59XG4uc2VjdGlvbi0tcGFnZS1oZXJvLndwLWJsb2NrLWNvdmVyIC5pcy1zdHlsZS1zdWItaGVhZGluZyB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggdmFyKC0tY29sb3ItcmVkKTtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xufVxuXG4uc2VjdGlvbi0tcGFnZS1oZXJvLndwLWJsb2NrLWdyb3VwIHtcbiAgcGFkZGluZzogMDtcbn1cbi5zZWN0aW9uLS1wYWdlLWhlcm8ud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWdyb3VwLFxuLnNlY3Rpb24tLXBhZ2UtaGVyby53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY292ZXIge1xuICBwYWRkaW5nOiAwO1xufVxuLnNlY3Rpb24tLXBhZ2UtaGVyby53cC1ibG9jay1ncm91cCAud3AtYmxvY2stYWdlbmN5LXVpLWNvbnRlbnQtZ3JpZCB7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc3BhY2luZy14bCkgKiAtMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblBPU1QgR0FMTEVSWSBHUklEIEJMT0NLIFBBVFRFUk5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWQud3AtYmxvY2stZ3JvdXAgZGl2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5zZWN0aW9uLS1wb3N0LWdhbGxlcnktZ3JpZC53cC1ibG9jay1ncm91cCBkaXZbZGF0YS10eXBlPVwiYWdlbmN5LXVpL3RpbGVcIl0ge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWQud3AtYmxvY2stZ3JvdXAgLnNlY3Rpb24tLXBvc3QtZ2FsbGVyeS1ncmlkX19wb3N0cyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4uc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWQud3AtYmxvY2stZ3JvdXAgLnNlY3Rpb24tLXBvc3QtZ2FsbGVyeS1ncmlkX19wb3N0cyAud3AtYmxvY2stY29sdW1uIHtcbiAgbWFyZ2luOiAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWQud3AtYmxvY2stZ3JvdXAgLnNlY3Rpb24tLXBvc3QtZ2FsbGVyeS1ncmlkX19wb3N0cyAud3AtYmxvY2stY29sdW1uIHtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU0NHB4KSB7XG4gIC5zZWN0aW9uLS1wb3N0LWdhbGxlcnktZ3JpZC53cC1ibG9jay1ncm91cCAuc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWRfX3Bvc3RzIC53cC1ibG9jay1jb2x1bW4ge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG4uc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWQud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWNvbHVtbnM6bm90KC5hbGlnbmZ1bGwpIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZy1sKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NDRweCkge1xuICAuc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWQud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWNvbHVtbnM6bm90KC5hbGlnbmZ1bGwpIC53cC1ibG9jay1jb2x1bW4gKyAud3AtYmxvY2stY29sdW1uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLWwpO1xuICB9XG59XG4uc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWQud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5zZWN0aW9uLS1wb3N0LWdhbGxlcnktZ3JpZC53cC1ibG9jay1ncm91cCAud3AtYmxvY2stYWdlbmN5LXVpLXRpbGUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCB2YXIoLS1jb2xvci10cnVlLWJsYWNrKSA1JSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB0b3AgMC4zcyBlYXNlO1xufVxuLnNlY3Rpb24tLXBvc3QtZ2FsbGVyeS1ncmlkLndwLWJsb2NrLWdyb3VwIC53cC1ibG9jay1hZ2VuY3ktdWktdGlsZSBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLWwpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWQud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWFnZW5jeS11aS10aWxlIGEge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbSk7XG4gIH1cbn1cbi5zZWN0aW9uLS1wb3N0LWdhbGxlcnktZ3JpZC53cC1ibG9jay1ncm91cCAud3AtYmxvY2stYWdlbmN5LXVpLXRpbGUgYSxcbi5zZWN0aW9uLS1wb3N0LWdhbGxlcnktZ3JpZC53cC1ibG9jay1ncm91cCAud3AtYmxvY2stYWdlbmN5LXVpLXRpbGUgYTpob3ZlciAudGlsZS0tdGl0bGUsXG4uc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWQud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWFnZW5jeS11aS10aWxlIC50aWxlLS10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG4uc2VjdGlvbi0tcG9zdC1nYWxsZXJ5LWdyaWQud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWNvdmVyIHtcbiAgYWxpZ24taXRlbXM6IHVuc2V0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU0NHB4KSB7XG4gIC5zZWN0aW9uLS1wb3N0LWdhbGxlcnktZ3JpZC53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY292ZXIge1xuICAgIG1pbi1oZWlnaHQ6IDI0MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5zZWN0aW9uLS1wb3N0LWdhbGxlcnktZ3JpZC53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY292ZXI6aG92ZXIgLndwLWJsb2NrLWFnZW5jeS11aS10aWxlIHtcbiAgdG9wOiAwO1xuICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBlYXNlO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuU1RBVCBDT0xVTU5TIEJMT0NLIFBBVFRFUk5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLXN0YXQtY29sdW1ucy53cC1ibG9jay1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLXN0YXQtY29sdW1ucy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY29sdW1ucyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmc6IDk2cHggMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1zdGF0LWNvbHVtbnMud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWNvbHVtbnMge1xuICAgIHBhZGRpbmctdG9wOiA2NHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2NHB4O1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLXN0YXQtY29sdW1ucy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY29sdW1uIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIHZhcigtLXNwYWNpbmctbCk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3ODFweCkge1xuICAuc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLXN0YXQtY29sdW1ucy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY29sdW1uIHtcbiAgICBtYXJnaW46IHZhcigtLXNwYWNpbmctcykgMDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzgycHgpIHtcbiAgLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1zdGF0LWNvbHVtbnMud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWNvbHVtbiArIC53cC1ibG9jay1jb2x1bW4ge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggdmFyKC0tY29sb3Itd2hpdGUtNTApO1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLXN0YXQtY29sdW1ucy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY29sdW1uIC53cC1ibG9jay1pbWFnZSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbSk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1zdGF0LWNvbHVtbnMud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWNvbHVtbiAud3AtYmxvY2staW1hZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmcteHMpO1xuICB9XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLXN0YXQtY29sdW1ucy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stY29sdW1uIGgzLFxuLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1zdGF0LWNvbHVtbnMud3AtYmxvY2stZ3JvdXAgLndwLWJsb2NrLWNvbHVtbiBoNCxcbi5zaW5nbGUtY29udGVudCAuc2VjdGlvbi0tc3RhdC1jb2x1bW5zLndwLWJsb2NrLWdyb3VwIC53cC1ibG9jay1jb2x1bW4gaDUge1xuICBmb250LXNpemU6IDQ0cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLXN0YXQtY29sdW1ucy53cC1ibG9jay1ncm91cCAud3AtYmxvY2stbWVkaWEtdGV4dCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IC03MnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDU7XG59XG4uc2luZ2xlLWNvbnRlbnQgLnNlY3Rpb24tLXN0YXQtY29sdW1ucy53cC1ibG9jay1ncm91cCArIGRpdltjbGFzcyo9c2VjdGlvbi0tXSB7XG4gIHBhZGRpbmctdG9wOiAxNjBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1zdGF0LWNvbHVtbnMud3AtYmxvY2stZ3JvdXAgKyBkaXZbY2xhc3MqPXNlY3Rpb24tLV0ge1xuICAgIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuVXRpbGl0aWVzXG4tIGlkZWFsbHkgcHJlZml4ZWQgd2l0aCBgdS0qYFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5BQ0NFU1NJQklMSVRZIFVUSUxJVElFU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBbMV0gTWFueSBzY3JlZW4gcmVhZGVyIGFuZCBicm93c2VyIGNvbWJpbmF0aW9ucyBhbm5vdW5jZSBicm9rZW4gd29yZHNcbiAqICAgICBhcyB0aGV5IHdvdWxkIGFwcGVhciB2aXN1YWxseS5cbiAqIFsyXSBBYm92ZSBXUCB0b29sYmFyLlxuICovXG4vKiBUZXh0IG1lYW50IG9ubHkgZm9yIHNjcmVlbiByZWFkZXJzLiAqL1xuLnUtc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIC8qIFsxXSAqL1xufVxuXG4udS1zY3JlZW4tcmVhZGVyLXRleHQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGNsaXAtcGF0aDogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXByaW1hcnktYm9sZCk7XG4gIGhlaWdodDogYXV0bztcbiAgbGVmdDogNXB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAxNXB4IDIzcHggMTRweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0b3A6IDVweDtcbiAgd2lkdGg6IGF1dG87XG4gIHotaW5kZXg6IDEwMDAwMDtcbiAgLyogWzJdICovXG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5DT0xPUlMgVVRJTElUSUVTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmhhcy1iYWNrZ3JvdW5kLmhhcy10cnVlLWJsYWNrLWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuXG4uaGFzLXRleHQtY29sb3IuaGFzLXRydWUtYmxhY2stY29sb3IsXG4uaGFzLWlubGluZS1jb2xvci5oYXMtdHJ1ZS1ibGFjay1jb2xvciB7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4uaGFzLWJhY2tncm91bmQuaGFzLWJsYWNrLWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMxZjIwO1xufVxuXG4uaGFzLXRleHQtY29sb3IuaGFzLWJsYWNrLWNvbG9yLFxuLmhhcy1pbmxpbmUtY29sb3IuaGFzLWJsYWNrLWNvbG9yIHtcbiAgY29sb3I6ICMyMzFmMjA7XG59XG5cbi5oYXMtYmFja2dyb3VuZC5oYXMtd2hpdGUtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5oYXMtdGV4dC1jb2xvci5oYXMtd2hpdGUtY29sb3IsXG4uaGFzLWlubGluZS1jb2xvci5oYXMtd2hpdGUtY29sb3Ige1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmhhcy1iYWNrZ3JvdW5kLmhhcy13aGl0ZS01MC1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuXG4uaGFzLXRleHQtY29sb3IuaGFzLXdoaXRlLTUwLWNvbG9yLFxuLmhhcy1pbmxpbmUtY29sb3IuaGFzLXdoaXRlLTUwLWNvbG9yIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cblxuLmhhcy1iYWNrZ3JvdW5kLmhhcy1yZWQtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZjMzMzg7XG59XG5cbi5oYXMtdGV4dC1jb2xvci5oYXMtcmVkLWNvbG9yLFxuLmhhcy1pbmxpbmUtY29sb3IuaGFzLXJlZC1jb2xvciB7XG4gIGNvbG9yOiAjY2YzMzM4O1xufVxuXG4uaGFzLWJhY2tncm91bmQuaGFzLWJsdWUtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDUyODk7XG59XG5cbi5oYXMtdGV4dC1jb2xvci5oYXMtYmx1ZS1jb2xvcixcbi5oYXMtaW5saW5lLWNvbG9yLmhhcy1ibHVlLWNvbG9yIHtcbiAgY29sb3I6ICMwMDUyODk7XG59XG5cbi5oYXMtYmFja2dyb3VuZC5oYXMtbGlnaHQtYmx1ZS1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZkYTlkYztcbn1cblxuLmhhcy10ZXh0LWNvbG9yLmhhcy1saWdodC1ibHVlLWNvbG9yLFxuLmhhcy1pbmxpbmUtY29sb3IuaGFzLWxpZ2h0LWJsdWUtY29sb3Ige1xuICBjb2xvcjogIzZkYTlkYztcbn1cblxuLmhhcy1iYWNrZ3JvdW5kLmhhcy1kYXJrLWJsdWUtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTFjMmE7XG59XG5cbi5oYXMtdGV4dC1jb2xvci5oYXMtZGFyay1ibHVlLWNvbG9yLFxuLmhhcy1pbmxpbmUtY29sb3IuaGFzLWRhcmstYmx1ZS1jb2xvciB7XG4gIGNvbG9yOiAjMGExYzJhO1xufVxuXG4uaGFzLWJhY2tncm91bmQuaGFzLWdyZXktMS1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZkNmU3MTtcbn1cblxuLmhhcy10ZXh0LWNvbG9yLmhhcy1ncmV5LTEtY29sb3IsXG4uaGFzLWlubGluZS1jb2xvci5oYXMtZ3JleS0xLWNvbG9yIHtcbiAgY29sb3I6ICM2ZDZlNzE7XG59XG5cbi5oYXMtYmFja2dyb3VuZC5oYXMtZ3JleS0yLWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdhOGFhO1xufVxuXG4uaGFzLXRleHQtY29sb3IuaGFzLWdyZXktMi1jb2xvcixcbi5oYXMtaW5saW5lLWNvbG9yLmhhcy1ncmV5LTItY29sb3Ige1xuICBjb2xvcjogI2E3YThhYTtcbn1cblxuLmhhcy1iYWNrZ3JvdW5kLmhhcy1ncmV5LTMtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYzZjU7XG59XG5cbi5oYXMtdGV4dC1jb2xvci5oYXMtZ3JleS0zLWNvbG9yLFxuLmhhcy1pbmxpbmUtY29sb3IuaGFzLWdyZXktMy1jb2xvciB7XG4gIGNvbG9yOiAjZjJmM2Y1O1xufVxuXG4uaGFzLWJhY2tncm91bmQuaGFzLWdvbGQtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjODk4MmM7XG59XG5cbi5oYXMtdGV4dC1jb2xvci5oYXMtZ29sZC1jb2xvcixcbi5oYXMtaW5saW5lLWNvbG9yLmhhcy1nb2xkLWNvbG9yIHtcbiAgY29sb3I6ICNjODk4MmM7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UWVBPR1JBUEhZIFVUSUxJVElFU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5UcnVtcHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuU0hBTUVcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFRoZSBpZGVhIG9mIHNoYW1lLmNzcyBpcyB0aGF0IHlvdSBoYXZlIGEgdG90YWxseSBuZXcgc3R5bGVzaGVldCByZXNlcnZlZFxuICoganVzdCBmb3IgeW91ciBoYWNreSBjb2RlLiBUaGUgY29kZSB5b3UgaGF2ZSB0byB3cml0ZSB0byBnZXQgdGhlIHJlbGVhc2VcbiAqIG91dCBvbiB0aW1lLCBidXQgdGhlIGNvZGUgdGhhdCBtYWtlcyB5b3UgYXNoYW1lZC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vY3Nzd2l6YXJkcnkuY29tLzIwMTMvMDQvc2hhbWUtY3NzL1xuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVEVNUE9SQVJZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBUaGlzIGZpbGUgc2hvdWxkIGFsd2F5cyBiZSBlbXB0eS5cbiAqIEl0IGNvdWxkIGJlIGEgZ29vZCBwbGFjZSB0byBwdXQgeW91ciBzdHlsZXMgaW4gYXMgeW91IGRldmVsb3AgbmV3IGZlYXR1cmVzLlxuICogT25jZSBkb25lLCB5b3Ugc2hvdWxkIG1vdmUgeW91ciBzdHlsZXMgaW4gdGhlIGFwcHJvcHJpYXRlIGZvbGRlci5cbiAqLyIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5HUklEIFNFVFRJTkdTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4kZ3JpZC13aWR0aDogMTQwMHB4O1xuJGdyaWQtZ3V0dGVyOiAyNHB4O1xuJGdyaWQtaXRlbS13aWR0aDogKCRncmlkLXdpZHRoIC0gKCRncmlkLWd1dHRlciAqIDExKSkgLyAxMjtcbiRncmlkLXdpZHRoLWZ1bGw6ICRncmlkLXdpZHRoICsgKCRncmlkLWd1dHRlciAqIDIpOyAvLyBBZGRzIGEgMjRweCBwYWRkaW5nIHRvIGVhY2ggc2lkZSB0byBhY2NvdW50IGZvciBzcGFjaW5nIG9uIHNtYWxsZXIgc2NyZWVucy5cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JTUFHRVNcbkFsbCBpbWFnZXMgc2hvdWxkIGJlIHNldCB0byB2YXJpYWJsZXMgdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGNvZGViYXNlLFxudGhpcyBwcm92aWRlcyBhIGNlbnRyYWwgbG9jYXRpb24gZm9yIGFueSByZXBsYWNlbWVudHMgdG8gYmUgaW1wbGVtZW50ZWRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRpbWFnZXM6IChcblx0XCJhcnJvdy1yaWdodC1ibHVlXCI6IFwiLi4vc3ZnL2ljb24tYXJyb3ctcmlnaHQtYmx1ZS5zdmdcIixcblx0XCJhcnJvdy1yaWdodC1yZWRcIjogXCIuLi9zdmcvaWNvbi1hcnJvdy1yaWdodC1yZWQuc3ZnXCIsXG5cdFwiYXJyb3ctcmlnaHQtd2hpdGVcIjogXCIuLi9zdmcvaWNvbi1hcnJvdy1yaWdodC13aGl0ZS5zdmdcIixcblx0XCJtYWlsLWljb24tYmx1ZVwiOiBcIi4uL3N2Zy9pY29uLW1haWwtYmx1ZS5zdmdcIixcblx0XCJtYWlsLWljb24tcmVkXCI6IFwiLi4vc3ZnL2ljb24tbWFpbC1yZWQuc3ZnXCIsXG5cdFwibWFpbC1pY29uLXdoaXRlXCI6IFwiLi4vc3ZnL2ljb24tbWFpbC13aGl0ZS5zdmdcIixcblx0XCJwaG9uZS1pY29uLWJsdWVcIjogXCIuLi9zdmcvaWNvbi1waG9uZS1ibHVlLnN2Z1wiLFxuXHRcInBob25lLWljb24tcmVkXCI6IFwiLi4vc3ZnL2ljb24tcGhvbmUtcmVkLnN2Z1wiLFxuXHRcInBob25lLWljb24td2hpdGVcIjogXCIuLi9zdmcvaWNvbi1waG9uZS13aGl0ZS5zdmdcIixcbik7XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuU1BBQ0lOR1Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vXG4vLyBCYXNlbGluZSBncmlkIGxpbmVzIGhlaWdodC4gRXZlcnkgc3BhY2luZyBtZXRyaWMgc2hvdWxkIGJlIGJhc2VkIG9uIHRoaXMuXG4vL1xuJGdsb2JhbC1iYXNlbGluZTogOHB4O1xuXG4vL1xuLy8gTWFwIG9mIHNwYWNpbmdzIHdoZXJlIFtrZXldIGlzIHRoZSBuYW1lIG9mIHRoZSBzcGFjaW5nXG4vLyBhbmQgW3ZhbHVlXSBpcyB0aGUgc3BhY2luZyB2YWx1ZSBpbiBweC5cbi8vXG4kc3BhY2luZ3M6IChcblx0XCJ4eHNcIiA6IDAuNSxcblx0XCJ4c1wiICA6IDEsXG5cdFwic1wiICAgOiAyLFxuXHRcIm1cIiAgIDogMyxcblx0XCJsXCIgICA6IDQsXG5cdFwieGxcIiAgOiA1LFxuXHRcInh4bFwiIDogNixcbik7XG5cbjpyb290IHtcblx0LS1nbG9iYWwtYmFzZWxpbmU6ICN7JGdsb2JhbC1iYXNlbGluZX07XG5cblx0QGVhY2ggJHNwYWNpbmdOYW1lLCAkc3BhY2luZ1JhdGlvIGluICRzcGFjaW5ncyB7XG5cdFx0LS1zcGFjaW5nLSN7JHNwYWNpbmdOYW1lfTogI3skZ2xvYmFsLWJhc2VsaW5lICogJHNwYWNpbmdSYXRpb307XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UUkFOU0lUSU9OXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG46cm9vdCB7XG5cdC0tdHJhbnNpdGlvbi1iYXNlLWVhc2luZzogZWFzZS1pbi1vdXQ7XG5cdC0tdHJhbnNpdGlvbi1iYXNlLWR1cmF0aW9uOiAxMjVtcztcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBPR1JBUEhZXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG46cm9vdCB7XG5cblx0Ly9cblx0Ly8gU2l6ZXNcblx0Ly9cblxuXHQvLyBCb2R5XG5cdC0tZm9udC1zaXplLWJvZHktZGVza3RvcDogMTZweDtcblx0LS1mb250LXNpemUtYm9keS1tb2JpbGU6IDE2cHg7XG5cdC0tbGluZS1oZWlnaHQtYm9keS1kZXNrdG9wOiAxLjU7XG5cdC0tbGluZS1oZWlnaHQtYm9keS1tb2JpbGU6IDEuNTtcblxuXHQvLyBTbWFsbFxuXHQtLWZvbnQtc2l6ZS1zbWFsbC1kZXNrdG9wOiAxNHB4O1xuXHQtLWZvbnQtc2l6ZS1zbWFsbC1tb2JpbGU6IDEycHg7XG5cdC0tbGluZS1oZWlnaHQtc21hbGw6IDEuNTtcblxuXHQvLyBNZWRpdW1cblx0LS1mb250LXNpemUtbWVkaXVtLWRlc2t0b3A6IDI0cHg7XG5cdC0tZm9udC1zaXplLW1lZGl1bS1tb2JpbGU6IDIwcHg7XG5cdC0tbGluZS1oZWlnaHQtbWVkaXVtOiAxLjU7XG5cblx0Ly8gTGFyZ2Vcblx0LS1mb250LXNpemUtbGFyZ2UtZGVza3RvcDogMzZweDtcblx0LS1mb250LXNpemUtbGFyZ2UtbW9iaWxlOiAyNHB4O1xuXHQtLWxpbmUtaGVpZ2h0LWxhcmdlOiAxLjI7XG5cblx0Ly8gTGFyZ2VyXG5cdC0tZm9udC1zaXplLWxhcmdlci1kZXNrdG9wOiA0NHB4O1xuXHQtLWZvbnQtc2l6ZS1sYXJnZXItbW9iaWxlOiAzNnB4O1xuXHQtLWxpbmUtaGVpZ2h0LWxhcmdlcjogMS4yO1xuXG5cdC8vXG5cdC8vIE1hcmdpbnNcblx0Ly9cblxuXHQvLyBIMVxuXHQtLW1hcmdpbi1oMS1kZXNrdG9wOiAwIDAgdmFyKC0tc3BhY2luZy1tKTtcblx0LS1tYXJnaW4taDEtbW9iaWxlOiAwIDAgdmFyKC0tc3BhY2luZy1tKTtcblxuXHQvLyBIMlxuXHQtLW1hcmdpbi1oMi1kZXNrdG9wOiAwIDAgdmFyKC0tc3BhY2luZy1tKTtcblx0LS1tYXJnaW4taDItbW9iaWxlOiAwIDAgdmFyKC0tc3BhY2luZy1zKTtcblxuXHQvLyBIM1xuXHQtLW1hcmdpbi1oMy1kZXNrdG9wOiAwIDAgdmFyKC0tc3BhY2luZy1zKTtcblx0LS1tYXJnaW4taDMtbW9iaWxlOiAwIDAgdmFyKC0tc3BhY2luZy1zKTtcblxuXHQvLyBINFxuXHQtLW1hcmdpbi1oNC1kZXNrdG9wOiAwIDAgdmFyKC0tc3BhY2luZy1tKTtcblx0LS1tYXJnaW4taDQtbW9iaWxlOiAwIDAgdmFyKC0tc3BhY2luZy1zKTtcblxuXHQvLyBINVxuXHQtLW1hcmdpbi1oNS1kZXNrdG9wOiAwIDAgdmFyKC0tc3BhY2luZy1zKTtcblx0LS1tYXJnaW4taDUtbW9iaWxlOiAwIDAgdmFyKC0tc3BhY2luZy14cyk7XG5cblx0Ly8gSDZcblx0LS1tYXJnaW4taDYtZGVza3RvcDogMCAwIHZhcigtLXNwYWNpbmcteHMpO1xuXHQtLW1hcmdpbi1oNi1tb2JpbGU6IDAgMCB2YXIoLS1zcGFjaW5nLXhzKTtcblxuXHQvLyBQYXJhZ3JhcGhcblx0LS1tYXJnaW4tcC1kZXNrdG9wOiAwIDAgdmFyKC0tc3BhY2luZy1tKTtcblx0LS1tYXJnaW4tcC1tb2JpbGU6IDAgMCB2YXIoLS1zcGFjaW5nLXMpO1xuXHQtLW1hcmdpbi1sYXJnZS1kZXNrdG9wOiAwIDAgdmFyKC0tc3BhY2luZy1sKTtcblx0LS1tYXJnaW4tbGFyZ2UtbW9iaWxlOiAwIDAgdmFyKC0tc3BhY2luZy1tKTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5TUEFDSU5HIEZVTkNUSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIHZhbHVlIGZvciBhIHNwYWNpbmcgYnkgbXVsdGlwbHlpbmdcbiAqIHRoZSBnbG9iYWwgYmFzZWxpbmUgd2l0aCB0aGUgZ2l2ZW4gcmF0aW8uXG4gKlxuICogVVNBR0U6XG4gKiBtYXJnaW4tYm90dG9tOiBzcGFjaW5nKDEwKTtcbiAqXG4gKiBOT1RFOlxuICogUGxlYXNlIHVzZSBzcGFjaW5nIHZhcmlhYmxlcyBpZiBhcHBsaWNhYmxlLlxuICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGlmIHRoZSBzcGFjaW5nIHlvdSdyZSB0cnlpbmdcbiAqIHRvIGFjaGlldmUgZG9lc24ndCBleGlzdCBpbiB0aGUgc3R5bGVndWlkZS4gKHNlZSBzZXR0aW5ncy9zcGFjaW5ncy5zY3NzKVxuICovXG5AZnVuY3Rpb24gc3BhY2luZyggJHJhdGlvICkge1xuXG5cdEByZXR1cm4gJGdsb2JhbC1iYXNlbGluZSAqICRyYXRpbztcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5NRURJQSBRVUVSSUVTXG5CYXNlZCBvbiBodHRwczovL3d3dy5mcmVlY29kZWNhbXAub3JnL25ld3MvdGhlLTEwMC1jb3JyZWN0LXdheS10by1kby1jc3MtYnJlYWtwb2ludHMtODhkNmE1YmExODYyL1xuRXhhbXBsZSB1c2FnZTpcbi5teS1jbGFzcyB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIEBpbmNsdWRlIGZvci1kZXNrdG9wLXVwIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICB9XG59XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AbWl4aW4gZm9yLXBob25lLW9ubHkge1xuXG5cdEBtZWRpYSAobWF4LXdpZHRoOiAjeyRwaG9uZS1tYXh9KSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIGZvci1waG9uZS11cCB7XG5cblx0QG1lZGlhIChtaW4td2lkdGg6ICN7JHBob25lLW1pbn0pIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5AbWl4aW4gZm9yLXRhYmxldC1wb3J0cmFpdC11cCB7XG5cblx0QG1lZGlhIChtaW4td2lkdGg6ICN7JHRhYmxldC1wb3J0cmFpdC1taW59KSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIGZvci10YWJsZXQtbGFuZHNjYXBlLXVwIHtcblxuXHRAbWVkaWEgKG1pbi13aWR0aDogI3skdGFibGV0LWxhbmRzY2FwZS1taW59KSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIGZvci1kZXNrdG9wLXVwIHtcblxuXHRAbWVkaWEgKG1pbi13aWR0aDogI3skZGVza3RvcC1taW59KSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIGZvci1iaWctZGVza3RvcC11cCB7XG5cblx0QG1lZGlhIChtaW4td2lkdGg6ICN7JGJpZy1kZXNrdG9wLW1pbn0pIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5AbWl4aW4gdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblxuXHRAbWVkaWEgKG1heC13aWR0aDogI3skdGFibGV0LXBvcnRyYWl0LW1heH0pIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5AbWl4aW4gdXAtdG8tdGFibGV0LWxhbmRzY2FwZSB7XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6ICN7JHRhYmxldC1sYW5kc2NhcGUtbWF4fSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbkBtaXhpbiB1cC10by1kZXNrdG9wIHtcblxuXHRAbWVkaWEgKG1heC13aWR0aDogI3skZGVza3RvcC1tYXh9KSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIHVwLXRvLWJpZy1kZXNrdG9wIHtcblxuXHRAbWVkaWEgKG1heC13aWR0aDogI3skYmlnLWRlc2t0b3AtbWF4fSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQlVUVE9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5ESU1FTlNJT05TXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEhlbHBlciBmb3IgYWJzb2x1dGUgZnVsbFxuICovXG5AbWl4aW4gYWJzb2x1dGUtZnVsbCgkdG9wOiAwLCAkbGVmdDogMCwgJGhlaWdodDogMTAwJSwgJHdpZHRoOiAxMDAlKSB7XG5cdGhlaWdodDogJGhlaWdodDtcblx0bGVmdDogJGxlZnQ7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAkdG9wO1xuXHR3aWR0aDogJHdpZHRoO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkdSSURcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtaXhpbiBncmlkX2NvbnRhaW5lciB7XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGdhcDogdmFyKC0tc3BhY2luZy1sKTtcbn1cblxuQG1peGluIGdyaWRfY29udGFpbmVyX19uZWdhdGl2ZSB7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKC01MHZ3ICsgNTAlKTtcblx0bWFyZ2luLXJpZ2h0OiBjYWxjKC01MHZ3ICsgNTAlKTtcblx0cGFkZGluZy1sZWZ0OiAwO1xuXHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRtYXgtd2lkdGg6IDEwMHZ3O1xuXHR3aWR0aDogMTAwdnc7XG59XG5cbi8vIEdyaWQ6IDI1JS5cblxuQG1peGluIGdyaWRfY29sdW1uXzI1X2Rlc2t0b3Age1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmcjtcbn1cblxuQG1peGluIGdyaWRfY29sdW1uXzI1X3RhYmxldCB7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbn1cblxuQG1peGluIGdyaWRfY29sdW1uXzI1X21vYmlsZSB7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuXG4vLyBHcmlkOiAzMyUuXG5cbkBtaXhpbiBncmlkX2NvbHVtbl8zM19kZXNrdG9wIHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbn1cblxuQG1peGluIGdyaWRfY29sdW1uXzMzX3RhYmxldCB7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbn1cblxuQG1peGluIGdyaWRfY29sdW1uXzMzX21vYmlsZSB7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuXG4vLyBHcmlkOiA1MCUuXG5cbkBtaXhpbiBncmlkX2NvbHVtbl81MF9kZXNrdG9wIHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xufVxuXG5AbWl4aW4gZ3JpZF9jb2x1bW5fNTBfbW9iaWxlIHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuR1JJRCBHQVBcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtaXhpbiBncmlkX2dhcF9mYWxsYmFjayggJGdhcCApIHtcblx0Z2FwOiAkZ2FwO1xuXHRncmlkLWdhcDogJGdhcDtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JTUFHRVNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogRml0IGFuIGltYWdlIHRvIGl0cyBjb250YWluZXJcbiAqL1xuQG1peGluIGZpdC1pbWFnZSB7XG5cdGhlaWdodDogMTAwJTtcblx0b2JqZWN0LWZpdDogY292ZXI7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4vKipcbiAqIFNob3J0Y3V0IHRvIGJhY2tncm91bmQgaW1hZ2UgcHJvcGVydGllc1xuICovXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkdXJsOiBmYWxzZSwgJHBvc2l0aW9uOiBcImNlbnRlciBjZW50ZXJcIiwgJHNpemU6IFwiY292ZXJcIikge1xuXG5cdEBpZiAkdXJsIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHVybCk7XG5cdH1cblx0YmFja2dyb3VuZC1wb3NpdGlvbjogdW5xdW90ZSgkcG9zaXRpb24pO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXNpemU6IHVucXVvdGUoJHNpemUpO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblBBRERJTkdcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtaXhpbiBkZWZhdWx0X3BhZGRpbmcge1xuXHRwYWRkaW5nOiBzcGFjaW5nKDEyKSAwO1xuXG5cdEBpbmNsdWRlIHVwLXRvLXRhYmxldC1sYW5kc2NhcGUge1xuXHRcdHBhZGRpbmctdG9wOiBzcGFjaW5nKDgpO1xuXHRcdHBhZGRpbmctYm90dG9tOiBzcGFjaW5nKDgpO1xuXHR9XG59XG5cbkBtaXhpbiBwYWRkaW5nX3RvcF9tIHtcblx0cGFkZGluZy10b3A6IHNwYWNpbmcoMTIpO1xufVxuXG5AbWl4aW4gcGFkZGluZ190b3BfbCB7XG5cdHBhZGRpbmctdG9wOiBzcGFjaW5nKDE2KTtcblxuXHRAaW5jbHVkZSB1cC10by10YWJsZXQtbGFuZHNjYXBlIHtcblx0XHRwYWRkaW5nLXRvcDogc3BhY2luZygxMyk7XG5cdH1cbn1cblxuQG1peGluIHBhZGRpbmdfdG9wX3hsIHtcblx0cGFkZGluZy10b3A6IHNwYWNpbmcoMjApO1xuXG5cdEBpbmNsdWRlIHVwLXRvLXRhYmxldC1sYW5kc2NhcGUge1xuXHRcdHBhZGRpbmctdG9wOiBzcGFjaW5nKDE1KTtcblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJFU0VUXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlc2V0IGFsbCBwYWRkaW5nIGFuZCBtYXJnaW5cbiAqL1xuQG1peGluIHJlc2V0LWFsbCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBUaGlzIG1peGluIGNhbiBiZSB1c2VkIHRvIHJlc2V0IHRoZSBhcHBlYXJhbmNlIG9mIGEgbGlzdCBlbGVtZW50ICh1bCwgb2wpXG4gKi9cbkBtaXhpbiByZXNldF9saXN0X3N0eWxlIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFRoaXMgbWl4aW4gY2FuIGJlIHVzZWQgdG8gcmVzZXQgdGhlIGFwcGVhcmFuY2VcbiAqIG9mIGFuIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0gZWxlbWVudFxuICovXG5AbWl4aW4gcmVzZXRfYXBwZWFyYW5jZSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0LW1vei1hcHBlYXJhbmNlOiBub25lO1xuXHRhcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIFRoaXMgbWl4aW4gY2FuIGJlIHVzZWQgdG8gcmVzZXQgdGhlIGFwcGVhcmFuY2Ugb2YgYSA8YnV0dG9uPiBlbGVtZW50XG4gKi9cbkBtaXhpbiByZXNldF9idXR0b25fZWxlbWVudCB7XG5cdGFwcGVhcmFuY2U6IG5vbmU7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGJvcmRlcjogbm9uZTtcblx0cGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBUaGlzIG1peGluIGNhbiBiZSB1c2VkIHRvIHJlbW92ZSB0aGUgZGVmYXVsdCBhbmNob3Igc3R5bGluZy5cbiAqL1xuQG1peGluIHJlc2V0X2xpbmtfc3R5bGUge1xuXHRwYWRkaW5nOiAwO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdH1cbn1cblxuLyoqXG4gKiBUaGlzIG1peGluIGNhbiBiZSB1c2VkIHRvIHJlbW92ZSB0aGUgZGVmYXVsdCBsaXN0IHN0eWxpbmcuXG4gKi9cbkBtaXhpbiByZXNldF9saXN0X2l0ZW0ge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmctbGVmdDogMDtcblxuXHQmOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UUkFOU0lUSU9OXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFRyYW5zaXRpb24gc2hvcnRjdXRcbiAqL1xuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnR5OiBmYWxzZSwgJGVhc2luZzogdmFyKC0tdHJhbnNpdGlvbi1iYXNlLWVhc2luZyksICRkdXJhdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1iYXNlLWR1cmF0aW9uKSwgJGRlbGF5OiBmYWxzZSkge1xuXHR0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG5cdHRyYW5zaXRpb24tcHJvcGVydHk6ICRwcm9wZXJ0eTtcblxuXHRAaWYgKCRkZWxheSkge1xuXHRcdHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheTtcblx0fVxuXHR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGVhc2luZztcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UWVBPR1JBUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFR5cG9ncmFwaHkgbWl4aW5zIHRvIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IGRlc2t0b3BcbiAqIGFuZCBtb2JpbGUgc2l6ZXMgb2YgZm9udHMgYXJlIGNvcnJlY3RcbiAqL1xuXG5AbWl4aW4gZm9udF9wcm9wX2hlYWRpbmcoICRoZWFkaW5nLXR5cGU6IDEgKSB7XG5cblx0bWFyZ2luOiB2YXIoLS1tYXJnaW4taCN7JGhlYWRpbmctdHlwZX0tbW9iaWxlKTtcblxuXHRAaW5jbHVkZSBmb3ItdGFibGV0LWxhbmRzY2FwZS11cCB7XG5cdFx0bWFyZ2luOiB2YXIoLS1tYXJnaW4taCN7JGhlYWRpbmctdHlwZX0tZGVza3RvcCk7XG5cdH1cbn1cblxuLy8gU3R5bGU6IFN1Yi1oZWFkaW5nLlxuXG5AbWl4aW4gaGVhZGluZ19zdWJoZWFkaW5nIHtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWdsb2JhbC1oZWFkaW5nLWZvbnQtZmFtaWx5KTtcblx0Zm9udC1zaXplOiAyMHB4O1xuXHRmb250LXdlaWdodDogNTAwO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXMpICFpbXBvcnRhbnQ7XG5cblx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXhzKSAhaW1wb3J0YW50O1xuXHR9XG59XG4iLCIvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSW1wb3J0IHNldHRpbmdzIGFuZCB0b29scy5cbi8vIChlLmcuIHZhcmlhYmxlcywgbWl4aW5zLCBmdW5jdGlvbnMsIGV0Yy4uKVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGltcG9ydCBcImltcG9ydF9hbGxfc2V0dGluZ3NcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkdlbmVyaWNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBpbXBvcnQgXCIwMi1nZW5lcmljL2JvZHlcIjtcbkBpbXBvcnQgXCIwMi1nZW5lcmljL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCIwMi1nZW5lcmljL2ZvbnRzXCI7XG5AaW1wb3J0IFwiMDItZ2VuZXJpYy9ub3JtYWxpemVcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkVsZW1lbnRzXG4tIG9ubHkgc2ltcGxlIEhUTUwgdGFncyBjYW4gZ28gaGVyZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQGltcG9ydCBcIjAzLWVsZW1lbnRzL2FsaWdubWVudFwiO1xuQGltcG9ydCBcIjAzLWVsZW1lbnRzL2Zvcm1zXCI7XG5AaW1wb3J0IFwiMDMtZWxlbWVudHMvaGVhZGluZ3NcIjtcbkBpbXBvcnQgXCIwMy1lbGVtZW50cy9pbWFnZXNcIjtcbkBpbXBvcnQgXCIwMy1lbGVtZW50cy9saW5rc1wiO1xuQGltcG9ydCBcIjAzLWVsZW1lbnRzL2xpc3RzXCI7XG5AaW1wb3J0IFwiMDMtZWxlbWVudHMvcGFyYWdyYXBoc1wiO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuT2JqZWN0c1xuLSBtdXN0IGJlIHByZWZpeGVkIHdpdGggYG8tKmBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBpbXBvcnQgXCIwNC1vYmplY3RzL2NhcmRcIjtcbkBpbXBvcnQgXCIwNC1vYmplY3RzL2dsaWRlanNcIjtcbkBpbXBvcnQgXCIwNC1vYmplY3RzL2dyYXZpdHktZm9ybXNcIjtcbkBpbXBvcnQgXCIwNC1vYmplY3RzL2dyaWRcIjtcbkBpbXBvcnQgXCIwNC1vYmplY3RzL2ljb25zXCI7XG5AaW1wb3J0IFwiMDQtb2JqZWN0cy9wYWdlXCI7XG5AaW1wb3J0IFwiMDQtb2JqZWN0cy9wYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwiMDQtb2JqZWN0cy9zZWFyY2gtZmlsdGVyXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5Db21wb25lbnRzXG4tIG11c3QgYmUgcHJlZml4ZWQgd2l0aCBgYy0qYFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQGltcG9ydCBcIjA1LWNvbXBvbmVudHMvaGVhZGVyXCI7XG5AaW1wb3J0IFwiMDUtY29tcG9uZW50cy9uYXZpZ2F0aW9uXCI7XG5AaW1wb3J0IFwiMDUtY29tcG9uZW50cy9mb290ZXJcIjtcbkBpbXBvcnQgXCIwNS1jb21wb25lbnRzL2FyY2hpdmVzXCI7XG5AaW1wb3J0IFwiMDUtY29tcG9uZW50cy9zaW5nbGVzXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5XUFxuLSBJbiB0aGlzIHNlY3Rpb24geW91IHNob3VsZCBhZGQgYW55IHJlbGV2YW50IGZpbGUgdGhhdCBvdmVycmlkZXNcbi0gYSBzcGVjaWZpYyBXb3JkUHJlc3MgY29tcG9uZW50IChlLmcuIGJsb2NrLCBwbHVnaW4sIGV0Yy4uKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQGltcG9ydCBcIjA2LXdwL2Jsb2Nrc1wiO1xuQGltcG9ydCBcIjA2LXdwL3BhdHRlcm5zXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5VdGlsaXRpZXNcbi0gaWRlYWxseSBwcmVmaXhlZCB3aXRoIGB1LSpgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AaW1wb3J0IFwiMDctdXRpbGl0aWVzL2FjY2Vzc2liaWxpdHlcIjtcbkBpbXBvcnQgXCIwNy11dGlsaXRpZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiMDctdXRpbGl0aWVzL3R5cG9ncmFwaHlcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblRydW1wc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQGltcG9ydCBcIjA4LXRydW1wcy9zaGFtZVwiO1xuQGltcG9ydCBcIjA4LXRydW1wcy90ZW1wXCI7XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQk9EWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuaHRtbCB7XG5cdHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG5ib2R5IHtcblxuXHQvLyBAaW5jbHVkZSBmb250X3Byb3BfYm9keSgpO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkJPWC1TSVpJTkdcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogTW9yZSBzZW5zaWJsZSBkZWZhdWx0IGJveC1zaXppbmc6XG4gKiBjc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2VcbiAqL1xuXG5odG1sIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiB7XG5cblx0Jixcblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0Ym94LXNpemluZzogaW5oZXJpdDtcblx0fVxufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcblx0bGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcblx0bWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcblx0Ly8gZm9udC1zaXplOiAyZW07XG5cdG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcblx0Ym94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cblx0aGVpZ2h0OiAwOyAvKiAxICovXG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuXHRmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cblx0Zm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG5cdGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcblx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG5cdGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuXHRmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuXHRmb250LXNpemU6IDc1JTtcblx0bGluZS1oZWlnaHQ6IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuXHRib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG5cdHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcblx0Ym9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuXHRmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuXHRmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cblx0bGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cblx0bWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHtcblx0b3ZlcmZsb3c6IHZpc2libGU7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTsgLyogMSAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcblx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG5cdG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuXHRwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cblx0Y29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cblx0ZGlzcGxheTogdGFibGU7IC8qIDEgKi9cblx0bWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG5cdHBhZGRpbmc6IDA7IC8qIDMgKi9cblx0d2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cblx0cGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuXHRvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuXHRmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG5cdGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5MSU5LU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmFsaWdubGVmdCxcbi5hbGlnbnJpZ2h0IHtcblxuXHRAaW5jbHVkZSB1cC10by10YWJsZXQtbGFuZHNjYXBlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbm9uZTtcblx0fVxufVxuXG4vLyBGaXggZm9yIG5lc3RlZCBhbGlnbmZ1bGwgY29tcG9uZW50cy5cblxuLmFzdC1uby1zaWRlYmFyIC5lbnRyeS1jb250ZW50IC5hbGlnbmZ1bGwgLmFsaWduZnVsbCB7XG5cblx0QGluY2x1ZGUgZ3JpZF9jb250YWluZXJfX25lZ2F0aXZlKCk7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuRk9STVNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zaW5nbGUtY29udGVudCxcbiNjb2xvcGhvbiB7XG5cblx0aW5wdXQ6bm90KFt0eXBlPVwiYnV0dG9uXCJdKTpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cInJlc2V0XCJdKSxcblx0dGV4dGFyZWEsXG5cdHNlbGVjdCB7XG5cdFx0cGFkZGluZzogdmFyKC0tc3BhY2luZy1zKTtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyOiBzb2xpZCAxcHggdmFyKC0tY29sb3ItZ3JleS0yKSAhaW1wb3J0YW50O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyZXktMyk7XG5cblx0XHQmOjpwbGFjZWhvbGRlciB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItZ3JleS0yKTtcblx0XHR9XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXJlZCkgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHRzZWxlY3Qge1xuXHRcdHBhZGRpbmc6IHZhcigtLXNwYWNpbmctcyk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHR9XG5cblx0aW5wdXRbdHlwZT1cInJhZGlvXCJdOm5vdChbdHlwZT1cImJ1dHRvblwiXSk6bm90KFt0eXBlPVwic3VibWl0XCJdKTpub3QoW3R5cGU9XCJyZXNldFwiXSksXG5cdGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpub3QoW3R5cGU9XCJidXR0b25cIl0pOm5vdChbdHlwZT1cInN1Ym1pdFwiXSk6bm90KFt0eXBlPVwicmVzZXRcIl0pIHtcblx0XHRoZWlnaHQ6IHZhcigtLXNwYWNpbmctbSkgIWltcG9ydGFudDtcblx0XHR3aWR0aDogdmFyKC0tc3BhY2luZy1tKSAhaW1wb3J0YW50O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKSAhaW1wb3J0YW50O1xuXHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0XHRtYXJnaW46IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiA2cHg7XG5cblx0XHQrIGxhYmVsLFxuXHRcdCsgc3Bhbixcblx0XHRsYWJlbCxcblx0XHRzcGFuIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG5cdFx0XHRmb250LXNpemU6IDFlbTtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuXHRcdFx0cGFkZGluZzogMCAwIDAgMTJweDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZSkgIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQmOmNoZWNrZWQge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlKTtcblxuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0XHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZSk7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSEVBRElOR1Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zaW5nbGUtY29udGVudCB7XG5cblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcblxuXHRcdGgjeyRpfSB7XG5cblx0XHRcdC8vIEhlYWRpbmcgc3R5bGluZy5cblxuXHRcdFx0QGluY2x1ZGUgZm9udF9wcm9wX2hlYWRpbmcoICRpICk7XG5cblx0XHR9XG5cdH1cbn1cblxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcblxuXHRoI3skaX0ge1xuXG5cdFx0Ly8gV2VpZ2h0OiBTdHJvbmcuXG5cblx0XHRzdHJvbmcge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItZ3JlZW4pO1xuXHRcdH1cblxuXHRcdC8vIFBhZ2UgYW5jaG9yIHBvc2l0aW9uIG9mZnNldCAoZm9yIHN0aWNreSBoZWFkZXIpLlxuXG5cdFx0JltpZF0ge1xuXHRcdFx0cGFkZGluZy10b3A6IDE0MHB4O1xuXHRcdFx0bWFyZ2luLXRvcDogLTE0MHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBmb3ItcGhvbmUtb25seSB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiAxMDBweDtcblx0XHRcdFx0bWFyZ2luLXRvcDogLTEwMHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklNQUdFU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuaW1nIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGhlaWdodDogYXV0bztcblx0bWF4LXdpZHRoOiAxMDAlO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkxJTktTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5hIHtcblx0Ly8gY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0d2lkdGg6IDIwcHg7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDRweDtcblx0fVxufVxuXG4jbWFzdGhlYWQge1xuXG5cdGFbaHJlZio9XCJ0ZWw6XCJdIHtcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmx1ZSk7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIje21hcC1nZXQoJGltYWdlcywgJ3Bob25lLWljb24td2hpdGUnKX1cIik7XG5cdFx0XHRoZWlnaHQ6IDE4cHg7XG5cdFx0XHR3aWR0aDogMThweDtcblx0XHR9XG5cdH1cblxuXHRhW2hyZWYqPVwibWFpbHRvOlwiXSB7XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3ttYXAtZ2V0KCRpbWFnZXMsICdtYWlsLWljb24td2hpdGUnKX1cIik7XG5cdFx0XHRoZWlnaHQ6IDE4cHg7XG5cdFx0XHR3aWR0aDogMThweDtcblx0XHR9XG5cdH1cbn1cblxuI2NvbG9waG9uIHtcblxuXHRhW2hyZWYqPVwidGVsOlwiXSB7XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3ttYXAtZ2V0KCRpbWFnZXMsICdwaG9uZS1pY29uLXJlZCcpfVwiKTtcblx0XHR9XG5cdH1cblxuXHRhW2hyZWYqPVwibWFpbHRvOlwiXSB7XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3ttYXAtZ2V0KCRpbWFnZXMsICdtYWlsLWljb24tcmVkJyl9XCIpO1xuXHRcdH1cblx0fVxufVxuXG4ud2lkZ2V0LndpZGdldF9uYXZfbWVudSB7XG5cblx0YSB7XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3ttYXAtZ2V0KCRpbWFnZXMsICdhcnJvdy1yaWdodC1yZWQnKX1cIik7XG5cdFx0XHRoZWlnaHQ6IDE4cHg7XG5cdFx0XHR3aWR0aDogMThweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5MSVNUU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNpbmdsZS1jb250ZW50IHtcblxuXHR1bCxcblx0b2wge1xuXG5cdFx0QGluY2x1ZGUgZm9yLXBob25lLW9ubHkge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZy1tKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5QQVJBR1JBUEhTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZW50cnktY29udGVudCBwIHtcblx0bWFyZ2luOiB2YXIoLS1tYXJnaW4tcC1tb2JpbGUpO1xuXG5cdEBpbmNsdWRlIGZvci10YWJsZXQtbGFuZHNjYXBlLXVwIHtcblx0XHRtYXJnaW46IHZhcigtLW1hcmdpbi1wLWRlc2t0b3ApO1xuXHR9XG5cblx0Ji5oYXMtc21hbGwtZm9udC1zaXplIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbWFsbC1tb2JpbGUpO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbWFsbCk7XG5cblx0XHRAaW5jbHVkZSBmb3ItdGFibGV0LWxhbmRzY2FwZS11cCB7XG5cdFx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbWFsbC1kZXNrdG9wKTtcblx0XHR9XG5cdH1cblxuXHQmLmhhcy1tZWRpdW0tZm9udC1zaXplIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1tZWRpdW0tbW9iaWxlKTtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbWVkaXVtKTtcblxuXHRcdEBpbmNsdWRlIGZvci10YWJsZXQtbGFuZHNjYXBlLXVwIHtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLW1lZGl1bS1kZXNrdG9wKTtcblx0XHR9XG5cdH1cblxuXHQmLmhhcy1sYXJnZS1mb250LXNpemUge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWxhcmdlLW1vYmlsZSk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWxhcmdlKTtcblx0XHRtYXJnaW46IHZhcigtLW1hcmdpbi1sYXJnZS1tb2JpbGUpO1xuXG5cdFx0QGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGFyZ2UtZGVza3RvcCk7XG5cdFx0XHRtYXJnaW46IHZhcigtLW1hcmdpbi1sYXJnZS1kZXNrdG9wKTtcblx0XHR9XG5cdH1cblxuXHQmLmhhcy1sYXJnZXItZm9udC1zaXplIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sYXJnZXItbW9iaWxlKTtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbGFyZ2VyKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1tYXJnaW4tYm90dG9tLWxhcmdlLW1vYmlsZSk7XG5cblx0XHRAaW5jbHVkZSBmb3ItdGFibGV0LWxhbmRzY2FwZS11cCB7XG5cdFx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sYXJnZXItZGVza3RvcCk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1tYXJnaW4tYm90dG9tLWxhcmdlLWRlc2t0b3ApO1xuXHRcdH1cblx0fVxuXG5cdCY6ZW1wdHkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkNBUkRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5hZ2VuY3ktdWktY2FyZCxcbi5hZ2VuY3ktdWktY2FyZF9fY29udGVudCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLmFnZW5jeS11aS1jYXJkIHtcblxuXHQuY2FyZC1pbWFnZSB7XG5cblx0XHRpbWcge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG5cbi5hZ2VuY3ktdWktY2FyZF9fY29udGVudCB7XG5cdHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbSkgMCAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cblx0LmNhcmQtdGl0bGUge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG5cdFx0bWFyZ2luOiAwIDAgdmFyKC0tc3BhY2luZy1zKTtcblx0fVxuXG5cdHAge1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctcykgIWltcG9ydGFudDtcblxuXHRcdEBpbmNsdWRlIGZvci10YWJsZXQtcG9ydHJhaXQtdXAge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1sKSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdC53cC1ibG9jay1idXR0b25zIHtcblx0XHRtYXJnaW46IGF1dG8gMCAwICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQud3AtYmxvY2stYnV0dG9uIHtcblx0XHRtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5HTElERUpTIENBUk9VU0VMXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZ2xpZGUge1xuXG5cdC8vIEJ1bGxldHMuXG5cblx0LmdsaWRlX19idWxsZXRzIHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLXh4bCk7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0LmdsaWRlX19idWxsZXQge1xuXHRcdHBhZGRpbmc6IDhweDtcblx0XHRtYXJnaW46IDAgdmFyKC0tc3BhY2luZy14cyk7XG5cdFx0Ym9yZGVyOiBzb2xpZCAxcHggdmFyKC0tY29sb3ItcmVkKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyxcblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXJlZCk7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1yZWQpO1xuXHRcdH1cblxuXHRcdCYuZ2xpZGVfX2J1bGxldC0tYWN0aXZlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXJlZCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuR1JBVklUWSBGT1JNU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuYm9keSB7XG5cblx0Lmdmb3JtX3dyYXBwZXIge1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdC8vIEdyYXZpdHkgRm9ybXMgQm9keS5cblxuXHRcdGlucHV0Om5vdChbdHlwZT1cInJhZGlvXCJdKTpub3QoW3R5cGU9XCJjaGVja2JveFwiXSk6bm90KFt0eXBlPVwic3VibWl0XCJdKTpub3QoW3R5cGU9XCJidXR0b25cIl0pOm5vdChbdHlwZT1cImltYWdlXCJdKTpub3QoW3R5cGU9XCJmaWxlXCJdKSxcblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXMpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG5cblx0XHQuZ2Zvcm1fYm9keSB1bCBsaTpmaXJzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXG5cdFx0LnRvcF9sYWJlbCBkaXYuZ2lucHV0X2NvbnRhaW5lciB7XG5cdFx0XHRtYXJnaW46IDAgIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQvLyBHcmF2aXR5IEZvcm1zIEZvb3Rlci5cblxuXHRcdC5nZm9ybV9mb290ZXIge1xuXG5cdFx0XHQuZ2Zvcm1fYnV0dG9uIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuNiAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIFNpdGUgRm9vdGVyLlxuXG5cdCNjb2xvcGhvbiB7XG5cblx0XHQuZ2Zvcm1fd3JhcHBlciB7XG5cblx0XHRcdGxpLmhpZGRlbl9sYWJlbCBpbnB1dCxcblx0XHRcdC50b3BfbGFiZWwgZGl2LmdpbnB1dF9jb250YWluZXIge1xuXHRcdFx0XHRtYXJnaW46IDAgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0dWwuZ2Zvcm1fZmllbGRzIGxpLmdmaWVsZCB7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR9XG5cblx0XHRcdC5nZm9ybV9mb290ZXIge1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuR1JJRFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLm8tZ3JpZCB7XG5cblx0QGluY2x1ZGUgZ3JpZF9jb250YWluZXI7XG59XG5cbi5vLWdyaWRfXzIge1xuXG5cdEBpbmNsdWRlIGdyaWRfY29sdW1uXzUwX2Rlc2t0b3A7XG5cblx0QGluY2x1ZGUgZm9yLXBob25lLW9ubHkge1xuXG5cdFx0QGluY2x1ZGUgZ3JpZF9jb2x1bW5fNTBfbW9iaWxlO1xuXHR9XG59XG5cbi5vLWdyaWRfXzMge1xuXG5cdEBpbmNsdWRlIGdyaWRfY29sdW1uXzMzX2Rlc2t0b3A7XG5cblx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblxuXHRcdEBpbmNsdWRlIGdyaWRfY29sdW1uXzMzX3RhYmxldDtcblx0fVxuXG5cdEBpbmNsdWRlIGZvci1waG9uZS1vbmx5IHtcblxuXHRcdEBpbmNsdWRlIGdyaWRfY29sdW1uXzMzX21vYmlsZTtcblx0fVxufVxuXG4uby1ncmlkX180IHtcblxuXHRAaW5jbHVkZSBncmlkX2NvbHVtbl8yNV9kZXNrdG9wO1xuXG5cdEBpbmNsdWRlIHVwLXRvLXRhYmxldC1sYW5kc2NhcGUge1xuXG5cdFx0QGluY2x1ZGUgZ3JpZF9jb2x1bW5fMjVfdGFibGV0O1xuXHR9XG5cblx0QGluY2x1ZGUgZm9yLXBob25lLW9ubHkge1xuXG5cdFx0QGluY2x1ZGUgZ3JpZF9jb2x1bW5fMjVfbW9iaWxlO1xuXHR9XG59XG5cbi8vIEdyaWQ6IFNsaW0uXG5cbi5vLWdyaWRfX3NsaW0ge1xuXG5cdCYuby1ncmlkX18zIHtcblxuXHRcdEBpbmNsdWRlIGdyaWRfY29sdW1uXzMzX2Rlc2t0b3A7XG5cblx0XHRAaW5jbHVkZSB1cC10by10YWJsZXQtcG9ydHJhaXQge1xuXG5cdFx0XHRAaW5jbHVkZSBncmlkX2NvbHVtbl8zM190YWJsZXQ7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgZm9yLXBob25lLW9ubHkge1xuXG5cdFx0XHRAaW5jbHVkZSBncmlkX2NvbHVtbl8zM19tb2JpbGU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSUNPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb290ZXItYWR2LWNvbXBhbnlfX3NvY2lhbCB7XG5cblx0YSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cGFkZGluZzogOHB4IDhweDtcblxuXHRcdC8vIEdlbmVyYWwgbGluayBkZWZhdWx0LlxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0aGVpZ2h0OiAyNXB4O1xuXHRcdFx0d2lkdGg6IDI1cHg7XG5cdFx0fVxuXG5cdFx0Ly8gU29jaWFsIHBsYXRmb3Jtcy5cblxuXHRcdCZbaHJlZio9XCJmYWNlYm9vay5jb21cIl0ge1xuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIje21hcC1nZXQoJGltYWdlcywgJ2ZhY2Vib29rLWRhcmsnKX1cIik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JltocmVmKj1cInR3aXR0ZXIuY29tXCJdIHtcblxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3ttYXAtZ2V0KCRpbWFnZXMsICd0d2l0dGVyLWRhcmsnKX1cIik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JltocmVmKj1cImluc3RhZ3JhbS5jb21cIl0ge1xuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIje21hcC1nZXQoJGltYWdlcywgJ2luc3RhZ3JhbS1kYXJrJyl9XCIpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZbaHJlZio9XCJ5b3V0dWJlLmNvbVwiXSB7XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7bWFwLWdldCgkaW1hZ2VzLCAneW91dHViZS1kYXJrJyl9XCIpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZbaHJlZio9XCJwaW50ZXJlc3QuY29tXCJdIHtcblxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3ttYXAtZ2V0KCRpbWFnZXMsICdwaW50ZXJlc3QtZGFyaycpfVwiKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmW2hyZWYqPVwiaG91enouY29tXCJdIHtcblxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3ttYXAtZ2V0KCRpbWFnZXMsICdob3V6ei1kYXJrJyl9XCIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblBBR0Vcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIFBhZ2UuXG5cbiNwcmltYXJ5LFxuI3NlY29uZGFyeSB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLy8gNDA0IHBhZ2UuXG5cbi5lcnJvcjQwNCAuZW50cnktaGVhZGVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLy8gQXJ0aWNsZXMuXG5cbi5oZW50cnkge1xuXHRtYXJnaW46IDA7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUEFHSU5BVElPTiAvIFBPU1QgTkFWSUdBVElPTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gUGFnaW5hdGlvbi5cblxuLy8gLm5hdmlnYXRpb24sXG4vLyAuc2luZ2xlIC5uYXZpZ2F0aW9uIHtcbi8vIFx0Ym9yZGVyLXRvcDogbm9uZTtcbi8vIH1cblxuLy8gLnNpbmdsZSAubmF2aWdhdGlvbiBhIHtcbi8vIFx0bWFyZ2luOiAwO1xuLy8gfVxuXG4vLyAubmF2aWdhdGlvbiB7XG4vLyBcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuLy8gXHQucHJldi5wYWdlLW51bWJlcnMge1xuLy8gXHRcdGZsb2F0OiBub25lO1xuXG4vLyBcdFx0QGluY2x1ZGUgZm9yLXRhYmxldC1wb3J0cmFpdC11cCB7XG4vLyBcdFx0XHRmbG9hdDogbGVmdDtcbi8vIFx0XHR9XG4vLyBcdH1cblxuLy8gXHQubmF2LWxpbmtzIHtcbi8vIFx0XHRtYXgtd2lkdGg6IDE0NDBweDtcbi8vIFx0XHRwYWRkaW5nOiAwIDIwcHg7XG4vLyBcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG4vLyBcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuLy8gXHR9XG4vLyB9XG5cbi8vIC5hc3QtcGFnaW5hdGlvbiAubmV4dC5wYWdlLW51bWJlcnMsXG4vLyAuYXN0LXBhZ2luYXRpb24gLnByZXYucGFnZS1udW1iZXJzLFxuLy8gLnBvc3QtbmF2aWdhdGlvbiBhIHtcbi8vIFx0cGFkZGluZzogMDtcbi8vIH1cblxuLy8gV1AtUGFnZU5hdmkuXG5cbi53cC1wYWdlbmF2aSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRtYXJnaW4tdG9wOiBzcGFjaW5nKDExKTtcblxuXHRAaW5jbHVkZSB1cC10by10YWJsZXQtcG9ydHJhaXQge1xuXHRcdG1hcmdpbi10b3A6IHNwYWNpbmcoOCk7XG5cdH1cblxuXHQuY3VycmVudCxcblx0LnBhZ2UsXG5cdC5wcmV2aW91c3Bvc3RzbGluayxcblx0Lm5leHRwb3N0c2xpbmsge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRoZWlnaHQ6IHZhcigtLXNwYWNpbmctbCk7XG5cdFx0d2lkdGg6IHZhcigtLXNwYWNpbmctbCk7XG5cdFx0bWFyZ2luOiAwIHZhcigtLXNwYWNpbmcteHMpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyZXktMyk7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKTtcblx0XHRmb250LWZhbWlseTogdmFyKC0tZ2xvYmFsLWhlYWRpbmctZm9udC1mYW1pbHkpO1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG5cblx0LnBhZ2U6aG92ZXIsXG5cdC5wYWdlOmZvY3VzLFxuXHQucGFnZTphY3RpdmUsXG5cdC5wcmV2aW91c3Bvc3RzbGluazpob3Zlcixcblx0LnByZXZpb3VzcG9zdHNsaW5rOmZvY3VzLFxuXHQucHJldmlvdXNwb3N0c2xpbms6YWN0aXZlLFxuXHQubmV4dHBvc3RzbGluazpob3Zlcixcblx0Lm5leHRwb3N0c2xpbms6Zm9jdXMsXG5cdC5uZXh0cG9zdHNsaW5rOmFjdGl2ZSxcblx0LmN1cnJlbnQge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlKTtcblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblNFQVJDSCAmIEZJTFRFUiBQUk9cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIFNlYXJjaCBmaWx0ZXJzLlxuXG4uc2luZ2xlLWNvbnRlbnQgLnNlYXJjaGFuZGZpbHRlciB7XG5cdHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbSkgdmFyKC0tc3BhY2luZy1sKSB2YXIoLS1zcGFjaW5nLWwpO1xuXHRtYXJnaW46IDA7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyZXktMyk7XG5cblx0dWwge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHRAaW5jbHVkZSB1cC10by10YWJsZXQtcG9ydHJhaXQge1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdH1cblx0fVxuXG5cdGxpIHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0KyBsaSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2luZy1tKTtcblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNwYWNpbmcteHMpICogLTEpO1xuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjaW5nLXMpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuc2YtZmllbGQtc3VibWl0LFxuXHRcdCYuc2YtZmllbGQtcmVzZXQge1xuXG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuc2YtZmllbGQtc3VibWl0IHtcblx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjaW5nLWwpICFpbXBvcnRhbnQ7XG5cblx0XHRcdGlucHV0IHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlKTtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZSk7XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1yZWQpO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXJlZCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLnNmLWZpZWxkLXJlc2V0IHtcblxuXHRcdFx0aW5wdXQge1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmx1ZSk7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZSk7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1yZWQpO1xuXHRcdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGxhYmVsIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdHNlbGVjdC5zZi1pbnB1dC1zZWxlY3Qge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1pbi13aWR0aDogMjMwcHg7XG5cblx0XHRAaW5jbHVkZSB1cC10by10YWJsZXQtcG9ydHJhaXQge1xuXHRcdFx0bWluLXdpZHRoOiB1bnNldDtcblx0XHR9XG5cdH1cblxuXHRoNCB7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0fVxufVxuXG4vLyBTZWFyY2ggcmVzdWx0cy5cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5IRUFERVJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBpbXBvcnQgXCJoZWFkZXIvaGVhZGVyXCI7XG5AaW1wb3J0IFwiaGVhZGVyL3NpdGUtYnJhbmRpbmdcIjtcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5IRUFERVJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiNtYXN0aGVhZCB7XG5cblx0Ly8gVG9wIHJvdy5cblxuXHQuc2l0ZS10b3AtaGVhZGVyLXdyYXAge1xuXG5cdFx0dWwge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHRsaSB7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0XHQrIGxpIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjaW5nLW0pO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2luZy1tKTtcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6IHNvbGlkIDFweCB2YXIoLS1jb2xvci13aGl0ZS01MCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gTWFpbiByb3cuXG5cblx0LnNpdGUtbWFpbi1oZWFkZXItd3JhcCB7XG5cblx0XHQuc2l0ZS1oZWFkZXItaXRlbS1tYWluLW5hdmlnYXRpb24sXG5cdFx0LmhlYWRlci1uYXZpZ2F0aW9uLFxuXHRcdC5oZWFkZXItbWVudS1jb250YWluZXIsXG5cdFx0LmhlYWRlci1uYXZpZ2F0aW9uIC5tZW51IHtcblx0XHRcdGZsZXg6IDE7XG5cdFx0fVxuXG5cdH1cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblNJVEUgQlJBTkRJTkdcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiNtYXN0aGVhZCB7XG5cblx0LnNpdGUtYnJhbmRpbmcge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbk5BVklHQVRJT05cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBpbXBvcnQgXCJuYXZpZ2F0aW9uL3ByaW1hcnlcIjtcbkBpbXBvcnQgXCJuYXZpZ2F0aW9uL21vYmlsZVwiO1xuQGltcG9ydCBcIm5hdmlnYXRpb24vZm9vdGVyXCI7XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUFJJTUFSWSBIRUFERVIgTkFWSUdBVElPTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuI3ByaW1hcnktbWVudSB7XG5cblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdD4gbGkge1xuXHRcdGZsZXg6IDE7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0bGkge1xuXG5cdFx0YSB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR9XG5cdH1cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbk1PQklMRSBIRUFERVIgTkFWSUdBVElPTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gTW9iaWxlIG1lbnUgdG9nZ2xlZC5cblxuYm9keS5hc3QtbWFpbi1oZWFkZXItbmF2LW9wZW4ge1xuXG5cdCNtYXN0aGVhZCB7XG5cblx0XHQubWFpbi1oZWFkZXItYmFyIC5tYWluLWhlYWRlci1iYXItbmF2aWdhdGlvbi50b2dnbGUtb24ge1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0fVxuXG5cdFx0Ly8gTW9iaWxlIG1lbnUuXG5cblx0XHQubWFpbi1oZWFkZXItbWVudSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0fVxuXHR9XG5cblx0I3ByaW1hcnktbWVudSB7XG5cblx0XHQubWVudS1pdGVtIHtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzLjE7XG5cdFx0fVxuXG5cdFx0Lm1lbnUtbGluayB7XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0fVxuXG5cdFx0PiAubWVudS1pdGVtID4gLm1lbnUtbGluayB7XG5cdFx0XHRwYWRkaW5nOiAwIDAgMCB2YXIoLS1zcGFjaW5nLW0pO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKTtcblx0XHR9XG5cblx0XHQ+IC5tZW51LWl0ZW0uYXN0LXN1Ym1lbnUtZXhwYW5kZWQge1xuXG5cdFx0XHQ+IC5tZW51LWxpbmsge1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRcdFx0fVxuXG5cdFx0XHQuYXN0LW1lbnUtdG9nZ2xlIHtcblx0XHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuc3ViLW1lbnUge1xuXHRcdFx0cGFkZGluZzogdmFyKC0tc3BhY2luZy14cykgMDtcblxuXHRcdFx0Lm1lbnUtbGluayB7XG5cdFx0XHRcdHBhZGRpbmc6IDAgdmFyKC0tc3BhY2luZy1sKTtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXG5cdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG59XG5cbi5hc3QtaGVhZGVyLWJyZWFrLXBvaW50IC5tYWluLWhlYWRlci1iYXItbmF2aWdhdGlvbiB7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDA7XG59XG5cbi5hc3QtaGVhZGVyLWJyZWFrLXBvaW50IC5tYWluLWhlYWRlci1iYXIgLm1haW4taGVhZGVyLWJhci1uYXZpZ2F0aW9uIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gLmFzdC1tZW51LXRvZ2dsZSB7XG5cdHJpZ2h0OiB2YXIoLS1zcGFjaW5nLXhzKTtcbn1cblxuLy8gTW9iaWxlIG1lbnUgdG9nZ2xlLlxuXG4uYXN0LWhlYWRlci1icmVhay1wb2ludCAuYXN0LW1vYmlsZS1tZW51LWJ1dHRvbnMgLmFzdC1idXR0b24td3JhcCAuYXN0LW1vYmlsZS1tZW51LWJ1dHRvbnMtbWluaW1hbCB7XG5cdGZvbnQtc2l6ZTogMmVtO1xufVxuXG4uYXN0LWJ1dHRvbi13cmFwIC5tZW51LXRvZ2dsZSAubWVudS10b2dnbGUtaWNvbiB7XG5cdGxpbmUtaGVpZ2h0OiAxLjg7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuRk9PVEVSIE5BVklHQVRJT05cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiNtZW51LWZvb3Rlci1tZW51IHtcblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkZPT1RFUlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuI2NvbG9waG9uIHtcblxuXHQvLyBNaWRkbGUgcm93LlxuXG5cdC5zaXRlLW1pZGRsZS1mb290ZXItd3JhcCB7XG5cblx0XHRAaW5jbHVkZSB1cC10by10YWJsZXQtbGFuZHNjYXBlIHtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cblx0XHQuc2l0ZS1mb290ZXItc2VjdGlvbiArIC5zaXRlLWZvb3Rlci1zZWN0aW9uIHtcblxuXHRcdFx0QGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNpbmctbCk7XG5cdFx0XHRcdGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggdmFyKC0tY29sb3Itd2hpdGUtNTApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIEJvdHRvbSByb3cuXG5cblx0LnNpdGUtYm90dG9tLWZvb3Rlci13cmFwIHtcblxuXHRcdC5zaXRlLWZvb3Rlci1ib3R0b20tc2VjdGlvbi0xIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuXHRcdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cdFx0XHR9XG5cblx0XHRcdD4gKiB7XG5cblx0XHRcdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRcdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gV2lkZ2V0cy5cblxuXHQud2lkZ2V0LndpZGdldF9tZWRpYV9pbWFnZSBpbWcge1xuXG5cdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LWxhbmRzY2FwZSB7XG5cdFx0XHRtYXgtd2lkdGg6IDMwJSAhaW1wb3J0YW50O1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0fVxuXHR9XG5cbn1cblxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkFSQ0hJVkVTIEdFTkVSQUxcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5hcmNoaXZlIHtcblxuXHQuc2l0ZS1tYWluID4gLmFzdC1yb3cge1xuXG5cdFx0QGluY2x1ZGUgZ3JpZF9jb250YWluZXIoKTtcblx0XHRAaW5jbHVkZSBkZWZhdWx0X3BhZGRpbmcoKTtcblx0fVxuXG59XG5cbi5ibG9nLWxheW91dC0xIHtcblx0cGFkZGluZy1ib3R0b206IDA7XG5cdGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuU0lOR0xFUyBHRU5FUkFMXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc2luZ2xlIHtcblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkdVVEVOQkVSRyBCTE9DS1Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIENvcmUgQmxvY2tzICovXG5cbkBpbXBvcnQgXCJibG9ja3MvY29yZS9ibG9ja3F1b3RlXCI7XG5AaW1wb3J0IFwiYmxvY2tzL2NvcmUvYnV0dG9uXCI7XG5AaW1wb3J0IFwiYmxvY2tzL2NvcmUvY29sdW1uc1wiO1xuQGltcG9ydCBcImJsb2Nrcy9jb3JlL2NvdmVyXCI7XG5AaW1wb3J0IFwiYmxvY2tzL2NvcmUvZ2FsbGVyeVwiO1xuQGltcG9ydCBcImJsb2Nrcy9jb3JlL2dyb3VwXCI7XG5AaW1wb3J0IFwiYmxvY2tzL2NvcmUvaGVhZGluZ1wiO1xuQGltcG9ydCBcImJsb2Nrcy9jb3JlL21lZGlhLXRleHRcIjtcbkBpbXBvcnQgXCJibG9ja3MvY29yZS9wdWxscXVvdGVcIjtcbkBpbXBvcnQgXCJibG9ja3MvY29yZS9zZXBhcmF0b3JcIjtcbkBpbXBvcnQgXCJibG9ja3MvY29yZS90YWJsZVwiO1xuXG4vKiBDdXN0b20gQmxvY2tzICovXG5cbkBpbXBvcnQgXCJibG9ja3MvY3VzdG9tL2FnZW5jeS11aS1jb250ZW50LWdyaWRcIjtcbkBpbXBvcnQgXCJibG9ja3MvY3VzdG9tL2FnZW5jeS11aS10aWxlXCI7XG5AaW1wb3J0IFwiYmxvY2tzL2N1c3RvbS90ZXN0aW1vbmlhbC1zbGlkZXJcIjtcblxuLyogRmlnY2FwdGlvbiAqL1xuXG5kaXZbY2xhc3MqPVwid3AtYmxvY2stXCJdLFxuZmlndXJlW2NsYXNzKj1cIndwLWJsb2NrLVwiXSB7XG5cblx0ZmlnY2FwdGlvbiB7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdFx0cGFkZGluZy10b3A6IHZhcigtLXNwYWNpbmctcyk7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQkxPQ0tRVU9URSBCTE9DS1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmVudHJ5LWNvbnRlbnQgYmxvY2txdW90ZS53cC1ibG9jay1xdW90ZSB7XG5cblx0cGFkZGluZzogdmFyKC0tc3BhY2luZy1sKTtcblx0bWFyZ2luOiB2YXIoLS1zcGFjaW5nLXh4bCkgMDtcblx0Ym9yZGVyOiBub25lO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdGJveC1zaGFkb3c6IDAgOHB4IDEwcHggLThweCB2YXIoLS1jb2xvci1ncmV5LTIpO1xuXG5cdEBpbmNsdWRlIGZvci10YWJsZXQtbGFuZHNjYXBlLXVwIHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLXhsKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXhsKTtcblx0fVxuXG5cdGNpdGUge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLW1lZGl1bS1tb2JpbGUpO1xuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5CVVRUT04gQkxPQ0tcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zaW5nbGUtY29udGVudCAud3AtYmxvY2stYnV0dG9ucyB7XG5cdG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmctbCk7XG5cblx0LndwLWJsb2NrLWJ1dHRvbiB7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZy1zKTtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmctbSk7XG5cblx0XHRAaW5jbHVkZSBmb3ItcGhvbmUtb25seSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG5cdH1cblxuXHQud3AtYmxvY2stYnV0dG9uX19saW5rIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4vLyBTdHlsZTogRmlsbC5cblxuLndwLWJsb2NrLWJ1dHRvbjpub3QoLmlzLXN0eWxlLW91dGxpbmUpOm5vdCguaXMtc3R5bGUtZmVhdHVyZWQpID4gLndwLWJsb2NrLWJ1dHRvbl9fbGluayB7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbGlnaHQtYmx1ZSkgIWltcG9ydGFudDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1saWdodC1ibHVlKSAhaW1wb3J0YW50O1xuXHR9XG5cblx0Ji5oYXMtdGhlbWUtcGFsZXR0ZS0xLWJhY2tncm91bmQtY29sb3Ige1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGUxKTtcblx0fVxuXG5cdCYuaGFzLXRoZW1lLXBhbGV0dGUtMi1iYWNrZ3JvdW5kLWNvbG9yIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlMik7XG5cdH1cblxuXHQmLmhhcy10aGVtZS1wYWxldHRlLTMtYmFja2dyb3VuZC1jb2xvciB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTMpO1xuXHR9XG5cblx0Ji5oYXMtdGhlbWUtcGFsZXR0ZS00LWJhY2tncm91bmQtY29sb3Ige1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGU0KTtcblx0fVxuXG5cdCYuaGFzLXRoZW1lLXBhbGV0dGUtNS1iYWNrZ3JvdW5kLWNvbG9yIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlNSk7XG5cdH1cblxuXHQmLmhhcy10aGVtZS1wYWxldHRlLTYtYmFja2dyb3VuZC1jb2xvciB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTYpO1xuXHR9XG5cblx0Ji5oYXMtdGhlbWUtcGFsZXR0ZS03LWJhY2tncm91bmQtY29sb3Ige1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGU3KTtcblx0fVxuXG5cdCYuaGFzLXRoZW1lLXBhbGV0dGUtOC1iYWNrZ3JvdW5kLWNvbG9yIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlOCk7XG5cdH1cblxuXHQmLmhhcy10aGVtZS1wYWxldHRlLTktYmFja2dyb3VuZC1jb2xvciB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTkpO1xuXHR9XG59XG5cbi8vIFN0eWxlOiBPdXRsaW5lLlxuXG4ud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLW91dGxpbmUgPiAud3AtYmxvY2stYnV0dG9uX19saW5rIHtcblxuXHQmLmhhcy10aGVtZS1wYWxldHRlLTEtY29sb3Ige1xuXHRcdGNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTEpO1xuXHR9XG5cblx0Ji5oYXMtdGhlbWUtcGFsZXR0ZS0yLWNvbG9yIHtcblx0XHRjb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGUyKTtcblx0fVxuXG5cdCYuaGFzLXRoZW1lLXBhbGV0dGUtMy1jb2xvciB7XG5cdFx0Y29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlMyk7XG5cdH1cblxuXHQmLmhhcy10aGVtZS1wYWxldHRlLTQtY29sb3Ige1xuXHRcdGNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTQpO1xuXHR9XG5cblx0Ji5oYXMtdGhlbWUtcGFsZXR0ZS01LWNvbG9yIHtcblx0XHRjb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGU1KTtcblx0fVxuXG5cdCYuaGFzLXRoZW1lLXBhbGV0dGUtNi1jb2xvciB7XG5cdFx0Y29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlNik7XG5cdH1cblxuXHQmLmhhcy10aGVtZS1wYWxldHRlLTctY29sb3Ige1xuXHRcdGNvbG9yOiB2YXIoLS1nbG9iYWwtcGFsZXR0ZTcpO1xuXHR9XG5cblx0Ji5oYXMtdGhlbWUtcGFsZXR0ZS04LWNvbG9yIHtcblx0XHRjb2xvcjogdmFyKC0tZ2xvYmFsLXBhbGV0dGU4KTtcblx0fVxuXG5cdCYuaGFzLXRoZW1lLXBhbGV0dGUtOS1jb2xvciB7XG5cdFx0Y29sb3I6IHZhcigtLWdsb2JhbC1wYWxldHRlOSk7XG5cdH1cblxuXHQmLmhhcy10ZXh0LWNvbG9yIHtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyxcblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItbGlnaHQtYmx1ZSk7XG5cdFx0fVxuXHR9XG59XG5cbi8vIFN0eWxlOiBGZWF0dXJlZC5cblxuLndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1mZWF0dXJlZCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblxuXHQ+IC53cC1ibG9jay1idXR0b25fX2xpbmsge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbSkgY2FsYygxMDJweCArIHZhcigtLXNwYWNpbmctbSkpIHZhcigtLXNwYWNpbmctbSkgdmFyKC0tc3BhY2luZy1tKTtcblx0XHRtYXJnaW46IHZhcigtLXNwYWNpbmcteGwpIDA7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbWVkaXVtLW1vYmlsZSk7XG5cdFx0Zm9udC13ZWlnaHQ6IDkwMDtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1kYXJrLWJsdWUpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDEwcHggMCB2YXIoLS1jb2xvci1ncmV5LTIpO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdEBpbmNsdWRlIGZvci1waG9uZS11cCB7XG5cdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2luZy1sKTtcblx0XHRcdHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjaW5nLWwpO1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbWVkaXVtLWRlc2t0b3ApO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1kYXJrLWJsdWUpO1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3ttYXAtZ2V0KCRpbWFnZXMsICdhcnJvdy1yaWdodC13aGl0ZScpfVwiKTtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDIycHggMjJweDtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHdpZHRoOiAxMDJweDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UsIGJhY2tncm91bmQtc2l6ZSAwLjJzIGVhc2U7XG5cdFx0fVxuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1yZWQpO1xuXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXJlZCk7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogMzJweCAzMnB4O1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSwgYmFja2dyb3VuZC1zaXplIDAuMnMgZWFzZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5DT0xVTU5TIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3AtYmxvY2stY29sdW1ucyB7XG5cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkNPVkVSIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3AtYmxvY2stY292ZXIge1xuXG5cdGhlaWdodDogYXV0bztcblxuXHRAZWFjaCAkY29sb3JOYW1lLCAkY29sb3JIZXggaW4gJGNvbG9ycyB7XG5cblx0XHQmLmhhcy0jeyRjb2xvck5hbWV9LWJhY2tncm91bmQtY29sb3Ige1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9ySGV4O1xuXHRcdH1cblx0fVxuXG5cdC53cC1ibG9jay1jb3Zlcl9faW5uZXItY29udGFpbmVyIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXgtd2lkdGg6ICRncmlkLXdpZHRoO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQud3AtYmxvY2stZ3JvdXAge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQmLmFsaWduZnVsbCB7XG5cblx0XHQud3AtYmxvY2stY292ZXJfX2lubmVyLWNvbnRhaW5lciB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6ICRncmlkLWd1dHRlcjtcblx0XHRcdHBhZGRpbmctcmlnaHQ6ICRncmlkLWd1dHRlcjtcblx0XHR9XG5cdH1cbn1cblxuLndwLWJsb2NrLWNvdmVyOm5vdChbY2xhc3MqPVwic2VjdGlvbi0tXCJdKSB7XG5cblx0QGluY2x1ZGUgZGVmYXVsdF9wYWRkaW5nKCk7XG59XG5cbi8vIEFnZW5jeSBVSS5cblxuLndwLWJsb2NrLWNvdmVyLnVpLW1pbi1oZWlnaHQtaGFsZixcbi53cC1ibG9jay1jb3Zlci51aS1taW4taGVpZ2h0LWZ1bGwge1xuXG5cdC53cC1ibG9jay1jb3Zlcl9faW5uZXItY29udGFpbmVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5HQUxMRVJZIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3AtYmxvY2stZ2FsbGVyeSB7XG5cblx0LmJsb2Nrcy1nYWxsZXJ5LWdyaWQge1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdC5ibG9ja3MtZ2FsbGVyeS1ncmlkIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSxcblx0LmJsb2Nrcy1nYWxsZXJ5LWdyaWQgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW0sXG5cdC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSxcblx0LmJsb2Nrcy1nYWxsZXJ5LWl0ZW0ge1xuXG5cdFx0ZmlndXJlIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdG1hcmdpbjogMC41ZW07XG5cblx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5HUk9VUCBCTE9DS1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwLWJsb2NrLWdyb3VwOm5vdChbY2xhc3MqPVwic2VjdGlvbi0tXCJdKSB7XG5cblx0QGluY2x1ZGUgZGVmYXVsdF9wYWRkaW5nKCk7XG59XG5cbi53cC1ibG9jay1ncm91cCB7XG5cblx0LndwLWJsb2NrLWdyb3VwX19pbm5lci1jb250YWluZXIge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1heC13aWR0aDogJGdyaWQtd2lkdGg7XG5cdFx0cGFkZGluZzogMDtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdH1cblxuXHQud3AtYmxvY2stY292ZXIge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQmLmFsaWduZnVsbCB7XG5cblx0XHQud3AtYmxvY2stZ3JvdXBfX2lubmVyLWNvbnRhaW5lciB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6ICRncmlkLWd1dHRlcjtcblx0XHRcdHBhZGRpbmctcmlnaHQ6ICRncmlkLWd1dHRlcjtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cblx0fVxufVxuXG4uc2luZ2xlLWNvbnRlbnQgLndwLWJsb2NrLWdyb3VwIHtcblx0bWFyZ2luLXRvcDogMDtcbn1cblxuLy8gQWdlbmN5IFVJLlxuXG4ud3AtYmxvY2stZ3JvdXAudWktbWluLWhlaWdodC1oYWxmLFxuLndwLWJsb2NrLWdyb3VwLnVpLW1pbi1oZWlnaHQtZnVsbCB7XG5cblx0LndwLWJsb2NrLWdyb3VwX19pbm5lci1jb250YWluZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkhFQURJTkcgQkxPQ0tcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIExpbmsgY29sb3Vycy5cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcblxuXHRAZWFjaCAkY29sb3JOYW1lLCAkY29sb3JIZXggaW4gJGNvbG9ycyB7XG5cblx0XHQmLmhhcy0jeyRjb2xvck5hbWV9LWNvbG9yIGEge1xuXHRcdFx0Y29sb3I6ICRjb2xvckhleDtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vLyBTdHlsZTogU3ViLWhlYWRpbmcuXG5cbi5pcy1zdHlsZS1zdWItaGVhZGluZyxcbi5lbnRyeS1jb250ZW50IC5pcy1zdHlsZS1zdWItaGVhZGluZyB7XG5cblx0QGluY2x1ZGUgaGVhZGluZ19zdWJoZWFkaW5nKCk7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuTUVESUEgJiBURVhUIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3AtYmxvY2stbWVkaWEtdGV4dCB7XG5cblx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG5cdH1cblxuXHQrIC53cC1ibG9jay1tZWRpYS10ZXh0IHtcblx0XHRtYXJnaW4tdG9wOiBzcGFjaW5nKDcpO1xuXG5cdFx0QGluY2x1ZGUgZm9yLXRhYmxldC1wb3J0cmFpdC11cCB7XG5cdFx0XHRtYXJnaW4tdG9wOiBzcGFjaW5nKDkpO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGZvci10YWJsZXQtbGFuZHNjYXBlLXVwIHtcblx0XHRcdG1hcmdpbi10b3A6IHNwYWNpbmcoMTIpO1xuXHRcdH1cblx0fVxuXG5cdC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50IHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAyO1xuXG5cdFx0QGluY2x1ZGUgZm9yLXRhYmxldC1wb3J0cmFpdC11cCB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNpbmctbCk7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjaW5nLXh4bCk7XG5cdFx0fVxuXHR9XG5cblx0LndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXgtd2lkdGg6IDY4MHB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAyO1xuXG5cdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRcdG1heC13aWR0aDogbm9uZTtcblx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5pcy1zdHlsZS1iYWNrZ3JvdW5kIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmctbCk7XG5cblx0XHRAaW5jbHVkZSBmb3ItdGFibGV0LXBvcnRyYWl0LXVwIHtcblx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjaW5nLWwpO1xuXHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2luZy1sKTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAyNSU7XG5cdFx0XHRyaWdodDogJGdyaWQtZ3V0dGVyICogLTE7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRsZWZ0OiAkZ3JpZC1ndXR0ZXIgKiAtMTtcblx0XHRcdHotaW5kZXg6IDA7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmV5LTMpO1xuXG5cdFx0XHRAaW5jbHVkZSBmb3ItdGFibGV0LXBvcnRyYWl0LXVwIHtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0bGVmdDogMjUlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuaGFzLW1lZGlhLW9uLXRoZS1yaWdodC5pcy1zdHlsZS1iYWNrZ3JvdW5kIHtcblxuXHRcdEBpbmNsdWRlIGZvci10YWJsZXQtcG9ydHJhaXQtdXAge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2luZy1sKTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUge1xuXG5cdFx0XHRAaW5jbHVkZSBmb3ItdGFibGV0LXBvcnRyYWl0LXVwIHtcblx0XHRcdFx0cmlnaHQ6IDI1JTtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLmhhcy1iYWNrZ3JvdW5kIHtcblxuXHRcdC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50IHtcblx0XHRcdHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbCk7XG5cblx0XHRcdEBpbmNsdWRlIGZvci10YWJsZXQtcG9ydHJhaXQtdXAge1xuXHRcdFx0XHRwYWRkaW5nOiBzcGFjaW5nKDgpIHZhcigtLXNwYWNpbmcteHhsKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLmhhcy1tZWRpYS1vbi10aGUtcmlnaHQ6bm90KC5oYXMtYmFja2dyb3VuZCkge1xuXG5cdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcblx0XHR9XG5cblx0XHQud3AtYmxvY2stbWVkaWEtdGV4dF9fY29udGVudCB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHRAaW5jbHVkZSBmb3ItdGFibGV0LXBvcnRyYWl0LXVwIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2luZy1sKTtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXh4bCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhIHtcblxuXHRcdFx0QGluY2x1ZGUgZm9yLXRhYmxldC1wb3J0cmFpdC11cCB7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDAgYXV0bztcblx0XHRcdH1cblxuXHRcdH1cblx0fVxuXG5cdCYuaGFzLW1lZGlhLW9uLXRoZS1yaWdodCB7XG5cblx0XHRAaW5jbHVkZSB1cC10by10YWJsZXQtcG9ydHJhaXQge1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDAlO1xuXHRcdH1cblx0fVxuXG5cdCYuaXMtc3RhY2tlZC1vbi1tb2JpbGUge1xuXG5cdFx0LndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhIHtcblxuXHRcdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRcdFx0Z3JpZC1jb2x1bW46IDE7XG5cdFx0XHRcdGdyaWQtcm93OiAxO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50IHtcblxuXHRcdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRcdFx0Z3JpZC1jb2x1bW46IDE7XG5cdFx0XHRcdGdyaWQtcm93OiAyO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQkxPQ0tRVU9URSBCTE9DS1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwLWJsb2NrLXB1bGxxdW90ZSB7XG5cblx0cGFkZGluZzogdmFyKC0tc3BhY2luZy1sKSB2YXIoLS1zcGFjaW5nLXMpO1xuXHRib3JkZXItdG9wOiBzb2xpZCA1cHggdmFyKC0tY29sb3ItYmx1ZSk7XG5cdGJvcmRlci1ib3R0b206IHNvbGlkIDVweCB2YXIoLS1jb2xvci1ibHVlKTtcblxuXHRAaW5jbHVkZSB1cC10by10YWJsZXQtbGFuZHNjYXBlIHtcblx0XHRtYXJnaW46IHZhcigtLXNwYWNpbmctbCkgMDtcblx0fVxuXG5cdCYuYWxpZ25sZWZ0IHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmctcyk7XG5cdH1cblxuXHQmLmFsaWducmlnaHQge1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjaW5nLXMpO1xuXHR9XG5cblx0Ji5hbGlnbmxlZnQsXG5cdCYuYWxpZ25yaWdodCB7XG5cdFx0bWF4LXdpZHRoOiAzODBweDtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLXMpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctcyk7XG5cblx0XHRAaW5jbHVkZSB1cC10by10YWJsZXQtbGFuZHNjYXBlIHtcblx0XHRcdG1heC13aWR0aDogbm9uZTtcblx0XHRcdG1hcmdpbjogdmFyKC0tc3BhY2luZy1sKSAwO1xuXHRcdH1cblx0fVxuXG5cdGJsb2NrcXVvdGUge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRmb250LWZhbWlseTogdmFyKC0tZ2xvYmFsLWhlYWRpbmctZm9udC1mYW1pbHkpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1zKTtcblx0XHR9XG5cblx0XHRjaXRlIHtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1bnNldDtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1ncmV5LTEpO1xuXHRcdH1cblx0fVxuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuU0VQQVJBVE9SIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3AtYmxvY2stc2VwYXJhdG9yLmhhcy1iYWNrZ3JvdW5kOm5vdCguaXMtc3R5bGUtZG90cyk6bm90KC5pcy1zdHlsZS13aWRlKSB7XG5cdGhlaWdodDogNHB4O1xuXHRtYXgtd2lkdGg6IDcwcHg7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVEFCTEUgQkxPQ0tcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi53cC1ibG9jay10YWJsZSB7XG5cblx0dGhlYWQge1xuXHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cblx0dGgsXG5cdHRkIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXJlZCkgIWltcG9ydGFudDtcblx0fVxuXG5cdHRoIHtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXJlZCk7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkFHRU5DWSBVSSAtIENPTlRFTlQgR1JJRCBCTE9DS1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwLWJsb2NrLWFnZW5jeS11aS1jb250ZW50LWdyaWQge1xuXG5cdC5jb250ZW50LWdyaWQge1xuXG5cdFx0LS1ndXR0ZXI6IHZhcigtLXNwYWNpbmctbCk7XG5cblx0XHRAaW5jbHVkZSB1cC10by10YWJsZXQtcG9ydHJhaXQge1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBmb3ItcGhvbmUtb25seSB7XG5cdFx0XHQtLWd1dHRlcjogdmFyKC0tc3BhY2luZy1tKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5BR0VOQ1kgVUkgLSBUSUxFIEJMT0NLXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3AtYmxvY2stYWdlbmN5LXVpLXRpbGUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMCB2YXIoLS1zcGFjaW5nLW0pIHZhcigtLXNwYWNpbmctbSk7XG5cblx0YTpub3QoLndwLWJsb2NrLWJ1dHRvbl9fbGluaykge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0Jjpob3ZlciB7XG5cblx0XHRcdGgyLFxuXHRcdFx0aDMsXG5cdFx0XHQudGlsZS0tdGl0bGUge1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItbGlnaHQtYmx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LndwLWJsb2NrLWltYWdlIHtcblx0XHRtYXJnaW46IDAgY2FsYyh2YXIoLS1zcGFjaW5nLW0pICogLTEpIDAgIWltcG9ydGFudDtcblx0fVxuXG5cdC53cC1ibG9jay1rYWRlbmNlLWljb24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0d2lkdGg6IGNhbGMoMTAwJSAtICh2YXIoLS1zcGFjaW5nLW0pICogMikpO1xuXG5cdFx0KyBoMixcblx0XHQrIGgzLFxuXHRcdCsgLnRpbGUtLXRpdGxlIHtcblx0XHRcdG1hcmdpbi10b3A6IHNwYWNpbmcoNyk7XG5cdFx0fVxuXHR9XG5cblx0aDIsXG5cdGgzLFxuXHQudGlsZS0tdGl0bGUge1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmctbSk7XG5cdH1cblxuXHRwOmxhc3Qtb2YtdHlwZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRFU1RJTU9OSUFMIFNMSURFUiBCTE9DS1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJsb2NrLS10ZXN0aW1vbmlhbC1zbGlkZXIge1xuXHRtYXJnaW4tdG9wOiBzcGFjaW5nKDgpICFpbXBvcnRhbnQ7XG5cblx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLXhsKSAhaW1wb3J0YW50O1xuXHR9XG5cblx0LmdsaWRlX19zbGlkZXMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cbn1cblxuLmJsb2NrLS10ZXN0aW1vbmlhbC1zbGlkZXJfX3NsaWRlIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG5cblx0LndwLWJsb2NrLXF1b3RlIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRtYXJnaW46IDAgIWltcG9ydGFudDtcblxuXHRcdEBpbmNsdWRlIHVwLXRvLXRhYmxldC1wb3J0cmFpdCB7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdH1cblx0fVxuXG5cdC5ibG9jay0tdGVzdGltb25pYWwtc2xpZGVyX19pbWcge1xuXHRcdG9iamVjdC1maXQ6IGNvdmVyO1xuXHRcdGhlaWdodDogMTAwcHg7XG5cdFx0ZmxleC1iYXNpczogMTAwcHg7XG5cdFx0bWF4LXdpZHRoOiAxMDBweDtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmctbCk7XG5cblx0XHRAaW5jbHVkZSB1cC10by10YWJsZXQtcG9ydHJhaXQge1xuXHRcdFx0bWFyZ2luOiAwIGF1dG8gdmFyKC0tc3BhY2luZy1tKTtcblx0XHR9XG5cdH1cblxuXHQuYmxvY2stLXRlc3RpbW9uaWFsLXNsaWRlcl9fY29udGVudCB7XG5cdFx0ZmxleDogMTtcblxuXHRcdEBpbmNsdWRlIHVwLXRvLXRhYmxldC1wb3J0cmFpdCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cdH1cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkdVVEVOQkVSRyBCTE9DSyBQQVRURVJOU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGltcG9ydCBcInBhdHRlcm5zL2ZlYXR1cmVkLWNvbHVtbnNcIjtcbkBpbXBvcnQgXCJwYXR0ZXJucy9maWx0ZXItZ3JpZFwiO1xuQGltcG9ydCBcInBhdHRlcm5zL2Z1bGwtY3RhXCI7XG5AaW1wb3J0IFwicGF0dGVybnMvZ2FsbGVyeS10ZXh0LXJvd3NcIjtcbkBpbXBvcnQgXCJwYXR0ZXJucy9wYWdlLWhlcm9cIjtcbkBpbXBvcnQgXCJwYXR0ZXJucy9wb3N0LWdhbGxlcnktZ3JpZFwiO1xuQGltcG9ydCBcInBhdHRlcm5zL3N0YXQtY29sdW1uc1wiO1xuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkZFQVRVUkVEIENPTFVNTlMgQkxPQ0sgUEFUVEVSTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNpbmdsZS1jb250ZW50IC5zZWN0aW9uLS1mZWF0dXJlZC1jb2x1bW5zLndwLWJsb2NrLWNvbHVtbnMge1xuXG5cdG1hcmdpbjogMCAwIChzcGFjaW5nKDcpICogLTEpIDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogNTtcblxuXHRAaW5jbHVkZSB1cC10by10YWJsZXQtcG9ydHJhaXQge1xuXHRcdG1hcmdpbi1ib3R0b206IChzcGFjaW5nKDUpICogLTEpO1xuXHR9XG5cblx0LndwLWJsb2NrLWNvbHVtbiB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteGwpIHZhcigtLXNwYWNpbmcteHhsKTtcblxuXHRcdEBpbmNsdWRlIHVwLXRvLXRhYmxldC1wb3J0cmFpdCB7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLWwpO1xuXHRcdH1cblxuXHRcdCY6bnRoLW9mLXR5cGUoMSkge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcmVkKTtcblx0XHR9XG5cblx0XHQmOm50aC1vZi10eXBlKDIpIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyZXktMyk7XG5cdFx0fVxuXG5cdFx0JjpudGgtb2YtdHlwZSgzKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlKTtcblx0XHR9XG5cblx0XHQmOm5vdCg6b25seS1jaGlsZCkge1xuXG5cdFx0XHRAbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIGFuZCAobWF4LXdpZHRoOiA3ODFweCkge1xuXHRcdFx0XHRmbGV4LWdyb3c6IDE7XG5cblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRcdFx0ZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuXHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0KyBkaXZbY2xhc3MqPVwic2VjdGlvbi0tXCJdIHtcblxuXHRcdEBpbmNsdWRlIHBhZGRpbmdfdG9wX207XG5cdH1cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkZJTFRFUiBHUklEIEJMT0NLIFBBVFRFUk5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zZWN0aW9uLS1maWx0ZXItZ3JpZC53cC1ibG9jay1ncm91cCB7XG5cblx0QGluY2x1ZGUgZGVmYXVsdF9wYWRkaW5nO1xuXG5cdC53cC1ibG9jay1jb2x1bW5zIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0fVxuXG5cdC53cC1ibG9jay1jb2x1bW4ge1xuXG5cdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LWxhbmRzY2FwZSB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0fVxuXG5cdFx0Jjpub3QoOmZpcnN0LWNoaWxkKSB7XG5cblx0XHRcdEBpbmNsdWRlIHVwLXRvLXRhYmxldC1sYW5kc2NhcGUge1xuXHRcdFx0XHRtYXJnaW46IDJlbSAwIDAgMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkZVTEwgQ1RBIEJMT0NLIFBBVFRFUk5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zZWN0aW9uLS1mdWxsLWN0YS53cC1ibG9jay1jb3ZlciB7XG5cdG1hcmdpbi10b3A6IDA7XG5cblx0QGluY2x1ZGUgZGVmYXVsdF9wYWRkaW5nO1xuXG5cdC53cC1ibG9jay1jb3Zlcl9faW5uZXItY29udGFpbmVyID4gKiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiA3NjBweDtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdH1cblxuXHQud3AtYmxvY2sta2FkZW5jZS1hZHZhbmNlZGJ0biB7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14eGwpO1xuXHR9XG5cblx0LndwLWJsb2NrLWJ1dHRvbnMge1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmcteGwpO1xuXG5cdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LXBvcnRyYWl0IHtcblx0XHRcdG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmctcyk7XG5cdFx0fVxuXHR9XG5cbn1cblxuLy8gVE9ETzogUmVtb3ZlIHRoaXM/XG5cbi5zZWN0aW9uLS1mdWxsLWN0YS53cC1ibG9jay1ncm91cCB7XG5cblx0bWFyZ2luLXRvcDogMDtcblxuXHQud3AtYmxvY2stY29sdW1ucyB7XG5cdFx0bWFyZ2luOiB2YXIoLS1zcGFjaW5nLW0pIDA7XG5cdH1cblxuXHQud3AtYmxvY2stZ3JvdXAge1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQud3AtYmxvY2stZ3JvdXBfX2lubmVyLWNvbnRhaW5lciB7XG5cdFx0XHRwYWRkaW5nOiBzcGFjaW5nKDEwKSBzcGFjaW5nKDgpO1xuXG5cdFx0XHRAaW5jbHVkZSB1cC10by10YWJsZXQtbGFuZHNjYXBlIHtcblx0XHRcdFx0cGFkZGluZzogc3BhY2luZyg4KSBzcGFjaW5nKDYpO1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBmb3ItcGhvbmUtb25seSB7XG5cdFx0XHRcdHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteGwpIHZhcigtLXNwYWNpbmctbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5HQUxMRVJZICYgVEVYVCBST1dTIEJMT0NLIFBBVFRFUk5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zZWN0aW9uLS1nYWxsZXJ5LXRleHQtcm93LndwLWJsb2NrLWdyb3VwIHtcblxuXHRtYXJnaW46IDA7XG5cdGZsZXgtd3JhcDogd3JhcDtcblxuXHRAaW5jbHVkZSBkZWZhdWx0X3BhZGRpbmc7XG5cblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzgycHgpIHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXG5cdC53cC1ibG9jay1jb2x1bW5zIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXG5cdFx0KyAud3AtYmxvY2stY29sdW1ucyB7XG5cdFx0XHRtYXJnaW4tdG9wOiBzcGFjaW5nKDkpO1xuXG5cdFx0XHRAaW5jbHVkZSBmb3ItdGFibGV0LWxhbmRzY2FwZS11cCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IHNwYWNpbmcoMTIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC53cC1ibG9jay1jb2x1bW4ge1xuXG5cdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzgxcHgpIHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHQvLyBDb250ZW50IGNvbHVtbiBmaXJzdC5cblxuXHQud3AtYmxvY2stY29sdW1uOmZpcnN0LW9mLXR5cGUuc2VjdGlvbi0tZ2FsbGVyeS10ZXh0LXJvd19fY29udGVudCB7XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzgycHgpIHtcblx0XHRcdG1hcmdpbi1yaWdodDogc3BhY2luZyg2KTtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBmb3ItdGFibGV0LWxhbmRzY2FwZS11cCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHNwYWNpbmcoMTMpO1xuXHRcdH1cblx0fVxuXG5cdC8vIENvbnRlbnQgY29sdW1uIHNlY29uZC5cblxuXHQud3AtYmxvY2stY29sdW1uOmxhc3Qtb2YtdHlwZS5zZWN0aW9uLS1nYWxsZXJ5LXRleHQtcm93X19jb250ZW50IHtcblx0XHRtYXJnaW46IDA7XG5cblx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3ODJweCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHNwYWNpbmcoNik7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHNwYWNpbmcoMTMpO1xuXHRcdH1cblx0fVxuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUEFHRSBIRVJPIEJMT0NLIFBBVFRFUk5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zZWN0aW9uLS1wYWdlLWhlcm8ud3AtYmxvY2stY292ZXIge1xuXG5cdHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteGwpIDA7XG5cdGhlaWdodDogYXV0bztcblx0bWluLWhlaWdodDogNTc1cHg7XG5cdG1heC1oZWlnaHQ6IG5vbmU7XG5cblx0QGluY2x1ZGUgZm9yLXRhYmxldC1wb3J0cmFpdC11cCB7XG5cdFx0aGVpZ2h0OiA3NXZoO1xuXHRcdG1heC1oZWlnaHQ6IDc0MHB4O1xuXHR9XG5cblx0QGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuXHRcdG1heC1oZWlnaHQ6IDkwMHB4O1xuXHR9XG5cblx0aDEge1xuXHRcdG1heC13aWR0aDogNzYwcHg7XG5cdH1cblxuXHRwIHtcblx0XHRtYXgtd2lkdGg6IDYwMHB4O1xuXHR9XG5cblx0LmlzLXN0eWxlLXN1Yi1oZWFkaW5nIHtcblx0XHRib3JkZXItbGVmdDogc29saWQgM3B4IHZhcigtLWNvbG9yLXJlZCk7XG5cdFx0cGFkZGluZy1sZWZ0OiAxMnB4O1xuXHR9XG5cbn1cblxuLy8gVE9ETzogUmVtb3ZlIHRoaXM/XG5cbi5zZWN0aW9uLS1wYWdlLWhlcm8ud3AtYmxvY2stZ3JvdXAge1xuXG5cdHBhZGRpbmc6IDA7XG5cblx0LndwLWJsb2NrLWdyb3VwLFxuXHQud3AtYmxvY2stY292ZXIge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQud3AtYmxvY2stYWdlbmN5LXVpLWNvbnRlbnQtZ3JpZCB7XG5cdFx0bWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zcGFjaW5nLXhsKSAqIC0xKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogMztcblx0fVxuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUE9TVCBHQUxMRVJZIEdSSUQgQkxPQ0sgUEFUVEVSTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNlY3Rpb24tLXBvc3QtZ2FsbGVyeS1ncmlkLndwLWJsb2NrLWdyb3VwIHtcblxuXHRkaXYge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblxuXHRcdCZbZGF0YS10eXBlPVwiYWdlbmN5LXVpL3RpbGVcIl0ge1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblx0fVxuXG5cdC5zZWN0aW9uLS1wb3N0LWdhbGxlcnktZ3JpZF9fcG9zdHMge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0LndwLWJsb2NrLWNvbHVtbiB7XG5cdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdEBpbmNsdWRlIHVwLXRvLXRhYmxldC1sYW5kc2NhcGUge1xuXHRcdFx0XHRmbGV4LWJhc2lzOiAzMy4zMzMlO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDMzLjMzMyU7XG5cdFx0XHR9XG5cblx0XHRcdEBpbmNsdWRlIGZvci1waG9uZS1vbmx5IHtcblx0XHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC53cC1ibG9jay1jb2x1bW5zOm5vdCguYWxpZ25mdWxsKSB7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZy1sKTtcblxuXHRcdC53cC1ibG9jay1jb2x1bW4gKyAud3AtYmxvY2stY29sdW1uIHtcblxuXHRcdFx0QGluY2x1ZGUgZm9yLXBob25lLW9ubHkge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLWwpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC53cC1ibG9jay1ncm91cCB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG5cdC53cC1ibG9jay1hZ2VuY3ktdWktdGlsZSB7XG5cdFx0Ly8gYm9yZGVyLXRvcDogc29saWQgNnB4IHZhcigtLWNvbG9yLWJsdWUpO1xuXHRcdC8vIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCB2YXIoLS1jb2xvci10cnVlLWJsYWNrKSA1JSwgdHJhbnNwYXJlbnQpO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDEwMCU7XG5cdFx0dHJhbnNpdGlvbjogdG9wIDAuM3MgZWFzZTtcblxuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tc3BhY2luZy1sKTtcblxuXHRcdFx0QGluY2x1ZGUgdXAtdG8tdGFibGV0LWxhbmRzY2FwZSB7XG5cdFx0XHRcdHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YSxcblx0XHRhOmhvdmVyIC50aWxlLS10aXRsZSxcblx0XHQudGlsZS0tdGl0bGUge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHR9XG5cdH1cblxuXHQud3AtYmxvY2stY292ZXIge1xuXHRcdGFsaWduLWl0ZW1zOiB1bnNldDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0QGluY2x1ZGUgZm9yLXBob25lLW9ubHkge1xuXHRcdFx0bWluLWhlaWdodDogMjQwcHggIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblxuXHRcdFx0LndwLWJsb2NrLWFnZW5jeS11aS10aWxlIHtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiB0b3AgMC4ycyBlYXNlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuU1RBVCBDT0xVTU5TIEJMT0NLIFBBVFRFUk5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zaW5nbGUtY29udGVudCAuc2VjdGlvbi0tc3RhdC1jb2x1bW5zLndwLWJsb2NrLWdyb3VwIHtcblx0bWFyZ2luLXRvcDogMDtcblxuXHQud3AtYmxvY2stY29sdW1ucyB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblxuXHRcdEBpbmNsdWRlIGRlZmF1bHRfcGFkZGluZztcblx0fVxuXG5cdC53cC1ibG9jay1jb2x1bW4ge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwIHZhcigtLXNwYWNpbmctbCk7XG5cblx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3ODFweCkge1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1zcGFjaW5nLXMpIDA7XG5cdFx0fVxuXG5cdFx0KyAud3AtYmxvY2stY29sdW1uIHtcblxuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzgycHgpIHtcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6IHNvbGlkIDFweCB2YXIoLS1jb2xvci13aGl0ZS01MCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwLWJsb2NrLWltYWdlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbSk7XG5cblx0XHRcdEBpbmNsdWRlIHVwLXRvLXRhYmxldC1wb3J0cmFpdCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmcteHMpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGgzLFxuXHRcdGg0LFxuXHRcdGg1IHtcblx0XHRcdGZvbnQtc2l6ZTogNDRweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG5cblx0LndwLWJsb2NrLW1lZGlhLXRleHQge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogKHNwYWNpbmcoOSkgKiAtMSk7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDU7XG5cdH1cblxuXHQrIGRpdltjbGFzcyo9XCJzZWN0aW9uLS1cIl0ge1xuXG5cdFx0QGluY2x1ZGUgcGFkZGluZ190b3BfeGw7XG5cdH1cblxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkFDQ0VTU0lCSUxJVFkgVVRJTElUSUVTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogWzFdIE1hbnkgc2NyZWVuIHJlYWRlciBhbmQgYnJvd3NlciBjb21iaW5hdGlvbnMgYW5ub3VuY2UgYnJva2VuIHdvcmRzXG4gKiAgICAgYXMgdGhleSB3b3VsZCBhcHBlYXIgdmlzdWFsbHkuXG4gKiBbMl0gQWJvdmUgV1AgdG9vbGJhci5cbiAqL1xuXG4vKiBUZXh0IG1lYW50IG9ubHkgZm9yIHNjcmVlbiByZWFkZXJzLiAqL1xuLnUtc2NyZWVuLXJlYWRlci10ZXh0IHtcblx0Ym9yZGVyOiAwO1xuXHRjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG5cdGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcblx0aGVpZ2h0OiAxcHg7XG5cdG1hcmdpbjogLTFweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxcHg7XG5cdHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7ICAvKiBbMV0gKi9cbn1cblxuLnUtc2NyZWVuLXJlYWRlci10ZXh0OmZvY3VzIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcblx0Y2xpcDogYXV0byAhaW1wb3J0YW50O1xuXHRjbGlwLXBhdGg6IG5vbmU7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGZvbnQtc2l6ZTogMC44NzVyZW07XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1wcmltYXJ5LWJvbGQpO1xuXHRoZWlnaHQ6IGF1dG87XG5cdGxlZnQ6IDVweDtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0cGFkZGluZzogMTVweCAyM3B4IDE0cHg7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dG9wOiA1cHg7XG5cdHdpZHRoOiBhdXRvO1xuXHR6LWluZGV4OiAxMDAwMDA7ICAvKiBbMl0gKi9cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5DT0xPUlMgVVRJTElUSUVTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AZWFjaCAkY29sb3JOYW1lLCAkY29sb3JIZXggaW4gJGNvbG9ycyB7XG5cblx0Lmhhcy1iYWNrZ3JvdW5kIHtcblxuXHRcdCYuaGFzLSN7JGNvbG9yTmFtZX0tYmFja2dyb3VuZC1jb2xvciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JIZXg7XG5cdFx0fVxuXHR9XG5cblx0Lmhhcy10ZXh0LWNvbG9yLFxuXHQuaGFzLWlubGluZS1jb2xvciB7XG5cblx0XHQmLmhhcy0jeyRjb2xvck5hbWV9LWNvbG9yIHtcblx0XHRcdGNvbG9yOiAkY29sb3JIZXg7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVFlQT0dSQVBIWSBVVElMSVRJRVNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNiB7XG5cblx0Lmhhcy1oZWFkaW5nLSN7JGl9LWZvbnQtc2l6ZSB7XG5cblx0XHQvLyBAaW5jbHVkZSBmb250X3Byb3BfaGVhZGluZygkaSk7XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5TSEFNRVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBUaGUgaWRlYSBvZiBzaGFtZS5jc3MgaXMgdGhhdCB5b3UgaGF2ZSBhIHRvdGFsbHkgbmV3IHN0eWxlc2hlZXQgcmVzZXJ2ZWRcbiAqIGp1c3QgZm9yIHlvdXIgaGFja3kgY29kZS4gVGhlIGNvZGUgeW91IGhhdmUgdG8gd3JpdGUgdG8gZ2V0IHRoZSByZWxlYXNlXG4gKiBvdXQgb24gdGltZSwgYnV0IHRoZSBjb2RlIHRoYXQgbWFrZXMgeW91IGFzaGFtZWQuXG4gKlxuICogQHNlZSBodHRwczovL2Nzc3dpemFyZHJ5LmNvbS8yMDEzLzA0L3NoYW1lLWNzcy9cbiAqL1xuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRFTVBPUkFSWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBUaGlzIGZpbGUgc2hvdWxkIGFsd2F5cyBiZSBlbXB0eS5cbiAqIEl0IGNvdWxkIGJlIGEgZ29vZCBwbGFjZSB0byBwdXQgeW91ciBzdHlsZXMgaW4gYXMgeW91IGRldmVsb3AgbmV3IGZlYXR1cmVzLlxuICogT25jZSBkb25lLCB5b3Ugc2hvdWxkIG1vdmUgeW91ciBzdHlsZXMgaW4gdGhlIGFwcHJvcHJpYXRlIGZvbGRlci5cbiAqL1xuIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFBQTtBQ0FBOztBQUFBO0FBdUJBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDUEE7QUFDQTtBQ3BCQTs7QUFBQTtBQ0FBOzs7O0FBQUE7QUNBQTs7QUFBQTtBQXVCQTtBQUNBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUhjQTtBQUNBO0FJMUNBOztBQUFBO0FBSUE7QUFDQTtBQUNBO0FKMkNBO0FBQ0E7QUs5Q0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FMZ0JBO0FBQ0E7QU1yRkE7O0FBQUE7QUFJQTs7Ozs7Ozs7Ozs7QUFBQTtBQ0pBOzs7Ozs7Ozs7O0FBQUE7QUNBQTs7QUFBQTtBQ0FBOztBQUFBO0FBSUE7O0FBQUE7QUNKQTs7QUFBQTtBQ0FBOztBQUFBO0FDQUE7O0FBQUE7QUFJQTs7QUFBQTtBQVNBOztBQUFBO0FDYkE7O0FBQUE7QUNBQTs7QUFBQTtBQUlBOztBQUFBO0FBUUE7O0FBQUE7QUFTQTs7O0FBQUE7QUFVQTs7QUFBQTtBQVVBOztBQUFBO0FBV0E7O0FBQUE7QUNwREE7O0FBQUE7QUFJQTs7QUFBQTtBQ0pBOztBQUFBO0FBSUE7OztBQUFBO0FDR0E7O0FBQUE7QUNQQTs7QUFBQTtBQUlBO0FBQ0E7QWxCaUxBO0FBQ0E7QWtCL0tBO0FBR0E7QWxCK0tBO0FBQ0E7QW1CM0xBOztBQUFBO0FBSUE7OztBQUFBO0FBS0E7QUFDQTtBbkIyTEE7QUFDQTtBbUJ2TEE7QUFHQTtBbkJ1TEE7QUFDQTtBb0IxTUE7QUFFQTtBQUFBO0FBR0E7OztBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBcEIyTUE7QUFDQTtBb0J6TUE7QUFBQTtBQUdBOztBQUFBO0FBSUE7QUFDQTtBcEJ5TUE7QUFDQTtBb0J2TUE7O0FBQUE7QUFJQTtBQUNBO0FwQndNQTtBQUNBO0FvQnRNQTs7O0FBQUE7QUFLQTtBQUVBO0FwQnNNQTtBQUNBO0FvQnBNQTtBQUFBO0FBR0E7OztBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QXBCdU1BO0FBQ0E7QW9Cck1BOzs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QXBCd01BO0FBQ0E7QW9CdE1BO0FBQUE7QUFHQTs7QUFBQTtBQUlBO0FBQ0E7QXBCc01BO0FBQ0E7QW9CcE1BOzs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FwQndNQTtBQUNBO0FvQnRNQTs7QUFBQTtBQUlBOztBQUVBO0FwQnVNQTtBQUNBO0FvQnJNQTs7O0FBQUE7QUFLQTs7O0FBR0E7QUFBQTtBQUNBO0FBQUE7QXBCd01BO0FBQ0E7QW9CdE1BOztBQUFBO0FBSUE7QUFDQTtBcEJ1TUE7QUFDQTtBb0JyTUE7OztBQUFBO0FBS0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QXBCc01BO0FBQ0E7QW9CcE1BO0FBQ0E7QXBCc01BO0FBQ0E7QW9CcE1BO0FBQ0E7QXBCc01BO0FBQ0E7QW9CcE1BO0FBQUE7QUFHQTs7QUFBQTtBQUlBO0FBQ0E7QXBCb01BO0FBQ0E7QW9CbE1BO0FBQUE7QUFHQTs7O0FBQUE7QUFLQTs7Ozs7QUFLQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FwQnNNQTtBQUNBO0FvQnBNQTs7O0FBQUE7QUFLQTs7QUFFQTtBQUFBO0FwQnNNQTtBQUNBO0FvQnBNQTs7O0FBQUE7QUFLQTs7QUFFQTtBQUFBO0FwQnNNQTtBQUNBO0FvQnBNQTs7QUFBQTtBQUlBOzs7O0FBSUE7QXBCcU1BO0FBQ0E7QW9Cbk1BOztBQUFBO0FBSUE7Ozs7QUFJQTtBQUNBO0FwQm9NQTtBQUNBO0FvQmxNQTs7QUFBQTtBQUlBOzs7O0FBSUE7QXBCbU1BO0FBQ0E7QW9Cak1BOztBQUFBO0FBSUE7QUFDQTtBcEJrTUE7QUFDQTtBb0JoTUE7Ozs7O0FBQUE7QUFPQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBcEJ1TUE7QUFDQTtBb0JyTUE7O0FBQUE7QUFJQTtBQUNBO0FwQnNNQTtBQUNBO0FvQnBNQTs7QUFBQTtBQUlBO0FBQ0E7QXBCcU1BO0FBQ0E7QW9Cbk1BOzs7QUFBQTtBQUtBOztBQUVBO0FBQUE7QUFDQTtBQUFBO0FwQnNNQTtBQUNBO0FvQnBNQTs7QUFBQTtBQUlBOztBQUVBO0FwQnFNQTtBQUNBO0FvQm5NQTs7O0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FwQnNNQTtBQUNBO0FvQnBNQTs7QUFBQTtBQUlBO0FBQ0E7QXBCcU1BO0FBQ0E7QW9Cbk1BOzs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QXBCc01BO0FBQ0E7QW9CcE1BO0FBQUE7QUFHQTs7QUFBQTtBQUlBO0FBQ0E7QXBCb01BO0FBQ0E7QW9CbE1BOztBQUFBO0FBSUE7QUFDQTtBcEJtTUE7QUFDQTtBb0JqTUE7QUFBQTtBQUdBOztBQUFBO0FBSUE7QUFDQTtBcEJpTUE7QUFDQTtBb0IvTEE7O0FBQUE7QUFJQTtBQUNBO0FwQmdNQTtBQUNBO0FpQjVnQkE7OztBQUFBO0FJaEJBOztBQUFBO0FkK0RBO0FjM0RBOztBQUlBO0FBQ0E7QXJCZ2lCQTtBQUNBO0FBQ0E7QXFCNWhCQTtBWExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBVm9pQkE7QUFDQTtBc0JwakJBOztBQUFBO0FBT0E7Ozs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRCcWpCQTtBc0JuakJBOzs7Ozs7QUFDQTtBdEIwakJBO0FzQnZqQkE7Ozs7OztBQUNBO0FBQ0E7QXRCOGpCQTtBc0IxakJBOztBQUNBO0FBQ0E7QXRCNmpCQTtBc0IxakJBOzs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRCOGpCQTtBc0I1akJBOzs7Ozs7Ozs7Ozs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRCMGtCQTtBc0J2a0JBOzs7O0FBQ0E7QXRCNGtCQTtBc0J6a0JBOzs7O0FBQ0E7QXRCOGtCQTtBc0I1a0JBOzs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0QmlsQkE7QUFDQTtBdUJ4cEJBOztBQUFBO0FBUUE7QVBHQTtBaEJtcEJBO0FPM25CQTtBZ0IzQkE7QVBNQTtBaEJvcEJBO0FBQ0E7QXVCM3BCQTtBUEdBO0FoQjJwQkE7QU9ub0JBO0FnQjNCQTtBUE1BO0FoQjRwQkE7QUFDQTtBdUJucUJBO0FQR0E7QWhCbXFCQTtBTzNvQkE7QWdCM0JBO0FQTUE7QWhCb3FCQTtBQUNBO0F1QjNxQkE7QVBHQTtBaEIycUJBO0FPbnBCQTtBZ0IzQkE7QVBNQTtBaEI0cUJBO0FBQ0E7QXVCbnJCQTtBUEdBO0FoQm1yQkE7QU8zcEJBO0FnQjNCQTtBUE1BO0FoQm9yQkE7QUFDQTtBdUIzckJBO0FQR0E7QWhCMnJCQTtBT25xQkE7QWdCM0JBO0FQTUE7QWhCNHJCQTtBQUNBO0FBQ0E7QXVCcHJCQTtBQUNBO0FBQ0E7QXZCc3JCQTtBdUJqckJBO0FBQ0E7QUFDQTtBdkJtckJBO0FPdHNCQTtBZ0JpQkE7QUFLQTtBQUNBO0F2Qm9yQkE7QUFDQTtBQUNBO0F1Qm5zQkE7QUFDQTtBQUNBO0F2QnFzQkE7QXVCaHNCQTtBQUNBO0FBQ0E7QXZCa3NCQTtBT3J0QkE7QWdCaUJBO0FBS0E7QUFDQTtBdkJtc0JBO0FBQ0E7QUFDQTtBdUJsdEJBO0FBQ0E7QUFDQTtBdkJvdEJBO0F1Qi9zQkE7QUFDQTtBQUNBO0F2Qml0QkE7QU9wdUJBO0FnQmlCQTtBQUtBO0FBQ0E7QXZCa3RCQTtBQUNBO0FBQ0E7QXVCanVCQTtBQUNBO0FBQ0E7QXZCbXVCQTtBdUI5dEJBO0FBQ0E7QUFDQTtBdkJndUJBO0FPbnZCQTtBZ0JpQkE7QUFLQTtBQUNBO0F2Qml1QkE7QUFDQTtBQUNBO0F1Qmh2QkE7QUFDQTtBQUNBO0F2Qmt2QkE7QXVCN3VCQTtBQUNBO0FBQ0E7QXZCK3VCQTtBT2x3QkE7QWdCaUJBO0FBS0E7QUFDQTtBdkJndkJBO0FBQ0E7QUFDQTtBdUIvdkJBO0FBQ0E7QUFDQTtBdkJpd0JBO0F1QjV2QkE7QUFDQTtBQUNBO0F2Qjh2QkE7QU9qeEJBO0FnQmlCQTtBQUtBO0FBQ0E7QXZCK3ZCQTtBQUNBO0FBQ0E7QXdCdHlCQTs7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0F4QnV5QkE7QUFDQTtBeUIveUJBOztBQUFBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekI2eUJBO0FBQ0E7QXlCdHlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpCd3lCQTtBeUJseUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpCb3lCQTtBQUNBO0F5QjV4QkE7QUFDQTtBQUNBO0FBQ0E7QXpCOHhCQTtBeUJ4eEJBO0FBQ0E7QUFDQTtBekIweEJBO0FBQ0E7QXlCbHhCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpCb3hCQTtBQUNBO0EwQi8xQkE7O0FBQUE7QW5CY0E7QW1CUkE7O0FBSUE7QTFCNjFCQTtBQUNBO0FBQ0E7QTJCejJCQTs7QUFBQTtBQUlBO0FBQ0E7QTNCMDJCQTtBTzUwQkE7QW9CL0JBO0FBSUE7QTNCMjJCQTtBQUNBO0EyQnoyQkE7QUFDQTtBQUNBO0EzQjIyQkE7QU9yMUJBO0FvQnhCQTtBQUtBO0EzQjQyQkE7QUFDQTtBMkJ6MkJBO0FBQ0E7QUFDQTtBM0IyMkJBO0FPOTFCQTtBb0JmQTtBQUtBO0EzQjQyQkE7QUFDQTtBMkJ6MkJBO0FBQ0E7QUFDQTtBQUNBO0EzQjIyQkE7QU94MkJBO0FvQk5BO0FBTUE7QUFDQTtBM0I0MkJBO0FBQ0E7QTJCejJCQTtBQUNBO0FBQ0E7QUFDQTtBM0IyMkJBO0FPbjNCQTtBb0JLQTtBQU1BO0FBQ0E7QTNCNDJCQTtBQUNBO0EyQnoyQkE7QUFDQTtBM0IyMkJBO0EyQngyQkE7QUFDQTtBM0IwMkJBO0FBQ0E7QWlCdDRCQTs7O0FBQUE7QVc3QkE7O0FBQUE7QUFJQTs7QUFFQTtBQUNBO0FBQ0E7QTVCdzZCQTtBQUNBO0E0Qmw2QkE7QUFDQTtBNUJvNkJBO0FBQ0E7QTRCaDZCQTtBQUNBO0FBQ0E7QTVCazZCQTtBNEJoNkJBO0FBQ0E7QUFDQTtBNUJrNkJBO0E0Qi81QkE7QUFDQTtBNUJpNkJBO0FPcDZCQTtBcUJFQTtBQUlBO0E1Qms2QkE7QUFDQTtBNEIvNUJBO0FBQ0E7QTVCaTZCQTtBNEI5NUJBO0FBQ0E7QTVCZzZCQTtBQUNBO0E2QjU4QkE7O0FBQUE7QUFRQTtBQUNBO0FBQ0E7QTdCeThCQTtBNkJ0OEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdCdzhCQTtBNkJ0OEJBO0FBR0E7QUFDQTtBN0JzOEJBO0E2Qm44QkE7QUFDQTtBQUNBO0E3QnE4QkE7QUFDQTtBOEJsK0JBOztBQUFBO0FBTUE7QUFDQTtBOUJpK0JBO0E4Qjc5QkE7O0FBRUE7QUFDQTtBOUIrOUJBO0E4QjU5QkE7QUFDQTtBOUI4OUJBO0E4QjM5QkE7QUFDQTtBOUI2OUJBO0E4QnQ5QkE7QUFDQTtBOUJ3OUJBO0E4Qjc4QkE7O0FBRUE7QTlCKzhCQTtBOEI1OEJBO0FBQ0E7QTlCODhCQTtBOEIzOEJBO0FBQ0E7QTlCNjhCQTtBQUNBO0ErQmpnQ0E7O0FBQUE7QUFJQTtBckJDQTtBQUNBO0FWa2dDQTtBQUNBO0ErQmhnQ0E7QXJCd0NBO0FWMjlCQTtBTzkvQkE7QXdCTEE7QXJCNENBO0FWMjlCQTtBQUNBO0FBQ0E7QStCLy9CQTtBckJnQkE7QVZrL0JBO0FPNzlCQTtBd0JyQ0E7QXJCb0JBO0FWay9CQTtBQUNBO0FPNWdDQTtBd0JLQTtBckJ3QkE7QVZtL0JBO0FBQ0E7QUFDQTtBK0I5L0JBO0FyQmJBO0FWOGdDQTtBT3ArQkE7QXdCN0JBO0FyQlRBO0FWOGdDQTtBQUNBO0FPMWhDQTtBd0JvQkE7QXJCTEE7QVYrZ0NBO0FBQ0E7QUFDQTtBK0J6L0JBO0FyQmxCQTtBVjhnQ0E7QU96L0JBO0F3QkhBO0FyQmRBO0FWOGdDQTtBQUNBO0FPeGlDQTtBd0J1Q0E7QXJCVkE7QVYrZ0NBO0FBQ0E7QUFDQTtBZ0M1akNBOztBQUFBO0FBTUE7QUFDQTtBQUNBO0FoQzJqQ0E7QWdDeGpDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoQzBqQ0E7QWdDbmpDQTtBQUNBO0FoQ3FqQ0E7QWdDL2lDQTtBQUNBO0FoQ2lqQ0E7QWdDM2lDQTtBQUNBO0FoQzZpQ0E7QWdDdmlDQTtBQUNBO0FoQ3lpQ0E7QWdDbmlDQTtBQUNBO0FoQ3FpQ0E7QWdDL2hDQTtBQUNBO0FoQ2lpQ0E7QUFDQTtBaUMvbENBOztBQUFBO0FBTUE7O0FBRUE7QUFDQTtBakM4bENBO0FBQ0E7QWlDMWxDQTtBQUNBO0FqQzRsQ0E7QUFDQTtBaUN4bENBO0FBQ0E7QWpDMGxDQTtBQUNBO0FrQ2huQ0E7O0FBQUE7QUEwQ0E7QUFDQTtBQUNBO0FBQ0E7QWxDMmtDQTtBT2hrQ0E7QTJCZEE7QUFNQTtBbEM0a0NBO0FBQ0E7QWtDMWtDQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbEM0a0NBO0FrQ3prQ0E7Ozs7Ozs7Ozs7QUFVQTtBQUNBO0FBQ0E7QWxDMmtDQTtBQUNBO0FtQzdwQ0E7O0FBQUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBbkM0cENBO0FtQzFwQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5DNHBDQTtBT3JuQ0E7QTRCN0NBO0FBU0E7QW5DNnBDQTtBQUNBO0FtQzFwQ0E7QUFDQTtBQUNBO0FuQzRwQ0E7QW1DMXBDQTtBQUNBO0FuQzRwQ0E7QW1DenBDQTtBQUNBO0FuQzJwQ0E7QW1DenBDQTtBQUNBO0FuQzJwQ0E7QW1DcHBDQTtBQUNBO0FuQ3NwQ0E7QW1DbHBDQTtBQUNBO0FuQ29wQ0E7QW1DbHBDQTtBQUNBO0FBQ0E7QW5Db3BDQTtBbUNscENBO0FBQ0E7QUFDQTtBbkNvcENBO0FtQzdvQ0E7QUFDQTtBQUNBO0FBQ0E7QW5DK29DQTtBbUM3b0NBO0FBQ0E7QUFDQTtBbkMrb0NBO0FtQ3pvQ0E7QUFDQTtBbkMyb0NBO0FtQ3hvQ0E7QUFDQTtBQUNBO0FuQzBvQ0E7QU9ycUNBO0E0QnlCQTtBQUtBO0FuQzJvQ0E7QUFDQTtBbUN4b0NBO0FBQ0E7QUFDQTtBQUNBO0FuQzBvQ0E7QUFDQTtBaUI3ckNBOzs7QUFBQTtBbUIzQ0E7O0FBQUE7QUNBQTs7QUFBQTtBQVVBO0FBQ0E7QUFDQTtBckMwdUNBO0FxQ3Z1Q0E7QUFDQTtBQUNBO0FyQ3l1Q0E7QXFDdnVDQTtBQUNBO0FBQ0E7QUFDQTtBckN5dUNBO0FxQ2h1Q0E7Ozs7QUFJQTtBckNrdUNBO0FBQ0E7QXNDdHdDQTs7QUFBQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0F0Q3F3Q0E7QUFDQTtBdUMvd0NBOztBQUFBO0FDQUE7O0FBQUE7QUFJQTtBQUVBO0F4Q2t4Q0E7QXdDaHhDQTtBQUNBO0FBQ0E7QXhDa3hDQTtBd0M3d0NBO0FBQ0E7QXhDK3dDQTtBQUNBO0F5Q2h5Q0E7O0FBQUE7QUFVQTtBQUNBO0F6QzJ4Q0E7QXlDdHhDQTtBQUNBO0F6Q3d4Q0E7QXlDbHhDQTtBQUNBO0F6Q294Q0E7QXlDanhDQTtBQUNBO0F6Q214Q0E7QXlDaHhDQTtBQUNBO0FBQ0E7QXpDa3hDQTtBeUM3d0NBO0FBQ0E7QXpDK3dDQTtBeUM1d0NBO0FBQ0E7QXpDOHdDQTtBeUMxd0NBO0FBQ0E7QXpDNHdDQTtBeUMxd0NBO0FBQ0E7QUFDQTtBekM0d0NBO0F5QzF3Q0E7QUFDQTtBekM0d0NBO0FBQ0E7QXlDcndDQTtBQUNBO0FBQ0E7QXpDdXdDQTtBQUNBO0F5Q3J3Q0E7QUFDQTtBekN1d0NBO0FBQ0E7QXlDbndDQTtBQUNBO0F6Q3F3Q0E7QUFDQTtBeUNud0NBO0FBQ0E7QXpDcXdDQTtBQUNBO0EwQ3IxQ0E7O0FBQUE7QUNBQTs7QUFBQTtBcEMrREE7QW9DdkRBO0FBR0E7QTNDbzFDQTtBQUNBO0FPN3pDQTtBb0NyQkE7QUFHQTtBQUNBO0EzQ20xQ0E7QUFDQTtBMkMzMENBO0FBQ0E7QTNDNjBDQTtBT2p6Q0E7QW9DN0JBO0FBSUE7QUFDQTtBM0M4MENBO0FBQ0E7QU92ekNBO0FvQ3JCQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0EzQzYwQ0E7QUFDQTtBT3h6Q0E7QW9DZEE7QUFHQTtBQUNBO0EzQ3UwQ0E7QUFDQTtBQUNBO0E0QzkzQ0E7O0FBQUE7QUFNQTtBbENEQTtBQUNBO0FHREE7QWJpNENBO0FPdjBDQTtBcUN6REE7QS9CRUE7QUFDQTtBYms0Q0E7QUFDQTtBQUNBO0E0Qy8zQ0E7QUFDQTtBQUNBO0E1Q2k0Q0E7QUFDQTtBNkNsNUNBOztBQUFBO0E1QnNEQTs7OztBQUFBO0E2QnREQTs7QUFBQTtBQUlBO0FDSkE7O0FBQUE7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9DODVDQTtBT3I0Q0E7QXdDL0JBO0FBU0E7QUFDQTtBL0MrNUNBO0FBQ0E7QStDNzVDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvQys1Q0E7QUFDQTtBZ0RyN0NBOztBQUFBO0FBSUE7QUFDQTtBaERzN0NBO0FnRHA3Q0E7QUFDQTtBQUNBO0FoRHM3Q0E7QU9qN0NBO0F5Q1BBO0FBS0E7QUFDQTtBaER1N0NBO0FBQ0E7QWdEcDdDQTtBQUNBO0FoRHM3Q0E7QUFDQTtBZ0QvNkNBO0FBR0E7QUFDQTtBaEQrNkNBO0FnRDU2Q0E7QUFDQTtBaEQ4NkNBO0FnRDM2Q0E7QUFDQTtBaEQ2NkNBO0FnRDE2Q0E7QUFDQTtBaEQ0NkNBO0FnRHo2Q0E7QUFDQTtBaEQyNkNBO0FnRHg2Q0E7QUFDQTtBaEQwNkNBO0FnRHY2Q0E7QUFDQTtBaER5NkNBO0FnRHQ2Q0E7QUFDQTtBaER3NkNBO0FnRHI2Q0E7QUFDQTtBaER1NkNBO0FnRHA2Q0E7QUFDQTtBaERzNkNBO0FBQ0E7QWdELzVDQTtBQUNBO0FoRGk2Q0E7QWdEOTVDQTtBQUNBO0FoRGc2Q0E7QWdENzVDQTtBQUNBO0FoRCs1Q0E7QWdENTVDQTtBQUNBO0FoRDg1Q0E7QWdEMzVDQTtBQUNBO0FoRDY1Q0E7QWdEMTVDQTtBQUNBO0FoRDQ1Q0E7QWdEejVDQTtBQUNBO0FoRDI1Q0E7QWdEeDVDQTtBQUNBO0FoRDA1Q0E7QWdEdjVDQTtBQUNBO0FoRHk1Q0E7QWdEcDVDQTtBQUdBO0FoRG81Q0E7QUFDQTtBZ0Q5NENBO0FBQ0E7QUFDQTtBaERnNUNBO0FnRDk0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhEZzVDQTtBT3JnREE7QXlDeUdBO0FBZUE7QUFDQTtBQUNBO0FoRGk1Q0E7QUFDQTtBZ0QvNENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhEaTVDQTtBZ0Q5NENBO0FBR0E7QWhEODRDQTtBZ0Q1NENBO0FBQ0E7QUFDQTtBQUNBO0FoRDg0Q0E7QUFDQTtBaUR6akRBOztBQUFBO0FDQUE7O0FBQUE7QUFJQTtBQUVBO0FsRDRqREE7QWtEeGpEQTtBQUNBO0FsRDBqREE7QWtEM2pEQTtBQUNBO0FsRDZqREE7QWtEOWpEQTtBQUNBO0FsRGdrREE7QWtEamtEQTtBQUNBO0FsRG1rREE7QWtEcGtEQTtBQUNBO0FsRHNrREE7QWtEdmtEQTtBQUNBO0FsRHlrREE7QWtEMWtEQTtBQUNBO0FsRDRrREE7QWtEN2tEQTtBQUNBO0FsRCtrREE7QWtEaGxEQTtBQUNBO0FsRGtsREE7QWtEbmxEQTtBQUNBO0FsRHFsREE7QWtEdGxEQTtBQUNBO0FsRHdsREE7QWtEemxEQTtBQUNBO0FsRDJsREE7QWtEdmxEQTtBQUNBO0FBQ0E7QUFDQTtBbER5bERBO0FrRHRsREE7QUFDQTtBbER3bERBO0FrRG5sREE7QUFDQTtBQUNBO0FsRHFsREE7QUFDQTtBa0RqbERBO0FyQzdCQTtBYmluREE7QU92akRBO0EyQzdCQTtBckMxQkE7QUFDQTtBYmtuREE7QUFDQTtBQUNBO0FrRGpsREE7O0FBQ0E7QUFDQTtBQUNBO0FsRG9sREE7QUFDQTtBbURwb0RBOztBQUFBO0FBTUE7QUFDQTtBbkRtb0RBO0FtRDNuREE7Ozs7QUFDQTtBQUNBO0FuRGdvREE7QW1EOW5EQTtBQUpBOzs7O0FBS0E7QW5Eb29EQTtBQUNBO0FBQ0E7QW9EMXBEQTs7QUFBQTtBQUlBO0F2Q0NBO0FiMnBEQTtBT2ptREE7QTZDM0RBO0F2Q0lBO0FBQ0E7QWI0cERBO0FBQ0E7QUFDQTtBb0Q1cERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEQ4cERBO0FvRDNwREE7QUFDQTtBcEQ2cERBO0FvRHhwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEQwcERBO0FBQ0E7QW9EdHBEQTtBQUNBO0FwRHdwREE7QUFDQTtBb0RqcERBOztBQUNBO0FBQ0E7QUFDQTtBcERvcERBO0FBQ0E7QXFEbnNEQTs7QUFBQTtBQWVBOzs7Ozs7QUFDQTtBckQ4ckRBO0FxRDVyREE7Ozs7OztBQUNBO0FyRG1zREE7QXFEdnNEQTs7Ozs7O0FBQ0E7QXJEOHNEQTtBcUQ1c0RBOzs7Ozs7QUFDQTtBckRtdERBO0FxRHZ0REE7Ozs7OztBQUNBO0FyRDh0REE7QXFENXREQTs7Ozs7O0FBQ0E7QXJEbXVEQTtBcUR2dURBOzs7Ozs7QUFDQTtBckQ4dURBO0FxRDV1REE7Ozs7OztBQUNBO0FyRG12REE7QXFEdnZEQTs7Ozs7O0FBQ0E7QXJEOHZEQTtBcUQ1dkRBOzs7Ozs7QUFDQTtBckRtd0RBO0FxRHZ3REE7Ozs7OztBQUNBO0FyRDh3REE7QXFENXdEQTs7Ozs7O0FBQ0E7QXJEbXhEQTtBcUR2eERBOzs7Ozs7QUFDQTtBckQ4eERBO0FxRDV4REE7Ozs7OztBQUNBO0FyRG15REE7QXFEdnlEQTs7Ozs7O0FBQ0E7QXJEOHlEQTtBcUQ1eURBOzs7Ozs7QUFDQTtBckRtekRBO0FxRHZ6REE7Ozs7OztBQUNBO0FyRDh6REE7QXFENXpEQTs7Ozs7O0FBQ0E7QXJEbTBEQTtBcUR2MERBOzs7Ozs7QUFDQTtBckQ4MERBO0FxRDUwREE7Ozs7OztBQUNBO0FyRG0xREE7QXFEdjFEQTs7Ozs7O0FBQ0E7QXJEODFEQTtBcUQ1MURBOzs7Ozs7QUFDQTtBckRtMkRBO0FxRHYyREE7Ozs7OztBQUNBO0FyRDgyREE7QXFENTJEQTs7Ozs7O0FBQ0E7QXJEbTNEQTtBQUNBO0FxRDUyREE7O0FyQ05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhCczNEQTtBT3YxREE7QThDN0JBOztBckNDQTtBaEJ3M0RBO0FBQ0E7QUFDQTtBc0R0NURBOztBQUFBO0EvQ3dEQTtBK0NwREE7QUFHQTtBdERzNURBO0FBQ0E7QXNEcDVEQTtBQUNBO0F0RHM1REE7QU9yNERBO0ErQ2xCQTtBQUlBO0F0RHU1REE7QUFDQTtBT240REE7QStDekJBO0FBUUE7QXREdzVEQTtBQUNBO0FzRHI1REE7QUFDQTtBQUNBO0FBQ0E7QXREdTVEQTtBT3A1REE7QStDTkE7QUFNQTtBdER3NURBO0FBQ0E7QU9sNURBO0ErQ2JBO0FBVUE7QXREeTVEQTtBQUNBO0FzRHQ1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdER3NURBO0FPeDREQTtBK0NwQkE7QUFPQTtBQUNBO0F0RHk1REE7QUFDQTtBc0R0NURBO0FBQ0E7QUFDQTtBdER3NURBO0FPOTZEQTtBK0NvQkE7QUFLQTtBQUNBO0F0RHk1REE7QUFDQTtBc0R2NURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0RHk1REE7QU8vN0RBO0ErQzZCQTtBQVlBO0FBQ0E7QUFDQTtBdEQwNURBO0FBQ0E7QU90OERBO0ErQ2dEQTtBQUdBO0FBQ0E7QXREdTVEQTtBQUNBO0FPNThEQTtBK0N1REE7QUFHQTtBQUNBO0F0RHM1REE7QUFDQTtBc0RoNURBO0FBQ0E7QXREazVEQTtBT3I5REE7QStDa0VBO0FBSUE7QXREbTVEQTtBQUNBO0FPOTdEQTtBK0MrQ0E7QUFHQTtBdERnNURBO0FBQ0E7QXNEOTREQTtBQUNBO0F0RGc1REE7QU9sK0RBO0ErQ2lGQTtBQUlBO0F0RGk1REE7QUFDQTtBT2grREE7QStDMEVBO0FBUUE7QXREazVEQTtBQUNBO0FPNStEQTtBK0M2RkE7QUFHQTtBdERnNURBO0FBQ0E7QU9yOURBO0ErQzBFQTtBQUdBO0F0RDQ0REE7QUFDQTtBTzE5REE7QStDbUZBO0FBR0E7QUFDQTtBdER3NERBO0FBQ0E7QU9oK0RBO0ErQzJGQTtBQUdBO0FBQ0E7QXREczREQTtBQUNBO0FBQ0E7QXVEL2hFQTs7QUFBQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0F2RCtoRUE7QU94K0RBO0FnRDNEQTtBQU9BO0F2RGdpRUE7QUFDQTtBdUQ5aEVBO0FBQ0E7QXZEZ2lFQTtBdUQ3aEVBO0FBQ0E7QXZEK2hFQTtBdUQ1aEVBO0FBRUE7QUFDQTtBQUNBO0F2RDZoRUE7QU94L0RBO0FnRHpDQTtBQU9BO0FBQ0E7QXZEOGhFQTtBQUNBO0F1RDNoRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkQ2aEVBO0F1RDNoRUE7QUFDQTtBdkQ2aEVBO0F1RDFoRUE7QUFDQTtBQUNBO0FBQ0E7QXZENGhFQTtBdUR6aEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZEMmhFQTtBQUNBO0F3RGxsRUE7O0FBQUE7QUFJQTtBQUNBO0FBQ0E7QXhEbWxFQTtBQUNBO0F5RDFsRUE7O0FBQUE7QUFNQTtBQUNBO0F6RHlsRUE7QXlEdGxFQTs7QUFFQTtBekR3bEVBO0F5RHJsRUE7QUFDQTtBQUNBO0FBQ0E7QXpEdWxFQTtBQUNBO0E4Q3hsRUE7QVlsQkE7O0FBQUE7QUFNQTtBQUVBO0ExRHltRUE7QU96akVBO0FtRGxEQTtBQUtBO0ExRDBtRUE7QUFDQTtBT3htRUE7QW1EUkE7QUFTQTtBMUQybUVBO0FBQ0E7QUFDQTtBMkQ1bkVBOztBQUFBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QTNENm5FQTtBMkQzbkVBO0FBQ0E7QUFDQTtBQUNBO0EzRDZuRUE7QTJEem5FQTs7O0FBR0E7QTNEMm5FQTtBMkR0bkVBO0FBQ0E7QTNEd25FQTtBMkRybkVBO0FBQ0E7QUFDQTtBQUNBO0EzRHVuRUE7QTJEcm5FQTs7O0FBR0E7QTNEdW5FQTtBMkRubkVBOzs7QUFHQTtBM0RxbkVBO0EyRGxuRUE7QUFDQTtBM0RvbkVBO0FBQ0E7QTREcHFFQTs7QUFBQTtBQUlBO0FBQ0E7QTVEcXFFQTtBT2xuRUE7QXFEcERBO0FBSUE7QTVEc3FFQTtBQUNBO0E0RHBxRUE7QUFDQTtBNURzcUVBO0FBQ0E7QTREbnFFQTtBQUNBO0FBQ0E7QTVEcXFFQTtBNERucUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVEcXFFQTtBT3JvRUE7QXFEcENBO0FBT0E7QTVEc3FFQTtBQUNBO0E0RG5xRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNURxcUVBO0FPbnBFQTtBcUR6QkE7QUFVQTtBNURzcUVBO0FBQ0E7QTREbnFFQTtBQUNBO0E1RHFxRUE7QU8zcEVBO0FxRFhBO0FBSUE7QUFDQTtBNURzcUVBO0FBQ0E7QUFDQTtBOENsc0VBO0FBS0E7O0FBQ0E7QUFFQTtBQUNBO0E5Q2dzRUE7QUFDQTtBNkRsdUVBOztBQUFBO0FDQUE7O0FBQUE7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBOURxdUVBO0FPcnJFQTtBdURwREE7QUFPQTtBOURzdUVBO0FBQ0E7QThEcHVFQTtBQUNBO0FBQ0E7QTlEc3VFQTtBTzlyRUE7QXVEMUNBO0FBS0E7QTlEdXVFQTtBQUNBO0E4RHJ1RUE7QUFDQTtBOUR1dUVBO0E4RHB1RUE7QUFDQTtBOURzdUVBO0E4RG51RUE7QUFDQTtBOURxdUVBO0E4RGh1RUE7QUFGQTtBQUdBO0E5RG11RUE7QUFDQTtBT2p0RUE7QXVEdEJBO0FBUUE7QUFDQTtBOURtdUVBO0FBQ0E7QThEL3RFQTtBakRsQ0E7QWJvd0VBO0FBQ0E7QStEbnhFQTs7QUFBQTtBQUlBO0FsRENBO0Fib3hFQTtBTzF0RUE7QXdEM0RBO0FsRElBO0FBQ0E7QWJxeEVBO0FBQ0E7QStEdnhFQTtBQUNBO0FBQ0E7QS9EeXhFQTtBT3B1RUE7QXdEbERBO0FBR0E7QUFDQTtBL0R1eEVBO0FBQ0E7QU8xdUVBO0F3RDNDQTtBQUdBO0EvRHN4RUE7QUFDQTtBQUNBO0FnRS95RUE7O0FBQUE7QUFJQTtBQUNBO0FuREFBO0FiaXpFQTtBT3Z2RUE7QXlEM0RBO0FuRElBO0FBQ0E7QWJrekVBO0FBQ0E7QWdFbnpFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRXF6RUE7QWdFbHpFQTtBQUNBO0FoRW96RUE7QWdFanpFQTtBQUNBO0FoRW16RUE7QU9oeEVBO0F5RHBDQTtBQUlBO0FoRW96RUE7QUFDQTtBQUNBO0FnRTl5RUE7QUFFQTtBaEUreUVBO0FnRTd5RUE7QUFDQTtBaEUreUVBO0FnRTV5RUE7QUFDQTtBaEU4eUVBO0FnRTV5RUE7QUFDQTtBaEU4eUVBO0FPM3hFQTtBeURwQkE7QUFJQTtBaEUreUVBO0FBQ0E7QU9qMUVBO0F5RDZCQTtBQVFBO0FoRWd6RUE7QUFDQTtBQUNBO0FpRXIyRUE7O0FBQUE7QUFJQTtBQUVBO0FBQ0E7QXBERkE7QWJ3MkVBO0FPOXlFQTtBMEQzREE7QXBESUE7QUFDQTtBYnkyRUE7QUFDQTtBaUV4MkVBO0FBUEE7QUFRQTtBakUyMkVBO0FBQ0E7QWlFejJFQTtBQUNBO0FqRTIyRUE7QWlFejJFQTtBQUNBO0FqRTIyRUE7QU8zMUVBO0EwRGpCQTtBQUlBO0FqRTQyRUE7QUFDQTtBaUV0MkVBO0FBRkE7QUFHQTtBQUNBO0FqRXkyRUE7QUFDQTtBaUVwMkVBO0FBQ0E7QWpFczJFQTtBaUVwMkVBO0FBSEE7QUFJQTtBakV1MkVBO0FBQ0E7QU85MkVBO0EwREVBO0FBUUE7QWpFdzJFQTtBQUNBO0FpRW4yRUE7QUFDQTtBakVxMkVBO0FpRW4yRUE7QUFIQTtBQUlBO0FqRXMyRUE7QUFDQTtBTzMzRUE7QTBEZ0JBO0FBUUE7QWpFdTJFQTtBQUNBO0FBQ0E7QWtFcDZFQTs7QUFBQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QWxFbzZFQTtBT2o1RUE7QTJEeEJBO0FBUUE7QUFDQTtBbEVxNkVBO0FBQ0E7QU9oNUVBO0EyRC9CQTtBQWFBO0FsRXM2RUE7QUFDQTtBa0VwNkVBO0FBQ0E7QWxFczZFQTtBa0VuNkVBO0FBQ0E7QWxFcTZFQTtBa0VsNkVBO0FBQ0E7QUFDQTtBbEVvNkVBO0FBQ0E7QWtFOTVFQTtBQUVBO0FsRSs1RUE7QWtFNzVFQTs7QUFFQTtBbEUrNUVBO0FrRTU1RUE7QUFDQTtBQUNBO0FBQ0E7QWxFODVFQTtBQUNBO0FtRWg5RUE7O0FBQUE7QUFNQTtBQUNBO0FBQ0E7QW5FKzhFQTtBbUU3OEVBO0FBQ0E7QW5FKzhFQTtBbUUzOEVBO0FBQ0E7QUFDQTtBQUNBO0FuRTY4RUE7QW1FMzhFQTtBQUNBO0FuRTY4RUE7QU9uNkVBO0E0RDNDQTtBQUlBO0FBQ0E7QW5FODhFQTtBQUNBO0FPMTlFQTtBNERNQTtBQVNBO0FBQ0E7QW5FKzhFQTtBQUNBO0FtRTM4RUE7QUFDQTtBbkU2OEVBO0FPbitFQTtBNER3QkE7QUFHQTtBbkU0OEVBO0FBQ0E7QW1FeDhFQTtBQUNBO0FuRTA4RUE7QW1FdjhFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkV1OEVBO0FtRXI4RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRXU4RUE7QU96OEVBO0E0REhBO0FBUUE7QW5FdzhFQTtBQUNBO0FtRXI4RUE7OztBQUdBO0FuRXU4RUE7QW1FbjhFQTtBQUNBO0FBQ0E7QW5FcThFQTtBT3hnRkE7QTREaUVBO0FBS0E7QW5FczhFQTtBQUNBO0FtRWw4RUE7QUFDQTtBQUNBO0FuRW84RUE7QUFDQTtBb0VoaUZBOztBQUFBO0FBSUE7QUFDQTtBcEVpaUZBO0FvRS9oRkE7QUFDQTtBdkRIQTtBYnFpRkE7QU8zK0VBO0E2RHhEQTtBdkRDQTtBQUNBO0Fic2lGQTtBQUNBO0FvRW5pRkE7QUFDQTtBQUNBO0FwRXFpRkE7QW9FbmlGQTtBQUpBO0FBS0E7QXBFc2lGQTtBQUNBO0FvRWxpRkE7QUFGQTtBQUdBO0FwRXFpRkE7QUFDQTtBb0VsaUZBO0FBQ0E7QXBFb2lGQTtBT3pnRkE7QTZENUJBO0FBSUE7QXBFcWlGQTtBQUNBO0FvRWxpRkE7OztBQUdBO0FBQ0E7QXBFb2lGQTtBb0VoaUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBFa2lGQTtBb0UvaEZBO0F2RHpCQTtBYjJqRkE7QU90aEZBO0E2RFpBO0F2RHRCQTtBYjRqRkE7QUFDQTtBQUNBO0FpQjVoRkE7OztBQUFBO0FvRC9EQTs7QUFBQTtBQUlBOzs7O0FBQUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBckVnbUZBO0FBQ0E7QXFFOWxGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FyRWltRkE7QUFDQTtBc0U1b0ZBOztBQUFBO0FBUUE7QUFDQTtBdEV5b0ZBO0FBQ0E7QXNFbm9GQTs7QUFDQTtBdEVzb0ZBO0FBQ0E7QXNFaHBGQTtBQUNBO0F0RWtwRkE7QUFDQTtBc0U1b0ZBOztBQUNBO0F0RStvRkE7QUFDQTtBc0V6cEZBO0FBQ0E7QXRFMnBGQTtBQUNBO0FzRXJwRkE7O0FBQ0E7QXRFd3BGQTtBQUNBO0FzRWxxRkE7QUFDQTtBdEVvcUZBO0FBQ0E7QXNFOXBGQTs7QUFDQTtBdEVpcUZBO0FBQ0E7QXNFM3FGQTtBQUNBO0F0RTZxRkE7QUFDQTtBc0V2cUZBOztBQUNBO0F0RTBxRkE7QUFDQTtBc0VwckZBO0FBQ0E7QXRFc3JGQTtBQUNBO0FzRWhyRkE7O0FBQ0E7QXRFbXJGQTtBQUNBO0FzRTdyRkE7QUFDQTtBdEUrckZBO0FBQ0E7QXNFenJGQTs7QUFDQTtBdEU0ckZBO0FBQ0E7QXNFdHNGQTtBQUNBO0F0RXdzRkE7QUFDQTtBc0Vsc0ZBOztBQUNBO0F0RXFzRkE7QUFDQTtBc0Uvc0ZBO0FBQ0E7QXRFaXRGQTtBQUNBO0FzRTNzRkE7O0FBQ0E7QXRFOHNGQTtBQUNBO0FzRXh0RkE7QUFDQTtBdEUwdEZBO0FBQ0E7QXNFcHRGQTs7QUFDQTtBdEV1dEZBO0FBQ0E7QXNFanVGQTtBQUNBO0F0RW11RkE7QUFDQTtBc0U3dEZBOztBQUNBO0F0RWd1RkE7QUFDQTtBc0UxdUZBO0FBQ0E7QXRFNHVGQTtBQUNBO0FzRXR1RkE7O0FBQ0E7QXRFeXVGQTtBQUNBO0F1RTN2RkE7O0FBQUE7QXREd0VBOztBQUFBO0F1RHhFQTs7QUFBQTtBQUlBOzs7Ozs7QUFBQTtBQ0pBOztBQUFBO0FBSUE7Ozs7QUFBQTsiLCJzb3VyY2VSb290IjoiIn0=*/