/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@6.7.1_webpack@5.74.0/node_modules/css-loader/dist/cjs.js!../node_modules/.pnpm/postcss-loader@6.2.1_webpack@5.74.0/node_modules/postcss-loader/dist/cjs.js!../node_modules/.pnpm/sass-loader@8.0.2_sass@1.54.0+webpack@5.74.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./scss/application.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/*! 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;
}

:root {
  --base-space: 10px;
  --color-text: black;
  --color-link: black;
  --color-bg: white;
  --color-grey: #cccccc;
  --color-contributor: #ecdcb8;
  --color-about: #5e422a;
}

:root {
  --margin-sm: calc(var(--base-space) * 1);
  --margin-md: calc(var(--base-space) * 1.5);
  --margin-lg: calc(var(--base-space) * 2);
  --margin-xl: calc(var(--base-space) * 3);
  --margin-xxl: calc(var(--base-space) * 6);
  --margin-xxxl: calc(var(--base-space) * 12);
}
@media screen and (min-width: 0px) {
  :root {
    --fs-main: 14px;
    --lh-main: 18px;
  }
}
@media screen and (min-width: 1500px) {
  :root {
    --fs-main: 16px;
    --lh-main: 20px;
  }
}
@media screen and (min-width: 0px) {
  :root {
    --fs-h2: 20px;
    --lh-h2: 24px;
  }
}
@media screen and (min-width: 1500px) {
  :root {
    --fs-h2: 24px;
    --lh-h2: 28px;
  }
}

html {
  box-sizing: border-box;
}

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

* {
  margin: 0;
  -webkit-font-feature-settings: "kern" 1;
  font-feature-settings: "kern" 1;
  -webkit-font-kerning: normal;
  font-kerning: normal;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

body,
html {
  -webkit-tap-highlight-color: transparent;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

html,
body {
  font-family: NewWerker-Medium, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;
  font-size: var(--fs-main);
  line-height: var(--lh-main);
  color: var(--color-text);
  background-color: var(--color-bg);
}

html {
  background: var(--color-bg);
}

a {
  color: var(--color-link);
  text-decoration: none;
  cursor: pointer;
}

ul,
ol {
  margin: 0;
  padding: 0;
}

ul {
  list-style-type: none;
}

ol {
  list-style-position: inside;
}

img {
  width: 100%;
}

strong,
b {
  font-weight: normal;
}

i,
em {
  font-style: normal;
}

h1,
h2,
h3,
h4,
h5,
h6,
small {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

@font-face {
  font-family: NewWerker-Medium;
  src: url(../fonts/NewWerker-Medium.woff) format("woff"), url(../fonts/NewWerker-Medium.woff2) format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: auto;
}
@font-face {
  font-family: NewWerker-Regular;
  src: url(../fonts/NewWerker-Regular.woff) format("woff"), url(../fonts/NewWerker-Regular.woff2) format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: auto;
}
.popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: calc(var(--vh, 1vh) * 100);
  z-index: 999;
  background-color: var(--color-bg);
  overflow: auto;
  scrollbar-width: none;
}
.popup::-webkit-scrollbar {
  display: none;
}

.shelves {
  margin-top: calc(0 * var(--base-space));
  margin-bottom: calc(4 * var(--base-space));
  margin-right: calc(0 * var(--base-space));
  margin-left: calc(0 * var(--base-space));
}

.shelf {
  --text-height: calc(var(--lh-main) * 12);
  --size: 13.5vw;
  position: relative;
  border-bottom: 5px solid var(--color-text);
  display: flex;
  align-items: flex-end;
}
@media screen and (min-width: 576px) {
  .shelf {
    --size: 9vw;
    border-bottom: 10px solid var(--color-text);
  }
}
@media screen and (min-width: 1000px) {
  .shelf {
    --size: 6.75vw;
  }
}
@media screen and (min-width: 1200px) {
  .shelf {
    --size: 4.5vw;
  }
}
.shelf:first-child {
  height: calc(var(--biggest-height) / 100 * var(--size));
}

.shelf__slideshow {
  margin-top: calc(1 * var(--base-space));
  margin-bottom: calc(0 * var(--base-space));
  margin-right: calc(0 * var(--base-space));
  margin-left: calc(0 * var(--base-space));
  display: flex;
  position: relative;
  overflow: scroll;
  overscroll-behavior-x: contain;
  -webkit-scroll-snap-type: x mandatory;
  -ms-scroll-snap-type: x mandatory;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  align-items: flex-end;
  height: 100%;
  scroll-padding-left: var(--margin-xl);
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  min-height: 60vw;
}
@media screen and (min-width: 576px) {
  .shelf__slideshow {
    min-height: 40vw;
  }
}
@media screen and (min-width: 1000px) {
  .shelf__slideshow {
    min-height: 30vw;
  }
}
@media screen and (min-width: 1200px) {
  .shelf__slideshow {
    min-height: 20vw;
  }
}
.shelf__slideshow::-webkit-scrollbar {
  display: none;
}

.shelf__slide {
  --sp: calc(var(--space) * 3);
  --image-height: calc(var(--height) / 100 * var(--size));
  --image-width: calc(var(--image-height) * var(--ratio));
  flex: none;
  scroll-snap-align: start;
  display: flex;
  outline: none;
  flex-direction: column;
  align-items: flex-start;
}
@media screen and (min-width: 576px) {
  .shelf__slide {
    --sp: calc(var(--space) * 2);
  }
}
@media screen and (min-width: 1000px) {
  .shelf__slide {
    --sp: calc(var(--space) * 1);
  }
}
.shelf__slide:not(:nth-last-child(2)):not(:first-child) {
  padding-right: var(--sp);
  width: calc(var(--image-width) + var(--sp));
}
.shelf__slide:first-child {
  padding-left: var(--margin-md);
  padding-right: var(--sp);
  width: calc(var(--image-width) + var(--margin-md) + var(--sp));
}
@media screen and (min-width: 576px) {
  .shelf__slide:first-child {
    padding-left: var(--margin-xl);
    width: calc(var(--image-width) + var(--margin-xl) + var(--sp));
  }
}
.shelf__slide:nth-last-child(2) {
  padding-right: var(--margin-md);
  width: calc(var(--image-width) + var(--margin-md));
}
@media screen and (min-width: 576px) {
  .shelf__slide:nth-last-child(2) {
    padding-right: var(--margin-xl);
    width: calc(var(--image-width) + var(--margin-xl));
  }
}

.shelf__image {
  width: var(--image-width);
  height: var(--image-height);
}

.shelf__nav {
  position: absolute;
  width: 30px;
  display: flex;
  transform: translateY(-50%);
  cursor: pointer;
  top: 50%;
}
@media screen and (min-width: 576px) {
  .shelf__nav {
    width: 40px;
  }
}
@media screen and (min-width: 1200px) {
  .shelf__nav {
    width: 50px;
  }
}
.shelf__nav--prev {
  left: var(--margin-md);
}
@media screen and (min-width: 576px) {
  .shelf__nav--prev {
    left: var(--margin-xl);
  }
}
.shelf__nav--next {
  right: var(--margin-md);
}
@media screen and (min-width: 576px) {
  .shelf__nav--next {
    right: var(--margin-xl);
  }
}
.shelf__nav svg {
  width: 100%;
}

.shelf__caption {
  font-family: Courier, Courier New, Courier, monospace;
  height: var(--text-height);
  font-weight: bold;
  padding: var(--lh-main) 0;
  max-width: 25vw;
}
.shelf__slide:not(:last-child) .shelf__caption {
  margin-right: calc(var(--sp) * -1 + var(--margin-xl));
}
.shelf__caption > *:not(:last-child) {
  margin-bottom: var(--lh-main);
}

.shelf__hangers {
  padding-top: calc(3 * var(--base-space));
  padding-bottom: calc(0 * var(--base-space));
  padding-right: calc(6 * var(--base-space));
  padding-left: calc(6 * var(--base-space));
  position: absolute;
  width: 100%;
  display: flex;
  height: calc(60vw - 5px);
  pointer-events: none;
  padding-left: var(--space-a);
  padding-right: var(--space-b);
  justify-content: space-evenly;
  bottom: 0;
}
@media screen and (min-width: 576px) {
  .shelf__hangers {
    height: calc(40vw - 10px);
  }
}
@media screen and (min-width: 1000px) {
  .shelf__hangers {
    height: calc(30vw - 10px);
  }
}
@media screen and (min-width: 1200px) {
  .shelf__hangers {
    height: calc(20vw - 10px);
  }
}

.shelf__hanger {
  height: 100%;
  display: flex;
  margin-left: var(--space);
}
.shelf__hanger svg {
  height: 100%;
}

.crate {
  background-color: var(--color-grey);
  min-height: calc(var(--vh, 1vh) * 100);
}
.crate--contributor {
  background-color: var(--color-contributor);
}

.crate__title {
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  text-transform: uppercase;
  position: fixed;
  width: calc(var(--vh, 1vh) * 100);
  text-align: center;
  padding: var(--margin-md);
}
@media screen and (min-width: 576px) {
  .crate__title {
    padding: var(--margin-xl);
  }
}
.crate__title--left {
  top: 0;
  left: 0;
  transform: rotateZ(90deg) translateY(-100%);
  transform-origin: top left;
  display: none;
}
@media screen and (min-width: 850px) {
  .crate__title--left {
    display: block;
  }
}
.crate__title--right {
  bottom: 0;
  right: 0;
  transform: rotateZ(-90deg) translateX(100%);
  transform-origin: bottom right;
}

.crate__grid {
  padding: var(--margin-md) calc(var(--lh-h2) + var(--margin-md) * 3) var(--margin-md) var(--margin-md);
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  grid-column-gap: var(--margin-xl);
  overflow: hidden;
}
@media screen and (min-width: 576px) {
  .crate__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: var(--margin-xl) calc(var(--lh-h2) + var(--margin-xl) * 3) var(--margin-xl) var(--margin-xl);
  }
}
@media screen and (min-width: 850px) {
  .crate__grid {
    padding: var(--margin-xl) calc(var(--lh-h2) + var(--margin-xl) * 3);
  }
}
@media screen and (min-width: 1000px) {
  .crate__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media screen and (min-width: 1200px) {
  .crate__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.crate__text {
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  padding: var(--margin-md) calc(var(--lh-h2) + var(--margin-md) * 3) var(--margin-md) var(--margin-md);
}
.crate__text p:not(:last-child) {
  margin-bottom: var(--lh-h2);
}
.crate__text a {
  text-decoration: underline;
}
@media screen and (min-width: 576px) {
  .crate__text {
    padding: var(--margin-xl) calc(var(--lh-h2) + var(--margin-xl) * 3) var(--margin-xl) var(--margin-xl);
  }
}
@media screen and (min-width: 850px) {
  .crate__text {
    padding: var(--margin-xl) calc(var(--lh-h2) + var(--margin-xl) * 3);
  }
}

.crate__grid__col {
  margin-top: calc(0 * var(--base-space));
  margin-bottom: calc(-6 * var(--base-space));
  margin-right: calc(0 * var(--base-space));
  margin-left: calc(0 * var(--base-space));
}
.crate__grid__col--2 {
  display: none;
}
@media screen and (min-width: 576px) {
  .crate__grid__col--2 {
    display: block;
  }
}
.crate__grid__col--3 {
  display: none;
}
@media screen and (min-width: 1000px) {
  .crate__grid__col--3 {
    display: block;
  }
}
.crate__grid__col--4 {
  display: none;
}
@media screen and (min-width: 1200px) {
  .crate__grid__col--4 {
    display: block;
  }
}

.crate__item {
  margin-top: calc(0 * var(--base-space));
  margin-bottom: calc(6 * var(--base-space));
  margin-right: calc(0 * var(--base-space));
  margin-left: calc(0 * var(--base-space));
  display: flex;
  flex-direction: column;
}

.crate__image {
  margin-top: calc(0 * var(--base-space));
  margin-bottom: calc(0.5 * var(--base-space));
  margin-right: calc(0 * var(--base-space));
  margin-left: calc(0 * var(--base-space));
}

.crate__item__title {
  font-family: Courier, Courier New, Courier, monospace;
  font-weight: bold;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}

.crate__close {
  position: fixed;
  top: var(--margin-md);
  right: var(--margin-md);
  width: 30px;
  height: 30px;
  z-index: 998;
  cursor: pointer;
  fill: var(--color-text);
  transform: rotate(45deg);
}
@media screen and (min-width: 576px) {
  .crate__close {
    top: var(--margin-xl);
    right: var(--margin-xl);
  }
}

.about {
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  width: 100%;
  background-color: var(--color-about);
}
.about,
.about a {
  color: var(--color-bg);
}

.about__inner {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1000px) {
  .about__inner {
    padding-top: calc(3 * var(--base-space));
    padding-bottom: calc(3 * var(--base-space));
    padding-right: calc(3 * var(--base-space));
    padding-left: calc(3 * var(--base-space));
  }
}

.about__svg {
  padding-top: calc(0 * var(--base-space));
  padding-bottom: calc(1.5 * var(--base-space));
  padding-right: calc(1.5 * var(--base-space));
  padding-left: calc(1.5 * var(--base-space));
  margin-top: calc(0 * var(--base-space));
  margin-bottom: calc(1.5 * var(--base-space));
  margin-right: calc(-1.5 * var(--base-space));
  margin-left: calc(-1.5 * var(--base-space));
  border-bottom: 2px solid var(--color-bg);
}
@media screen and (min-width: 576px) {
  .about__svg {
    padding-top: calc(0 * var(--base-space));
    padding-bottom: calc(3 * var(--base-space));
    padding-right: calc(3 * var(--base-space));
    padding-left: calc(3 * var(--base-space));
    margin-top: calc(0 * var(--base-space));
    margin-bottom: calc(3 * var(--base-space));
    margin-right: calc(-3 * var(--base-space));
    margin-left: calc(-3 * var(--base-space));
    border-bottom: 3px solid var(--color-bg);
  }
}
.about__svg svg {
  width: 100%;
}

.about__content {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  grid-column-gap: var(--margin-xxl);
}
@media screen and (min-width: 1000px) {
  .about__content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.about__col {
  padding-top: calc(1.5 * var(--base-space));
  padding-bottom: calc(1.5 * var(--base-space));
  padding-right: calc(1.5 * var(--base-space));
  padding-left: calc(1.5 * var(--base-space));
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 576px) {
  .about__col {
    padding-top: calc(3 * var(--base-space));
    padding-bottom: calc(3 * var(--base-space));
    padding-right: calc(3 * var(--base-space));
    padding-left: calc(3 * var(--base-space));
  }
}
@media screen and (min-width: 1000px) {
  .about__col {
    padding: 0;
  }
}
.about__col:nth-child(1) {
  border-bottom: 2px solid var(--color-bg);
}
@media screen and (min-width: 1000px) {
  .about__col:nth-child(1) {
    border-bottom: 0;
  }
}
.about__col > div:not(:last-child) {
  margin-bottom: var(--lh-h2);
}

.about__title {
  text-transform: uppercase;
}

.about__text p:not(:last-child) {
  margin-bottom: var(--lh-h2);
}
.about__text a {
  text-decoration: underline;
}

.about__link a:after {
  content: " →︎";
}

.about__image {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}
.about__image--slideshow {
  position: relative;
  cursor: pointer;
}

.about__image__item {
  display: flex;
  flex-direction: column;
}
.about__image--slideshow .about__image__item {
  display: none;
}
.about__image--slideshow .about__image__item.active {
  display: flex;
}

.about__caption {
  margin-top: calc(1 * var(--base-space));
  margin-bottom: calc(0 * var(--base-space));
  margin-right: calc(0 * var(--base-space));
  margin-left: calc(0 * var(--base-space));
  font-size: var(--fs-main);
  line-height: var(--lh-main);
  font-family: Courier, Courier New, Courier, monospace;
  font-weight: bold;
}
.about__caption i,
.about__caption em {
  font-style: italic;
}

.about__contributor:not(:last-child)::after {
  content: ",";
  white-space: pre;
}

.reading {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  min-height: calc(var(--vh, 1vh) * 100);
  background-color: var(--color-text);
  color: var(--color-bg);
}
@media screen and (min-width: 576px) {
  .reading {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.reading__col:nth-child(1) {
  padding-top: calc(1.5 * var(--base-space));
  padding-bottom: calc(1.5 * var(--base-space));
  padding-right: calc(1.5 * var(--base-space));
  padding-left: calc(1.5 * var(--base-space));
}
@media screen and (min-width: 576px) {
  .reading__col:nth-child(1) {
    padding-top: calc(3 * var(--base-space));
    padding-bottom: calc(3 * var(--base-space));
    padding-right: calc(3 * var(--base-space));
    padding-left: calc(3 * var(--base-space));
    border-right: 2px solid var(--color-bg);
  }
}
.reading__col:nth-child(2) {
  height: calc(var(--vh, 1vh) * 100);
  width: 100%;
  position: fixed;
  top: 0;
  display: none;
  background-color: var(--color-text);
  z-index: 9999;
}
@media screen and (min-width: 576px) {
  .reading__col:nth-child(2) {
    display: block;
    position: -webkit-sticky;
    position: sticky;
    background-color: initial;
    z-index: initial;
  }
}
.reading__col:nth-child(2).active {
  display: block;
}

.reading__col__inner {
  width: 100%;
  height: 100%;
}

.reading__title {
  margin-top: calc(0 * var(--base-space));
  margin-bottom: calc(3 * var(--base-space));
  margin-right: calc(0 * var(--base-space));
  margin-left: calc(0 * var(--base-space));
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  text-transform: uppercase;
}
@media screen and (min-width: 576px) {
  .reading__title {
    margin-top: calc(0 * var(--base-space));
    margin-bottom: calc(9 * var(--base-space));
    margin-right: calc(0 * var(--base-space));
    margin-left: calc(0 * var(--base-space));
  }
}

.reading__list {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  grid-gap: var(--margin-xl);
}
@media screen and (min-width: 850px) {
  .reading__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (min-width: 1200px) {
  .reading__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.reading__caption {
  margin-top: calc(1 * var(--base-space));
  margin-bottom: calc(0 * var(--base-space));
  margin-right: calc(0 * var(--base-space));
  margin-left: calc(0 * var(--base-space));
  font-family: Courier, Courier New, Courier, monospace;
  color: var(--color-bg);
  font-weight: bold;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}

.reading__slideshow__wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
}

.reading__slideshow {
  width: 100%;
  height: 100%;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  position: relative;
}

.reading__slideshow__inner {
  position: relative;
  width: 100%;
  height: 100%;
}

.reading__slide {
  padding-top: calc(1.5 * var(--base-space));
  padding-bottom: calc(1.5 * var(--base-space));
  padding-right: calc(1.5 * var(--base-space));
  padding-left: calc(1.5 * var(--base-space));
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  display: none;
}
@media screen and (min-width: 576px) {
  .reading__slide {
    padding-top: calc(6 * var(--base-space));
    padding-bottom: calc(6 * var(--base-space));
    padding-right: calc(6 * var(--base-space));
    padding-left: calc(6 * var(--base-space));
  }
}
.reading__slide.active {
  display: flex;
}
.reading__slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.reading__nav {
  position: absolute;
  bottom: var(--margin-md);
  z-index: 999;
  width: 40px;
  cursor: pointer;
  -webkit-filter: drop-shadow(0px 0px 7px #000);
  filter: drop-shadow(0px 0px 7px #000);
}
@media screen and (min-width: 576px) {
  .reading__nav {
    top: 50%;
    bottom: initial;
    width: 50px;
  }
}
.reading__nav--next {
  right: var(--margin-md);
}
@media screen and (min-width: 576px) {
  .reading__nav--next {
    right: var(--margin-xl);
  }
}
.reading__nav--prev {
  left: var(--margin-md);
}
@media screen and (min-width: 576px) {
  .reading__nav--prev {
    left: var(--margin-xl);
  }
}
.reading__nav svg {
  fill: var(--color-bg);
}

.reading__close {
  position: fixed;
  top: var(--margin-md);
  right: var(--margin-md);
  width: 30px;
  height: 30px;
  z-index: 998;
  cursor: pointer;
  fill: var(--color-bg);
  transform: rotate(45deg);
}
@media screen and (min-width: 576px) {
  .reading__close {
    display: none;
  }
}

.reading__slideshow__caption {
  margin-top: calc(1.5 * var(--base-space));
  margin-bottom: calc(3 * var(--base-space));
  margin-right: calc(1.5 * var(--base-space));
  margin-left: calc(1.5 * var(--base-space));
  font-family: Courier, Courier New, Courier, monospace;
  color: var(--color-bg);
  font-weight: bold;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}
@media screen and (min-width: 576px) {
  .reading__slideshow__caption {
    margin-top: calc(0 * var(--base-space));
    margin-bottom: calc(3 * var(--base-space));
    margin-right: calc(3 * var(--base-space));
    margin-left: calc(3 * var(--base-space));
  }
}

.reading__subtitle {
  display: inline;
}

.reading__tags {
  display: inline;
}

.reading__tag {
  text-transform: uppercase;
  display: inline;
}
.reading__tag a {
  text-decoration: underline;
  color: var(--color-bg);
}
.reading__tag:not(:last-child):after {
  content: ",";
  white-space: pre;
}

.document {
  height: calc(var(--vh, 1vh) * 100);
  width: 100vw;
  overflow: hidden;
}

.document__inner {
  padding-top: calc(3 * var(--base-space));
  padding-bottom: calc(1 * var(--base-space));
  padding-right: calc(3 * var(--base-space));
  padding-left: calc(3 * var(--base-space));
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  width: 100%;
}

.document__image {
  flex: 1;
  overflow: hidden;
  object-fit: contain;
}

.document__caption {
  font-family: Courier, Courier New, Courier, monospace;
  font-weight: bold;
  padding: var(--lh-main) 0;
  max-width: 400px;
}
.document__caption > *:not(:last-child) {
  margin-bottom: var(--lh-main);
}

.document__subtitle {
  display: inline;
}

.document__tags {
  display: inline;
}

.document__tag {
  text-transform: uppercase;
  display: inline;
}
.document__tag a {
  text-decoration: underline;
}
.document__tag:not(:last-child):after {
  content: ",";
  white-space: pre;
}

.document__close {
  position: fixed;
  top: var(--margin-md);
  right: var(--margin-md);
  width: 30px;
  height: 30px;
  z-index: 998;
  cursor: pointer;
  fill: var(--color-text);
  transform: rotate(45deg);
}
@media screen and (min-width: 576px) {
  .document__close {
    top: var(--margin-xl);
    right: var(--margin-xl);
  }
}

.header {
  padding-top: calc(1.5 * var(--base-space));
  padding-bottom: calc(1.5 * var(--base-space));
  padding-right: calc(1.5 * var(--base-space));
  padding-left: calc(1.5 * var(--base-space));
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  grid-column-gap: var(--margin-xxl);
  grid-row-gap: var(--lh-h2);
}
@media screen and (min-width: 576px) {
  .header {
    padding-top: calc(3 * var(--base-space));
    padding-bottom: calc(3 * var(--base-space));
    padding-right: calc(3 * var(--base-space));
    padding-left: calc(3 * var(--base-space));
  }
}
@media screen and (min-width: 1000px) {
  .header {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.header a {
  text-transform: uppercase;
}

.header__title {
  text-transform: uppercase;
}

.crates {
  background-color: var(--color-grey);
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  grid-column-gap: var(--margin-xxl);
}
@media screen and (min-width: 1000px) {
  .crates {
    padding-top: calc(3 * var(--base-space));
    padding-bottom: calc(3 * var(--base-space));
    padding-right: calc(3 * var(--base-space));
    padding-left: calc(3 * var(--base-space));
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.crates__col {
  padding-top: calc(1.5 * var(--base-space));
  padding-bottom: calc(1.5 * var(--base-space));
  padding-right: calc(1.5 * var(--base-space));
  padding-left: calc(1.5 * var(--base-space));
}
@media screen and (min-width: 576px) {
  .crates__col {
    padding-top: calc(3 * var(--base-space));
    padding-bottom: calc(3 * var(--base-space));
    padding-right: calc(3 * var(--base-space));
    padding-left: calc(3 * var(--base-space));
  }
}
@media screen and (min-width: 1000px) {
  .crates__col {
    padding: 0;
  }
}
.crates__col:nth-child(1) {
  border-bottom: 2px solid var(--color-text);
}
@media screen and (min-width: 1000px) {
  .crates__col:nth-child(1) {
    border-bottom: 0;
  }
}

.crates__title {
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  text-transform: uppercase;
  margin-bottom: var(--lh-h2);
}

.crates__item {
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  text-transform: uppercase;
}
.crates__item:not(:last-child) {
  margin-top: calc(0 * var(--base-space));
  margin-bottom: calc(1 * var(--base-space));
  margin-right: calc(0 * var(--base-space));
  margin-left: calc(0 * var(--base-space));
}

.crates__link {
  text-decoration: underline;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jc3MvYnVuZGxlLmNzcyIsIm1hcHBpbmdzIjoiOzs7QUFBQSxnQkFBZ0I7QUNBaEI7QUFFQTsrRUFBQTtBQUdBOzs7RUFBQTtBQUtBO0VBQ0U7RUFDQTtBRERGOztBQ0lBOytFQUFBO0FBR0E7O0VBQUE7QUFJQTtFQUNFO0FESEY7O0FDTUE7O0VBQUE7QUFJQTtFQUNFO0FESkY7O0FDT0E7OztFQUFBO0FBS0E7RUFDRTtFQUNBO0FETEY7O0FDUUE7K0VBQUE7QUFHQTs7O0VBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTtBRFBGOztBQ1VBOzs7RUFBQTtBQUtBO0VBQ0U7RUFDQTtBRFJGOztBQ1dBOytFQUFBO0FBR0E7O0VBQUE7QUFJQTtFQUNFO0FEVkY7O0FDYUE7OztFQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7RUFDUTtBRFhWOztBQ2NBOztFQUFBO0FBSUE7O0VBRUU7QURaRjs7QUNlQTs7O0VBQUE7QUFLQTs7O0VBR0U7RUFDQTtBRGJGOztBQ2dCQTs7RUFBQTtBQUlBO0VBQ0U7QURkRjs7QUNpQkE7OztFQUFBO0FBS0E7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7QURmRjs7QUNrQkE7RUFDRTtBRGZGOztBQ2tCQTtFQUNFO0FEZkY7O0FDa0JBOytFQUFBO0FBR0E7O0VBQUE7QUFJQTtFQUNFO0FEakJGOztBQ29CQTsrRUFBQTtBQUdBOzs7RUFBQTtBQUtBOzs7OztFQUtFO0VBQ0E7RUFDQTtFQUNBO0FEbkJGOztBQ3NCQTs7O0VBQUE7QUFLQTs7RUFFRTtFQUNBO0FEcEJGOztBQ3VCQTs7O0VBQUE7QUFLQTs7RUFFRTtFQUNBO0FEckJGOztBQ3dCQTs7RUFBQTtBQUlBOzs7O0VBSUU7QUR0QkY7O0FDeUJBOztFQUFBO0FBSUE7Ozs7RUFJRTtFQUNBO0FEdkJGOztBQzBCQTs7RUFBQTtBQUlBOzs7O0VBSUU7QUR4QkY7O0FDMkJBOztFQUFBO0FBSUE7RUFDRTtBRHpCRjs7QUM0QkE7Ozs7O0VBQUE7QUFPQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRDFCRjs7QUM2QkE7O0VBQUE7QUFJQTtFQUNFO0FEM0JGOztBQzhCQTs7RUFBQTtBQUlBO0VBQ0U7QUQ1QkY7O0FDK0JBOzs7RUFBQTtBQUtBOztFQUVFO0VBQ0E7QUQ3QkY7O0FDZ0NBOztFQUFBO0FBSUE7O0VBRUU7QUQ5QkY7O0FDaUNBOzs7RUFBQTtBQUtBO0VBQ0U7RUFDQTtBRC9CRjs7QUNrQ0E7O0VBQUE7QUFJQTtFQUNFO0FEaENGOztBQ21DQTs7O0VBQUE7QUFLQTtFQUNFO0VBQ0E7QURqQ0Y7O0FDb0NBOytFQUFBO0FBR0E7O0VBQUE7QUFJQTtFQUNFO0FEbkNGOztBQ3NDQTs7RUFBQTtBQUlBO0VBQ0U7QURwQ0Y7O0FDdUNBOytFQUFBO0FBR0E7O0VBQUE7QUFJQTtFQUNFO0FEdENGOztBQ3lDQTs7RUFBQTtBQUlBO0VBQ0U7QUR2Q0Y7O0FFclJBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUZ3UkY7O0FHalVBO0VBRUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FId1VKO0FJdFVFO0VESkY7SUFTVTtJQUFBO0VIc1VSO0FBQ0Y7QUk1VUU7RURKRjtJQVNVO0lBQUE7RUg0VVI7QUFDRjtBSWxWRTtFREpGO0lBU1U7SUFBQTtFSGtWUjtBQUNGO0FJeFZFO0VESkY7SUFTVTtJQUFBO0VId1ZSO0FBQ0Y7O0FLaFdBO0VBQ0U7QUxtV0Y7O0FLaFdBOzs7RUFHRTtBTG1XRjs7QUtoV0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBTG1XRjs7QUtoV0E7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7QUxtV0Y7O0FLNVZBOztFRFBFO0VBTEE7RUFDQTtFQ2VBO0VBQ0E7QUxnV0Y7O0FLN1ZBO0VBQ0U7QUxnV0Y7O0FLN1ZBO0VBQ0U7RUFDQTtFQUNBO0FMZ1dGOztBSzdWQTs7RUFFRTtFQUNBO0FMZ1dGOztBSzdWQTtFQUNFO0FMZ1dGOztBSzdWQTtFQUNFO0FMZ1dGOztBSzdWQTtFQUNFO0FMZ1dGOztBSzdWQTs7RUFFRTtBTGdXRjs7QUs3VkE7O0VBRUU7QUxnV0Y7O0FLN1ZBOzs7Ozs7O0VBT0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FMZ1dGOztBTTNiSTtFQUNFO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7QU42Yk47QU1uY0k7RUFDRTtFQUNBO0VBRUE7RUFDQTtFQUNBO0FOb2NOO0FPbGNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FQb2NGO0FPbGNFO0VBQ0U7QVBvY0o7O0FRNWRBO0VDd0JJO0VBQ0E7RUFDQTtFQUNBO0FUd2NKOztBVW5lQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBVnNlRjtBSXhlRTtFTUpGO0lBU0k7SUFDQTtFVnVlRjtBQUNGO0FJOWVFO0VNSkY7SUFjSTtFVndlRjtBQUNGO0FJbmZFO0VNSkY7SUFrQkk7RVZ5ZUY7QUFDRjtBVXZlRTtFQUNFO0FWeWVKOztBVXJlQTtFREZJO0VBQ0E7RUFDQTtFQUNBO0VDQ0Y7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVYyZUY7QUlsaEJFO0VNc0JGO0lBb0JJO0VWNGVGO0FBQ0Y7QUl2aEJFO0VNc0JGO0lBd0JJO0VWNmVGO0FBQ0Y7QUk1aEJFO0VNc0JGO0lBNEJJO0VWOGVGO0FBQ0Y7QVU1ZUU7RUFDRTtBVjhlSjs7QVUxZUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVY2ZUY7QUloakJFO0VNMERGO0lBWUk7RVY4ZUY7QUFDRjtBSXJqQkU7RU0wREY7SUFnQkk7RVYrZUY7QUFDRjtBVTdlRTtFQUNFO0VBQ0E7QVYrZUo7QVU1ZUU7RUFDRTtFQUNBO0VBQ0E7QVY4ZUo7QUlua0JFO0VNa0ZBO0lBTUk7SUFDQTtFVitlSjtBQUNGO0FVNWVFO0VBQ0U7RUFDQTtBVjhlSjtBSTdrQkU7RU02RkE7SUFLSTtJQUNBO0VWK2VKO0FBQ0Y7O0FVM2VBO0VBQ0U7RUFDQTtBVjhlRjs7QVUzZUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVY4ZUY7QUlqbUJFO0VNNkdGO0lBU0k7RVYrZUY7QUFDRjtBSXRtQkU7RU02R0Y7SUFhSTtFVmdmRjtBQUNGO0FVOWVFO0VBQ0U7QVZnZko7QUk5bUJFO0VNNkhBO0lBSUk7RVZpZko7QUFDRjtBVTllRTtFQUNFO0FWZ2ZKO0FJdG5CRTtFTXFJQTtJQUlJO0VWaWZKO0FBQ0Y7QVU5ZUU7RUFDRTtBVmdmSjs7QVU1ZUE7RU4zSEU7RU02SEE7RUFDQTtFQUNBO0VBQ0E7QVYrZUY7QVU3ZUU7RUFDRTtBVitlSjtBVTNlSTtFQUNFO0FWNmVOOztBVXhlQTtFRGhKSTtFQUNBO0VBQ0E7RUFDQTtFQytJRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVY4ZUY7QUk1cEJFO0VNb0tGO0lBYUk7RVYrZUY7QUFDRjtBSWpxQkU7RU1vS0Y7SUFpQkk7RVZnZkY7QUFDRjtBSXRxQkU7RU1vS0Y7SUFxQkk7RVZpZkY7QUFDRjs7QVU5ZUE7RUFDRTtFQUNBO0VBQ0E7QVZpZkY7QVUvZUU7RUFDRTtBVmlmSjs7QVd4ckJBO0VBQ0U7RUFDQTtBWDJyQkY7QVd6ckJFO0VBQ0U7QVgyckJKOztBV3ZyQkE7RVBhRTtFQUNBO0VPWkE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBWDJyQkY7QUl0c0JFO0VPS0Y7SUFTSTtFWDRyQkY7QUFDRjtBVzFyQkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FYNHJCSjtBSWx0QkU7RU9pQkE7SUFRSTtFWDZyQko7QUFDRjtBVzFyQkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBWDRyQko7O0FXeHJCQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVgyckJGO0FJcnVCRTtFT3FDRjtJQVFJO0lBQ0E7RVg0ckJGO0FBQ0Y7QUkzdUJFO0VPcUNGO0lBYUk7RVg2ckJGO0FBQ0Y7QUlodkJFO0VPcUNGO0lBaUJJO0VYOHJCRjtBQUNGO0FJcnZCRTtFT3FDRjtJQXFCSTtFWCtyQkY7QUFDRjs7QVc1ckJBO0VQNUNFO0VBQ0E7RU84Q0E7QVgrckJGO0FPbHdCSTtFQUNFO0FQb3dCTjtBT2h3QkU7RUFDRTtBUGt3Qko7QUl0d0JFO0VPOERGO0lBTUk7RVhzc0JGO0FBQ0Y7QUkzd0JFO0VPOERGO0lBVUk7RVh1c0JGO0FBQ0Y7O0FXcHNCQTtFRnhESTtFQUNBO0VBQ0E7RUFDQTtBVGd3Qko7QVd4c0JFO0VBQ0U7QVgwc0JKO0FJMXhCRTtFTytFQTtJQUlJO0VYMnNCSjtBQUNGO0FXeHNCRTtFQUNFO0FYMHNCSjtBSWx5QkU7RU91RkE7SUFJSTtFWDJzQko7QUFDRjtBV3hzQkU7RUFDRTtBWDBzQko7QUkxeUJFO0VPK0ZBO0lBSUk7RVgyc0JKO0FBQ0Y7O0FXdnNCQTtFRnBGSTtFQUNBO0VBQ0E7RUFDQTtFRW1GRjtFQUNBO0FYNnNCRjs7QVcxc0JBO0VGMUZJO0VBQ0E7RUFDQTtFQUNBO0FUd3lCSjs7QVc3c0JBO0VQM0ZFO0VPNkZBO0VBQ0E7RUFDQTtFQUNBO0FYZ3RCRjs7QVc3c0JBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FYZ3RCRjtBSW4xQkU7RU8wSEY7SUFZSTtJQUNBO0VYaXRCRjtBQUNGOztBWTcxQkE7RVJzQkU7RUFDQTtFUXJCQTtFQUNBO0FaaTJCRjtBWS8xQkU7O0VBRUU7QVppMkJKOztBWTcxQkE7RUFDRTtFQUNBO0FaZzJCRjtBSXoyQkU7RVFPRjtJSEZJO0lBQ0E7SUFDQTtJQUNBO0VUdzJCRjtBQUNGOztBWWoyQkE7RUhJSTtFQUNBO0VBQ0E7RUFDQTtFQUhBO0VBQ0E7RUFDQTtFQUNBO0VHSkY7QVowMkJGO0FJNzNCRTtFUWdCRjtJSElJO0lBQ0E7SUFDQTtJQUNBO0lBSEE7SUFDQTtJQUNBO0lBQ0E7SUdDQTtFWmkzQkY7QUFDRjtBWS8yQkU7RUFDRTtBWmkzQko7O0FZNzJCQTtFQUNFO0VBQ0E7RUFDQTtBWmczQkY7QUluNUJFO0VRZ0NGO0lBTUk7RVppM0JGO0FBQ0Y7O0FZOTJCQTtFSHJDSTtFQUNBO0VBQ0E7RUFDQTtFR29DRjtFQUNBO0FabzNCRjtBSWo2QkU7RVEwQ0Y7SUhyQ0k7SUFDQTtJQUNBO0lBQ0E7RVRnNkJGO0FBQ0Y7QUl6NkJFO0VRMENGO0lBVUk7RVp5M0JGO0FBQ0Y7QVl2M0JFO0VBQ0U7QVp5M0JKO0FJajdCRTtFUXVEQTtJQUlJO0VaMDNCSjtBQUNGO0FZdDNCSTtFQUNFO0FadzNCTjs7QVluM0JBO0VBQ0U7QVpzM0JGOztBTy83Qkk7RUFDRTtBUGs4Qk47QU85N0JFO0VBQ0U7QVBnOEJKOztBWXAzQkk7RUFDRTtBWnUzQk47O0FZbDNCQTtFQUNFO0VBQ0E7RUFDQTtBWnEzQkY7QVluM0JFO0VBQ0U7RUFDQTtBWnEzQko7O0FZajNCQTtFQUNFO0VBQ0E7QVpvM0JGO0FZbDNCRTtFQUNFO0FabzNCSjtBWWwzQkk7RUFDRTtBWm8zQk47O0FZLzJCQTtFSDFGSTtFQUNBO0VBQ0E7RUFDQTtFTExGO0VBQ0E7RUFJQTtFUTJGQTtBWnMzQkY7QVlwM0JFOztFQUVFO0FaczNCSjs7QVloM0JJO0VBQ0U7RUFDQTtBWm0zQk47O0Fhci9CQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWJ3L0JGO0FJei9CRTtFU0pGO0lBUUk7RWJ5L0JGO0FBQ0Y7O0Fhci9CRTtFSkpFO0VBQ0E7RUFDQTtFQUNBO0FUNi9CSjtBSXJnQ0U7RVNTQTtJSkpFO0lBQ0E7SUFDQTtJQUNBO0lJTUU7RWIrL0JKO0FBQ0Y7QWE1L0JFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWI4L0JKO0FJdmhDRTtFU2tCQTtJQVVJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RWIrL0JKO0FBQ0Y7QWE3L0JJO0VBQ0U7QWIrL0JOOztBYTEvQkE7RUFDRTtFQUNBO0FiNi9CRjs7QWExL0JBO0VKMUJJO0VBQ0E7RUFDQTtFQUNBO0VMTEY7RUFDQTtFUzhCQTtBYmlnQ0Y7QUlsakNFO0VTOENGO0lKMUJJO0lBQ0E7SUFDQTtJQUNBO0VUa2lDRjtBQUNGOztBYWxnQ0E7RUFDRTtFQUNBO0VBQ0E7QWJxZ0NGO0FJaGtDRTtFU3dERjtJQU1JO0Vic2dDRjtBQUNGO0FJcmtDRTtFU3dERjtJQVVJO0VidWdDRjtBQUNGOztBYXBnQ0E7RUpsREk7RUFDQTtFQUNBO0VBQ0E7RUxBRjtFU2tEQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FiMGdDRjs7QWF2Z0NBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWIwZ0NGOztBYXZnQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBYjBnQ0Y7O0FhdmdDQTtFQUNFO0VBQ0E7RUFDQTtBYjBnQ0Y7O0FhdmdDQTtFSmxHSTtFQUNBO0VBQ0E7RUFDQTtFSWlHRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWI2Z0NGO0FJM25DRTtFU3VHRjtJSmxHSTtJQUNBO0lBQ0E7SUFDQTtFVDBuQ0Y7QUFDRjtBYS9nQ0U7RUFDRTtBYmloQ0o7QWE5Z0NFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWJnaENKOztBYTVnQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBYitnQ0Y7QUl0cENFO0VTZ0lGO0lBVUk7SUFDQTtJQUNBO0ViZ2hDRjtBQUNGO0FhOWdDRTtFQUNFO0FiZ2hDSjtBSWhxQ0U7RVMrSUE7SUFJSTtFYmloQ0o7QUFDRjtBYTlnQ0U7RUFDRTtBYmdoQ0o7QUl4cUNFO0VTdUpBO0lBSUk7RWJpaENKO0FBQ0Y7QWE5Z0NFO0VBQ0U7QWJnaENKOztBYTVnQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWIrZ0NGO0FJNXJDRTtFU29LRjtJQVlJO0ViZ2hDRjtBQUNGOztBYTdnQ0E7RUpoS0k7RUFDQTtFQUNBO0VBQ0E7RUxBRjtFU2dLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FibWhDRjtBSTlzQ0U7RVNvTEY7SUpoS0k7SUFDQTtJQUNBO0lBQ0E7RVQ4ckNGO0FBQ0Y7O0FhcGhDQTtFQUNFO0FidWhDRjs7QWFwaENBO0VBQ0U7QWJ1aENGOztBYXBoQ0E7RUFDRTtFQUNBO0FidWhDRjtBYXJoQ0U7RUFDRTtFQUNBO0FidWhDSjtBYW5oQ0k7RUFDRTtFQUNBO0FicWhDTjs7QWMvdUNBO0VBQ0U7RUFDQTtFQUNBO0Fka3ZDRjs7QWMvdUNBO0VMa0JJO0VBQ0E7RUFDQTtFQUNBO0VLbkJGO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWRxdkNGOztBY2x2Q0E7RUFDRTtFQUNBO0VBQ0E7QWRxdkNGOztBY2x2Q0E7RVZNRTtFVUpBO0VBQ0E7RUFDQTtBZHF2Q0Y7QWNsdkNJO0VBQ0U7QWRvdkNOOztBYy91Q0E7RUFDRTtBZGt2Q0Y7O0FjL3VDQTtFQUNFO0Fka3ZDRjs7QWMvdUNBO0VBQ0U7RUFDQTtBZGt2Q0Y7QWNodkNFO0VBQ0U7QWRrdkNKO0FjOXVDSTtFQUNFO0VBQ0E7QWRndkNOOztBYzN1Q0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWQ4dUNGO0FJN3lDRTtFVXNERjtJQVlJO0lBQ0E7RWQrdUNGO0FBQ0Y7O0FldnpDQTtFTlNJO0VBQ0E7RUFDQTtFQUNBO0VMVUY7RUFDQTtFV3BCQTtFQUNBO0VBQ0E7RUFDQTtBZjh6Q0Y7QUloMENFO0VXSkY7SU5TSTtJQUNBO0lBQ0E7SUFDQTtFVCt6Q0Y7QUFDRjtBSXgwQ0U7RVdKRjtJQWFJO0VmbTBDRjtBQUNGO0FlajBDRTtFQUNFO0FmbTBDSjs7QWUvekNBO0VBQ0U7QWZrMENGOztBZ0J4MUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWhCMjFDRjtBSTMxQ0U7RVlKRjtJUFNJO0lBQ0E7SUFDQTtJQUNBO0lPSkE7RWhCKzFDRjtBQUNGOztBZ0I1MUNBO0VQSEk7RUFDQTtFQUNBO0VBQ0E7QVRtMkNKO0FJMzJDRTtFWVFGO0lQSEk7SUFDQTtJQUNBO0lBQ0E7RVQwMkNGO0FBQ0Y7QUluM0NFO0VZUUY7SUFRSTtFaEJ1MkNGO0FBQ0Y7QWdCcjJDRTtFQUNFO0FoQnUyQ0o7QUkzM0NFO0VZbUJBO0lBSUk7RWhCdzJDSjtBQUNGOztBZ0JwMkNBO0VaVkU7RUFDQTtFWVdBO0VBQ0E7QWhCdzJDRjs7QWdCcjJDQTtFWmhCRTtFQUNBO0VZaUJBO0FoQnkyQ0Y7QWdCdjJDRTtFUGxCRTtFQUNBO0VBQ0E7RUFDQTtBVDQzQ0o7O0FnQngyQ0E7RUFDRTtBaEIyMkNGLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3NzL2FwcGxpY2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc2Nzcy9fbGliL19ub3JtYWxpemUuc2NzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL19jb25maWcvY29uZmlnLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc2Nzcy9fY29uZmlnL3Jvb3Quc2NzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL19jb25maWcvZnVuY3Rpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc2Nzcy9fcGFydGlhbHMvX2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL19wYXJ0aWFscy9fZm9udHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL19tb2R1bGVzL2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL19tb2R1bGVzL3NoZWx2ZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL19wYXJ0aWFscy9fbWFyZ2lucy5zY3NzIiwid2VicGFjazovLy8uL3Njc3MvX21vZHVsZXMvc2hlbGYuc2NzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL19tb2R1bGVzL2NyYXRlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc2Nzcy9fbW9kdWxlcy9hYm91dC5zY3NzIiwid2VicGFjazovLy8uL3Njc3MvX21vZHVsZXMvcmVhZGluZy5zY3NzIiwid2VicGFjazovLy8uL3Njc3MvX21vZHVsZXMvZG9jdW1lbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9zY3NzL19tb2R1bGVzL2hlYWRlci5zY3NzIiwid2VicGFjazovLy8uL3Njc3MvX21vZHVsZXMvY3JhdGVzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9YnV0dG9uXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXJlc2V0XTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9c2VhcmNoXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5bdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuOnJvb3Qge1xuICAtLWJhc2Utc3BhY2U6IDEwcHg7XG4gIC0tY29sb3ItdGV4dDogYmxhY2s7XG4gIC0tY29sb3ItbGluazogYmxhY2s7XG4gIC0tY29sb3ItYmc6IHdoaXRlO1xuICAtLWNvbG9yLWdyZXk6ICNjY2NjY2M7XG4gIC0tY29sb3ItY29udHJpYnV0b3I6ICNlY2RjYjg7XG4gIC0tY29sb3ItYWJvdXQ6ICM1ZTQyMmE7XG59XG5cbjpyb290IHtcbiAgLS1tYXJnaW4tc206IGNhbGModmFyKC0tYmFzZS1zcGFjZSkgKiAxKTtcbiAgLS1tYXJnaW4tbWQ6IGNhbGModmFyKC0tYmFzZS1zcGFjZSkgKiAxLjUpO1xuICAtLW1hcmdpbi1sZzogY2FsYyh2YXIoLS1iYXNlLXNwYWNlKSAqIDIpO1xuICAtLW1hcmdpbi14bDogY2FsYyh2YXIoLS1iYXNlLXNwYWNlKSAqIDMpO1xuICAtLW1hcmdpbi14eGw6IGNhbGModmFyKC0tYmFzZS1zcGFjZSkgKiA2KTtcbiAgLS1tYXJnaW4teHh4bDogY2FsYyh2YXIoLS1iYXNlLXNwYWNlKSAqIDEyKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkge1xuICA6cm9vdCB7XG4gICAgLS1mcy1tYWluOiAxNHB4O1xuICAgIC0tbGgtbWFpbjogMThweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTUwMHB4KSB7XG4gIDpyb290IHtcbiAgICAtLWZzLW1haW46IDE2cHg7XG4gICAgLS1saC1tYWluOiAyMHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHtcbiAgOnJvb3Qge1xuICAgIC0tZnMtaDI6IDIwcHg7XG4gICAgLS1saC1oMjogMjRweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTUwMHB4KSB7XG4gIDpyb290IHtcbiAgICAtLWZzLWgyOiAyNHB4O1xuICAgIC0tbGgtaDI6IDI4cHg7XG4gIH1cbn1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosXG4qOmFmdGVyLFxuKjpiZWZvcmUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4qIHtcbiAgbWFyZ2luOiAwO1xuICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJrZXJuXCIgMTtcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcImtlcm5cIiAxO1xuICAtd2Via2l0LWZvbnQta2VybmluZzogbm9ybWFsO1xuICBmb250LWtlcm5pbmc6IG5vcm1hbDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbmJvZHksXG5odG1sIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG5odG1sLFxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBOZXdXZXJrZXItTWVkaXVtLCBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgTHVjaWRhIEdyYW5kZSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1tYWluKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLW1haW4pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJnKTtcbn1cblxuaHRtbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTtcbn1cblxuYSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1saW5rKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnVsLFxub2wge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG5vbCB7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbn1cblxuaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnN0cm9uZyxcbmIge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5pLFxuZW0ge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnNtYWxsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBmb250LXN0eWxlOiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogTmV3V2Vya2VyLU1lZGl1bTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9OZXdXZXJrZXItTWVkaXVtLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvTmV3V2Vya2VyLU1lZGl1bS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IGF1dG87XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE5ld1dlcmtlci1SZWd1bGFyO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL05ld1dlcmtlci1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvTmV3V2Vya2VyLVJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBhdXRvO1xufVxuLnBvcHVwIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTtcbiAgei1pbmRleDogOTk5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iZyk7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG59XG4ucG9wdXA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnNoZWx2ZXMge1xuICBtYXJnaW4tdG9wOiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoNCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG59XG5cbi5zaGVsZiB7XG4gIC0tdGV4dC1oZWlnaHQ6IGNhbGModmFyKC0tbGgtbWFpbikgKiAxMik7XG4gIC0tc2l6ZTogMTMuNXZ3O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCB2YXIoLS1jb2xvci10ZXh0KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLnNoZWxmIHtcbiAgICAtLXNpemU6IDl2dztcbiAgICBib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkIHZhcigtLWNvbG9yLXRleHQpO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLnNoZWxmIHtcbiAgICAtLXNpemU6IDYuNzV2dztcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5zaGVsZiB7XG4gICAgLS1zaXplOiA0LjV2dztcbiAgfVxufVxuLnNoZWxmOmZpcnN0LWNoaWxkIHtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLWJpZ2dlc3QtaGVpZ2h0KSAvIDEwMCAqIHZhcigtLXNpemUpKTtcbn1cblxuLnNoZWxmX19zbGlkZXNob3cge1xuICBtYXJnaW4tdG9wOiBjYWxjKDEgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvci14OiBjb250YWluO1xuICAtd2Via2l0LXNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICAtbXMtc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7XG4gIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBzY3JvbGwtcGFkZGluZy1sZWZ0OiB2YXIoLS1tYXJnaW4teGwpO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBtaW4taGVpZ2h0OiA2MHZ3O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLnNoZWxmX19zbGlkZXNob3cge1xuICAgIG1pbi1oZWlnaHQ6IDQwdnc7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuc2hlbGZfX3NsaWRlc2hvdyB7XG4gICAgbWluLWhlaWdodDogMzB2dztcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5zaGVsZl9fc2xpZGVzaG93IHtcbiAgICBtaW4taGVpZ2h0OiAyMHZ3O1xuICB9XG59XG4uc2hlbGZfX3NsaWRlc2hvdzo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2hlbGZfX3NsaWRlIHtcbiAgLS1zcDogY2FsYyh2YXIoLS1zcGFjZSkgKiAzKTtcbiAgLS1pbWFnZS1oZWlnaHQ6IGNhbGModmFyKC0taGVpZ2h0KSAvIDEwMCAqIHZhcigtLXNpemUpKTtcbiAgLS1pbWFnZS13aWR0aDogY2FsYyh2YXIoLS1pbWFnZS1oZWlnaHQpICogdmFyKC0tcmF0aW8pKTtcbiAgZmxleDogbm9uZTtcbiAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdXRsaW5lOiBub25lO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5zaGVsZl9fc2xpZGUge1xuICAgIC0tc3A6IGNhbGModmFyKC0tc3BhY2UpICogMik7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuc2hlbGZfX3NsaWRlIHtcbiAgICAtLXNwOiBjYWxjKHZhcigtLXNwYWNlKSAqIDEpO1xuICB9XG59XG4uc2hlbGZfX3NsaWRlOm5vdCg6bnRoLWxhc3QtY2hpbGQoMikpOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tc3ApO1xuICB3aWR0aDogY2FsYyh2YXIoLS1pbWFnZS13aWR0aCkgKyB2YXIoLS1zcCkpO1xufVxuLnNoZWxmX19zbGlkZTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tbWFyZ2luLW1kKTtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tc3ApO1xuICB3aWR0aDogY2FsYyh2YXIoLS1pbWFnZS13aWR0aCkgKyB2YXIoLS1tYXJnaW4tbWQpICsgdmFyKC0tc3ApKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5zaGVsZl9fc2xpZGU6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tbWFyZ2luLXhsKTtcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1pbWFnZS13aWR0aCkgKyB2YXIoLS1tYXJnaW4teGwpICsgdmFyKC0tc3ApKTtcbiAgfVxufVxuLnNoZWxmX19zbGlkZTpudGgtbGFzdC1jaGlsZCgyKSB7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLW1hcmdpbi1tZCk7XG4gIHdpZHRoOiBjYWxjKHZhcigtLWltYWdlLXdpZHRoKSArIHZhcigtLW1hcmdpbi1tZCkpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLnNoZWxmX19zbGlkZTpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tbWFyZ2luLXhsKTtcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1pbWFnZS13aWR0aCkgKyB2YXIoLS1tYXJnaW4teGwpKTtcbiAgfVxufVxuXG4uc2hlbGZfX2ltYWdlIHtcbiAgd2lkdGg6IHZhcigtLWltYWdlLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1oZWlnaHQpO1xufVxuXG4uc2hlbGZfX25hdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDMwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDUwJTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5zaGVsZl9fbmF2IHtcbiAgICB3aWR0aDogNDBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5zaGVsZl9fbmF2IHtcbiAgICB3aWR0aDogNTBweDtcbiAgfVxufVxuLnNoZWxmX19uYXYtLXByZXYge1xuICBsZWZ0OiB2YXIoLS1tYXJnaW4tbWQpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLnNoZWxmX19uYXYtLXByZXYge1xuICAgIGxlZnQ6IHZhcigtLW1hcmdpbi14bCk7XG4gIH1cbn1cbi5zaGVsZl9fbmF2LS1uZXh0IHtcbiAgcmlnaHQ6IHZhcigtLW1hcmdpbi1tZCk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAuc2hlbGZfX25hdi0tbmV4dCB7XG4gICAgcmlnaHQ6IHZhcigtLW1hcmdpbi14bCk7XG4gIH1cbn1cbi5zaGVsZl9fbmF2IHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc2hlbGZfX2NhcHRpb24ge1xuICBmb250LWZhbWlseTogQ291cmllciwgQ291cmllciBOZXcsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgaGVpZ2h0OiB2YXIoLS10ZXh0LWhlaWdodCk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiB2YXIoLS1saC1tYWluKSAwO1xuICBtYXgtd2lkdGg6IDI1dnc7XG59XG4uc2hlbGZfX3NsaWRlOm5vdCg6bGFzdC1jaGlsZCkgLnNoZWxmX19jYXB0aW9uIHtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLXNwKSAqIC0xICsgdmFyKC0tbWFyZ2luLXhsKSk7XG59XG4uc2hlbGZfX2NhcHRpb24gPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1saC1tYWluKTtcbn1cblxuLnNoZWxmX19oYW5nZXJzIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgcGFkZGluZy1yaWdodDogY2FsYyg2ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGMoNiAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiBjYWxjKDYwdncgLSA1cHgpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjZS1hKTtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2UtYik7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICBib3R0b206IDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAuc2hlbGZfX2hhbmdlcnMge1xuICAgIGhlaWdodDogY2FsYyg0MHZ3IC0gMTBweCk7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuc2hlbGZfX2hhbmdlcnMge1xuICAgIGhlaWdodDogY2FsYygzMHZ3IC0gMTBweCk7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuc2hlbGZfX2hhbmdlcnMge1xuICAgIGhlaWdodDogY2FsYygyMHZ3IC0gMTBweCk7XG4gIH1cbn1cblxuLnNoZWxmX19oYW5nZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZSk7XG59XG4uc2hlbGZfX2hhbmdlciBzdmcge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5jcmF0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyZXkpO1xuICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTtcbn1cbi5jcmF0ZS0tY29udHJpYnV0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jb250cmlidXRvcik7XG59XG5cbi5jcmF0ZV9fdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLWZzLWgyKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLWgyKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogY2FsYyh2YXIoLS12aCwgMXZoKSAqIDEwMCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tbWFyZ2luLW1kKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5jcmF0ZV9fdGl0bGUge1xuICAgIHBhZGRpbmc6IHZhcigtLW1hcmdpbi14bCk7XG4gIH1cbn1cbi5jcmF0ZV9fdGl0bGUtLWxlZnQge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODUwcHgpIHtcbiAgLmNyYXRlX190aXRsZS0tbGVmdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5jcmF0ZV9fdGl0bGUtLXJpZ2h0IHtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGVaKC05MGRlZykgdHJhbnNsYXRlWCgxMDAlKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xufVxuXG4uY3JhdGVfX2dyaWQge1xuICBwYWRkaW5nOiB2YXIoLS1tYXJnaW4tbWQpIGNhbGModmFyKC0tbGgtaDIpICsgdmFyKC0tbWFyZ2luLW1kKSAqIDMpIHZhcigtLW1hcmdpbi1tZCkgdmFyKC0tbWFyZ2luLW1kKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpO1xuICBncmlkLWNvbHVtbi1nYXA6IHZhcigtLW1hcmdpbi14bCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAuY3JhdGVfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1tYXJnaW4teGwpIGNhbGModmFyKC0tbGgtaDIpICsgdmFyKC0tbWFyZ2luLXhsKSAqIDMpIHZhcigtLW1hcmdpbi14bCkgdmFyKC0tbWFyZ2luLXhsKTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODUwcHgpIHtcbiAgLmNyYXRlX19ncmlkIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1tYXJnaW4teGwpIGNhbGModmFyKC0tbGgtaDIpICsgdmFyKC0tbWFyZ2luLXhsKSAqIDMpO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLmNyYXRlX19ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY3JhdGVfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxufVxuXG4uY3JhdGVfX3RleHQge1xuICBmb250LXNpemU6IHZhcigtLWZzLWgyKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLWgyKTtcbiAgcGFkZGluZzogdmFyKC0tbWFyZ2luLW1kKSBjYWxjKHZhcigtLWxoLWgyKSArIHZhcigtLW1hcmdpbi1tZCkgKiAzKSB2YXIoLS1tYXJnaW4tbWQpIHZhcigtLW1hcmdpbi1tZCk7XG59XG4uY3JhdGVfX3RleHQgcDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tbGgtaDIpO1xufVxuLmNyYXRlX190ZXh0IGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5jcmF0ZV9fdGV4dCB7XG4gICAgcGFkZGluZzogdmFyKC0tbWFyZ2luLXhsKSBjYWxjKHZhcigtLWxoLWgyKSArIHZhcigtLW1hcmdpbi14bCkgKiAzKSB2YXIoLS1tYXJnaW4teGwpIHZhcigtLW1hcmdpbi14bCk7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg1MHB4KSB7XG4gIC5jcmF0ZV9fdGV4dCB7XG4gICAgcGFkZGluZzogdmFyKC0tbWFyZ2luLXhsKSBjYWxjKHZhcigtLWxoLWgyKSArIHZhcigtLW1hcmdpbi14bCkgKiAzKTtcbiAgfVxufVxuXG4uY3JhdGVfX2dyaWRfX2NvbCB7XG4gIG1hcmdpbi10b3A6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygtNiAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG59XG4uY3JhdGVfX2dyaWRfX2NvbC0tMiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAuY3JhdGVfX2dyaWRfX2NvbC0tMiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5jcmF0ZV9fZ3JpZF9fY29sLS0zIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuY3JhdGVfX2dyaWRfX2NvbC0tMyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5jcmF0ZV9fZ3JpZF9fY29sLS00IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY3JhdGVfX2dyaWRfX2NvbC0tNCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLmNyYXRlX19pdGVtIHtcbiAgbWFyZ2luLXRvcDogY2FsYygwICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKDYgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1yaWdodDogY2FsYygwICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBtYXJnaW4tbGVmdDogY2FsYygwICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uY3JhdGVfX2ltYWdlIHtcbiAgbWFyZ2luLXRvcDogY2FsYygwICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKDAuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG59XG5cbi5jcmF0ZV9faXRlbV9fdGl0bGUge1xuICBmb250LWZhbWlseTogQ291cmllciwgQ291cmllciBOZXcsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC13ZWJraXQtaHlwaGVuczogYXV0bztcbiAgLW1zLWh5cGhlbnM6IGF1dG87XG4gIGh5cGhlbnM6IGF1dG87XG59XG5cbi5jcmF0ZV9fY2xvc2Uge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogdmFyKC0tbWFyZ2luLW1kKTtcbiAgcmlnaHQ6IHZhcigtLW1hcmdpbi1tZCk7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHotaW5kZXg6IDk5ODtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmaWxsOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmNyYXRlX19jbG9zZSB7XG4gICAgdG9wOiB2YXIoLS1tYXJnaW4teGwpO1xuICAgIHJpZ2h0OiB2YXIoLS1tYXJnaW4teGwpO1xuICB9XG59XG5cbi5hYm91dCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtaDIpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGgtaDIpO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYWJvdXQpO1xufVxuLmFib3V0LFxuLmFib3V0IGEge1xuICBjb2xvcjogdmFyKC0tY29sb3ItYmcpO1xufVxuXG4uYWJvdXRfX2lubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuYWJvdXRfX2lubmVyIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDMgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICB9XG59XG5cbi5hYm91dF9fc3ZnIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMS41ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKDEuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLXRvcDogY2FsYygwICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKDEuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0xLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0xLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1jb2xvci1iZyk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAuYWJvdXRfX3N2ZyB7XG4gICAgcGFkZGluZy10b3A6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygtMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygtMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdmFyKC0tY29sb3ItYmcpO1xuICB9XG59XG4uYWJvdXRfX3N2ZyBzdmcge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmFib3V0X19jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpO1xuICBncmlkLWNvbHVtbi1nYXA6IHZhcigtLW1hcmdpbi14eGwpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIC5hYm91dF9fY29udGVudCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG5cbi5hYm91dF9fY29sIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoMS41ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGMoMS41ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGMoMS41ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmFib3V0X19jb2wge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKDMgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDMgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKDMgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuYWJvdXRfX2NvbCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuLmFib3V0X19jb2w6bnRoLWNoaWxkKDEpIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWJnKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuYWJvdXRfX2NvbDpudGgtY2hpbGQoMSkge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gIH1cbn1cbi5hYm91dF9fY29sID4gZGl2Om5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1saC1oMik7XG59XG5cbi5hYm91dF9fdGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uYWJvdXRfX3RleHQgcDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tbGgtaDIpO1xufVxuLmFib3V0X190ZXh0IGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmFib3V0X19saW5rIGE6YWZ0ZXIge1xuICBjb250ZW50OiBcIiDihpLvuI5cIjtcbn1cblxuLmFib3V0X19pbWFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4uYWJvdXRfX2ltYWdlLS1zbGlkZXNob3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmFib3V0X19pbWFnZV9faXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uYWJvdXRfX2ltYWdlLS1zbGlkZXNob3cgLmFib3V0X19pbWFnZV9faXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYWJvdXRfX2ltYWdlLS1zbGlkZXNob3cgLmFib3V0X19pbWFnZV9faXRlbS5hY3RpdmUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uYWJvdXRfX2NhcHRpb24ge1xuICBtYXJnaW4tdG9wOiBjYWxjKDEgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtbWFpbik7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1tYWluKTtcbiAgZm9udC1mYW1pbHk6IENvdXJpZXIsIENvdXJpZXIgTmV3LCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFib3V0X19jYXB0aW9uIGksXG4uYWJvdXRfX2NhcHRpb24gZW0ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5hYm91dF9fY29udHJpYnV0b3I6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIixcIjtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbn1cblxuLnJlYWRpbmcge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgoMCwgMWZyKSk7XG4gIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJnKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5yZWFkaW5nIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cbn1cblxuLnJlYWRpbmdfX2NvbDpudGgtY2hpbGQoMSkge1xuICBwYWRkaW5nLXRvcDogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDEuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgcGFkZGluZy1yaWdodDogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIHBhZGRpbmctbGVmdDogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAucmVhZGluZ19fY29sOm50aC1jaGlsZCgxKSB7XG4gICAgcGFkZGluZy10b3A6IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1iZyk7XG4gIH1cbn1cbi5yZWFkaW5nX19jb2w6bnRoLWNoaWxkKDIpIHtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgei1pbmRleDogOTk5OTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5yZWFkaW5nX19jb2w6bnRoLWNoaWxkKDIpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgIHotaW5kZXg6IGluaXRpYWw7XG4gIH1cbn1cbi5yZWFkaW5nX19jb2w6bnRoLWNoaWxkKDIpLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucmVhZGluZ19fY29sX19pbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5yZWFkaW5nX190aXRsZSB7XG4gIG1hcmdpbi10b3A6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1oMik7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1oMik7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAucmVhZGluZ19fdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKDkgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgfVxufVxuXG4ucmVhZGluZ19fbGlzdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKTtcbiAgZ3JpZC1nYXA6IHZhcigtLW1hcmdpbi14bCk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NTBweCkge1xuICAucmVhZGluZ19fbGlzdCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnJlYWRpbmdfX2xpc3Qge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxufVxuXG4ucmVhZGluZ19fY2FwdGlvbiB7XG4gIG1hcmdpbi10b3A6IGNhbGMoMSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygwICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgZm9udC1mYW1pbHk6IENvdXJpZXIsIENvdXJpZXIgTmV3LCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1iZyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XG4gIC1tcy1oeXBoZW5zOiBhdXRvO1xuICBoeXBoZW5zOiBhdXRvO1xufVxuXG4ucmVhZGluZ19fc2xpZGVzaG93X193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnJlYWRpbmdfX3NsaWRlc2hvdyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnJlYWRpbmdfX3NsaWRlc2hvd19faW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5yZWFkaW5nX19zbGlkZSB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDEuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMS41ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKDEuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAucmVhZGluZ19fc2xpZGUge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKDYgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoNiAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDYgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKDYgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIH1cbn1cbi5yZWFkaW5nX19zbGlkZS5hY3RpdmUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnJlYWRpbmdfX3NsaWRlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xufVxuXG4ucmVhZGluZ19fbmF2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IHZhcigtLW1hcmdpbi1tZCk7XG4gIHotaW5kZXg6IDk5OTtcbiAgd2lkdGg6IDQwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggN3B4ICMwMDApO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggN3B4ICMwMDApO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLnJlYWRpbmdfX25hdiB7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBpbml0aWFsO1xuICAgIHdpZHRoOiA1MHB4O1xuICB9XG59XG4ucmVhZGluZ19fbmF2LS1uZXh0IHtcbiAgcmlnaHQ6IHZhcigtLW1hcmdpbi1tZCk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAucmVhZGluZ19fbmF2LS1uZXh0IHtcbiAgICByaWdodDogdmFyKC0tbWFyZ2luLXhsKTtcbiAgfVxufVxuLnJlYWRpbmdfX25hdi0tcHJldiB7XG4gIGxlZnQ6IHZhcigtLW1hcmdpbi1tZCk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAucmVhZGluZ19fbmF2LS1wcmV2IHtcbiAgICBsZWZ0OiB2YXIoLS1tYXJnaW4teGwpO1xuICB9XG59XG4ucmVhZGluZ19fbmF2IHN2ZyB7XG4gIGZpbGw6IHZhcigtLWNvbG9yLWJnKTtcbn1cblxuLnJlYWRpbmdfX2Nsb3NlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IHZhcigtLW1hcmdpbi1tZCk7XG4gIHJpZ2h0OiB2YXIoLS1tYXJnaW4tbWQpO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB6LWluZGV4OiA5OTg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmlsbDogdmFyKC0tY29sb3ItYmcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAucmVhZGluZ19fY2xvc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnJlYWRpbmdfX3NsaWRlc2hvd19fY2FwdGlvbiB7XG4gIG1hcmdpbi10b3A6IGNhbGMoMS41ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKDMgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1yaWdodDogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDEuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgZm9udC1mYW1pbHk6IENvdXJpZXIsIENvdXJpZXIgTmV3LCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1iZyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XG4gIC1tcy1oeXBoZW5zOiBhdXRvO1xuICBoeXBoZW5zOiBhdXRvO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLnJlYWRpbmdfX3NsaWRlc2hvd19fY2FwdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygwICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICB9XG59XG5cbi5yZWFkaW5nX19zdWJ0aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLnJlYWRpbmdfX3RhZ3Mge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5yZWFkaW5nX190YWcge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4ucmVhZGluZ19fdGFnIGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJnKTtcbn1cbi5yZWFkaW5nX190YWc6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiLFwiO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xufVxuXG4uZG9jdW1lbnQge1xuICBoZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApO1xuICB3aWR0aDogMTAwdnc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kb2N1bWVudF9faW5uZXIge1xuICBwYWRkaW5nLXRvcDogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygxICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDMgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIHBhZGRpbmctbGVmdDogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZG9jdW1lbnRfX2ltYWdlIHtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLmRvY3VtZW50X19jYXB0aW9uIHtcbiAgZm9udC1mYW1pbHk6IENvdXJpZXIsIENvdXJpZXIgTmV3LCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiB2YXIoLS1saC1tYWluKSAwO1xuICBtYXgtd2lkdGg6IDQwMHB4O1xufVxuLmRvY3VtZW50X19jYXB0aW9uID4gKjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tbGgtbWFpbik7XG59XG5cbi5kb2N1bWVudF9fc3VidGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5kb2N1bWVudF9fdGFncyB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLmRvY3VtZW50X190YWcge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4uZG9jdW1lbnRfX3RhZyBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uZG9jdW1lbnRfX3RhZzpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgY29udGVudDogXCIsXCI7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG59XG5cbi5kb2N1bWVudF9fY2xvc2Uge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogdmFyKC0tbWFyZ2luLW1kKTtcbiAgcmlnaHQ6IHZhcigtLW1hcmdpbi1tZCk7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHotaW5kZXg6IDk5ODtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmaWxsOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmRvY3VtZW50X19jbG9zZSB7XG4gICAgdG9wOiB2YXIoLS1tYXJnaW4teGwpO1xuICAgIHJpZ2h0OiB2YXIoLS1tYXJnaW4teGwpO1xuICB9XG59XG5cbi5oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDEuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgcGFkZGluZy1yaWdodDogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIHBhZGRpbmctbGVmdDogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtaDIpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGgtaDIpO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdyaWQtY29sdW1uLWdhcDogdmFyKC0tbWFyZ2luLXh4bCk7XG4gIGdyaWQtcm93LWdhcDogdmFyKC0tbGgtaDIpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmhlYWRlciB7XG4gICAgcGFkZGluZy10b3A6IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIC5oZWFkZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxufVxuLmhlYWRlciBhIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmhlYWRlcl9fdGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uY3JhdGVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JleSk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKTtcbiAgZ3JpZC1jb2x1bW4tZ2FwOiB2YXIoLS1tYXJnaW4teHhsKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuY3JhdGVzIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDMgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygzICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxufVxuXG4uY3JhdGVzX19jb2wge1xuICBwYWRkaW5nLXRvcDogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDEuNSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgcGFkZGluZy1yaWdodDogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIHBhZGRpbmctbGVmdDogY2FsYygxLjUgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzZweCkge1xuICAuY3JhdGVzX19jb2wge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKDMgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMyAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDMgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKDMgKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuY3JhdGVzX19jb2wge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbi5jcmF0ZXNfX2NvbDpudGgtY2hpbGQoMSkge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tY29sb3ItdGV4dCk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLmNyYXRlc19fY29sOm50aC1jaGlsZCgxKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgfVxufVxuXG4uY3JhdGVzX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtaDIpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGgtaDIpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1saC1oMik7XG59XG5cbi5jcmF0ZXNfX2l0ZW0ge1xuICBmb250LXNpemU6IHZhcigtLWZzLWgyKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLWgyKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5jcmF0ZXNfX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi10b3A6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygxICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMCAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbn1cblxuLmNyYXRlc19fbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufSIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvLyBDT05GSUdVUkFURSBET0NVTUVOVFxuXG4kZm9udHNpemU6IChcbiAgbWFpbjogKFxuICAgIHhzOiAoXG4gICAgICBmczogMTRweCxcbiAgICAgIGxoOiAxOHB4LFxuICAgICksXG4gICAgeHhsOiAoXG4gICAgICBmczogMTZweCxcbiAgICAgIGxoOiAyMHB4LFxuICAgICksXG4gICksXG4gIGgyOiAoXG4gICAgeHM6IChcbiAgICAgIGZzOiAyMHB4LFxuICAgICAgbGg6IDI0cHgsXG4gICAgKSxcbiAgICB4eGw6IChcbiAgICAgIGZzOiAyNHB4LFxuICAgICAgbGg6IDI4cHgsXG4gICAgKSxcbiAgKSxcbik7XG5cbiRtYXJnaW46IChcbiAgc206IDEsXG4gIG1kOiAxLjUsXG4gIGxnOiAyLFxuICB4bDogMyxcbiAgeHhsOiA2LFxuICB4eHhsOiAxMixcbik7XG5cbjpyb290IHtcbiAgLS1iYXNlLXNwYWNlOiAxMHB4O1xuICAtLWNvbG9yLXRleHQ6IGJsYWNrO1xuICAtLWNvbG9yLWxpbms6IGJsYWNrO1xuICAtLWNvbG9yLWJnOiB3aGl0ZTtcbiAgLS1jb2xvci1ncmV5OiAjY2NjY2NjO1xuICAtLWNvbG9yLWNvbnRyaWJ1dG9yOiAjZWNkY2I4O1xuICAtLWNvbG9yLWFib3V0OiAjNWU0MjJhO1xufVxuXG4vLyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIC8vXG5cbi8vIEZPTlRTXG5cbiRmb250czogKFxuICBtYWluOiAoXG4gICAgbmFtZTogTmV3V2Vya2VyLU1lZGl1bSxcbiAgICBmYWxsYmFjazogXCJIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgTHVjaWRhIEdyYW5kZSwgc2Fucy1zZXJpZlwiLFxuICAgIHdpdGhGaWxlOiB0cnVlLFxuICApLFxuICByZWd1bGFyOiAoXG4gICAgbmFtZTogTmV3V2Vya2VyLVJlZ3VsYXIsXG4gICAgZmFsbGJhY2s6IFwiSGVsdmV0aWNhIE5ldWUsIEhlbHZldGljYSwgQXJpYWwsIEx1Y2lkYSBHcmFuZGUsIHNhbnMtc2VyaWZcIixcbiAgICB3aXRoRmlsZTogdHJ1ZSxcbiAgKSxcbiAgbW9ubzogKFxuICAgIG5hbWU6IENvdXJpZXIsXG4gICAgZmFsbGJhY2s6IFwiQ291cmllciBOZXcsIENvdXJpZXIsIG1vbm9zcGFjZVwiLFxuICAgIHdpdGhGaWxlOiBmYWxzZSxcbiAgKSxcbik7XG5cbi8vIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gLy9cblxuLy8gQlJFQUtQT0lOVFNcblxuJGJyZWFrcG9pbnRzOiAoXG4gIHhzOiAwcHgsXG4gIHNtOiA1NzZweCxcbiAgbWQ6IDg1MHB4LFxuICBsZzogMTAwMHB4LFxuICB4bDogMTIwMHB4LFxuICB4eGw6IDE1MDBweCxcbik7XG5cbi8vIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gLy9cblxuLy8gVFJBTlNJVElPTlxuXG4kdHJhbnNpdGlvbi1wcm9wZXJ0eS1kZWZhdWx0OiBhbGw7XG4kdHJhbnNpdGlvbi1kdXJhdGlvbi1kZWZhdWx0OiAwLjNzO1xuJHRyYW5zaXRpb24tdGltaW5nLWRlZmF1bHQ6IGN1YmljLWJlemllcigwLjcsIDAsIDAuMywgMSk7XG4kdHJhbnNpdGlvbi1kZWxheS1kZWZhdWx0OiAwcztcblxuLy8gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAvL1xuXG4vLyBGUkVFIENPTkZJR1xuIiwiOnJvb3Qge1xuICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluICRtYXJnaW4ge1xuICAgIC0tbWFyZ2luLSN7JHNpemV9OiBjYWxjKHZhcigtLWJhc2Utc3BhY2UpICogI3skdmFsdWV9KTtcbiAgfVxuXG4gIEBlYWNoICRzaXplLCAkaXRlbSBpbiAkZm9udHNpemUge1xuICAgIEBlYWNoICRzY3JlZW4sICR2YWx1ZXMgaW4gJGl0ZW0ge1xuICAgICAgQGluY2x1ZGUgbXEoJHNjcmVlbikge1xuICAgICAgICBAZWFjaCAkdHlwZSwgJHZhbHVlIGluICR2YWx1ZXMge1xuICAgICAgICAgIC0tI3skdHlwZX0tI3skc2l6ZX06ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIG1xKCRtcS1icmVha3BvaW50LCAkbXEtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xuICBAaWYgbWFwLWhhcy1rZXkoJG1xLWJyZWFrcG9pbnRzLCAkbXEtYnJlYWtwb2ludCkge1xuICAgICRtcS1icmVha3BvaW50OiBtYXAtZ2V0KCRtcS1icmVha3BvaW50cywgJG1xLWJyZWFrcG9pbnQpO1xuICB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICN7JG1xLWJyZWFrcG9pbnR9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24oXG4gICRwcm9wZXJ0eTogJHRyYW5zaXRpb24tcHJvcGVydHktZGVmYXVsdCxcbiAgJGR1cmF0aW9uOiAkdHJhbnNpdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxuICAkdGltaW5nOiAkdHJhbnNpdGlvbi10aW1pbmctZGVmYXVsdCxcbiAgJGRlbGF5OiAkdHJhbnNpdGlvbi1kZWxheS1kZWZhdWx0XG4pIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogI3skcHJvcGVydHl9O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XG59XG5cbkBtaXhpbiBmcygkc2l6ZTogbWFpbikge1xuICBmb250LXNpemU6IHZhcigtLWZzLSN7JHNpemV9KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLSN7JHNpemV9KTtcbn1cblxuQG1peGluIGZvbnQoJGZvbnQ6IG1haW4pIHtcbiAgZm9udC1mYW1pbHk6IG1hcC1nZXQobWFwLWdldCgkZm9udHMsICRmb250KSwgbmFtZSksIHVucXVvdGUobWFwLWdldChtYXAtZ2V0KCRmb250cywgJGZvbnQpLCBmYWxsYmFjaykpO1xufVxuIiwiLy8gQk9SREVSLUJPWCwgUkVTRVRcblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosXG4qOmFmdGVyLFxuKjpiZWZvcmUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4qIHtcbiAgbWFyZ2luOiAwO1xuICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJrZXJuXCIgMTtcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcImtlcm5cIiAxO1xuICAtd2Via2l0LWZvbnQta2VybmluZzogbm9ybWFsO1xuICBmb250LWtlcm5pbmc6IG5vcm1hbDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbmJvZHksXG5odG1sIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4vLyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIC8vXG5cbi8vIFRZUEUgU0laRVxuXG5odG1sLFxuYm9keSB7XG4gIEBpbmNsdWRlIGZvbnQ7XG4gIEBpbmNsdWRlIGZzO1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJnKTtcbn1cblxuaHRtbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTtcbn1cblxuYSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1saW5rKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnVsLFxub2wge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG5vbCB7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbn1cblxuaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnN0cm9uZyxcbmIge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5pLFxuZW0ge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnNtYWxsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBmb250LXN0eWxlOiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4iLCIvLyAvLyBJTklUSUFURSBGT05UU1xuXG5AZWFjaCAkaSwgJGZvbnQtcHJvcGVydGllcyBpbiAkZm9udHMge1xuICBAaWYgKG1hcC1nZXQoJGZvbnQtcHJvcGVydGllcywgd2l0aEZpbGUpICE9IGZhbHNlKSB7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICBmb250LWZhbWlseTogbWFwLWdldCgkZm9udC1wcm9wZXJ0aWVzLCBuYW1lKTtcbiAgICAgIHNyYzogdXJsKFwiLi4vZm9udHMvXCIgKyBtYXAtZ2V0KCRmb250LXByb3BlcnRpZXMsIG5hbWUpICsgXCIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgICB1cmwoXCIuLi9mb250cy9cIiArIG1hcC1nZXQoJGZvbnQtcHJvcGVydGllcywgbmFtZSkgKyBcIi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LWRpc3BsYXk6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gdGV4dCB7XG4gIHAge1xuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1saC1oMik7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxuLnBvcHVwIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTtcbiAgei1pbmRleDogOTk5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iZyk7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi5zaGVsdmVzIHtcbiAgQGluY2x1ZGUgbWFyZ2luKDAgMCA0IDApO1xufVxuIiwiLy8gLy8gSU5JVElBVEUgTUFSR0lOUyBBTkQgUEFERElOR1xuXG5AbWl4aW4gcHJvcGVydHkoJHByb3BlcnR5LCAkdmFsdWVzKSB7XG4gICR0b3A6ICRwcm9wZXJ0eSArIFwiLXRvcFwiO1xuICAkYm90dG9tOiAkcHJvcGVydHkgKyBcIi1ib3R0b21cIjtcbiAgJHJpZ2h0OiAkcHJvcGVydHkgKyBcIi1yaWdodFwiO1xuICAkbGVmdDogJHByb3BlcnR5ICsgXCItbGVmdFwiO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlcykgPT0gMSB7XG4gICAgI3skdG9wfTogY2FsYygje250aCgkdmFsdWVzLCAxKX0gKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgI3skYm90dG9tfTogY2FsYygje250aCgkdmFsdWVzLCAxKX0gKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgI3skcmlnaHR9OiBjYWxjKCN7bnRoKCR2YWx1ZXMsIDEpfSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICAjeyRsZWZ0fTogY2FsYygje250aCgkdmFsdWVzLCAxKX0gKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWx1ZXMpID09IDIge1xuICAgICN7JHRvcH06IGNhbGMoI3tudGgoJHZhbHVlcywgMSl9ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgICN7JGJvdHRvbX06IGNhbGMoI3tudGgoJHZhbHVlcywgMSl9ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgICN7JHJpZ2h0fTogY2FsYygje250aCgkdmFsdWVzLCAyKX0gKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgI3skbGVmdH06IGNhbGMoI3tudGgoJHZhbHVlcywgMil9ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFsdWVzKSA9PSAzIHtcbiAgICAjeyR0b3B9OiBjYWxjKCN7bnRoKCR2YWx1ZXMsIDEpfSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICAjeyRib3R0b219OiBjYWxjKCN7bnRoKCR2YWx1ZXMsIDMpfSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICAjeyRyaWdodH06IGNhbGMoI3tudGgoJHZhbHVlcywgMil9ICogdmFyKC0tYmFzZS1zcGFjZSkpO1xuICAgICN7JGxlZnR9OiBjYWxjKCN7bnRoKCR2YWx1ZXMsIDIpfSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHVlcykgPT0gNCB7XG4gICAgI3skdG9wfTogY2FsYygje250aCgkdmFsdWVzLCAxKX0gKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgI3skYm90dG9tfTogY2FsYygje250aCgkdmFsdWVzLCAzKX0gKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gICAgI3skcmlnaHR9OiBjYWxjKCN7bnRoKCR2YWx1ZXMsIDIpfSAqIHZhcigtLWJhc2Utc3BhY2UpKTtcbiAgICAjeyRsZWZ0fTogY2FsYygje250aCgkdmFsdWVzLCA0KX0gKiB2YXIoLS1iYXNlLXNwYWNlKSk7XG4gIH1cbn1cblxuQG1peGluIHBhZGRpbmcoJHZhbHVlcykge1xuICBAaW5jbHVkZSBwcm9wZXJ0eShwYWRkaW5nLCAkdmFsdWVzKTtcbn1cblxuQG1peGluIG1hcmdpbigkdmFsdWVzKSB7XG4gIEBpbmNsdWRlIHByb3BlcnR5KG1hcmdpbiwgJHZhbHVlcyk7XG59XG4iLCIuc2hlbGYge1xuICAtLXRleHQtaGVpZ2h0OiBjYWxjKHZhcigtLWxoLW1haW4pICogMTIpO1xuICAtLXNpemU6IDEzLjV2dztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiA1cHggc29saWQgdmFyKC0tY29sb3ItdGV4dCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblxuICBAaW5jbHVkZSBtcShzbSkge1xuICAgIC0tc2l6ZTogOXZ3O1xuICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgdmFyKC0tY29sb3ItdGV4dCk7XG4gIH1cblxuICBAaW5jbHVkZSBtcShsZykge1xuICAgIC0tc2l6ZTogNi43NXZ3O1xuICB9XG5cbiAgQGluY2x1ZGUgbXEoeGwpIHtcbiAgICAtLXNpemU6IDQuNXZ3O1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWJpZ2dlc3QtaGVpZ2h0KSAvIDEwMCAqIHZhcigtLXNpemUpKTtcbiAgfVxufVxuXG4uc2hlbGZfX3NsaWRlc2hvdyB7XG4gIEBpbmNsdWRlIG1hcmdpbigxIDAgMCAwKTtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogc2Nyb2xsO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXg6IGNvbnRhaW47XG4gIC13ZWJraXQtc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7XG4gIC1tcy1zY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTtcbiAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHNjcm9sbC1wYWRkaW5nLWxlZnQ6IHZhcigtLW1hcmdpbi14bCk7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDYwdnc7XG5cbiAgQGluY2x1ZGUgbXEoc20pIHtcbiAgICBtaW4taGVpZ2h0OiA0MHZ3O1xuICB9XG5cbiAgQGluY2x1ZGUgbXEobGcpIHtcbiAgICBtaW4taGVpZ2h0OiAzMHZ3O1xuICB9XG5cbiAgQGluY2x1ZGUgbXEoeGwpIHtcbiAgICBtaW4taGVpZ2h0OiAyMHZ3O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNoZWxmX19zbGlkZSB7XG4gIC0tc3A6IGNhbGModmFyKC0tc3BhY2UpICogMyk7XG4gIC0taW1hZ2UtaGVpZ2h0OiBjYWxjKHZhcigtLWhlaWdodCkgLyAxMDAgKiB2YXIoLS1zaXplKSk7XG4gIC0taW1hZ2Utd2lkdGg6IGNhbGModmFyKC0taW1hZ2UtaGVpZ2h0KSAqIHZhcigtLXJhdGlvKSk7XG4gIGZsZXg6IG5vbmU7XG4gIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbiAgZGlzcGxheTogZmxleDtcbiAgb3V0bGluZTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgQGluY2x1ZGUgbXEoc20pIHtcbiAgICAtLXNwOiBjYWxjKHZhcigtLXNwYWNlKSAqIDIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbXEobGcpIHtcbiAgICAtLXNwOiBjYWxjKHZhcigtLXNwYWNlKSAqIDEpO1xuICB9XG5cbiAgJjpub3QoOm50aC1sYXN0LWNoaWxkKDIpKTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3ApO1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLWltYWdlLXdpZHRoKSArIHZhcigtLXNwKSk7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLW1hcmdpbi1tZCk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3ApO1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLWltYWdlLXdpZHRoKSArIHZhcigtLW1hcmdpbi1tZCkgKyB2YXIoLS1zcCkpO1xuXG4gICAgQGluY2x1ZGUgbXEoc20pIHtcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tbWFyZ2luLXhsKTtcbiAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWltYWdlLXdpZHRoKSArIHZhcigtLW1hcmdpbi14bCkgKyB2YXIoLS1zcCkpO1xuICAgIH1cbiAgfVxuXG4gICY6bnRoLWxhc3QtY2hpbGQoMikge1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLW1hcmdpbi1tZCk7XG4gICAgd2lkdGg6IGNhbGModmFyKC0taW1hZ2Utd2lkdGgpICsgdmFyKC0tbWFyZ2luLW1kKSk7XG5cbiAgICBAaW5jbHVkZSBtcShzbSkge1xuICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tbWFyZ2luLXhsKTtcbiAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWltYWdlLXdpZHRoKSArIHZhcigtLW1hcmdpbi14bCkpO1xuICAgIH1cbiAgfVxufVxuXG4uc2hlbGZfX2ltYWdlIHtcbiAgd2lkdGg6IHZhcigtLWltYWdlLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1oZWlnaHQpO1xufVxuXG4uc2hlbGZfX25hdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDMwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDUwJTtcblxuICBAaW5jbHVkZSBtcShzbSkge1xuICAgIHdpZHRoOiA0MHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbXEoeGwpIHtcbiAgICB3aWR0aDogNTBweDtcbiAgfVxuXG4gICYtLXByZXYge1xuICAgIGxlZnQ6IHZhcigtLW1hcmdpbi1tZCk7XG5cbiAgICBAaW5jbHVkZSBtcShzbSkge1xuICAgICAgbGVmdDogdmFyKC0tbWFyZ2luLXhsKTtcbiAgICB9XG4gIH1cblxuICAmLS1uZXh0IHtcbiAgICByaWdodDogdmFyKC0tbWFyZ2luLW1kKTtcblxuICAgIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgICByaWdodDogdmFyKC0tbWFyZ2luLXhsKTtcbiAgICB9XG4gIH1cblxuICBzdmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5zaGVsZl9fY2FwdGlvbiB7XG4gIEBpbmNsdWRlIGZvbnQobW9ubyk7XG4gIGhlaWdodDogdmFyKC0tdGV4dC1oZWlnaHQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogdmFyKC0tbGgtbWFpbikgMDtcbiAgbWF4LXdpZHRoOiAyNXZ3O1xuXG4gIC5zaGVsZl9fc2xpZGU6bm90KDpsYXN0LWNoaWxkKSAmIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tc3ApICogLTEgKyB2YXIoLS1tYXJnaW4teGwpKTtcbiAgfVxuXG4gICYgPiAqIHtcbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tbGgtbWFpbik7XG4gICAgfVxuICB9XG59XG5cbi5zaGVsZl9faGFuZ2VycyB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoMyA2IDAgNik7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogY2FsYyg2MHZ3IC0gNXB4KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2UtYSk7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLXNwYWNlLWIpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgYm90dG9tOiAwO1xuXG4gIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgaGVpZ2h0OiBjYWxjKDQwdncgLSAxMHB4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKGxnKSB7XG4gICAgaGVpZ2h0OiBjYWxjKDMwdncgLSAxMHB4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKHhsKSB7XG4gICAgaGVpZ2h0OiBjYWxjKDIwdncgLSAxMHB4KTtcbiAgfVxufVxuXG4uc2hlbGZfX2hhbmdlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlKTtcblxuICBzdmcge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuIiwiLmNyYXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JleSk7XG4gIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApO1xuXG4gICYtLWNvbnRyaWJ1dG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jb250cmlidXRvcik7XG4gIH1cbn1cblxuLmNyYXRlX190aXRsZSB7XG4gIEBpbmNsdWRlIGZzKGgyKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogY2FsYyh2YXIoLS12aCwgMXZoKSAqIDEwMCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tbWFyZ2luLW1kKTtcblxuICBAaW5jbHVkZSBtcShzbSkge1xuICAgIHBhZGRpbmc6IHZhcigtLW1hcmdpbi14bCk7XG4gIH1cblxuICAmLS1sZWZ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooOTBkZWcpIHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtcShtZCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgJi0tcmlnaHQge1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTkwZGVnKSB0cmFuc2xhdGVYKDEwMCUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSByaWdodDtcbiAgfVxufVxuXG4uY3JhdGVfX2dyaWQge1xuICBwYWRkaW5nOiB2YXIoLS1tYXJnaW4tbWQpIGNhbGModmFyKC0tbGgtaDIpICsgdmFyKC0tbWFyZ2luLW1kKSAqIDMpIHZhcigtLW1hcmdpbi1tZCkgdmFyKC0tbWFyZ2luLW1kKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpO1xuICBncmlkLWNvbHVtbi1nYXA6IHZhcigtLW1hcmdpbi14bCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbXEoc20pIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgcGFkZGluZzogdmFyKC0tbWFyZ2luLXhsKSBjYWxjKHZhcigtLWxoLWgyKSArIHZhcigtLW1hcmdpbi14bCkgKiAzKSB2YXIoLS1tYXJnaW4teGwpIHZhcigtLW1hcmdpbi14bCk7XG4gIH1cblxuICBAaW5jbHVkZSBtcShtZCkge1xuICAgIHBhZGRpbmc6IHZhcigtLW1hcmdpbi14bCkgY2FsYyh2YXIoLS1saC1oMikgKyB2YXIoLS1tYXJnaW4teGwpICogMyk7XG4gIH1cblxuICBAaW5jbHVkZSBtcShsZykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKHhsKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG5cbi5jcmF0ZV9fdGV4dCB7XG4gIEBpbmNsdWRlIGZzKGgyKTtcbiAgQGluY2x1ZGUgdGV4dDtcbiAgcGFkZGluZzogdmFyKC0tbWFyZ2luLW1kKSBjYWxjKHZhcigtLWxoLWgyKSArIHZhcigtLW1hcmdpbi1tZCkgKiAzKSB2YXIoLS1tYXJnaW4tbWQpIHZhcigtLW1hcmdpbi1tZCk7XG5cbiAgQGluY2x1ZGUgbXEoc20pIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1tYXJnaW4teGwpIGNhbGModmFyKC0tbGgtaDIpICsgdmFyKC0tbWFyZ2luLXhsKSAqIDMpIHZhcigtLW1hcmdpbi14bCkgdmFyKC0tbWFyZ2luLXhsKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKG1kKSB7XG4gICAgcGFkZGluZzogdmFyKC0tbWFyZ2luLXhsKSBjYWxjKHZhcigtLWxoLWgyKSArIHZhcigtLW1hcmdpbi14bCkgKiAzKTtcbiAgfVxufVxuXG4uY3JhdGVfX2dyaWRfX2NvbCB7XG4gIEBpbmNsdWRlIG1hcmdpbigwIDAgLTYgMCk7XG5cbiAgJi0tMiB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAmLS0zIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgbXEobGcpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gICYtLTQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtcSh4bCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbi5jcmF0ZV9faXRlbSB7XG4gIEBpbmNsdWRlIG1hcmdpbigwIDAgNiAwKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNyYXRlX19pbWFnZSB7XG4gIEBpbmNsdWRlIG1hcmdpbigwIDAgMC41IDApO1xufVxuXG4uY3JhdGVfX2l0ZW1fX3RpdGxlIHtcbiAgQGluY2x1ZGUgZm9udChtb25vKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC13ZWJraXQtaHlwaGVuczogYXV0bztcbiAgLW1zLWh5cGhlbnM6IGF1dG87XG4gIGh5cGhlbnM6IGF1dG87XG59XG5cbi5jcmF0ZV9fY2xvc2Uge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogdmFyKC0tbWFyZ2luLW1kKTtcbiAgcmlnaHQ6IHZhcigtLW1hcmdpbi1tZCk7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHotaW5kZXg6IDk5ODtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmaWxsOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXG4gIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgdG9wOiB2YXIoLS1tYXJnaW4teGwpO1xuICAgIHJpZ2h0OiB2YXIoLS1tYXJnaW4teGwpO1xuICB9XG59XG4iLCIuYWJvdXQge1xuICBAaW5jbHVkZSBmcyhoMik7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hYm91dCk7XG5cbiAgJixcbiAgYSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJnKTtcbiAgfVxufVxuXG4uYWJvdXRfX2lubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICBAaW5jbHVkZSBtcShsZykge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMyk7XG4gIH1cbn1cblxuLmFib3V0X19zdmcge1xuICBAaW5jbHVkZSBwYWRkaW5nKDAgMS41IDEuNSAxLjUpO1xuICBAaW5jbHVkZSBtYXJnaW4oMCAtMS41IDEuNSAtMS41KTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWJnKTtcblxuICBAaW5jbHVkZSBtcShzbSkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMCAzIDMgMyk7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDAgLTMgMyAtMyk7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHZhcigtLWNvbG9yLWJnKTtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmFib3V0X19jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpO1xuICBncmlkLWNvbHVtbi1nYXA6IHZhcigtLW1hcmdpbi14eGwpO1xuXG4gIEBpbmNsdWRlIG1xKGxnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG5cbi5hYm91dF9fY29sIHtcbiAgQGluY2x1ZGUgcGFkZGluZygxLjUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygzKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKGxnKSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICY6bnRoLWNoaWxkKDEpIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tY29sb3ItYmcpO1xuXG4gICAgQGluY2x1ZGUgbXEobGcpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgJiA+IGRpdiB7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWxoLWgyKTtcbiAgICB9XG4gIH1cbn1cblxuLmFib3V0X190aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5hYm91dF9fdGV4dCB7XG4gIEBpbmNsdWRlIHRleHQ7XG59XG5cbi5hYm91dF9fbGluayB7XG4gIGEge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXFwyMTkyXFxGRTBFXCI7XG4gICAgfVxuICB9XG59XG5cbi5hYm91dF9faW1hZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICYtLXNsaWRlc2hvdyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4uYWJvdXRfX2ltYWdlX19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAuYWJvdXRfX2ltYWdlLS1zbGlkZXNob3cgJiB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG59XG5cbi5hYm91dF9fY2FwdGlvbiB7XG4gIEBpbmNsdWRlIG1hcmdpbigxIDAgMCAwKTtcbiAgQGluY2x1ZGUgZnMobWFpbik7XG4gIEBpbmNsdWRlIGZvbnQobW9ubyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gIGksXG4gIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbn1cblxuLmFib3V0X19jb250cmlidXRvciB7XG4gICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIsXCI7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIH1cbiAgfVxufVxuIiwiLnJlYWRpbmcge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgoMCwgMWZyKSk7XG4gIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJnKTtcblxuICBAaW5jbHVkZSBtcShzbSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxufVxuXG4ucmVhZGluZ19fY29sIHtcbiAgJjpudGgtY2hpbGQoMSkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMS41KTtcblxuICAgIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDMpO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgdmFyKC0tY29sb3ItYmcpO1xuICAgIH1cbiAgfVxuXG4gICY6bnRoLWNoaWxkKDIpIHtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgICB6LWluZGV4OiA5OTk5O1xuXG4gICAgQGluY2x1ZGUgbXEoc20pIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xuICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICB6LWluZGV4OiBpbml0aWFsO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG4ucmVhZGluZ19fY29sX19pbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5yZWFkaW5nX190aXRsZSB7XG4gIEBpbmNsdWRlIG1hcmdpbigwIDAgMyAwKTtcbiAgQGluY2x1ZGUgZnMoaDIpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDAgMCA5IDApO1xuICB9XG59XG5cbi5yZWFkaW5nX19saXN0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpO1xuICBncmlkLWdhcDogdmFyKC0tbWFyZ2luLXhsKTtcblxuICBAaW5jbHVkZSBtcShtZCkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKHhsKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG5cbi5yZWFkaW5nX19jYXB0aW9uIHtcbiAgQGluY2x1ZGUgbWFyZ2luKDEgMCAwIDApO1xuICBAaW5jbHVkZSBmb250KG1vbm8pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYmcpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xuICAtbXMtaHlwaGVuczogYXV0bztcbiAgaHlwaGVuczogYXV0bztcbn1cblxuLnJlYWRpbmdfX3NsaWRlc2hvd19fd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5yZWFkaW5nX19zbGlkZXNob3cge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5yZWFkaW5nX19zbGlkZXNob3dfX2lubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucmVhZGluZ19fc2xpZGUge1xuICBAaW5jbHVkZSBwYWRkaW5nKDEuNSk7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyg2KTtcbiAgfVxuXG4gICYuYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbiAgfVxufVxuXG4ucmVhZGluZ19fbmF2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IHZhcigtLW1hcmdpbi1tZCk7XG4gIHotaW5kZXg6IDk5OTtcbiAgd2lkdGg6IDQwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggN3B4ICMwMDApO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggN3B4ICMwMDApO1xuXG4gIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBpbml0aWFsO1xuICAgIHdpZHRoOiA1MHB4O1xuICB9XG5cbiAgJi0tbmV4dCB7XG4gICAgcmlnaHQ6IHZhcigtLW1hcmdpbi1tZCk7XG5cbiAgICBAaW5jbHVkZSBtcShzbSkge1xuICAgICAgcmlnaHQ6IHZhcigtLW1hcmdpbi14bCk7XG4gICAgfVxuICB9XG5cbiAgJi0tcHJldiB7XG4gICAgbGVmdDogdmFyKC0tbWFyZ2luLW1kKTtcblxuICAgIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgICBsZWZ0OiB2YXIoLS1tYXJnaW4teGwpO1xuICAgIH1cbiAgfVxuXG4gIHN2ZyB7XG4gICAgZmlsbDogdmFyKC0tY29sb3ItYmcpO1xuICB9XG59XG5cbi5yZWFkaW5nX19jbG9zZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiB2YXIoLS1tYXJnaW4tbWQpO1xuICByaWdodDogdmFyKC0tbWFyZ2luLW1kKTtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgei1pbmRleDogOTk4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZpbGw6IHZhcigtLWNvbG9yLWJnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXG4gIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4ucmVhZGluZ19fc2xpZGVzaG93X19jYXB0aW9uIHtcbiAgQGluY2x1ZGUgbWFyZ2luKDEuNSAxLjUgMyAxLjUpO1xuICBAaW5jbHVkZSBmb250KG1vbm8pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYmcpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xuICAtbXMtaHlwaGVuczogYXV0bztcbiAgaHlwaGVuczogYXV0bztcblxuICBAaW5jbHVkZSBtcShzbSkge1xuICAgIEBpbmNsdWRlIG1hcmdpbigwIDMgMyAzKTtcbiAgfVxufVxuXG4ucmVhZGluZ19fc3VidGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5yZWFkaW5nX190YWdzIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4ucmVhZGluZ19fdGFnIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZGlzcGxheTogaW5saW5lO1xuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1iZyk7XG4gIH1cblxuICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIsXCI7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIH1cbiAgfVxufVxuIiwiLmRvY3VtZW50IHtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTtcbiAgd2lkdGg6IDEwMHZ3O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZG9jdW1lbnRfX2lubmVyIHtcbiAgQGluY2x1ZGUgcGFkZGluZygzIDMgMSAzKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmRvY3VtZW50X19pbWFnZSB7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5kb2N1bWVudF9fY2FwdGlvbiB7XG4gIEBpbmNsdWRlIGZvbnQobW9ubyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiB2YXIoLS1saC1tYWluKSAwO1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuXG4gICYgPiAqIHtcbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tbGgtbWFpbik7XG4gICAgfVxuICB9XG59XG5cbi5kb2N1bWVudF9fc3VidGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5kb2N1bWVudF9fdGFncyB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLmRvY3VtZW50X190YWcge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIsXCI7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIH1cbiAgfVxufVxuXG4uZG9jdW1lbnRfX2Nsb3NlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IHZhcigtLW1hcmdpbi1tZCk7XG4gIHJpZ2h0OiB2YXIoLS1tYXJnaW4tbWQpO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB6LWluZGV4OiA5OTg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmlsbDogdmFyKC0tY29sb3ItdGV4dCk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblxuICBAaW5jbHVkZSBtcShzbSkge1xuICAgIHRvcDogdmFyKC0tbWFyZ2luLXhsKTtcbiAgICByaWdodDogdmFyKC0tbWFyZ2luLXhsKTtcbiAgfVxufVxuIiwiLmhlYWRlciB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoMS41KTtcbiAgQGluY2x1ZGUgZnMoaDIpO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdyaWQtY29sdW1uLWdhcDogdmFyKC0tbWFyZ2luLXh4bCk7XG4gIGdyaWQtcm93LWdhcDogdmFyKC0tbGgtaDIpO1xuXG4gIEBpbmNsdWRlIG1xKHNtKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygzKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKGxnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxufVxuXG4uaGVhZGVyX190aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4iLCIuY3JhdGVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JleSk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKTtcbiAgZ3JpZC1jb2x1bW4tZ2FwOiB2YXIoLS1tYXJnaW4teHhsKTtcblxuICBAaW5jbHVkZSBtcShsZykge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMyk7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG5cbi5jcmF0ZXNfX2NvbCB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoMS41KTtcblxuICBAaW5jbHVkZSBtcShzbSkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMyk7XG4gIH1cblxuICBAaW5jbHVkZSBtcShsZykge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAmOm50aC1jaGlsZCgxKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXRleHQpO1xuXG4gICAgQGluY2x1ZGUgbXEobGcpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi5jcmF0ZXNfX3RpdGxlIHtcbiAgQGluY2x1ZGUgZnMoaDIpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1saC1oMik7XG59XG5cbi5jcmF0ZXNfX2l0ZW0ge1xuICBAaW5jbHVkZSBmcyhoMik7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMCAwIDEgMCk7XG4gIH1cbn1cblxuLmNyYXRlc19fbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/