@charset "UTF-8";
@font-face {
  font-family: 'BurfordRusticShadowTwoA';
  src: url("/wp-content/themes/duyn/assets/fonts/BurfordRusticShadowTwoA.otf") format("OpenType"); }

@font-face {
  font-family: 'Predige-Medium';
  src: url("/wp-content/themes/duyn/assets/fonts/Predige-Medium.otf") format("OpenType"), url("/wp-content/themes/duyn/assets/fonts/Predige-Medium.woff") format("woff"); }

@font-face {
  font-family: 'Predige-Regular';
  src: url("/wp-content/themes/duyn/assets/fonts/Predige-Regular.otf") format("OpenType"), url("/wp-content/themes/duyn/assets/fonts/Predige-Regular.woff") format("woff"); }

/*! 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 {
  font-size: 2em;
  margin: 0.67em 0; }

/* 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 */
  -webkit-text-decoration: underline dotted;
          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 {
  /* 1 */
  overflow: visible; }

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none; }

/**
 * 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; }

/*
 *  Owl Carousel - Core
 */
.owl-carousel {
  display: none;
  width: 100%;
  -webkit-tap-highlight-color: transparent;
  /* position relative and z-index fix webkit rendering fonts issue */
  position: relative;
  z-index: 1; }
  .owl-carousel .owl-stage {
    position: relative;
    touch-action: manipulation;
    -moz-backface-visibility: hidden;
    /* fix firefox animation glitch */ }
  .owl-carousel .owl-stage:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0; }
  .owl-carousel .owl-stage-outer {
    position: relative;
    overflow: hidden;
    /* fix for flashing background */
    -webkit-transform: translate3d(0px, 0px, 0px); }
  .owl-carousel .owl-wrapper,
  .owl-carousel .owl-item {
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0); }
  .owl-carousel .owl-item {
    position: relative;
    min-height: 1px;
    float: left;
    -webkit-backface-visibility: hidden;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none; }
  .owl-carousel .owl-item img {
    display: block;
    width: 100%; }
  .owl-carousel .owl-nav.disabled,
  .owl-carousel .owl-dots.disabled {
    display: none; }
  .owl-carousel .owl-nav .owl-prev,
  .owl-carousel .owl-nav .owl-next,
  .owl-carousel .owl-dot {
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel .owl-nav button.owl-prev,
  .owl-carousel .owl-nav button.owl-next,
  .owl-carousel button.owl-dot {
    background: none;
    color: inherit;
    border: none;
    padding: 0 !important;
    font: inherit; }
  .owl-carousel.owl-loaded {
    display: block; }
  .owl-carousel.owl-loading {
    opacity: 0;
    display: block; }
  .owl-carousel.owl-hidden {
    opacity: 0; }
  .owl-carousel.owl-refresh .owl-item {
    visibility: hidden; }
  .owl-carousel.owl-drag .owl-item {
    touch-action: pan-y;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel.owl-grab {
    cursor: move;
    cursor: -webkit-grab;
    cursor: grab; }
  .owl-carousel.owl-rtl {
    direction: rtl; }
  .owl-carousel.owl-rtl .owl-item {
    float: right; }

/* No Js */
.no-js .owl-carousel {
  display: block; }

/*
 *  Owl Carousel - Animate Plugin
 */
.owl-carousel .animated {
  -webkit-animation-duration: 1000ms;
          animation-duration: 1000ms;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both; }

.owl-carousel .owl-animated-in {
  z-index: 0; }

.owl-carousel .owl-animated-out {
  z-index: 1; }

.owl-carousel .fadeOut {
  -webkit-animation-name: fadeOut;
          animation-name: fadeOut; }

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

/*
 * 	Owl Carousel - Auto Height Plugin
 */
.owl-height {
  transition: height 500ms ease-in-out; }

/*
 * 	Owl Carousel - Lazy Load Plugin
 */
.owl-carousel .owl-item {
  /**
			This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong
			calculation of the height of the owl-item that breaks page layouts
		 */ }
  .owl-carousel .owl-item .owl-lazy {
    opacity: 0;
    transition: opacity 400ms ease; }
  .owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]) {
    max-height: 0; }
  .owl-carousel .owl-item img.owl-lazy {
    transform-style: preserve-3d; }

/*
 * 	Owl Carousel - Video Plugin
 */
.owl-carousel .owl-video-wrapper {
  position: relative;
  height: 100%;
  background: #000; }

.owl-carousel .owl-video-play-icon {
  position: absolute;
  height: 80px;
  width: 80px;
  left: 50%;
  top: 50%;
  margin-left: -40px;
  margin-top: -40px;
  background: url("owl.video.play.png") no-repeat;
  cursor: pointer;
  z-index: 1;
  -webkit-backface-visibility: hidden;
  transition: transform 100ms ease; }

.owl-carousel .owl-video-play-icon:hover {
  transform: scale(1.3, 1.3); }

.owl-carousel .owl-video-playing .owl-video-tn,
.owl-carousel .owl-video-playing .owl-video-play-icon {
  display: none; }

.owl-carousel .owl-video-tn {
  opacity: 0;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  transition: opacity 400ms ease; }

.owl-carousel .owl-video-frame {
  position: relative;
  z-index: 1;
  height: 100%;
  width: 100%; }

/* Magnific Popup CSS */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8; }

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden; }

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 8px;
  box-sizing: border-box; }

.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.mfp-align-top .mfp-container:before {
  display: none; }

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045; }

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto; }

.mfp-ajax-cur {
  cursor: progress; }

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: zoom-out; }

.mfp-zoom {
  cursor: pointer;
  cursor: zoom-in; }

.mfp-auto-cursor .mfp-content {
  cursor: auto; }

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none; }

.mfp-loading.mfp-figure {
  display: none; }

.mfp-hide {
  display: none !important; }

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044; }

.mfp-preloader a {
  color: #CCC; }

.mfp-preloader a:hover {
  color: #FFF; }

.mfp-s-ready .mfp-preloader {
  display: none; }

.mfp-s-error .mfp-content {
  display: none; }

button.mfp-close,
button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  box-shadow: none;
  touch-action: manipulation; }

button::-moz-focus-inner {
  padding: 0;
  border: 0; }

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace; }

.mfp-close:hover,
.mfp-close:focus {
  opacity: 1; }

.mfp-close:active {
  top: 1px; }

.mfp-close-btn-in .mfp-close {
  color: #333; }

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF;
  right: -6px;
  text-align: right;
  padding-right: 6px;
  width: 100%; }

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap; }

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: transparent; }

.mfp-arrow:active {
  margin-top: -54px; }

.mfp-arrow:hover,
.mfp-arrow:focus {
  opacity: 1; }

.mfp-arrow:before,
.mfp-arrow:after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  left: 0;
  top: 0;
  margin-top: 35px;
  margin-left: 35px;
  border: medium inset transparent; }

.mfp-arrow:after {
  border-top-width: 13px;
  border-bottom-width: 13px;
  top: 8px; }

.mfp-arrow:before {
  border-top-width: 21px;
  border-bottom-width: 21px;
  opacity: 0.7; }

.mfp-arrow-left {
  left: 0; }

.mfp-arrow-left:after {
  border-right: 17px solid #FFF;
  margin-left: 31px; }

.mfp-arrow-left:before {
  margin-left: 25px;
  border-right: 27px solid #3F3F3F; }

.mfp-arrow-right {
  right: 0; }

.mfp-arrow-right:after {
  border-left: 17px solid #FFF;
  margin-left: 39px; }

.mfp-arrow-right:before {
  border-left: 27px solid #3F3F3F; }

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px; }

.mfp-iframe-holder .mfp-content {
  line-height: 0;
  width: 100%;
  max-width: 900px; }

.mfp-iframe-holder .mfp-close {
  top: -40px; }

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%; }

.mfp-iframe-scaler iframe {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #000; }

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure {
  line-height: 0; }

.mfp-figure:after {
  content: '';
  position: absolute;
  left: 0;
  top: 40px;
  bottom: 40px;
  display: block;
  right: 0;
  width: auto;
  height: auto;
  z-index: -1;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #444; }

.mfp-figure small {
  color: #BDBDBD;
  display: block;
  font-size: 12px;
  line-height: 14px; }

.mfp-figure figure {
  margin: 0; }

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto; }

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px; }

.mfp-image-holder .mfp-content {
  max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  /**
       * Remove all paddings around the image on small screen
       */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0; }
  .mfp-img-mobile img.mfp-img {
    padding: 0; }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0; }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px; }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    box-sizing: border-box; }
  .mfp-img-mobile .mfp-bottom-bar:empty {
    padding: 0; }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px; }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0; } }

@media all and (max-width: 900px) {
  .mfp-arrow {
    transform: scale(0.75); }
  .mfp-arrow-left {
    transform-origin: 0; }
  .mfp-arrow-right {
    transform-origin: 100%; }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px; } }

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * Remove margin and padding from every selector including their
 * psuedo selectors.
 *
 * 1. More sensible default box sizing.
 *    (css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice).
 */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: inherit;
  /* 1 */ }

/**
 * Set height of the document to maxium viewport height.
 *
 * 1. Set root font size to 10.
 */
html {
  height: 100vh;
  font-size: 62.5%;
  /* 1 */
  box-sizing: border-box; }

/**
 * Set minimal height of the body to maximum viewport height to
 * match the document's height.
 *
 * 1. Firefox 25+.
 * 2. Chrome 5+.
 */
body {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em;
  min-height: 100vh;
  background-color: #ffe596;
  color: #1f2b4c;
  font-family: "Predige-Regular";
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  /* 1 */
  -webkit-font-smoothing: antialiased;
  /* 2 */ }

/* ==========================================================================
   Reset
   ========================================================================== */
/**
 * Custom user agent resets and overrides that are not present in
 * Normalize 8.0.0. This mostly removes some annoying margin and padding
 * defaults, border radius, and outlines.
 */
a {
  color: inherit;
  text-decoration: none; }

/**
 * 1. Remove border radius on Chrome 62.0+ on macOS.
 */
button {
  border: 0;
  border-radius: 0;
  /* 1 */
  outline: none;
  background: none;
  cursor: pointer; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

figure {
  margin: 0; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit; }

hr {
  margin: 0;
  padding: 0; }

/**
 * 1. Remove white space.
 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  /* 1 */ }

/**
 * 1. Remove inherited user agent appearance.
 */
input,
select,
textarea {
  max-width: 100%;
  border: 0;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  /* 1 */ }

/**
 * 1. Only allow vertical resizing to prevent the textarea
 *    from overflowing the container.
 */
textarea {
  resize: vertical; }

ul,
ol {
  margin: 0;
  padding: 0;
  list-style-type: none; }

p {
  margin: 0; }

/**
 * 1. Collapse borders to prevent double sided borders.
 */
table {
  max-width: 100%;
  border-collapse: collapse;
  /* 1 */ }

strong {
  font-weight: 700; }

/* ==========================================================================
   Background
   ========================================================================== */
/**
 * Background base.
 */
.background {
  position: relative; }
  .background::before {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    content: '';
    z-index: -1; }

/**
 * Background primary.
 */
.background--default {
  color: #1f2b4c;
  fill: #1f2b4c; }
  .background--default::before {
    background: #ffe596; }
  .background--default h1 {
    color: #ed6a5e; }
  .background--default h2 {
    color: #1f2b4c; }
  .background--default .button--arrow {
    color: #1f2b4c; }
    .background--default .button--arrow svg {
      color: #1f2b4c;
      fill: #1f2b4c; }
  .background--default .button--border {
    border: 2px solid #1f2b4c;
    color: #1f2b4c; }
    .background--default .button--border svg {
      color: #1f2b4c;
      fill: #1f2b4c; }

/**
 * Background blue.
 */
.background--blue {
  color: white;
  fill: white; }
  .background--blue::before {
    background: #1f2b4c; }
  .background--blue h1 {
    color: #ed6a5e; }
  .background--blue h2 {
    color: white; }
  .background--blue .button--arrow {
    color: white; }
    .background--blue .button--arrow svg {
      color: white;
      fill: white; }
  .background--blue .button--border {
    border: 2px solid white;
    color: white; }
    .background--blue .button--border svg {
      color: white;
      fill: white; }

/**
 * Background blue.
 */
.background--blue-footer {
  color: white;
  fill: white; }
  .background--blue-footer::before {
    background: #243665; }
  .background--blue-footer h2 {
    color: white; }
  .background--blue-footer .button--arrow {
    color: white; }
    .background--blue-footer .button--arrow svg {
      color: white;
      fill: white; }
  .background--blue-footer .button--border {
    border: 2px solid white;
    color: white; }
    .background--blue-footer .button--border svg {
      color: white;
      fill: white; }

/**
 * Background gradient.
 */
.background--gradient {
  color: white;
  fill: white; }
  .background--gradient::before {
    background: linear-gradient(180deg, #ffe596 1.04%, #f5a162 23.96%, #ed6a5e 43.75%, #6b517c 63.02%, #243665 78.65%, #1f2b4c 96.35%); }
  .background--gradient h1 {
    color: #ed6a5e; }
  .background--gradient h2 {
    color: white; }
  .background--gradient .button--arrow {
    color: white; }
    .background--gradient .button--arrow svg {
      color: white;
      fill: white; }
  .background--gradient .button--border {
    border: 2px solid white;
    color: white; }
    .background--gradient .button--border svg {
      color: white;
      fill: white; }
    .background--gradient .button--border:after {
      background-color: white; }
    .background--gradient .button--border:hover {
      color: #1f2b4c; }

/**
 * Background border.
 */
@media only screen and (max-width: 899px) {
  .background--border {
    margin-bottom: 0; } }

.background--border::before {
  bottom: 95px;
  border-bottom: 20px solid #ed6a5e; }
  @media only screen and (max-width: 899px) {
    .background--border::before {
      bottom: 0;
      border-bottom: 10px solid #ed6a5e; } }

@media only screen and (min-width: 900px) {
  .background--border .wrapper {
    padding-bottom: 0; } }

.background--border + div {
  margin-top: -95px;
  padding-top: 95px; }
  @media only screen and (max-width: 899px) {
    .background--border + div {
      margin-top: 0;
      padding-top: 0; } }

/* ==========================================================================
   Buttons.
   ========================================================================== */
/**
 * Button base.
 */
.button {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em;
  display: inline-flex;
  align-items: center;
  height: 32px;
  transition: all 350ms ease;
  cursor: pointer; }
  .button svg {
    width: 35px;
    height: 32px;
    transition: all 250ms ease; }

/**
 * Button border.
 */
.button--border {
  position: relative;
  margin-right: 35px;
  padding: 0 10px; }
  .button--border svg {
    position: absolute;
    top: -3px;
    right: -35px; }
  .button--border::after {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 0;
    height: 100%;
    transition: all 350ms ease;
    content: '';
    z-index: -1; }
  .button--border:hover::after {
    width: 100%; }
  .button--border.is-blue {
    border: 2px solid #1f2b4c;
    color: #1f2b4c; }
    .button--border.is-blue svg {
      color: #1f2b4c;
      fill: #1f2b4c; }
    .button--border.is-blue::after {
      background: #1f2b4c; }
    .button--border.is-blue:hover {
      color: white; }
  .button--border.is-white {
    border: 2px solid white;
    color: white; }
    .button--border.is-white svg {
      color: white;
      fill: white; }
    .button--border.is-white::after {
      background: white; }
    .button--border.is-white:hover {
      color: #ed6a5e; }
  .button--border.is-red {
    border: 2px solid #ed6a5e;
    color: #ed6a5e; }
    .button--border.is-red svg {
      color: #ed6a5e;
      fill: #ed6a5e; }
    .button--border.is-red::after {
      background: #ed6a5e; }
    .button--border.is-red:hover {
      color: white; }

/**
 * Button arrow.
 */
.button--arrow svg {
  position: relative;
  top: 1px;
  margin-left: 12px; }

.button--arrow:hover svg {
  margin-left: 15px; }

.button--arrow.is-blue {
  color: #1f2b4c; }
  .button--arrow.is-blue svg {
    color: #1f2b4c;
    fill: #1f2b4c; }

.button--arrow.is-red {
  color: #ed6a5e; }
  .button--arrow.is-red svg {
    color: #ed6a5e;
    fill: #ed6a5e; }

/* ==========================================================================
   Container
   ========================================================================== */
/**
 * The container object centers an element in the document.
 */
.container {
  max-width: calc(1024px + 50.66667px);
  padding: 0 25.33333px;
  width: 100%;
  margin: 0 auto; }

/* ==========================================================================
   Content Constraint
   ========================================================================== */
/**
 * The content constraint is a constraint for all the content within
 * the document. It can be manipulated by CSS or JavaScript without
 * influencing the body.
 */
.content-constraint {
  position: relative;
  min-height: 100vh;
  overflow: hidden; }
  .content-constraint ::-moz-selection {
    background-color: #ed6a5e;
    color: white; }
  .content-constraint ::selection {
    background-color: #ed6a5e;
    color: white; }

/* ==========================================================================
   Flex
   ========================================================================== */
/**
 * Example of a flex based column grid layout in practice:
 *
 * <div class="row">
 *   <div class="col col-xs-6 col-sm-12"></div>
 *   <div class="col col-xs-6 col-sm-12"></div>
 * </div>
 *
 * This example will create a row with two columns each filling half the width
 * of the row on all media, but will convert to a full width column on the
 * small `-sm` breakpoint alias, which is mobile only. Refer to
 * `settings/_definitions.scss` for all breakpoint alias.
 */
/**
 * Flex object.
 *
 * Tip: Use flex on a column to make the box the same height as the column.
 */
.flex {
  display: flex; }

.flex-wrap {
  flex-wrap: wrap; }

/**
 * Flex object with a column based layout system.
 */
.row {
  display: flex;
  flex: 0 1 auto;
  flex-flow: row wrap;
  margin: 0 -12.66667px; }

/**
 * Box, the inside of a column.
 */
.box {
  flex: 1; }

/**
       * Column 1 for the `xs` breakpoint.
       */
.col-xs-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 1 for the `xs` breakpoint.
         */
.offset-xs-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `xs` breakpoint.
       */
.col-xs-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 2 for the `xs` breakpoint.
         */
.offset-xs-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `xs` breakpoint.
       */
.col-xs-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 12.66667px; }

/**
         * Offset 3 for the `xs` breakpoint.
         */
.offset-xs-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `xs` breakpoint.
       */
.col-xs-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 4 for the `xs` breakpoint.
         */
.offset-xs-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `xs` breakpoint.
       */
.col-xs-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 5 for the `xs` breakpoint.
         */
.offset-xs-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `xs` breakpoint.
       */
.col-xs-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 12.66667px; }

/**
         * Offset 6 for the `xs` breakpoint.
         */
.offset-xs-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `xs` breakpoint.
       */
.col-xs-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 7 for the `xs` breakpoint.
         */
.offset-xs-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `xs` breakpoint.
       */
.col-xs-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 8 for the `xs` breakpoint.
         */
.offset-xs-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `xs` breakpoint.
       */
.col-xs-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 12.66667px; }

/**
         * Offset 9 for the `xs` breakpoint.
         */
.offset-xs-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `xs` breakpoint.
       */
.col-xs-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 10 for the `xs` breakpoint.
         */
.offset-xs-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `xs` breakpoint.
       */
.col-xs-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 11 for the `xs` breakpoint.
         */
.offset-xs-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `xs` breakpoint.
       */
.col-xs-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 12.66667px; }

/**
       * Align `stretch` for the xs breakpoint.
       */
.align-xs-stretch {
  align-items: stretch; }

/**
       * Align `center` for the xs breakpoint.
       */
.align-xs-center {
  align-items: center; }

/**
       * Align `flex-start` for the xs breakpoint.
       */
.align-xs-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the xs breakpoint.
       */
.align-xs-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the xs breakpoint.
       */
.align-xs-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the xs breakpoint.
       */
.justify-xs-start {
  justify-content: start; }

/**
       * Justify `center` for the xs breakpoint.
       */
.justify-xs-center {
  justify-content: center; }

/**
       * Justify `space-between` for the xs breakpoint.
       */
.justify-xs-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the xs breakpoint.
       */
.justify-xs-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the xs breakpoint.
       */
.justify-xs-space-evenly {
  justify-content: space-evenly; }

/**
       * Bleed left for the xs breakpoint.
       */
.bleed-xs-left {
  padding-left: 0; }

/**
       * Bleed right for the xs breakpoint.
       */
.bleed-xs-right {
  padding-right: 0; }

/**
     * Order first for the `xs` breakpoint.
     */
.first-xs {
  order: -1; }

/**
     * Order last for the `xs` breakpoint.
     */
.last-xs {
  order: 1; }

/**
     * Reverse order for the `xs` breakpoint.
     */
.reverse-xs {
  flex-direction: row-reverse; }

/**
       * Column 1 for the `sm` breakpoint.
       */
.col-sm-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 1 for the `sm` breakpoint.
         */
.offset-sm-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `sm` breakpoint.
       */
.col-sm-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 2 for the `sm` breakpoint.
         */
.offset-sm-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `sm` breakpoint.
       */
.col-sm-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 12.66667px; }

/**
         * Offset 3 for the `sm` breakpoint.
         */
.offset-sm-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `sm` breakpoint.
       */
.col-sm-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 4 for the `sm` breakpoint.
         */
.offset-sm-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `sm` breakpoint.
       */
.col-sm-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 5 for the `sm` breakpoint.
         */
.offset-sm-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `sm` breakpoint.
       */
.col-sm-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 12.66667px; }

/**
         * Offset 6 for the `sm` breakpoint.
         */
.offset-sm-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `sm` breakpoint.
       */
.col-sm-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 7 for the `sm` breakpoint.
         */
.offset-sm-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `sm` breakpoint.
       */
.col-sm-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 8 for the `sm` breakpoint.
         */
.offset-sm-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `sm` breakpoint.
       */
.col-sm-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 12.66667px; }

/**
         * Offset 9 for the `sm` breakpoint.
         */
.offset-sm-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `sm` breakpoint.
       */
.col-sm-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 10 for the `sm` breakpoint.
         */
.offset-sm-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `sm` breakpoint.
       */
.col-sm-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 11 for the `sm` breakpoint.
         */
.offset-sm-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `sm` breakpoint.
       */
.col-sm-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 12.66667px; }

/**
       * Align `stretch` for the sm breakpoint.
       */
.align-sm-stretch {
  align-items: stretch; }

/**
       * Align `center` for the sm breakpoint.
       */
.align-sm-center {
  align-items: center; }

/**
       * Align `flex-start` for the sm breakpoint.
       */
.align-sm-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the sm breakpoint.
       */
.align-sm-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the sm breakpoint.
       */
.align-sm-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the sm breakpoint.
       */
.justify-sm-start {
  justify-content: start; }

/**
       * Justify `center` for the sm breakpoint.
       */
.justify-sm-center {
  justify-content: center; }

/**
       * Justify `space-between` for the sm breakpoint.
       */
.justify-sm-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the sm breakpoint.
       */
.justify-sm-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the sm breakpoint.
       */
.justify-sm-space-evenly {
  justify-content: space-evenly; }

/**
       * Bleed left for the sm breakpoint.
       */
.bleed-sm-left {
  padding-left: 0; }

/**
       * Bleed right for the sm breakpoint.
       */
.bleed-sm-right {
  padding-right: 0; }

/**
     * Order first for the `sm` breakpoint.
     */
.first-sm {
  order: -1; }

/**
     * Order last for the `sm` breakpoint.
     */
.last-sm {
  order: 1; }

/**
     * Reverse order for the `sm` breakpoint.
     */
.reverse-sm {
  flex-direction: row-reverse; }

/**
       * Column 1 for the `md` breakpoint.
       */
.col-md-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 1 for the `md` breakpoint.
         */
.offset-md-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `md` breakpoint.
       */
.col-md-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 2 for the `md` breakpoint.
         */
.offset-md-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `md` breakpoint.
       */
.col-md-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 12.66667px; }

/**
         * Offset 3 for the `md` breakpoint.
         */
.offset-md-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `md` breakpoint.
       */
.col-md-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 4 for the `md` breakpoint.
         */
.offset-md-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `md` breakpoint.
       */
.col-md-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 5 for the `md` breakpoint.
         */
.offset-md-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `md` breakpoint.
       */
.col-md-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 12.66667px; }

/**
         * Offset 6 for the `md` breakpoint.
         */
.offset-md-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `md` breakpoint.
       */
.col-md-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 7 for the `md` breakpoint.
         */
.offset-md-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `md` breakpoint.
       */
.col-md-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 8 for the `md` breakpoint.
         */
.offset-md-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `md` breakpoint.
       */
.col-md-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 12.66667px; }

/**
         * Offset 9 for the `md` breakpoint.
         */
.offset-md-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `md` breakpoint.
       */
.col-md-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 10 for the `md` breakpoint.
         */
.offset-md-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `md` breakpoint.
       */
.col-md-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 11 for the `md` breakpoint.
         */
.offset-md-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `md` breakpoint.
       */
.col-md-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 12.66667px; }

/**
       * Align `stretch` for the md breakpoint.
       */
.align-md-stretch {
  align-items: stretch; }

/**
       * Align `center` for the md breakpoint.
       */
.align-md-center {
  align-items: center; }

/**
       * Align `flex-start` for the md breakpoint.
       */
.align-md-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the md breakpoint.
       */
.align-md-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the md breakpoint.
       */
.align-md-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the md breakpoint.
       */
.justify-md-start {
  justify-content: start; }

/**
       * Justify `center` for the md breakpoint.
       */
.justify-md-center {
  justify-content: center; }

/**
       * Justify `space-between` for the md breakpoint.
       */
.justify-md-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the md breakpoint.
       */
.justify-md-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the md breakpoint.
       */
.justify-md-space-evenly {
  justify-content: space-evenly; }

/**
       * Bleed left for the md breakpoint.
       */
.bleed-md-left {
  padding-left: 0; }

/**
       * Bleed right for the md breakpoint.
       */
.bleed-md-right {
  padding-right: 0; }

/**
     * Order first for the `md` breakpoint.
     */
.first-md {
  order: -1; }

/**
     * Order last for the `md` breakpoint.
     */
.last-md {
  order: 1; }

/**
     * Reverse order for the `md` breakpoint.
     */
.reverse-md {
  flex-direction: row-reverse; }

/**
       * Column 1 for the `lg` breakpoint.
       */
.col-lg-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 1 for the `lg` breakpoint.
         */
.offset-lg-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `lg` breakpoint.
       */
.col-lg-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 2 for the `lg` breakpoint.
         */
.offset-lg-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `lg` breakpoint.
       */
.col-lg-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 12.66667px; }

/**
         * Offset 3 for the `lg` breakpoint.
         */
.offset-lg-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `lg` breakpoint.
       */
.col-lg-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 4 for the `lg` breakpoint.
         */
.offset-lg-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `lg` breakpoint.
       */
.col-lg-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 5 for the `lg` breakpoint.
         */
.offset-lg-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `lg` breakpoint.
       */
.col-lg-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 12.66667px; }

/**
         * Offset 6 for the `lg` breakpoint.
         */
.offset-lg-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `lg` breakpoint.
       */
.col-lg-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 7 for the `lg` breakpoint.
         */
.offset-lg-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `lg` breakpoint.
       */
.col-lg-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 8 for the `lg` breakpoint.
         */
.offset-lg-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `lg` breakpoint.
       */
.col-lg-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 12.66667px; }

/**
         * Offset 9 for the `lg` breakpoint.
         */
.offset-lg-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `lg` breakpoint.
       */
.col-lg-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 10 for the `lg` breakpoint.
         */
.offset-lg-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `lg` breakpoint.
       */
.col-lg-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 11 for the `lg` breakpoint.
         */
.offset-lg-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `lg` breakpoint.
       */
.col-lg-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 12.66667px; }

/**
       * Align `stretch` for the lg breakpoint.
       */
.align-lg-stretch {
  align-items: stretch; }

/**
       * Align `center` for the lg breakpoint.
       */
.align-lg-center {
  align-items: center; }

/**
       * Align `flex-start` for the lg breakpoint.
       */
.align-lg-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the lg breakpoint.
       */
.align-lg-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the lg breakpoint.
       */
.align-lg-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the lg breakpoint.
       */
.justify-lg-start {
  justify-content: start; }

/**
       * Justify `center` for the lg breakpoint.
       */
.justify-lg-center {
  justify-content: center; }

/**
       * Justify `space-between` for the lg breakpoint.
       */
.justify-lg-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the lg breakpoint.
       */
.justify-lg-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the lg breakpoint.
       */
.justify-lg-space-evenly {
  justify-content: space-evenly; }

/**
       * Bleed left for the lg breakpoint.
       */
.bleed-lg-left {
  padding-left: 0; }

/**
       * Bleed right for the lg breakpoint.
       */
.bleed-lg-right {
  padding-right: 0; }

/**
     * Order first for the `lg` breakpoint.
     */
.first-lg {
  order: -1; }

/**
     * Order last for the `lg` breakpoint.
     */
.last-lg {
  order: 1; }

/**
     * Reverse order for the `lg` breakpoint.
     */
.reverse-lg {
  flex-direction: row-reverse; }

/**
       * Column 1 for the `xl` breakpoint.
       */
.col-xl-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 1 for the `xl` breakpoint.
         */
.offset-xl-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `xl` breakpoint.
       */
.col-xl-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 2 for the `xl` breakpoint.
         */
.offset-xl-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `xl` breakpoint.
       */
.col-xl-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 12.66667px; }

/**
         * Offset 3 for the `xl` breakpoint.
         */
.offset-xl-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `xl` breakpoint.
       */
.col-xl-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 4 for the `xl` breakpoint.
         */
.offset-xl-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `xl` breakpoint.
       */
.col-xl-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 5 for the `xl` breakpoint.
         */
.offset-xl-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `xl` breakpoint.
       */
.col-xl-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 12.66667px; }

/**
         * Offset 6 for the `xl` breakpoint.
         */
.offset-xl-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `xl` breakpoint.
       */
.col-xl-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 7 for the `xl` breakpoint.
         */
.offset-xl-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `xl` breakpoint.
       */
.col-xl-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 8 for the `xl` breakpoint.
         */
.offset-xl-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `xl` breakpoint.
       */
.col-xl-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 12.66667px; }

/**
         * Offset 9 for the `xl` breakpoint.
         */
.offset-xl-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `xl` breakpoint.
       */
.col-xl-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 12.66667px; }

/**
         * Offset 10 for the `xl` breakpoint.
         */
.offset-xl-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `xl` breakpoint.
       */
.col-xl-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 12.66667px; }

/**
         * Offset 11 for the `xl` breakpoint.
         */
.offset-xl-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `xl` breakpoint.
       */
.col-xl-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 12.66667px; }

/**
       * Align `stretch` for the xl breakpoint.
       */
.align-xl-stretch {
  align-items: stretch; }

/**
       * Align `center` for the xl breakpoint.
       */
.align-xl-center {
  align-items: center; }

/**
       * Align `flex-start` for the xl breakpoint.
       */
.align-xl-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the xl breakpoint.
       */
.align-xl-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the xl breakpoint.
       */
.align-xl-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the xl breakpoint.
       */
.justify-xl-start {
  justify-content: start; }

/**
       * Justify `center` for the xl breakpoint.
       */
.justify-xl-center {
  justify-content: center; }

/**
       * Justify `space-between` for the xl breakpoint.
       */
.justify-xl-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the xl breakpoint.
       */
.justify-xl-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the xl breakpoint.
       */
.justify-xl-space-evenly {
  justify-content: space-evenly; }

/**
       * Bleed left for the xl breakpoint.
       */
.bleed-xl-left {
  padding-left: 0; }

/**
       * Bleed right for the xl breakpoint.
       */
.bleed-xl-right {
  padding-right: 0; }

/**
     * Order first for the `xl` breakpoint.
     */
.first-xl {
  order: -1; }

/**
     * Order last for the `xl` breakpoint.
     */
.last-xl {
  order: 1; }

/**
     * Reverse order for the `xl` breakpoint.
     */
.reverse-xl {
  flex-direction: row-reverse; }

/* ==========================================================================
   Headings.
   ========================================================================== */
/**
 * Heading 1.
 */
h1,
.heading-1 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.20833em;
  font-family: "Predige-Medium";
  color: #ed6a5e; }
  @media only screen and (max-width: 899px) {
    h1,
    .heading-1 {
      font-size: 48px;
      font-size: 4.8rem;
      line-height: 1.125em; } }

/**
 * Heading 2.
 */
h2,
.heading-2 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.125em;
  font-family: "Predige-Medium"; }
  @media only screen and (max-width: 899px) {
    h2,
    .heading-2 {
      font-size: 48px;
      font-size: 4.8rem;
      line-height: 1.125em;
      overflow-wrap: break-word; } }

/**
 * Heading 3.
 */
h3,
.heading-3 {
  font-size: 150px;
  font-size: 15rem;
  line-height: 1em;
  font-family: "Predige-Medium";
  -webkit-text-stroke: 1px #ed6a5e;
  color: transparent; }
  @media only screen and (max-width: 1199px) {
    h3,
    .heading-3 {
      font-size: 100px;
      font-size: 10rem;
      line-height: 1em; } }
  @media only screen and (max-width: 899px) {
    h3,
    .heading-3 {
      font-size: 50px;
      font-size: 5rem;
      line-height: 1em;
      max-width: 100vw;
      white-space: nowrap;
      overflow: hidden; } }

/* ==========================================================================
   Headings.
   ========================================================================== */
.has-load {
  position: relative;
  top: -150px;
  transition: all 1000ms ease;
  opacity: 0; }

.has-load[loaded='true'] {
  top: 0;
  opacity: 1; }

/* ==========================================================================
   Section
   ========================================================================== */
/* ==========================================================================
   Wrapper
   ========================================================================== */
/**
 * The wrapper object centers an element in the document.
 */
/**
 * Wrapper (default)
 */
.wrapper {
  max-width: calc(1250px + 190px);
  padding: 0 95px;
  width: 100%;
  margin: 0 auto; }
  @media only screen and (max-width: 599px) {
    .wrapper {
      padding: 0 40px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .wrapper {
      padding: 0 50px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .wrapper {
      padding: 0 60px; } }

/* ==========================================================================
   CMS Output
   ========================================================================== */
/**
 * Every conceivable HTML element within a `.cms-output` wrapper.
 *
 * 1. Exclude last childs.
 */
.cms-output > *:not(:last-child) {
  margin-bottom: 1em;
  /* 1 */ }

.cms-output ul {
  list-style-type: none; }
  .cms-output ul li {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.875em;
    width: calc(100% - 35px); }
    .cms-output ul li::before {
      left: 0;
      width: 5px;
      margin-right: 20px;
      content: '›'; }

.cms-output ol {
  list-style-type: decimal; }
  .cms-output ol li {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.875em; }

.cms-output p > a {
  color: #df4126; }
  .cms-output p > a:hover {
    text-decoration: underline; }

/* ==========================================================================
   Contact form
   ========================================================================== */
.contact-form {
  padding-bottom: 170px; }
  @media only screen and (max-width: 899px) {
    .contact-form {
      padding-bottom: 85px; } }

.contact-form__title {
  position: relative;
  top: -10px;
  left: -14px;
  padding-bottom: 85px;
  color: transparent; }
  @media only screen and (max-width: 899px) {
    .contact-form__title {
      left: -8px;
      margin-top: 25px;
      padding-bottom: 43px; } }

.contact-form__column-contact {
  width: 62%; }
  @media only screen and (max-width: 1199px) {
    .contact-form__column-contact {
      width: 100%; } }

.contact-form__contact-block {
  margin-bottom: 170px; }
  @media only screen and (max-width: 1199px) {
    .contact-form__contact-block {
      margin-bottom: 150px; } }
  @media only screen and (max-width: 899px) {
    .contact-form__contact-block {
      margin-bottom: 75px; } }
  .contact-form__contact-block:last-of-type {
    margin-bottom: 0; }
  .contact-form__contact-block:first-of-type .contact-form__contact-subtitle {
    padding-top: 0; }

.contact-form__contact-title {
  position: absolute;
  left: -15px;
  color: transparent; }
  @media only screen and (max-width: 899px) {
    .contact-form__contact-title {
      left: -8px; } }

.contact-form__contact-subtitle {
  max-width: 400px;
  margin-bottom: 25px;
  padding-top: 235px; }
  @media only screen and (max-width: 1199px) {
    .contact-form__contact-subtitle {
      padding-top: 152px; } }
  @media only screen and (max-width: 899px) {
    .contact-form__contact-subtitle {
      padding-top: 110px; } }

.contact-form__contact-editor {
  max-width: 585px; }

.contact-form__contact-logo {
  width: 100%;
  max-width: 290px;
  margin-top: 55px; }
  @media only screen and (max-width: 1199px) {
    .contact-form__contact-logo {
      margin-top: 40px; } }

.contact-form__column-form {
  width: 38%; }
  @media only screen and (max-width: 1199px) {
    .contact-form__column-form {
      display: none; } }

/* ==========================================================================
   Downloads
   ========================================================================== */
@media only screen and (max-width: 899px) {
  .downloads .wrapper {
    flex-direction: column-reverse;
    padding-top: 15px; } }

.downloads__item {
  margin-bottom: 164px; }
  @media only screen and (max-width: 1199px) {
    .downloads__item {
      margin-bottom: 115px; } }
  @media only screen and (max-width: 899px) {
    .downloads__item {
      margin-bottom: 90px; } }

.downloads__item-date {
  position: absolute;
  left: -14px;
  color: transparent; }
  @media only screen and (max-width: 899px) {
    .downloads__item-date {
      left: -7px; } }

.downloads__column-items {
  width: 61%;
  padding-right: 50px; }
  @media only screen and (max-width: 899px) {
    .downloads__column-items {
      width: 100%; } }

.downloads__item-title {
  margin-bottom: 27px;
  padding-top: 224px; }
  @media only screen and (max-width: 1199px) {
    .downloads__item-title {
      padding-top: 175px; } }
  @media only screen and (max-width: 899px) {
    .downloads__item-title {
      padding-top: 115px; } }

.downloads__item-image {
  max-width: 570px;
  margin: 35px 0; }

.downloads__item-editor {
  max-width: 570px; }

.downloads__item-link {
  margin-top: 35px; }

.downloads__column-links {
  width: 39%; }
  @media only screen and (max-width: 899px) {
    .downloads__column-links {
      width: 100%;
      margin-bottom: 75px; } }

.downloads__title {
  margin-bottom: 23px; }

.downloads__editor a {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.875em;
  transition: all 250ms ease; }
  .downloads__editor a:hover {
    color: #ed6a5e; }

/* ==========================================================================
   Footer columns
   ========================================================================== */
.footer-columns {
  line-height: 29px; }
  @media only screen and (max-width: 899px) {
    .footer-columns {
      font-size: 18px;
      font-size: 1.8rem;
      line-height: 2em; } }
  .footer-columns .wrapper {
    padding-top: 160px;
    padding-bottom: 175px; }
    @media only screen and (max-width: 899px) {
      .footer-columns .wrapper {
        padding-top: 70px;
        padding-bottom: 85px; } }
  .footer-columns a {
    transition: all 250ms ease; }
    .footer-columns a:hover {
      color: #ed6a5e; }

.footer-columns__contact {
  position: relative;
  width: 40%; }
  @media only screen and (max-width: 899px) {
    .footer-columns__contact {
      width: 100%;
      margin-bottom: 50px; } }

.footer-columns__contact-logo {
  position: absolute;
  top: -35px; }
  @media only screen and (max-width: 899px) {
    .footer-columns__contact-logo {
      position: relative;
      top: 0; } }
  .footer-columns__contact-logo img {
    max-width: 360px; }

.footer-columns__contact-editor {
  margin-top: 75px; }
  @media only screen and (max-width: 899px) {
    .footer-columns__contact-editor {
      margin-top: 30px; } }

.footer-columns__sitemaps {
  width: 45%; }
  @media only screen and (max-width: 899px) {
    .footer-columns__sitemaps {
      display: none; } }

.footer-columns__sitemap {
  width: 50%; }

.footer-columns__social-title,
.footer-columns__sitemap-title {
  margin-bottom: 45px; }
  @media only screen and (max-width: 899px) {
    .footer-columns__social-title,
    .footer-columns__sitemap-title {
      margin-bottom: 25px; } }

.footer-columns__social {
  width: 15%; }
  @media only screen and (max-width: 899px) {
    .footer-columns__social {
      width: 100%; } }

.footer-columns__social-links a {
  display: block; }
  .footer-columns__social-links a:hover {
    color: #ed6a5e; }

/* ==========================================================================
   Footer CTA
   ========================================================================== */
.footer-cta {
  overflow: hidden;
  z-index: 2; }
  .footer-cta .wrapper {
    position: relative; }

.background--border + .footer-cta {
  padding-top: 175px; }
  @media only screen and (max-width: 899px) {
    .background--border + .footer-cta {
      padding-top: 75px; } }

.footer-cta + div {
  margin-top: -95px; }
  @media only screen and (max-width: 899px) {
    .footer-cta + div {
      margin-top: 0; } }

.footer-cta__body {
  position: absolute;
  top: 160px;
  right: 0;
  max-width: 575px;
  max-height: 250px;
  padding: 60px 55px;
  background: #ed6a5e;
  color: #1f2b4c; }
  @media only screen and (max-width: 899px) {
    .footer-cta__body {
      top: 120px; } }
  @media only screen and (max-width: 599px) {
    .footer-cta__body {
      top: 40px;
      right: 40px;
      bottom: 40px;
      left: 40px;
      max-height: -webkit-fit-content;
      max-height: -moz-fit-content;
      max-height: fit-content;
      padding: 60px 40px; } }

.footer-cta__link {
  margin-top: 10px; }

.footer-cta__image {
  position: relative;
  width: 100vw;
  min-height: 570px; }
  @media only screen and (max-width: 899px) {
    .footer-cta__image {
      position: initial;
      height: 500px !important; } }
  .footer-cta__image img {
    position: absolute; }

/* ==========================================================================
   Footer
   ========================================================================== */
.footer {
  height: 50px;
  padding-top: 7px;
  background-color: #1f2b4c; }
  @media only screen and (max-width: 899px) {
    .footer {
      height: 40px;
      padding-top: 5px; } }

.footer__links a {
  font-size: 12px;
  font-size: 1.2rem;
  line-height: 1em;
  margin-right: 60px;
  transition: all 250ms ease;
  border-bottom: 2px solid white;
  color: white; }
  @media only screen and (max-width: 899px) {
    .footer__links a {
      font-size: 14px;
      font-size: 1.4rem;
      line-height: 0.85714em;
      margin-right: 20px;
      border: 0; } }
  @media only screen and (min-width: 900px) {
    .footer__links a:hover {
      border-bottom: 2px solid #ed6a5e;
      color: #ed6a5e; } }

/* ==========================================================================
   Form
   ========================================================================== */
.form {
  padding-bottom: 180px; }
  @media only screen and (max-width: 899px) {
    .form {
      padding-bottom: 85px; } }

.form__title {
  position: relative;
  top: -10px;
  left: -14px;
  padding-bottom: 85px;
  color: transparent; }
  @media only screen and (max-width: 899px) {
    .form__title {
      left: -8px;
      margin-top: 25px;
      padding-bottom: 50px; } }

.form__column-form {
  width: 72%; }
  @media only screen and (max-width: 1199px) {
    .form__column-form {
      width: 100%; } }

.form__column-image {
  width: 28%; }
  @media only screen and (max-width: 1199px) {
    .form__column-image {
      display: none; } }

.form__image img {
  position: absolute;
  right: 0;
  min-width: 435px; }

.form__shortcode {
  position: relative;
  z-index: 10; }

/* ==========================================================================
   Header
   ========================================================================== */
.header {
  position: absolute;
  width: 100%;
  height: 210px; }
  @media only screen and (max-width: 899px) {
    .header {
      height: 125px; } }
  .header .wrapper {
    align-items: center;
    height: 210px; }
    @media only screen and (max-width: 899px) {
      .header .wrapper {
        justify-content: space-between;
        height: 125px; } }

.header + div {
  padding-top: 210px; }
  @media only screen and (max-width: 899px) {
    .header + div {
      padding-top: 125px; } }

.header__logo {
  width: calc(100% - 479px);
  padding-right: 15px;
  z-index: 2; }
  @media only screen and (max-width: 899px) {
    .header__logo {
      width: calc(100% - 44px);
      transition: all 750ms ease; } }
  .header__logo img {
    width: 212px;
    height: 150px; }
    @media only screen and (max-width: 899px) {
      .header__logo img {
        width: auto;
        max-height: 100px; } }

@media only screen and (max-width: 899px) {
  .body.is-active .header__logo {
    z-index: 100; } }

.header__buttons {
  width: 445px;
  z-index: 2; }
  @media only screen and (max-width: 899px) {
    .header__buttons {
      display: none; } }

.header__button {
  border: 2px solid #1f2b4c;
  color: #1f2b4c; }
  .header__button svg {
    color: #1f2b4c;
    fill: #1f2b4c; }
  .header__button::after {
    background: #1f2b4c; }
  .header__button:hover {
    color: white; }
  .header__button.is-search {
    margin-right: 80px; }

/**
 * Mobile menu button.
 */
.header__menu-button {
  position: relative;
  width: 34px;
  height: 34px;
  z-index: 101; }
  .header__menu-button span {
    display: inline-block;
    position: absolute;
    right: 0;
    left: 0;
    width: 34px;
    height: 2px;
    margin: auto;
    background-color: #ed6a5e; }
    .header__menu-button span:nth-child(1) {
      top: 0;
      transition: background-color 400ms, top 400ms 400ms, transform 400ms 0s; }
    .header__menu-button span:nth-child(2) {
      top: calc(50% - 1px);
      transition: background-color 400ms, opacity 0ms 400ms;
      background-color: #ed6a5e;
      opacity: 1; }
    .header__menu-button span:nth-child(3) {
      bottom: 0;
      transition: background-color 400ms, bottom 400ms 400ms, transform 400ms 0s;
      background-color: #ed6a5e; }
  .header__menu-button.is-active span:nth-child(1) {
    top: calc(50% - 1px);
    transform: rotate(-45deg);
    transition: background-color 400ms, top 400ms, transform 400ms 400ms; }
  .header__menu-button.is-active span:nth-child(2) {
    opacity: 0; }
  .header__menu-button.is-active span:nth-child(3) {
    bottom: calc(50% - 1px);
    transform: rotate(45deg);
    transition: background-color 400ms, bottom 400ms, transform 400ms 400ms; }

/**
 * Header secondary colors.
 */
.header--secondary .header__button {
  border: 2px solid #1f2b4c;
  color: #1f2b4c; }
  .header--secondary .header__button svg {
    color: #1f2b4c;
    fill: #1f2b4c; }
  .header--secondary .header__button::after {
    background: #1f2b4c; }
  .header--secondary .header__button:hover {
    color: white; }

.header--secondary .header__menu-button span {
  background-color: #ed6a5e; }
  .header--secondary .header__menu-button span:nth-child(2), .header--secondary .header__menu-button span:nth-child(3) {
    background-color: #ed6a5e; }

/* ==========================================================================
   Home DNA form.
   ========================================================================== */
/**
 * Default styling.
 */
input[type='text'],
input[type='number'],
input[type='email'],
select,
textarea {
  display: block;
  width: 100%;
  padding: 7px 0;
  border-bottom: 1px solid #1f2b4c;
  background: transparent;
  color: #ed6a5e; }

textarea {
  height: 125px;
  border-bottom: 2px solid #1f2b4c; }

input::-moz-placeholder {
  color: #ed6a5e; }

input:-ms-input-placeholder {
  color: #ed6a5e; }

input::placeholder {
  color: #ed6a5e; }

/**
 * HomeDNA form.
 */
.homedna-survey {
  max-width: 575px; }

.homedna-survey label {
  display: block;
  font-family: "Predige-Medium"; }

.homedna-survey .question-type-static,
.homedna-survey .question-type-header {
  display: none; }

.homedna-survey .wrap-question {
  display: block;
  position: relative;
  width: 100%;
  margin-bottom: 26px;
  float: left;
  color: #1f2b4c; }
  .homedna-survey .wrap-question a {
    color: #ed6a5e;
    text-decoration: underline; }
    .homedna-survey .wrap-question a:hover {
      text-decoration: none; }

.homedna-survey .question-type-radio label {
  width: 100%; }

.homedna-survey input[type=radio],
.homedna-survey input[type=checkbox] {
  width: 14px;
  height: 14px;
  margin-top: 6px;
  margin-right: 10px;
  padding: 0;
  float: left;
  transition: 0.35s;
  border: 1px solid #1f2b4c; }
  .homedna-survey input[type=radio]:checked,
  .homedna-survey input[type=checkbox]:checked {
    background-color: #1f2b4c; }

.homedna-survey .btn-style {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1em;
  display: inline-flex;
  align-items: center;
  position: relative;
  height: 32px;
  margin: 50px 35px 0 0;
  padding: 0 10px;
  transition: all 250ms ease;
  border: 2px solid #ed6a5e;
  color: #ed6a5e;
  cursor: pointer; }
  .homedna-survey .btn-style svg {
    position: absolute;
    top: 6px;
    right: -37px;
    width: 35px;
    transition: all 250ms ease;
    color: #ed6a5e;
    fill: #ed6a5e; }
  .homedna-survey .btn-style::after {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 0;
    height: 100%;
    transition: all 350ms ease;
    background: #ed6a5e;
    content: '';
    z-index: -1; }
  .homedna-survey .btn-style:hover::after {
    width: 100%; }
  .homedna-survey .btn-style:hover {
    color: white; }

#formPageNav {
  margin-top: 20px; }

#formPageNav > .text {
  display: block;
  width: 100%;
  margin-bottom: 10px; }

#formPageNav > span[data-page] {
  display: inline-block;
  min-width: 30px;
  padding: 5px;
  transition: background-color 450ms, color 450ms;
  border: 1px solid #595a4e;
  text-align: center; }
  #formPageNav > span[data-page]:hover, #formPageNav > span[data-page].active {
    background-color: #595a4e;
    color: white; }

/* ==========================================================================
   Location
   ========================================================================== */
.location {
  overflow: hidden; }
  @media only screen and (max-width: 899px) {
    .location .wrapper {
      flex-direction: column-reverse;
      padding: 0; } }

.location__column-text {
  position: relative;
  width: 30%;
  padding: 90px 35px 0 0; }
  @media only screen and (max-width: 899px) {
    .location__column-text {
      width: calc(100% - 80px);
      margin: 70px 40px 80px;
      padding: 35px 0 0; } }
  .location__column-text::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 33px;
    height: 3px;
    background: #1f2b4c;
    content: ''; }
    @media only screen and (max-width: 899px) {
      .location__column-text::before {
        height: 2px; } }

.location__title {
  margin-bottom: 25px; }

h1.location__title {
  color: #1f2b4c; }

.location__column-map {
  width: 70%; }
  @media only screen and (max-width: 899px) {
    .location__column-map {
      position: relative;
      width: 100%; } }

.location__map {
  position: initial;
  width: 66.6vw;
  min-height: 600px; }
  @media only screen and (max-width: 899px) {
    .location__map {
      width: 100%;
      min-height: auto; } }
  @media only screen and (max-width: 599px) {
    .location__map {
      min-height: auto; } }

.location__map-container {
  width: 100%;
  height: 100%; }

/* ==========================================================================
   Mobile scroll
   ========================================================================== */
.mobile-scroll {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.27778em;
  position: absolute;
  right: 0;
  bottom: 170px;
  transform: rotate(90deg);
  color: #d99b68;
  cursor: pointer; }
  @media only screen and (min-width: 900px) {
    .mobile-scroll {
      display: none; } }
  .mobile-scroll svg {
    position: relative;
    top: -2px;
    right: 10px;
    width: 35px;
    height: 32px;
    transform: rotate(180deg);
    color: #d99b68;
    fill: #d99b68; }

/* ==========================================================================
   Navigation
   ========================================================================== */
.navigation {
  position: fixed;
  top: -100vh;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: all 500ms ease;
  background: linear-gradient(180deg, #ffe596 1.04%, #f5a162 23.96%, #ed6a5e 43.75%, #6b517c 63.02%, #243665 78.65%, #1f2b4c 96.35%);
  color: white;
  opacity: 0;
  z-index: 100;
  overflow-x: hidden; }
  @media only screen and (max-width: 899px) {
    .navigation {
      top: 100vh;
      height: auto;
      margin-top: 125px;
      padding: 12px 0 40px;
      transition: all 500ms ease;
      background: #ffe596;
      color: #1f2b4c; } }
  .navigation.is-active {
    top: 0;
    opacity: 1; }
  .navigation::-webkit-scrollbar {
    display: none; }

/**
 * Contact.
 */
.navigation__column-contact {
  width: 40%;
  padding-top: 90px;
  padding-right: 15px; }
  @media only screen and (max-width: 899px) {
    .navigation__column-contact {
      display: none; } }

.navigation__contact-block {
  margin-bottom: 22px; }
  .navigation__contact-block a:hover {
    transition: all 250ms ease; }
    @media only screen and (min-width: 900px) {
      .navigation__contact-block a:hover {
        color: #df4126; } }

.navigation__contact-title {
  margin-bottom: 22px; }

.navigation__contact-editor {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.875em; }

/**
 * Social.
 */
.navigation__social.is-desktop {
  display: none; }
  @media only screen and (min-width: 900px) {
    .navigation__social.is-desktop {
      display: block; } }

.navigation__social.is-mobile {
  display: none; }
  @media only screen and (max-width: 899px) {
    .navigation__social.is-mobile {
      display: block; } }

.navigation__social-title {
  margin: 70px 0 26px;
  color: white;
  font-family: "Predige-Medium"; }
  @media only screen and (max-width: 899px) {
    .navigation__social-title {
      font-size: 20px;
      font-size: 2rem;
      line-height: 1.8em;
      margin: 135px 0 21px;
      color: #1f2b4c; } }

.navigation__social-links a {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.875em;
  display: block;
  transition: all 250ms ease;
  color: white; }
  @media only screen and (max-width: 899px) {
    .navigation__social-links a {
      font-size: 20px;
      font-size: 2rem;
      line-height: 1.8em;
      color: #1f2b4c; } }
  @media only screen and (min-width: 900px) {
    .navigation__social-links a:hover {
      color: #ed6a5e; } }

/**
 * Main menu.
 */
.navigation__column-menu {
  width: 60%;
  min-height: 100vh;
  padding: 90px 0 0 95px;
  color: #1f2b4c; }
  @media only screen and (max-width: 899px) {
    .navigation__column-menu {
      width: 100%;
      min-height: auto;
      padding: 0; } }
  .navigation__column-menu::before {
    width: calc(100vw - 20px);
    background-color: #ffe596; }
    @media only screen and (max-width: 899px) {
      .navigation__column-menu::before {
        display: none; } }

.main-menu > li a {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.58333em;
  font-family: "Predige-Medium";
  transition: all 250ms ease; }
  @media only screen and (max-width: 899px) {
    .main-menu > li a {
      font-size: 30px;
      font-size: 3rem;
      line-height: 1.6em;
      word-break: break-word;
      color: #1f2b4c; } }

.main-menu > li.current-menu-item a, .main-menu > li:hover a {
  color: #ed6a5e; }

/**
 * Background header.
 */
@media only screen and (max-width: 899px) {
  .header::before {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 100%;
    left: 0;
    transition: all 500ms ease;
    background: #ffe596;
    content: ''; } }

/**
 * Disable scroll.
 */
.body.is-active {
  overflow: hidden; }
  .body.is-active .header::before {
    bottom: 0; }

/* ==========================================================================
   News list
   ========================================================================== */
@media only screen and (max-width: 899px) {
  .news-list .wrapper {
    flex-direction: column-reverse;
    padding-top: 15px; } }

/**
 * Items.
 */
.news-list__items {
  width: calc(100% - 479px);
  padding-right: 50px; }
  @media only screen and (max-width: 899px) {
    .news-list__items {
      width: 100%; } }

/**
 * Item.
 */
.news-list__item {
  margin-bottom: 164px; }
  @media only screen and (max-width: 1199px) {
    .news-list__item {
      margin-bottom: 115px; } }
  @media only screen and (max-width: 899px) {
    .news-list__item {
      margin-bottom: 90px; } }

.news-list__item-date {
  position: absolute;
  left: -14px;
  color: transparent; }
  @media only screen and (max-width: 899px) {
    .news-list__item-date {
      left: -7px; } }

.news-list__item-title {
  margin-bottom: 27px;
  padding-top: 224px; }
  @media only screen and (max-width: 1199px) {
    .news-list__item-title {
      padding-top: 175px; } }
  @media only screen and (max-width: 899px) {
    .news-list__item-title {
      padding-top: 115px; } }

.news-list__item-image {
  max-width: 570px;
  margin: 35px 0; }

.news-list__item-editor {
  max-width: 570px; }

.news-list__item-link {
  margin-top: 35px; }

/**
 * Pagination.
 */
.news-list__pagination {
  width: 479px; }
  @media only screen and (max-width: 899px) {
    .news-list__pagination {
      width: 100%;
      margin-bottom: 75px; } }
  .news-list__pagination .pagination {
    margin-top: 35px; }
    .news-list__pagination .pagination .page-numbers {
      margin-right: 3px;
      transition: all 250ms ease; }
    .news-list__pagination .pagination .prev,
    .news-list__pagination .pagination .next {
      display: none; }
    .news-list__pagination .pagination .current,
    .news-list__pagination .pagination .page-numbers:hover {
      border-bottom: 1px solid #595a4e; }
    .news-list__pagination .pagination a.page-numbers:hover {
      color: #df4126; }

@media only screen and (min-width: 900px) {
  .news-list__sticky.is-active {
    position: fixed;
    top: 80px; } }

.news-list__pagination-title {
  margin-bottom: 23px; }

.news-list__pagination-link {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em;
  transition: all 250ms ease; }
  .news-list__pagination-link:hover {
    color: #ed6a5e; }

.news-list__pagination-date {
  width: 145px; }
  @media only screen and (max-width: 599px) {
    .news-list__pagination-date {
      width: 80px; } }

/* ==========================================================================
   Partners image
   ========================================================================== */
.partners-image {
  position: relative; }
  .partners-image .wrapper {
    padding-top: 150px;
    padding-bottom: 175px; }
    @media only screen and (max-width: 1199px) {
      .partners-image .wrapper {
        padding-top: 91px;
        padding-bottom: 85px; } }
    @media only screen and (max-width: 899px) {
      .partners-image .wrapper {
        padding-top: 75px;
        padding-bottom: 85px; } }

.partners-image + div::before {
  background-color: #1f2b4c; }

.partners-image__title {
  position: absolute;
  top: -92px;
  left: -15px; }
  @media only screen and (max-width: 1199px) {
    .partners-image__title {
      top: -61px; } }
  @media only screen and (max-width: 899px) {
    .partners-image__title {
      top: -31px;
      left: -8px; } }

.partners-image__column-partners {
  width: 72%; }
  @media only screen and (max-width: 1199px) {
    .partners-image__column-partners {
      width: 100%; } }

.partners-image__partner {
  margin-bottom: 220px; }
  @media only screen and (max-width: 1199px) {
    .partners-image__partner {
      margin-bottom: 150px; } }
  @media only screen and (max-width: 899px) {
    .partners-image__partner {
      margin-bottom: 80px; } }
  .partners-image__partner:last-of-type {
    margin-bottom: 0; }
  .partners-image__partner:first-of-type .partners-image__partner-subtitle {
    padding-top: 0; }

.partners-image__partner-title {
  position: absolute;
  left: -15px; }
  @media only screen and (max-width: 899px) {
    .partners-image__partner-title {
      left: -8px; } }

.partners-image__partner-subtitle {
  max-width: 400px;
  margin-bottom: 25px;
  padding-top: 235px;
  color: #df4126; }
  @media only screen and (max-width: 1199px) {
    .partners-image__partner-subtitle {
      padding-top: 152px; } }
  @media only screen and (max-width: 899px) {
    .partners-image__partner-subtitle {
      padding-top: 110px; } }

.partners-image__partner-editor {
  max-width: 585px; }

.partners-image__column-image {
  width: 28%; }
  @media only screen and (max-width: 1199px) {
    .partners-image__column-image {
      display: none; } }

.partners-image__image img {
  position: absolute;
  right: 0;
  min-width: 435px; }

/* ==========================================================================
   Property map
   ========================================================================== */
@media only screen and (max-width: 899px) {
  .property-map {
    min-height: 125px; } }

.property-map.background--blue .property-map__column-details::before {
  background: #ed6a5e; }

.property-map.background--default .property-map__column-details::before {
  background: #1f2b4c; }

.property-map.background--border + .property-map {
  padding-top: 215px; }
  @media only screen and (max-width: 899px) {
    .property-map.background--border + .property-map {
      padding-top: 40px; } }

.property-map + .footer-cta {
  padding-top: 180px; }
  @media only screen and (max-width: 899px) {
    .property-map + .footer-cta {
      padding-top: 90px; } }

.property-map__column-details {
  position: relative;
  width: 30%;
  padding-top: 95px;
  overflow: hidden; }
  @media only screen and (max-width: 899px) {
    .property-map__column-details {
      display: none; } }
  .property-map__column-details::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 33px;
    height: 3px;
    content: ''; }

.property-map__column-map {
  width: 70%; }
  @media only screen and (max-width: 899px) {
    .property-map__column-map {
      width: 100%; } }

.property-map__placeholder {
  position: absolute;
  top: 95px;
  max-width: 210px;
  transition: all 600ms ease;
  opacity: 1; }
  .property-map__placeholder.is-hidden {
    top: -180px;
    opacity: 0; }

.property-map__properties {
  position: absolute;
  width: 100%; }

.property-map__property {
  position: absolute;
  top: -999px;
  width: 100%;
  max-width: 300px;
  transition: all 600ms ease;
  opacity: 0; }
  .property-map__property.is-active {
    top: 0;
    opacity: 1; }

.property-map__property-title {
  margin-bottom: 25px; }

/* ==========================================================================
   Property single
   ========================================================================== */
.property-single {
  position: relative; }
  .property-single .wrapper {
    align-items: center;
    padding-top: 160px;
    padding-bottom: 180px; }
    @media only screen and (max-width: 1199px) {
      .property-single .wrapper {
        padding-top: 91px;
        padding-bottom: 85px; } }
    @media only screen and (max-width: 899px) {
      .property-single .wrapper {
        flex-direction: column-reverse;
        padding-top: 75px;
        padding-bottom: 85px; } }

.property-single__title {
  position: absolute;
  top: -92px;
  left: -15px; }
  @media only screen and (max-width: 1199px) {
    .property-single__title {
      top: -61px; } }
  @media only screen and (max-width: 899px) {
    .property-single__title {
      font-size: 60px;
      font-size: 6rem;
      line-height: 1.2em;
      top: -42px;
      left: -8px; } }

.property-single__column-details {
  width: 290px;
  padding-right: 20px; }
  @media only screen and (max-width: 899px) {
    .property-single__column-details {
      width: 100%; } }

.property-single__subtitle {
  margin-bottom: 25px;
  color: #1f2b4c; }

.property-single__information {
  margin-bottom: 35px;
  color: #1f2b4c; }

.property-single__column-map {
  position: relative;
  width: calc(100% - 290px); }
  @media only screen and (max-width: 899px) {
    .property-single__column-map {
      width: 100%;
      margin-bottom: 80px; } }

.property-single__slideshow-images {
  border: 2px solid #595a4e; }

.property-single__navigation {
  position: absolute;
  right: 0;
  bottom: -38px; }
  .property-single__navigation button {
    margin-left: 18px;
    color: #1f2b4c; }
    .property-single__navigation button.active, .property-single__navigation button:hover {
      border-bottom: 2px solid #1f2b4c; }

/* ==========================================================================
   Property type item
   ========================================================================== */
.property-type-item {
  width: calc(50% - 47.5px);
  margin-bottom: 120px; }
  @media only screen and (max-width: 899px) {
    .property-type-item {
      width: 100%;
      margin-bottom: 80px; } }
  .property-type-item .button--arrow {
    display: flex;
    align-items: normal; }
  .property-type-item .button--arrow svg {
    top: 5px;
    height: 16px; }

.property-type-item__head {
  position: relative; }

.property-type-item__available {
  position: absolute;
  top: 30px;
  left: 30px;
  height: 40px;
  display: flex;
  align-items: center;
  padding: 0 13px;
  background-color: #1f2b4c;
  color: #ed6a5e; }

.property-type-item__image {
  margin-bottom: 35px; }
  .property-type-item__image img {
    width: 100%;
    height: auto; }

.property-type-item__total {
  display: inline-block;
  width: auto;
  margin-bottom: 25px; }

.property-type-item__title {
  margin-bottom: 25px; }

.property-type-item__teaser {
  margin-bottom: 20px; }

/**
 * Colors.
 */
.property-type-list.background--default .property-type-item__total {
  border-bottom: 2px solid #ed6a5e;
  color: #ed6a5e; }

/* ==========================================================================
   Property type list
   ========================================================================== */
.property-type-list {
  position: relative; }
  .property-type-list .wrapper {
    padding-top: 160px;
    padding-bottom: 130px; }
    @media only screen and (max-width: 1199px) {
      .property-type-list .wrapper {
        padding-top: 140px;
        padding-bottom: 100px; } }
    @media only screen and (max-width: 899px) {
      .property-type-list .wrapper {
        padding-top: 70px;
        padding-bottom: 0; } }

.property-type-list__title {
  position: absolute;
  top: -92px;
  left: -15px; }
  @media only screen and (max-width: 1199px) {
    .property-type-list__title {
      top: -61px; } }
  @media only screen and (max-width: 899px) {
    .property-type-list__title {
      font-size: 50px;
      font-size: 5rem;
      line-height: 1.44em;
      top: -42px;
      left: -8px; } }

/* ==========================================================================
   Slideshow
   ========================================================================== */
.slideshow {
  overflow: hidden; }
  @media only screen and (max-width: 899px) {
    .slideshow .wrapper {
      flex-direction: column-reverse;
      padding: 0; } }

.slideshow__column-text {
  position: relative;
  width: 30%;
  padding: 90px 35px 0 0; }
  @media only screen and (max-width: 899px) {
    .slideshow__column-text {
      width: calc(100% - 80px);
      margin: 70px 40px 80px;
      padding: 35px 0 0; } }
  .slideshow__column-text::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 33px;
    height: 3px;
    background: #1f2b4c;
    content: ''; }
    @media only screen and (max-width: 899px) {
      .slideshow__column-text::before {
        height: 2px; } }

.slideshow__title {
  margin-bottom: 25px; }

.slideshow__column-images {
  width: 70%; }
  @media only screen and (max-width: 899px) {
    .slideshow__column-images {
      position: relative;
      width: 100%; } }

.slideshow__images {
  position: initial;
  width: 66.6vw; }
  @media only screen and (max-width: 899px) {
    .slideshow__images {
      width: 100%; } }
  .slideshow__images .owl-nav {
    position: absolute;
    top: 210px;
    right: 0;
    bottom: 0;
    width: 50px;
    height: 50px;
    margin: auto 0;
    background-color: #1f2b4c;
    color: #ed6a5e;
    fill: #ed6a5e; }
    @media only screen and (max-width: 899px) {
      .slideshow__images .owl-nav {
        display: none; } }
    .slideshow__images .owl-nav .owl-prev {
      display: none; }
    .slideshow__images .owl-nav .owl-next {
      display: block;
      width: 100%;
      height: 100%; }
    .slideshow__images .owl-nav svg {
      width: 34px;
      height: 50px; }
  .slideshow__images .owl-dots {
    position: absolute;
    bottom: 0;
    margin-left: -28px;
    z-index: 2; }
    @media only screen and (max-width: 899px) {
      .slideshow__images .owl-dots {
        display: flex;
        right: 40px;
        bottom: -35px;
        margin: 0; } }
    .slideshow__images .owl-dots .owl-dot {
      display: block;
      width: 14px;
      height: 14px;
      margin-top: 14px;
      transition: all 250ms ease;
      border-radius: 10px;
      background-color: transparent; }
      @media only screen and (max-width: 899px) {
        .slideshow__images .owl-dots .owl-dot {
          margin: 0 0 0 14px; } }
  .slideshow__images.pagination-red .owl-dot {
    border: 2px solid #ed6a5e; }
    @media only screen and (max-width: 899px) {
      .slideshow__images.pagination-red .owl-dot {
        border: 2px solid #ed6a5e; } }
    .slideshow__images.pagination-red .owl-dot.active, .slideshow__images.pagination-red .owl-dot:hover {
      background-color: #ed6a5e; }
      @media only screen and (max-width: 899px) {
        .slideshow__images.pagination-red .owl-dot.active, .slideshow__images.pagination-red .owl-dot:hover {
          background-color: #ed6a5e; } }
  .slideshow__images.pagination-blue .owl-dot {
    border: 2px solid #1f2b4c; }
    @media only screen and (max-width: 899px) {
      .slideshow__images.pagination-blue .owl-dot {
        border: 2px solid #1f2b4c; } }
    .slideshow__images.pagination-blue .owl-dot.active, .slideshow__images.pagination-blue .owl-dot:hover {
      background-color: #1f2b4c; }
      @media only screen and (max-width: 899px) {
        .slideshow__images.pagination-blue .owl-dot.active, .slideshow__images.pagination-blue .owl-dot:hover {
          background-color: #1f2b4c; } }

.slideshow__slide {
  position: relative;
  width: 66.6vw;
  min-height: 600px; }
  @media only screen and (max-width: 899px) {
    .slideshow__slide {
      width: 100%;
      min-height: auto; } }
  @media only screen and (max-width: 599px) {
    .slideshow__slide {
      min-height: auto; } }

/* ==========================================================================
   Text image
   ========================================================================== */
.text-image .wrapper {
  padding-top: 120px;
  padding-bottom: 175px; }
  @media only screen and (max-width: 1199px) {
    .text-image .wrapper {
      padding-bottom: 110px; } }
  @media only screen and (max-width: 899px) {
    .text-image .wrapper {
      padding-top: 65px;
      padding-bottom: 90px; } }

.text-image.background--default {
  color: #df4126; }
  .text-image.background--default .button--border {
    border: 2px solid #595a4e;
    color: #595a4e; }
    .text-image.background--default .button--border svg {
      color: #595a4e;
      fill: #595a4e; }
    .text-image.background--default .button--border::after {
      background: #595a4e; }
    .text-image.background--default .button--border:hover {
      color: #cbd4d7; }
  .text-image.background--default .button--arrow {
    color: #595a4e; }
    .text-image.background--default .button--arrow svg {
      color: #595a4e;
      fill: #595a4e; }

.text-image__column-text {
  width: 54%;
  padding-right: 100px; }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .text-image__column-text {
      padding-right: 50px; } }
  @media only screen and (max-width: 899px) {
    .text-image__column-text {
      width: 100%;
      margin-bottom: 40px;
      padding: 0; } }

.text-image__title {
  margin-bottom: 30px; }

.text-image__editor {
  margin-bottom: 35px; }

.text-image__column-image {
  width: 46%; }
  @media only screen and (max-width: 899px) {
    .text-image__column-image {
      width: 100%; } }
  .text-image__column-image #play {
    transition: all 400ms ease; }
    .text-image__column-image #play span {
      display: flex;
      align-items: center;
      justify-content: center;
      position: absolute;
      width: 100px;
      height: 100px;
      border-radius: 50%;
      left: calc(50% - 50px); }
      .text-image__column-image #play span svg {
        width: 39px;
        height: 48px;
        margin-left: 6px;
        color: #df4126; }
    .text-image__column-image #play:hover {
      opacity: 0.8; }

/* ==========================================================================
   Text slideshow
   ========================================================================== */
.text-slideshow {
  position: relative; }
  .text-slideshow .wrapper {
    padding-top: 120px;
    padding-bottom: 180px; }
    @media only screen and (max-width: 1199px) {
      .text-slideshow .wrapper {
        padding-top: 51px;
        padding-bottom: 85px; } }
    @media only screen and (max-width: 899px) {
      .text-slideshow .wrapper {
        padding-top: 55px;
        padding-bottom: 85px; } }
  .text-slideshow.background--default .owl-nav {
    background-color: #1f2b4c; }
    .text-slideshow.background--default .owl-nav svg {
      color: #ed6a5e;
      fill: #ed6a5e; }
  .text-slideshow.background--default .owl-dot {
    border: 2px solid #ed6a5e; }
    .text-slideshow.background--default .owl-dot.active, .text-slideshow.background--default .owl-dot:hover {
      background-color: #ed6a5e; }
  .text-slideshow.background--blue .owl-nav, .text-slideshow.background--gradient .owl-nav {
    background-color: #1f2b4c; }
    .text-slideshow.background--blue .owl-nav svg, .text-slideshow.background--gradient .owl-nav svg {
      color: #ed6a5e;
      fill: #ed6a5e; }
  .text-slideshow.background--blue .owl-dot, .text-slideshow.background--gradient .owl-dot {
    border: 2px solid #ffe596; }
    .text-slideshow.background--blue .owl-dot.active, .text-slideshow.background--blue .owl-dot:hover, .text-slideshow.background--gradient .owl-dot.active, .text-slideshow.background--gradient .owl-dot:hover {
      background-color: #ffe596; }

.text-slideshow__wrap {
  overflow: hidden; }

.text-slideshow__title {
  position: absolute;
  top: -92px;
  left: -15px; }
  @media only screen and (max-width: 1199px) {
    .text-slideshow__title {
      top: -61px; } }
  @media only screen and (max-width: 899px) {
    .text-slideshow__title {
      top: -32px;
      left: -8px; } }

.text-slideshow__title + div {
  padding-top: 40px; }
  @media only screen and (max-width: 899px) {
    .text-slideshow__title + div {
      padding-top: 20px; } }

.text-slideshow__block-title {
  margin-bottom: 35px; }

/**
 * Slideshow.
 */
@media only screen and (min-width: 900px) {
  .text-image__slideshow .owl-stage-outer {
    width: 1790px; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .text-image__slideshow .owl-stage-outer {
    width: 1205px; } }

.text-image__slideshow .owl-nav {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 525px;
  width: 50px;
  height: 50px;
  margin: auto 0; }
  @media only screen and (max-width: 899px) {
    .text-image__slideshow .owl-nav {
      display: none; } }
  .text-image__slideshow .owl-nav .owl-prev {
    display: none; }
  .text-image__slideshow .owl-nav .owl-next {
    display: block;
    width: 100%;
    height: 100%; }
  .text-image__slideshow .owl-nav svg {
    width: 34px;
    height: 50px; }

.text-image__slideshow .owl-dots {
  position: absolute;
  bottom: 0;
  margin-left: -28px;
  z-index: 2; }
  @media only screen and (max-width: 899px) {
    .text-image__slideshow .owl-dots {
      display: flex;
      right: 0;
      bottom: -35px;
      margin: 0; } }
  .text-image__slideshow .owl-dots .owl-dot {
    display: block;
    width: 14px;
    height: 14px;
    margin-top: 14px;
    transition: all 250ms ease;
    border-radius: 10px;
    background-color: transparent; }
    @media only screen and (max-width: 899px) {
      .text-image__slideshow .owl-dots .owl-dot {
        margin: 0 0 0 14px; } }

/**
 * Slides.
 */
.text-image__slide {
  position: relative;
  width: 575px;
  height: 560px; }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .text-image__slide {
      width: 375px;
      height: 360px; } }
  @media only screen and (max-width: 899px) {
    .text-image__slide {
      width: 100%;
      height: 450px; } }
  @media only screen and (max-width: 599px) {
    .text-image__slide {
      width: 100%;
      height: 320px; } }

/**
 * Slideshow position.
 */
.text-slideshow__block {
  align-items: center;
  justify-content: space-between;
  margin-bottom: 120px; }
  @media only screen and (max-width: 899px) {
    .text-slideshow__block {
      align-items: left;
      margin-bottom: 90px; } }
  .text-slideshow__block:last-of-type {
    margin-bottom: 0; }
  .text-slideshow__block.text-slideshow__block--right .text-slideshow__column-text {
    width: calc(100% - 575px);
    max-width: 550px;
    padding: 0 50px 0 100px; }
    @media only screen and (min-width: 900px) and (max-width: 1199px) {
      .text-slideshow__block.text-slideshow__block--right .text-slideshow__column-text {
        width: calc(100% - 375px);
        padding: 0 50px 0 0; } }
    @media only screen and (max-width: 899px) {
      .text-slideshow__block.text-slideshow__block--right .text-slideshow__column-text {
        width: 100%;
        max-width: 100%;
        padding: 0 0 40px; } }
  .text-slideshow__block.text-slideshow__block--right .text-slideshow__column-images {
    width: 575px; }
    @media only screen and (min-width: 900px) and (max-width: 1199px) {
      .text-slideshow__block.text-slideshow__block--right .text-slideshow__column-images {
        width: 375px; } }
    @media only screen and (max-width: 899px) {
      .text-slideshow__block.text-slideshow__block--right .text-slideshow__column-images {
        width: 100%; } }
  @media only screen and (min-width: 900px) {
    .text-slideshow__block.text-slideshow__block--left {
      flex-direction: row-reverse; } }
  .text-slideshow__block.text-slideshow__block--left .text-slideshow__column-text {
    width: calc(100% - 575px);
    max-width: 550px;
    padding: 0 100px 0 50px; }
    @media only screen and (min-width: 900px) and (max-width: 1199px) {
      .text-slideshow__block.text-slideshow__block--left .text-slideshow__column-text {
        width: calc(100% - 375px);
        padding: 0 0 0 50px; } }
    @media only screen and (max-width: 899px) {
      .text-slideshow__block.text-slideshow__block--left .text-slideshow__column-text {
        width: 100%;
        max-width: auto;
        padding: 0 0 40px; } }
  @media only screen and (min-width: 900px) {
    .text-slideshow__block.text-slideshow__block--left .text-slideshow__column-images {
      display: flex;
      flex-direction: row-reverse;
      width: 575px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .text-slideshow__block.text-slideshow__block--left .text-slideshow__column-images {
      width: 375px; } }
  @media only screen and (max-width: 899px) {
    .text-slideshow__block.text-slideshow__block--left .text-slideshow__column-images {
      width: 100%; } }
  @media only screen and (min-width: 900px) {
    .text-slideshow__block.text-slideshow__block--left .text-slideshow__column-images .owl-carousel {
      width: auto; } }
  @media only screen and (min-width: 900px) {
    .text-slideshow__block.text-slideshow__block--left .owl-nav {
      right: 0;
      left: auto; } }
  @media only screen and (min-width: 900px) {
    .text-slideshow__block.text-slideshow__block--left .owl-dots {
      right: -28px;
      margin-left: 0; } }

/* ==========================================================================
   Color
   ========================================================================== */
/**
 * Color utility classes.
 */
/**
       * `color` black-100 color utility.
       */
.color-black-100 {
  color: black; }

/**
       * `background-color` black-100 color utility.
       */
.background-color-black-100 {
  background-color: black; }

/**
       * `color` white-100 color utility.
       */
.color-white-100 {
  color: white; }

/**
       * `background-color` white-100 color utility.
       */
.background-color-white-100 {
  background-color: white; }

/**
       * `color` #cbd4d7-100 color utility.
       */
.color-blue-light-100 {
  color: #cbd4d7; }

/**
       * `background-color` #cbd4d7-100 color utility.
       */
.background-color-blue-light-100 {
  background-color: #cbd4d7; }

/**
       * `color` #afb7ba-50 color utility.
       */
.color-blue-light-50 {
  color: #afb7ba; }

/**
       * `background-color` #afb7ba-50 color utility.
       */
.background-color-blue-light-50 {
  background-color: #afb7ba; }

/**
       * `color` #214391-100 color utility.
       */
.color-blue-dark-100 {
  color: #214391; }

/**
       * `background-color` #214391-100 color utility.
       */
.background-color-blue-dark-100 {
  background-color: #214391; }

/**
       * `color` #d99b68-100 color utility.
       */
.color-orange-100 {
  color: #d99b68; }

/**
       * `background-color` #d99b68-100 color utility.
       */
.background-color-orange-100 {
  background-color: #d99b68; }

/**
       * `color` #df4126-100 color utility.
       */
.color-red-100 {
  color: #df4126; }

/**
       * `background-color` #df4126-100 color utility.
       */
.background-color-red-100 {
  background-color: #df4126; }

/**
       * `color` #595a4e-100 color utility.
       */
.color-green-100 {
  color: #595a4e; }

/**
       * `background-color` #595a4e-100 color utility.
       */
.background-color-green-100 {
  background-color: #595a4e; }

/**
       * `color` #959b97-50 color utility.
       */
.color-green-50 {
  color: #959b97; }

/**
       * `background-color` #959b97-50 color utility.
       */
.background-color-green-50 {
  background-color: #959b97; }

/**
       * `color` #56574c-100 color utility.
       */
.color-green-background-100 {
  color: #56574c; }

/**
       * `background-color` #56574c-100 color utility.
       */
.background-color-green-background-100 {
  background-color: #56574c; }

/**
       * `color` #251713-100 color utility.
       */
.color-brown-100 {
  color: #251713; }

/**
       * `background-color` #251713-100 color utility.
       */
.background-color-brown-100 {
  background-color: #251713; }

/**
       * `color` #2b1c17-100 color utility.
       */
.color-brown-background-100 {
  color: #2b1c17; }

/**
       * `background-color` #2b1c17-100 color utility.
       */
.background-color-brown-background-100 {
  background-color: #2b1c17; }

/**
       * `color` #ffe596-100 color utility.
       */
.color-duyn-yellow-100 {
  color: #ffe596; }

/**
       * `background-color` #ffe596-100 color utility.
       */
.background-color-duyn-yellow-100 {
  background-color: #ffe596; }

/**
       * `color` #f5a162-100 color utility.
       */
.color-duyn-orange-100 {
  color: #f5a162; }

/**
       * `background-color` #f5a162-100 color utility.
       */
.background-color-duyn-orange-100 {
  background-color: #f5a162; }

/**
       * `color` #ed6a5e-100 color utility.
       */
.color-duyn-red-100 {
  color: #ed6a5e; }

/**
       * `background-color` #ed6a5e-100 color utility.
       */
.background-color-duyn-red-100 {
  background-color: #ed6a5e; }

/**
       * `color` #6b517c-100 color utility.
       */
.color-duyn-purple-100 {
  color: #6b517c; }

/**
       * `background-color` #6b517c-100 color utility.
       */
.background-color-duyn-purple-100 {
  background-color: #6b517c; }

/**
       * `color` #243665-100 color utility.
       */
.color-duyn-blue-100 {
  color: #243665; }

/**
       * `background-color` #243665-100 color utility.
       */
.background-color-duyn-blue-100 {
  background-color: #243665; }

/**
       * `color` #1f2b4c-100 color utility.
       */
.color-duyn-blue-dark-100 {
  color: #1f2b4c; }

/**
       * `background-color` #1f2b4c-100 color utility.
       */
.background-color-duyn-blue-dark-100 {
  background-color: #1f2b4c; }

/**
 * Generic helper classes.
 */
/**
 * Visually hide any element from the user.
 */
.visually-hidden {
  display: block;
  position: absolute;
  width: 1px;
  height: 1px;
  white-space: nowrap;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(1px);
          clip-path: inset(1px); }

/**
 * Make lazyload placeholder 100% wide.
 */
.lazyload {
  width: 100%; }

/**
 * Helper class for object fit polyfill. Add this class to any element
 * that utilizes the `object-fit` property.
 */
.object-fit {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  font-family: 'object-fit: cover;';
  -o-object-fit: cover;
     object-fit: cover; }

/**
 * Align center.
 */
.align-center {
  text-align: center; }

/**
 * Align left.
 */
.align-left {
  text-align: left; }

/**
 * Align right.
 */
.align-right {
  text-align: right; }

.w60 {
  width: 60%; }

.w40 {
  width: 40%; }

.w50 {
  width: 50%; }

/* ==========================================================================
   Object Fit
   ========================================================================== */
/**
 * Object fit.
 *
 * 1. Font family polyfill with (https://github.com/bfred-it/object-fit-images).
 */
/**
   * `object-fit` fill utility class.
   */
.fill {
  font-family: "object-fit: fill;";
  /* 1 */
  -o-object-fit: fill;
     object-fit: fill; }

/**
   * `object-fit` contain utility class.
   */
.contain {
  font-family: "object-fit: contain;";
  /* 1 */
  -o-object-fit: contain;
     object-fit: contain; }

/**
   * `object-fit` cover utility class.
   */
.cover {
  font-family: "object-fit: cover;";
  /* 1 */
  -o-object-fit: cover;
     object-fit: cover; }

/**
   * `object-fit` none utility class.
   */
.none {
  font-family: "object-fit: none;";
  /* 1 */
  -o-object-fit: none;
     object-fit: none; }

/**
   * `object-fit` scale-down utility class.
   */
.scale-down {
  font-family: "object-fit: scale-down;";
  /* 1 */
  -o-object-fit: scale-down;
     object-fit: scale-down; }

/* ==========================================================================
   Position
   ========================================================================== */
/**
 * Position utility class.
 */
.static {
  position: static; }

.relative {
  position: relative; }

.absolute {
  position: absolute; }

.fixed {
  position: fixed; }

.sticky {
  position: -webkit-sticky;
  position: sticky; }

/* ==========================================================================
   Text
   ========================================================================== */
/**
 * Font family utility classes.
 */
.text-xs-default {
  font-family: "Predige-Regular"; }

.text-xs-medium {
  font-family: "Predige-Medium"; }

.text-xs-heading {
  font-family: "BurfordRusticShadowTwoA"; }

.text-sm-default {
  font-family: "Predige-Regular"; }

.text-sm-medium {
  font-family: "Predige-Medium"; }

.text-sm-heading {
  font-family: "BurfordRusticShadowTwoA"; }

.text-md-default {
  font-family: "Predige-Regular"; }

.text-md-medium {
  font-family: "Predige-Medium"; }

.text-md-heading {
  font-family: "BurfordRusticShadowTwoA"; }

.text-lg-default {
  font-family: "Predige-Regular"; }

.text-lg-medium {
  font-family: "Predige-Medium"; }

.text-lg-heading {
  font-family: "BurfordRusticShadowTwoA"; }

.text-xl-default {
  font-family: "Predige-Regular"; }

.text-xl-medium {
  font-family: "Predige-Medium"; }

.text-xl-heading {
  font-family: "BurfordRusticShadowTwoA"; }

/**
 * Text size utility classes.
 */
.text-xs-h1 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.20833em; }

.text-xs-h2 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.125em; }

.text-xs-h3 {
  font-size: 150px;
  font-size: 15rem;
  line-height: 1em; }

.text-xs-p {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em; }

.text-sm-h1 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.20833em; }

.text-sm-h2 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.125em; }

.text-sm-h3 {
  font-size: 150px;
  font-size: 15rem;
  line-height: 1em; }

.text-sm-p {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em; }

.text-md-h1 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.20833em; }

.text-md-h2 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.125em; }

.text-md-h3 {
  font-size: 150px;
  font-size: 15rem;
  line-height: 1em; }

.text-md-p {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em; }

.text-lg-h1 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.20833em; }

.text-lg-h2 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.125em; }

.text-lg-h3 {
  font-size: 150px;
  font-size: 15rem;
  line-height: 1em; }

.text-lg-p {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em; }

.text-xl-h1 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.20833em; }

.text-xl-h2 {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.125em; }

.text-xl-h3 {
  font-size: 150px;
  font-size: 15rem;
  line-height: 1em; }

.text-xl-p {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em; }

/**
 * Text alignment utility classes.
 */
.text-xs-left {
  text-align: left; }

.text-xs-right {
  text-align: right; }

.text-xs-center {
  text-align: center; }

.text-sm-left {
  text-align: left; }

.text-sm-right {
  text-align: right; }

.text-sm-center {
  text-align: center; }

.text-md-left {
  text-align: left; }

.text-md-right {
  text-align: right; }

.text-md-center {
  text-align: center; }

.text-lg-left {
  text-align: left; }

.text-lg-right {
  text-align: right; }

.text-lg-center {
  text-align: center; }

.text-xl-left {
  text-align: left; }

.text-xl-right {
  text-align: right; }

.text-xl-center {
  text-align: center; }

/**
 * Font weight utility classes.
 *
 * 1. Multiply looped integer by 100 for correct font weight value.
 */
.text-xs-100 {
  font-weight: 100; }

.text-xs-200 {
  font-weight: 200; }

.text-xs-300 {
  font-weight: 300; }

.text-xs-400 {
  font-weight: 400; }

.text-xs-500 {
  font-weight: 500; }

.text-xs-600 {
  font-weight: 600; }

.text-xs-700 {
  font-weight: 700; }

.text-xs-800 {
  font-weight: 800; }

.text-xs-900 {
  font-weight: 900; }

.text-sm-100 {
  font-weight: 100; }

.text-sm-200 {
  font-weight: 200; }

.text-sm-300 {
  font-weight: 300; }

.text-sm-400 {
  font-weight: 400; }

.text-sm-500 {
  font-weight: 500; }

.text-sm-600 {
  font-weight: 600; }

.text-sm-700 {
  font-weight: 700; }

.text-sm-800 {
  font-weight: 800; }

.text-sm-900 {
  font-weight: 900; }

.text-md-100 {
  font-weight: 100; }

.text-md-200 {
  font-weight: 200; }

.text-md-300 {
  font-weight: 300; }

.text-md-400 {
  font-weight: 400; }

.text-md-500 {
  font-weight: 500; }

.text-md-600 {
  font-weight: 600; }

.text-md-700 {
  font-weight: 700; }

.text-md-800 {
  font-weight: 800; }

.text-md-900 {
  font-weight: 900; }

.text-lg-100 {
  font-weight: 100; }

.text-lg-200 {
  font-weight: 200; }

.text-lg-300 {
  font-weight: 300; }

.text-lg-400 {
  font-weight: 400; }

.text-lg-500 {
  font-weight: 500; }

.text-lg-600 {
  font-weight: 600; }

.text-lg-700 {
  font-weight: 700; }

.text-lg-800 {
  font-weight: 800; }

.text-lg-900 {
  font-weight: 900; }

.text-xl-100 {
  font-weight: 100; }

.text-xl-200 {
  font-weight: 200; }

.text-xl-300 {
  font-weight: 300; }

.text-xl-400 {
  font-weight: 400; }

.text-xl-500 {
  font-weight: 500; }

.text-xl-600 {
  font-weight: 600; }

.text-xl-700 {
  font-weight: 700; }

.text-xl-800 {
  font-weight: 800; }

.text-xl-900 {
  font-weight: 900; }

/**
 * Text transform uitlity classes.
 */
.text-xs-capitalize {
  text-transform: capitalize; }

.text-xs-uppercase {
  text-transform: uppercase; }

.text-xs-lowercase {
  text-transform: lowercase; }

.text-xs-none {
  text-transform: none; }

.text-xs-full-width {
  text-transform: full-width; }

.text-sm-capitalize {
  text-transform: capitalize; }

.text-sm-uppercase {
  text-transform: uppercase; }

.text-sm-lowercase {
  text-transform: lowercase; }

.text-sm-none {
  text-transform: none; }

.text-sm-full-width {
  text-transform: full-width; }

.text-md-capitalize {
  text-transform: capitalize; }

.text-md-uppercase {
  text-transform: uppercase; }

.text-md-lowercase {
  text-transform: lowercase; }

.text-md-none {
  text-transform: none; }

.text-md-full-width {
  text-transform: full-width; }

.text-lg-capitalize {
  text-transform: capitalize; }

.text-lg-uppercase {
  text-transform: uppercase; }

.text-lg-lowercase {
  text-transform: lowercase; }

.text-lg-none {
  text-transform: none; }

.text-lg-full-width {
  text-transform: full-width; }

.text-xl-capitalize {
  text-transform: capitalize; }

.text-xl-uppercase {
  text-transform: uppercase; }

.text-xl-lowercase {
  text-transform: lowercase; }

.text-xl-none {
  text-transform: none; }

.text-xl-full-width {
  text-transform: full-width; }

/* ==========================================================================
   Vertical Rhythm
   ========================================================================== */
.vr-0 {
  margin-bottom: 0px; }

.vr-8 {
  margin-bottom: 8px; }

.vr-16 {
  margin-bottom: 16px; }

.vr-24 {
  margin-bottom: 24px; }

.vr-32 {
  margin-bottom: 32px; }

.vr-40 {
  margin-bottom: 40px; }

.vr-48 {
  margin-bottom: 48px; }

.vr-56 {
  margin-bottom: 56px; }

.vr-64 {
  margin-bottom: 64px; }

.vr-72 {
  margin-bottom: 72px; }

.vr-80 {
  margin-bottom: 80px; }

/* ==========================================================================
   Z-index
   ========================================================================== */
/**
 * Utility classes for manipulating stacking order in HTML.
 */
.z-index-0 {
  z-index: 0; }

.z-index-1 {
  z-index: 10; }

.z-index-2 {
  z-index: 20; }

.z-index-3 {
  z-index: 30; }

.z-index-4 {
  z-index: 40; }

.z-index-5 {
  z-index: 50; }

.z-index-6 {
  z-index: 60; }

.z-index-7 {
  z-index: 70; }

.z-index-8 {
  z-index: 80; }

.z-index-9 {
  z-index: 90; }

.z-index-10 {
  z-index: 100; }

.iframe {
  position: relative;
  width: 560px;
  max-width: 100%; }

.iframe img {
  max-width: 100%;
  height: auto; }

.iframe iframe {
  display: none;
  max-width: 100%; }

.play-btn {
  position: absolute;
  z-index: 50;
  top: calc(50% - 50px);
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: transparent;
  border: 0; }

.play-btn:hover {
  cursor: pointer; }

.play-btn:focus {
  outline: 0; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwic2V0dGluZ3MvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL19jb3JlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL19hbmltYXRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL19hdXRvaGVpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL19sYXp5bG9hZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fdmlkZW8uc2NzcyIsInRvb2xzL19tYWduaWZpYy1wb3B1cC5zY3NzIiwiZ2VuZXJpYy9fYmFzZS5zY3NzIiwidG9vbHMvX21peGlucy5zY3NzIiwidG9vbHMvX2Z1bmN0aW9ucy5zY3NzIiwic2V0dGluZ3MvX2NvbG9yLnNjc3MiLCJnZW5lcmljL19yZXNldC5zY3NzIiwib2JqZWN0cy9fYmFja2dyb3VuZC5zY3NzIiwib2JqZWN0cy9fYnV0dG9ucy5zY3NzIiwib2JqZWN0cy9fY29udGFpbmVyLnNjc3MiLCJzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2NzcyIsIm9iamVjdHMvX2NvbnRlbnQtY29uc3RyYWludC5zY3NzIiwib2JqZWN0cy9fZmxleC5zY3NzIiwib2JqZWN0cy9faGVhZGluZ3Muc2NzcyIsIm9iamVjdHMvX2xhenktbG9hZC5zY3NzIiwib2JqZWN0cy9fc2VjdGlvbi5zY3NzIiwib2JqZWN0cy9fd3JhcHBlci5zY3NzIiwiY29tcG9uZW50cy9fY21zLW91dHB1dC5zY3NzIiwiY29tcG9uZW50cy9fY29udGFjdC1mb3JtLnNjc3MiLCJjb21wb25lbnRzL19kb3dubG9hZHMuc2NzcyIsImNvbXBvbmVudHMvX2Zvb3Rlci1jb2x1bW5zLnNjc3MiLCJjb21wb25lbnRzL19mb290ZXItY3RhLnNjc3MiLCJjb21wb25lbnRzL19mb290ZXIuc2NzcyIsImNvbXBvbmVudHMvX2Zvcm0uc2NzcyIsImNvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwiY29tcG9uZW50cy9faG9tZS1kbmEuc2NzcyIsImNvbXBvbmVudHMvX2xvY2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19tb2JpbGUtc2Nyb2xsLnNjc3MiLCJjb21wb25lbnRzL19uYXZpZ2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19uZXdzLWxpc3Quc2NzcyIsImNvbXBvbmVudHMvX3BhcnRuZXJzLWltYWdlLnNjc3MiLCJjb21wb25lbnRzL19wcm9wZXJ0eS1tYXAuc2NzcyIsImNvbXBvbmVudHMvX3Byb3BlcnR5LXNpbmdsZS5zY3NzIiwiY29tcG9uZW50cy9fcHJvcGVydHktdHlwZS1pdGVtLnNjc3MiLCJjb21wb25lbnRzL19wcm9wZXJ0eS10eXBlLWxpc3Quc2NzcyIsImNvbXBvbmVudHMvX3NsaWRlc2hvdy5zY3NzIiwiY29tcG9uZW50cy9fdGV4dC1pbWFnZS5zY3NzIiwiY29tcG9uZW50cy9fdGV4dC1zbGlkZXNob3cuc2NzcyIsInV0aWxpdGllcy9fY29sb3Iuc2NzcyIsInV0aWxpdGllcy9faGVscGVycy5zY3NzIiwidXRpbGl0aWVzL19vYmplY3QtZml0LnNjc3MiLCJ1dGlsaXRpZXMvX3Bvc2l0aW9uLnNjc3MiLCJ1dGlsaXRpZXMvX3RleHQuc2NzcyIsInV0aWxpdGllcy9fdmVydGljYWwtcmh5dGhtLnNjc3MiLCJ1dGlsaXRpZXMvX3otaW5kZXguc2NzcyIsInNldHRpbmdzL196LWluZGV4LnNjc3MiLCJ1dGlsaXRpZXMvX3ZpZGVvLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDYWhCO0VBQ0Usc0NBQXNDO0VBQ3RDLCtGQUErRixFQUFBOztBQUdqRztFQUNFLDZCQUE2QjtFQUM3QixzS0FDbUYsRUFBQTs7QUFHckY7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akhsQjs7K0Vkdy9CK0U7QWNuL0IvRTs7RWRzL0JFO0FjbC9CRjtFQUNFLGtCQUFrQixFQUFBO0VBRHBCO0lBSUksa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixRQUFRO0lBQ1IsU0FBUztJQUNULE9BQU87SUFDUCxXQUFXO0lBQ1gsV0FBVztJQUNYLFdBQVcsRUFBQTs7QUFJZjs7RWRrL0JFO0FjOStCRjtFQUNFLGNGMEJpQztFRXpCakMsYUZ5QmlDLEVBQUE7RUUzQm5DO0lBS0ksbUJGT2lDLEVBQUE7RUVackM7SUFTSSxjRlMrQixFQUFBO0VFbEJuQztJQWFJLGNGYytCLEVBQUE7RUUzQm5DO0lBaUJJLGNGVStCLEVBQUE7SUUzQm5DO01Bb0JNLGNGTzZCO01FTjdCLGFGTTZCLEVBQUE7RUUzQm5DO0lBMEJJLHlCRkMrQjtJRUEvQixjRkErQixFQUFBO0lFM0JuQztNQThCTSxjRkg2QjtNRUk3QixhRko2QixFQUFBOztBRVNuQzs7RWRrK0JFO0FjOTlCRjtFQUNFLFlGM0Q2QjtFRTREN0IsV0Y1RDZCLEVBQUE7RUUwRC9CO0lBS0ksbUJGbEIrQixFQUFBO0VFYW5DO0lBU0ksY0YvQitCLEVBQUE7RUVzQm5DO0lBYUksWUZ2RTJCLEVBQUE7RUUwRC9CO0lBaUJJLFlGM0UyQixFQUFBO0lFMEQvQjtNQW9CTSxZRjlFeUI7TUUrRXpCLFdGL0V5QixFQUFBO0VFMEQvQjtJQTBCSSx1QkZwRjJCO0lFcUYzQixZRnJGMkIsRUFBQTtJRTBEL0I7TUE4Qk0sWUZ4RnlCO01FeUZ6QixXRnpGeUIsRUFBQTs7QUU4Ri9COztFZGs5QkU7QWM5OEJGO0VBQ0UsWUZuRzZCO0VFb0c3QixXRnBHNkIsRUFBQTtFRWtHL0I7SUFLSSxtQkY3RG1DLEVBQUE7RUV3RHZDO0lBU0ksWUYzRzJCLEVBQUE7RUVrRy9CO0lBYUksWUYvRzJCLEVBQUE7SUVrRy9CO01BZ0JNLFlGbEh5QjtNRW1IekIsV0ZuSHlCLEVBQUE7RUVrRy9CO0lBc0JJLHVCRnhIMkI7SUV5SDNCLFlGekgyQixFQUFBO0lFa0cvQjtNQTBCTSxZRjVIeUI7TUU2SHpCLFdGN0h5QixFQUFBOztBRW1JL0I7O0VkbThCRTtBYy83QkY7RUFDRSxZRnhJNkI7RUV5STdCLFdGekk2QixFQUFBO0VFdUkvQjtJQUtJLGtJRnhFOEosRUFBQTtFRW1FbEs7SUFTSSxjRjVHK0IsRUFBQTtFRW1HbkM7SUFhSSxZRnBKMkIsRUFBQTtFRXVJL0I7SUFpQkksWUZ4SjJCLEVBQUE7SUV1SS9CO01Bb0JNLFlGM0p5QjtNRTRKekIsV0Y1SnlCLEVBQUE7RUV1SS9CO0lBMEJJLHVCRmpLMkI7SUVrSzNCLFlGbEsyQixFQUFBO0lFdUkvQjtNQThCTSxZRnJLeUI7TUVzS3pCLFdGdEt5QixFQUFBO0lFdUkvQjtNQW1DTSx1QkYxS3lCLEVBQUE7SUV1SS9CO01BdUNNLGNGakk2QixFQUFBOztBRXNJbkM7O0VkKzZCRTtBVTMrQkU7RUlnRUo7SUFFSSxnQkFBZ0IsRUFBQSxFQWtCbkI7O0FBcEJEO0VBV0ksWUFBWTtFQUNaLGlDRi9KK0IsRUFBQTtFRm1GL0I7SUlnRUo7TUFPTSxTQUFTO01BQ1QsaUNGM0o2QixFQUFBLEVFZ0toQzs7QUpqR0M7RUlvRko7SUFpQk0saUJBQWlCLEVBQUEsRUFFcEI7O0FBR0g7RUFNRSxpQkFBaUI7RUFDakIsaUJBQWlCLEVBQUE7RUo3RmY7SUlzRko7TUFFSSxhQUFhO01BQ2IsY0FBYyxFQUFBLEVBS2pCOztBQy9ORDs7K0VmdW9DK0U7QWVsb0MvRTs7RWZxb0NFO0Flam9DRjtFTDJDSSxlSzFDZ0I7RUwyQ2hCLGlCQzlCK0I7RURtQy9CLGtCQUFnRDtFSy9DbEQsb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osMEJBQTBCO0VBQzFCLGVBQWUsRUFBQTtFQU5qQjtJQVNJLFdBQVc7SUFDWCxZQUFZO0lBQ1osMEJBQTBCLEVBQUE7O0FBSzlCOztFZmtvQ0U7QWU5bkNGO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixlQUFlLEVBQUE7RUFIakI7SUFNSSxrQkFBa0I7SUFDbEIsU0FBUztJQUNULFlBQVksRUFBQTtFQVJoQjtJQVlJLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLFFBQVE7SUFDUixTQUFTO0lBQ1QsT0FBTztJQUNQLFFBQVE7SUFDUixZQUFZO0lBQ1osMEJBQTBCO0lBQzFCLFdBQVc7SUFDWCxXQUFXLEVBQUE7RUF0QmY7SUEwQkksV0FBVyxFQUFBO0VBMUJmO0lBOEJJLHlCSEorQjtJR0svQixjSEwrQixFQUFBO0lHMUJuQztNQWtDTSxjSFI2QjtNR1M3QixhSFQ2QixFQUFBO0lHMUJuQztNQXVDTSxtQkhiNkIsRUFBQTtJRzFCbkM7TUEyQ00sWUg5RHlCLEVBQUE7RUdtQi9CO0lBZ0RJLHVCSG5FMkI7SUdvRTNCLFlIcEUyQixFQUFBO0lHbUIvQjtNQW9ETSxZSHZFeUI7TUd3RXpCLFdIeEV5QixFQUFBO0lHbUIvQjtNQXlETSxpQkg1RXlCLEVBQUE7SUdtQi9CO01BNkRNLGNINUM2QixFQUFBO0VHakJuQztJQWtFSSx5QkhqRCtCO0lHa0QvQixjSGxEK0IsRUFBQTtJR2pCbkM7TUFzRU0sY0hyRDZCO01Hc0Q3QixhSHRENkIsRUFBQTtJR2pCbkM7TUEyRU0sbUJIMUQ2QixFQUFBO0lHakJuQztNQStFTSxZSGxHeUIsRUFBQTs7QUd3Ry9COztFZmltQ0U7QWU3bENGO0VBRUksa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixpQkFBaUIsRUFBQTs7QUFKckI7RUFTTSxpQkFBaUIsRUFBQTs7QUFUdkI7RUFjSSxjSDdFK0IsRUFBQTtFRytEbkM7SUFpQk0sY0hoRjZCO0lHaUY3QixhSGpGNkIsRUFBQTs7QUcrRG5DO0VBdUJJLGNIL0YrQixFQUFBO0VHd0VuQztJQTBCTSxjSGxHNkI7SUdtRzdCLGFIbkc2QixFQUFBOztBSTlDbkM7OytFaEIwdUMrRTtBZ0J0dUMvRTs7RWhCeXVDRTtBZ0JydUNGO0VOTU0sb0NBQTBDO0VBQzFDLHFCT01tRTtFUEZyRSxXQUFXO0VBQ1gsY0FBYyxFQUFBOztBUXBCbEI7OytFbEJzdkMrRTtBa0JsdkMvRTs7OztFbEJ1dkNFO0FrQmp2Q0Y7RUFDRSxrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLGdCQUFnQixFQUFBO0VBSGxCO0lBTUkseUJOOEIrQjtJTTdCL0IsWU5QMkIsRUFBQTtFTUEvQjtJQU1JLHlCTjhCK0I7SU03Qi9CLFlOUDJCLEVBQUE7O0FPVi9COzsrRW5Cc3dDK0U7QW1CbHdDL0U7Ozs7Ozs7Ozs7OztFbkIrd0NFO0FtQmp3Q0Y7Ozs7RW5Cc3dDRTtBbUJod0NGO0VBQ0UsYUFBYSxFQUFBOztBQUdmO0VBQ0UsZUFBZSxFQUFBOztBQUlqQjs7RW5CZ3dDRTtBbUI1dkNGO0VBQ0UsYUFBYTtFQUNiLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIscUJBQTJCLEVBQUE7O0FBSTdCOztFbkI2dkNFO0FtQnp2Q0Y7RUFDRSxPQUFPLEVBQUE7O0FBZUg7O1FuQit1Q0U7QW1CM3VDRjtFQUNFLGNBQWM7RUFDZCxlUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CdXVDRTtBbUJudUNGO0VBQ0UscUJSckQ0QixFQUFBOztBUWdDaEM7O1FuQjZ2Q0U7QW1CenZDRjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQnF2Q0U7QW1CanZDRjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkIyd0NFO0FtQnZ3Q0Y7RUFDRSxjQUFjO0VBQ2QsVVJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQm13Q0U7QW1CL3ZDRjtFQUNFLGdCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJ5eENFO0FtQnJ4Q0Y7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJpeENFO0FtQjd3Q0Y7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CdXlDRTtBbUJueUNGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CK3hDRTtBbUIzeENGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQnF6Q0U7QW1CanpDRjtFQUNFLGNBQWM7RUFDZCxVUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CNnlDRTtBbUJ6eUNGO0VBQ0UsZ0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQm0wQ0U7QW1CL3pDRjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQjJ6Q0U7QW1CdnpDRjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJpMUNFO0FtQjcwQ0Y7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJ5MENFO0FtQnIwQ0Y7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CKzFDRTtBbUIzMUNGO0VBQ0UsY0FBYztFQUNkLFVSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJ1MUNFO0FtQm4xQ0Y7RUFDRSxnQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CNjJDRTtBbUJ6MkNGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CcTJDRTtBbUJqMkNGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQjIzQ0U7QW1CdjNDRjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQm0zQ0U7QW1CLzJDRjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJ5NENFO0FtQnI0Q0Y7RUFDRSxjQUFjO0VBQ2QsV1J0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUF1QjFCOztRbkJtM0NFO0FtQi8yQ0Y7RUFDRSxvQkFQbUIsRUFBQTs7QUFFckI7O1FuQnkzQ0U7QW1CcjNDRjtFQUNFLG1CQVAyQixFQUFBOztBQUU3Qjs7UW5CKzNDRTtBbUIzM0NGO0VBQ0UsdUJBUHVDLEVBQUE7O0FBRXpDOztRbkJxNENFO0FtQmo0Q0Y7RUFDRSxxQkFQaUQsRUFBQTs7QUFFbkQ7O1FuQjI0Q0U7QW1CdjRDRjtFQUNFLHFCQVAyRCxFQUFBOztBQWU3RDs7UW5CbzRDRTtBbUJoNENGO0VBQ0Usc0JBUGlCLEVBQUE7O0FBRW5COztRbkIwNENFO0FtQnQ0Q0Y7RUFDRSx1QkFQeUIsRUFBQTs7QUFFM0I7O1FuQmc1Q0U7QW1CNTRDRjtFQUNFLDhCQVB3QyxFQUFBOztBQUUxQzs7UW5CczVDRTtBbUJsNUNGO0VBQ0UsNkJBUHNELEVBQUE7O0FBRXhEOztRbkI0NUNFO0FtQng1Q0Y7RUFDRSw2QkFQb0UsRUFBQTs7QUFldEU7O1FuQnE1Q0U7QW1CajVDRjtFQUNFLGVBQWdDLEVBQUE7O0FBTGxDOztRbkIyNUNFO0FtQnY1Q0Y7RUFDRSxnQkFBZ0MsRUFBQTs7QUFLcEM7O01uQnU1Q0U7QW1CbjVDRjtFQUNFLFNBQVMsRUFBQTs7QUFJWDs7TW5CbzVDRTtBbUJoNUNGO0VBQ0UsUUFBUSxFQUFBOztBQUlWOztNbkJpNUNFO0FtQjc0Q0Y7RUFDRSwyQkFBMkIsRUFBQTs7QUF6RjNCOztRbkIyK0NFO0FtQnYrQ0Y7RUFDRSxjQUFjO0VBQ2QsZVJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQm0rQ0U7QW1CLzlDRjtFQUNFLHFCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJ5L0NFO0FtQnIvQ0Y7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJpL0NFO0FtQjcrQ0Y7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CdWdERTtBbUJuZ0RGO0VBQ0UsY0FBYztFQUNkLFVSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkIrL0NFO0FtQjMvQ0Y7RUFDRSxnQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CcWhERTtBbUJqaERGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CNmdERTtBbUJ6Z0RGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQm1pREU7QW1CL2hERjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQjJoREU7QW1CdmhERjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJpakRFO0FtQjdpREY7RUFDRSxjQUFjO0VBQ2QsVVJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQnlpREU7QW1CcmlERjtFQUNFLGdCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkIrakRFO0FtQjNqREY7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJ1akRFO0FtQm5qREY7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CNmtERTtBbUJ6a0RGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CcWtERTtBbUJqa0RGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQjJsREU7QW1CdmxERjtFQUNFLGNBQWM7RUFDZCxVUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CbWxERTtBbUIva0RGO0VBQ0UsZ0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQnltREU7QW1Ccm1ERjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQmltREU7QW1CN2xERjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJ1bkRFO0FtQm5uREY7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkIrbURFO0FtQjNtREY7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CcW9ERTtBbUJqb0RGO0VBQ0UsY0FBYztFQUNkLFdSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBdUIxQjs7UW5CK21ERTtBbUIzbURGO0VBQ0Usb0JBUG1CLEVBQUE7O0FBRXJCOztRbkJxbkRFO0FtQmpuREY7RUFDRSxtQkFQMkIsRUFBQTs7QUFFN0I7O1FuQjJuREU7QW1Cdm5ERjtFQUNFLHVCQVB1QyxFQUFBOztBQUV6Qzs7UW5CaW9ERTtBbUI3bkRGO0VBQ0UscUJBUGlELEVBQUE7O0FBRW5EOztRbkJ1b0RFO0FtQm5vREY7RUFDRSxxQkFQMkQsRUFBQTs7QUFlN0Q7O1FuQmdvREU7QW1CNW5ERjtFQUNFLHNCQVBpQixFQUFBOztBQUVuQjs7UW5Cc29ERTtBbUJsb0RGO0VBQ0UsdUJBUHlCLEVBQUE7O0FBRTNCOztRbkI0b0RFO0FtQnhvREY7RUFDRSw4QkFQd0MsRUFBQTs7QUFFMUM7O1FuQmtwREU7QW1COW9ERjtFQUNFLDZCQVBzRCxFQUFBOztBQUV4RDs7UW5Cd3BERTtBbUJwcERGO0VBQ0UsNkJBUG9FLEVBQUE7O0FBZXRFOztRbkJpcERFO0FtQjdvREY7RUFDRSxlQUFnQyxFQUFBOztBQUxsQzs7UW5CdXBERTtBbUJucERGO0VBQ0UsZ0JBQWdDLEVBQUE7O0FBS3BDOztNbkJtcERFO0FtQi9vREY7RUFDRSxTQUFTLEVBQUE7O0FBSVg7O01uQmdwREU7QW1CNW9ERjtFQUNFLFFBQVEsRUFBQTs7QUFJVjs7TW5CNm9ERTtBbUJ6b0RGO0VBQ0UsMkJBQTJCLEVBQUE7O0FBekYzQjs7UW5CdXVERTtBbUJudURGO0VBQ0UsY0FBYztFQUNkLGVSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkIrdERFO0FtQjN0REY7RUFDRSxxQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CcXZERTtBbUJqdkRGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CNnVERTtBbUJ6dURGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQm13REU7QW1CL3ZERjtFQUNFLGNBQWM7RUFDZCxVUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CMnZERTtBbUJ2dkRGO0VBQ0UsZ0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQml4REU7QW1CN3dERjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQnl3REU7QW1CcndERjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkIreERFO0FtQjN4REY7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJ1eERFO0FtQm54REY7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CNnlERTtBbUJ6eURGO0VBQ0UsY0FBYztFQUNkLFVSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJxeURFO0FtQmp5REY7RUFDRSxnQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CMnpERTtBbUJ2ekRGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CbXpERTtBbUIveURGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQnkwREU7QW1CcjBERjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQmkwREU7QW1CN3pERjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJ1MURFO0FtQm4xREY7RUFDRSxjQUFjO0VBQ2QsVVJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQiswREU7QW1CMzBERjtFQUNFLGdCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJxMkRFO0FtQmoyREY7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkI2MURFO0FtQnoxREY7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CbTNERTtBbUIvMkRGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CMjJERTtBbUJ2MkRGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQmk0REU7QW1CNzNERjtFQUNFLGNBQWM7RUFDZCxXUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQXVCMUI7O1FuQjIyREU7QW1CdjJERjtFQUNFLG9CQVBtQixFQUFBOztBQUVyQjs7UW5CaTNERTtBbUI3MkRGO0VBQ0UsbUJBUDJCLEVBQUE7O0FBRTdCOztRbkJ1M0RFO0FtQm4zREY7RUFDRSx1QkFQdUMsRUFBQTs7QUFFekM7O1FuQjYzREU7QW1CejNERjtFQUNFLHFCQVBpRCxFQUFBOztBQUVuRDs7UW5CbTRERTtBbUIvM0RGO0VBQ0UscUJBUDJELEVBQUE7O0FBZTdEOztRbkI0M0RFO0FtQngzREY7RUFDRSxzQkFQaUIsRUFBQTs7QUFFbkI7O1FuQms0REU7QW1COTNERjtFQUNFLHVCQVB5QixFQUFBOztBQUUzQjs7UW5CdzRERTtBbUJwNERGO0VBQ0UsOEJBUHdDLEVBQUE7O0FBRTFDOztRbkI4NERFO0FtQjE0REY7RUFDRSw2QkFQc0QsRUFBQTs7QUFFeEQ7O1FuQm81REU7QW1CaDVERjtFQUNFLDZCQVBvRSxFQUFBOztBQWV0RTs7UW5CNjRERTtBbUJ6NERGO0VBQ0UsZUFBZ0MsRUFBQTs7QUFMbEM7O1FuQm01REU7QW1CLzRERjtFQUNFLGdCQUFnQyxFQUFBOztBQUtwQzs7TW5CKzRERTtBbUIzNERGO0VBQ0UsU0FBUyxFQUFBOztBQUlYOztNbkI0NERFO0FtQng0REY7RUFDRSxRQUFRLEVBQUE7O0FBSVY7O01uQnk0REU7QW1CcjRERjtFQUNFLDJCQUEyQixFQUFBOztBQXpGM0I7O1FuQm0rREU7QW1CLzlERjtFQUNFLGNBQWM7RUFDZCxlUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CMjlERTtBbUJ2OURGO0VBQ0UscUJSckQ0QixFQUFBOztBUWdDaEM7O1FuQmkvREU7QW1CNytERjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQnkrREU7QW1CcitERjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkIrL0RFO0FtQjMvREY7RUFDRSxjQUFjO0VBQ2QsVVJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQnUvREU7QW1Cbi9ERjtFQUNFLGdCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkI2Z0VFO0FtQnpnRUY7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJxZ0VFO0FtQmpnRUY7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CMmhFRTtBbUJ2aEVGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CbWhFRTtBbUIvZ0VGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQnlpRUU7QW1CcmlFRjtFQUNFLGNBQWM7RUFDZCxVUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CaWlFRTtBbUI3aEVGO0VBQ0UsZ0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQnVqRUU7QW1CbmpFRjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQitpRUU7QW1CM2lFRjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJxa0VFO0FtQmprRUY7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkI2akVFO0FtQnpqRUY7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CbWxFRTtBbUIva0VGO0VBQ0UsY0FBYztFQUNkLFVSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkIya0VFO0FtQnZrRUY7RUFDRSxnQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CaW1FRTtBbUI3bEVGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CeWxFRTtBbUJybEVGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQittRUU7QW1CM21FRjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQnVtRUU7QW1Cbm1FRjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkI2bkVFO0FtQnpuRUY7RUFDRSxjQUFjO0VBQ2QsV1J0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUF1QjFCOztRbkJ1bUVFO0FtQm5tRUY7RUFDRSxvQkFQbUIsRUFBQTs7QUFFckI7O1FuQjZtRUU7QW1Cem1FRjtFQUNFLG1CQVAyQixFQUFBOztBQUU3Qjs7UW5CbW5FRTtBbUIvbUVGO0VBQ0UsdUJBUHVDLEVBQUE7O0FBRXpDOztRbkJ5bkVFO0FtQnJuRUY7RUFDRSxxQkFQaUQsRUFBQTs7QUFFbkQ7O1FuQituRUU7QW1CM25FRjtFQUNFLHFCQVAyRCxFQUFBOztBQWU3RDs7UW5Cd25FRTtBbUJwbkVGO0VBQ0Usc0JBUGlCLEVBQUE7O0FBRW5COztRbkI4bkVFO0FtQjFuRUY7RUFDRSx1QkFQeUIsRUFBQTs7QUFFM0I7O1FuQm9vRUU7QW1CaG9FRjtFQUNFLDhCQVB3QyxFQUFBOztBQUUxQzs7UW5CMG9FRTtBbUJ0b0VGO0VBQ0UsNkJBUHNELEVBQUE7O0FBRXhEOztRbkJncEVFO0FtQjVvRUY7RUFDRSw2QkFQb0UsRUFBQTs7QUFldEU7O1FuQnlvRUU7QW1Ccm9FRjtFQUNFLGVBQWdDLEVBQUE7O0FBTGxDOztRbkIrb0VFO0FtQjNvRUY7RUFDRSxnQkFBZ0MsRUFBQTs7QUFLcEM7O01uQjJvRUU7QW1Cdm9FRjtFQUNFLFNBQVMsRUFBQTs7QUFJWDs7TW5Cd29FRTtBbUJwb0VGO0VBQ0UsUUFBUSxFQUFBOztBQUlWOztNbkJxb0VFO0FtQmpvRUY7RUFDRSwyQkFBMkIsRUFBQTs7QUF6RjNCOztRbkIrdEVFO0FtQjN0RUY7RUFDRSxjQUFjO0VBQ2QsZVJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQnV0RUU7QW1CbnRFRjtFQUNFLHFCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkI2dUVFO0FtQnp1RUY7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJxdUVFO0FtQmp1RUY7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CMnZFRTtBbUJ2dkVGO0VBQ0UsY0FBYztFQUNkLFVSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJtdkVFO0FtQi91RUY7RUFDRSxnQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CeXdFRTtBbUJyd0VGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CaXdFRTtBbUI3dkVGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQnV4RUU7QW1CbnhFRjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQit3RUU7QW1CM3dFRjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJxeUVFO0FtQmp5RUY7RUFDRSxjQUFjO0VBQ2QsVVJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQjZ4RUU7QW1CenhFRjtFQUNFLGdCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkJtekVFO0FtQi95RUY7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkIyeUVFO0FtQnZ5RUY7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CaTBFRTtBbUI3ekVGO0VBQ0UsY0FBYztFQUNkLGdCUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CeXpFRTtBbUJyekVGO0VBQ0Usc0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQiswRUU7QW1CMzBFRjtFQUNFLGNBQWM7RUFDZCxVUnRDOEI7RVF1QzlCLHFCQUF3QixFQUFBOztBQVN4Qjs7VW5CdTBFRTtBbUJuMEVGO0VBQ0UsZ0JSckQ0QixFQUFBOztBUWdDaEM7O1FuQjYxRUU7QW1CejFFRjtFQUNFLGNBQWM7RUFDZCxnQlJ0QzhCO0VRdUM5QixxQkFBd0IsRUFBQTs7QUFTeEI7O1VuQnExRUU7QW1CajFFRjtFQUNFLHNCUnJENEIsRUFBQTs7QVFnQ2hDOztRbkIyMkVFO0FtQnYyRUY7RUFDRSxjQUFjO0VBQ2QsZ0JSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBU3hCOztVbkJtMkVFO0FtQi8xRUY7RUFDRSxzQlJyRDRCLEVBQUE7O0FRZ0NoQzs7UW5CeTNFRTtBbUJyM0VGO0VBQ0UsY0FBYztFQUNkLFdSdEM4QjtFUXVDOUIscUJBQXdCLEVBQUE7O0FBdUIxQjs7UW5CbTJFRTtBbUIvMUVGO0VBQ0Usb0JBUG1CLEVBQUE7O0FBRXJCOztRbkJ5MkVFO0FtQnIyRUY7RUFDRSxtQkFQMkIsRUFBQTs7QUFFN0I7O1FuQisyRUU7QW1CMzJFRjtFQUNFLHVCQVB1QyxFQUFBOztBQUV6Qzs7UW5CcTNFRTtBbUJqM0VGO0VBQ0UscUJBUGlELEVBQUE7O0FBRW5EOztRbkIyM0VFO0FtQnYzRUY7RUFDRSxxQkFQMkQsRUFBQTs7QUFlN0Q7O1FuQm8zRUU7QW1CaDNFRjtFQUNFLHNCQVBpQixFQUFBOztBQUVuQjs7UW5CMDNFRTtBbUJ0M0VGO0VBQ0UsdUJBUHlCLEVBQUE7O0FBRTNCOztRbkJnNEVFO0FtQjUzRUY7RUFDRSw4QkFQd0MsRUFBQTs7QUFFMUM7O1FuQnM0RUU7QW1CbDRFRjtFQUNFLDZCQVBzRCxFQUFBOztBQUV4RDs7UW5CNDRFRTtBbUJ4NEVGO0VBQ0UsNkJBUG9FLEVBQUE7O0FBZXRFOztRbkJxNEVFO0FtQmo0RUY7RUFDRSxlQUFnQyxFQUFBOztBQUxsQzs7UW5CMjRFRTtBbUJ2NEVGO0VBQ0UsZ0JBQWdDLEVBQUE7O0FBS3BDOztNbkJ1NEVFO0FtQm40RUY7RUFDRSxTQUFTLEVBQUE7O0FBSVg7O01uQm80RUU7QW1CaDRFRjtFQUNFLFFBQVEsRUFBQTs7QUFJVjs7TW5CaTRFRTtBbUI3M0VGO0VBQ0UsMkJBQTJCLEVBQUE7O0FDMUpqQzs7K0VwQjRoRitFO0FvQnhoRi9FOztFcEIyaEZFO0FvQnZoRkY7O0VWNENJLGVVdENnQjtFVnVDaEIsaUJDOUIrQjtFRG1DL0Isc0JBQWdEO0VVM0NsRCw2Qm5CUjBCO0VtQlMxQixjUjhCaUMsRUFBQTtFRm1GL0I7SVV6SEo7O01WNENJLGVVekNrQjtNVjBDbEIsaUJDOUIrQjtNRG1DL0Isb0JBQWdELEVBQUEsRVV6Q25EOztBQUdEOztFcEI0aEZFO0FvQnhoRkY7O0VWNEJJLGVVckJnQjtFVnNCaEIsaUJDOUIrQjtFRG1DL0Isb0JBQWdEO0VVMUJsRCw2Qm5CekIwQixFQUFBO0VTMEh4QjtJVXpHSjs7TVY0QkksZVV6QmtCO01WMEJsQixpQkM5QitCO01EbUMvQixvQkFBZ0Q7TVU5QmhELHlCQUF5QixFQUFBLEVBSzVCOztBQUdEOztFcEI2aEZFO0FvQnpoRkY7O0VWWUksZ0JVQ2lCO0VWQWpCLGdCQzlCK0I7RURtQy9CLGdCQUFnRDtFVUpsRCw2Qm5CL0MwQjtFbUJnRDFCLGdDUlRpQztFUVVqQyxrQkFBa0IsRUFBQTtFVjZEaEI7SVU3RUo7O01WWUksZ0JVVG1CO01WVW5CLGdCQzlCK0I7TURtQy9CLGdCQUFnRCxFQUFBLEVVRG5EO0VWd0VHO0lVekZKOztNVllJLGVVTGtCO01WTWxCLGVDOUIrQjtNRG1DL0IsZ0JBQWdEO01VVmhELGdCQUFnQjtNQUNoQixtQkFBbUI7TUFDbkIsZ0JBQWdCLEVBQUEsRUFPbkI7O0FDekREOzsrRXJCNGxGK0U7QXFCeGxGL0U7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLDJCQUEyQjtFQUMzQixVQUFVLEVBQUE7O0FBR1o7RUFDRSxNQUFNO0VBQ04sVUFBVSxFQUFBOztBQ2JaOzsrRXRCeW1GK0U7QXVCem1GL0U7OytFdkI0bUYrRTtBdUJ4bUYvRTs7RXZCMm1GRTtBdUJubUZGOztFdkJzbUZFO0F1QmxtRkY7RWJGTSwrQkFBMEM7RUFDMUMsZWFOZ0I7RWJVbEIsV0FBVztFQUNYLGNBQWMsRUFBQTtFQXFIZDtJYXpISjtNQUdJLGVBQWUsRUFBQSxFQVlsQjtFYjhGRztJYTdHSjtNQU9JLGVBQWUsRUFBQSxFQVFsQjtFYmtGRztJYWpHSjtNQVdJLGVBQWUsRUFBQSxFQUlsQjs7QUMvQkQ7OytFeEJvb0YrRTtBd0Job0YvRTs7OztFeEJxb0ZFO0F3Qi9uRkY7RUFLTSxrQkFBa0I7RUFBRSxNQUFBLEVBQU87O0FBTGpDO0VBVUkscUJBQXFCLEVBQUE7RUFWekI7SWQwQ0ksZWM3Qm9CO0lkOEJwQixpQkM5QitCO0lEbUMvQixvQkFBZ0Q7SWNsQzlDLHdCQUF3QixFQUFB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YnlCLEVBQUE7O0FpQ1EzQjs7UTdDazBJRTtBNkM5eklGO0VBQ0UseUJqQ2J5QixFQUFBOztBaUNRM0I7O1E3Q3cwSUU7QTZDcDBJRjtFQUNFLGNqQ1oyQixFQUFBOztBaUNPN0I7O1E3QzgwSUU7QTZDMTBJRjtFQUNFLHlCakNaMkIsRUFBQTs7QWlDTzdCOztRN0NvMUlFO0E2Q2gxSUY7RUFDRSxjakNUeUIsRUFBQTs7QWlDSTNCOztRN0MwMUlFO0E2Q3QxSUY7RUFDRSx5QmpDVHlCLEVBQUE7O0FpQ0kzQjs7UTdDZzJJRTtBNkM1MUlGO0VBQ0UsY2pDTndCLEVBQUE7O0FpQ0MxQjs7UTdDczJJRTtBNkNsMklGO0VBQ0UseUJqQ053QixFQUFBOztBaUNDMUI7O1E3QzQySUU7QTZDeDJJRjtFQUNFLGNqQ0h1QixFQUFBOztBaUNGekI7O1E3Q2szSUU7QTZDOTJJRjtFQUNFLHlCakNIdUIsRUFBQTs7QWlDRnpCOztRN0N3M0lFO0E2Q3AzSUY7RUFDRSxjakNBdUIsRUFBQTs7QWlDTHpCOztRN0M4M0lFO0E2QzEzSUY7RUFDRSx5QmpDQXVCLEVBQUE7O0FpQ0x6Qjs7UTdDbzRJRTtBNkNoNElGO0VBQ0UsY2pDQzJCLEVBQUE7O0FpQ043Qjs7UTdDMDRJRTtBNkN0NElGO0VBQ0UseUJqQ0MyQixFQUFBOztBaUNON0I7O1E3Q2c1SUU7QTZDNTRJRjtFQUNFLGNqQ0l1QixFQUFBOztBaUNUekI7O1E3Q3M1SUU7QTZDbDVJRjtFQUNFLHlCakNJdUIsRUFBQTs7QWlDVHpCOztRN0M0NUlFO0E2Q3g1SUY7RUFDRSxjakNPd0IsRUFBQTs7QWlDWjFCOztRN0NrNklFO0E2Qzk1SUY7RUFDRSx5QmpDT3dCLEVBQUE7O0FpQ1oxQjs7UTdDdzZJRTtBNkNwNklGO0VBQ0UsY2pDVXdCLEVBQUE7O0FpQ2YxQjs7UTdDODZJRTtBNkMxNklGO0VBQ0UseUJqQ1V3QixFQUFBOztBaUNmMUI7O1E3Q283SUU7QTZDaDdJRjtFQUNFLGNqQ2M2QixFQUFBOztBaUNuQi9COztRN0MwN0lFO0E2Q3Q3SUY7RUFDRSx5QmpDYzZCLEVB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LHNDaERKOEIsRUFBQTs7QWdER2hDO0VBQ0UsOEJoRE5zQixFQUFBOztBZ0RLeEI7RUFDRSw2QmhETG9CLEVBQUE7O0FnREl0QjtFQUNFLHNDaERKOEIsRUFBQTs7QWdER2hDO0VBQ0UsOEJoRE5zQixFQUFBOztBZ0RLeEI7RUFDRSw2QmhETG9CLEVBQUE7O0FnREl0QjtFQUNFLHNDaERKOEIsRUFBQTs7QWdEV3RDOztFakRzckpFO0FpRC9xSkk7RXZDMEJGLGVUcEJRO0VTcUJSLGlCQzlCK0I7RURtQy9CLHNCQUFnRCxFQUFBOztBdUNoQzlDO0V2QzBCRixlVG5CUTtFU29CUixpQkM5QitCO0VEbUMvQixvQkFBZ0QsRUFBQTs7QXVDaEM5QztFdkMwQkYsZ0JUbEJTO0VTbUJULGdCQzlCK0I7RURtQy9CLGdCQUFnRCxFQUFBOztBdUNoQzlDO0V2QzBCRixlVGpCTztFU2tCUCxpQkM5QitCO0VEbUMvQixrQkFBZ0QsRUFBQTs7QXVDaEM5QztFdkMwQkYsZVRwQlE7RVNxQlIsaUJDOUIrQjtFRG1DL0Isc0JBQWdELEVBQUE7O0F1Q2hDOUM7RXZDMEJGLGVUbkJRO0VTb0JSLGlCQzlCK0I7RURtQy9CLG9CQUFnRCxFQUFBOztBdUNoQzlDO0V2QzBCRixnQlRsQlM7RVNtQlQsZ0JDOUIrQjtFRG1DL0IsZ0JBQWdELEVBQUE7O0F1Q2hDOUM7RXZDMEJGLGVUakJPO0VTa0JQLGlCQzlCK0I7RURtQy9CLGtCQUFnRCxFQUFBOztBdUNoQzlDO0V2QzBCRixlVHBCUTtFU3FCUixpQkM5QitCO0VEbUMvQixzQkFBZ0QsRUFBQTs7QXVDaEM5QztFdkMwQkYsZVRuQlE7RVNvQlIsaUJDOUIrQjtFRG1DL0Isb0JBQWdELEVBQUE7O0F1Q2hDOUM7RXZDMEJGLGdCVGxCUztFU21CVCxnQkM5QitCO0VEbUMvQixnQkFBZ0QsRUFBQTs7QXVDaEM5QztFdkMwQkYsZVRqQk87RVNrQlAsaUJDOUIrQjtFRG1DL0Isa0JBQWdELEVBQUE7O0F1Q2hDOUM7RXZDMEJGLGVUcEJRO0VTcUJSLGlCQzlCK0I7RURtQy9CLHNCQUFnRCxFQUFBOztBdUNoQzlDO0V2QzBCRixlVG5CUTtFU29CUixpQkM5QitCO0VEbUMvQixvQkFBZ0QsRUFBQTs7QXVDaEM5QztFdkMwQkYsZ0JUbEJTO0VTbUJULGdCQzlCK0I7RURtQy9CLGdCQUFnRCxFQUFBOztBdUNoQzlDO0V2QzBCRixlVGpCTztFU2tCUCxpQkM5QitCO0VEbUMvQixrQkFBZ0QsRUFBQTs7QXVDaEM5QztFdkMwQkYsZVRwQlE7RVNxQlIsaUJDOUIrQjtFRG1DL0Isc0JBQWdELEVBQUE7O0F1Q2hDOUM7RXZDMEJGLGVUbkJRO0VTb0JSLGlCQzlCK0I7RURtQy9CLG9CQUFnRCxFQUFBOztBdUNoQzlDO0V2QzBCRixnQlRsQlM7RVNtQlQsZ0JDOUIrQjtFRG1DL0IsZ0JBQWdELEVBQUE7O0F1Q2hDOUM7RXZDMEJGLGVUakJPO0VTa0JQLGlCQzlCK0I7RURtQy9CLGtCQUFnRCxFQUFBOztBdUN4QnBEOztFakQ4d0pFO0FpRHZ3Skk7RUFDRSxnQkFGb0IsRUFBQTs7QUFDdEI7RUFDRSxpQkFGMkIsRUFBQTs7QUFDN0I7RUFDRSxrQkFGbUMsRUFBQTs7QUFDckM7RUFDRSxnQkFGb0IsRUFBQTs7QUFDdEI7RUFDRSxpQkFGMkIsRUFBQTs7QUFDN0I7RUFDRSxrQkFGbUMsRUFBQTs7QUFDckM7RUFDRSxnQkFGb0IsRUFBQTs7QUFDdEI7RUFDRSxpQkFGMkIsRUFBQTs7QUFDN0I7RUFDRSxrQkFGbUMsRUFBQTs7QUFDckM7RUFDRSxnQkFGb0IsRUFBQTs7QUFDdEI7RUFDRSxpQkFGMkIsRUFBQTs7QUFDN0I7RUFDRSxrQkFGbUMsRUFBQTs7QUFDckM7RUFDRSxnQkFGb0IsRUFBQTs7QUFDdEI7RUFDRSxpQkFGMkIsRUFBQTs7QUFDN0I7RUFDRSxrQkFGbUMsRUFBQTs7QUFTM0M7Ozs7RWpEaXpKRTtBaUR0eUpJO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQURmO0VBQ0UsZ0JBQWEsRUFBQTs7QUFEZjtFQUNFLGdCQUFhLEVBQUE7O0FBRGY7RUFDRSxnQkFBYSxFQUFBOztBQU9yQjs7RWpEdzZKRTtBaURqNkpJO0VBQ0UsMEJBRjBCLEVBQUE7O0FBQzVCO0VBQ0UseUJBRnFDLEVBQUE7O0FBQ3ZDO0VBQ0UseUJBRmdELEVBQUE7O0FBQ2xEO0VBQ0Usb0JBRnNELEVBQUE7O0FBQ3hEO0VBQ0UsMEJBRmtFLEVBQUE7O0FBQ3BFO0VBQ0UsMEJBRjBCLEVBQUE7O0FBQzVCO0VBQ0UseUJBRnFDLEVBQUE7O0FBQ3ZDO0VBQ0UseUJBRmdELEVBQUE7O0FBQ2xEO0VBQ0Usb0JBRnNELEVBQUE7O0FBQ3hEO0VBQ0UsMEJBRmtFLEVBQUE7O0FBQ3BFO0VBQ0UsMEJBRjBCLEVBQUE7O0FBQzVCO0VBQ0UseUJBRnFDLEVBQUE7O0FBQ3ZDO0VBQ0UseUJBRmdELEVBQUE7O0FBQ2xEO0VBQ0Usb0JBRnNELEVBQUE7O0FBQ3hEO0VBQ0UsMEJBRmtFLEVBQUE7O0FBQ3BFO0VBQ0UsMEJBRjBCLEVBQUE7O0FBQzVCO0VBQ0UseUJBRnFDLEVBQUE7O0FBQ3ZDO0VBQ0UseUJBRmdELEVBQUE7O0FBQ2xEO0VBQ0Usb0JBRnNELEVBQUE7O0FBQ3hEO0VBQ0UsMEJBRmtFLEVBQUE7O0FBQ3BFO0VBQ0UsMEJBRjBCLEVBQUE7O0FBQzVCO0VBQ0UseUJBRnFDLEVBQUE7O0FBQ3ZDO0VBQ0UseUJBRmdELEVBQUE7O0FBQ2xEO0VBQ0Usb0JBRnNELEVBQUE7O0FBQ3hEO0VBQ0UsMEJBRmtFLEVBQUE7O0FDMUUxRTs7K0VsRDBqSytFO0FrRG5qSzdFO0VBQ0Usa0JBQWUsRUFBQTs7QUFEakI7RUFDRSxrQkFBZSxFQUFBOztBQURqQjtFQUNFLG1CQUFlLEVBQUE7O0FBRGpCO0VBQ0UsbUJBQWUsRUFBQTs7QUFEakI7RUFDRSxtQkFBZSxFQUFBOztBQURqQjtFQUNFLG1CQUFlLEVBQUE7O0FBRGpCO0VBQ0UsbUJBQWUsRUFBQTs7QUFEakI7RUFDRSxtQkFBZSxFQUFBOztBQURqQjtFQUNFLG1CQUFlLEVBQUE7O0FBRGpCO0VBQ0UsbUJBQWUsRUFBQTs7QUFEakI7RUFDRSxtQkFBZSxFQUFBOztBQ1JuQjs7K0VuRDhsSytFO0FtRDFsSy9FOztFbkQ2bEtFO0FtRHhsS0E7RUFDRSxVQ0ZLLEVBQUE7O0FEQ1A7RUFDRSxXQ0RNLEVBQUE7O0FEQVI7RUFDRSxXQ0FNLEVBQUE7O0FERFI7RUFDRSxXQ0NNLEVBQUE7O0FERlI7RUFDRSxXQ0VNLEVBQUE7O0FESFI7RUFDRSxXQ0dNLEVBQUE7O0FESlI7RUFDRSxXQ0lNLEVBQUE7O0FETFI7RUFDRSxXQ0tNLEVBQUE7O0FETlI7RUFDRSxXQ01NLEVBQUE7O0FEUFI7RUFDRSxXQ09NLEVBQUE7O0FEUlI7RUFDRSxZQ1FPLEVBQUE7O0FDbEJYO0VBQ0Usa0JBQWlCO0VBQ2pCLFlBQVk7RUFDWixlQUFlLEVBQUE7O0FBR2pCO0VBQ0UsZUFBYztFQUNkLFlBQVcsRUFBQTs7QUFHYjtFQUNFLGFBQVk7RUFDWixlQUFlLEVBQUE7O0FBR2pCO0VBQ0Usa0JBQWlCO0VBQ2pCLFdBQVc7RUFDWCxxQkFBcUI7RUFDckIsU0FBUTtFQUNSLGdDQUErQjtFQUMvQiw2QkFBNEI7RUFDNUIsU0FBUSxFQUFBOztBQUdWO0VBQ0UsZUFBYyxFQUFBOztBQUdoQjtFQUNFLFVBQVMsRUFBQSIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0J1cmZvcmRSdXN0aWNTaGFkb3dUd29BJztcbiAgc3JjOiB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZHV5bi9hc3NldHMvZm9udHMvQnVyZm9yZFJ1c3RpY1NoYWRvd1R3b0Eub3RmXCIpIGZvcm1hdChcIk9wZW5UeXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1ByZWRpZ2UtTWVkaXVtJztcbiAgc3JjOiB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZHV5bi9hc3NldHMvZm9udHMvUHJlZGlnZS1NZWRpdW0ub3RmXCIpIGZvcm1hdChcIk9wZW5UeXBlXCIpLCB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZHV5bi9hc3NldHMvZm9udHMvUHJlZGlnZS1NZWRpdW0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1ByZWRpZ2UtUmVndWxhcic7XG4gIHNyYzogdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2R1eW4vYXNzZXRzL2ZvbnRzL1ByZWRpZ2UtUmVndWxhci5vdGZcIikgZm9ybWF0KFwiT3BlblR5cGVcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kdXluL2Fzc2V0cy9mb250cy9QcmVkaWdlLVJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpOyB9XG5cbi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKlxuICogIE93bCBDYXJvdXNlbCAtIENvcmVcbiAqL1xuLm93bC1jYXJvdXNlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBwb3NpdGlvbiByZWxhdGl2ZSBhbmQgei1pbmRleCBmaXggd2Via2l0IHJlbmRlcmluZyBmb250cyBpc3N1ZSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLVk7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLyogZml4IGZpcmVmb3ggYW5pbWF0aW9uIGdsaXRjaCAqLyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZTphZnRlciB7XG4gICAgY29udGVudDogXCIuXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGhlaWdodDogMDsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIGZpeCBmb3IgZmxhc2hpbmcgYmFja2dyb3VuZCAqL1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtd3JhcHBlcixcbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0ge1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYuZGlzYWJsZWQsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1kb3RzLmRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1wcmV2LFxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtbmV4dCxcbiAgLm93bC1jYXJvdXNlbCAub3dsLWRvdCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgYnV0dG9uLm93bC1wcmV2LFxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IGJ1dHRvbi5vd2wtbmV4dCxcbiAgLm93bC1jYXJvdXNlbCBidXR0b24ub3dsLWRvdCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGZvbnQ6IGluaGVyaXQ7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtbG9hZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWhpZGRlbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1yZWZyZXNoIC5vd2wtaXRlbSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWRyYWcgLm93bC1pdGVtIHtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtZ3JhYiB7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICAgIGN1cnNvcjogZ3JhYjsgfVxuICAub3dsLWNhcm91c2VsLm93bC1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLXJ0bCAub3dsLWl0ZW0ge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4vKiBObyBKcyAqL1xuLm5vLWpzIC5vd2wtY2Fyb3VzZWwge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogIE93bCBDYXJvdXNlbCAtIEFuaW1hdGUgUGx1Z2luXG4gKi9cbi5vd2wtY2Fyb3VzZWwgLmFuaW1hdGVkIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLWFuaW1hdGVkLWluIHtcbiAgei1pbmRleDogMDsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtYW5pbWF0ZWQtb3V0IHtcbiAgei1pbmRleDogMTsgfVxuXG4ub3dsLWNhcm91c2VsIC5mYWRlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7IH1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIEF1dG8gSGVpZ2h0IFBsdWdpblxuICovXG4ub3dsLWhlaWdodCB7XG4gIHRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDsgfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBMYXp5IExvYWQgUGx1Z2luXG4gKi9cbi5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIHtcbiAgLyoqXG5cdFx0XHRUaGlzIGlzIGludHJvZHVjZWQgZHVlIHRvIGEgYnVnIGluIElFMTEgd2hlcmUgbGF6eSBsb2FkaW5nIGNvbWJpbmVkIHdpdGggYXV0b2hlaWdodCBwbHVnaW4gY2F1c2VzIGEgd3Jvbmdcblx0XHRcdGNhbGN1bGF0aW9uIG9mIHRoZSBoZWlnaHQgb2YgdGhlIG93bC1pdGVtIHRoYXQgYnJlYWtzIHBhZ2UgbGF5b3V0c1xuXHRcdCAqLyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIC5vd2wtbGF6eSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5W3NyY149XCJcIl0sIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIC5vd2wtbGF6eTpub3QoW3NyY10pIHtcbiAgICBtYXgtaGVpZ2h0OiAwOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZy5vd2wtbGF6eSB7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsgfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBWaWRlbyBQbHVnaW5cbiAqL1xuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDgwcHg7XG4gIHdpZHRoOiA4MHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTQwcHg7XG4gIG1hcmdpbi10b3A6IC00MHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJvd2wudmlkZW8ucGxheS5wbmdcIikgbm8tcmVwZWF0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDE7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjMsIDEuMyk7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10bixcbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tdG4ge1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKiBNYWduaWZpYyBQb3B1cCBDU1MgKi9cbi5tZnAtYmcge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwNDI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZDogIzBiMGIwYjtcbiAgb3BhY2l0eTogMC44OyB9XG5cbi5tZnAtd3JhcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTA0MztcbiAgcG9zaXRpb246IGZpeGVkO1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5tZnAtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1mcC1jb250YWluZXI6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5tZnAtYWxpZ24tdG9wIC5tZnAtY29udGFpbmVyOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1mcC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB6LWluZGV4OiAxMDQ1OyB9XG5cbi5tZnAtaW5saW5lLWhvbGRlciAubWZwLWNvbnRlbnQsXG4ubWZwLWFqYXgtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IGF1dG87IH1cblxuLm1mcC1hamF4LWN1ciB7XG4gIGN1cnNvcjogcHJvZ3Jlc3M7IH1cblxuLm1mcC16b29tLW91dC1jdXIsIC5tZnAtem9vbS1vdXQtY3VyIC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2Uge1xuICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLW91dDtcbiAgY3Vyc29yOiB6b29tLW91dDsgfVxuXG4ubWZwLXpvb20ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICBjdXJzb3I6IC1tb3otem9vbS1pbjtcbiAgY3Vyc29yOiB6b29tLWluOyB9XG5cbi5tZnAtYXV0by1jdXJzb3IgLm1mcC1jb250ZW50IHtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZnAtY2xvc2UsXG4ubWZwLWFycm93LFxuLm1mcC1wcmVsb2FkZXIsXG4ubWZwLWNvdW50ZXIge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4ubWZwLWxvYWRpbmcubWZwLWZpZ3VyZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1mcC1oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5tZnAtcHJlbG9hZGVyIHtcbiAgY29sb3I6ICNDQ0M7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IC0wLjhlbTtcbiAgbGVmdDogOHB4O1xuICByaWdodDogOHB4O1xuICB6LWluZGV4OiAxMDQ0OyB9XG5cbi5tZnAtcHJlbG9hZGVyIGEge1xuICBjb2xvcjogI0NDQzsgfVxuXG4ubWZwLXByZWxvYWRlciBhOmhvdmVyIHtcbiAgY29sb3I6ICNGRkY7IH1cblxuLm1mcC1zLXJlYWR5IC5tZnAtcHJlbG9hZGVyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWZwLXMtZXJyb3IgLm1mcC1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5idXR0b24ubWZwLWNsb3NlLFxuYnV0dG9uLm1mcC1hcnJvdyB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIHotaW5kZXg6IDEwNDY7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgfVxuXG4ubWZwLWNsb3NlIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIHBhZGRpbmc6IDAgMCAxOHB4IDEwcHg7XG4gIGNvbG9yOiAjRkZGO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBCYXNrZXJ2aWxsZSwgbW9ub3NwYWNlOyB9XG5cbi5tZnAtY2xvc2U6aG92ZXIsXG4ubWZwLWNsb3NlOmZvY3VzIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4ubWZwLWNsb3NlOmFjdGl2ZSB7XG4gIHRvcDogMXB4OyB9XG5cbi5tZnAtY2xvc2UtYnRuLWluIC5tZnAtY2xvc2Uge1xuICBjb2xvcjogIzMzMzsgfVxuXG4ubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlLFxuLm1mcC1pZnJhbWUtaG9sZGVyIC5tZnAtY2xvc2Uge1xuICBjb2xvcjogI0ZGRjtcbiAgcmlnaHQ6IC02cHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5tZnAtY291bnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgY29sb3I6ICNDQ0M7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLm1mcC1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMC42NTtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTU1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiA5MHB4O1xuICBoZWlnaHQ6IDExMHB4O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5tZnAtYXJyb3c6YWN0aXZlIHtcbiAgbWFyZ2luLXRvcDogLTU0cHg7IH1cblxuLm1mcC1hcnJvdzpob3Zlcixcbi5tZnAtYXJyb3c6Zm9jdXMge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZnAtYXJyb3c6YmVmb3JlLFxuLm1mcC1hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG4gIG1hcmdpbi1sZWZ0OiAzNXB4O1xuICBib3JkZXI6IG1lZGl1bSBpbnNldCB0cmFuc3BhcmVudDsgfVxuXG4ubWZwLWFycm93OmFmdGVyIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMTNweDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTNweDtcbiAgdG9wOiA4cHg7IH1cblxuLm1mcC1hcnJvdzpiZWZvcmUge1xuICBib3JkZXItdG9wLXdpZHRoOiAyMXB4O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAyMXB4O1xuICBvcGFjaXR5OiAwLjc7IH1cblxuLm1mcC1hcnJvdy1sZWZ0IHtcbiAgbGVmdDogMDsgfVxuXG4ubWZwLWFycm93LWxlZnQ6YWZ0ZXIge1xuICBib3JkZXItcmlnaHQ6IDE3cHggc29saWQgI0ZGRjtcbiAgbWFyZ2luLWxlZnQ6IDMxcHg7IH1cblxuLm1mcC1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIG1hcmdpbi1sZWZ0OiAyNXB4O1xuICBib3JkZXItcmlnaHQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxuXG4ubWZwLWFycm93LXJpZ2h0IHtcbiAgcmlnaHQ6IDA7IH1cblxuLm1mcC1hcnJvdy1yaWdodDphZnRlciB7XG4gIGJvcmRlci1sZWZ0OiAxN3B4IHNvbGlkICNGRkY7XG4gIG1hcmdpbi1sZWZ0OiAzOXB4OyB9XG5cbi5tZnAtYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cblxuLm1mcC1pZnJhbWUtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5MDBweDsgfVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XG4gIHRvcDogLTQwcHg7IH1cblxuLm1mcC1pZnJhbWUtc2NhbGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDU2LjI1JTsgfVxuXG4ubWZwLWlmcmFtZS1zY2FsZXIgaWZyYW1lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4vKiBNYWluIGltYWdlIGluIHBvcHVwICovXG5pbWcubWZwLWltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiA0MHB4IDAgNDBweDtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLyogVGhlIHNoYWRvdyBiZWhpbmQgdGhlIGltYWdlICovXG4ubWZwLWZpZ3VyZSB7XG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG5cbi5tZnAtZmlndXJlOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiA0MHB4O1xuICBib3R0b206IDQwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgei1pbmRleDogLTE7XG4gIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBiYWNrZ3JvdW5kOiAjNDQ0OyB9XG5cbi5tZnAtZmlndXJlIHNtYWxsIHtcbiAgY29sb3I6ICNCREJEQkQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4OyB9XG5cbi5tZnAtZmlndXJlIGZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4ubWZwLWJvdHRvbS1iYXIge1xuICBtYXJnaW4tdG9wOiAtMzZweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IGF1dG87IH1cblxuLm1mcC10aXRsZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICBjb2xvcjogI0YzRjNGMztcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBwYWRkaW5nLXJpZ2h0OiAzNnB4OyB9XG5cbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4ubWZwLWdhbGxlcnkgLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1maWd1cmUge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSksIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDMwMHB4KSB7XG4gIC8qKlxyXG4gICAgICAgKiBSZW1vdmUgYWxsIHBhZGRpbmdzIGFyb3VuZCB0aGUgaW1hZ2Ugb24gc21hbGwgc2NyZWVuXHJcbiAgICAgICAqL1xuICAubWZwLWltZy1tb2JpbGUgLm1mcC1pbWFnZS1ob2xkZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5tZnAtaW1nLW1vYmlsZSBpbWcubWZwLWltZyB7XG4gICAgcGFkZGluZzogMDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1maWd1cmU6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlIHNtYWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYm90dG9tOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB0b3A6IGF1dG87XG4gICAgcGFkZGluZzogM3B4IDVweDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyOmVtcHR5IHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWNvdW50ZXIge1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgdG9wOiAzcHg7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtY2xvc2Uge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzVweDtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDsgfSB9XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5tZnAtYXJyb3cge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpOyB9XG4gIC5tZnAtYXJyb3ctbGVmdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDA7IH1cbiAgLm1mcC1hcnJvdy1yaWdodCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCU7IH1cbiAgLm1mcC1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDZweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEJhc2VcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGFuZCBwYWRkaW5nIGZyb20gZXZlcnkgc2VsZWN0b3IgaW5jbHVkaW5nIHRoZWlyXHJcbiAqIHBzdWVkbyBzZWxlY3RvcnMuXHJcbiAqXHJcbiAqIDEuIE1vcmUgc2Vuc2libGUgZGVmYXVsdCBib3ggc2l6aW5nLlxyXG4gKiAgICAoY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlKS5cclxuICovXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIC8qIDEgKi8gfVxuXG4vKipcclxuICogU2V0IGhlaWdodCBvZiB0aGUgZG9jdW1lbnQgdG8gbWF4aXVtIHZpZXdwb3J0IGhlaWdodC5cclxuICpcclxuICogMS4gU2V0IHJvb3QgZm9udCBzaXplIHRvIDEwLlxyXG4gKi9cbmh0bWwge1xuICBoZWlnaHQ6IDEwMHZoO1xuICBmb250LXNpemU6IDYyLjUlO1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLyoqXHJcbiAqIFNldCBtaW5pbWFsIGhlaWdodCBvZiB0aGUgYm9keSB0byBtYXhpbXVtIHZpZXdwb3J0IGhlaWdodCB0b1xyXG4gKiBtYXRjaCB0aGUgZG9jdW1lbnQncyBoZWlnaHQuXHJcbiAqXHJcbiAqIDEuIEZpcmVmb3ggMjUrLlxyXG4gKiAyLiBDaHJvbWUgNSsuXHJcbiAqL1xuYm9keSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU1OTY7XG4gIGNvbG9yOiAjMWYyYjRjO1xuICBmb250LWZhbWlseTogXCJQcmVkaWdlLVJlZ3VsYXJcIjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLyogMSAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLyogMiAqLyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFJlc2V0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogQ3VzdG9tIHVzZXIgYWdlbnQgcmVzZXRzIGFuZCBvdmVycmlkZXMgdGhhdCBhcmUgbm90IHByZXNlbnQgaW5cclxuICogTm9ybWFsaXplIDguMC4wLiBUaGlzIG1vc3RseSByZW1vdmVzIHNvbWUgYW5ub3lpbmcgbWFyZ2luIGFuZCBwYWRkaW5nXHJcbiAqIGRlZmF1bHRzLCBib3JkZXIgcmFkaXVzLCBhbmQgb3V0bGluZXMuXHJcbiAqL1xuYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyoqXHJcbiAqIDEuIFJlbW92ZSBib3JkZXIgcmFkaXVzIG9uIENocm9tZSA2Mi4wKyBvbiBtYWNPUy5cclxuICovXG5idXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC8qIDEgKi9cbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgfVxuXG5ociB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcclxuICogMS4gUmVtb3ZlIHdoaXRlIHNwYWNlLlxyXG4gKi9cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAvKiAxICovIH1cblxuLyoqXHJcbiAqIDEuIFJlbW92ZSBpbmhlcml0ZWQgdXNlciBhZ2VudCBhcHBlYXJhbmNlLlxyXG4gKi9cbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLyogMSAqLyB9XG5cbi8qKlxyXG4gKiAxLiBPbmx5IGFsbG93IHZlcnRpY2FsIHJlc2l6aW5nIHRvIHByZXZlbnQgdGhlIHRleHRhcmVhXHJcbiAqICAgIGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNvbnRhaW5lci5cclxuICovXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7IH1cblxudWwsXG5vbCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG5cbnAge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXHJcbiAqIDEuIENvbGxhcHNlIGJvcmRlcnMgdG8gcHJldmVudCBkb3VibGUgc2lkZWQgYm9yZGVycy5cclxuICovXG50YWJsZSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgLyogMSAqLyB9XG5cbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQmFja2dyb3VuZFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIEJhY2tncm91bmQgYmFzZS5cclxuICovXG4uYmFja2dyb3VuZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHotaW5kZXg6IC0xOyB9XG5cbi8qKlxyXG4gKiBCYWNrZ3JvdW5kIHByaW1hcnkuXHJcbiAqL1xuLmJhY2tncm91bmQtLWRlZmF1bHQge1xuICBjb2xvcjogIzFmMmI0YztcbiAgZmlsbDogIzFmMmI0YzsgfVxuICAuYmFja2dyb3VuZC0tZGVmYXVsdDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZlNTk2OyB9XG4gIC5iYWNrZ3JvdW5kLS1kZWZhdWx0IGgxIHtcbiAgICBjb2xvcjogI2VkNmE1ZTsgfVxuICAuYmFja2dyb3VuZC0tZGVmYXVsdCBoMiB7XG4gICAgY29sb3I6ICMxZjJiNGM7IH1cbiAgLmJhY2tncm91bmQtLWRlZmF1bHQgLmJ1dHRvbi0tYXJyb3cge1xuICAgIGNvbG9yOiAjMWYyYjRjOyB9XG4gICAgLmJhY2tncm91bmQtLWRlZmF1bHQgLmJ1dHRvbi0tYXJyb3cgc3ZnIHtcbiAgICAgIGNvbG9yOiAjMWYyYjRjO1xuICAgICAgZmlsbDogIzFmMmI0YzsgfVxuICAuYmFja2dyb3VuZC0tZGVmYXVsdCAuYnV0dG9uLS1ib3JkZXIge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMxZjJiNGM7XG4gICAgY29sb3I6ICMxZjJiNGM7IH1cbiAgICAuYmFja2dyb3VuZC0tZGVmYXVsdCAuYnV0dG9uLS1ib3JkZXIgc3ZnIHtcbiAgICAgIGNvbG9yOiAjMWYyYjRjO1xuICAgICAgZmlsbDogIzFmMmI0YzsgfVxuXG4vKipcclxuICogQmFja2dyb3VuZCBibHVlLlxyXG4gKi9cbi5iYWNrZ3JvdW5kLS1ibHVlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmaWxsOiB3aGl0ZTsgfVxuICAuYmFja2dyb3VuZC0tYmx1ZTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWYyYjRjOyB9XG4gIC5iYWNrZ3JvdW5kLS1ibHVlIGgxIHtcbiAgICBjb2xvcjogI2VkNmE1ZTsgfVxuICAuYmFja2dyb3VuZC0tYmx1ZSBoMiB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC5iYWNrZ3JvdW5kLS1ibHVlIC5idXR0b24tLWFycm93IHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAuYmFja2dyb3VuZC0tYmx1ZSAuYnV0dG9uLS1hcnJvdyBzdmcge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgZmlsbDogd2hpdGU7IH1cbiAgLmJhY2tncm91bmQtLWJsdWUgLmJ1dHRvbi0tYm9yZGVyIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAuYmFja2dyb3VuZC0tYmx1ZSAuYnV0dG9uLS1ib3JkZXIgc3ZnIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZpbGw6IHdoaXRlOyB9XG5cbi8qKlxyXG4gKiBCYWNrZ3JvdW5kIGJsdWUuXHJcbiAqL1xuLmJhY2tncm91bmQtLWJsdWUtZm9vdGVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmaWxsOiB3aGl0ZTsgfVxuICAuYmFja2dyb3VuZC0tYmx1ZS1mb290ZXI6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogIzI0MzY2NTsgfVxuICAuYmFja2dyb3VuZC0tYmx1ZS1mb290ZXIgaDIge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAuYmFja2dyb3VuZC0tYmx1ZS1mb290ZXIgLmJ1dHRvbi0tYXJyb3cge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC5iYWNrZ3JvdW5kLS1ibHVlLWZvb3RlciAuYnV0dG9uLS1hcnJvdyBzdmcge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgZmlsbDogd2hpdGU7IH1cbiAgLmJhY2tncm91bmQtLWJsdWUtZm9vdGVyIC5idXR0b24tLWJvcmRlciB7XG4gICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLmJhY2tncm91bmQtLWJsdWUtZm9vdGVyIC5idXR0b24tLWJvcmRlciBzdmcge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgZmlsbDogd2hpdGU7IH1cblxuLyoqXHJcbiAqIEJhY2tncm91bmQgZ3JhZGllbnQuXHJcbiAqL1xuLmJhY2tncm91bmQtLWdyYWRpZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBmaWxsOiB3aGl0ZTsgfVxuICAuYmFja2dyb3VuZC0tZ3JhZGllbnQ6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZTU5NiAxLjA0JSwgI2Y1YTE2MiAyMy45NiUsICNlZDZhNWUgNDMuNzUlLCAjNmI1MTdjIDYzLjAyJSwgIzI0MzY2NSA3OC42NSUsICMxZjJiNGMgOTYuMzUlKTsgfVxuICAuYmFja2dyb3VuZC0tZ3JhZGllbnQgaDEge1xuICAgIGNvbG9yOiAjZWQ2YTVlOyB9XG4gIC5iYWNrZ3JvdW5kLS1ncmFkaWVudCBoMiB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC5iYWNrZ3JvdW5kLS1ncmFkaWVudCAuYnV0dG9uLS1hcnJvdyB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLmJhY2tncm91bmQtLWdyYWRpZW50IC5idXR0b24tLWFycm93IHN2ZyB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmaWxsOiB3aGl0ZTsgfVxuICAuYmFja2dyb3VuZC0tZ3JhZGllbnQgLmJ1dHRvbi0tYm9yZGVyIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAuYmFja2dyb3VuZC0tZ3JhZGllbnQgLmJ1dHRvbi0tYm9yZGVyIHN2ZyB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmaWxsOiB3aGl0ZTsgfVxuICAgIC5iYWNrZ3JvdW5kLS1ncmFkaWVudCAuYnV0dG9uLS1ib3JkZXI6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgICAuYmFja2dyb3VuZC0tZ3JhZGllbnQgLmJ1dHRvbi0tYm9yZGVyOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMWYyYjRjOyB9XG5cbi8qKlxyXG4gKiBCYWNrZ3JvdW5kIGJvcmRlci5cclxuICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC5iYWNrZ3JvdW5kLS1ib3JkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG4uYmFja2dyb3VuZC0tYm9yZGVyOjpiZWZvcmUge1xuICBib3R0b206IDk1cHg7XG4gIGJvcmRlci1ib3R0b206IDIwcHggc29saWQgI2VkNmE1ZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmJhY2tncm91bmQtLWJvcmRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgI2VkNmE1ZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLmJhY2tncm91bmQtLWJvcmRlciAud3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH0gfVxuXG4uYmFja2dyb3VuZC0tYm9yZGVyICsgZGl2IHtcbiAgbWFyZ2luLXRvcDogLTk1cHg7XG4gIHBhZGRpbmctdG9wOiA5NXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuYmFja2dyb3VuZC0tYm9yZGVyICsgZGl2IHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEJ1dHRvbnMuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogQnV0dG9uIGJhc2UuXHJcbiAqL1xuLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogMzJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGVhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuYnV0dG9uIHN2ZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlOyB9XG5cbi8qKlxyXG4gKiBCdXR0b24gYm9yZGVyLlxyXG4gKi9cbi5idXR0b24tLWJvcmRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXJpZ2h0OiAzNXB4O1xuICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLmJ1dHRvbi0tYm9yZGVyIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTNweDtcbiAgICByaWdodDogLTM1cHg7IH1cbiAgLmJ1dHRvbi0tYm9yZGVyOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGVhc2U7XG4gICAgY29udGVudDogJyc7XG4gICAgei1pbmRleDogLTE7IH1cbiAgLmJ1dHRvbi0tYm9yZGVyOmhvdmVyOjphZnRlciB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmJ1dHRvbi0tYm9yZGVyLmlzLWJsdWUge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMxZjJiNGM7XG4gICAgY29sb3I6ICMxZjJiNGM7IH1cbiAgICAuYnV0dG9uLS1ib3JkZXIuaXMtYmx1ZSBzdmcge1xuICAgICAgY29sb3I6ICMxZjJiNGM7XG4gICAgICBmaWxsOiAjMWYyYjRjOyB9XG4gICAgLmJ1dHRvbi0tYm9yZGVyLmlzLWJsdWU6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxZjJiNGM7IH1cbiAgICAuYnV0dG9uLS1ib3JkZXIuaXMtYmx1ZTpob3ZlciB7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cbiAgLmJ1dHRvbi0tYm9yZGVyLmlzLXdoaXRlIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAuYnV0dG9uLS1ib3JkZXIuaXMtd2hpdGUgc3ZnIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZpbGw6IHdoaXRlOyB9XG4gICAgLmJ1dHRvbi0tYm9yZGVyLmlzLXdoaXRlOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuICAgIC5idXR0b24tLWJvcmRlci5pcy13aGl0ZTpob3ZlciB7XG4gICAgICBjb2xvcjogI2VkNmE1ZTsgfVxuICAuYnV0dG9uLS1ib3JkZXIuaXMtcmVkIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZWQ2YTVlO1xuICAgIGNvbG9yOiAjZWQ2YTVlOyB9XG4gICAgLmJ1dHRvbi0tYm9yZGVyLmlzLXJlZCBzdmcge1xuICAgICAgY29sb3I6ICNlZDZhNWU7XG4gICAgICBmaWxsOiAjZWQ2YTVlOyB9XG4gICAgLmJ1dHRvbi0tYm9yZGVyLmlzLXJlZDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2VkNmE1ZTsgfVxuICAgIC5idXR0b24tLWJvcmRlci5pcy1yZWQ6aG92ZXIge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG5cbi8qKlxyXG4gKiBCdXR0b24gYXJyb3cuXHJcbiAqL1xuLmJ1dHRvbi0tYXJyb3cgc3ZnIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDFweDtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cblxuLmJ1dHRvbi0tYXJyb3c6aG92ZXIgc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7IH1cblxuLmJ1dHRvbi0tYXJyb3cuaXMtYmx1ZSB7XG4gIGNvbG9yOiAjMWYyYjRjOyB9XG4gIC5idXR0b24tLWFycm93LmlzLWJsdWUgc3ZnIHtcbiAgICBjb2xvcjogIzFmMmI0YztcbiAgICBmaWxsOiAjMWYyYjRjOyB9XG5cbi5idXR0b24tLWFycm93LmlzLXJlZCB7XG4gIGNvbG9yOiAjZWQ2YTVlOyB9XG4gIC5idXR0b24tLWFycm93LmlzLXJlZCBzdmcge1xuICAgIGNvbG9yOiAjZWQ2YTVlO1xuICAgIGZpbGw6ICNlZDZhNWU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29udGFpbmVyXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogVGhlIGNvbnRhaW5lciBvYmplY3QgY2VudGVycyBhbiBlbGVtZW50IGluIHRoZSBkb2N1bWVudC5cclxuICovXG4uY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMjRweCArIDUwLjY2NjY3cHgpO1xuICBwYWRkaW5nOiAwIDI1LjMzMzMzcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb250ZW50IENvbnN0cmFpbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBUaGUgY29udGVudCBjb25zdHJhaW50IGlzIGEgY29uc3RyYWludCBmb3IgYWxsIHRoZSBjb250ZW50IHdpdGhpblxyXG4gKiB0aGUgZG9jdW1lbnQuIEl0IGNhbiBiZSBtYW5pcHVsYXRlZCBieSBDU1Mgb3IgSmF2YVNjcmlwdCB3aXRob3V0XHJcbiAqIGluZmx1ZW5jaW5nIHRoZSBib2R5LlxyXG4gKi9cbi5jb250ZW50LWNvbnN0cmFpbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5jb250ZW50LWNvbnN0cmFpbnQgOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZDZhNWU7XG4gICAgY29sb3I6IHdoaXRlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEZsZXhcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBFeGFtcGxlIG9mIGEgZmxleCBiYXNlZCBjb2x1bW4gZ3JpZCBsYXlvdXQgaW4gcHJhY3RpY2U6XHJcbiAqXHJcbiAqIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICogICA8ZGl2IGNsYXNzPVwiY29sIGNvbC14cy02IGNvbC1zbS0xMlwiPjwvZGl2PlxyXG4gKiAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLXhzLTYgY29sLXNtLTEyXCI+PC9kaXY+XHJcbiAqIDwvZGl2PlxyXG4gKlxyXG4gKiBUaGlzIGV4YW1wbGUgd2lsbCBjcmVhdGUgYSByb3cgd2l0aCB0d28gY29sdW1ucyBlYWNoIGZpbGxpbmcgaGFsZiB0aGUgd2lkdGhcclxuICogb2YgdGhlIHJvdyBvbiBhbGwgbWVkaWEsIGJ1dCB3aWxsIGNvbnZlcnQgdG8gYSBmdWxsIHdpZHRoIGNvbHVtbiBvbiB0aGVcclxuICogc21hbGwgYC1zbWAgYnJlYWtwb2ludCBhbGlhcywgd2hpY2ggaXMgbW9iaWxlIG9ubHkuIFJlZmVyIHRvXHJcbiAqIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AgZm9yIGFsbCBicmVha3BvaW50IGFsaWFzLlxyXG4gKi9cbi8qKlxyXG4gKiBGbGV4IG9iamVjdC5cclxuICpcclxuICogVGlwOiBVc2UgZmxleCBvbiBhIGNvbHVtbiB0byBtYWtlIHRoZSBib3ggdGhlIHNhbWUgaGVpZ2h0IGFzIHRoZSBjb2x1bW4uXHJcbiAqL1xuLmZsZXgge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5mbGV4LXdyYXAge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLyoqXHJcbiAqIEZsZXggb2JqZWN0IHdpdGggYSBjb2x1bW4gYmFzZWQgbGF5b3V0IHN5c3RlbS5cclxuICovXG4ucm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAxIGF1dG87XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1hcmdpbjogMCAtMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICogQm94LCB0aGUgaW5zaWRlIG9mIGEgY29sdW1uLlxyXG4gKi9cbi5ib3gge1xuICBmbGV4OiAxOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMSBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTEge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDguMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAyIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtMiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMTYuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDIgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMyBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTMge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAzIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDQgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy00IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAzMy4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNCBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteHMtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA1IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtNSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNDEuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDUgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNiBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTYge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA2IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDcgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy03IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA1OC4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNyBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteHMtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA4IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtOCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNjYuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDggZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gOSBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTkge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDc1JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA5IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEwIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtMTAge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDgzLjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxMCBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteHMtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTEgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy0xMSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogOTEuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDExIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMiBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTEyIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBzdHJldGNoYCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXhzLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGNlbnRlcmAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi14cy1jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgZmxleC1zdGFydGAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi14cy1mbGV4LXN0YXJ0IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LWVuZGAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi14cy1mbGV4LWVuZCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGJhc2VsaW5lYCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXhzLWJhc2VsaW5lIHtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzdGFydGAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXhzLXN0YXJ0IHtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgY2VudGVyYCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnkteHMtY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWJldHdlZW5gIGZvciB0aGUgeHMgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS14cy1zcGFjZS1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1hcm91bmRgIGZvciB0aGUgeHMgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS14cy1zcGFjZS1hcm91bmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtZXZlbmx5YCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnkteHMtc3BhY2UtZXZlbmx5IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7IH1cblxuLyoqXHJcbiAgICAgICAqIEJsZWVkIGxlZnQgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5ibGVlZC14cy1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi8qKlxyXG4gICAgICAgKiBCbGVlZCByaWdodCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmJsZWVkLXhzLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4vKipcclxuICAgICAqIE9yZGVyIGZpcnN0IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICovXG4uZmlyc3QteHMge1xuICBvcmRlcjogLTE7IH1cblxuLyoqXHJcbiAgICAgKiBPcmRlciBsYXN0IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICovXG4ubGFzdC14cyB7XG4gIG9yZGVyOiAxOyB9XG5cbi8qKlxyXG4gICAgICogUmV2ZXJzZSBvcmRlciBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAqL1xuLnJldmVyc2UteHMge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtc20tMSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogOC4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtc20tMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDIgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1zbS0yIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAxNi42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMiBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtc20tMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAzIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtc20tMyB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMjUlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDMgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXNtLTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNCBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXNtLTQge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA0IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1zbS00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDUgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1zbS01IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA0MS42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtc20tNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA2IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtc20tNiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNTAlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDYgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXNtLTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNyBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXNtLTcge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDU4LjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA3IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1zbS03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDggZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1zbS04IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgOCBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtc20tOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA5IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtc20tOSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNzUlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDkgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXNtLTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTAgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1zbS0xMCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogODMuMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEwIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1zbS0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXNtLTExIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA5MS42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMTEgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXNtLTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEyIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtc20tMTIge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYHN0cmV0Y2hgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24tc20tc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgY2VudGVyYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXNtLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LXN0YXJ0YCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXNtLWZsZXgtc3RhcnQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGZsZXgtZW5kYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXNtLWZsZXgtZW5kIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgYmFzZWxpbmVgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24tc20tYmFzZWxpbmUge1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHN0YXJ0YCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnktc20tc3RhcnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBjZW50ZXJgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS1zbS1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYmV0d2VlbmAgZm9yIHRoZSBzbSBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXNtLXNwYWNlLWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWFyb3VuZGAgZm9yIHRoZSBzbSBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXNtLXNwYWNlLWFyb3VuZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1ldmVubHlgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS1zbS1zcGFjZS1ldmVubHkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTsgfVxuXG4vKipcclxuICAgICAgICogQmxlZWQgbGVmdCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmJsZWVkLXNtLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyoqXHJcbiAgICAgICAqIEJsZWVkIHJpZ2h0IGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYmxlZWQtc20tcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi8qKlxyXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5maXJzdC1zbSB7XG4gIG9yZGVyOiAtMTsgfVxuXG4vKipcclxuICAgICAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5sYXN0LXNtIHtcbiAgb3JkZXI6IDE7IH1cblxuLyoqXHJcbiAgICAgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICovXG4ucmV2ZXJzZS1zbSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1tZC0xIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA4LjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1tZC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMiBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLW1kLTIge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAyIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1tZC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDMgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1tZC0zIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMyBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbWQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA0IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbWQtNCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMzMuMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDQgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LW1kLTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNSBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLW1kLTUge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDQxLjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA1IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1tZC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDYgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1tZC02IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA1MCU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNiBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbWQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA3IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbWQtNyB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNTguMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDcgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LW1kLTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gOCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLW1kLTgge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA4IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1tZC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDkgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1tZC05IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA3NSU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgOSBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbWQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLW1kLTEwIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA4My4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMTAgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LW1kLTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDExIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbWQtMTEge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDkxLjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxMSBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbWQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTIgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1tZC0xMiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgc3RyZXRjaGAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi1tZC1zdHJldGNoIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBjZW50ZXJgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24tbWQtY2VudGVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGZsZXgtc3RhcnRgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24tbWQtZmxleC1zdGFydCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgZmxleC1lbmRgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24tbWQtZmxleC1lbmQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBiYXNlbGluZWAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi1tZC1iYXNlbGluZSB7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3RhcnRgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS1tZC1zdGFydCB7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYGNlbnRlcmAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LW1kLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1iZXR3ZWVuYCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnktbWQtc3BhY2UtYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYXJvdW5kYCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnktbWQtc3BhY2UtYXJvdW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWV2ZW5seWAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LW1kLXNwYWNlLWV2ZW5seSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5OyB9XG5cbi8qKlxyXG4gICAgICAgKiBCbGVlZCBsZWZ0IGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYmxlZWQtbWQtbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4vKipcclxuICAgICAgICogQmxlZWQgcmlnaHQgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5ibGVlZC1tZC1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLyoqXHJcbiAgICAgKiBPcmRlciBmaXJzdCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAqL1xuLmZpcnN0LW1kIHtcbiAgb3JkZXI6IC0xOyB9XG5cbi8qKlxyXG4gICAgICogT3JkZXIgbGFzdCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAqL1xuLmxhc3QtbWQge1xuICBvcmRlcjogMTsgfVxuXG4vKipcclxuICAgICAqIFJldmVyc2Ugb3JkZXIgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5yZXZlcnNlLW1kIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLWxnLTEge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDguMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LWxnLTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAyIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbGctMiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMTYuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDIgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LWxnLTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMyBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLWxnLTMge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAzIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1sZy0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDQgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1sZy00IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAzMy4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNCBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbGctNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA1IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbGctNSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNDEuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDUgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LWxnLTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNiBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLWxnLTYge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA2IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1sZy02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDcgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1sZy03IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA1OC4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNyBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbGctNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA4IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbGctOCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNjYuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDggZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LWxnLTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gOSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLWxnLTkge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDc1JTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA5IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1sZy05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEwIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wtbGctMTAge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDgzLjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxMCBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQtbGctMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTEgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC1sZy0xMSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogOTEuNjY2NjclO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDExIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC1sZy0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMiBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLWxnLTEyIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBzdHJldGNoYCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLWxnLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGNlbnRlcmAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi1sZy1jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgZmxleC1zdGFydGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi1sZy1mbGV4LXN0YXJ0IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LWVuZGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi1sZy1mbGV4LWVuZCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGJhc2VsaW5lYCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLWxnLWJhc2VsaW5lIHtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzdGFydGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LWxnLXN0YXJ0IHtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgY2VudGVyYCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnktbGctY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWJldHdlZW5gIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS1sZy1zcGFjZS1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1hcm91bmRgIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS1sZy1zcGFjZS1hcm91bmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtZXZlbmx5YCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnktbGctc3BhY2UtZXZlbmx5IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7IH1cblxuLyoqXHJcbiAgICAgICAqIEJsZWVkIGxlZnQgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5ibGVlZC1sZy1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi8qKlxyXG4gICAgICAgKiBCbGVlZCByaWdodCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmJsZWVkLWxnLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4vKipcclxuICAgICAqIE9yZGVyIGZpcnN0IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICovXG4uZmlyc3QtbGcge1xuICBvcmRlcjogLTE7IH1cblxuLyoqXHJcbiAgICAgKiBPcmRlciBsYXN0IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICovXG4ubGFzdC1sZyB7XG4gIG9yZGVyOiAxOyB9XG5cbi8qKlxyXG4gICAgICogUmV2ZXJzZSBvcmRlciBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAqL1xuLnJldmVyc2UtbGcge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteGwtMSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogOC4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteGwtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDIgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14bC0yIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAxNi42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMiBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteGwtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAzIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteGwtMyB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMjUlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDMgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhsLTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNCBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhsLTQge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA0IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14bC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDUgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14bC01IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA0MS42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteGwtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA2IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteGwtNiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNTAlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDYgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhsLTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNyBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhsLTcge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDU4LjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA3IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14bC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDggZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14bC04IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgOCBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteGwtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA5IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteGwtOSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNzUlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDkgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhsLTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTAgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14bC0xMCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogODMuMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEwIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14bC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhsLTExIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA5MS42NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMTEgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhsLTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEyIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteGwtMTIge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYHN0cmV0Y2hgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24teGwtc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgY2VudGVyYCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXhsLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LXN0YXJ0YCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXhsLWZsZXgtc3RhcnQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGZsZXgtZW5kYCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmFsaWduLXhsLWZsZXgtZW5kIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgYmFzZWxpbmVgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24teGwtYmFzZWxpbmUge1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHN0YXJ0YCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnkteGwtc3RhcnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBjZW50ZXJgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS14bC1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYmV0d2VlbmAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXhsLXNwYWNlLWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWFyb3VuZGAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXhsLXNwYWNlLWFyb3VuZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1ldmVubHlgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS14bC1zcGFjZS1ldmVubHkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTsgfVxuXG4vKipcclxuICAgICAgICogQmxlZWQgbGVmdCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmJsZWVkLXhsLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyoqXHJcbiAgICAgICAqIEJsZWVkIHJpZ2h0IGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYmxlZWQteGwtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi8qKlxyXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5maXJzdC14bCB7XG4gIG9yZGVyOiAtMTsgfVxuXG4vKipcclxuICAgICAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5sYXN0LXhsIHtcbiAgb3JkZXI6IDE7IH1cblxuLyoqXHJcbiAgICAgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICovXG4ucmV2ZXJzZS14bCB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBIZWFkaW5ncy5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBIZWFkaW5nIDEuXHJcbiAqL1xuaDEsXG4uaGVhZGluZy0xIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBmb250LXNpemU6IDQuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjA4MzNlbTtcbiAgZm9udC1mYW1pbHk6IFwiUHJlZGlnZS1NZWRpdW1cIjtcbiAgY29sb3I6ICNlZDZhNWU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIGgxLFxuICAgIC5oZWFkaW5nLTEge1xuICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgZm9udC1zaXplOiA0LjhyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4xMjVlbTsgfSB9XG5cbi8qKlxyXG4gKiBIZWFkaW5nIDIuXHJcbiAqL1xuaDIsXG4uaGVhZGluZy0yIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBmb250LXNpemU6IDQuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1ZW07XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtTWVkaXVtXCI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIGgyLFxuICAgIC5oZWFkaW5nLTIge1xuICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgZm9udC1zaXplOiA0LjhyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4xMjVlbTtcbiAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IH0gfVxuXG4vKipcclxuICogSGVhZGluZyAzLlxyXG4gKi9cbmgzLFxuLmhlYWRpbmctMyB7XG4gIGZvbnQtc2l6ZTogMTUwcHg7XG4gIGZvbnQtc2l6ZTogMTVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtTWVkaXVtXCI7XG4gIC13ZWJraXQtdGV4dC1zdHJva2U6IDFweCAjZWQ2YTVlO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICBoMyxcbiAgICAuaGVhZGluZy0zIHtcbiAgICAgIGZvbnQtc2l6ZTogMTAwcHg7XG4gICAgICBmb250LXNpemU6IDEwcmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDFlbTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICBoMyxcbiAgICAuaGVhZGluZy0zIHtcbiAgICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBIZWFkaW5ncy5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5oYXMtbG9hZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMTUwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGFzLWxvYWRbbG9hZGVkPSd0cnVlJ10ge1xuICB0b3A6IDA7XG4gIG9wYWNpdHk6IDE7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgU2VjdGlvblxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgV3JhcHBlclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFRoZSB3cmFwcGVyIG9iamVjdCBjZW50ZXJzIGFuIGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50LlxyXG4gKi9cbi8qKlxyXG4gKiBXcmFwcGVyIChkZWZhdWx0KVxyXG4gKi9cbi53cmFwcGVyIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDEyNTBweCArIDE5MHB4KTtcbiAgcGFkZGluZzogMCA5NXB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC53cmFwcGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgNDBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC53cmFwcGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgNTBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAud3JhcHBlciB7XG4gICAgICBwYWRkaW5nOiAwIDYwcHg7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDTVMgT3V0cHV0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogRXZlcnkgY29uY2VpdmFibGUgSFRNTCBlbGVtZW50IHdpdGhpbiBhIGAuY21zLW91dHB1dGAgd3JhcHBlci5cclxuICpcclxuICogMS4gRXhjbHVkZSBsYXN0IGNoaWxkcy5cclxuICovXG4uY21zLW91dHB1dCA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgLyogMSAqLyB9XG5cbi5jbXMtb3V0cHV0IHVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gIC5jbXMtb3V0cHV0IHVsIGxpIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuODc1ZW07XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDM1cHgpOyB9XG4gICAgLmNtcy1vdXRwdXQgdWwgbGk6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDVweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIGNvbnRlbnQ6ICfigLonOyB9XG5cbi5jbXMtb3V0cHV0IG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsOyB9XG4gIC5jbXMtb3V0cHV0IG9sIGxpIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuODc1ZW07IH1cblxuLmNtcy1vdXRwdXQgcCA+IGEge1xuICBjb2xvcjogI2RmNDEyNjsgfVxuICAuY21zLW91dHB1dCBwID4gYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbnRhY3QgZm9ybVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jb250YWN0LWZvcm0ge1xuICBwYWRkaW5nLWJvdHRvbTogMTcwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5jb250YWN0LWZvcm0ge1xuICAgICAgcGFkZGluZy1ib3R0b206IDg1cHg7IH0gfVxuXG4uY29udGFjdC1mb3JtX190aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMTBweDtcbiAgbGVmdDogLTE0cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4NXB4O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5jb250YWN0LWZvcm1fX3RpdGxlIHtcbiAgICAgIGxlZnQ6IC04cHg7XG4gICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDQzcHg7IH0gfVxuXG4uY29udGFjdC1mb3JtX19jb2x1bW4tY29udGFjdCB7XG4gIHdpZHRoOiA2MiU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuY29udGFjdC1mb3JtX19jb2x1bW4tY29udGFjdCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5jb250YWN0LWZvcm1fX2NvbnRhY3QtYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAxNzBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5jb250YWN0LWZvcm1fX2NvbnRhY3QtYmxvY2sge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTUwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmNvbnRhY3QtZm9ybV9fY29udGFjdC1ibG9jayB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA3NXB4OyB9IH1cbiAgLmNvbnRhY3QtZm9ybV9fY29udGFjdC1ibG9jazpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNvbnRhY3QtZm9ybV9fY29udGFjdC1ibG9jazpmaXJzdC1vZi10eXBlIC5jb250YWN0LWZvcm1fX2NvbnRhY3Qtc3VidGl0bGUge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb250YWN0LWZvcm1fX2NvbnRhY3QtdGl0bGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xNXB4O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5jb250YWN0LWZvcm1fX2NvbnRhY3QtdGl0bGUge1xuICAgICAgbGVmdDogLThweDsgfSB9XG5cbi5jb250YWN0LWZvcm1fX2NvbnRhY3Qtc3VidGl0bGUge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICBwYWRkaW5nLXRvcDogMjM1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuY29udGFjdC1mb3JtX19jb250YWN0LXN1YnRpdGxlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxNTJweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuY29udGFjdC1mb3JtX19jb250YWN0LXN1YnRpdGxlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMTBweDsgfSB9XG5cbi5jb250YWN0LWZvcm1fX2NvbnRhY3QtZWRpdG9yIHtcbiAgbWF4LXdpZHRoOiA1ODVweDsgfVxuXG4uY29udGFjdC1mb3JtX19jb250YWN0LWxvZ28ge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyOTBweDtcbiAgbWFyZ2luLXRvcDogNTVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5jb250YWN0LWZvcm1fX2NvbnRhY3QtbG9nbyB7XG4gICAgICBtYXJnaW4tdG9wOiA0MHB4OyB9IH1cblxuLmNvbnRhY3QtZm9ybV9fY29sdW1uLWZvcm0ge1xuICB3aWR0aDogMzglOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmNvbnRhY3QtZm9ybV9fY29sdW1uLWZvcm0ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIERvd25sb2Fkc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAuZG93bmxvYWRzIC53cmFwcGVyIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7IH0gfVxuXG4uZG93bmxvYWRzX19pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMTY0cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuZG93bmxvYWRzX19pdGVtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDExNXB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5kb3dubG9hZHNfX2l0ZW0ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogOTBweDsgfSB9XG5cbi5kb3dubG9hZHNfX2l0ZW0tZGF0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTE0cHg7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmRvd25sb2Fkc19faXRlbS1kYXRlIHtcbiAgICAgIGxlZnQ6IC03cHg7IH0gfVxuXG4uZG93bmxvYWRzX19jb2x1bW4taXRlbXMge1xuICB3aWR0aDogNjElO1xuICBwYWRkaW5nLXJpZ2h0OiA1MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZG93bmxvYWRzX19jb2x1bW4taXRlbXMge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uZG93bmxvYWRzX19pdGVtLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjdweDtcbiAgcGFkZGluZy10b3A6IDIyNHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmRvd25sb2Fkc19faXRlbS10aXRsZSB7XG4gICAgICBwYWRkaW5nLXRvcDogMTc1cHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmRvd25sb2Fkc19faXRlbS10aXRsZSB7XG4gICAgICBwYWRkaW5nLXRvcDogMTE1cHg7IH0gfVxuXG4uZG93bmxvYWRzX19pdGVtLWltYWdlIHtcbiAgbWF4LXdpZHRoOiA1NzBweDtcbiAgbWFyZ2luOiAzNXB4IDA7IH1cblxuLmRvd25sb2Fkc19faXRlbS1lZGl0b3Ige1xuICBtYXgtd2lkdGg6IDU3MHB4OyB9XG5cbi5kb3dubG9hZHNfX2l0ZW0tbGluayB7XG4gIG1hcmdpbi10b3A6IDM1cHg7IH1cblxuLmRvd25sb2Fkc19fY29sdW1uLWxpbmtzIHtcbiAgd2lkdGg6IDM5JTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmRvd25sb2Fkc19fY29sdW1uLWxpbmtzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNzVweDsgfSB9XG5cbi5kb3dubG9hZHNfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjNweDsgfVxuXG4uZG93bmxvYWRzX19lZGl0b3IgYSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjg3NWVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTsgfVxuICAuZG93bmxvYWRzX19lZGl0b3IgYTpob3ZlciB7XG4gICAgY29sb3I6ICNlZDZhNWU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRm9vdGVyIGNvbHVtbnNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5mb290ZXItY29sdW1ucyB7XG4gIGxpbmUtaGVpZ2h0OiAyOXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZm9vdGVyLWNvbHVtbnMge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICBsaW5lLWhlaWdodDogMmVtOyB9IH1cbiAgLmZvb3Rlci1jb2x1bW5zIC53cmFwcGVyIHtcbiAgICBwYWRkaW5nLXRvcDogMTYwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE3NXB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLmZvb3Rlci1jb2x1bW5zIC53cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDcwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4NXB4OyB9IH1cbiAgLmZvb3Rlci1jb2x1bW5zIGEge1xuICAgIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlOyB9XG4gICAgLmZvb3Rlci1jb2x1bW5zIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNlZDZhNWU7IH1cblxuLmZvb3Rlci1jb2x1bW5zX19jb250YWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNDAlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZm9vdGVyLWNvbHVtbnNfX2NvbnRhY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OyB9IH1cblxuLmZvb3Rlci1jb2x1bW5zX19jb250YWN0LWxvZ28ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTM1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb290ZXItY29sdW1uc19fY29udGFjdC1sb2dvIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMDsgfSB9XG4gIC5mb290ZXItY29sdW1uc19fY29udGFjdC1sb2dvIGltZyB7XG4gICAgbWF4LXdpZHRoOiAzNjBweDsgfVxuXG4uZm9vdGVyLWNvbHVtbnNfX2NvbnRhY3QtZWRpdG9yIHtcbiAgbWFyZ2luLXRvcDogNzVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvb3Rlci1jb2x1bW5zX19jb250YWN0LWVkaXRvciB7XG4gICAgICBtYXJnaW4tdG9wOiAzMHB4OyB9IH1cblxuLmZvb3Rlci1jb2x1bW5zX19zaXRlbWFwcyB7XG4gIHdpZHRoOiA0NSU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb290ZXItY29sdW1uc19fc2l0ZW1hcHMge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5mb290ZXItY29sdW1uc19fc2l0ZW1hcCB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLmZvb3Rlci1jb2x1bW5zX19zb2NpYWwtdGl0bGUsXG4uZm9vdGVyLWNvbHVtbnNfX3NpdGVtYXAtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiA0NXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZm9vdGVyLWNvbHVtbnNfX3NvY2lhbC10aXRsZSxcbiAgICAuZm9vdGVyLWNvbHVtbnNfX3NpdGVtYXAtdGl0bGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsgfSB9XG5cbi5mb290ZXItY29sdW1uc19fc29jaWFsIHtcbiAgd2lkdGg6IDE1JTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvb3Rlci1jb2x1bW5zX19zb2NpYWwge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uZm9vdGVyLWNvbHVtbnNfX3NvY2lhbC1saW5rcyBhIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmZvb3Rlci1jb2x1bW5zX19zb2NpYWwtbGlua3MgYTpob3ZlciB7XG4gICAgY29sb3I6ICNlZDZhNWU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRm9vdGVyIENUQVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmZvb3Rlci1jdGEge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAyOyB9XG4gIC5mb290ZXItY3RhIC53cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmJhY2tncm91bmQtLWJvcmRlciArIC5mb290ZXItY3RhIHtcbiAgcGFkZGluZy10b3A6IDE3NXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuYmFja2dyb3VuZC0tYm9yZGVyICsgLmZvb3Rlci1jdGEge1xuICAgICAgcGFkZGluZy10b3A6IDc1cHg7IH0gfVxuXG4uZm9vdGVyLWN0YSArIGRpdiB7XG4gIG1hcmdpbi10b3A6IC05NXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZm9vdGVyLWN0YSArIGRpdiB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cblxuLmZvb3Rlci1jdGFfX2JvZHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTYwcHg7XG4gIHJpZ2h0OiAwO1xuICBtYXgtd2lkdGg6IDU3NXB4O1xuICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgcGFkZGluZzogNjBweCA1NXB4O1xuICBiYWNrZ3JvdW5kOiAjZWQ2YTVlO1xuICBjb2xvcjogIzFmMmI0YzsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvb3Rlci1jdGFfX2JvZHkge1xuICAgICAgdG9wOiAxMjBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZm9vdGVyLWN0YV9fYm9keSB7XG4gICAgICB0b3A6IDQwcHg7XG4gICAgICByaWdodDogNDBweDtcbiAgICAgIGJvdHRvbTogNDBweDtcbiAgICAgIGxlZnQ6IDQwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICAgIHBhZGRpbmc6IDYwcHggNDBweDsgfSB9XG5cbi5mb290ZXItY3RhX19saW5rIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4uZm9vdGVyLWN0YV9faW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDB2dztcbiAgbWluLWhlaWdodDogNTcwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb290ZXItY3RhX19pbWFnZSB7XG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgIGhlaWdodDogNTAwcHggIWltcG9ydGFudDsgfSB9XG4gIC5mb290ZXItY3RhX19pbWFnZSBpbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBGb290ZXJcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5mb290ZXIge1xuICBoZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZjJiNGM7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb290ZXIge1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgcGFkZGluZy10b3A6IDVweDsgfSB9XG5cbi5mb290ZXJfX2xpbmtzIGEge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBtYXJnaW4tcmlnaHQ6IDYwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGU7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvb3Rlcl9fbGlua3MgYSB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwLjg1NzE0ZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICBib3JkZXI6IDA7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLmZvb3Rlcl9fbGlua3MgYTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2VkNmE1ZTtcbiAgICAgIGNvbG9yOiAjZWQ2YTVlOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRm9ybVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmZvcm0ge1xuICBwYWRkaW5nLWJvdHRvbTogMTgwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb3JtIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4NXB4OyB9IH1cblxuLmZvcm1fX3RpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xMHB4O1xuICBsZWZ0OiAtMTRweDtcbiAgcGFkZGluZy1ib3R0b206IDg1cHg7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvcm1fX3RpdGxlIHtcbiAgICAgIGxlZnQ6IC04cHg7XG4gICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDUwcHg7IH0gfVxuXG4uZm9ybV9fY29sdW1uLWZvcm0ge1xuICB3aWR0aDogNzIlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmZvcm1fX2NvbHVtbi1mb3JtIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmZvcm1fX2NvbHVtbi1pbWFnZSB7XG4gIHdpZHRoOiAyOCU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuZm9ybV9fY29sdW1uLWltYWdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uZm9ybV9faW1hZ2UgaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgbWluLXdpZHRoOiA0MzVweDsgfVxuXG4uZm9ybV9fc2hvcnRjb2RlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBIZWFkZXJcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5oZWFkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIxMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgIGhlaWdodDogMTI1cHg7IH0gfVxuICAuaGVhZGVyIC53cmFwcGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMjEwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuaGVhZGVyIC53cmFwcGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBoZWlnaHQ6IDEyNXB4OyB9IH1cblxuLmhlYWRlciArIGRpdiB7XG4gIHBhZGRpbmctdG9wOiAyMTBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmhlYWRlciArIGRpdiB7XG4gICAgICBwYWRkaW5nLXRvcDogMTI1cHg7IH0gfVxuXG4uaGVhZGVyX19sb2dvIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQ3OXB4KTtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgei1pbmRleDogMjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmhlYWRlcl9fbG9nbyB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDRweCk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgNzUwbXMgZWFzZTsgfSB9XG4gIC5oZWFkZXJfX2xvZ28gaW1nIHtcbiAgICB3aWR0aDogMjEycHg7XG4gICAgaGVpZ2h0OiAxNTBweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgIC5oZWFkZXJfX2xvZ28gaW1nIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMHB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAuYm9keS5pcy1hY3RpdmUgLmhlYWRlcl9fbG9nbyB7XG4gICAgei1pbmRleDogMTAwOyB9IH1cblxuLmhlYWRlcl9fYnV0dG9ucyB7XG4gIHdpZHRoOiA0NDVweDtcbiAgei1pbmRleDogMjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmhlYWRlcl9fYnV0dG9ucyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmhlYWRlcl9fYnV0dG9uIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzFmMmI0YztcbiAgY29sb3I6ICMxZjJiNGM7IH1cbiAgLmhlYWRlcl9fYnV0dG9uIHN2ZyB7XG4gICAgY29sb3I6ICMxZjJiNGM7XG4gICAgZmlsbDogIzFmMmI0YzsgfVxuICAuaGVhZGVyX19idXR0b246OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWYyYjRjOyB9XG4gIC5oZWFkZXJfX2J1dHRvbjpob3ZlciB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC5oZWFkZXJfX2J1dHRvbi5pcy1zZWFyY2gge1xuICAgIG1hcmdpbi1yaWdodDogODBweDsgfVxuXG4vKipcclxuICogTW9iaWxlIG1lbnUgYnV0dG9uLlxyXG4gKi9cbi5oZWFkZXJfX21lbnUtYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMzRweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICB6LWluZGV4OiAxMDE7IH1cbiAgLmhlYWRlcl9fbWVudS1idXR0b24gc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQ2YTVlOyB9XG4gICAgLmhlYWRlcl9fbWVudS1idXR0b24gc3BhbjpudGgtY2hpbGQoMSkge1xuICAgICAgdG9wOiAwO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciA0MDBtcywgdG9wIDQwMG1zIDQwMG1zLCB0cmFuc2Zvcm0gNDAwbXMgMHM7IH1cbiAgICAuaGVhZGVyX19tZW51LWJ1dHRvbiBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gMXB4KTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgNDAwbXMsIG9wYWNpdHkgMG1zIDQwMG1zO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VkNmE1ZTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuaGVhZGVyX19tZW51LWJ1dHRvbiBzcGFuOm50aC1jaGlsZCgzKSB7XG4gICAgICBib3R0b206IDA7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zLCBib3R0b20gNDAwbXMgNDAwbXMsIHRyYW5zZm9ybSA0MDBtcyAwcztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZDZhNWU7IH1cbiAgLmhlYWRlcl9fbWVudS1idXR0b24uaXMtYWN0aXZlIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMXB4KTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgNDAwbXMsIHRvcCA0MDBtcywgdHJhbnNmb3JtIDQwMG1zIDQwMG1zOyB9XG4gIC5oZWFkZXJfX21lbnUtYnV0dG9uLmlzLWFjdGl2ZSBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuaGVhZGVyX19tZW51LWJ1dHRvbi5pcy1hY3RpdmUgc3BhbjpudGgtY2hpbGQoMykge1xuICAgIGJvdHRvbTogY2FsYyg1MCUgLSAxcHgpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zLCBib3R0b20gNDAwbXMsIHRyYW5zZm9ybSA0MDBtcyA0MDBtczsgfVxuXG4vKipcclxuICogSGVhZGVyIHNlY29uZGFyeSBjb2xvcnMuXHJcbiAqL1xuLmhlYWRlci0tc2Vjb25kYXJ5IC5oZWFkZXJfX2J1dHRvbiB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMxZjJiNGM7XG4gIGNvbG9yOiAjMWYyYjRjOyB9XG4gIC5oZWFkZXItLXNlY29uZGFyeSAuaGVhZGVyX19idXR0b24gc3ZnIHtcbiAgICBjb2xvcjogIzFmMmI0YztcbiAgICBmaWxsOiAjMWYyYjRjOyB9XG4gIC5oZWFkZXItLXNlY29uZGFyeSAuaGVhZGVyX19idXR0b246OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWYyYjRjOyB9XG4gIC5oZWFkZXItLXNlY29uZGFyeSAuaGVhZGVyX19idXR0b246aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG4uaGVhZGVyLS1zZWNvbmRhcnkgLmhlYWRlcl9fbWVudS1idXR0b24gc3BhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDZhNWU7IH1cbiAgLmhlYWRlci0tc2Vjb25kYXJ5IC5oZWFkZXJfX21lbnUtYnV0dG9uIHNwYW46bnRoLWNoaWxkKDIpLCAuaGVhZGVyLS1zZWNvbmRhcnkgLmhlYWRlcl9fbWVudS1idXR0b24gc3BhbjpudGgtY2hpbGQoMykge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZDZhNWU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgSG9tZSBETkEgZm9ybS5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBEZWZhdWx0IHN0eWxpbmcuXHJcbiAqL1xuaW5wdXRbdHlwZT0ndGV4dCddLFxuaW5wdXRbdHlwZT0nbnVtYmVyJ10sXG5pbnB1dFt0eXBlPSdlbWFpbCddLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDdweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzFmMmI0YztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZWQ2YTVlOyB9XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxMjVweDtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMxZjJiNGM7IH1cblxuaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlZDZhNWU7IH1cblxuLyoqXHJcbiAqIEhvbWVETkEgZm9ybS5cclxuICovXG4uaG9tZWRuYS1zdXJ2ZXkge1xuICBtYXgtd2lkdGg6IDU3NXB4OyB9XG5cbi5ob21lZG5hLXN1cnZleSBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogXCJQcmVkaWdlLU1lZGl1bVwiOyB9XG5cbi5ob21lZG5hLXN1cnZleSAucXVlc3Rpb24tdHlwZS1zdGF0aWMsXG4uaG9tZWRuYS1zdXJ2ZXkgLnF1ZXN0aW9uLXR5cGUtaGVhZGVyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uaG9tZWRuYS1zdXJ2ZXkgLndyYXAtcXVlc3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjZweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNvbG9yOiAjMWYyYjRjOyB9XG4gIC5ob21lZG5hLXN1cnZleSAud3JhcC1xdWVzdGlvbiBhIHtcbiAgICBjb2xvcjogI2VkNmE1ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIC5ob21lZG5hLXN1cnZleSAud3JhcC1xdWVzdGlvbiBhOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uaG9tZWRuYS1zdXJ2ZXkgLnF1ZXN0aW9uLXR5cGUtcmFkaW8gbGFiZWwge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uaG9tZWRuYS1zdXJ2ZXkgaW5wdXRbdHlwZT1yYWRpb10sXG4uaG9tZWRuYS1zdXJ2ZXkgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgcGFkZGluZzogMDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRyYW5zaXRpb246IDAuMzVzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWYyYjRjOyB9XG4gIC5ob21lZG5hLXN1cnZleSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkLFxuICAuaG9tZWRuYS1zdXJ2ZXkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFmMmI0YzsgfVxuXG4uaG9tZWRuYS1zdXJ2ZXkgLmJ0bi1zdHlsZSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luOiA1MHB4IDM1cHggMCAwO1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xuICBib3JkZXI6IDJweCBzb2xpZCAjZWQ2YTVlO1xuICBjb2xvcjogI2VkNmE1ZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5ob21lZG5hLXN1cnZleSAuYnRuLXN0eWxlIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNnB4O1xuICAgIHJpZ2h0OiAtMzdweDtcbiAgICB3aWR0aDogMzVweDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcbiAgICBjb2xvcjogI2VkNmE1ZTtcbiAgICBmaWxsOiAjZWQ2YTVlOyB9XG4gIC5ob21lZG5hLXN1cnZleSAuYnRuLXN0eWxlOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGVhc2U7XG4gICAgYmFja2dyb3VuZDogI2VkNmE1ZTtcbiAgICBjb250ZW50OiAnJztcbiAgICB6LWluZGV4OiAtMTsgfVxuICAuaG9tZWRuYS1zdXJ2ZXkgLmJ0bi1zdHlsZTpob3Zlcjo6YWZ0ZXIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5ob21lZG5hLXN1cnZleSAuYnRuLXN0eWxlOmhvdmVyIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuI2Zvcm1QYWdlTmF2IHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4jZm9ybVBhZ2VOYXYgPiAudGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4jZm9ybVBhZ2VOYXYgPiBzcGFuW2RhdGEtcGFnZV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMzBweDtcbiAgcGFkZGluZzogNXB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDQ1MG1zLCBjb2xvciA0NTBtcztcbiAgYm9yZGVyOiAxcHggc29saWQgIzU5NWE0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICNmb3JtUGFnZU5hdiA+IHNwYW5bZGF0YS1wYWdlXTpob3ZlciwgI2Zvcm1QYWdlTmF2ID4gc3BhbltkYXRhLXBhZ2VdLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU5NWE0ZTtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTG9jYXRpb25cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sb2NhdGlvbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5sb2NhdGlvbiAud3JhcHBlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLmxvY2F0aW9uX19jb2x1bW4tdGV4dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDMwJTtcbiAgcGFkZGluZzogOTBweCAzNXB4IDAgMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmxvY2F0aW9uX19jb2x1bW4tdGV4dCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gODBweCk7XG4gICAgICBtYXJnaW46IDcwcHggNDBweCA4MHB4O1xuICAgICAgcGFkZGluZzogMzVweCAwIDA7IH0gfVxuICAubG9jYXRpb25fX2NvbHVtbi10ZXh0OjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMzNweDtcbiAgICBoZWlnaHQ6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiAjMWYyYjRjO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLmxvY2F0aW9uX19jb2x1bW4tdGV4dDo6YmVmb3JlIHtcbiAgICAgICAgaGVpZ2h0OiAycHg7IH0gfVxuXG4ubG9jYXRpb25fX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuXG5oMS5sb2NhdGlvbl9fdGl0bGUge1xuICBjb2xvcjogIzFmMmI0YzsgfVxuXG4ubG9jYXRpb25fX2NvbHVtbi1tYXAge1xuICB3aWR0aDogNzAlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubG9jYXRpb25fX2NvbHVtbi1tYXAge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ubG9jYXRpb25fX21hcCB7XG4gIHBvc2l0aW9uOiBpbml0aWFsO1xuICB3aWR0aDogNjYuNnZ3O1xuICBtaW4taGVpZ2h0OiA2MDBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmxvY2F0aW9uX19tYXAge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiBhdXRvOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5sb2NhdGlvbl9fbWFwIHtcbiAgICAgIG1pbi1oZWlnaHQ6IGF1dG87IH0gfVxuXG4ubG9jYXRpb25fX21hcC1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIE1vYmlsZSBzY3JvbGxcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5tb2JpbGUtc2Nyb2xsIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc3NzhlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAxNzBweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICBjb2xvcjogI2Q5OWI2ODtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAubW9iaWxlLXNjcm9sbCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLm1vYmlsZS1zY3JvbGwgc3ZnIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMnB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIHdpZHRoOiAzNXB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIGNvbG9yOiAjZDk5YjY4O1xuICAgIGZpbGw6ICNkOTliNjg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTmF2aWdhdGlvblxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm5hdmlnYXRpb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogLTEwMHZoO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZTU5NiAxLjA0JSwgI2Y1YTE2MiAyMy45NiUsICNlZDZhNWUgNDMuNzUlLCAjNmI1MTdjIDYzLjAyJSwgIzI0MzY2NSA3OC42NSUsICMxZjJiNGMgOTYuMzUlKTtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLm5hdmlnYXRpb24ge1xuICAgICAgdG9wOiAxMDB2aDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IDEyNXB4O1xuICAgICAgcGFkZGluZzogMTJweCAwIDQwcHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmU1OTY7XG4gICAgICBjb2xvcjogIzFmMmI0YzsgfSB9XG4gIC5uYXZpZ2F0aW9uLmlzLWFjdGl2ZSB7XG4gICAgdG9wOiAwO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLm5hdmlnYXRpb246Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKlxyXG4gKiBDb250YWN0LlxyXG4gKi9cbi5uYXZpZ2F0aW9uX19jb2x1bW4tY29udGFjdCB7XG4gIHdpZHRoOiA0MCU7XG4gIHBhZGRpbmctdG9wOiA5MHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubmF2aWdhdGlvbl9fY29sdW1uLWNvbnRhY3Qge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5uYXZpZ2F0aW9uX19jb250YWN0LWJsb2NrIHtcbiAgbWFyZ2luLWJvdHRvbTogMjJweDsgfVxuICAubmF2aWdhdGlvbl9fY29udGFjdC1ibG9jayBhOmhvdmVyIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAgIC5uYXZpZ2F0aW9uX19jb250YWN0LWJsb2NrIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogI2RmNDEyNjsgfSB9XG5cbi5uYXZpZ2F0aW9uX19jb250YWN0LXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjJweDsgfVxuXG4ubmF2aWdhdGlvbl9fY29udGFjdC1lZGl0b3Ige1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMS44NzVlbTsgfVxuXG4vKipcclxuICogU29jaWFsLlxyXG4gKi9cbi5uYXZpZ2F0aW9uX19zb2NpYWwuaXMtZGVza3RvcCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5uYXZpZ2F0aW9uX19zb2NpYWwuaXMtZGVza3RvcCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5uYXZpZ2F0aW9uX19zb2NpYWwuaXMtbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLm5hdmlnYXRpb25fX3NvY2lhbC5pcy1tb2JpbGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4ubmF2aWdhdGlvbl9fc29jaWFsLXRpdGxlIHtcbiAgbWFyZ2luOiA3MHB4IDAgMjZweDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LWZhbWlseTogXCJQcmVkaWdlLU1lZGl1bVwiOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubmF2aWdhdGlvbl9fc29jaWFsLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjhlbTtcbiAgICAgIG1hcmdpbjogMTM1cHggMCAyMXB4O1xuICAgICAgY29sb3I6ICMxZjJiNGM7IH0gfVxuXG4ubmF2aWdhdGlvbl9fc29jaWFsLWxpbmtzIGEge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMS44NzVlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xuICBjb2xvcjogd2hpdGU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5uYXZpZ2F0aW9uX19zb2NpYWwtbGlua3MgYSB7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS44ZW07XG4gICAgICBjb2xvcjogIzFmMmI0YzsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAubmF2aWdhdGlvbl9fc29jaWFsLWxpbmtzIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNlZDZhNWU7IH0gfVxuXG4vKipcclxuICogTWFpbiBtZW51LlxyXG4gKi9cbi5uYXZpZ2F0aW9uX19jb2x1bW4tbWVudSB7XG4gIHdpZHRoOiA2MCU7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwYWRkaW5nOiA5MHB4IDAgMCA5NXB4O1xuICBjb2xvcjogIzFmMmI0YzsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLm5hdmlnYXRpb25fX2NvbHVtbi1tZW51IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAubmF2aWdhdGlvbl9fY29sdW1uLW1lbnU6OmJlZm9yZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAyMHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTk2OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLm5hdmlnYXRpb25fX2NvbHVtbi1tZW51OjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLm1haW4tbWVudSA+IGxpIGEge1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGZvbnQtc2l6ZTogNC44cmVtO1xuICBsaW5lLWhlaWdodDogMS41ODMzM2VtO1xuICBmb250LWZhbWlseTogXCJQcmVkaWdlLU1lZGl1bVwiO1xuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLm1haW4tbWVudSA+IGxpIGEge1xuICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNmVtO1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgIGNvbG9yOiAjMWYyYjRjOyB9IH1cblxuLm1haW4tbWVudSA+IGxpLmN1cnJlbnQtbWVudS1pdGVtIGEsIC5tYWluLW1lbnUgPiBsaTpob3ZlciBhIHtcbiAgY29sb3I6ICNlZDZhNWU7IH1cblxuLyoqXHJcbiAqIEJhY2tncm91bmQgaGVhZGVyLlxyXG4gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgLmhlYWRlcjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xuICAgIGJhY2tncm91bmQ6ICNmZmU1OTY7XG4gICAgY29udGVudDogJyc7IH0gfVxuXG4vKipcclxuICogRGlzYWJsZSBzY3JvbGwuXHJcbiAqL1xuLmJvZHkuaXMtYWN0aXZlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuYm9keS5pcy1hY3RpdmUgLmhlYWRlcjo6YmVmb3JlIHtcbiAgICBib3R0b206IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTmV3cyBsaXN0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC5uZXdzLWxpc3QgLndyYXBwZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICBwYWRkaW5nLXRvcDogMTVweDsgfSB9XG5cbi8qKlxyXG4gKiBJdGVtcy5cclxuICovXG4ubmV3cy1saXN0X19pdGVtcyB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0NzlweCk7XG4gIHBhZGRpbmctcmlnaHQ6IDUwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5uZXdzLWxpc3RfX2l0ZW1zIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyoqXHJcbiAqIEl0ZW0uXHJcbiAqL1xuLm5ld3MtbGlzdF9faXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDE2NHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLm5ld3MtbGlzdF9faXRlbSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMTVweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubmV3cy1saXN0X19pdGVtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7IH0gfVxuXG4ubmV3cy1saXN0X19pdGVtLWRhdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xNHB4O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5uZXdzLWxpc3RfX2l0ZW0tZGF0ZSB7XG4gICAgICBsZWZ0OiAtN3B4OyB9IH1cblxuLm5ld3MtbGlzdF9faXRlbS10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDI3cHg7XG4gIHBhZGRpbmctdG9wOiAyMjRweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5uZXdzLWxpc3RfX2l0ZW0tdGl0bGUge1xuICAgICAgcGFkZGluZy10b3A6IDE3NXB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5uZXdzLWxpc3RfX2l0ZW0tdGl0bGUge1xuICAgICAgcGFkZGluZy10b3A6IDExNXB4OyB9IH1cblxuLm5ld3MtbGlzdF9faXRlbS1pbWFnZSB7XG4gIG1heC13aWR0aDogNTcwcHg7XG4gIG1hcmdpbjogMzVweCAwOyB9XG5cbi5uZXdzLWxpc3RfX2l0ZW0tZWRpdG9yIHtcbiAgbWF4LXdpZHRoOiA1NzBweDsgfVxuXG4ubmV3cy1saXN0X19pdGVtLWxpbmsge1xuICBtYXJnaW4tdG9wOiAzNXB4OyB9XG5cbi8qKlxyXG4gKiBQYWdpbmF0aW9uLlxyXG4gKi9cbi5uZXdzLWxpc3RfX3BhZ2luYXRpb24ge1xuICB3aWR0aDogNDc5cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5uZXdzLWxpc3RfX3BhZ2luYXRpb24ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiA3NXB4OyB9IH1cbiAgLm5ld3MtbGlzdF9fcGFnaW5hdGlvbiAucGFnaW5hdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMzVweDsgfVxuICAgIC5uZXdzLWxpc3RfX3BhZ2luYXRpb24gLnBhZ2luYXRpb24gLnBhZ2UtbnVtYmVycyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlOyB9XG4gICAgLm5ld3MtbGlzdF9fcGFnaW5hdGlvbiAucGFnaW5hdGlvbiAucHJldixcbiAgICAubmV3cy1saXN0X19wYWdpbmF0aW9uIC5wYWdpbmF0aW9uIC5uZXh0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubmV3cy1saXN0X19wYWdpbmF0aW9uIC5wYWdpbmF0aW9uIC5jdXJyZW50LFxuICAgIC5uZXdzLWxpc3RfX3BhZ2luYXRpb24gLnBhZ2luYXRpb24gLnBhZ2UtbnVtYmVyczpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzU5NWE0ZTsgfVxuICAgIC5uZXdzLWxpc3RfX3BhZ2luYXRpb24gLnBhZ2luYXRpb24gYS5wYWdlLW51bWJlcnM6aG92ZXIge1xuICAgICAgY29sb3I6ICNkZjQxMjY7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAubmV3cy1saXN0X19zdGlja3kuaXMtYWN0aXZlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiA4MHB4OyB9IH1cblxuLm5ld3MtbGlzdF9fcGFnaW5hdGlvbi10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDIzcHg7IH1cblxuLm5ld3MtbGlzdF9fcGFnaW5hdGlvbi1saW5rIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTsgfVxuICAubmV3cy1saXN0X19wYWdpbmF0aW9uLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjZWQ2YTVlOyB9XG5cbi5uZXdzLWxpc3RfX3BhZ2luYXRpb24tZGF0ZSB7XG4gIHdpZHRoOiAxNDVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLm5ld3MtbGlzdF9fcGFnaW5hdGlvbi1kYXRlIHtcbiAgICAgIHdpZHRoOiA4MHB4OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUGFydG5lcnMgaW1hZ2VcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5wYXJ0bmVycy1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucGFydG5lcnMtaW1hZ2UgLndyYXBwZXIge1xuICAgIHBhZGRpbmctdG9wOiAxNTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTc1cHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgLnBhcnRuZXJzLWltYWdlIC53cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDkxcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4NXB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAucGFydG5lcnMtaW1hZ2UgLndyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogNzVweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDg1cHg7IH0gfVxuXG4ucGFydG5lcnMtaW1hZ2UgKyBkaXY6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZjJiNGM7IH1cblxuLnBhcnRuZXJzLWltYWdlX190aXRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTJweDtcbiAgbGVmdDogLTE1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAucGFydG5lcnMtaW1hZ2VfX3RpdGxlIHtcbiAgICAgIHRvcDogLTYxcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnBhcnRuZXJzLWltYWdlX190aXRsZSB7XG4gICAgICB0b3A6IC0zMXB4O1xuICAgICAgbGVmdDogLThweDsgfSB9XG5cbi5wYXJ0bmVycy1pbWFnZV9fY29sdW1uLXBhcnRuZXJzIHtcbiAgd2lkdGg6IDcyJTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5wYXJ0bmVycy1pbWFnZV9fY29sdW1uLXBhcnRuZXJzIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnBhcnRuZXJzLWltYWdlX19wYXJ0bmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMjIwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAucGFydG5lcnMtaW1hZ2VfX3BhcnRuZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTUwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnBhcnRuZXJzLWltYWdlX19wYXJ0bmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDgwcHg7IH0gfVxuICAucGFydG5lcnMtaW1hZ2VfX3BhcnRuZXI6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5wYXJ0bmVycy1pbWFnZV9fcGFydG5lcjpmaXJzdC1vZi10eXBlIC5wYXJ0bmVycy1pbWFnZV9fcGFydG5lci1zdWJ0aXRsZSB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cblxuLnBhcnRuZXJzLWltYWdlX19wYXJ0bmVyLXRpdGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMTVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnBhcnRuZXJzLWltYWdlX19wYXJ0bmVyLXRpdGxlIHtcbiAgICAgIGxlZnQ6IC04cHg7IH0gfVxuXG4ucGFydG5lcnMtaW1hZ2VfX3BhcnRuZXItc3VidGl0bGUge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICBwYWRkaW5nLXRvcDogMjM1cHg7XG4gIGNvbG9yOiAjZGY0MTI2OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLnBhcnRuZXJzLWltYWdlX19wYXJ0bmVyLXN1YnRpdGxlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxNTJweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucGFydG5lcnMtaW1hZ2VfX3BhcnRuZXItc3VidGl0bGUge1xuICAgICAgcGFkZGluZy10b3A6IDExMHB4OyB9IH1cblxuLnBhcnRuZXJzLWltYWdlX19wYXJ0bmVyLWVkaXRvciB7XG4gIG1heC13aWR0aDogNTg1cHg7IH1cblxuLnBhcnRuZXJzLWltYWdlX19jb2x1bW4taW1hZ2Uge1xuICB3aWR0aDogMjglOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLnBhcnRuZXJzLWltYWdlX19jb2x1bW4taW1hZ2Uge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5wYXJ0bmVycy1pbWFnZV9faW1hZ2UgaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgbWluLXdpZHRoOiA0MzVweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBQcm9wZXJ0eSBtYXBcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgLnByb3BlcnR5LW1hcCB7XG4gICAgbWluLWhlaWdodDogMTI1cHg7IH0gfVxuXG4ucHJvcGVydHktbWFwLmJhY2tncm91bmQtLWJsdWUgLnByb3BlcnR5LW1hcF9fY29sdW1uLWRldGFpbHM6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNlZDZhNWU7IH1cblxuLnByb3BlcnR5LW1hcC5iYWNrZ3JvdW5kLS1kZWZhdWx0IC5wcm9wZXJ0eS1tYXBfX2NvbHVtbi1kZXRhaWxzOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMWYyYjRjOyB9XG5cbi5wcm9wZXJ0eS1tYXAuYmFja2dyb3VuZC0tYm9yZGVyICsgLnByb3BlcnR5LW1hcCB7XG4gIHBhZGRpbmctdG9wOiAyMTVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnByb3BlcnR5LW1hcC5iYWNrZ3JvdW5kLS1ib3JkZXIgKyAucHJvcGVydHktbWFwIHtcbiAgICAgIHBhZGRpbmctdG9wOiA0MHB4OyB9IH1cblxuLnByb3BlcnR5LW1hcCArIC5mb290ZXItY3RhIHtcbiAgcGFkZGluZy10b3A6IDE4MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucHJvcGVydHktbWFwICsgLmZvb3Rlci1jdGEge1xuICAgICAgcGFkZGluZy10b3A6IDkwcHg7IH0gfVxuXG4ucHJvcGVydHktbWFwX19jb2x1bW4tZGV0YWlscyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDMwJTtcbiAgcGFkZGluZy10b3A6IDk1cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9wZXJ0eS1tYXBfX2NvbHVtbi1kZXRhaWxzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAucHJvcGVydHktbWFwX19jb2x1bW4tZGV0YWlsczo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDMzcHg7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgY29udGVudDogJyc7IH1cblxuLnByb3BlcnR5LW1hcF9fY29sdW1uLW1hcCB7XG4gIHdpZHRoOiA3MCU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9wZXJ0eS1tYXBfX2NvbHVtbi1tYXAge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ucHJvcGVydHktbWFwX19wbGFjZWhvbGRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA5NXB4O1xuICBtYXgtd2lkdGg6IDIxMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTtcbiAgb3BhY2l0eTogMTsgfVxuICAucHJvcGVydHktbWFwX19wbGFjZWhvbGRlci5pcy1oaWRkZW4ge1xuICAgIHRvcDogLTE4MHB4O1xuICAgIG9wYWNpdHk6IDA7IH1cblxuLnByb3BlcnR5LW1hcF9fcHJvcGVydGllcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnByb3BlcnR5LW1hcF9fcHJvcGVydHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OXB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7XG4gIG9wYWNpdHk6IDA7IH1cbiAgLnByb3BlcnR5LW1hcF9fcHJvcGVydHkuaXMtYWN0aXZlIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4ucHJvcGVydHktbWFwX19wcm9wZXJ0eS10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUHJvcGVydHkgc2luZ2xlXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucHJvcGVydHktc2luZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5wcm9wZXJ0eS1zaW5nbGUgLndyYXBwZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDE2MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxODBweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAucHJvcGVydHktc2luZ2xlIC53cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDkxcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4NXB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAucHJvcGVydHktc2luZ2xlIC53cmFwcGVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgICBwYWRkaW5nLXRvcDogNzVweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDg1cHg7IH0gfVxuXG4ucHJvcGVydHktc2luZ2xlX190aXRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTJweDtcbiAgbGVmdDogLTE1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAucHJvcGVydHktc2luZ2xlX190aXRsZSB7XG4gICAgICB0b3A6IC02MXB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9wZXJ0eS1zaW5nbGVfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogNjBweDtcbiAgICAgIGZvbnQtc2l6ZTogNnJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgIHRvcDogLTQycHg7XG4gICAgICBsZWZ0OiAtOHB4OyB9IH1cblxuLnByb3BlcnR5LXNpbmdsZV9fY29sdW1uLWRldGFpbHMge1xuICB3aWR0aDogMjkwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9wZXJ0eS1zaW5nbGVfX2NvbHVtbi1kZXRhaWxzIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnByb3BlcnR5LXNpbmdsZV9fc3VidGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICBjb2xvcjogIzFmMmI0YzsgfVxuXG4ucHJvcGVydHktc2luZ2xlX19pbmZvcm1hdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gIGNvbG9yOiAjMWYyYjRjOyB9XG5cbi5wcm9wZXJ0eS1zaW5nbGVfX2NvbHVtbi1tYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyOTBweCk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9wZXJ0eS1zaW5nbGVfX2NvbHVtbi1tYXAge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4MHB4OyB9IH1cblxuLnByb3BlcnR5LXNpbmdsZV9fc2xpZGVzaG93LWltYWdlcyB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM1OTVhNGU7IH1cblxuLnByb3BlcnR5LXNpbmdsZV9fbmF2aWdhdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogLTM4cHg7IH1cbiAgLnByb3BlcnR5LXNpbmdsZV9fbmF2aWdhdGlvbiBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xuICAgIGNvbG9yOiAjMWYyYjRjOyB9XG4gICAgLnByb3BlcnR5LXNpbmdsZV9fbmF2aWdhdGlvbiBidXR0b24uYWN0aXZlLCAucHJvcGVydHktc2luZ2xlX19uYXZpZ2F0aW9uIGJ1dHRvbjpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzFmMmI0YzsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBQcm9wZXJ0eSB0eXBlIGl0ZW1cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5wcm9wZXJ0eS10eXBlLWl0ZW0ge1xuICB3aWR0aDogY2FsYyg1MCUgLSA0Ny41cHgpO1xuICBtYXJnaW4tYm90dG9tOiAxMjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnByb3BlcnR5LXR5cGUtaXRlbSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDgwcHg7IH0gfVxuICAucHJvcGVydHktdHlwZS1pdGVtIC5idXR0b24tLWFycm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBub3JtYWw7IH1cbiAgLnByb3BlcnR5LXR5cGUtaXRlbSAuYnV0dG9uLS1hcnJvdyBzdmcge1xuICAgIHRvcDogNXB4O1xuICAgIGhlaWdodDogMTZweDsgfVxuXG4ucHJvcGVydHktdHlwZS1pdGVtX19oZWFkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5wcm9wZXJ0eS10eXBlLWl0ZW1fX2F2YWlsYWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzMHB4O1xuICBsZWZ0OiAzMHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmMmI0YztcbiAgY29sb3I6ICNlZDZhNWU7IH1cblxuLnByb3BlcnR5LXR5cGUtaXRlbV9faW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG4gIC5wcm9wZXJ0eS10eXBlLWl0ZW1fX2ltYWdlIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbi5wcm9wZXJ0eS10eXBlLWl0ZW1fX3RvdGFsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuXG4ucHJvcGVydHktdHlwZS1pdGVtX190aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7IH1cblxuLnByb3BlcnR5LXR5cGUtaXRlbV9fdGVhc2VyIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4vKipcclxuICogQ29sb3JzLlxyXG4gKi9cbi5wcm9wZXJ0eS10eXBlLWxpc3QuYmFja2dyb3VuZC0tZGVmYXVsdCAucHJvcGVydHktdHlwZS1pdGVtX190b3RhbCB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZWQ2YTVlO1xuICBjb2xvcjogI2VkNmE1ZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBQcm9wZXJ0eSB0eXBlIGxpc3RcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5wcm9wZXJ0eS10eXBlLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnByb3BlcnR5LXR5cGUtbGlzdCAud3JhcHBlciB7XG4gICAgcGFkZGluZy10b3A6IDE2MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMzBweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAucHJvcGVydHktdHlwZS1saXN0IC53cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDE0MHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgIC5wcm9wZXJ0eS10eXBlLWxpc3QgLndyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogNzBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7IH0gfVxuXG4ucHJvcGVydHktdHlwZS1saXN0X190aXRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTJweDtcbiAgbGVmdDogLTE1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAucHJvcGVydHktdHlwZS1saXN0X190aXRsZSB7XG4gICAgICB0b3A6IC02MXB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9wZXJ0eS10eXBlLWxpc3RfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ0ZW07XG4gICAgICB0b3A6IC00MnB4O1xuICAgICAgbGVmdDogLThweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFNsaWRlc2hvd1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNsaWRlc2hvdyB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5zbGlkZXNob3cgLndyYXBwZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgcGFkZGluZzogMDsgfSB9XG5cbi5zbGlkZXNob3dfX2NvbHVtbi10ZXh0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMzAlO1xuICBwYWRkaW5nOiA5MHB4IDM1cHggMCAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuc2xpZGVzaG93X19jb2x1bW4tdGV4dCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gODBweCk7XG4gICAgICBtYXJnaW46IDcwcHggNDBweCA4MHB4O1xuICAgICAgcGFkZGluZzogMzVweCAwIDA7IH0gfVxuICAuc2xpZGVzaG93X19jb2x1bW4tdGV4dDo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDMzcHg7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgYmFja2dyb3VuZDogIzFmMmI0YztcbiAgICBjb250ZW50OiAnJzsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgIC5zbGlkZXNob3dfX2NvbHVtbi10ZXh0OjpiZWZvcmUge1xuICAgICAgICBoZWlnaHQ6IDJweDsgfSB9XG5cbi5zbGlkZXNob3dfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuXG4uc2xpZGVzaG93X19jb2x1bW4taW1hZ2VzIHtcbiAgd2lkdGg6IDcwJTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnNsaWRlc2hvd19fY29sdW1uLWltYWdlcyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5zbGlkZXNob3dfX2ltYWdlcyB7XG4gIHBvc2l0aW9uOiBpbml0aWFsO1xuICB3aWR0aDogNjYuNnZ3OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuc2xpZGVzaG93X19pbWFnZXMge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAuc2xpZGVzaG93X19pbWFnZXMgLm93bC1uYXYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIxMHB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFmMmI0YztcbiAgICBjb2xvcjogI2VkNmE1ZTtcbiAgICBmaWxsOiAjZWQ2YTVlOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnNsaWRlc2hvd19faW1hZ2VzIC5vd2wtbmF2IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLnNsaWRlc2hvd19faW1hZ2VzIC5vd2wtbmF2IC5vd2wtcHJldiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnNsaWRlc2hvd19faW1hZ2VzIC5vd2wtbmF2IC5vd2wtbmV4dCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLnNsaWRlc2hvd19faW1hZ2VzIC5vd2wtbmF2IHN2ZyB7XG4gICAgICB3aWR0aDogMzRweDtcbiAgICAgIGhlaWdodDogNTBweDsgfVxuICAuc2xpZGVzaG93X19pbWFnZXMgLm93bC1kb3RzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMjhweDtcbiAgICB6LWluZGV4OiAyOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnNsaWRlc2hvd19faW1hZ2VzIC5vd2wtZG90cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHJpZ2h0OiA0MHB4O1xuICAgICAgICBib3R0b206IC0zNXB4O1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICAgIC5zbGlkZXNob3dfX2ltYWdlcyAub3dsLWRvdHMgLm93bC1kb3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTRweDtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgICAuc2xpZGVzaG93X19pbWFnZXMgLm93bC1kb3RzIC5vd2wtZG90IHtcbiAgICAgICAgICBtYXJnaW46IDAgMCAwIDE0cHg7IH0gfVxuICAuc2xpZGVzaG93X19pbWFnZXMucGFnaW5hdGlvbi1yZWQgLm93bC1kb3Qge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlZDZhNWU7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuc2xpZGVzaG93X19pbWFnZXMucGFnaW5hdGlvbi1yZWQgLm93bC1kb3Qge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZWQ2YTVlOyB9IH1cbiAgICAuc2xpZGVzaG93X19pbWFnZXMucGFnaW5hdGlvbi1yZWQgLm93bC1kb3QuYWN0aXZlLCAuc2xpZGVzaG93X19pbWFnZXMucGFnaW5hdGlvbi1yZWQgLm93bC1kb3Q6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VkNmE1ZTsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgICAuc2xpZGVzaG93X19pbWFnZXMucGFnaW5hdGlvbi1yZWQgLm93bC1kb3QuYWN0aXZlLCAuc2xpZGVzaG93X19pbWFnZXMucGFnaW5hdGlvbi1yZWQgLm93bC1kb3Q6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZDZhNWU7IH0gfVxuICAuc2xpZGVzaG93X19pbWFnZXMucGFnaW5hdGlvbi1ibHVlIC5vd2wtZG90IHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjMWYyYjRjOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnNsaWRlc2hvd19faW1hZ2VzLnBhZ2luYXRpb24tYmx1ZSAub3dsLWRvdCB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMxZjJiNGM7IH0gfVxuICAgIC5zbGlkZXNob3dfX2ltYWdlcy5wYWdpbmF0aW9uLWJsdWUgLm93bC1kb3QuYWN0aXZlLCAuc2xpZGVzaG93X19pbWFnZXMucGFnaW5hdGlvbi1ibHVlIC5vd2wtZG90OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxZjJiNGM7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgICAgLnNsaWRlc2hvd19faW1hZ2VzLnBhZ2luYXRpb24tYmx1ZSAub3dsLWRvdC5hY3RpdmUsIC5zbGlkZXNob3dfX2ltYWdlcy5wYWdpbmF0aW9uLWJsdWUgLm93bC1kb3Q6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxZjJiNGM7IH0gfVxuXG4uc2xpZGVzaG93X19zbGlkZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDY2LjZ2dztcbiAgbWluLWhlaWdodDogNjAwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5zbGlkZXNob3dfX3NsaWRlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogYXV0bzsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuc2xpZGVzaG93X19zbGlkZSB7XG4gICAgICBtaW4taGVpZ2h0OiBhdXRvOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVGV4dCBpbWFnZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnRleHQtaW1hZ2UgLndyYXBwZXIge1xuICBwYWRkaW5nLXRvcDogMTIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNzVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC50ZXh0LWltYWdlIC53cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMTBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAudGV4dC1pbWFnZSAud3JhcHBlciB7XG4gICAgICBwYWRkaW5nLXRvcDogNjVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4OyB9IH1cblxuLnRleHQtaW1hZ2UuYmFja2dyb3VuZC0tZGVmYXVsdCB7XG4gIGNvbG9yOiAjZGY0MTI2OyB9XG4gIC50ZXh0LWltYWdlLmJhY2tncm91bmQtLWRlZmF1bHQgLmJ1dHRvbi0tYm9yZGVyIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjNTk1YTRlO1xuICAgIGNvbG9yOiAjNTk1YTRlOyB9XG4gICAgLnRleHQtaW1hZ2UuYmFja2dyb3VuZC0tZGVmYXVsdCAuYnV0dG9uLS1ib3JkZXIgc3ZnIHtcbiAgICAgIGNvbG9yOiAjNTk1YTRlO1xuICAgICAgZmlsbDogIzU5NWE0ZTsgfVxuICAgIC50ZXh0LWltYWdlLmJhY2tncm91bmQtLWRlZmF1bHQgLmJ1dHRvbi0tYm9yZGVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNTk1YTRlOyB9XG4gICAgLnRleHQtaW1hZ2UuYmFja2dyb3VuZC0tZGVmYXVsdCAuYnV0dG9uLS1ib3JkZXI6aG92ZXIge1xuICAgICAgY29sb3I6ICNjYmQ0ZDc7IH1cbiAgLnRleHQtaW1hZ2UuYmFja2dyb3VuZC0tZGVmYXVsdCAuYnV0dG9uLS1hcnJvdyB7XG4gICAgY29sb3I6ICM1OTVhNGU7IH1cbiAgICAudGV4dC1pbWFnZS5iYWNrZ3JvdW5kLS1kZWZhdWx0IC5idXR0b24tLWFycm93IHN2ZyB7XG4gICAgICBjb2xvcjogIzU5NWE0ZTtcbiAgICAgIGZpbGw6ICM1OTVhNGU7IH1cblxuLnRleHQtaW1hZ2VfX2NvbHVtbi10ZXh0IHtcbiAgd2lkdGg6IDU0JTtcbiAgcGFkZGluZy1yaWdodDogMTAwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC50ZXh0LWltYWdlX19jb2x1bW4tdGV4dCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1MHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50ZXh0LWltYWdlX19jb2x1bW4tdGV4dCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLnRleHQtaW1hZ2VfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4udGV4dC1pbWFnZV9fZWRpdG9yIHtcbiAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuXG4udGV4dC1pbWFnZV9fY29sdW1uLWltYWdlIHtcbiAgd2lkdGg6IDQ2JTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRleHQtaW1hZ2VfX2NvbHVtbi1pbWFnZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC50ZXh0LWltYWdlX19jb2x1bW4taW1hZ2UgI3BsYXkge1xuICAgIHRyYW5zaXRpb246IGFsbCA0MDBtcyBlYXNlOyB9XG4gICAgLnRleHQtaW1hZ2VfX2NvbHVtbi1pbWFnZSAjcGxheSBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSA1MHB4KTsgfVxuICAgICAgLnRleHQtaW1hZ2VfX2NvbHVtbi1pbWFnZSAjcGxheSBzcGFuIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAzOXB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgICAgIGNvbG9yOiAjZGY0MTI2OyB9XG4gICAgLnRleHQtaW1hZ2VfX2NvbHVtbi1pbWFnZSAjcGxheTpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVGV4dCBzbGlkZXNob3dcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi50ZXh0LXNsaWRlc2hvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudGV4dC1zbGlkZXNob3cgLndyYXBwZXIge1xuICAgIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTgwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgLnRleHQtc2xpZGVzaG93IC53cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDUxcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4NXB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAudGV4dC1zbGlkZXNob3cgLndyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTVweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDg1cHg7IH0gfVxuICAudGV4dC1zbGlkZXNob3cuYmFja2dyb3VuZC0tZGVmYXVsdCAub3dsLW5hdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFmMmI0YzsgfVxuICAgIC50ZXh0LXNsaWRlc2hvdy5iYWNrZ3JvdW5kLS1kZWZhdWx0IC5vd2wtbmF2IHN2ZyB7XG4gICAgICBjb2xvcjogI2VkNmE1ZTtcbiAgICAgIGZpbGw6ICNlZDZhNWU7IH1cbiAgLnRleHQtc2xpZGVzaG93LmJhY2tncm91bmQtLWRlZmF1bHQgLm93bC1kb3Qge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlZDZhNWU7IH1cbiAgICAudGV4dC1zbGlkZXNob3cuYmFja2dyb3VuZC0tZGVmYXVsdCAub3dsLWRvdC5hY3RpdmUsIC50ZXh0LXNsaWRlc2hvdy5iYWNrZ3JvdW5kLS1kZWZhdWx0IC5vd2wtZG90OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZDZhNWU7IH1cbiAgLnRleHQtc2xpZGVzaG93LmJhY2tncm91bmQtLWJsdWUgLm93bC1uYXYsIC50ZXh0LXNsaWRlc2hvdy5iYWNrZ3JvdW5kLS1ncmFkaWVudCAub3dsLW5hdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFmMmI0YzsgfVxuICAgIC50ZXh0LXNsaWRlc2hvdy5iYWNrZ3JvdW5kLS1ibHVlIC5vd2wtbmF2IHN2ZywgLnRleHQtc2xpZGVzaG93LmJhY2tncm91bmQtLWdyYWRpZW50IC5vd2wtbmF2IHN2ZyB7XG4gICAgICBjb2xvcjogI2VkNmE1ZTtcbiAgICAgIGZpbGw6ICNlZDZhNWU7IH1cbiAgLnRleHQtc2xpZGVzaG93LmJhY2tncm91bmQtLWJsdWUgLm93bC1kb3QsIC50ZXh0LXNsaWRlc2hvdy5iYWNrZ3JvdW5kLS1ncmFkaWVudCAub3dsLWRvdCB7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2ZmZTU5NjsgfVxuICAgIC50ZXh0LXNsaWRlc2hvdy5iYWNrZ3JvdW5kLS1ibHVlIC5vd2wtZG90LmFjdGl2ZSwgLnRleHQtc2xpZGVzaG93LmJhY2tncm91bmQtLWJsdWUgLm93bC1kb3Q6aG92ZXIsIC50ZXh0LXNsaWRlc2hvdy5iYWNrZ3JvdW5kLS1ncmFkaWVudCAub3dsLWRvdC5hY3RpdmUsIC50ZXh0LXNsaWRlc2hvdy5iYWNrZ3JvdW5kLS1ncmFkaWVudCAub3dsLWRvdDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTk2OyB9XG5cbi50ZXh0LXNsaWRlc2hvd19fd3JhcCB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnRleHQtc2xpZGVzaG93X190aXRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTJweDtcbiAgbGVmdDogLTE1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAudGV4dC1zbGlkZXNob3dfX3RpdGxlIHtcbiAgICAgIHRvcDogLTYxcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRleHQtc2xpZGVzaG93X190aXRsZSB7XG4gICAgICB0b3A6IC0zMnB4O1xuICAgICAgbGVmdDogLThweDsgfSB9XG5cbi50ZXh0LXNsaWRlc2hvd19fdGl0bGUgKyBkaXYge1xuICBwYWRkaW5nLXRvcDogNDBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRleHQtc2xpZGVzaG93X190aXRsZSArIGRpdiB7XG4gICAgICBwYWRkaW5nLXRvcDogMjBweDsgfSB9XG5cbi50ZXh0LXNsaWRlc2hvd19fYmxvY2stdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG5cbi8qKlxyXG4gKiBTbGlkZXNob3cuXHJcbiAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAudGV4dC1pbWFnZV9fc2xpZGVzaG93IC5vd2wtc3RhZ2Utb3V0ZXIge1xuICAgIHdpZHRoOiAxNzkwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC50ZXh0LWltYWdlX19zbGlkZXNob3cgLm93bC1zdGFnZS1vdXRlciB7XG4gICAgd2lkdGg6IDEyMDVweDsgfSB9XG5cbi50ZXh0LWltYWdlX19zbGlkZXNob3cgLm93bC1uYXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MjVweDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgbWFyZ2luOiBhdXRvIDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50ZXh0LWltYWdlX19zbGlkZXNob3cgLm93bC1uYXYge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC50ZXh0LWltYWdlX19zbGlkZXNob3cgLm93bC1uYXYgLm93bC1wcmV2IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC50ZXh0LWltYWdlX19zbGlkZXNob3cgLm93bC1uYXYgLm93bC1uZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnRleHQtaW1hZ2VfX3NsaWRlc2hvdyAub3dsLW5hdiBzdmcge1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogNTBweDsgfVxuXG4udGV4dC1pbWFnZV9fc2xpZGVzaG93IC5vd2wtZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tbGVmdDogLTI4cHg7XG4gIHotaW5kZXg6IDI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50ZXh0LWltYWdlX19zbGlkZXNob3cgLm93bC1kb3RzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogLTM1cHg7XG4gICAgICBtYXJnaW46IDA7IH0gfVxuICAudGV4dC1pbWFnZV9fc2xpZGVzaG93IC5vd2wtZG90cyAub3dsLWRvdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgIC50ZXh0LWltYWdlX19zbGlkZXNob3cgLm93bC1kb3RzIC5vd2wtZG90IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAxNHB4OyB9IH1cblxuLyoqXHJcbiAqIFNsaWRlcy5cclxuICovXG4udGV4dC1pbWFnZV9fc2xpZGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1NzVweDtcbiAgaGVpZ2h0OiA1NjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLnRleHQtaW1hZ2VfX3NsaWRlIHtcbiAgICAgIHdpZHRoOiAzNzVweDtcbiAgICAgIGhlaWdodDogMzYwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRleHQtaW1hZ2VfX3NsaWRlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA0NTBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAudGV4dC1pbWFnZV9fc2xpZGUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDMyMHB4OyB9IH1cblxuLyoqXHJcbiAqIFNsaWRlc2hvdyBwb3NpdGlvbi5cclxuICovXG4udGV4dC1zbGlkZXNob3dfX2Jsb2NrIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAxMjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRleHQtc2xpZGVzaG93X19ibG9jayB7XG4gICAgICBhbGlnbi1pdGVtczogbGVmdDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7IH0gfVxuICAudGV4dC1zbGlkZXNob3dfX2Jsb2NrOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAudGV4dC1zbGlkZXNob3dfX2Jsb2NrLnRleHQtc2xpZGVzaG93X19ibG9jay0tcmlnaHQgLnRleHQtc2xpZGVzaG93X19jb2x1bW4tdGV4dCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDU3NXB4KTtcbiAgICBtYXgtd2lkdGg6IDU1MHB4O1xuICAgIHBhZGRpbmc6IDAgNTBweCAwIDEwMHB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgLnRleHQtc2xpZGVzaG93X19ibG9jay50ZXh0LXNsaWRlc2hvd19fYmxvY2stLXJpZ2h0IC50ZXh0LXNsaWRlc2hvd19fY29sdW1uLXRleHQge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzc1cHgpO1xuICAgICAgICBwYWRkaW5nOiAwIDUwcHggMCAwOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAudGV4dC1zbGlkZXNob3dfX2Jsb2NrLnRleHQtc2xpZGVzaG93X19ibG9jay0tcmlnaHQgLnRleHQtc2xpZGVzaG93X19jb2x1bW4tdGV4dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgMCA0MHB4OyB9IH1cbiAgLnRleHQtc2xpZGVzaG93X19ibG9jay50ZXh0LXNsaWRlc2hvd19fYmxvY2stLXJpZ2h0IC50ZXh0LXNsaWRlc2hvd19fY29sdW1uLWltYWdlcyB7XG4gICAgd2lkdGg6IDU3NXB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgLnRleHQtc2xpZGVzaG93X19ibG9jay50ZXh0LXNsaWRlc2hvd19fYmxvY2stLXJpZ2h0IC50ZXh0LXNsaWRlc2hvd19fY29sdW1uLWltYWdlcyB7XG4gICAgICAgIHdpZHRoOiAzNzVweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnRleHQtc2xpZGVzaG93X19ibG9jay50ZXh0LXNsaWRlc2hvd19fYmxvY2stLXJpZ2h0IC50ZXh0LXNsaWRlc2hvd19fY29sdW1uLWltYWdlcyB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC50ZXh0LXNsaWRlc2hvd19fYmxvY2sudGV4dC1zbGlkZXNob3dfX2Jsb2NrLS1sZWZ0IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfSB9XG4gIC50ZXh0LXNsaWRlc2hvd19fYmxvY2sudGV4dC1zbGlkZXNob3dfX2Jsb2NrLS1sZWZ0IC50ZXh0LXNsaWRlc2hvd19fY29sdW1uLXRleHQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA1NzVweCk7XG4gICAgbWF4LXdpZHRoOiA1NTBweDtcbiAgICBwYWRkaW5nOiAwIDEwMHB4IDAgNTBweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgIC50ZXh0LXNsaWRlc2hvd19fYmxvY2sudGV4dC1zbGlkZXNob3dfX2Jsb2NrLS1sZWZ0IC50ZXh0LXNsaWRlc2hvd19fY29sdW1uLXRleHQge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzc1cHgpO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCA1MHB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAudGV4dC1zbGlkZXNob3dfX2Jsb2NrLnRleHQtc2xpZGVzaG93X19ibG9jay0tbGVmdCAudGV4dC1zbGlkZXNob3dfX2NvbHVtbi10ZXh0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAwIDQwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLnRleHQtc2xpZGVzaG93X19ibG9jay50ZXh0LXNsaWRlc2hvd19fYmxvY2stLWxlZnQgLnRleHQtc2xpZGVzaG93X19jb2x1bW4taW1hZ2VzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICB3aWR0aDogNTc1cHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLnRleHQtc2xpZGVzaG93X19ibG9jay50ZXh0LXNsaWRlc2hvd19fYmxvY2stLWxlZnQgLnRleHQtc2xpZGVzaG93X19jb2x1bW4taW1hZ2VzIHtcbiAgICAgIHdpZHRoOiAzNzVweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAudGV4dC1zbGlkZXNob3dfX2Jsb2NrLnRleHQtc2xpZGVzaG93X19ibG9jay0tbGVmdCAudGV4dC1zbGlkZXNob3dfX2NvbHVtbi1pbWFnZXMge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLnRleHQtc2xpZGVzaG93X19ibG9jay50ZXh0LXNsaWRlc2hvd19fYmxvY2stLWxlZnQgLnRleHQtc2xpZGVzaG93X19jb2x1bW4taW1hZ2VzIC5vd2wtY2Fyb3VzZWwge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLnRleHQtc2xpZGVzaG93X19ibG9jay50ZXh0LXNsaWRlc2hvd19fYmxvY2stLWxlZnQgLm93bC1uYXYge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiBhdXRvOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC50ZXh0LXNsaWRlc2hvd19fYmxvY2sudGV4dC1zbGlkZXNob3dfX2Jsb2NrLS1sZWZ0IC5vd2wtZG90cyB7XG4gICAgICByaWdodDogLTI4cHg7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbG9yXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogQ29sb3IgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKi9cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgIGJsYWNrLTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1ibGFjay0xMDAge1xuICBjb2xvcjogYmxhY2s7IH1cblxuLyoqXHJcbiAgICAgICAqIGBiYWNrZ3JvdW5kLWNvbG9yYCBibGFjay0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci1ibGFjay0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCB3aGl0ZS0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uY29sb3Itd2hpdGUtMTAwIHtcbiAgY29sb3I6IHdoaXRlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgYmFja2dyb3VuZC1jb2xvcmAgd2hpdGUtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3Itd2hpdGUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cblxuLyoqXHJcbiAgICAgICAqIGBjb2xvcmAgI2NiZDRkNy0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uY29sb3ItYmx1ZS1saWdodC0xMDAge1xuICBjb2xvcjogI2NiZDRkNzsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICNjYmQ0ZDctMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3ItYmx1ZS1saWdodC0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JkNGQ3OyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICNhZmI3YmEtNTAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uY29sb3ItYmx1ZS1saWdodC01MCB7XG4gIGNvbG9yOiAjYWZiN2JhOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgYmFja2dyb3VuZC1jb2xvcmAgI2FmYjdiYS01MCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLWJsdWUtbGlnaHQtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWZiN2JhOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICMyMTQzOTEtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLWJsdWUtZGFyay0xMDAge1xuICBjb2xvcjogIzIxNDM5MTsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICMyMTQzOTEtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3ItYmx1ZS1kYXJrLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTQzOTE7IH1cblxuLyoqXHJcbiAgICAgICAqIGBjb2xvcmAgI2Q5OWI2OC0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uY29sb3Itb3JhbmdlLTEwMCB7XG4gIGNvbG9yOiAjZDk5YjY4OyB9XG5cbi8qKlxyXG4gICAgICAgKiBgYmFja2dyb3VuZC1jb2xvcmAgI2Q5OWI2OC0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci1vcmFuZ2UtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5OWI2ODsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCAjZGY0MTI2LTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1yZWQtMTAwIHtcbiAgY29sb3I6ICNkZjQxMjY7IH1cblxuLyoqXHJcbiAgICAgICAqIGBiYWNrZ3JvdW5kLWNvbG9yYCAjZGY0MTI2LTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLXJlZC0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGY0MTI2OyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICM1OTVhNGUtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLWdyZWVuLTEwMCB7XG4gIGNvbG9yOiAjNTk1YTRlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgYmFja2dyb3VuZC1jb2xvcmAgIzU5NWE0ZS0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci1ncmVlbi0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTk1YTRlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICM5NTliOTctNTAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uY29sb3ItZ3JlZW4tNTAge1xuICBjb2xvcjogIzk1OWI5NzsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICM5NTliOTctNTAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci1ncmVlbi01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NTliOTc7IH1cblxuLyoqXHJcbiAgICAgICAqIGBjb2xvcmAgIzU2NTc0Yy0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uY29sb3ItZ3JlZW4tYmFja2dyb3VuZC0xMDAge1xuICBjb2xvcjogIzU2NTc0YzsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICM1NjU3NGMtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3ItZ3JlZW4tYmFja2dyb3VuZC0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTY1NzRjOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICMyNTE3MTMtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLWJyb3duLTEwMCB7XG4gIGNvbG9yOiAjMjUxNzEzOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgYmFja2dyb3VuZC1jb2xvcmAgIzI1MTcxMy0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci1icm93bi0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjUxNzEzOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICMyYjFjMTctMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLWJyb3duLWJhY2tncm91bmQtMTAwIHtcbiAgY29sb3I6ICMyYjFjMTc7IH1cblxuLyoqXHJcbiAgICAgICAqIGBiYWNrZ3JvdW5kLWNvbG9yYCAjMmIxYzE3LTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLWJyb3duLWJhY2tncm91bmQtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiMWMxNzsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCAjZmZlNTk2LTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1kdXluLXllbGxvdy0xMDAge1xuICBjb2xvcjogI2ZmZTU5NjsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICNmZmU1OTYtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3ItZHV5bi15ZWxsb3ctMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTU5NjsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCAjZjVhMTYyLTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1kdXluLW9yYW5nZS0xMDAge1xuICBjb2xvcjogI2Y1YTE2MjsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICNmNWExNjItMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3ItZHV5bi1vcmFuZ2UtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1YTE2MjsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCAjZWQ2YTVlLTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1kdXluLXJlZC0xMDAge1xuICBjb2xvcjogI2VkNmE1ZTsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICNlZDZhNWUtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3ItZHV5bi1yZWQtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkNmE1ZTsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCAjNmI1MTdjLTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1kdXluLXB1cnBsZS0xMDAge1xuICBjb2xvcjogIzZiNTE3YzsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICM2YjUxN2MtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3ItZHV5bi1wdXJwbGUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZiNTE3YzsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCAjMjQzNjY1LTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1kdXluLWJsdWUtMTAwIHtcbiAgY29sb3I6ICMyNDM2NjU7IH1cblxuLyoqXHJcbiAgICAgICAqIGBiYWNrZ3JvdW5kLWNvbG9yYCAjMjQzNjY1LTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLWR1eW4tYmx1ZS0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQzNjY1OyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICMxZjJiNGMtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLWR1eW4tYmx1ZS1kYXJrLTEwMCB7XG4gIGNvbG9yOiAjMWYyYjRjOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgYmFja2dyb3VuZC1jb2xvcmAgIzFmMmI0Yy0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci1kdXluLWJsdWUtZGFyay0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWYyYjRjOyB9XG5cbi8qKlxyXG4gKiBHZW5lcmljIGhlbHBlciBjbGFzc2VzLlxyXG4gKi9cbi8qKlxyXG4gKiBWaXN1YWxseSBoaWRlIGFueSBlbGVtZW50IGZyb20gdGhlIHVzZXIuXHJcbiAqL1xuLnZpc3VhbGx5LWhpZGRlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIGNsaXAtcGF0aDogaW5zZXQoMXB4KTsgfVxuXG4vKipcclxuICogTWFrZSBsYXp5bG9hZCBwbGFjZWhvbGRlciAxMDAlIHdpZGUuXHJcbiAqL1xuLmxhenlsb2FkIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLyoqXHJcbiAqIEhlbHBlciBjbGFzcyBmb3Igb2JqZWN0IGZpdCBwb2x5ZmlsbC4gQWRkIHRoaXMgY2xhc3MgdG8gYW55IGVsZW1lbnRcclxuICogdGhhdCB1dGlsaXplcyB0aGUgYG9iamVjdC1maXRgIHByb3BlcnR5LlxyXG4gKi9cbi5vYmplY3QtZml0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiAnb2JqZWN0LWZpdDogY292ZXI7JztcbiAgb2JqZWN0LWZpdDogY292ZXI7IH1cblxuLyoqXHJcbiAqIEFsaWduIGNlbnRlci5cclxuICovXG4uYWxpZ24tY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qKlxyXG4gKiBBbGlnbiBsZWZ0LlxyXG4gKi9cbi5hbGlnbi1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4vKipcclxuICogQWxpZ24gcmlnaHQuXHJcbiAqL1xuLmFsaWduLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnc2MCB7XG4gIHdpZHRoOiA2MCU7IH1cblxuLnc0MCB7XG4gIHdpZHRoOiA0MCU7IH1cblxuLnc1MCB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgT2JqZWN0IEZpdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIE9iamVjdCBmaXQuXHJcbiAqXHJcbiAqIDEuIEZvbnQgZmFtaWx5IHBvbHlmaWxsIHdpdGggKGh0dHBzOi8vZ2l0aHViLmNvbS9iZnJlZC1pdC9vYmplY3QtZml0LWltYWdlcykuXHJcbiAqL1xuLyoqXHJcbiAgICogYG9iamVjdC1maXRgIGZpbGwgdXRpbGl0eSBjbGFzcy5cclxuICAgKi9cbi5maWxsIHtcbiAgZm9udC1mYW1pbHk6IFwib2JqZWN0LWZpdDogZmlsbDtcIjtcbiAgLyogMSAqL1xuICBvYmplY3QtZml0OiBmaWxsOyB9XG5cbi8qKlxyXG4gICAqIGBvYmplY3QtZml0YCBjb250YWluIHV0aWxpdHkgY2xhc3MuXHJcbiAgICovXG4uY29udGFpbiB7XG4gIGZvbnQtZmFtaWx5OiBcIm9iamVjdC1maXQ6IGNvbnRhaW47XCI7XG4gIC8qIDEgKi9cbiAgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuXG4vKipcclxuICAgKiBgb2JqZWN0LWZpdGAgY292ZXIgdXRpbGl0eSBjbGFzcy5cclxuICAgKi9cbi5jb3ZlciB7XG4gIGZvbnQtZmFtaWx5OiBcIm9iamVjdC1maXQ6IGNvdmVyO1wiO1xuICAvKiAxICovXG4gIG9iamVjdC1maXQ6IGNvdmVyOyB9XG5cbi8qKlxyXG4gICAqIGBvYmplY3QtZml0YCBub25lIHV0aWxpdHkgY2xhc3MuXHJcbiAgICovXG4ubm9uZSB7XG4gIGZvbnQtZmFtaWx5OiBcIm9iamVjdC1maXQ6IG5vbmU7XCI7XG4gIC8qIDEgKi9cbiAgb2JqZWN0LWZpdDogbm9uZTsgfVxuXG4vKipcclxuICAgKiBgb2JqZWN0LWZpdGAgc2NhbGUtZG93biB1dGlsaXR5IGNsYXNzLlxyXG4gICAqL1xuLnNjYWxlLWRvd24ge1xuICBmb250LWZhbWlseTogXCJvYmplY3QtZml0OiBzY2FsZS1kb3duO1wiO1xuICAvKiAxICovXG4gIG9iamVjdC1maXQ6IHNjYWxlLWRvd247IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUG9zaXRpb25cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBQb3NpdGlvbiB1dGlsaXR5IGNsYXNzLlxyXG4gKi9cbi5zdGF0aWMge1xuICBwb3NpdGlvbjogc3RhdGljOyB9XG5cbi5yZWxhdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5zdGlja3kge1xuICBwb3NpdGlvbjogc3RpY2t5OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFRleHRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBGb250IGZhbWlseSB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xuLnRleHQteHMtZGVmYXVsdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtUmVndWxhclwiOyB9XG5cbi50ZXh0LXhzLW1lZGl1bSB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtTWVkaXVtXCI7IH1cblxuLnRleHQteHMtaGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiBcIkJ1cmZvcmRSdXN0aWNTaGFkb3dUd29BXCI7IH1cblxuLnRleHQtc20tZGVmYXVsdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtUmVndWxhclwiOyB9XG5cbi50ZXh0LXNtLW1lZGl1bSB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtTWVkaXVtXCI7IH1cblxuLnRleHQtc20taGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiBcIkJ1cmZvcmRSdXN0aWNTaGFkb3dUd29BXCI7IH1cblxuLnRleHQtbWQtZGVmYXVsdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtUmVndWxhclwiOyB9XG5cbi50ZXh0LW1kLW1lZGl1bSB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtTWVkaXVtXCI7IH1cblxuLnRleHQtbWQtaGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiBcIkJ1cmZvcmRSdXN0aWNTaGFkb3dUd29BXCI7IH1cblxuLnRleHQtbGctZGVmYXVsdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtUmVndWxhclwiOyB9XG5cbi50ZXh0LWxnLW1lZGl1bSB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtTWVkaXVtXCI7IH1cblxuLnRleHQtbGctaGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiBcIkJ1cmZvcmRSdXN0aWNTaGFkb3dUd29BXCI7IH1cblxuLnRleHQteGwtZGVmYXVsdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtUmVndWxhclwiOyB9XG5cbi50ZXh0LXhsLW1lZGl1bSB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZWRpZ2UtTWVkaXVtXCI7IH1cblxuLnRleHQteGwtaGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiBcIkJ1cmZvcmRSdXN0aWNTaGFkb3dUd29BXCI7IH1cblxuLyoqXHJcbiAqIFRleHQgc2l6ZSB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xuLnRleHQteHMtaDEge1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGZvbnQtc2l6ZTogNC44cmVtO1xuICBsaW5lLWhlaWdodDogMS4yMDgzM2VtOyB9XG5cbi50ZXh0LXhzLWgyIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBmb250LXNpemU6IDQuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1ZW07IH1cblxuLnRleHQteHMtaDMge1xuICBmb250LXNpemU6IDE1MHB4O1xuICBmb250LXNpemU6IDE1cmVtO1xuICBsaW5lLWhlaWdodDogMWVtOyB9XG5cbi50ZXh0LXhzLXAge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07IH1cblxuLnRleHQtc20taDEge1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGZvbnQtc2l6ZTogNC44cmVtO1xuICBsaW5lLWhlaWdodDogMS4yMDgzM2VtOyB9XG5cbi50ZXh0LXNtLWgyIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBmb250LXNpemU6IDQuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1ZW07IH1cblxuLnRleHQtc20taDMge1xuICBmb250LXNpemU6IDE1MHB4O1xuICBmb250LXNpemU6IDE1cmVtO1xuICBsaW5lLWhlaWdodDogMWVtOyB9XG5cbi50ZXh0LXNtLXAge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07IH1cblxuLnRleHQtbWQtaDEge1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGZvbnQtc2l6ZTogNC44cmVtO1xuICBsaW5lLWhlaWdodDogMS4yMDgzM2VtOyB9XG5cbi50ZXh0LW1kLWgyIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBmb250LXNpemU6IDQuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1ZW07IH1cblxuLnRleHQtbWQtaDMge1xuICBmb250LXNpemU6IDE1MHB4O1xuICBmb250LXNpemU6IDE1cmVtO1xuICBsaW5lLWhlaWdodDogMWVtOyB9XG5cbi50ZXh0LW1kLXAge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07IH1cblxuLnRleHQtbGctaDEge1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGZvbnQtc2l6ZTogNC44cmVtO1xuICBsaW5lLWhlaWdodDogMS4yMDgzM2VtOyB9XG5cbi50ZXh0LWxnLWgyIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBmb250LXNpemU6IDQuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1ZW07IH1cblxuLnRleHQtbGctaDMge1xuICBmb250LXNpemU6IDE1MHB4O1xuICBmb250LXNpemU6IDE1cmVtO1xuICBsaW5lLWhlaWdodDogMWVtOyB9XG5cbi50ZXh0LWxnLXAge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07IH1cblxuLnRleHQteGwtaDEge1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGZvbnQtc2l6ZTogNC44cmVtO1xuICBsaW5lLWhlaWdodDogMS4yMDgzM2VtOyB9XG5cbi50ZXh0LXhsLWgyIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBmb250LXNpemU6IDQuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1ZW07IH1cblxuLnRleHQteGwtaDMge1xuICBmb250LXNpemU6IDE1MHB4O1xuICBmb250LXNpemU6IDE1cmVtO1xuICBsaW5lLWhlaWdodDogMWVtOyB9XG5cbi50ZXh0LXhsLXAge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07IH1cblxuLyoqXHJcbiAqIFRleHQgYWxpZ25tZW50IHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXG4udGV4dC14cy1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC14cy1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LXhzLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dC1zbS1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC1zbS1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LXNtLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dC1tZC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC1tZC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LW1kLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dC1sZy1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC1sZy1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LWxnLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dC14bC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC14bC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LXhsLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKipcclxuICogRm9udCB3ZWlnaHQgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKlxyXG4gKiAxLiBNdWx0aXBseSBsb29wZWQgaW50ZWdlciBieSAxMDAgZm9yIGNvcnJlY3QgZm9udCB3ZWlnaHQgdmFsdWUuXHJcbiAqL1xuLnRleHQteHMtMTAwIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuXG4udGV4dC14cy0yMDAge1xuICBmb250LXdlaWdodDogMjAwOyB9XG5cbi50ZXh0LXhzLTMwMCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLnRleHQteHMtNDAwIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4udGV4dC14cy01MDAge1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi50ZXh0LXhzLTYwMCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLnRleHQteHMtNzAwIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4udGV4dC14cy04MDAge1xuICBmb250LXdlaWdodDogODAwOyB9XG5cbi50ZXh0LXhzLTkwMCB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLnRleHQtc20tMTAwIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuXG4udGV4dC1zbS0yMDAge1xuICBmb250LXdlaWdodDogMjAwOyB9XG5cbi50ZXh0LXNtLTMwMCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLnRleHQtc20tNDAwIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4udGV4dC1zbS01MDAge1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi50ZXh0LXNtLTYwMCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLnRleHQtc20tNzAwIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4udGV4dC1zbS04MDAge1xuICBmb250LXdlaWdodDogODAwOyB9XG5cbi50ZXh0LXNtLTkwMCB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLnRleHQtbWQtMTAwIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuXG4udGV4dC1tZC0yMDAge1xuICBmb250LXdlaWdodDogMjAwOyB9XG5cbi50ZXh0LW1kLTMwMCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLnRleHQtbWQtNDAwIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4udGV4dC1tZC01MDAge1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi50ZXh0LW1kLTYwMCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLnRleHQtbWQtNzAwIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4udGV4dC1tZC04MDAge1xuICBmb250LXdlaWdodDogODAwOyB9XG5cbi50ZXh0LW1kLTkwMCB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLnRleHQtbGctMTAwIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuXG4udGV4dC1sZy0yMDAge1xuICBmb250LXdlaWdodDogMjAwOyB9XG5cbi50ZXh0LWxnLTMwMCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLnRleHQtbGctNDAwIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4udGV4dC1sZy01MDAge1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi50ZXh0LWxnLTYwMCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLnRleHQtbGctNzAwIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4udGV4dC1sZy04MDAge1xuICBmb250LXdlaWdodDogODAwOyB9XG5cbi50ZXh0LWxnLTkwMCB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLnRleHQteGwtMTAwIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuXG4udGV4dC14bC0yMDAge1xuICBmb250LXdlaWdodDogMjAwOyB9XG5cbi50ZXh0LXhsLTMwMCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLnRleHQteGwtNDAwIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4udGV4dC14bC01MDAge1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi50ZXh0LXhsLTYwMCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLnRleHQteGwtNzAwIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4udGV4dC14bC04MDAge1xuICBmb250LXdlaWdodDogODAwOyB9XG5cbi50ZXh0LXhsLTkwMCB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLyoqXHJcbiAqIFRleHQgdHJhbnNmb3JtIHVpdGxpdHkgY2xhc3Nlcy5cclxuICovXG4udGV4dC14cy1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuLnRleHQteHMtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4udGV4dC14cy1sb3dlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG5cbi50ZXh0LXhzLW5vbmUge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4udGV4dC14cy1mdWxsLXdpZHRoIHtcbiAgdGV4dC10cmFuc2Zvcm06IGZ1bGwtd2lkdGg7IH1cblxuLnRleHQtc20tY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbi50ZXh0LXNtLXVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnRleHQtc20tbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuXG4udGV4dC1zbS1ub25lIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLnRleHQtc20tZnVsbC13aWR0aCB7XG4gIHRleHQtdHJhbnNmb3JtOiBmdWxsLXdpZHRoOyB9XG5cbi50ZXh0LW1kLWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4udGV4dC1tZC11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi50ZXh0LW1kLWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cblxuLnRleHQtbWQtbm9uZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi50ZXh0LW1kLWZ1bGwtd2lkdGgge1xuICB0ZXh0LXRyYW5zZm9ybTogZnVsbC13aWR0aDsgfVxuXG4udGV4dC1sZy1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuLnRleHQtbGctdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4udGV4dC1sZy1sb3dlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG5cbi50ZXh0LWxnLW5vbmUge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4udGV4dC1sZy1mdWxsLXdpZHRoIHtcbiAgdGV4dC10cmFuc2Zvcm06IGZ1bGwtd2lkdGg7IH1cblxuLnRleHQteGwtY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbi50ZXh0LXhsLXVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnRleHQteGwtbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuXG4udGV4dC14bC1ub25lIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLnRleHQteGwtZnVsbC13aWR0aCB7XG4gIHRleHQtdHJhbnNmb3JtOiBmdWxsLXdpZHRoOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFZlcnRpY2FsIFJoeXRobVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnZyLTAge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cblxuLnZyLTgge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cblxuLnZyLTE2IHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4udnItMjQge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG5cbi52ci0zMiB7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7IH1cblxuLnZyLTQwIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDsgfVxuXG4udnItNDgge1xuICBtYXJnaW4tYm90dG9tOiA0OHB4OyB9XG5cbi52ci01NiB7XG4gIG1hcmdpbi1ib3R0b206IDU2cHg7IH1cblxuLnZyLTY0IHtcbiAgbWFyZ2luLWJvdHRvbTogNjRweDsgfVxuXG4udnItNzIge1xuICBtYXJnaW4tYm90dG9tOiA3MnB4OyB9XG5cbi52ci04MCB7XG4gIG1hcmdpbi1ib3R0b206IDgwcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgWi1pbmRleFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFV0aWxpdHkgY2xhc3NlcyBmb3IgbWFuaXB1bGF0aW5nIHN0YWNraW5nIG9yZGVyIGluIEhUTUwuXHJcbiAqL1xuLnotaW5kZXgtMCB7XG4gIHotaW5kZXg6IDA7IH1cblxuLnotaW5kZXgtMSB7XG4gIHotaW5kZXg6IDEwOyB9XG5cbi56LWluZGV4LTIge1xuICB6LWluZGV4OiAyMDsgfVxuXG4uei1pbmRleC0zIHtcbiAgei1pbmRleDogMzA7IH1cblxuLnotaW5kZXgtNCB7XG4gIHotaW5kZXg6IDQwOyB9XG5cbi56LWluZGV4LTUge1xuICB6LWluZGV4OiA1MDsgfVxuXG4uei1pbmRleC02IHtcbiAgei1pbmRleDogNjA7IH1cblxuLnotaW5kZXgtNyB7XG4gIHotaW5kZXg6IDcwOyB9XG5cbi56LWluZGV4LTgge1xuICB6LWluZGV4OiA4MDsgfVxuXG4uei1pbmRleC05IHtcbiAgei1pbmRleDogOTA7IH1cblxuLnotaW5kZXgtMTAge1xuICB6LWluZGV4OiAxMDA7IH1cblxuLmlmcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDU2MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmlmcmFtZSBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4uaWZyYW1lIGlmcmFtZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4ucGxheS1idG4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDUwO1xuICB0b3A6IGNhbGMoNTAlIC0gNTBweCk7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7IH1cblxuLnBsYXktYnRuOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5wbGF5LWJ0bjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7IH1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFR5cG9ncmFwaHlcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEZvbnQgZmFtaWx5IG1hcC5cclxuJGZvbnQtZmFtaWx5OiAoXHJcbiAgJ2RlZmF1bHQnOiAnUHJlZGlnZS1SZWd1bGFyJyxcclxuICAnbWVkaXVtJzogJ1ByZWRpZ2UtTWVkaXVtJyxcclxuICAnaGVhZGluZyc6ICdCdXJmb3JkUnVzdGljU2hhZG93VHdvQSdcclxuKTtcclxuXHJcblxyXG4vLyBGb250IGZhY2UuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQnVyZm9yZFJ1c3RpY1NoYWRvd1R3b0EnO1xyXG4gIHNyYzogdXJsKCcvd3AtY29udGVudC90aGVtZXMvZHV5bi9hc3NldHMvZm9udHMvQnVyZm9yZFJ1c3RpY1NoYWRvd1R3b0Eub3RmJykgZm9ybWF0KCdPcGVuVHlwZScpO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ1ByZWRpZ2UtTWVkaXVtJztcclxuICBzcmM6IHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2R1eW4vYXNzZXRzL2ZvbnRzL1ByZWRpZ2UtTWVkaXVtLm90ZicpIGZvcm1hdCgnT3BlblR5cGUnKSxcclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2R1eW4vYXNzZXRzL2ZvbnRzL1ByZWRpZ2UtTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdQcmVkaWdlLVJlZ3VsYXInO1xyXG4gIHNyYzogdXJsKCcvd3AtY29udGVudC90aGVtZXMvZHV5bi9hc3NldHMvZm9udHMvUHJlZGlnZS1SZWd1bGFyLm90ZicpIGZvcm1hdCgnT3BlblR5cGUnKSxcclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2R1eW4vYXNzZXRzL2ZvbnRzL1ByZWRpZ2UtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbi8vIEZvbnQgc2l6ZSBtYXAuXHJcbiRmb250LXNpemU6IChcclxuICAnaDEnOiA0OHB4LFxyXG4gICdoMic6IDQ4cHgsXHJcbiAgJ2gzJzogMTUwcHgsXHJcbiAgJ3AnOiAxNnB4XHJcbik7XHJcblxyXG5cclxuLy8gTGluZSBoZWlnaHQgbWFwLlxyXG4kbGluZS1oZWlnaHQ6IChcclxuICAnaDEnOiA1OHB4LFxyXG4gICdoMic6IDU0cHgsXHJcbiAgJ2gzJzogMTUwcHgsXHJcbiAgJ3AnOiAyNHB4XHJcbik7XHJcblxyXG5cclxuXHJcbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuICogIE93bCBDYXJvdXNlbCAtIENvcmVcbiAqL1xuLm93bC1jYXJvdXNlbCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHdpZHRoOiAxMDAlO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHQvKiBwb3NpdGlvbiByZWxhdGl2ZSBhbmQgei1pbmRleCBmaXggd2Via2l0IHJlbmRlcmluZyBmb250cyBpc3N1ZSAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDE7XG5cblx0Lm93bC1zdGFnZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdC1tcy10b3VjaC1hY3Rpb246IHBhbi1ZO1xuXHRcdHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXHRcdC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyAvKiBmaXggZmlyZWZveCBhbmltYXRpb24gZ2xpdGNoICovXG5cdH1cblxuXHQub3dsLXN0YWdlOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIi5cIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRjbGVhcjogYm90aDtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0bGluZS1oZWlnaHQ6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cblx0Lm93bC1zdGFnZS1vdXRlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0LyogZml4IGZvciBmbGFzaGluZyBiYWNrZ3JvdW5kICovXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHR9XG5cblx0Lm93bC13cmFwcGVyLFxuXHQub3dsLWl0ZW17XG5cdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0LW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0LW1zLWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuXHRcdC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdFx0LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuXHR9XG5cblx0Lm93bC1pdGVtIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWluLWhlaWdodDogMXB4O1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuXHR9XG5cdC5vd2wtaXRlbSBpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0Lm93bC1uYXYuZGlzYWJsZWQsXG5cdC5vd2wtZG90cy5kaXNhYmxlZCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5vd2wtbmF2IC5vd2wtcHJldixcblx0Lm93bC1uYXYgLm93bC1uZXh0LFxuXHQub3dsLWRvdCB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHRcdHVzZXItc2VsZWN0OiBub25lO1xuXHR9XG5cblx0Lm93bC1uYXYgYnV0dG9uLm93bC1wcmV2LFxuXHQub3dsLW5hdiBidXR0b24ub3dsLW5leHQsXG5cdGJ1dHRvbi5vd2wtZG90IHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRwYWRkaW5nOjAhaW1wb3J0YW50O1xuXHRcdGZvbnQ6IGluaGVyaXQ7XG5cdH1cblxuXHQmLm93bC1sb2FkZWQge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Ji5vd2wtbG9hZGluZyB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdCYub3dsLWhpZGRlbiB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdCYub3dsLXJlZnJlc2ggLm93bC1pdGVtIHtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdH1cblxuXHQmLm93bC1kcmFnIC5vd2wtaXRlbSB7XG5cdFx0dG91Y2gtYWN0aW9uOiBwYW4teTtcblx0XHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHRcdHVzZXItc2VsZWN0OiBub25lO1xuXHR9XG5cblx0Ji5vd2wtZ3JhYiB7XG5cdFx0Y3Vyc29yOiBtb3ZlO1xuXHRcdGN1cnNvcjogZ3JhYjtcblx0fVxuXG5cdCYub3dsLXJ0bCB7XG5cdFx0ZGlyZWN0aW9uOiBydGw7XG5cdH1cblxuXHQmLm93bC1ydGwgLm93bC1pdGVtIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdH1cbn1cblxuLyogTm8gSnMgKi9cbi5uby1qcyAub3dsLWNhcm91c2VsIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKlxuICogIE93bCBDYXJvdXNlbCAtIEFuaW1hdGUgUGx1Z2luXG4gKi9cbi5vd2wtY2Fyb3VzZWx7XG5cdC5hbmltYXRlZCB7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcblx0fVxuXHQub3dsLWFuaW1hdGVkLWluIHtcblx0XHR6LWluZGV4OiAwO1xuXHR9XG5cdC5vd2wtYW5pbWF0ZWQtb3V0IHtcblx0XHR6LWluZGV4OiAxO1xuXHR9XG5cdC5mYWRlT3V0IHtcblx0XHRhbmltYXRpb24tbmFtZTogZmFkZU91dDtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbn1cbiIsIi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIEF1dG8gSGVpZ2h0IFBsdWdpblxuICovXG5cbi5vd2wtaGVpZ2h0IHtcblx0dHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xufVxuIiwiLypcbiAqIFx0T3dsIENhcm91c2VsIC0gTGF6eSBMb2FkIFBsdWdpblxuICovXG5cbi5vd2wtY2Fyb3VzZWwge1xuXHQub3dsLWl0ZW0ge1xuXHRcdC5vd2wtbGF6eSB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcblx0XHR9XG5cblx0XHQvKipcblx0XHRcdFRoaXMgaXMgaW50cm9kdWNlZCBkdWUgdG8gYSBidWcgaW4gSUUxMSB3aGVyZSBsYXp5IGxvYWRpbmcgY29tYmluZWQgd2l0aCBhdXRvaGVpZ2h0IHBsdWdpbiBjYXVzZXMgYSB3cm9uZ1xuXHRcdFx0Y2FsY3VsYXRpb24gb2YgdGhlIGhlaWdodCBvZiB0aGUgb3dsLWl0ZW0gdGhhdCBicmVha3MgcGFnZSBsYXlvdXRzXG5cdFx0ICovXG5cdFx0Lm93bC1sYXp5W3NyY149XCJcIl0sIC5vd2wtbGF6eTpub3QoW3NyY10pIHtcblx0XHRcdG1heC1oZWlnaHQ6IDA7XG5cdFx0fVxuXG5cdFx0aW1nLm93bC1sYXp5IHtcblx0XHRcdHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdFx0fVxuXHR9XG59XG5cbiIsIiRvd2wtaW1hZ2UtcGF0aDogXCJcIiAhZGVmYXVsdDtcblxuLypcbiAqIFx0T3dsIENhcm91c2VsIC0gVmlkZW8gUGx1Z2luXG4gKi9cblxuLm93bC1jYXJvdXNlbHtcblx0Lm93bC12aWRlby13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJhY2tncm91bmQ6ICMwMDA7XG5cdH1cblxuXHQub3dsLXZpZGVvLXBsYXktaWNvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGhlaWdodDogODBweDtcblx0XHR3aWR0aDogODBweDtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bWFyZ2luLWxlZnQ6IC00MHB4O1xuXHRcdG1hcmdpbi10b3A6IC00MHB4O1xuXHRcdGJhY2tncm91bmQ6IHVybChcIiN7JG93bC1pbWFnZS1wYXRofW93bC52aWRlby5wbGF5LnBuZ1wiKSBuby1yZXBlYXQ7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2U7XG5cdH1cblxuXHQub3dsLXZpZGVvLXBsYXktaWNvbjpob3ZlciB7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjMsIDEuMyk7XG5cdH1cblxuXHQub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10bixcblx0Lm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lm93bC12aWRlby10biB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG5cdH1cblxuXHQub3dsLXZpZGVvLWZyYW1lIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogMTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cbiIsIi8vIHNhc3MtbGludDpkaXNhYmxlIGluZGVudGF0aW9uIG5vLXF1YWxpZnlpbmctZWxlbWVudHMgc2hvcnRoYW5kLXZhbHVlcyBzaW5nbGUtbGluZS1wZXItc2VsZWN0b3IgY2xhc3MtbmFtZS1mb3JtYXQgbm8taWRzIGlkLW5hbWUtZm9ybWF0IHByb3BlcnR5LXNvcnQtb3JkZXIgbm8tY29sb3ItbGl0ZXJhbHMgaGV4LW5vdGF0aW9uIGJyYWNlLXN0eWxlIHplcm8tdW5pdCBzcGFjZS1hZnRlci1jb2xvbiBlbXB0eS1saW5lLWJldHdlZW4tYmxvY2tzXHJcblxyXG5cclxuLyogTWFnbmlmaWMgUG9wdXAgQ1NTICovXHJcbi5tZnAtYmcge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAxMDQyO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGJhY2tncm91bmQ6ICMwYjBiMGI7XHJcbiAgb3BhY2l0eTogMC44OyB9XHJcblxyXG4ubWZwLXdyYXAge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAxMDQzO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cclxuXHJcbi5tZnAtY29udGFpbmVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICBwYWRkaW5nOiAwIDhweDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcblxyXG4ubWZwLWNvbnRhaW5lcjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxyXG5cclxuLm1mcC1hbGlnbi10b3AgLm1mcC1jb250YWluZXI6YmVmb3JlIHtcclxuICBkaXNwbGF5OiBub25lOyB9XHJcblxyXG4ubWZwLWNvbnRlbnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIHotaW5kZXg6IDEwNDU7IH1cclxuXHJcbi5tZnAtaW5saW5lLWhvbGRlciAubWZwLWNvbnRlbnQsXHJcbi5tZnAtYWpheC1ob2xkZXIgLm1mcC1jb250ZW50IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBjdXJzb3I6IGF1dG87IH1cclxuXHJcbi5tZnAtYWpheC1jdXIge1xyXG4gIGN1cnNvcjogcHJvZ3Jlc3M7IH1cclxuXHJcbi5tZnAtem9vbS1vdXQtY3VyLCAubWZwLXpvb20tb3V0LWN1ciAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlIHtcclxuICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XHJcbiAgY3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xyXG4gIGN1cnNvcjogem9vbS1vdXQ7IH1cclxuXHJcbi5tZnAtem9vbSB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xyXG4gIGN1cnNvcjogLW1vei16b29tLWluO1xyXG4gIGN1cnNvcjogem9vbS1pbjsgfVxyXG5cclxuLm1mcC1hdXRvLWN1cnNvciAubWZwLWNvbnRlbnQge1xyXG4gIGN1cnNvcjogYXV0bzsgfVxyXG5cclxuLm1mcC1jbG9zZSxcclxuLm1mcC1hcnJvdyxcclxuLm1mcC1wcmVsb2FkZXIsXHJcbi5tZnAtY291bnRlciB7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lOyB9XHJcblxyXG4ubWZwLWxvYWRpbmcubWZwLWZpZ3VyZSB7XHJcbiAgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuLm1mcC1oaWRlIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbi5tZnAtcHJlbG9hZGVyIHtcclxuICBjb2xvcjogI0NDQztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1hcmdpbi10b3A6IC0wLjhlbTtcclxuICBsZWZ0OiA4cHg7XHJcbiAgcmlnaHQ6IDhweDtcclxuICB6LWluZGV4OiAxMDQ0OyB9XHJcbiAgLm1mcC1wcmVsb2FkZXIgYSB7XHJcbiAgICBjb2xvcjogI0NDQzsgfVxyXG4gICAgLm1mcC1wcmVsb2FkZXIgYTpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAjRkZGOyB9XHJcblxyXG4ubWZwLXMtcmVhZHkgLm1mcC1wcmVsb2FkZXIge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5tZnAtcy1lcnJvciAubWZwLWNvbnRlbnQge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbmJ1dHRvbi5tZnAtY2xvc2UsXHJcbmJ1dHRvbi5tZnAtYXJyb3cge1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IDA7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgcGFkZGluZzogMDtcclxuICB6LWluZGV4OiAxMDQ2O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cclxuXHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7IH1cclxuXHJcbi5tZnAtY2xvc2Uge1xyXG4gIHdpZHRoOiA0NHB4O1xyXG4gIGhlaWdodDogNDRweDtcclxuICBsaW5lLWhlaWdodDogNDRweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgb3BhY2l0eTogMC42NTtcclxuICBwYWRkaW5nOiAwIDAgMThweCAxMHB4O1xyXG4gIGNvbG9yOiAjRkZGO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXNpemU6IDI4cHg7XHJcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBCYXNrZXJ2aWxsZSwgbW9ub3NwYWNlOyB9XHJcbiAgLm1mcC1jbG9zZTpob3ZlcixcclxuICAubWZwLWNsb3NlOmZvY3VzIHtcclxuICAgIG9wYWNpdHk6IDE7IH1cclxuICAubWZwLWNsb3NlOmFjdGl2ZSB7XHJcbiAgICB0b3A6IDFweDsgfVxyXG5cclxuLm1mcC1jbG9zZS1idG4taW4gLm1mcC1jbG9zZSB7XHJcbiAgY29sb3I6ICMzMzM7IH1cclxuXHJcbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2UsXHJcbi5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlIHtcclxuICBjb2xvcjogI0ZGRjtcclxuICByaWdodDogLTZweDtcclxuICB0ZXh0LWFsaWduOiByaWdodDtcclxuICBwYWRkaW5nLXJpZ2h0OiA2cHg7XHJcbiAgd2lkdGg6IDEwMCU7IH1cclxuXHJcbi5tZnAtY291bnRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBjb2xvcjogI0NDQztcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxyXG5cclxuLm1mcC1hcnJvdyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIG9wYWNpdHk6IDAuNjU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHRvcDogNTAlO1xyXG4gIG1hcmdpbi10b3A6IC01NXB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgd2lkdGg6IDkwcHg7XHJcbiAgaGVpZ2h0OiAxMTBweDtcclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XHJcbiAgLm1mcC1hcnJvdzphY3RpdmUge1xyXG4gICAgbWFyZ2luLXRvcDogLTU0cHg7IH1cclxuICAubWZwLWFycm93OmhvdmVyLFxyXG4gIC5tZnAtYXJyb3c6Zm9jdXMge1xyXG4gICAgb3BhY2l0eTogMTsgfVxyXG4gIC5tZnAtYXJyb3c6YmVmb3JlLFxyXG4gIC5tZnAtYXJyb3c6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIG1hcmdpbi10b3A6IDM1cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcclxuICAgIGJvcmRlcjogbWVkaXVtIGluc2V0IHRyYW5zcGFyZW50OyB9XHJcbiAgLm1mcC1hcnJvdzphZnRlciB7XHJcbiAgICBib3JkZXItdG9wLXdpZHRoOiAxM3B4O1xyXG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTNweDtcclxuICAgIHRvcDogOHB4OyB9XHJcbiAgLm1mcC1hcnJvdzpiZWZvcmUge1xyXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMjFweDtcclxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIxcHg7XHJcbiAgICBvcGFjaXR5OiAwLjc7IH1cclxuXHJcbi5tZnAtYXJyb3ctbGVmdCB7XHJcbiAgbGVmdDogMDsgfVxyXG4gIC5tZnAtYXJyb3ctbGVmdDphZnRlciB7XHJcbiAgICBib3JkZXItcmlnaHQ6IDE3cHggc29saWQgI0ZGRjtcclxuICAgIG1hcmdpbi1sZWZ0OiAzMXB4OyB9XHJcbiAgLm1mcC1hcnJvdy1sZWZ0OmJlZm9yZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcclxuICAgIGJvcmRlci1yaWdodDogMjdweCBzb2xpZCAjM0YzRjNGOyB9XHJcblxyXG4ubWZwLWFycm93LXJpZ2h0IHtcclxuICByaWdodDogMDsgfVxyXG4gIC5tZnAtYXJyb3ctcmlnaHQ6YWZ0ZXIge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDE3cHggc29saWQgI0ZGRjtcclxuICAgIG1hcmdpbi1sZWZ0OiAzOXB4OyB9XHJcbiAgLm1mcC1hcnJvdy1yaWdodDpiZWZvcmUge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxyXG5cclxuLm1mcC1pZnJhbWUtaG9sZGVyIHtcclxuICBwYWRkaW5nLXRvcDogNDBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfVxyXG4gIC5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNvbnRlbnQge1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogOTAwcHg7IH1cclxuICAubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XHJcbiAgICB0b3A6IC00MHB4OyB9XHJcblxyXG4ubWZwLWlmcmFtZS1zY2FsZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBhZGRpbmctdG9wOiA1Ni4yNSU7IH1cclxuICAubWZwLWlmcmFtZS1zY2FsZXIgaWZyYW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMDAwOyB9XHJcblxyXG4vKiBNYWluIGltYWdlIGluIHBvcHVwICovXHJcbmltZy5tZnAtaW1nIHtcclxuICB3aWR0aDogYXV0bztcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGxpbmUtaGVpZ2h0OiAwO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgcGFkZGluZzogNDBweCAwIDQwcHg7XHJcbiAgbWFyZ2luOiAwIGF1dG87IH1cclxuXHJcbi8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xyXG4ubWZwLWZpZ3VyZSB7XHJcbiAgbGluZS1oZWlnaHQ6IDA7IH1cclxuICAubWZwLWZpZ3VyZTphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDQwcHg7XHJcbiAgICBib3R0b206IDQwcHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xyXG4gICAgYmFja2dyb3VuZDogIzQ0NDsgfVxyXG4gIC5tZnAtZmlndXJlIHNtYWxsIHtcclxuICAgIGNvbG9yOiAjQkRCREJEO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBsaW5lLWhlaWdodDogMTRweDsgfVxyXG4gIC5tZnAtZmlndXJlIGZpZ3VyZSB7XHJcbiAgICBtYXJnaW46IDA7IH1cclxuXHJcbi5tZnAtYm90dG9tLWJhciB7XHJcbiAgbWFyZ2luLXRvcDogLTM2cHg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMTAwJTtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGN1cnNvcjogYXV0bzsgfVxyXG5cclxuLm1mcC10aXRsZSB7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICBsaW5lLWhlaWdodDogMThweDtcclxuICBjb2xvcjogI0YzRjNGMztcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgcGFkZGluZy1yaWdodDogMzZweDsgfVxyXG5cclxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jb250ZW50IHtcclxuICBtYXgtd2lkdGg6IDEwMCU7IH1cclxuXHJcbi5tZnAtZ2FsbGVyeSAubWZwLWltYWdlLWhvbGRlciAubWZwLWZpZ3VyZSB7XHJcbiAgY3Vyc29yOiBwb2ludGVyOyB9XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSwgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogMzAwcHgpIHtcclxuICAvKipcclxuICAgICAgICogUmVtb3ZlIGFsbCBwYWRkaW5ncyBhcm91bmQgdGhlIGltYWdlIG9uIHNtYWxsIHNjcmVlblxyXG4gICAgICAgKi9cclxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1pbWFnZS1ob2xkZXIge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxyXG4gIC5tZnAtaW1nLW1vYmlsZSBpbWcubWZwLWltZyB7XHJcbiAgICBwYWRkaW5nOiAwOyB9XHJcbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlOmFmdGVyIHtcclxuICAgIHRvcDogMDtcclxuICAgIGJvdHRvbTogMDsgfVxyXG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWZpZ3VyZSBzbWFsbCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4OyB9XHJcbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtYm90dG9tLWJhciB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICB0b3A6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAzcHggNXB4O1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxyXG4gICAgLm1mcC1pbWctbW9iaWxlIC5tZnAtYm90dG9tLWJhcjplbXB0eSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7IH1cclxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1jb3VudGVyIHtcclxuICAgIHJpZ2h0OiA1cHg7XHJcbiAgICB0b3A6IDNweDsgfVxyXG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWNsb3NlIHtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgd2lkdGg6IDM1cHg7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMzVweDtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDA7IH0gfVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcclxuICAubWZwLWFycm93IHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7IH1cclxuICAubWZwLWFycm93LWxlZnQge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMDsgfVxyXG4gIC5tZnAtYXJyb3ctcmlnaHQge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJTsgfVxyXG4gIC5tZnAtY29udGFpbmVyIHtcclxuICAgIHBhZGRpbmctbGVmdDogNnB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogNnB4OyB9IH1cclxuXHJcbi8vIHNhc3MtbGludDplbmFibGUgaW5kZW50YXRpb24gbm8tcXVhbGlmeWluZy1lbGVtZW50cyBzaG9ydGhhbmQtdmFsdWVzIHNpbmdsZS1saW5lLXBlci1zZWxlY3RvciBjbGFzcy1uYW1lLWZvcm1hdCBuby1pZHMgaWQtbmFtZS1mb3JtYXQgcHJvcGVydHktc29ydC1vcmRlciBuby1jb2xvci1saXRlcmFscyBoZXgtbm90YXRpb24gYnJhY2Utc3R5bGUgemVyby11bml0IHNwYWNlLWFmdGVyLWNvbG9uIGVtcHR5LWxpbmUtYmV0d2Vlbi1ibG9ja3NcclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQmFzZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBtYXJnaW4gYW5kIHBhZGRpbmcgZnJvbSBldmVyeSBzZWxlY3RvciBpbmNsdWRpbmcgdGhlaXJcclxuICogcHN1ZWRvIHNlbGVjdG9ycy5cclxuICpcclxuICogMS4gTW9yZSBzZW5zaWJsZSBkZWZhdWx0IGJveCBzaXppbmcuXHJcbiAqICAgIChjc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2UpLlxyXG4gKi9cclxuXHJcbiosXHJcbio6OmJlZm9yZSxcclxuKjo6YWZ0ZXIge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IC8qIDEgKi9cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTZXQgaGVpZ2h0IG9mIHRoZSBkb2N1bWVudCB0byBtYXhpdW0gdmlld3BvcnQgaGVpZ2h0LlxyXG4gKlxyXG4gKiAxLiBTZXQgcm9vdCBmb250IHNpemUgdG8gMTAuXHJcbiAqL1xyXG5cclxuaHRtbCB7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICBmb250LXNpemU6IDYyLjUlOyAvKiAxICovXHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTZXQgbWluaW1hbCBoZWlnaHQgb2YgdGhlIGJvZHkgdG8gbWF4aW11bSB2aWV3cG9ydCBoZWlnaHQgdG9cclxuICogbWF0Y2ggdGhlIGRvY3VtZW50J3MgaGVpZ2h0LlxyXG4gKlxyXG4gKiAxLiBGaXJlZm94IDI1Ky5cclxuICogMi4gQ2hyb21lIDUrLlxyXG4gKi9cclxuXHJcbmJvZHkge1xyXG4gIEBpbmNsdWRlIHRleHQoJGJvZHktdGV4dCk7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmFja2dyb3VuZC1jb2xvcjtcclxuICBjb2xvcjogJGJvZHktY29sb3I7XHJcbiAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xyXG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLyogMSAqL1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvKiAyICovXHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gTWl4aW5zXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBDb250YWluZXJcclxuLy8gQ2VudGVyIGFsaWducyBlbGVtZW50IHdpdGggZ2l2ZW4gbWF4aW11bSB3aWR0aCwgcGFkZGluZywgYW5kIG1hcmdpbnMgdG9wXHJcbi8vIGFuZCBib3R0b20uXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkd2lkdGggLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAcGFyYW0ge1N0cmluZ30gJGdhcCAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgY29udGFpbmVyKDEwMjRweCwgMjBweCk7XHJcbkBtaXhpbiBjb250YWluZXIoJHdpZHRoOiAkZ3JpZC13aWR0aCwgJGdhcDogJGdyaWQtZ2FwKSB7XHJcbiAgQGlmICh0eXBlLW9mKCR3aWR0aCkgPT0gbnVtYmVyIGFuZCB0eXBlLW9mKCRnYXApID09IG51bWJlcikge1xyXG4gICAgQGlmICgkZ2FwICE9IDApIHtcclxuICAgICAgbWF4LXdpZHRoOiBjYWxjKCN7JHdpZHRofSArICN7KCRnYXAgKiAyKX0pO1xyXG4gICAgICBwYWRkaW5nOiAwICRnYXA7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgbWF4LXdpZHRoOiAkd2lkdGg7XHJcbiAgICB9XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdBcmd1bWVudHMgYCR3aWR0aGAgYW5kIGAkZ2FwYCBzaG91bGQgYmUgYSBudW1iZXInO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIFNlY3Rpb25cclxuLy8gQWRkIHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgdG8gZWxlbWVudCB1c2luZyBwYWRkaW5ncy5cclxuLy8gQHBhcmFtIHtTdHJpbmd9ICR0b3AgLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAcGFyYW0ge1N0cmluZ30gJGJvdHRvbSAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgc2VjdGlvbigxMDBweCwgMTAwcHgpO1xyXG5AbWl4aW4gc2VjdGlvbigkdG9wOiAwLCAkYm90dG9tOiAwKSB7XHJcbiAgQGlmICh0eXBlLW9mKCR0b3ApID09IG51bWJlciBhbmQgdHlwZS1vZigkYm90dG9tKSA9PSBudW1iZXIpIHtcclxuICAgIHBhZGRpbmc6ICR0b3AgMCAkYm90dG9tO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdBcmd1bWVudHMgYCR0b3BgIGFuZCBgYm90dG9tYCBzaG91bGQgYmUgYSBudW1iZXInO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIEZvbnRcclxuLy8gQWRkcyBgcmVtYCB1bml0IGJhc2VkIGZvbnQgc2l6ZSBwcm9wZXJ0eSwgYSBmYWxsYmFja1xyXG4vLyBgcHhgIHVuaXQgYmFzZWQgZm9udCBzaXplIHByb3BlcnR5LCBhbmQgYSBgZW1gIHVuaXQgYmFzZWQgbGluZSBoZWlnaHRcclxuLy8gcHJvcGVydHkgdG8gYW55IHJ1bGUuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkZm9udC1zaXplIC0gUGl4ZWwgdW5pdCB2YWx1ZS5cclxuLy8gQHBhcmFtIHtTdHJpbmd9ICRsaW5lLWhlaWdodCAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgsIDI0cHgpO1xyXG5AbWl4aW4gZm9udCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQpIHtcclxuICBAaWYgKHR5cGUtb2YoJGZvbnQtc2l6ZSkgPT0gbnVtYmVyIGFuZCB1bml0KCRmb250LXNpemUpID09ICdweCcpIHtcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcclxuICAgIGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAZXJyb3IgJ1ZhbHVlIGZvciBgI3skZm9udC1zaXplfWAgc2hvdWxkIGJlIGEgYHB4YCB1bml0JztcclxuICB9XHJcbiAgQGlmICh0eXBlLW9mKCRsaW5lLWhlaWdodCkgPT0gbnVtYmVyIGFuZCB1bml0KCRsaW5lLWhlaWdodCkgPT0gJ3B4Jykge1xyXG4gICAgbGluZS1oZWlnaHQ6ICgoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSkgKiAxZW0pO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdWYWx1ZSBmb3IgYCN7JGxpbmUtaGVpZ2h0fWAgc2hvdWxkIGJlIGEgYHB4YCB1bml0JztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBUZXh0XHJcbi8vIFNob3J0aGFuZCBmb3IgdGhlIGZvbnQgbWl4aW4sIHJ1bnMgdGhlIGZvbnQgbWl4aW4gYmFzZWQgb24gYSBjb21tb25cclxuLy8gZGVtZWFub3VyIGV4aXN0aW5nIGJvdGggaW4gdGhlIGAkZm9udC1zaXplYCBhbmQgdGhlIGAkbGluZS1oZWlnaHRgIG1hcHMuXHJcbi8vIEBwYXJhbSB7c3RyaW5nfSAkdmFsdWUgLSBTdHJpbmdcclxuLy8gQGV4YW1wbGVcclxuLy8gICBAaW5jbHVkZSB0ZXh0KCdwJyk7XHJcbkBtaXhpbiB0ZXh0KCR2YWx1ZSkge1xyXG4gIEBpZiAodHlwZS1vZigkdmFsdWUpID09IHN0cmluZykge1xyXG4gICAgQGluY2x1ZGUgZm9udChtYXAtZ2V0KCRmb250LXNpemUsICR2YWx1ZSksIG1hcC1nZXQoJGxpbmUtaGVpZ2h0LCAkdmFsdWUpKTtcclxuICB9IEBlbHNlIHtcclxuICAgIEBlcnJvciAnVmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nJztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBGb250IEF3ZXNvbWVcclxuLy8gQWRkIEZvbnQgQXdlc29tZSBpY29ucyBhcyBwc3VlZG8gZWxlbWVudHMgYnkgdXNpbmcgdGhlaXIgdW5pY29kZS5cclxuLy8gQHBhcmFtIHtTdHJpbmd9ICRjb250ZW50IC0gVW5pY29kZSBzdHJpbmcuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkZmFtaWx5IC0gRm9udCBBd2Vzb21lIGZvbnQgZmFtaWx5IHN0cmluZy5cclxuLy8gQGV4YW1wbGVcclxuLy8gICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjEwMCcsICdMaWdodCcpO1xyXG5AbWl4aW4gZm9udGF3ZXNvbWUoJGNvbnRlbnQsICRmYW1pbHkpIHtcclxuICBAaWYgKHR5cGUtb2YoJGZhbWlseSkgPT0gc3RyaW5nKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSAjeyRmYW1pbHl9JztcclxuICAgIGNvbnRlbnQ6IHVuaWNvZGUoJGNvbnRlbnQpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdBcmd1bWVudCBgJGZhbWlseWAgc2hvdWxkIGJlIGEgc3RyaW5nJztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBNZWRpYVxyXG4vLyBNZWRpYSBxdWVyaWVzIGFjY29yZGluZyB0byBcIlRoZSAxMDAlIENvcnJlY3QgV2F5IFRvIERvIENTUyBCcmVha3BvaW50c1wiXHJcbi8vIChodHRwczovL21lZGl1bS5mcmVlY29kZWNhbXAuY29tL3RoZS0xMDAtY29ycmVjdC13YXktdG8tZG8tY3NzLWJyZWFrcG9pbnRzLTg4ZDZhNWJhMTg2MikuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIEJyZWFrcG9pbnQgcGl4ZWwgdW5pdCB2YWx1ZS5cclxuLy8gQGV4YW1wbGVcclxuLy8gICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7fVxyXG5AbWl4aW4gbWVkaWEoJHNpemUpIHtcclxuICBAaWYgKCRzaXplID09ICdkZXNrdG9wJykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA5MDBweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA5MDBweCkgYW5kKG1heC13aWR0aDogMTE5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1heC13aWR0aDogMTE5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogNjAwcHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkgYW5kKG1heC13aWR0aDogODk5cHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDg5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQnKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogNjAwcHgpIGFuZChtYXgtd2lkdGg6IDExOTlweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAncGhvbmUnKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1heC13aWR0aDogNTk5cHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gRnVuY3Rpb25zXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBVbmljb2RlXHJcbi8vIFByZXNlcnZlIGVzY2FwZWQgdW5pY29kZSBzdHJpbmcuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nIC0gQW4gdW5pY29kZSBzdHJpbmcuXHJcbi8vIEByZXR1cm4ge1N0cmluZ30gQSBwcmVzZXJ2ZWQgZXNjYXBlZCB1bmljb2RlIHN0cmluZ1xyXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBxdW90ZXNcclxuQGZ1bmN0aW9uIHVuaWNvZGUoJHN0cmluZykge1xyXG4gIEByZXR1cm4gdW5xdW90ZShcIlxcJ1wiKSArIHVucXVvdGUoc3RyLWluc2VydCgkc3RyaW5nLCAnXFxcXCcsIDEpKSArIHVucXVvdGUoXCJcXCdcIik7XHJcbn1cclxuLy8gc2Fzcy1saW50OmVuYWJsZSBxdW90ZXNcclxuXHJcblxyXG4vLyBSRU1cclxuLy8gQ29udmVydCBwaXhlbCB1bml0cyB0byBSRU0gdW5pdHMuXHJcbi8vIEBwYXJhbSB7TnVtYmVyfSAkcGl4ZWxzIC0gUGl4ZWwgdmFsdWUuXHJcbi8vIEByZXR1cm4geyp9IC0gQSBjb252ZXJ0ZWQgYHJlbWAgdW5pdC5cclxuQGZ1bmN0aW9uIHJlbSgkcGl4ZWxzKSB7XHJcbiAgQGlmICh1bml0bGVzcygkcGl4ZWxzKSkge1xyXG4gICAgQGVycm9yICdWYWx1ZSBmb3IgYCN7JHBpeGVsc31gIHNob3VsZCBiZSBhIGBweGAgdW5pdC4nO1xyXG4gIH1cclxuICBAcmV0dXJuICgoJHBpeGVscyAvIDEwcHgpICogMXJlbSk7XHJcbn1cclxuXHJcblxyXG4vLyBDb2x1bW5cclxuLy8gQ2FsY3VsYXRlIGdpdmVuIGNvbHVtbiB3aWR0aC5cclxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW4gLSBUaGUgYW1vdW50IG9mIGNvbHVtbnMgdG8gc3Bhbi5cclxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gVGhlIGFtb3VudCBvZiBjb2x1bW5zIHRoYXQgY2FuIGJlIHNwYW5uZWQuXHJcbi8vIEByZXR1cm4ge1N0cmluZ30gLSBQZXJjZW50YWdlIHZhbHVlLlxyXG5AZnVuY3Rpb24gY29sdW1uKCRjb2x1bW4sICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XHJcbiAgQHJldHVybiAoJGNvbHVtbiAgKiAxMDAlIC8gJGNvbHVtbnMpO1xyXG59XHJcblxyXG5cclxuLy8gQ29sb3JcclxuLy8gR2V0IGEgY29sb3IgdmFsdWUgZnJvbSB0d28gbGV2ZWxzIGRlZXAgaW4gdGhlIGAkY29sb3JgIG1hcC5cclxuLy8gQHBhcmFtIHskc3RyaW5nfSAka2V5IC0gS2V5IG9mIHRoZSBjb2xvciB0byBnZXQgZnJvbSB0aGUgbWFwLlxyXG4vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgb2YgdGhlIGtleSB0byBnZXQgZnJvbSB0aGUgbWFwLlxyXG4vLyBAcmV0dXJuIHsqfSBBIEhTTEEgY29sb3IgdmFsdWUuXHJcbkBmdW5jdGlvbiBjb2xvcigka2V5LCAkdmFsdWUpIHtcclxuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAka2V5KSwgJHZhbHVlKTtcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBDb2xvclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gQ29sb3IgbWFwLlxyXG4kY29sb3JzOiAoXHJcbiAgJ2JsYWNrJzogKFxyXG4gICAgJzEwMCc6IGhzbGEoMCwgMCUsIDAlLCAxKVxyXG4gICksXHJcbiAgJ3doaXRlJzogKFxyXG4gICAgJzEwMCc6IGhzbGEoMCwgMCUsIDEwMCUsIDEpLFxyXG4gICksXHJcbiAgJ2JsdWUtbGlnaHQnOiAoXHJcbiAgICAnMTAwJzogaHNsYSgxOTUsIDEzJSwgODIlLCAxKSxcclxuICAgICc1MCc6IGhzbGEoMTk2LCA3LjQlLCA3MC44JSwgMSlcclxuICApLFxyXG4gICdibHVlLWRhcmsnOiAoXHJcbiAgICAnMTAwJzogaHNsYSgyMjIsIDYzJSwgMzUlLCAxKSxcclxuICApLFxyXG4gICdvcmFuZ2UnOiAoXHJcbiAgICAnMTAwJzogaHNsYSgyNywgNjAlLCA2MyUsIDEpLFxyXG4gICksXHJcbiAgJ3JlZCc6IChcclxuICAgICcxMDAnOiBoc2xhKDksIDc0JSwgNTElLCAxKSxcclxuICApLFxyXG4gICdncmVlbic6IChcclxuICAgICcxMDAnOiBoc2xhKDY1LCA3JSwgMzMlLCAxKSxcclxuICAgICc1MCc6IGhzbGEoMTQwLCAyLjklLCA1OS42JSwgMSksXHJcbiAgKSxcclxuICAnZ3JlZW4tYmFja2dyb3VuZCc6IChcclxuICAgICcxMDAnOiBoc2xhKDY1LCA3JSwgMzIlLCAxKSxcclxuICApLFxyXG4gICdicm93bic6IChcclxuICAgICcxMDAnOiBoc2xhKDEzLCAzMyUsIDExJSwgMSksXHJcbiAgKSxcclxuICAnYnJvd24tYmFja2dyb3VuZCc6IChcclxuICAgICcxMDAnOiBoc2xhKDEzLCAzMCUsIDEzJSwgMSksXHJcbiAgKSxcclxuXHJcbiAgJ2R1eW4teWVsbG93JzogKFxyXG4gICAgJzEwMCc6IGhzbGEoNDUuMSwgMTAwJSwgNzkuNCUsIDEpLFxyXG4gICksXHJcbiAgJ2R1eW4tb3JhbmdlJzogKFxyXG4gICAgJzEwMCc6IGhzbGEoMjUuNywgODglLCA2Ny4zJSwgMSksXHJcbiAgKSxcclxuICAnZHV5bi1yZWQnOiAoXHJcbiAgICAnMTAwJzogaHNsYSg1LCA3OS45JSwgNjQuOSUsIDEpLFxyXG4gICksXHJcbiAnZHV5bi1wdXJwbGUnOiAoXHJcbiAgICAnMTAwJzogaHNsYSgyNzYuMywgMjElLCA0MC4yJSwgMSksXHJcbiAgKSxcclxuICAnZHV5bi1ibHVlJzogKFxyXG4gICAgJzEwMCc6IGhzbGEoMjIzLjQsIDQ3LjQlLCAyNi45JSwgMSksXHJcbiAgKSxcclxuICAnZHV5bi1ibHVlLWRhcmsnOiAoXHJcbiAgICAnMTAwJzogaHNsYSgyMjQsIDQyLjElLCAyMSUsIDEpLFxyXG4gIClcclxuKTtcclxuXHJcbi8vIENvbG9yIHNob3J0aGFuZCB2YXJpYWJsZXMuXHJcbiRjb2xvci1ibGFjazogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdibGFjaycpLCAnMTAwJyk7XHJcbiRjb2xvci13aGl0ZTogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICd3aGl0ZScpLCAnMTAwJyk7XHJcbiRjb2xvci1ibHVlLWxpZ2h0OiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUtbGlnaHQnKSwgJzEwMCcpO1xyXG4kY29sb3ItYmx1ZS1kYXJrOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUtZGFyaycpLCAnMTAwJyk7XHJcbiRjb2xvci1vcmFuZ2U6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnb3JhbmdlJyksICcxMDAnKTtcclxuJGNvbG9yLXJlZDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdyZWQnKSwgJzEwMCcpO1xyXG4kY29sb3ItZ3JlZW46IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnZ3JlZW4nKSwgJzEwMCcpO1xyXG4kY29sb3ItZ3JlZW4tYmFja2dyb3VuZDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdncmVlbi1iYWNrZ3JvdW5kJyksICcxMDAnKTtcclxuJGNvbG9yLWJyb3duOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2Jyb3duJyksICcxMDAnKTtcclxuJGNvbG9yLWJyb3duLWJhY2tncm91bmQ6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnYnJvd24tYmFja2dyb3VuZCcpLCAnMTAwJyk7XHJcblxyXG4vLyBEdXluIGNvbG9ycy5cclxuJGR1eW4teWVsbG93OiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2R1eW4teWVsbG93JyksICcxMDAnKTtcclxuJGR1eW4tb3JhbmdlOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2R1eW4tb3JhbmdlJyksICcxMDAnKTtcclxuJGR1eW4tcmVkOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2R1eW4tcmVkJyksICcxMDAnKTtcclxuJGR1eW4tcHVycGxlOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2R1eW4tcHVycGxlJyksICcxMDAnKTtcclxuJGR1eW4tYmx1ZTogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdkdXluLWJsdWUnKSwgJzEwMCcpO1xyXG4kZHV5bi1ibHVlLWRhcms6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnZHV5bi1ibHVlLWRhcmsnKSwgJzEwMCcpO1xyXG4kZHV5bi1ncmFkaWVudDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgJGR1eW4teWVsbG93IDEuMDQlLCAkZHV5bi1vcmFuZ2UgMjMuOTYlLCAkZHV5bi1yZWQgNDMuNzUlLCAkZHV5bi1wdXJwbGUgNjMuMDIlLCAkZHV5bi1ibHVlIDc4LjY1JSwgJGR1eW4tYmx1ZS1kYXJrIDk2LjM1JSk7XHJcblxyXG4vLyBTcGVjaWZpYyBjb2xvcnMuXHJcbiRjb2xvci1wbGFjZWhvbGRlcjogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdibHVlLWxpZ2h0JyksICc1MCcpO1xyXG4kY29sb3ItaW5wdXQ6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnZ3JlZW4nKSwgJzUwJyk7XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFJlc2V0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogQ3VzdG9tIHVzZXIgYWdlbnQgcmVzZXRzIGFuZCBvdmVycmlkZXMgdGhhdCBhcmUgbm90IHByZXNlbnQgaW5cclxuICogTm9ybWFsaXplIDguMC4wLiBUaGlzIG1vc3RseSByZW1vdmVzIHNvbWUgYW5ub3lpbmcgbWFyZ2luIGFuZCBwYWRkaW5nXHJcbiAqIGRlZmF1bHRzLCBib3JkZXIgcmFkaXVzLCBhbmQgb3V0bGluZXMuXHJcbiAqL1xyXG5cclxuYSB7XHJcbiAgY29sb3I6IGluaGVyaXQ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSBib3JkZXIgcmFkaXVzIG9uIENocm9tZSA2Mi4wKyBvbiBtYWNPUy5cclxuICovXHJcblxyXG5idXR0b24ge1xyXG4gIGJvcmRlcjogMDtcclxuICBib3JkZXItcmFkaXVzOiAwOyAvKiAxICovXHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuZmllbGRzZXQge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGJvcmRlcjogMDtcclxufVxyXG5cclxuZmlndXJlIHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbmgxLFxyXG5oMixcclxuaDMsXHJcbmg0LFxyXG5oNSxcclxuaDYge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICBmb250LXdlaWdodDogaW5oZXJpdDtcclxufVxyXG5cclxuaHIge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSB3aGl0ZSBzcGFjZS5cclxuICovXHJcblxyXG5pbWcge1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogMSAqL1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSBpbmhlcml0ZWQgdXNlciBhZ2VudCBhcHBlYXJhbmNlLlxyXG4gKi9cclxuXHJcbmlucHV0LFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBhcHBlYXJhbmNlOiBub25lOyAvKiAxICovXHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gT25seSBhbGxvdyB2ZXJ0aWNhbCByZXNpemluZyB0byBwcmV2ZW50IHRoZSB0ZXh0YXJlYVxyXG4gKiAgICBmcm9tIG92ZXJmbG93aW5nIHRoZSBjb250YWluZXIuXHJcbiAqL1xyXG5cclxudGV4dGFyZWEge1xyXG4gIHJlc2l6ZTogdmVydGljYWw7XHJcbn1cclxuXHJcbnVsLFxyXG5vbCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG59XHJcblxyXG5wIHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gQ29sbGFwc2UgYm9yZGVycyB0byBwcmV2ZW50IGRvdWJsZSBzaWRlZCBib3JkZXJzLlxyXG4gKi9cclxuXHJcbnRhYmxlIHtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgLyogMSAqL1xyXG59XHJcblxyXG5zdHJvbmcge1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQmFja2dyb3VuZFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcbi8qKlxyXG4gKiBCYWNrZ3JvdW5kIGJhc2UuXHJcbiAqL1xyXG5cclxuLmJhY2tncm91bmQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCYWNrZ3JvdW5kIHByaW1hcnkuXHJcbiAqL1xyXG5cclxuLmJhY2tncm91bmQtLWRlZmF1bHQge1xyXG4gIGNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgZmlsbDogJGR1eW4tYmx1ZS1kYXJrO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgYmFja2dyb3VuZDogJGR1eW4teWVsbG93O1xyXG4gIH1cclxuXHJcbiAgaDEge1xyXG4gICAgY29sb3I6ICRkdXluLXJlZDtcclxuICB9XHJcblxyXG4gIGgyIHtcclxuICAgIGNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uLS1hcnJvdyB7XHJcbiAgICBjb2xvcjogJGR1eW4tYmx1ZS1kYXJrO1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIGNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICAgIGZpbGw6ICRkdXluLWJsdWUtZGFyaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5idXR0b24tLWJvcmRlciB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICBjb2xvcjogJGR1eW4tYmx1ZS1kYXJrO1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIGNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICAgIGZpbGw6ICRkdXluLWJsdWUtZGFyaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCYWNrZ3JvdW5kIGJsdWUuXHJcbiAqL1xyXG5cclxuLmJhY2tncm91bmQtLWJsdWUge1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgZmlsbDogJGNvbG9yLXdoaXRlO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgYmFja2dyb3VuZDogJGR1eW4tYmx1ZS1kYXJrO1xyXG4gIH1cclxuXHJcbiAgaDEge1xyXG4gICAgY29sb3I6ICRkdXluLXJlZDtcclxuICB9XHJcblxyXG4gIGgyIHtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uLS1hcnJvdyB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgIGZpbGw6ICRjb2xvci13aGl0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5idXR0b24tLWJvcmRlciB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3Itd2hpdGU7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgIGZpbGw6ICRjb2xvci13aGl0ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCYWNrZ3JvdW5kIGJsdWUuXHJcbiAqL1xyXG5cclxuLmJhY2tncm91bmQtLWJsdWUtZm9vdGVyIHtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIGZpbGw6ICRjb2xvci13aGl0ZTtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGJhY2tncm91bmQ6ICRkdXluLWJsdWU7XHJcbiAgfVxyXG5cclxuICBoMiB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbi0tYXJyb3cge1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICBmaWxsOiAkY29sb3Itd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uLS1ib3JkZXIge1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLXdoaXRlO1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICBmaWxsOiAkY29sb3Itd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEJhY2tncm91bmQgZ3JhZGllbnQuXHJcbiAqL1xyXG5cclxuLmJhY2tncm91bmQtLWdyYWRpZW50IHtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIGZpbGw6ICRjb2xvci13aGl0ZTtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGJhY2tncm91bmQ6ICRkdXluLWdyYWRpZW50O1xyXG4gIH1cclxuXHJcbiAgaDEge1xyXG4gICAgY29sb3I6ICRkdXluLXJlZDtcclxuICB9XHJcblxyXG4gIGgyIHtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uLS1hcnJvdyB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgIGZpbGw6ICRjb2xvci13aGl0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5idXR0b24tLWJvcmRlciB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3Itd2hpdGU7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgIGZpbGw6ICRjb2xvci13aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogJGR1eW4tYmx1ZS1kYXJrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEJhY2tncm91bmQgYm9yZGVyLlxyXG4gKi9cclxuXHJcbi5iYWNrZ3JvdW5kLS1ib3JkZXIge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgJGR1eW4tcmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGJvdHRvbTogOTVweDtcclxuICAgIGJvcmRlci1ib3R0b206IDIwcHggc29saWQgJGR1eW4tcmVkO1xyXG4gIH1cclxuXHJcbiAgLndyYXBwZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmJhY2tncm91bmQtLWJvcmRlciArIGRpdiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgbWFyZ2luLXRvcDogLTk1cHg7XHJcbiAgcGFkZGluZy10b3A6IDk1cHg7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQnV0dG9ucy5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4vKipcclxuICogQnV0dG9uIGJhc2UuXHJcbiAqL1xyXG5cclxuLmJ1dHRvbiB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNnB4LCAyNHB4KTtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGhlaWdodDogMzJweDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMzUwbXMgZWFzZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gIHN2ZyB7XHJcbiAgICB3aWR0aDogMzVweDtcclxuICAgIGhlaWdodDogMzJweDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBCdXR0b24gYm9yZGVyLlxyXG4gKi9cclxuXHJcbi5idXR0b24tLWJvcmRlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbi1yaWdodDogMzVweDtcclxuICBwYWRkaW5nOiAwIDEwcHg7XHJcblxyXG4gIHN2ZyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0zcHg7XHJcbiAgICByaWdodDogLTM1cHg7XHJcbiAgfVxyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGVhc2U7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gIH1cclxuXHJcbiAgJjpob3Zlcjo6YWZ0ZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAmLmlzLWJsdWUge1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgJGR1eW4tYmx1ZS1kYXJrO1xyXG4gICAgY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBjb2xvcjogJGR1eW4tYmx1ZS1kYXJrO1xyXG4gICAgICBmaWxsOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmlzLXdoaXRlIHtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci13aGl0ZTtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgZmlsbDogJGNvbG9yLXdoaXRlO1xyXG4gICAgfVxyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogJGR1eW4tcmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5pcy1yZWQge1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgJGR1eW4tcmVkO1xyXG4gICAgY29sb3I6ICRkdXluLXJlZDtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBjb2xvcjogJGR1eW4tcmVkO1xyXG4gICAgICBmaWxsOiAkZHV5bi1yZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkZHV5bi1yZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEJ1dHRvbiBhcnJvdy5cclxuICovXHJcblxyXG4uYnV0dG9uLS1hcnJvdyB7XHJcbiAgc3ZnIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogMXB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIHN2ZyB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5pcy1ibHVlIHtcclxuICAgIGNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxuICAgICAgZmlsbDogJGR1eW4tYmx1ZS1kYXJrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5pcy1yZWQge1xyXG4gICAgY29sb3I6ICRkdXluLXJlZDtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBjb2xvcjogJGR1eW4tcmVkO1xyXG4gICAgICBmaWxsOiAkZHV5bi1yZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbnRhaW5lclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjb250YWluZXIgb2JqZWN0IGNlbnRlcnMgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQuXHJcbiAqL1xyXG5cclxuLmNvbnRhaW5lciB7XHJcbiAgQGluY2x1ZGUgY29udGFpbmVyO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIERlZmluaXRpb25zXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBHcmlkXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBHcmlkIHdpZHRoLlxyXG4vLyBNYXhpbXVtIGNvbnRhaW5lciB3aWR0aC5cclxuJGdyaWQtd2lkdGg6IDEwMjRweDtcclxuXHJcbi8vIEdyaWQgY29sdW1ucy5cclxuLy8gQW1vdW50IG9mIGdyaWQgY29sdW1ucyB0byBjYWxjdWxhdGUgYSBjb2x1bW4gd2lkdGggd2l0aC5cclxuJGdyaWQtY29sdW1uczogMTI7XHJcblxyXG4vLyBHcmlkIGNvbHVtbi5cclxuLy8gQ29sdW1uIHdpZHRoIGluIHBpeGVscy5cclxuJGdyaWQtY29sdW1uOiA2MHB4O1xyXG5cclxuLy8gR3JpZCBnYXAuXHJcbi8vIFNwYWNlIGJldHdlZW4gZ3JpZCBjb2x1bW5zLCBhdXRvbWF0ZWQuXHJcbiRncmlkLWdhcDogKCRncmlkLXdpZHRoIC0gKCRncmlkLWNvbHVtbiAqICRncmlkLWNvbHVtbnMpKSAvICRncmlkLWNvbHVtbnM7XHJcblxyXG5cclxuLy8gQXNzZXRzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBJbWFnZSBwYXRoLlxyXG4kaW1hZ2UtcGF0aDogJy4uL2ltYWdlcy8nO1xyXG5cclxuXHJcbi8vIEJvZHlcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEJvZHkgYmFja2dyb3VuZCBjb2xvci5cclxuJGJvZHktYmFja2dyb3VuZC1jb2xvcjogJGR1eW4teWVsbG93O1xyXG5cclxuLy8gQm9keSBjb2xvci5cclxuJGJvZHktY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxuXHJcbi8vIEJvZHkgZm9udCBmYW1pbHkuXHJcbiRib2R5LWZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRmb250LWZhbWlseSwgJ2RlZmF1bHQnKTtcclxuXHJcbi8vIEJvZHkgdGV4dC5cclxuJGJvZHktdGV4dDogJ3AnO1xyXG5cclxuXHJcbi8vIE90aGVyXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBMaW5rIGNvbG9yLlxyXG4kbGluay1jb2xvcjogJGNvbG9yLXJlZDtcclxuXHJcblxyXG4vLyBSZXNwb25zaXZlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBHcmlkIGJyZWFrcG9pbnQgYWxpYXMuXHJcbiRicmVha3BvaW50czogKFxyXG4gIHhzOiAwLFxyXG4gIHNtOiA2MDBweCxcclxuICBtZDogNzY4cHgsXHJcbiAgbGc6IDEwMjRweCxcclxuICB4bDogMTIwMHB4XHJcbik7XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbnRlbnQgQ29uc3RyYWludFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjb250ZW50IGNvbnN0cmFpbnQgaXMgYSBjb25zdHJhaW50IGZvciBhbGwgdGhlIGNvbnRlbnQgd2l0aGluXHJcbiAqIHRoZSBkb2N1bWVudC4gSXQgY2FuIGJlIG1hbmlwdWxhdGVkIGJ5IENTUyBvciBKYXZhU2NyaXB0IHdpdGhvdXRcclxuICogaW5mbHVlbmNpbmcgdGhlIGJvZHkuXHJcbiAqL1xyXG5cclxuLmNvbnRlbnQtY29uc3RyYWludCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gIDo6c2VsZWN0aW9uIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRkdXluLXJlZDtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEZsZXhcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBFeGFtcGxlIG9mIGEgZmxleCBiYXNlZCBjb2x1bW4gZ3JpZCBsYXlvdXQgaW4gcHJhY3RpY2U6XHJcbiAqXHJcbiAqIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICogICA8ZGl2IGNsYXNzPVwiY29sIGNvbC14cy02IGNvbC1zbS0xMlwiPjwvZGl2PlxyXG4gKiAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLXhzLTYgY29sLXNtLTEyXCI+PC9kaXY+XHJcbiAqIDwvZGl2PlxyXG4gKlxyXG4gKiBUaGlzIGV4YW1wbGUgd2lsbCBjcmVhdGUgYSByb3cgd2l0aCB0d28gY29sdW1ucyBlYWNoIGZpbGxpbmcgaGFsZiB0aGUgd2lkdGhcclxuICogb2YgdGhlIHJvdyBvbiBhbGwgbWVkaWEsIGJ1dCB3aWxsIGNvbnZlcnQgdG8gYSBmdWxsIHdpZHRoIGNvbHVtbiBvbiB0aGVcclxuICogc21hbGwgYC1zbWAgYnJlYWtwb2ludCBhbGlhcywgd2hpY2ggaXMgbW9iaWxlIG9ubHkuIFJlZmVyIHRvXHJcbiAqIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AgZm9yIGFsbCBicmVha3BvaW50IGFsaWFzLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBGbGV4IG9iamVjdC5cclxuICpcclxuICogVGlwOiBVc2UgZmxleCBvbiBhIGNvbHVtbiB0byBtYWtlIHRoZSBib3ggdGhlIHNhbWUgaGVpZ2h0IGFzIHRoZSBjb2x1bW4uXHJcbiAqL1xyXG5cclxuLmZsZXgge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbi5mbGV4LXdyYXAge1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBGbGV4IG9iamVjdCB3aXRoIGEgY29sdW1uIGJhc2VkIGxheW91dCBzeXN0ZW0uXHJcbiAqL1xyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4OiAwIDEgYXV0bztcclxuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIG1hcmdpbjogMCAtI3soJGdyaWQtZ2FwLzIpfTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBCb3gsIHRoZSBpbnNpZGUgb2YgYSBjb2x1bW4uXHJcbiAqL1xyXG5cclxuLmJveCB7XHJcbiAgZmxleDogMTtcclxufVxyXG5cclxuXHJcbi8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIGtleXMgaW4gdGhlIGAkYnJlYWtwb2ludHNgIHZhcmlhYmxlIG1hcCBkZWZpbmVkIGluXHJcbi8vIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AuXHJcbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkYnJlYWtwb2ludHMge1xyXG5cclxuICAvLyBDcmVhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZXZlcnkga2V5IGluIGAkYnJlYWtwb2ludHNgLlxyXG4gIEBpbmNsdWRlIG1lZGlhKCRrZXkpIHtcclxuXHJcbiAgICAvLyBJdGVyYXRlIGZyb20gMSB0aHJvdWdoIHRoZSBhbW91bnQgb2YgZ3JpZCBjb2x1bW5zIGRlZmluZWQgYnlcclxuICAgIC8vIGAkZ3JpZC1jb2x1bW5zYCBpbiBgc2V0dGluZ3MvX2RlZmluaXRpb25zLnNjc3NgLlxyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcclxuXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gI3skaX0gZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXHJcblxyXG4gICAgICAuY29sLSN7JGtleX0tI3skaX0ge1xyXG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xyXG4gICAgICAgIHdpZHRoOiBjb2x1bW4oJGkpO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgKCRncmlkLWdhcC8yKTtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIC8vIE91dHB1dCBhbiBvZmZzZXQgdXRpbGl0eSBjbGFzcyBpZiB0aGUgaXRlcmF0b3IgaXMgbGVzcyB0aGFuIHRoZSBhbW91bnRcclxuICAgICAgLy8gb2YgZ3JpZCBjb2x1bW5zIGRlZmluZWQgYnkgYCRncmlkLWNvbHVtbnNgIGluXHJcbiAgICAgIC8vIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AuXHJcbiAgICAgIEBpZiAoJGkgPCAkZ3JpZC1jb2x1bW5zKSB7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCAjeyRpfSBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xyXG5cclxuICAgICAgICAub2Zmc2V0LSN7JGtleX0tI3skaX0ge1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGNvbHVtbigkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgdmFsdWVzIGZvciB0aGUgYGFsaWduLWl0ZW1zYCBwcm9wZXJ0eS5cclxuICAgIEBlYWNoICR2YWx1ZSBpbiBzdHJldGNoLCBjZW50ZXIsIGZsZXgtc3RhcnQsIGZsZXgtZW5kLCBiYXNlbGluZSB7XHJcblxyXG4gICAgICAvKipcclxuICAgICAgICogQWxpZ24gYCN7JHZhbHVlfWAgZm9yIHRoZSAjeyRrZXl9IGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xyXG5cclxuICAgICAgLmFsaWduLSN7JGtleX0tI3skdmFsdWV9IHtcclxuICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgdmFsdWVzIGZvciB0aGUgYGp1c3RpZnktY29udGVudGAgcHJvcGVydHkuXHJcbiAgICBAZWFjaCAkdmFsdWUgaW4gc3RhcnQsIGNlbnRlciwgc3BhY2UtYmV0d2Vlbiwgc3BhY2UtYXJvdW5kLCBzcGFjZS1ldmVubHkge1xyXG5cclxuICAgICAgLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYCN7JHZhbHVlfWAgZm9yIHRoZSAjeyRrZXl9IGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xyXG5cclxuICAgICAgLmp1c3RpZnktI3ska2V5fS0jeyR2YWx1ZX0ge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIExvb3AgdGhyb3VnaCBldmVyeSBkaXJlY3Rpb24gZnJvbSBsZWZ0IHRvIHJpZ2h0LlxyXG4gICAgQGVhY2ggJGRpcmVjdGlvbiBpbiBsZWZ0LCByaWdodCB7XHJcblxyXG4gICAgICAvKipcclxuICAgICAgICogQmxlZWQgI3skZGlyZWN0aW9ufSBmb3IgdGhlICN7JGtleX0gYnJlYWtwb2ludC5cclxuICAgICAgICovXHJcblxyXG4gICAgICAuYmxlZWQtI3ska2V5fS0jeyRkaXJlY3Rpb259IHtcclxuICAgICAgICBwYWRkaW5nLSN7JGRpcmVjdGlvbn06IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcmRlciBmaXJzdCBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG4gICAgICovXHJcblxyXG4gICAgLmZpcnN0LSN7JGtleX0ge1xyXG4gICAgICBvcmRlcjogLTE7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3JkZXIgbGFzdCBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG4gICAgICovXHJcblxyXG4gICAgLmxhc3QtI3ska2V5fSB7XHJcbiAgICAgIG9yZGVyOiAxO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldmVyc2Ugb3JkZXIgZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuICAgICAqL1xyXG5cclxuICAgIC5yZXZlcnNlLSN7JGtleX0ge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEhlYWRpbmdzLlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEhlYWRpbmcgMS5cclxuICovXHJcblxyXG5oMSxcclxuLmhlYWRpbmctMSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgQGluY2x1ZGUgZm9udCg0OHB4LCA1NHB4KTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZvbnQoNDhweCwgNThweCk7XHJcbiAgZm9udC1mYW1pbHk6IG1hcC1nZXQoJGZvbnQtZmFtaWx5LCAnbWVkaXVtJyk7XHJcbiAgY29sb3I6ICRkdXluLXJlZDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIZWFkaW5nIDIuXHJcbiAqL1xyXG5cclxuaDIsXHJcbi5oZWFkaW5nLTIge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIEBpbmNsdWRlIGZvbnQoNDhweCwgNTRweCk7XHJcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgZm9udCg0OHB4LCA1NHB4KTtcclxuICBmb250LWZhbWlseTogbWFwLWdldCgkZm9udC1mYW1pbHksICdtZWRpdW0nKTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIZWFkaW5nIDMuXHJcbiAqL1xyXG5cclxuaDMsXHJcbi5oZWFkaW5nLTMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICBAaW5jbHVkZSBmb250KDEwMHB4LCAxMDBweCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBAaW5jbHVkZSBmb250KDUwcHgsIDUwcHgpO1xyXG4gICAgbWF4LXdpZHRoOiAxMDB2dztcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgZm9udCgxNTBweCwgMTUwcHgpO1xyXG4gIGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRmb250LWZhbWlseSwgJ21lZGl1bScpO1xyXG4gIC13ZWJraXQtdGV4dC1zdHJva2U6IDFweCAkZHV5bi1yZWQ7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEhlYWRpbmdzLlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmhhcy1sb2FkIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdG9wOiAtMTUwcHg7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlO1xyXG4gIG9wYWNpdHk6IDA7XHJcbn1cclxuXHJcbi5oYXMtbG9hZFtsb2FkZWQ9J3RydWUnXSB7XHJcbiAgdG9wOiAwO1xyXG4gIG9wYWNpdHk6IDE7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgU2VjdGlvblxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBXcmFwcGVyXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogVGhlIHdyYXBwZXIgb2JqZWN0IGNlbnRlcnMgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQuXHJcbiAqL1xyXG5cclxuJHdlYnNpdGUtd2lkdGg6ICAgMTI1MHB4O1xyXG4kd2Vic2l0ZS1wYWRkaW5nOiA5NXB4O1xyXG5cclxuXHJcbi8qKlxyXG4gKiBXcmFwcGVyIChkZWZhdWx0KVxyXG4gKi9cclxuXHJcbi53cmFwcGVyIHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgcGFkZGluZzogMCA0MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIHBhZGRpbmc6IDAgNTBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgcGFkZGluZzogMCA2MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgY29udGFpbmVyKCR3ZWJzaXRlLXdpZHRoLCAkd2Vic2l0ZS1wYWRkaW5nKTtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDTVMgT3V0cHV0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogRXZlcnkgY29uY2VpdmFibGUgSFRNTCBlbGVtZW50IHdpdGhpbiBhIGAuY21zLW91dHB1dGAgd3JhcHBlci5cclxuICpcclxuICogMS4gRXhjbHVkZSBsYXN0IGNoaWxkcy5cclxuICovXHJcblxyXG4uY21zLW91dHB1dCB7XHJcblxyXG4gID4gKiB7XHJcblxyXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtOyAvKiAxICovXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1bCB7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcblxyXG4gICAgbGkge1xyXG4gICAgICBAaW5jbHVkZSBmb250KDE2cHgsIDMwcHgpO1xyXG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzVweCk7XHJcblxyXG4gICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgd2lkdGg6IDVweDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgY29udGVudDogJ+KAuic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9sIHtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQoMTZweCwgMzBweCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwID4gYSB7XHJcbiAgICBjb2xvcjogJGxpbmstY29sb3I7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29udGFjdCBmb3JtXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY29udGFjdC1mb3JtIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIHBhZGRpbmctYm90dG9tOiA4NXB4O1xuICB9XG5cbiAgcGFkZGluZy1ib3R0b206IDE3MHB4O1xufVxuXG4uY29udGFjdC1mb3JtX190aXRsZSB7XG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcbiAgICBsZWZ0OiAtOHB4O1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDQzcHg7XG4gIH1cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTEwcHg7XG4gIGxlZnQ6IC0xNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogODVweDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uY29udGFjdC1mb3JtX19jb2x1bW4tY29udGFjdCB7XG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICB3aWR0aDogNjIlO1xufVxuXG4uY29udGFjdC1mb3JtX19jb250YWN0LWJsb2NrIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNTBweDtcbiAgfVxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNzVweDtcbiAgfVxuXG4gIG1hcmdpbi1ib3R0b206IDE3MHB4O1xuXG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAuY29udGFjdC1mb3JtX19jb250YWN0LXN1YnRpdGxlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuXG4uY29udGFjdC1mb3JtX19jb250YWN0LXRpdGxlIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIGxlZnQ6IC04cHg7XG4gIH1cblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xNXB4O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5jb250YWN0LWZvcm1fX2NvbnRhY3Qtc3VidGl0bGUge1xuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xuICAgIHBhZGRpbmctdG9wOiAxNTJweDtcbiAgfVxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG4gICAgcGFkZGluZy10b3A6IDExMHB4O1xuICB9XG5cbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcblxuICBwYWRkaW5nLXRvcDogMjM1cHg7XG59XG5cbi5jb250YWN0LWZvcm1fX2NvbnRhY3QtZWRpdG9yIHtcbiAgbWF4LXdpZHRoOiA1ODVweDtcbn1cblxuLmNvbnRhY3QtZm9ybV9fY29udGFjdC1sb2dvIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjkwcHg7XG4gIG1hcmdpbi10b3A6IDU1cHg7XG59XG5cbi5jb250YWN0LWZvcm1fX2NvbHVtbi1mb3JtIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgd2lkdGg6IDM4JTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIERvd25sb2Fkc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmRvd25sb2FkcyB7XHJcbiAgLndyYXBwZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmRvd25sb2Fkc19faXRlbSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDExNXB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogOTBweDtcclxuICB9XHJcblxyXG4gIG1hcmdpbi1ib3R0b206IDE2NHB4O1xyXG59XHJcblxyXG4uZG93bmxvYWRzX19pdGVtLWRhdGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGxlZnQ6IC03cHg7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogLTE0cHg7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4uZG93bmxvYWRzX19jb2x1bW4taXRlbXMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDYxJTtcclxuICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xyXG59XHJcblxyXG4uZG93bmxvYWRzX19pdGVtLXRpdGxlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgcGFkZGluZy10b3A6IDE3NXB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZy10b3A6IDExNXB4O1xyXG4gIH1cclxuXHJcbiAgbWFyZ2luLWJvdHRvbTogMjdweDtcclxuICBwYWRkaW5nLXRvcDogMjI0cHg7XHJcbn1cclxuXHJcbi5kb3dubG9hZHNfX2l0ZW0taW1hZ2Uge1xyXG4gIG1heC13aWR0aDogNTcwcHg7XHJcbiAgbWFyZ2luOiAzNXB4IDA7XHJcbn1cclxuXHJcbi5kb3dubG9hZHNfX2l0ZW0tZWRpdG9yIHtcclxuICBtYXgtd2lkdGg6IDU3MHB4O1xyXG59XHJcblxyXG4uZG93bmxvYWRzX19pdGVtLWxpbmsge1xyXG4gIG1hcmdpbi10b3A6IDM1cHg7XHJcbn1cclxuXHJcbi5kb3dubG9hZHNfX2NvbHVtbi1saW5rcyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA3NXB4O1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDM5JTtcclxufVxyXG5cclxuLmRvd25sb2Fkc19fdGl0bGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDIzcHg7XHJcbn1cclxuXHJcbi5kb3dubG9hZHNfX2VkaXRvciBhIHtcclxuICBAaW5jbHVkZSBmb250KDE2cHgsIDMwcHgpO1xyXG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGNvbG9yOiAkZHV5bi1yZWQ7XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEZvb3RlciBjb2x1bW5zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uZm9vdGVyLWNvbHVtbnMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIEBpbmNsdWRlIGZvbnQoMThweCwgMzZweCk7XHJcbiAgfVxyXG5cclxuICBsaW5lLWhlaWdodDogMjlweDtcclxuXHJcbiAgLndyYXBwZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBwYWRkaW5nLXRvcDogNzBweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDg1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgcGFkZGluZy10b3A6IDE2MHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE3NXB4O1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICRkdXluLXJlZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5mb290ZXItY29sdW1uc19fY29udGFjdCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiA0MCU7XHJcbn1cclxuXHJcbi5mb290ZXItY29sdW1uc19fY29udGFjdC1sb2dvIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDA7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtMzVweDtcclxuXHJcbiAgaW1nIHtcclxuICAgIG1heC13aWR0aDogMzYwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZm9vdGVyLWNvbHVtbnNfX2NvbnRhY3QtZWRpdG9yIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgbWFyZ2luLXRvcDogNzVweDtcclxufVxyXG5cclxuLmZvb3Rlci1jb2x1bW5zX19zaXRlbWFwcyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIHdpZHRoOiA0NSU7XHJcbn1cclxuXHJcbi5mb290ZXItY29sdW1uc19fc2l0ZW1hcCB7XHJcbiAgd2lkdGg6IDUwJTtcclxufVxyXG5cclxuLmZvb3Rlci1jb2x1bW5zX19zb2NpYWwtdGl0bGUsXHJcbi5mb290ZXItY29sdW1uc19fc2l0ZW1hcC10aXRsZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICB9XHJcblxyXG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7XHJcbn1cclxuXHJcbi5mb290ZXItY29sdW1uc19fc29jaWFsIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHdpZHRoOiAxNSU7XHJcbn1cclxuXHJcbi5mb290ZXItY29sdW1uc19fc29jaWFsLWxpbmtzIHtcclxuICBhIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogJGR1eW4tcmVkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBGb290ZXIgQ1RBXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uZm9vdGVyLWN0YSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB6LWluZGV4OiAyO1xyXG5cclxuICAud3JhcHBlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG59XHJcblxyXG4uYmFja2dyb3VuZC0tYm9yZGVyICsgLmZvb3Rlci1jdGEge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHBhZGRpbmctdG9wOiA3NXB4O1xyXG4gIH1cclxuXHJcbiAgcGFkZGluZy10b3A6IDE3NXB4O1xyXG59XHJcblxyXG4uZm9vdGVyLWN0YSArIGRpdiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICB9XHJcblxyXG4gIG1hcmdpbi10b3A6IC05NXB4O1xyXG59XHJcblxyXG4uZm9vdGVyLWN0YV9fYm9keSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgdG9wOiAxMjBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHRvcDogNDBweDtcclxuICAgIHJpZ2h0OiA0MHB4O1xyXG4gICAgYm90dG9tOiA0MHB4O1xyXG4gICAgbGVmdDogNDBweDtcclxuICAgIG1heC1oZWlnaHQ6IGZpdC1jb250ZW50O1xyXG4gICAgcGFkZGluZzogNjBweCA0MHB4O1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMTYwcHg7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgbWF4LXdpZHRoOiA1NzVweDtcclxuICBtYXgtaGVpZ2h0OiAyNTBweDtcclxuICBwYWRkaW5nOiA2MHB4IDU1cHg7XHJcbiAgYmFja2dyb3VuZDogJGR1eW4tcmVkO1xyXG4gIGNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbn1cclxuXHJcbi5mb290ZXItY3RhX19saW5rIHtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uZm9vdGVyLWN0YV9faW1hZ2Uge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHBvc2l0aW9uOiBpbml0aWFsO1xyXG4gICAgaGVpZ2h0OiA1MDBweCFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMHZ3O1xyXG4gIG1pbi1oZWlnaHQ6IDU3MHB4O1xyXG5cclxuICBpbWcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBGb290ZXJcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5mb290ZXIge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgfVxyXG5cclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZy10b3A6IDdweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbn1cclxuXHJcbi5mb290ZXJfX2xpbmtzIHtcclxuICBhIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgQGluY2x1ZGUgZm9udCgxNHB4LCAxMnB4KTtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgZm9udCgxMnB4LCAxMnB4KTtcclxuICAgIG1hcmdpbi1yaWdodDogNjBweDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjb2xvci13aGl0ZTtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkZHV5bi1yZWQ7XHJcbiAgICAgICAgY29sb3I6ICRkdXluLXJlZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gIFxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEZvcm1cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5mb3JtIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogODVweDtcclxuICB9XHJcblxyXG4gIHBhZGRpbmctYm90dG9tOiAxODBweDtcclxufVxyXG5cclxuLmZvcm1fX3RpdGxlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBsZWZ0OiAtOHB4O1xyXG4gICAgbWFyZ2luLXRvcDogMjVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRvcDogLTEwcHg7XHJcbiAgbGVmdDogLTE0cHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDg1cHg7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4uZm9ybV9fY29sdW1uLWZvcm0ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHdpZHRoOiA3MiU7XHJcbn1cclxuXHJcbi5mb3JtX19jb2x1bW4taW1hZ2Uge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDI4JTtcclxufVxyXG5cclxuLmZvcm1fX2ltYWdlIHtcclxuICBpbWcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBtaW4td2lkdGg6IDQzNXB4O1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm1fX3Nob3J0Y29kZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDEwO1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEhlYWRlclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmhlYWRlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgaGVpZ2h0OiAxMjVweDtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDIxMHB4O1xyXG5cclxuICAud3JhcHBlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgaGVpZ2h0OiAxMjVweDtcclxuICAgIH1cclxuXHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgaGVpZ2h0OiAyMTBweDtcclxuICB9XHJcbn1cclxuXHJcbi5oZWFkZXIgKyBkaXYge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHBhZGRpbmctdG9wOiAxMjVweDtcclxuICB9XHJcblxyXG4gIHBhZGRpbmctdG9wOiAyMTBweDtcclxufVxyXG5cclxuLmhlYWRlcl9fbG9nbyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQ0cHgpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDc1MG1zIGVhc2U7XHJcbiAgfVxyXG5cclxuICB3aWR0aDogY2FsYygxMDAlIC0gNDc5cHgpO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XHJcbiAgei1pbmRleDogMjtcclxuXHJcbiAgaW1nIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIHdpZHRoOiAyMTJweDtcclxuICAgIGhlaWdodDogMTUwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uYm9keS5pcy1hY3RpdmUgLmhlYWRlcl9fbG9nbyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgei1pbmRleDogMTAwO1xyXG4gIH1cclxufVxyXG5cclxuLmhlYWRlcl9fYnV0dG9ucyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIHdpZHRoOiA0NDVweDtcclxuICB6LWluZGV4OiAyO1xyXG59XHJcblxyXG4uaGVhZGVyX19idXR0b24ge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICRkdXluLWJsdWUtZGFyaztcclxuICBjb2xvcjogJGR1eW4tYmx1ZS1kYXJrO1xyXG5cclxuICBzdmcge1xyXG4gICAgY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxuICAgIGZpbGw6ICRkdXluLWJsdWUtZGFyaztcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGJhY2tncm91bmQ6ICRkdXluLWJsdWUtZGFyaztcclxuICB9XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICB9XHJcblxyXG4gICYuaXMtc2VhcmNoIHtcclxuICAgIG1hcmdpbi1yaWdodDogODBweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTW9iaWxlIG1lbnUgYnV0dG9uLlxyXG4gKi9cclxuXHJcbiR0cmFuc2l0aW9uLXRpbWluZzogNDAwbXM7XHJcblxyXG4uaGVhZGVyX19tZW51LWJ1dHRvbiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAzNHB4O1xyXG4gIGhlaWdodDogMzRweDtcclxuICB6LWluZGV4OiAxMDE7XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDM0cHg7XHJcbiAgICBoZWlnaHQ6IDJweDtcclxuICAgIG1hcmdpbjogYXV0bztcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRkdXluLXJlZDtcclxuXHJcbiAgICAmOm50aC1jaGlsZCgxKSB7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbi10aW1pbmcsIHRvcCAkdHJhbnNpdGlvbi10aW1pbmcgJHRyYW5zaXRpb24tdGltaW5nLCB0cmFuc2Zvcm0gJHRyYW5zaXRpb24tdGltaW5nIDBzO1xyXG4gICAgfVxyXG5cclxuICAgICY6bnRoLWNoaWxkKDIpIHtcclxuICAgICAgdG9wOiBjYWxjKDUwJSAtIDFweCk7XHJcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24tdGltaW5nLCBvcGFjaXR5IDBtcyAkdHJhbnNpdGlvbi10aW1pbmc7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkdXluLXJlZDtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZCgzKSB7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbi10aW1pbmcsIGJvdHRvbSAkdHJhbnNpdGlvbi10aW1pbmcgJHRyYW5zaXRpb24tdGltaW5nLCB0cmFuc2Zvcm0gJHRyYW5zaXRpb24tdGltaW5nIDBzO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHV5bi1yZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICBzcGFuIHtcclxuICAgICAgJjpudGgtY2hpbGQoMSkge1xyXG4gICAgICAgIHRvcDogY2FsYyg1MCUgLSAxcHgpO1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbi10aW1pbmcsIHRvcCAkdHJhbnNpdGlvbi10aW1pbmcsIHRyYW5zZm9ybSAkdHJhbnNpdGlvbi10aW1pbmcgJHRyYW5zaXRpb24tdGltaW5nO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpudGgtY2hpbGQoMykge1xyXG4gICAgICAgIGJvdHRvbTogY2FsYyg1MCUgLSAxcHgpO1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLXRpbWluZywgYm90dG9tICR0cmFuc2l0aW9uLXRpbWluZywgdHJhbnNmb3JtICR0cmFuc2l0aW9uLXRpbWluZyAkdHJhbnNpdGlvbi10aW1pbmc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSGVhZGVyIHNlY29uZGFyeSBjb2xvcnMuXHJcbiAqL1xyXG5cclxuLmhlYWRlci0tc2Vjb25kYXJ5IHtcclxuICAuaGVhZGVyX19idXR0b24ge1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgJGR1eW4tYmx1ZS1kYXJrO1xyXG4gICAgY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBjb2xvcjogJGR1eW4tYmx1ZS1kYXJrO1xyXG4gICAgICBmaWxsOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaGVhZGVyX19tZW51LWJ1dHRvbiBzcGFuIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRkdXluLXJlZDtcclxuXHJcbiAgICAmOm50aC1jaGlsZCgyKSxcclxuICAgICY6bnRoLWNoaWxkKDMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGR1eW4tcmVkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBIb21lIEROQSBmb3JtLlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgc3R5bGluZy5cclxuICovXHJcblxyXG5pbnB1dFt0eXBlPSd0ZXh0J10sXHJcbmlucHV0W3R5cGU9J251bWJlciddLFxyXG5pbnB1dFt0eXBlPSdlbWFpbCddLFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiA3cHggMDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGR1eW4tYmx1ZS1kYXJrO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGNvbG9yOiAkZHV5bi1yZWQ7XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuICBoZWlnaHQ6IDEyNXB4O1xyXG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkZHV5bi1ibHVlLWRhcms7XHJcbn1cclxuXHJcbmlucHV0OjpwbGFjZWhvbGRlciB7XHJcbiAgY29sb3I6ICRkdXluLXJlZDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIb21lRE5BIGZvcm0uXHJcbiAqL1xyXG5cclxuLmhvbWVkbmEtc3VydmV5IHtcclxuICBtYXgtd2lkdGg6IDU3NXB4O1xyXG59XHJcblxyXG4uaG9tZWRuYS1zdXJ2ZXkgbGFiZWwge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIC8vIG1hcmdpbi1ib3R0b206IC0yM3B4OyAvLyBGaXguXHJcbiAgZm9udC1mYW1pbHk6IG1hcC1nZXQoJGZvbnQtZmFtaWx5LCAnbWVkaXVtJyk7XHJcbn1cclxuXHJcbi5ob21lZG5hLXN1cnZleSAucXVlc3Rpb24tdHlwZS1zdGF0aWMsXHJcbi5ob21lZG5hLXN1cnZleSAucXVlc3Rpb24tdHlwZS1oZWFkZXIge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5ob21lZG5hLXN1cnZleSAud3JhcC1xdWVzdGlvbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi1ib3R0b206IDI2cHg7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxuXHJcbiAgYSB7XHJcbiAgICBjb2xvcjogJGR1eW4tcmVkO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5ob21lZG5hLXN1cnZleSAucXVlc3Rpb24tdHlwZS1yYWRpbyBsYWJlbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5ob21lZG5hLXN1cnZleSBpbnB1dFt0eXBlPXJhZGlvXSxcclxuLmhvbWVkbmEtc3VydmV5IGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcclxuICB3aWR0aDogMTRweDtcclxuICBoZWlnaHQ6IDE0cHg7XHJcbiAgbWFyZ2luLXRvcDogNnB4O1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIHRyYW5zaXRpb246IDAuMzVzO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRkdXluLWJsdWUtZGFyaztcclxuXHJcbiAgJjpjaGVja2VkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxuICB9XHJcbn1cclxuXHJcbi5ob21lZG5hLXN1cnZleSAuYnRuLXN0eWxlIHtcclxuICBAaW5jbHVkZSBmb250KDE2cHgsIDE2cHgpO1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGhlaWdodDogMzJweDtcclxuICBtYXJnaW46IDUwcHggMzVweCAwIDA7XHJcbiAgcGFkZGluZzogMCAxMHB4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICRkdXluLXJlZDtcclxuICBjb2xvcjogJGR1eW4tcmVkO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgc3ZnIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNnB4O1xyXG4gICAgcmlnaHQ6IC0zN3B4O1xyXG4gICAgd2lkdGg6IDM1cHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuICAgIGNvbG9yOiAkZHV5bi1yZWQ7XHJcbiAgICBmaWxsOiAkZHV5bi1yZWQ7XHJcbiAgfVxyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGVhc2U7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZHV5bi1yZWQ7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gIH1cclxuXHJcbiAgJjpob3Zlcjo6YWZ0ZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1pZHNcclxuLy8gc2Fzcy1saW50OmRpc2FibGUgaWQtbmFtZS1mb3JtYXRcclxuI2Zvcm1QYWdlTmF2IHtcclxuICBtYXJnaW4tdG9wOiAyMHB4O1xyXG59XHJcblxyXG4jZm9ybVBhZ2VOYXYgPiAudGV4dCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuI2Zvcm1QYWdlTmF2ID4gc3BhbltkYXRhLXBhZ2VdIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWluLXdpZHRoOiAzMHB4O1xyXG4gIHBhZGRpbmc6IDVweDtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDQ1MG1zLCBjb2xvciA0NTBtcztcclxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JlZW47XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAmOmhvdmVyLFxyXG4gICYuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmVlbjtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgfVxyXG59XHJcbi8vIHNhc3MtbGludDplbmFibGUgbm8taWRzXHJcbi8vIHNhc3MtbGludDplbmFibGUgaWQtbmFtZS1mb3JtYXRcclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTG9jYXRpb25cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5sb2NhdGlvbiB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgLndyYXBwZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubG9jYXRpb25fX2NvbHVtbi10ZXh0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gODBweCk7XHJcbiAgICBtYXJnaW46IDcwcHggNDBweCA4MHB4O1xyXG4gICAgcGFkZGluZzogMzVweCAwIDA7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDMwJTtcclxuICBwYWRkaW5nOiA5MHB4IDM1cHggMCAwO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBoZWlnaHQ6IDJweDtcclxuICAgIH1cclxuXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDMzcHg7XHJcbiAgICBoZWlnaHQ6IDNweDtcclxuICAgIGJhY2tncm91bmQ6ICRkdXluLWJsdWUtZGFyaztcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxufVxyXG5cclxuLmxvY2F0aW9uX190aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgXHJcbn1cclxuXHJcbmgxLmxvY2F0aW9uX190aXRsZSB7XHJcbiAgY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxufVxyXG5cclxuLmxvY2F0aW9uX19jb2x1bW4tbWFwIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHdpZHRoOiA3MCU7XHJcbn1cclxuXHJcbi5sb2NhdGlvbl9fbWFwIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IGluaXRpYWw7XHJcbiAgd2lkdGg6IDY2LjZ2dztcclxuICBtaW4taGVpZ2h0OiA2MDBweDtcclxufVxyXG5cclxuLmxvY2F0aW9uX19tYXAtY29udGFpbmVyIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTW9iaWxlIHNjcm9sbFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLm1vYmlsZS1zY3JvbGwge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZvbnQoMThweCwgMjNweCk7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJvdHRvbTogMTcwcHg7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xyXG4gIGNvbG9yOiAkY29sb3Itb3JhbmdlO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgc3ZnIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogLTJweDtcclxuICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgd2lkdGg6IDM1cHg7XHJcbiAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gICAgY29sb3I6ICRjb2xvci1vcmFuZ2U7XHJcbiAgICBmaWxsOiAkY29sb3Itb3JhbmdlO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBOYXZpZ2F0aW9uXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ubmF2aWdhdGlvbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgdG9wOiAxMDB2aDtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIG1hcmdpbi10b3A6IDEyNXB4O1xyXG4gICAgcGFkZGluZzogMTJweCAwIDQwcHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcclxuICAgIGJhY2tncm91bmQ6ICRkdXluLXllbGxvdztcclxuICAgIGNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAtMTAwdmg7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xyXG4gIGJhY2tncm91bmQ6ICRkdXluLWdyYWRpZW50O1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgb3BhY2l0eTogMDtcclxuICB6LWluZGV4OiAxMDA7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ29udGFjdC5cclxuICovXHJcblxyXG4ubmF2aWdhdGlvbl9fY29sdW1uLWNvbnRhY3Qge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICB3aWR0aDogNDAlO1xyXG4gIHBhZGRpbmctdG9wOiA5MHB4O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XHJcbn1cclxuXHJcbi5uYXZpZ2F0aW9uX19jb250YWN0LWJsb2NrIHtcclxuICBtYXJnaW4tYm90dG9tOiAyMnB4O1xyXG5cclxuICBhIHtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXJlZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubmF2aWdhdGlvbl9fY29udGFjdC10aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjJweDtcclxufVxyXG5cclxuLm5hdmlnYXRpb25fX2NvbnRhY3QtZWRpdG9yIHtcclxuICBAaW5jbHVkZSBmb250KDE2cHgsIDMwcHgpO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFNvY2lhbC5cclxuICovXHJcblxyXG4ubmF2aWdhdGlvbl9fc29jaWFsIHtcclxuICAmLmlzLWRlc2t0b3Age1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi5pcy1tb2JpbGUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLm5hdmlnYXRpb25fX3NvY2lhbC10aXRsZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgQGluY2x1ZGUgZm9udCgyMHB4LCAzNnB4KTtcclxuICAgIG1hcmdpbjogMTM1cHggMCAyMXB4O1xyXG4gICAgY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxuICB9XHJcblxyXG4gIG1hcmdpbjogNzBweCAwIDI2cHg7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICBmb250LWZhbWlseTogbWFwLWdldCgkZm9udC1mYW1pbHksICdtZWRpdW0nKTtcclxufVxyXG5cclxuLm5hdmlnYXRpb25fX3NvY2lhbC1saW5rcyB7XHJcbiAgYSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQoMjBweCwgMzZweCk7XHJcbiAgICAgIGNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgZm9udCgxNnB4LCAzMHB4KTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgICAgICBjb2xvcjogJGR1eW4tcmVkXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTWFpbiBtZW51LlxyXG4gKi9cclxuXHJcbi5uYXZpZ2F0aW9uX19jb2x1bW4tbWVudSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gIHdpZHRoOiA2MCU7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgcGFkZGluZzogOTBweCAwIDAgOTVweDtcclxuICBjb2xvcjogJGR1eW4tYmx1ZS1kYXJrO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMjBweCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHV5bi15ZWxsb3c7XHJcbiAgfVxyXG59XHJcblxyXG4ubWFpbi1tZW51IHtcclxuICA+IGxpIHtcclxuICAgIGEge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZm9udCgzMHB4LCA0OHB4KTtcclxuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgICAgIGNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpbmNsdWRlIGZvbnQoNDhweCwgNzZweCk7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRmb250LWZhbWlseSwgJ21lZGl1bScpO1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuICAgIH1cclxuXHJcbiAgICAmLmN1cnJlbnQtbWVudS1pdGVtLFxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkZHV5bi1yZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCYWNrZ3JvdW5kIGhlYWRlci5cclxuICovXHJcblxyXG4uaGVhZGVyIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGJvdHRvbTogMTAwJTtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIDUwMG1zIGVhc2U7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRkdXluLXllbGxvdztcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogRGlzYWJsZSBzY3JvbGwuXHJcbiAqL1xyXG5cclxuLmJvZHkuaXMtYWN0aXZlIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAuaGVhZGVyOjpiZWZvcmUge1xyXG4gICAgYm90dG9tOiAwO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBOZXdzIGxpc3RcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5uZXdzLWxpc3Qge1xyXG4gIC53cmFwcGVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xyXG4gICAgICBwYWRkaW5nLXRvcDogMTVweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSXRlbXMuXHJcbiAqL1xyXG5cclxuLm5ld3MtbGlzdF9faXRlbXMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQ3OXB4KTtcclxuICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEl0ZW0uXHJcbiAqL1xyXG5cclxuLm5ld3MtbGlzdF9faXRlbSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDExNXB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogOTBweDtcclxuICB9XHJcblxyXG4gIG1hcmdpbi1ib3R0b206IDE2NHB4O1xyXG59XHJcblxyXG4ubmV3cy1saXN0X19pdGVtLWRhdGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGxlZnQ6IC03cHg7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogLTE0cHg7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4ubmV3cy1saXN0X19pdGVtLXRpdGxlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgcGFkZGluZy10b3A6IDE3NXB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZy10b3A6IDExNXB4O1xyXG4gIH1cclxuXHJcbiAgbWFyZ2luLWJvdHRvbTogMjdweDtcclxuICBwYWRkaW5nLXRvcDogMjI0cHg7XHJcbn1cclxuXHJcbi5uZXdzLWxpc3RfX2l0ZW0taW1hZ2Uge1xyXG4gIG1heC13aWR0aDogNTcwcHg7XHJcbiAgbWFyZ2luOiAzNXB4IDA7XHJcbn1cclxuXHJcbi5uZXdzLWxpc3RfX2l0ZW0tZWRpdG9yIHtcclxuICBtYXgtd2lkdGg6IDU3MHB4O1xyXG59XHJcblxyXG4ubmV3cy1saXN0X19pdGVtLWxpbmsge1xyXG4gIG1hcmdpbi10b3A6IDM1cHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUGFnaW5hdGlvbi5cclxuICovXHJcblxyXG4ubmV3cy1saXN0X19wYWdpbmF0aW9uIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206IDc1cHg7XHJcbiAgfVxyXG5cclxuICB3aWR0aDogNDc5cHg7XHJcblxyXG4gIC5wYWdpbmF0aW9uIHtcclxuICAgIG1hcmdpbi10b3A6IDM1cHg7XHJcblxyXG4gICAgLnBhZ2UtbnVtYmVycyB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuICAgIH1cclxuXHJcbiAgICAucHJldixcclxuICAgIC5uZXh0IHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuY3VycmVudCxcclxuICAgIC5wYWdlLW51bWJlcnM6aG92ZXIge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWdyZWVuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcclxuICAgIGEucGFnZS1udW1iZXJzOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICRjb2xvci1yZWQ7XHJcbiAgICB9XHJcbiAgICAvLyBzYXNzLWxpbnQ6ZW5hYmxlIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcclxuICB9XHJcbn1cclxuXHJcbi5uZXdzLWxpc3RfX3N0aWNreSB7XHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgdG9wOiA4MHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5ld3MtbGlzdF9fcGFnaW5hdGlvbi10aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjNweDtcclxufVxyXG5cclxuLm5ld3MtbGlzdF9fcGFnaW5hdGlvbi1saW5rIHtcclxuICBAaW5jbHVkZSBmb250KDE2cHgsIDI0cHgpO1xyXG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGNvbG9yOiAkZHV5bi1yZWQ7XHJcbiAgfVxyXG59XHJcblxyXG4ubmV3cy1saXN0X19wYWdpbmF0aW9uLWRhdGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHdpZHRoOiA4MHB4O1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDE0NXB4O1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFBhcnRuZXJzIGltYWdlXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ucGFydG5lcnMtaW1hZ2Uge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgLndyYXBwZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDkxcHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4NXB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDc1cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4NXB4O1xyXG4gICAgfVxyXG5cclxuICAgIHBhZGRpbmctdG9wOiAxNTBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxNzVweDtcclxuICB9XHJcbn1cclxuXHJcbi5wYXJ0bmVycy1pbWFnZSArIGRpdjo6YmVmb3JlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbn1cclxuXHJcbi5wYXJ0bmVycy1pbWFnZV9fdGl0bGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICB0b3A6IC02MXB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgdG9wOiAtMzFweDtcclxuICAgIGxlZnQ6IC04cHg7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtOTJweDtcclxuICBsZWZ0OiAtMTVweDtcclxufVxyXG5cclxuLnBhcnRuZXJzLWltYWdlX19jb2x1bW4tcGFydG5lcnMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHdpZHRoOiA3MiU7XHJcbn1cclxuXHJcbi5wYXJ0bmVycy1pbWFnZV9fcGFydG5lciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1MHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4MHB4O1xyXG4gIH1cclxuXHJcbiAgbWFyZ2luLWJvdHRvbTogMjIwcHg7XHJcblxyXG4gICY6bGFzdC1vZi10eXBlIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAmOmZpcnN0LW9mLXR5cGUge1xyXG4gICAgLnBhcnRuZXJzLWltYWdlX19wYXJ0bmVyLXN1YnRpdGxlIHtcclxuICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ucGFydG5lcnMtaW1hZ2VfX3BhcnRuZXItdGl0bGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGxlZnQ6IC04cHg7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogLTE1cHg7XHJcbn1cclxuXHJcbi5wYXJ0bmVycy1pbWFnZV9fcGFydG5lci1zdWJ0aXRsZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIHBhZGRpbmctdG9wOiAxNTJweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZy10b3A6IDExMHB4O1xyXG4gIH1cclxuXHJcbiAgbWF4LXdpZHRoOiA0MDBweDtcclxuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gIHBhZGRpbmctdG9wOiAyMzVweDtcclxuICBjb2xvcjogJGNvbG9yLXJlZDtcclxufVxyXG5cclxuLnBhcnRuZXJzLWltYWdlX19wYXJ0bmVyLWVkaXRvciB7XHJcbiAgbWF4LXdpZHRoOiA1ODVweDtcclxufVxyXG5cclxuLnBhcnRuZXJzLWltYWdlX19jb2x1bW4taW1hZ2Uge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDI4JTtcclxufVxyXG5cclxuLnBhcnRuZXJzLWltYWdlX19pbWFnZSB7XHJcbiAgaW1nIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgbWluLXdpZHRoOiA0MzVweDtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUHJvcGVydHkgbWFwXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ucHJvcGVydHktbWFwIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBtaW4taGVpZ2h0OiAxMjVweDtcclxuICB9XHJcblxyXG4gICYuYmFja2dyb3VuZC0tYmx1ZSB7XHJcbiAgICAucHJvcGVydHktbWFwX19jb2x1bW4tZGV0YWlsczo6YmVmb3JlIHtcclxuICAgICAgYmFja2dyb3VuZDogJGR1eW4tcmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5iYWNrZ3JvdW5kLS1kZWZhdWx0IHtcclxuICAgIC5wcm9wZXJ0eS1tYXBfX2NvbHVtbi1kZXRhaWxzOjpiZWZvcmUge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmJhY2tncm91bmQtLWJvcmRlciArIC5wcm9wZXJ0eS1tYXAge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBwYWRkaW5nLXRvcDogNDBweDtcclxuICAgIH1cclxuXHJcbiAgICBwYWRkaW5nLXRvcDogMjE1cHg7XHJcbiAgfVxyXG5cclxuICArIC5mb290ZXItY3RhIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDkwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgcGFkZGluZy10b3A6IDE4MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnByb3BlcnR5LW1hcF9fY29sdW1uLWRldGFpbHMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDMwJTtcclxuICBwYWRkaW5nLXRvcDogOTVweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAzM3B4O1xyXG4gICAgaGVpZ2h0OiAzcHg7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcbn1cclxuXHJcbi5wcm9wZXJ0eS1tYXBfX2NvbHVtbi1tYXAge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDcwJTtcclxufVxyXG5cclxuLnByb3BlcnR5LW1hcF9fcGxhY2Vob2xkZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDk1cHg7XHJcbiAgbWF4LXdpZHRoOiAyMTBweDtcclxuICB0cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTtcclxuICBvcGFjaXR5OiAxO1xyXG5cclxuICAmLmlzLWhpZGRlbiB7XHJcbiAgICB0b3A6IC0xODBweDtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvcGVydHktbWFwX19wcm9wZXJ0aWVzIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5wcm9wZXJ0eS1tYXBfX3Byb3BlcnR5IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtOTk5cHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiAzMDBweDtcclxuICB0cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTtcclxuICBvcGFjaXR5OiAwO1xyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG5cclxuLnByb3BlcnR5LW1hcF9fcHJvcGVydHktdGl0bGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUHJvcGVydHkgc2luZ2xlXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ucHJvcGVydHktc2luZ2xlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIC53cmFwcGVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA5MXB4O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogODVweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcclxuICAgICAgcGFkZGluZy10b3A6IDc1cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4NXB4O1xyXG4gICAgfVxyXG5cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nLXRvcDogMTYwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTgwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvcGVydHktc2luZ2xlX190aXRsZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIHRvcDogLTYxcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBAaW5jbHVkZSBmb250KDYwcHgsIDcycHgpO1xyXG4gICAgdG9wOiAtNDJweDtcclxuICAgIGxlZnQ6IC04cHg7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtOTJweDtcclxuICBsZWZ0OiAtMTVweDtcclxufVxyXG5cclxuLnByb3BlcnR5LXNpbmdsZV9fY29sdW1uLWRldGFpbHMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDI5MHB4O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7ICBcclxufVxyXG5cclxuLnByb3BlcnR5LXNpbmdsZV9fc3VidGl0bGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxufVxyXG5cclxuLnByb3BlcnR5LXNpbmdsZV9faW5mb3JtYXRpb24ge1xyXG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XHJcbiAgY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxufVxyXG5cclxuLnByb3BlcnR5LXNpbmdsZV9fY29sdW1uLW1hcCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4MHB4O1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyOTBweCk7XHJcbn1cclxuXHJcbi5wcm9wZXJ0eS1zaW5nbGVfX3NsaWRlc2hvdy1pbWFnZXMge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1ncmVlbjtcclxufVxyXG5cclxuLnByb3BlcnR5LXNpbmdsZV9fbmF2aWdhdGlvbiB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJvdHRvbTogLTM4cHg7XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogMThweDtcclxuICAgIGNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcblxyXG4gICAgJi5hY3RpdmUsXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRkdXluLWJsdWUtZGFyaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUHJvcGVydHkgdHlwZSBpdGVtXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ucHJvcGVydHktdHlwZS1pdGVtIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206IDgwcHg7XHJcbiAgfVxyXG5cclxuICB3aWR0aDogY2FsYyg1MCUgLSA0Ny41cHgpO1xyXG4gIG1hcmdpbi1ib3R0b206IDEyMHB4O1xyXG5cclxuICAuYnV0dG9uLS1hcnJvdyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IG5vcm1hbDtcclxuICB9XHJcblxyXG4gIC5idXR0b24tLWFycm93IHN2ZyB7XHJcbiAgICB0b3A6IDVweDtcclxuICAgIGhlaWdodDogMTZweDtcclxuICB9XHJcbn1cclxuXHJcbi5wcm9wZXJ0eS10eXBlLWl0ZW1fX2hlYWQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLnByb3BlcnR5LXR5cGUtaXRlbV9fYXZhaWxhYmxlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAzMHB4O1xyXG4gIGxlZnQ6IDMwcHg7XHJcbiAgaGVpZ2h0OiA0MHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAwIDEzcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGR1eW4tYmx1ZS1kYXJrO1xyXG4gIGNvbG9yOiAkZHV5bi1yZWQ7IFxyXG59XHJcblxyXG4ucHJvcGVydHktdHlwZS1pdGVtX19pbWFnZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzVweDtcclxuXHJcbiAgaW1nIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLnByb3BlcnR5LXR5cGUtaXRlbV9fdG90YWwge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogYXV0bztcclxuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG59XHJcblxyXG4ucHJvcGVydHktdHlwZS1pdGVtX190aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxufVxyXG5cclxuLnByb3BlcnR5LXR5cGUtaXRlbV9fdGVhc2VyIHtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4vKipcclxuICogQ29sb3JzLlxyXG4gKi9cclxuXHJcbi5wcm9wZXJ0eS10eXBlLWxpc3Qge1xyXG4gICYuYmFja2dyb3VuZC0tZGVmYXVsdCB7XHJcbiAgICAucHJvcGVydHktdHlwZS1pdGVtX190b3RhbCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkZHV5bi1yZWQ7XHJcbiAgICAgIGNvbG9yOiAkZHV5bi1yZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFByb3BlcnR5IHR5cGUgbGlzdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnByb3BlcnR5LXR5cGUtbGlzdCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAud3JhcHBlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMTQwcHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA3MHB4O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICBwYWRkaW5nLXRvcDogMTYwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTMwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvcGVydHktdHlwZS1saXN0X190aXRsZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIHRvcDogLTYxcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBAaW5jbHVkZSBmb250KDUwcHgsIDcycHgpO1xyXG4gICAgdG9wOiAtNDJweDtcclxuICAgIGxlZnQ6IC04cHg7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtOTJweDtcclxuICBsZWZ0OiAtMTVweDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBTbGlkZXNob3dcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5zbGlkZXNob3cge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gIC53cmFwcGVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnNsaWRlc2hvd19fY29sdW1uLXRleHQge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4MHB4KTtcclxuICAgIG1hcmdpbjogNzBweCA0MHB4IDgwcHg7XHJcbiAgICBwYWRkaW5nOiAzNXB4IDAgMDtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMzAlO1xyXG4gIHBhZGRpbmc6IDkwcHggMzVweCAwIDA7XHJcblxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIGhlaWdodDogMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMzNweDtcclxuICAgIGhlaWdodDogM3B4O1xyXG4gICAgYmFja2dyb3VuZDogJGR1eW4tYmx1ZS1kYXJrO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG59XHJcblxyXG4uc2xpZGVzaG93X190aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgXHJcbn1cclxuXHJcbi5zbGlkZXNob3dfX2NvbHVtbi1pbWFnZXMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDcwJTtcclxufVxyXG5cclxuLnNsaWRlc2hvd19faW1hZ2VzIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiBpbml0aWFsO1xyXG4gIHdpZHRoOiA2Ni42dnc7XHJcblxyXG4gIC5vd2wtbmF2IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDIxMHB4O1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIG1hcmdpbjogYXV0byAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGR1eW4tYmx1ZS1kYXJrO1xyXG4gICAgY29sb3I6ICRkdXluLXJlZDtcclxuICAgIGZpbGw6ICRkdXluLXJlZDtcclxuXHJcbiAgICAub3dsLXByZXYge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5vd2wtbmV4dCB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAub3dsLWRvdHMge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICByaWdodDogNDBweDtcclxuICAgICAgYm90dG9tOiAtMzVweDtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMjhweDtcclxuICAgIHotaW5kZXg6IDI7XHJcblxyXG4gICAgLm93bC1kb3Qge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAxNHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgd2lkdGg6IDE0cHg7XHJcbiAgICAgIGhlaWdodDogMTRweDtcclxuICAgICAgbWFyZ2luLXRvcDogMTRweDtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5wYWdpbmF0aW9uLXJlZCAub3dsLWRvdCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRkdXluLXJlZDtcclxuICAgIH1cclxuXHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkZHV5bi1yZWQ7XHJcblxyXG4gICAgJi5hY3RpdmUsXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkdXluLXJlZDtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGR1eW4tcmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5wYWdpbmF0aW9uLWJsdWUgLm93bC1kb3Qge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICB9XHJcblxyXG4gICAgYm9yZGVyOiAycHggc29saWQgJGR1eW4tYmx1ZS1kYXJrO1xyXG5cclxuICAgICYuYWN0aXZlLFxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkdXluLWJsdWUtZGFyaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zbGlkZXNob3dfX3NsaWRlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiA2Ni42dnc7XHJcbiAgbWluLWhlaWdodDogNjAwcHg7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVGV4dCBpbWFnZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnRleHQtaW1hZ2Uge1xyXG4gIC53cmFwcGVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMTBweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA2NXB4O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogOTBweDtcclxuICAgIH1cclxuXHJcbiAgICBwYWRkaW5nLXRvcDogMTIwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTc1cHg7XHJcbiAgfVxyXG5cclxuICAmLmJhY2tncm91bmQtLWRlZmF1bHQge1xyXG4gICAgY29sb3I6ICRjb2xvci1yZWQ7XHJcblxyXG4gICAgLmJ1dHRvbi0tYm9yZGVyIHtcclxuICAgICAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLWdyZWVuO1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWdyZWVuO1xyXG5cclxuICAgICAgc3ZnIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLWdyZWVuO1xyXG4gICAgICAgIGZpbGw6ICRjb2xvci1ncmVlbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmVlbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1ibHVlLWxpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbi0tYXJyb3cge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWdyZWVuO1xyXG5cclxuICAgICAgc3ZnIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLWdyZWVuO1xyXG4gICAgICAgIGZpbGw6ICRjb2xvci1ncmVlbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnRleHQtaW1hZ2VfX2NvbHVtbi10ZXh0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDU0JTtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMDBweDtcclxufVxyXG5cclxuLnRleHQtaW1hZ2VfX3RpdGxlIHtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG59XHJcblxyXG4udGV4dC1pbWFnZV9fZWRpdG9yIHtcclxuICBtYXJnaW4tYm90dG9tOiAzNXB4O1xyXG59XHJcblxyXG4udGV4dC1pbWFnZV9fY29sdW1uLWltYWdlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHdpZHRoOiA0NiU7XHJcblxyXG4gICNwbGF5IHtcclxuICAgIHRyYW5zaXRpb246IGFsbCA0MDBtcyBlYXNlO1xyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgbGVmdDogY2FsYyg1MCUgLSA1MHB4KTtcclxuXHJcbiAgICAgIHN2ZyB7XHJcbiAgICAgICAgd2lkdGg6IDM5cHg7XHJcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1yZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgb3BhY2l0eTogMC44O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBUZXh0IHNsaWRlc2hvd1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnRleHQtc2xpZGVzaG93IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIC53cmFwcGVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA1MXB4O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogODVweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA1NXB4O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogODVweDtcclxuICAgIH1cclxuXHJcbiAgICBwYWRkaW5nLXRvcDogMTIwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTgwcHg7XHJcbiAgfVxyXG5cclxuICAmLmJhY2tncm91bmQtLWRlZmF1bHQge1xyXG4gICAgLm93bC1uYXYge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHV5bi1ibHVlLWRhcms7XHJcblxyXG4gICAgICBzdmcge1xyXG4gICAgICAgIGNvbG9yOiAkZHV5bi1yZWQ7XHJcbiAgICAgICAgZmlsbDogJGR1eW4tcmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm93bC1kb3Qge1xyXG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAkZHV5bi1yZWQ7XHJcblxyXG4gICAgICAmLmFjdGl2ZSxcclxuICAgICAgJjpob3ZlciB7ICAgICAgICBcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHV5bi1yZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuYmFja2dyb3VuZC0tYmx1ZSxcclxuICAmLmJhY2tncm91bmQtLWdyYWRpZW50IHtcclxuICAgIC5vd2wtbmF2IHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGR1eW4tYmx1ZS1kYXJrO1xyXG5cclxuICAgICAgc3ZnIHtcclxuICAgICAgICBjb2xvcjogJGR1eW4tcmVkO1xyXG4gICAgICAgIGZpbGw6ICRkdXluLXJlZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5vd2wtZG90IHtcclxuICAgICAgYm9yZGVyOiAycHggc29saWQgJGR1eW4teWVsbG93O1xyXG5cclxuICAgICAgJi5hY3RpdmUsXHJcbiAgICAgICY6aG92ZXIgeyAgICAgICAgXHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGR1eW4teWVsbG93O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGV4dC1zbGlkZXNob3dfX3dyYXAge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi50ZXh0LXNsaWRlc2hvd19fdGl0bGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICB0b3A6IC02MXB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgdG9wOiAtMzJweDtcclxuICAgIGxlZnQ6IC04cHg7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtOTJweDtcclxuICBsZWZ0OiAtMTVweDtcclxufVxyXG5cclxuLnRleHQtc2xpZGVzaG93X190aXRsZSArIGRpdiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgfVxyXG5cclxuICBwYWRkaW5nLXRvcDogNDBweDtcclxufVxyXG5cclxuLnRleHQtc2xpZGVzaG93X19ibG9jay10aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzVweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTbGlkZXNob3cuXHJcbiAqL1xyXG5cclxuLnRleHQtaW1hZ2VfX3NsaWRlc2hvdyB7XHJcblxyXG4gIC5vd2wtc3RhZ2Utb3V0ZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICAgIHdpZHRoOiAxNzkwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcbiAgICAgIHdpZHRoOiAxMjA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAub3dsLW5hdiB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogNTI1cHg7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIG1hcmdpbjogYXV0byAwO1xyXG5cclxuICAgIC5vd2wtcHJldiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLm93bC1uZXh0IHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgd2lkdGg6IDM0cHg7XHJcbiAgICAgIGhlaWdodDogNTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vd2wtZG90cyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBib3R0b206IC0zNXB4O1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0yOHB4O1xyXG4gICAgei1pbmRleDogMjtcclxuXHJcbiAgICAub3dsLWRvdCB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAwIDE0cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB3aWR0aDogMTRweDtcclxuICAgICAgaGVpZ2h0OiAxNHB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiAxNHB4O1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFNsaWRlcy5cclxuICovXHJcblxyXG4udGV4dC1pbWFnZV9fc2xpZGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgd2lkdGg6IDM3NXB4O1xyXG4gICAgaGVpZ2h0OiAzNjBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA0NTBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAzMjBweDtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogNTc1cHg7XHJcbiAgaGVpZ2h0OiA1NjBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTbGlkZXNob3cgcG9zaXRpb24uXHJcbiAqL1xyXG5cclxuLnRleHQtc2xpZGVzaG93X19ibG9jayB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgYWxpZ24taXRlbXM6IGxlZnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA5MHB4O1xyXG4gIH1cclxuXHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgbWFyZ2luLWJvdHRvbTogMTIwcHg7XHJcblxyXG4gICY6bGFzdC1vZi10eXBlIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAmLnRleHQtc2xpZGVzaG93X19ibG9jay0tcmlnaHQge1xyXG4gICAgLnRleHQtc2xpZGVzaG93X19jb2x1bW4tdGV4dCB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzNzVweCk7XHJcbiAgICAgICAgcGFkZGluZzogMCA1MHB4IDAgMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBwYWRkaW5nOiAwIDAgNDBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDU3NXB4KTtcclxuICAgICAgbWF4LXdpZHRoOiA1NTBweDtcclxuICAgICAgcGFkZGluZzogMCA1MHB4IDAgMTAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtc2xpZGVzaG93X19jb2x1bW4taW1hZ2VzIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcbiAgICAgICAgd2lkdGg6IDM3NXB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHdpZHRoOiA1NzVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYudGV4dC1zbGlkZXNob3dfX2Jsb2NrLS1sZWZ0IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtc2xpZGVzaG93X19jb2x1bW4tdGV4dCB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzNzVweCk7XHJcbiAgICAgICAgcGFkZGluZzogMCAwIDAgNTBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1heC13aWR0aDogYXV0bztcclxuICAgICAgICBwYWRkaW5nOiAwIDAgNDBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDU3NXB4KTtcclxuICAgICAgbWF4LXdpZHRoOiA1NTBweDtcclxuICAgICAgcGFkZGluZzogMCAxMDBweCAwIDUwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtc2xpZGVzaG93X19jb2x1bW4taW1hZ2VzIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgICAgICAgd2lkdGg6IDU3NXB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgICAgICB3aWR0aDogMzc1cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm93bC1jYXJvdXNlbCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAub3dsLW5hdiB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAub3dsLWRvdHMge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgICAgICByaWdodDogLTI4cHg7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29sb3JcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBDb2xvciB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xyXG5cclxuLy8gQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgY29sb3IgYW5kIGJhY2tncm91bmQgY29sb3IgdXRpbGl0eSBjbGFzc2VzIGJhc2VkIG9uXHJcbi8vIGV2ZXJ5IGNvbG9yIGRlZmluaXRpb24gaW4gYHNldHRpbmdzL19jb2xvci5zY3NzYC5cclxuLy9cclxuLy8gTG9vcCB0aHJvdWdoIGV2ZXJ5IGAka2V5YCBhbmQgYCRtYXBgIGluIHRoZSBgJGNvbG9yc2AgdmFyaWFibGUgbWFwIGRlZmluZWQgaW5cclxuLy8gYHNldHRpbmdzL19jb2xvci5zY3NzYC5cclxuQGVhY2ggJGtleSwgJG1hcCBpbiAkY29sb3JzIHtcclxuXHJcbiAgLy8gTG9vcCB0aHJvdWdoIGV2ZXJ5IGAkc2hhZGVgIGFuZCBgJHJnYmAgaW4gYCRtYXBgLlxyXG4gIEBlYWNoICRzaGFkZSwgJHJnYiBpbiAkbWFwIHtcclxuXHJcbiAgICAvLyBMb29wIHRocm91Z2ggZXZlcnkgYGNvbG9yYCBhbmQgYGJhY2tncm91bmQtY29sb3JgIHJ1bGVzLlxyXG4gICAgQGVhY2ggJHJ1bGUgaW4gY29sb3IsIGJhY2tncm91bmQtY29sb3Ige1xyXG5cclxuICAgICAgLyoqXHJcbiAgICAgICAqIGAjeyRydWxlfWAgI3skcmdifS0jeyRzaGFkZX0gY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXHJcblxyXG4gICAgICAuI3skcnVsZX0tI3t1bnF1b3RlKCRrZXkpfS0je3VucXVvdGUoJHNoYWRlKX0ge1xyXG4gICAgICAgICN7JHJ1bGV9OiAkcmdiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEhlbHBlcnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmljIGhlbHBlciBjbGFzc2VzLlxyXG4gKi9cclxuXHJcblxyXG4vLyBWaXN1YWxseSBIaWRkZW5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBWaXN1YWxseSBoaWRlIGFueSBlbGVtZW50IGZyb20gdGhlIHVzZXIuXHJcbiAqL1xyXG5cclxuLnZpc3VhbGx5LWhpZGRlbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxcHg7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcclxuICBjbGlwLXBhdGg6IGluc2V0KDFweCk7XHJcbn1cclxuXHJcblxyXG4vLyBMYXp5bG9hZFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIE1ha2UgbGF6eWxvYWQgcGxhY2Vob2xkZXIgMTAwJSB3aWRlLlxyXG4gKi9cclxuXHJcbi5sYXp5bG9hZCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcblxyXG4vLyBPYmplY3QgRml0XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogSGVscGVyIGNsYXNzIGZvciBvYmplY3QgZml0IHBvbHlmaWxsLiBBZGQgdGhpcyBjbGFzcyB0byBhbnkgZWxlbWVudFxyXG4gKiB0aGF0IHV0aWxpemVzIHRoZSBgb2JqZWN0LWZpdGAgcHJvcGVydHkuXHJcbiAqL1xyXG5cclxuLm9iamVjdC1maXQge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGZvbnQtZmFtaWx5OiAnb2JqZWN0LWZpdDogY292ZXI7JztcclxuICBvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuXHJcbi8vIEFsaWdubWVudHNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBbGlnbiBjZW50ZXIuXHJcbiAqL1xyXG5cclxuLmFsaWduLWNlbnRlciB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4vKipcclxuICogQWxpZ24gbGVmdC5cclxuICovXHJcblxyXG4uYWxpZ24tbGVmdCB7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFsaWduIHJpZ2h0LlxyXG4gKi9cclxuXHJcbi5hbGlnbi1yaWdodCB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbi8vIFdpZHRoc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gNjAlIHdpZHRoXHJcbi53NjAge1xyXG4gIHdpZHRoOiA2MCU7XHJcbn1cclxuXHJcbi8vIDQwJSB3aWR0aFxyXG4udzQwIHtcclxuICB3aWR0aDogNDAlO1xyXG59XHJcblxyXG4vLyA1MCUgd2lkdGhcclxuLnc1MCB7XHJcbiAgd2lkdGg6IDUwJTtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBPYmplY3QgRml0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogT2JqZWN0IGZpdC5cclxuICpcclxuICogMS4gRm9udCBmYW1pbHkgcG9seWZpbGwgd2l0aCAoaHR0cHM6Ly9naXRodWIuY29tL2JmcmVkLWl0L29iamVjdC1maXQtaW1hZ2VzKS5cclxuICovXHJcblxyXG4vLyBMb29wIHRocm91Z2ggZXZlcnkgdmFsdWUgZm9yIHRoZSBgb2JqZWN0LWZpdGAgcHJvcGVydHkuXHJcbkBlYWNoICR2YWx1ZSBpbiBmaWxsLCBjb250YWluLCBjb3Zlciwgbm9uZSwgc2NhbGUtZG93biB7XHJcblxyXG4gIC8qKlxyXG4gICAqIGBvYmplY3QtZml0YCAjeyR2YWx1ZX0gdXRpbGl0eSBjbGFzcy5cclxuICAgKi9cclxuXHJcbiAgLiN7JHZhbHVlfSB7XHJcbiAgICBmb250LWZhbWlseTogJ29iamVjdC1maXQ6ICN7JHZhbHVlfTsnOyAvKiAxICovXHJcbiAgICBvYmplY3QtZml0OiAjeyR2YWx1ZX07XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFBvc2l0aW9uXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUG9zaXRpb24gdXRpbGl0eSBjbGFzcy5cclxuICovXHJcblxyXG5AZWFjaCAkdmFsdWUgaW4gc3RhdGljLCByZWxhdGl2ZSwgYWJzb2x1dGUsIGZpeGVkLCBzdGlja3kge1xyXG4gIC4jeyR2YWx1ZX0ge1xyXG4gICAgcG9zaXRpb246ICR2YWx1ZTtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVGV4dFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEZvbnQgZmFtaWx5IHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXHJcblxyXG5AZWFjaCAka2V5LCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCRrZXkpIHtcclxuICAgIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRmb250LWZhbWlseSB7XHJcbiAgICAgIC50ZXh0LSN7JGtleX0tI3skcHJvcGVydHl9IHtcclxuICAgICAgICBmb250LWZhbWlseTogbWFwLWdldCgkZm9udC1mYW1pbHksICRwcm9wZXJ0eSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGV4dCBzaXplIHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXHJcblxyXG5AZWFjaCAka2V5LCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCRrZXkpIHtcclxuICAgIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRmb250LXNpemUge1xyXG4gICAgICAudGV4dC0jeyRrZXl9LSN7JHByb3BlcnR5fSB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgkcHJvcGVydHkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRleHQgYWxpZ25tZW50IHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXHJcblxyXG5AZWFjaCAka2V5LCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCRrZXkpIHtcclxuICAgIEBlYWNoICRkaXJlY3Rpb24gaW4gbGVmdCwgcmlnaHQsIGNlbnRlciB7XHJcbiAgICAgIC50ZXh0LSN7JGtleX0tI3skZGlyZWN0aW9ufSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogJGRpcmVjdGlvbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBGb250IHdlaWdodCB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqXHJcbiAqIDEuIE11bHRpcGx5IGxvb3BlZCBpbnRlZ2VyIGJ5IDEwMCBmb3IgY29ycmVjdCBmb250IHdlaWdodCB2YWx1ZS5cclxuICovXHJcblxyXG5AZWFjaCAka2V5LCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCRrZXkpIHtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggOSB7XHJcbiAgICAgICRpOiAkaSAqIDEwMDsgLy8gWzFdXHJcblxyXG4gICAgICAudGV4dC0jeyRrZXl9LSN7JGl9IHtcclxuICAgICAgICBmb250LXdlaWdodDogI3skaX07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGV4dCB0cmFuc2Zvcm0gdWl0bGl0eSBjbGFzc2VzLlxyXG4gKi9cclxuXHJcbkBlYWNoICRrZXksICRicmVha3BvaW50IGluICRicmVha3BvaW50cyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJGtleSkge1xyXG4gICAgQGVhY2ggJHRyYW5zZm9ybSBpbiBjYXBpdGFsaXplLCB1cHBlcmNhc2UsIGxvd2VyY2FzZSwgbm9uZSwgZnVsbC13aWR0aCB7XHJcbiAgICAgIC50ZXh0LSN7JGtleX0tI3skdHJhbnNmb3JtfSB7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVmVydGljYWwgUmh5dGhtXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5AZm9yICRpIGZyb20gMCB0aHJvdWdoIDEwIHtcclxuICAkaTogJGkgKiA4O1xyXG5cclxuICAudnItI3skaX0ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogI3skaX1weDtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgWi1pbmRleFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFV0aWxpdHkgY2xhc3NlcyBmb3IgbWFuaXB1bGF0aW5nIHN0YWNraW5nIG9yZGVyIGluIEhUTUwuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJHZhbHVlIGluICR6LWluZGV4IHtcclxuICAuei1pbmRleC0jeyRrZXl9IHtcclxuICAgIHotaW5kZXg6ICR2YWx1ZTtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gWi1pbmRleFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gQSBsaW1pdGVkIGFycmF5IG9mIHZhbHVlcyBmb3IgdGhlIGB6LWluZGV4YCBwcm9wZXJ0eSB0byBwcmV2ZW50XHJcbi8vIGV4YWdnZXJhdGVkIGFtb3VudHMgYW5kIHVnbHkgaGFja3MuXHJcblxyXG4kei1pbmRleDogKFxyXG4gICcwJzogIDAsXHJcbiAgJzEnOiAgMTAsXHJcbiAgJzInOiAgMjAsXHJcbiAgJzMnOiAgMzAsXHJcbiAgJzQnOiAgNDAsXHJcbiAgJzUnOiAgNTAsXHJcbiAgJzYnOiAgNjAsXHJcbiAgJzcnOiAgNzAsXHJcbiAgJzgnOiAgODAsXHJcbiAgJzknOiAgOTAsXHJcbiAgJzEwJzogMTAwXHJcbik7XHJcbiIsIi5pZnJhbWUge1xyXG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xyXG4gIHdpZHRoOiA1NjBweDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5pZnJhbWUgaW1nIHtcclxuICBtYXgtd2lkdGg6MTAwJTtcclxuICBoZWlnaHQ6YXV0bztcclxufVxyXG5cclxuLmlmcmFtZSBpZnJhbWUge1xyXG4gIGRpc3BsYXk6bm9uZTtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5wbGF5LWJ0biB7XHJcbiAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgei1pbmRleDogNTA7XHJcbiAgdG9wOiBjYWxjKDUwJSAtIDUwcHgpO1xyXG4gIGxlZnQ6NTAlO1xyXG4gIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuICBib3JkZXI6MDtcclxufVxyXG5cclxuLnBsYXktYnRuOmhvdmVyIHtcclxuICBjdXJzb3I6cG9pbnRlcjtcclxufVxyXG5cclxuLnBsYXktYnRuOmZvY3VzIHtcclxuICBvdXRsaW5lOjA7XHJcbn1cclxuIl19 */
