@charset "UTF-8";
/*
 * Modified Bootstrap Reboot v5.1.1 (https://getbootstrap.com/) (removed colors and links underlining)
 * Copyright 2011-2020 The Bootstrap Authors
 * Copyright 2011-2020 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
 */
*,
*::before,
*::after {
  box-sizing: border-box;
}

@media (prefers-reduced-motion: no-preference) {
  :root {
    scroll-behavior: smooth;
  }
}
body {
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

[tabindex="-1"]:focus:not(:focus-visible) {
  outline: 0 !important;
}

hr {
  margin: 1rem 0;
  color: inherit;
  background-color: currentColor;
  border: 0;
  opacity: 0.25;
}

hr:not([size]) {
  height: 1px;
}

h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
}

h1 {
  font-size: calc(1.375rem + 1.5vw);
}

@media (min-width: 1200px) {
  h1 {
    font-size: 2.5rem;
  }
}
h2 {
  font-size: calc(1.325rem + 0.9vw);
}

@media (min-width: 1200px) {
  h2 {
    font-size: 2rem;
  }
}
h3 {
  font-size: calc(1.3rem + 0.6vw);
}

@media (min-width: 1200px) {
  h3 {
    font-size: 1.75rem;
  }
}
h4 {
  font-size: calc(1.275rem + 0.3vw);
}

p {
  margin-top: 0;
  margin-bottom: 1em;
}

abbr[title],
abbr[data-original-title] {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
  cursor: help;
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
}

address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}

ul {
  list-style: none;
}

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

ol ol,
ul ul,
ol ul,
ul ol {
  margin-bottom: 0;
}

dt {
  font-weight: 700;
}

dd {
  margin-bottom: 0.5rem;
  margin-left: 0;
}

blockquote {
  margin: 0 0 1rem;
}

b,
strong {
  font-weight: bolder;
}

small {
  font-size: 0.875em;
}

mark {
  padding: 0.2em;
  background-color: #fcf8e3;
}

sub,
sup {
  position: relative;
  font-size: 0.75em;
  line-height: 0;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

a {
  text-decoration: none;
}

a:not([href]):not([class]), a:not([href]):not([class]):hover {
  color: inherit;
  text-decoration: none;
}

pre,
code,
kbd,
samp {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
  direction: ltr;
  unicode-bidi: bidi-override;
}

pre {
  display: block;
  margin-top: 0;
  margin-bottom: 1rem;
  overflow: auto;
  font-size: 0.875em;
}

pre code {
  font-size: inherit;
  color: inherit;
  word-break: normal;
}

code {
  font-size: 0.875em;
  color: #d63384;
  word-wrap: break-word;
}

a > code {
  color: inherit;
}

kbd {
  padding: 0.2rem 0.4rem;
  font-size: 0.875em;
  color: #fff;
  background-color: #212529;
  border-radius: 0.2rem;
}

kbd kbd {
  padding: 0;
  font-size: 1em;
  font-weight: 700;
}

figure {
  margin: 0 0 1rem;
}

img,
svg {
  vertical-align: middle;
}

table {
  caption-side: bottom;
  border-collapse: collapse;
}

caption {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  color: #6c757d;
  text-align: left;
}

th {
  text-align: inherit;
  text-align: -webkit-match-parent;
}

thead,
tbody,
tfoot,
tr,
td,
th {
  border-color: inherit;
  border-style: solid;
  border-width: 0;
}

label {
  display: inline-block;
}

button {
  border-radius: 0;
}

button:focus {
  outline: 1px dotted;
  outline: 5px auto -webkit-focus-ring-color;
}

input,
button,
select,
optgroup,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

[role=button] {
  cursor: pointer;
}

select {
  word-wrap: normal;
}

[list]::-webkit-calendar-picker-indicator {
  display: none;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
  cursor: pointer;
}

::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

textarea {
  resize: vertical;
}

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

legend {
  float: left;
  width: 100%;
  padding: 0;
  margin-bottom: 0.5rem;
  font-size: calc(1.275rem + 0.3vw);
  line-height: inherit;
  white-space: normal;
}

@media (min-width: 1200px) {
  legend {
    font-size: 1.5rem;
  }
}
legend + * {
  clear: left;
}

::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field {
  padding: 0;
}

::-webkit-inner-spin-button {
  height: auto;
}

[type=search] {
  outline-offset: -2px;
  -webkit-appearance: textfield;
}

::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-color-swatch-wrapper {
  padding: 0;
}

::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}

output {
  display: inline-block;
}

iframe {
  border: 0;
}

summary {
  display: list-item;
  cursor: pointer;
}

progress {
  vertical-align: baseline;
}

[hidden] {
  display: none !important;
}

/*
.sixteen-nine {
	@include aspect-ratio(16,9);
}*/
/* Media Queries Breakpoints */
/**
* *******************
*  Usage examples
* *******************
*
//
//  use <=
*   ALWAYS use <= ( '<' with '=' character) for all breakpoints
*   when setting max-width, ex: max-width: 767px,
*
*   so max-width: 1440px  == media('<=desktop-l')
*
* ***********************************************
*
//  use >
*   ALWAYS use only > as single character for all breakpoints
*   when setting min-width, ex: min-width: 768px,
*
*   so min-width: 1025px  == media('>desktop')
*
*************************************************
*
*## EXAMPLE:
*
*   (min-width: 768px) and (max-width: 1024px)
*   =
*   media ('>tablet'), ('<=desktop')
*
//

 */
:root {
  --phone-width: 576px;
  --tablet-width: 768px;
  --desktop-width: 1112px;
  --desktop-width-sm: 1024px;
  --desktop-width-m: 1280px;
  --desktop-width-l: 1440px;
  --desktop-width-xl: 1640px;
  --desktop-width-1920: 1920px;
  --content-width: var(--desktop-width-m);
  --blog-width: 760px;
  --page-gutter: 20px;
  --grid-gutter: 24px;
  --base-transition: .3s;
  --vertical-gap: 6vmin;
}
@media (max-width: 1112px) {
  :root {
    --vertical-gap: 20px;
    --page-gutter: 15px;
    --content-width: var(--tablet-width);
  }
}
@media (min-width: 1113px) and (max-width: 1440px) {
  :root {
    --content-width: var(--desktop-width-sm);
  }
}

/* Typography */
/* Mixin origin: https://marc-ed-raffalli.github.io/2017/10/14/sass-font-face.html */
/*
@include addFontFace('Graebenbach Set 01', '../../fonts/GraebenbachSet01', ('woff2', 'woff'), (
		createFontMap('GraebenbachSet01-Regular', 400),
		createFontMap('GraebenbachSet01-Bold', 700)
));
*/
/* 1rem = 10px */
html {
  font-size: 50%;
}
@media (min-width: 1281px) {
  html {
    font-size: 58%;
  }
}
@media (min-width: 1441px) {
  html {
    font-size: 62.5%;
  }
}

body, html {
  height: 100%;
  min-height: 100%;
}

body {
  line-height: var(--base-text-line-height, 1);
  font-weight: var(--base-text-font-weight, 400);
  font-family: var(--font-family-primary);
  font-size: var(--base-text-size);
  color: var(--primary-text-color);
  background-color: var(--body-color);
}
[color-mode=dark] body {
  background-color: #222;
  color: var(--body-color);
}

a {
  color: var(--primary-link-color);
}
[color-mode=dark] a {
  color: var(--primary-link-color-alt);
}

.-colors-inverted,
.style-dark {
  color: var(--primary-text-color-alt);
  --section-title-color: var(--section-title-color-alt);
}

.wrapper {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (min-width: 1921px) {
  .wrapper {
    max-width: var(--desktop-width-1920);
    margin-inline: auto;
  }
}

.site-content {
  flex-grow: 1;
}

.site-header, .site-content, .site-footer {
  flex-shrink: 0;
}

.container-fluid,
.container,
.container-custom,
.inner-frame {
  margin-inline: auto;
  width: 100%;
}

.inner-frame,
.container,
.container-custom {
  padding-inline: var(--page-gutter);
  transition: max-width var(--base-transition);
}

.container-fluid {
  padding-inline: var(--grid-outer-margin, 2em);
}

.inner-frame,
.container {
  max-width: calc(var(--content-width) + var(--page-gutter, 20px) * 2);
}

@media (max-width: 1112px) {
  .container-custom {
    max-width: calc(var(--content-width) + var(--page-gutter, 20px) * 2);
  }
}
@media (min-width: 1113px) {
  .container-custom {
    max-width: var(--l-container-width, var(--content-width));
  }
}

.site-content {
  min-height: 400px;
}

@media (max-width: 1112px) {
  .gt, .gt-s, .gt-l {
    padding-top: var(--vertical-gap);
  }
  .gb, .gb-s, .gb-l {
    padding-bottom: var(--vertical-gap);
  }
  .mt, .mt-custom {
    margin-top: var(--vertical-gap);
  }
  .mb, .mb-custom {
    margin-bottom: var(--vertical-gap);
  }
}
@media (min-width: 1113px) {
  .gt {
    padding-top: var(--default-top-gap, var(--vertical-gap));
  }
  .gb {
    padding-bottom: var(--default-bottom-gap, var(--vertical-gap));
  }
  .gt-s {
    padding-top: calc(var(--default-top-gap) / 2);
  }
  .gb-s {
    padding-bottom: calc(var(--default-bottom-gap) / 2);
  }
  .gt-l {
    padding-top: calc(var(--default-top-gap) * 1.5);
  }
  .gb-l {
    padding-bottom: calc(var(--default-bottom-gap) * 1.5);
  }
  .mt {
    margin-top: var(--default-top-gap, var(--vertical-gap));
  }
  .mb {
    margin-bottom: var(--default-bottom-gap, var(--vertical-gap));
  }
  .mt-custom {
    margin-top: var(--margin-top);
  }
  .mb-custom {
    margin-bottom: var(--margin-bottom);
  }
}
/**** Site Header */
.site-header {
  width: 100%;
  top: 0;
  left: 0;
  transition: transform var(--base-transition), background-color var(--base-transition), box-shadow var(--base-transition);
  color: var(--header-link-color);
  z-index: 99;
}
@media (max-width: 1112px) {
  .site-header {
    max-height: var(--navbar-height);
    position: sticky;
  }
}
@media (min-width: 1113px) {
  .site-header {
    position: var(--header-sticky-type, sticky);
  }
  .admin-bar .site-header {
    top: 28px;
  }
}
.site-header__logo {
  display: flex;
  align-items: center;
}
@media (min-width: 1113px) {
  .site-header__logo {
    transition: all var(--base-transition);
    max-width: 100%;
    max-height: 150px;
  }
}
.site-header__logo img, .site-header__logo svg {
  max-width: 250px;
  max-height: 100px;
  min-width: 60px;
  color: currentColor;
  width: var(--header-logo-width);
  height: var(--header-logo-height);
  object-fit: contain;
  object-position: left center;
}
@media (max-width: 1112px) {
  .site-header__logo img, .site-header__logo svg {
    max-width: 150px;
    max-height: 40px;
  }
}
@media (min-width: 1113px) {
  .site-header__logo img, .site-header__logo svg {
    transition: all var(--base-transition);
  }
}
.site-header__inner {
  display: flex;
  justify-content: space-between;
}
.site-header__row {
  display: flex;
  justify-content: space-between;
  transition: all var(--base-transition);
  padding-block: var(--navbar-gap_v);
}
@media (max-width: 1112px) {
  .site-header__row {
    flex-direction: column;
  }
}
.site-header__col {
  display: flex;
  align-items: center;
  gap: var(--main-header-gap-between-items, 1vw);
  transition: padding var(--base-transition);
}
.site-header__col a.right img,
.site-header__col a.left img {
  max-height: 30px;
}
@media (max-width: 1112px) {
  .site-header__col {
    flex-direction: column;
    width: 100%;
  }
}
@media (min-width: 1113px) {
  .site-header__col.-left {
    justify-content: flex-start;
  }
  .site-header__col.-center {
    justify-content: center;
    text-align: center;
  }
  .site-header__col.-right {
    justify-content: flex-end;
  }
}
@media (max-width: 1112px) {
  .site-header__widget {
    width: 100%;
  }
}
.site-header__widget .c-block__btn {
  display: flex;
  align-items: center;
  gap: var(--main-header-gap-between-items);
}
.site-header .social-list {
  gap: var(--navbar-gap_h);
}
.site-header__separator {
  height: 1em;
  width: 1px;
  background: currentColor;
}

/* Header Main Row */
.site-header__main {
  --header-link-color: var(--main-header-color);
  font-weight: var(--main-header-font-weight);
  text-transform: var(--main-header-text-transform, uppercase);
  font-size: var(--main-header-font-size, 16px);
  background-color: var(--main-header-background-color);
}
.site-header__main .site-header__row {
  justify-content: space-between;
}

/* Header Top Row */
.site-header__top {
  --header-link-color: var(--top-header-color);
  background-color: var(--top-header-background-color);
  font-size: var(--smaller-text-size);
  color: var(--top-header-color);
}
.site-header__top .inner-frame {
  justify-content: space-between;
}

/* Header Bottom Row */
.site-header__bottom {
  --header-link-color: var(--bottom-header-color);
  color: var(--bottom-header-color);
  background-color: var(--bottom-header-background-color);
  transition: opacity 0.3s, transform 0.3s;
  position: relative;
  width: 100%;
}
.site-header__bottom .inner-frame {
  justify-content: center;
}

.is-sticky .site-header__main {
  background-color: var(--header-mini-bg, var(--primary-color1));
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
}
.is-sticky .site-header__main .site-header__row {
  padding-block: 1px;
}
@media (min-width: 1113px) {
  .is-sticky .site-header__logo {
    height: 50px;
    max-height: 50px;
  }
  .is-sticky .site-header__logo img, .is-sticky .site-header__logo svg {
    max-height: 50px;
  }
}
.is-sticky .site-header__top .site-header__row {
  max-height: 0;
  overflow: hidden;
  padding: 0;
}
body:not(.nav-active) .is-sticky .site-header__bottom {
  opacity: 0;
  transform: translateY(-100px);
  position: absolute;
  z-index: -1;
}
.is-sticky .nav-main__btn.-desktop {
  display: block;
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
}

@media (max-width: 1112px) {
  .navbar-mobile {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px var(--page-gutter);
    height: var(--navbar-height);
    background-color: var(--header-mobile-bg);
  }
  .navbar-mobile a {
    color: var(--link-color);
  }
  .navbar-mobile__inner {
    top: var(--navbar-height);
    background-color: var(--header-mobile-bg);
    width: 100%;
    height: 100%;
    right: 0;
    position: fixed;
    opacity: 1;
    max-height: 0;
    overflow: hidden;
    pointer-events: none;
    transition: all 0.3s;
  }
  .nav-active .navbar-mobile__inner {
    opacity: 1;
    max-height: 100%;
    pointer-events: auto;
    overflow-y: auto;
    padding: 15px var(--page-gutter);
  }
  .navbar-mobile__inner .site-header__widget {
    padding-bottom: 5px;
  }
  .navbar-mobile .nav-main__links a {
    display: block;
  }
  .navbar-mobile .nav-main__links > .menu-item > a, .navbar-mobile .nav-main__links > .menu-item .plain-menu-item {
    padding: var(--link-gap) 0;
    display: inline-block;
    font-size: var(--link-size-l1);
    color: var(--link-color);
  }
  .navbar-mobile .nav-main__links .menu-item-has-children > a {
    position: relative;
  }
  .navbar-mobile .nav-main__links .menu-item-has-children > a:after {
    content: "";
    position: absolute;
    right: -25px;
    background-image: url("data:image/svg+xml,%3Csvg width='14' height='8' viewBox='0 0 14 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m7 0 7 6.4777L12.355 8 7 3.0553 1.645 8 0 6.4777 7 0Z' fill='%23fff'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 50% 50%;
    width: 14px;
    height: 14px;
    top: 50%;
    transform: rotate(180deg) translateY(-50%);
    transform-origin: center top;
    transition: transform 0.3s;
  }
  .navbar-mobile .nav-main__links .menu-item-has-children.is-toggled > a:after {
    transform: rotate(0) translateY(-50%);
  }
  .navbar-mobile .sub-menu {
    padding-top: 5px;
    padding-left: 20px;
  }
  .navbar-mobile .sub-menu a {
    padding: 5px 0;
    font-size: var(--link-size-l2);
    color: var(--link-color);
  }
  .navbar-mobile .sub-menu .current-menu-item a {
    color: var(--secondary-color1);
  }
  .navbar-mobile .btn-custom, .navbar-mobile .links-list {
    margin: var(--link-gap) 0;
  }
  .nav-active, .nav-active .site-content {
    overflow: hidden;
  }
  .nav-active .site-content {
    pointer-events: none;
  }
}
.page-template-template-simple-text .site-header__main,
.single-post .site-header__main,
.error404 .site-header__main,
.search .site-header__main {
  background-color: var(--header-mini-bg, var(--primary-color1));
}
@media (min-width: 1113px) {
  .page-template-template-simple-text .site-content,
.single-post .site-content,
.error404 .site-content,
.search .site-content {
    padding-top: var(--navbar-height);
  }
}

@media (max-width: 1112px) {
  .site-header__top {
    display: none;
  }
}

@media (max-width: 1112px) {
  .site-header__bottom {
    display: none;
  }
}

@media (max-width: 1112px) {
  .site-header__main {
    display: none;
  }
}

@media (max-width: 1112px) {
  .nav-main__btn.-desktop {
    display: none;
  }
}
@media (min-width: 1113px) {
  .nav-main__btn,
.navbar-mobile {
    display: none;
  }
}
/* Navbar Main */
@media (min-width: 1113px) {
  .nav-main__links {
    display: flex;
    justify-content: flex-end;
  }
  .nav-main__links > .menu-item {
    position: relative;
    display: flex;
    align-items: center;
  }
  .nav-main__links > .menu-item > a,
.nav-main__links > .menu-item .plain-menu-item {
    display: block;
    white-space: nowrap;
    padding: 0 calc(var(--main-header-gap-between-items, 1vw) / 2);
    line-height: var(--navbar-link-height);
    color: currentColor;
    transition: color var(--base-transition), font-size var(--base-transition);
  }
  .nav-main__links > .menu-item > a:hover,
.nav-main__links > .menu-item .plain-menu-item:hover {
    color: var(--header-link-color-hover, var(--primary-color2));
  }
}
.nav-main .current-menu-item > a {
  color: var(--header-link-color-hover, var(--primary-color2));
}

/* Navbar Secondary */
@media (min-width: 1113px) {
  .nav-secondary__links {
    display: flex;
    justify-content: flex-end;
    gap: var(--navbar-gap_h, 1vw);
  }
}
.nav-secondary a {
  display: block;
  white-space: nowrap;
  color: var(--header-link-color);
}
.nav-secondary a:hover {
  text-decoration: underline;
}

.nav-main .sub-menu {
  text-align: left;
}
@media (min-width: 1113px) {
  .nav-main .sub-menu {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    top: 100%;
    transform: translate(-50%, -10px);
    left: 50%;
    padding: var(--dropdown-padding);
    min-width: var(--dropdown-width);
    z-index: 10;
    transition: opacity 0.3s, transform 0.3s;
  }
  .nav-main .sub-menu a {
    color: var(--dropdown-color);
    display: flex;
    width: 100%;
    align-items: center;
    font-weight: var(--dropdown-font-weight);
    font-size: var(--dropdown-font-size);
  }
  .nav-main .sub-menu a:hover {
    color: var(--dropdown-color-active);
  }
  .nav-main .sub-menu .current-menu-item a {
    color: var(--dropdown-color-active);
  }
  .nav-main .sub-menu .menu-item-content {
    min-width: 250px;
  }
  .nav-main .sub-menu .menu-item-title {
    display: block;
    margin-bottom: 5px;
  }
  .nav-main .sub-menu .menu-item-caption {
    font-weight: 400;
    color: var(--primary-color1);
  }
  .nav-main .sub-menu .menu-item-img-wrapper {
    margin-right: 10px;
    min-width: 30px;
    max-width: 150px;
  }
  .nav-main .sub-menu .menu-item-img-wrapper img, .nav-main .sub-menu .menu-item-img-wrapper svg {
    max-width: 100%;
    height: auto;
  }
  .nav-main .sub-menu .menu-item:not(:last-child) {
    margin-bottom: 2px;
  }
  .nav-main .sub-menu .menu-item a {
    padding: 5px;
    transition: all 0.3s;
  }
  .nav-main .sub-menu:before {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 9px 14px 9px;
    border-color: transparent transparent var(--dropdown-bg) transparent;
    position: absolute;
    top: 1px;
    left: 50%;
    transform: translateX(-50%);
  }
  .nav-main .sub-menu:after {
    content: "";
    position: absolute;
    background-color: var(--dropdown-bg);
    box-shadow: 0 4px 34px rgba(0, 7, 63, 0.1);
    border-radius: 10px;
    height: 100%;
    width: 100%;
    left: 0;
    top: 15px;
    bottom: 0;
    z-index: -1;
  }
}
@media (max-width: 1112px) {
  .nav-main .sub-menu .menu-item-img-wrapper,
.nav-main .sub-menu .menu-item-caption {
    display: none;
  }
}
@media (min-width: 1113px) {
  .nav-main .menu-item-has-children {
    padding-right: 5px;
    margin-right: 10px;
  }
  .nav-main .menu-item-has-children:before {
    content: "";
    position: absolute;
    width: 9px;
    height: 9px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    right: 0;
    top: 50%;
    transform: translateY(-50%) rotate(135deg);
    transition: transform 0.1s ease-in;
  }
  .nav-main .menu-item-has-children:hover > .sub-menu {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
  }
  .nav-main .menu-item-has-children:hover:before {
    transform: translateY(-20%) rotate(-45deg);
  }
}

.nav-main__btn {
  all: unset;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 30px;
  transform: translateY(-50%);
  top: 50%;
  border-radius: 3px;
  color: var(--burger-color);
  background-color: var(--burger-bg);
  padding: 2px 5px;
  cursor: pointer;
  text-align: center;
  position: absolute;
  right: 15px;
  transition: all 0.3s;
  z-index: 10;
}

.burger-icon {
  width: var(--burger-width);
  height: 20px;
  cursor: pointer;
  transition: box-shadow 0.4s ease;
  backface-visibility: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.burger-icon > span {
  position: relative;
  flex: none;
  width: 100%;
  height: var(--burger-segment-height);
  background: currentColor;
  transition: all 0.4s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--burger-segment-radius);
}
.burger-icon > span:before, .burger-icon > span:after {
  content: "";
  position: absolute;
  z-index: 1;
  left: 0;
  width: 100%;
  height: var(--burger-segment-height);
  border-radius: var(--burger-segment-radius);
  background: inherit;
  transition: all 0.4s ease;
}
.burger-icon > span:before {
  top: calc(var(--burger-segment-gap) * -1);
}
.burger-icon > span:after {
  top: var(--burger-segment-gap);
}
.is-active .burger-icon > span {
  transform: rotate(135deg);
}
.is-active .burger-icon > span:before, .is-active .burger-icon > span:after {
  top: 0;
  transform: rotate(90deg);
  width: 100%;
}
.is-active .burger-icon > span:after {
  opacity: 0;
}

.site-search {
  display: flex;
  align-items: center;
  flex-direction: row-reverse;
  position: relative;
  height: var(--search-size);
  width: var(--search-size);
}
.site-search.-full {
  width: auto;
}
.site-search__toggle {
  position: absolute;
  right: 5px;
  top: 0;
  height: var(--search-size);
  width: var(--search-size);
  background-color: var(--search-btn-bg);
  border-radius: var(--search-btn-radius);
  background-repeat: no-repeat;
  background-position: 50% 50%;
  display: flex;
  padding: 5px;
  border: none;
  outline-color: transparent !important;
  z-index: 10;
  transition: transform 0.3s;
}
.site-search__toggle.is-active {
  pointer-events: none;
}
.site-search__toggle:hover {
  --header-link-color: var(--header-link-color-hover);
}
.-full .site-search__toggle {
  width: auto;
  pointer-events: none;
}
.site-search__icon {
  height: 100%;
  width: 100%;
  margin: auto;
  fill: var(--header-link-color);
  pointer-events: none;
}
.site-search [type=submit] {
  right: 0;
  border: none;
  background: transparent;
  position: absolute;
  font-size: 0;
  height: var(--search-height);
  width: 30px;
}
.site-search [type=submit]:focus {
  outline: none;
}
.-toggle .site-search [type=submit], .-full .site-search [type=submit] {
  background: transparent;
  position: absolute;
  font-size: 0;
  height: 30px;
  width: 30px;
}
.-popup .site-search [type=submit] {
  height: 50px;
}

.search-field {
  padding: 5px 10px;
  height: var(--search-height);
  border: none;
  background: #fff;
  margin: 0;
  border-radius: var(--search-radius);
  font-size: 16px;
  width: var(--search-width);
}
.-toggle .search-field {
  transform: translate(0, -100%);
  max-width: 0;
  transition: all 0.2s;
}
.-popup .search-field {
  padding: 5px 10px;
  height: 50px;
  text-align: center;
  font-size: 2.2rem;
}
.search-field:focus {
  outline: none;
}

/**
 * Search Overlay
 */
.search-overlay {
  position: absolute;
}
.-toggle .search-overlay {
  max-width: 0;
  overflow: hidden;
  transition: all 0.3s;
}
.-toggle .search-overlay.is-shown {
  max-width: calc(var(--search-width) + 20px);
  transform: translateY(40px);
  overflow: visible;
  background-color: var(--search-outer-bg);
  padding: var(--search-outer-gap);
  border-radius: var(--search-radius) 0 var(--search-radius) var(--search-radius);
  border: 1px solid var(--search-outer-border);
  z-index: 10;
}
.-toggle .search-overlay.is-shown .search-field {
  transform: translate(0);
  max-width: var(--search-width);
}
.-toggle .search-overlay.is-shown + .site-search__toggle {
  transform: translateY(40px);
  pointer-events: none;
  color: var(--primary-color1);
}
.-toggle .search-overlay.is-shown .search-overlay__close {
  display: flex;
}
.-toggle .search-overlay__close {
  transform: translateY(-50px);
  top: 14px;
  background: var(--search-outer-bg);
  border: 1px solid var(--search-outer-border);
  border-bottom: none;
  height: 36px;
  width: 38px;
  border-radius: 20px 20px 0 0;
  position: absolute;
  right: 0;
  display: none;
  align-items: center;
  justify-content: center;
  color: #fff;
  cursor: pointer;
  z-index: 1000;
}
.-full .search-overlay {
  position: relative;
}
.-full .search-overlay__close {
  display: none;
}
.-popup .search-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  z-index: 1010;
}
.-popup .search-overlay:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
  background: rgba(0, 0, 0, 0.5);
  pointer-events: none;
  transition: all 0.3s;
  z-index: -1;
}
.-popup .search-overlay.is-hidden {
  display: none;
}
.-popup .search-overlay form {
  position: absolute;
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
  max-width: 400px;
}
.-popup .search-overlay:not(.is-hidden) {
  border: 1px solid var(--search-outer-border);
}
.-popup .search-overlay:not(.is-hidden):after {
  animation: overlay-appear 0.3s cubic-bezier(0.55, 0.06, 0.68, 0.19) forwards;
}
.-popup .search-overlay__close {
  position: fixed;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 40px;
  right: 20px;
  background-color: #fff;
  border: 1px solid #aaa;
  color: #aaa;
  cursor: pointer;
  z-index: 1000;
}

@keyframes overlay-appear {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.links-list {
  display: flex;
  align-items: center;
}
.links-list__item {
  white-space: nowrap;
  display: flex;
  align-items: center;
}
.-left .links-list__item:not(:last-child) {
  margin-right: 10px;
}
.-right .links-list__item:not(:first-child) {
  margin-left: 10px;
}
.links-list__btn {
  white-space: nowrap;
}
.links-list img, .links-list svg {
  margin: 0 5px;
  max-width: 20px;
}

/* Header */
:root {
  --navbar-height: 130px;
}
@media (max-width: 1112px) {
  :root {
    --navbar-height: 70px;
  }
}

.site-header {
  --navbar-gap_v: 25px;
  --navbar-gap_h: 1vw;
  --navbar-link-height: 30px;
  --header-link-color: var(--main-header-color);
  --header-link-color-hover: var(--secondary-color3);
  --header-logo-width: 100%;
  --header-logo-height: 80px;
  --dropdown-bg: #fff;
  --dropdown-color: var(--primary-color3);
  --dropdown-color-active: var(--secondary-color3);
  --dropdown-font-size: 16px;
  --dropdown-font-weight: 700;
  --dropdown-padding: 30px 30px 0;
  --dropdown-width: calc(100% + 30px);
  --content-width: var(--desktop-width-m);
}
.site-header .site-header__main .site-header__col.-center {
  justify-content: flex-start;
}
.site-header .site-header__main .links-list a {
  color: var(--main-header-color);
}
.site-header .site-header__main .links-list a:hover {
  color: var(--secondary-color3);
}
.site-header .site-header__main-wrap {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-gap: 3.3vw;
  padding-block: var(--navbar-gap_v);
  transition: all var(--base-transition);
}
.site-header .site-header__main-wrap .nav-main .current-menu-ancestor > .plain-menu-item, .site-header .site-header__main-wrap .nav-main .current-menu-ancestor > a,
.site-header .site-header__main-wrap .nav-main .current-menu-item > .plain-menu-item,
.site-header .site-header__main-wrap .nav-main .current-menu-item > a {
  color: var(--secondary-color3);
}
.site-header .site-header__main-wrap .nav-main .sub-menu {
  top: 100%;
  left: 0;
  transform: translateY(50px);
}
.site-header .site-header__main-wrap .nav-main .sub-menu:before {
  display: none;
}
.site-header .site-header__main-wrap .nav-main .sub-menu:after {
  border-radius: 20px;
  top: 10px;
  height: 100%;
}
.site-header .site-header__main-wrap .nav-main .plain-menu-item {
  cursor: default;
}
.site-header .site-header__main-wrap .nav-main .menu-item {
  margin-right: 2.3vw;
}
.site-header .site-header__main-wrap .nav-main .menu-item a {
  white-space: nowrap;
}
.site-header .site-header__main-wrap .nav-main .menu-item-has-children {
  padding-right: 20px;
  overflow: hidden;
}
.site-header .site-header__main-wrap .nav-main .menu-item-has-children:before {
  top: 45%;
  right: 2px;
  width: 12px;
  height: 12px;
  border-width: 3px;
  color: var(--secondary-color3);
}
.site-header .site-header__main-wrap .nav-main .menu-item-has-children:after {
  content: "";
  position: absolute;
  z-index: 99;
  top: calc(100% + 0px);
  right: 0;
  width: 23px;
  height: 23px;
  transform: translate(25%, 50px);
  background: #fff;
  border-radius: 2px;
  opacity: 0;
  transition: opacity 0.3s, transform 0.3s;
}
.site-header .site-header__main-wrap .nav-main .menu-item-has-children:hover {
  overflow: visible;
}
.site-header .site-header__main-wrap .nav-main .menu-item-has-children:hover:after {
  transform: translate(25%, 0) rotate(45deg);
  opacity: 1;
}
.site-header .site-header__main-wrap .nav-main .menu-item-has-children:hover > .sub-menu {
  transform: translateY(0);
}
.site-header.is-sticky .site-header__main {
  box-shadow: none;
}
.site-header.is-sticky .site-header__main-outerwrap {
  background: #fff;
  box-shadow: 0px 10px 20px rgba(61, 175, 201, 0.1);
  border-radius: 0px 0px 20px 20px;
}
.site-header.is-sticky .site-header__main-wrap {
  padding-block: 15px;
}

.navbar-mobile {
  --burger-width: 27px;
  --burger-segment-height: 4px;
  --burger-segment-gap: 10px;
  --burger-segment-radius: 5px;
  --burger-color: var(--primary-color3);
  --burger-bg: transparent;
  --header-mobile-bg: #fff;
  --link-size-l1: 22px;
  --link-size-l2: 20px;
  --link-color: var(--primary-color2);
  --link-gap: 10px;
  background: transparent;
}
.site-header.is-sticky .navbar-mobile {
  background: var(--header-mobile-bg);
}
.navbar-mobile__inner .site-header__widget {
  padding-bottom: 0;
}
.navbar-mobile__inner .site-header__widget ~ .site-header__widget {
  margin-top: 20px;
}
.navbar-mobile .nav-main__btn:focus {
  outline: 2px auto transparent;
}
.navbar-mobile .links-list,
.navbar-mobile .nav-main__links {
  display: block;
  margin: 0;
  color: var(--primary-color2);
  font-weight: 700;
}
.navbar-mobile .links-list > li,
.navbar-mobile .nav-main__links > li {
  position: relative;
  font-size: var(--link-size-l1);
}
.navbar-mobile .links-list > li:after,
.navbar-mobile .nav-main__links > li:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  opacity: 0.2;
}
.navbar-mobile .links-list .current-menu-ancestor > .plain-menu-item, .navbar-mobile .links-list .current-menu-ancestor > a,
.navbar-mobile .links-list .current-menu-item > .plain-menu-item,
.navbar-mobile .links-list .current-menu-item > a,
.navbar-mobile .nav-main__links .current-menu-ancestor > .plain-menu-item,
.navbar-mobile .nav-main__links .current-menu-ancestor > a,
.navbar-mobile .nav-main__links .current-menu-item > .plain-menu-item,
.navbar-mobile .nav-main__links .current-menu-item > a {
  color: var(--secondary-color3);
}
.navbar-mobile .links-list .menu-item-has-children:before,
.navbar-mobile .nav-main__links .menu-item-has-children:before {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  border-top: 3px solid currentColor;
  border-right: 3px solid currentColor;
  right: 0;
  top: 0.9em;
  transform: rotate(135deg);
  transition: transform 0.1s ease-in;
  color: var(--secondary-color3);
}
.navbar-mobile .links-list .menu-item-has-children.is-toggled:before,
.navbar-mobile .nav-main__links .menu-item-has-children.is-toggled:before {
  transform: rotate(-45deg);
}
.navbar-mobile .links-list .sub-menu,
.navbar-mobile .nav-main__links .sub-menu {
  padding-top: 0;
  color: var(--primary-color3);
}
.navbar-mobile .links-list .sub-menu a,
.navbar-mobile .nav-main__links .sub-menu a {
  padding: var(--link-gap) 0;
  color: var(--primary-color3);
}
.navbar-mobile .links-list .sub-menu > li,
.navbar-mobile .nav-main__links .sub-menu > li {
  position: relative;
}
.navbar-mobile .links-list .sub-menu > li:before,
.navbar-mobile .nav-main__links .sub-menu > li:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  opacity: 0.2;
}
.navbar-mobile .links-list .sub-menu .current-menu-ancestor > .plain-menu-item, .navbar-mobile .links-list .sub-menu .current-menu-ancestor > a,
.navbar-mobile .links-list .sub-menu .current-menu-item > .plain-menu-item,
.navbar-mobile .links-list .sub-menu .current-menu-item > a,
.navbar-mobile .nav-main__links .sub-menu .current-menu-ancestor > .plain-menu-item,
.navbar-mobile .nav-main__links .sub-menu .current-menu-ancestor > a,
.navbar-mobile .nav-main__links .sub-menu .current-menu-item > .plain-menu-item,
.navbar-mobile .nav-main__links .sub-menu .current-menu-item > a {
  color: var(--secondary-color3);
}
.navbar-mobile .links-list__item {
  display: list-item;
}
.navbar-mobile .links-list__item a {
  display: block;
  padding: var(--link-gap) 0;
}
.navbar-mobile .links-list__item .c-btn__txt {
  padding: 0;
}
.navbar-mobile .c-btn, .navbar-mobile .wpcf7-submit,
.navbar-mobile .gform_button,
.navbar-mobile .gform-button {
  width: 100%;
  justify-content: center;
}

/**** End Header */
/* Above the fold modules */
/**
 ####################
 #   Module: BANNERS
 ####################
 */
/* Module Core */
/**
 ################
 #   Module BANNERS: Core
 ################
 */
.m-banner {
  width: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  display: flex;
  /**
   ***************
   **  Variations
   ***************
   *  .m-banner--small, --medium, --full
   */
}
.m-banner .l-gt-custom {
  --v-gap-top: var(--l-gt-padding) ;
}
.m-banner .l-gb-custom {
  --v-gap-bot: var(--l-gb-padding) ;
}
.m-banner .l-gt-d {
  --v-gap-top: 5%;
}
.m-banner .l-gb-d {
  --v-gap-bot: 5%;
}
.m-banner__container {
  position: relative;
  min-height: var(--bannerHeight, auto);
  padding-left: 0;
  padding-right: 0;
}
@media (max-width: 1112px) {
  .m-banner__container {
    min-height: 30vh;
    overflow: hidden;
  }
  .m-banner__container .m-banner__inner {
    height: 100%;
  }
}
.m-banner__inner {
  display: flex;
}
@media (min-width: 1113px) {
  .m-banner__inner {
    min-height: 100%;
  }
}
.m-banner__inner.flex-center .l-banner {
  justify-content: center;
}
.m-banner__inner.flex-center .c-block__btn {
  text-align: center;
}
.m-banner__inner.flex-right .l-banner {
  justify-content: flex-end;
}
.m-banner__media {
  position: absolute;
  inset: 0;
}
@media (min-width: 767px) {
  .m-banner__media.bg-r-50 {
    width: 50%;
    left: auto;
  }
  .m-banner__media.bg-r-50 img {
    background-size: contain;
  }
  .m-banner__media.bg-l-50 {
    width: 50%;
    right: auto;
  }
  .m-banner__media.bg-l-50 img {
    background-size: contain;
  }
}
.m-banner__media img, .m-banner__media video, .m-banner__media iframe {
  object-fit: cover;
  position: absolute;
  height: 100%;
  width: 100%;
}
.fixed-header.single-product .m-banner {
  max-height: 200px;
  overflow: hidden;
  margin-bottom: 30px;
}
@media (min-width: 1112px) {
  .m-banner--blog {
    --bannerHeight: var(--banner-height--blog, 420px);
    text-align: center;
  }
  .m-banner--small {
    --bannerHeight: var(--banner-height--small, 300px);
  }
  .m-banner--medium {
    --bannerHeight: var(--banner-height--medium, 450px);
  }
  .m-banner--full .m-banner__container {
    --bannerHeight: calc(var(--banner-height--full, 100vh) - var(--navbar-height));
    max-height: 960px;
    height: var(--bannerHeight);
  }
  .static-header .m-banner--full .m-banner__container {
    --bannerHeight: var(--banner-height--full, 100vh);
  }
}

/* Base Layout Structure */
/**
 ################
 #   Module BANNERS: Base Layout
 ################
 */
.l-banner {
  display: flex;
  flex-direction: row;
  width: 100%;
  position: relative;
  z-index: 2;
  gap: 20px;
  padding-top: var(--v-gap-top, 0);
  padding-bottom: var(--v-gap-bot, 0);
}
@media (max-width: 767px) {
  .l-banner {
    justify-content: center;
    text-align: center;
    flex-direction: column;
  }
}
.l-banner__media {
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (min-width: 1113px) {
  .l-banner__media {
    flex: 1 1 auto;
  }
}
.l-banner__media .c-image {
  height: 100%;
  width: 100%;
}
.l-banner__text {
  position: relative;
  color: var(--primary-text-color-alt);
}
.style-light .l-banner__text {
  color: var(--primary-text-color);
}
@media (max-width: 1112px) {
  .l-banner__text {
    justify-content: center;
  }
}
@media (min-width: 1113px) {
  .l-banner__text {
    display: flex;
    align-items: center;
    max-width: var(--columns-ratio);
    flex: 0 0 var(--columns-ratio);
  }
  .is-vertical .l-banner__text {
    flex: auto;
  }
}
.l-banner__text .c-block__body {
  width: 100%;
}
.order-reverse .l-banner {
  flex-direction: row-reverse;
}
.is-vertical .l-banner {
  flex-direction: column;
  align-items: center;
}
.is-vertical.order-reverse .l-banner {
  flex-direction: column-reverse;
}

.scroll-down {
  position: absolute;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-size: 16px;
  padding-top: 15px;
  z-index: 3;
}
.-colors-inverted .scroll-down, .style-dark .scroll-down {
  color: #fff;
}
.scroll-down.sd-left {
  left: 0;
}
@media (min-width: 1441px) {
  .scroll-down.sd-left {
    left: 15px;
  }
}
.scroll-down.sd-right {
  right: 0;
}
@media (min-width: 1441px) {
  .scroll-down.sd-right {
    right: 15px;
  }
}
.scroll-down.sd-left, .scroll-down.sd-right {
  display: flex;
  flex-direction: column;
  align-items: center;
  top: 50%;
}
.scroll-down.sd-left .scroll-down__txt, .scroll-down.sd-right .scroll-down__txt {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}
.scroll-down.sd-left .scroll-down__ico, .scroll-down.sd-right .scroll-down__ico {
  margin: 20px 0;
}
@media (max-width: 1112px) {
  .scroll-down.sd-left, .scroll-down.sd-right {
    display: none;
  }
}
.scroll-down.sd-center {
  left: 50%;
  transform: translateX(-50%);
  bottom: 50px;
  display: flex;
  flex-direction: column-reverse;
}
.scroll-down.sd-center img {
  display: block;
  margin: 10px auto;
}
@media (max-width: 1112px) {
  .scroll-down {
    display: none;
  }
}

/* Heading Component */ /**
 * HEADING Module
 *
 * Standalone heading selectors, title, pre/sub-title
 *
 */
.-h1, .is-wysiwyg h1 {
  line-height: var(--h1-line-height, 1);
  font-weight: var(--h1-font-weight, 600);
  font-family: var(--h1-font);
  margin-bottom: var(--h1-margin-bottom, 0.5em);
  text-transform: var(--h1-text-transform);
  letter-spacing: var(--h1-letter-spacing, 0);
  font-size: clamp(calc(var(--h1-font-size-mobile) * 1.25), var(--h-clamp-formula), var(--h1-font-size));
  color: var(--main-title-color);
}
.-colors-inverted .-h1, .style-dark .-h1, .-colors-inverted .is-wysiwyg h1, .style-dark .is-wysiwyg h1 {
  color: var(--main-title-color-alt);
}

.-h2, .is-wysiwyg h2 {
  line-height: var(--h2-line-height, 1);
  font-weight: var(--h2-font-weight, 600);
  font-family: var(--h2-font);
  text-transform: var(--h2-text-transform);
  letter-spacing: var(--h2-letter-spacing, 0);
  font-size: clamp(calc(var(--h2-font-size-mobile) * 1.25), var(--h-clamp-formula), var(--h2-font-size));
  margin-bottom: var(--h2-margin-bottom, 0.5em);
}

.-h3, .is-wysiwyg h3 {
  line-height: var(--h3-line-height, 1);
  font-weight: var(--h3-font-weight, 600);
  font-family: var(--h3-font);
  text-transform: var(--h3-text-transform);
  letter-spacing: var(--h3-letter-spacing, 0);
  font-size: clamp(calc(var(--h3-font-size-mobile) * 1.25), var(--h-clamp-formula), var(--h3-font-size));
  margin-bottom: var(--h3-margin-bottom, 0.5em);
}

.-h4, .is-wysiwyg h4 {
  line-height: var(--h4-line-height, 1);
  font-weight: var(--h4-font-weight, 600);
  font-family: var(--h4-font);
  text-transform: var(--h4-text-transform);
  letter-spacing: var(--h4-letter-spacing, 0);
  font-size: clamp(calc(var(--h4-font-size-mobile) * 1.25), var(--h-clamp-formula), var(--h4-font-size));
  margin-bottom: var(--h4-margin-bottom, 0.5em);
}

.c-heading {
  /**
   * #.# Modifiers
   */
}
.c-heading__title {
  position: relative;
  font-size: inherit;
  font-weight: inherit;
  text-transform: inherit;
  line-height: inherit;
  margin: 0;
  z-index: 1;
  color: var(--main-title-color);
}
.-colors-inverted .c-heading__title, .style-dark .c-heading__title {
  color: var(--main-title-color-alt);
}
.text-center .c-heading__title {
  margin: 0 auto;
}
.c-heading__pre {
  color: var(--pretitle-color, var(--primary-color2));
  line-height: var(--pretitle-line-height, 1.4);
  letter-spacing: var(--pretitle-letter-spacing, 0);
  margin: var(--pretitle-margin-bottom, 0.5em) 0;
  font-family: var(--pretitle-font);
  font-weight: var(--pretitle-font-weight, 500);
  text-transform: var(--pretitle-text-transform);
  font-size: clamp(var(--pretitle-font-size-mobile, 18px), var(--h-clamp-formula), var(--pretitle-font-size, 2.4rem));
}
.-colors-inverted .c-heading__pre, .style-dark .c-heading__pre {
  color: var(--pretitle-color-alt);
}
.c-heading__sub {
  color: var(--subtitle-color, var(--primary-color2));
  line-height: var(--subtitle-line-height, 1.4);
  letter-spacing: var(--subtitle-letter-spacing, 0);
  margin: var(--subtitle-margin-bottom, 0.5em) 0;
  font-family: var(--subtitle-font);
  font-weight: var(--subtitle-font-weight, 500);
  text-transform: var(--subtitle-text-transform);
  font-size: clamp(var(--subtitle-font-size-mobile, 18px), var(--h-clamp-formula), var(--subtitle-font-size, 2.4rem));
}
.-colors-inverted .c-heading__sub, .style-dark .c-heading__sub {
  color: var(--subtitle-color-alt);
}
.c-heading__preamble {
  width: calc(100vw - 8.1px);
  max-width: none;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  height: 10px;
  color: var(--backtitle-color);
  letter-spacing: var(--backtitle-letter-spacing, 0);
  font-family: var(--backtitle-font);
  font-weight: var(--backtitle-font-weight, 500);
  text-transform: var(--backtitle-text-transform);
  opacity: 0.2;
  line-height: 0.8;
  white-space: nowrap;
  top: 0;
  padding: 0.2em 0;
  font-size: var(--backtitle-font-size, 2.4rem);
}
.-colors-inverted .c-heading__preamble, .style-dark .c-heading__preamble {
  color: var(--backtitle-color-alt);
}
.c-heading__description {
  font-size: var(--base-text-size);
}
.text-center .c-heading {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* Heading Layout */
@media (max-width: 766px) {
  .l-heading {
    text-align: center;
  }
}

.l-heading-v2 {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.l-heading-v2 .c-heading {
  margin-bottom: 0;
}
@media (max-width: 1112px) {
  .l-heading-v2 .c-heading {
    text-align: left;
  }
}

.l-content-simple-1 .m-block__container {
  max-width: calc(var(--content-width) + var(--page-gutter, 20px) * 2);
}
@media (max-width: 1112px) {
  .l-content-simple-1 .l-heading {
    max-width: var(--l-container-width, 100%);
  }
}
.l-content-simple-1 .l-heading.text-center {
  margin-inline: auto;
}

/**
 ############################
 #   Buttons Component
 ############################
 */
/** Buttons Core Component */
.btn, .c-btn, .wpcf7-submit,
.gform_button,
.gform-button {
  --btn-ico-color: currentColor;
  --icon-shift: 10px;
  display: inline-flex;
  align-items: center;
  backface-visibility: hidden;
  background-color: transparent;
  position: relative;
  text-decoration: none;
  border: none;
  text-align: center;
  white-space: nowrap;
  transition: transform var(--base-transition), border var(--base-transition), background var(--base-transition);
}

.c-btn, .wpcf7-submit,
.gform_button,
.gform-button {
  padding: 0;
  font-size: var(--btn-font-size, 1.8rem);
  font-family: var(--btn-font-family);
  text-transform: var(--btn-text-transform, none);
  font-weight: var(--button-font-weight, 400);
  box-shadow: var(--btn-box-shadow, none);
  border-radius: var(--btn-border-radius, 0);
  /* Button Visual Variants */
  /* Button Size Variants */
  /* Button Icon */
}
.c-btn:not(:only-child), .wpcf7-submit:not(:only-child),
.gform_button:not(:only-child),
.gform-button:not(:only-child) {
  margin: 2px;
}
.c-btn > span, .wpcf7-submit > span,
.gform_button > span,
.gform-button > span {
  box-sizing: border-box;
}
.c-btn__txt {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  padding: var(--btn-padding-top-bottom, 10px) var(--btn-padding-left-right, 20px);
  transition: transform 0.3s, color 0.3s;
}
.c-btn.-primary .c-btn__ico, .wpcf7-submit .c-btn__ico,
.gform_button .c-btn__ico,
.gform-button .c-btn__ico, .c-btn.-inverted .c-btn__ico, .c-btn.-secondary .c-btn__ico {
  padding-inline: calc(var(--btn-padding-left-right, 20px) / 2);
}
.c-btn.-primary.icon-left .c-btn__ico, .icon-left.wpcf7-submit .c-btn__ico,
.icon-left.gform_button .c-btn__ico,
.icon-left.gform-button .c-btn__ico, .c-btn.-inverted.icon-left .c-btn__ico, .c-btn.-secondary.icon-left .c-btn__ico {
  margin-right: calc(var(--btn-padding-left-right, 20px) * -1);
}
.c-btn.-primary.icon-right .c-btn__ico, .icon-right.wpcf7-submit .c-btn__ico,
.icon-right.gform_button .c-btn__ico,
.icon-right.gform-button .c-btn__ico, .c-btn.-inverted.icon-right .c-btn__ico, .c-btn.-secondary.icon-right .c-btn__ico {
  margin-left: calc(var(--btn-padding-left-right, 20px) * -1);
}
.c-btn.-primary, .wpcf7-submit,
.gform_button,
.gform-button {
  background-color: var(--btn-primary-bg);
  color: var(--btn-primary-color);
  border: var(--btn-primary-border) solid var(--btn-primary-border-color);
}
@media (hover: hover) {
  .c-btn.-primary:hover, .wpcf7-submit:hover,
.gform_button:hover,
.gform-button:hover {
    background-color: var(--btn-primary-bg-hover);
    color: var(--btn-primary-color-hover);
    border-color: var(--btn-primary-border-color-hover);
  }
}
.c-btn.-inverted, .-inverted.wpcf7-submit,
.-inverted.gform_button,
.-inverted.gform-button {
  background-color: var(--btn-primary-color);
  color: var(--btn-primary-bg);
  border: var(--btn-primary-border) solid var(--btn-primary-border-color);
}
@media (hover: hover) {
  .c-btn.-inverted:hover, .-inverted.wpcf7-submit:hover,
.-inverted.gform_button:hover,
.-inverted.gform-button:hover {
    background-color: var(--btn-primary-color-hover);
    color: var(--btn-primary-bg-hover);
    border-color: var(--btn-primary-border-color);
  }
}
.c-btn.-secondary, .-secondary.wpcf7-submit,
.-secondary.gform_button,
.-secondary.gform-button {
  background-color: var(--btn-secondary-bg);
  color: var(--btn-secondary-color);
  border: var(--btn-secondary-border) solid var(--btn-secondary-border-color);
}
@media (hover: hover) {
  .c-btn.-secondary:hover, .-secondary.wpcf7-submit:hover,
.-secondary.gform_button:hover,
.-secondary.gform-button:hover {
    background-color: var(--btn-secondary-bg-hover);
    color: var(--btn-secondary-color-hover);
    border-color: var(--btn-secondary-border-color-hover);
  }
}
.c-btn.-secondary-solid, .-secondary-solid.wpcf7-submit,
.-secondary-solid.gform_button,
.-secondary-solid.gform-button {
  background-color: var(--btn-secondary-bg-hover);
  color: var(--btn-primary-color);
}
@media (hover: hover) {
  .c-btn.-secondary-solid:hover, .-secondary-solid.wpcf7-submit:hover,
.-secondary-solid.gform_button:hover,
.-secondary-solid.gform-button:hover {
    background-color: var(--btn-secondary-bg-hover);
    color: var(--btn-secondary-color-hover);
    border-color: var(--btn-secondary-border-color-hover);
  }
}
.c-btn.-light, .-light.wpcf7-submit,
.-light.gform_button,
.-light.gform-button {
  background-color: #fff;
  color: #6f838d;
  border: var(--btn-secondary-border) solid #6f838d;
}
@media (hover: hover) {
  .c-btn.-light:hover, .-light.wpcf7-submit:hover,
.-light.gform_button:hover,
.-light.gform-button:hover {
    background-color: #6f838d;
    color: #fff;
    border-color: #6f838d;
  }
}
.c-btn.-link, .-link.wpcf7-submit,
.-link.gform_button,
.-link.gform-button {
  color: var(--btn-link-color);
  box-shadow: none !important;
  padding: 0;
}
.c-btn.-link .c-btn__txt, .-link.wpcf7-submit .c-btn__txt,
.-link.gform_button .c-btn__txt,
.-link.gform-button .c-btn__txt {
  padding: 0;
}
.c-btn.-link .c-btn__ico, .-link.wpcf7-submit .c-btn__ico,
.-link.gform_button .c-btn__ico,
.-link.gform-button .c-btn__ico {
  max-width: 35px;
}
.c-btn.-link .c-btn__ico svg, .-link.wpcf7-submit .c-btn__ico svg,
.-link.gform_button .c-btn__ico svg,
.-link.gform-button .c-btn__ico svg {
  color: var(--link-icon-color, currentColor);
}
.c-btn.-link .c-btn__ico svg, .-link.wpcf7-submit .c-btn__ico svg,
.-link.gform_button .c-btn__ico svg,
.-link.gform-button .c-btn__ico svg, .c-btn.-link .c-btn__ico img, .-link.wpcf7-submit .c-btn__ico img,
.-link.gform_button .c-btn__ico img,
.-link.gform-button .c-btn__ico img {
  max-height: 1em;
}
@media (hover: hover) {
  .c-btn.-link:hover, .-link.wpcf7-submit:hover,
.-link.gform_button:hover,
.-link.gform-button:hover {
    color: var(--btn-link-color-hover);
  }
}
.c-btn.-link.icon-left .c-btn__ico, .-link.icon-left.wpcf7-submit .c-btn__ico,
.-link.icon-left.gform_button .c-btn__ico,
.-link.icon-left.gform-button .c-btn__ico {
  margin-right: 10px;
}
.c-btn.-link.icon-right .c-btn__ico, .-link.icon-right.wpcf7-submit .c-btn__ico,
.-link.icon-right.gform_button .c-btn__ico,
.-link.icon-right.gform-button .c-btn__ico {
  margin-left: 10px;
}
.c-btn.-small, .-small.wpcf7-submit,
.-small.gform_button,
.-small.gform-button {
  --btn-padding-left-right: 20px;
  --btn-padding-top-bottom: 10px;
}
.c-btn.-small .c-btn__txt, .-small.wpcf7-submit .c-btn__txt,
.-small.gform_button .c-btn__txt,
.-small.gform-button .c-btn__txt {
  font-size: 0.8em;
}
.c-btn.-small .icon, .-small.wpcf7-submit .icon,
.-small.gform_button .icon,
.-small.gform-button .icon {
  max-width: 60%;
}
.c-btn.-large .c-btn__txt, .-large.wpcf7-submit .c-btn__txt,
.-large.gform_button .c-btn__txt,
.-large.gform-button .c-btn__txt {
  font-size: 1.4em;
}
.c-btn.is-oblique, .is-oblique.wpcf7-submit,
.is-oblique.gform_button,
.is-oblique.gform-button {
  --skew-angle: 20deg;
  transform: skew(calc(var(--skew-angle) * -1));
}
.c-btn.is-oblique .c-btn__txt, .is-oblique.wpcf7-submit .c-btn__txt,
.is-oblique.gform_button .c-btn__txt,
.is-oblique.gform-button .c-btn__txt,
.c-btn.is-oblique .c-btn__ico .icon,
.is-oblique.wpcf7-submit .c-btn__ico .icon,
.is-oblique.gform_button .c-btn__ico .icon,
.is-oblique.gform-button .c-btn__ico .icon {
  transform: skew(var(--skew-angle));
}
.c-btn__ico {
  min-width: 20px;
  max-width: 80px;
  position: relative;
  transition: transform var(--base-transition), filter var(--base-transition), opacity var(--base-transition);
  pointer-events: none;
  display: flex;
}
.c-btn__ico svg, .c-btn__ico img {
  margin: auto;
  max-height: 2ch;
}
.c-btn__ico svg {
  fill: var(--btn-ico-color);
  color: var(--btn-ico-color);
}
.c-btn__ico img {
  transition: transform var(--base-transition), filter var(--base-transition), opacity var(--base-transition);
  max-width: 100%;
}
.c-btn.icon-left, .icon-left.wpcf7-submit,
.icon-left.gform_button,
.icon-left.gform-button {
  flex-direction: row-reverse;
}
.c-btn .icon-reversed, .wpcf7-submit .icon-reversed,
.gform_button .icon-reversed,
.gform-button .icon-reversed {
  transform: scaleX(-1);
}
.c-block__btn .c-btn, .c-block__btn .wpcf7-submit,
.c-block__btn .gform_button,
.c-block__btn .gform-button {
  vertical-align: middle;
}
@media (hover: hover) {
  .c-btn:hover .c-btn__ico, .wpcf7-submit:hover .c-btn__ico,
.gform_button:hover .c-btn__ico,
.gform-button:hover .c-btn__ico {
    transform: translateX(5px);
  }
  .c-btn:hover .c-btn__ico.icon-reversed, .wpcf7-submit:hover .c-btn__ico.icon-reversed,
.gform_button:hover .c-btn__ico.icon-reversed,
.gform-button:hover .c-btn__ico.icon-reversed {
    transform: translateX(-5px) scaleX(-1);
  }
}

/* CF7 Submit Button */
.wpcf7-submit,
.gform_button,
.gform-button {
  font-size: var(--btn-font-size, 1.8rem);
  font-family: var(--btn-font-family);
  text-transform: var(--btn-text-transform, none);
  font-weight: var(--button-font-weight, 400);
  box-shadow: var(--btn-box-shadow, none);
  border-radius: var(--btn-border-radius, 0);
  padding: var(--btn-padding-top-bottom) var(--btn-padding-left-right);
  justify-content: center;
  transition: all var(--base-transition);
}
@media (hover: hover) {
  .wpcf7-submit:hover,
.gform_button:hover,
.gform-button:hover {
    box-shadow: 0 2px 2px rgba(0, 7, 63, 0.2);
  }
}

/**
 ############################
 #   Image Component
 ############################
 */
/**
 * #.# Component IMAGE
 *
 */
.c-image {
  position: relative;
  max-height: 100%;
  width: 100%;
}
@media (min-width: 767px) {
  .c-image.r-1x1 .c-image__primary,
.c-image.r-1x1 .c-video__media, .c-image.r-square .c-image__primary,
.c-image.r-square .c-video__media, .c-image.r-4x3 .c-image__primary,
.c-image.r-4x3 .c-video__media, .c-image.r-3x4 .c-image__primary,
.c-image.r-3x4 .c-video__media, .c-image.r-16x9 .c-image__primary,
.c-image.r-16x9 .c-video__media {
    position: absolute;
  }
  .c-image.r-square, .c-image.r-1x1 {
    position: relative;
  }
  .c-image.r-square:before, .c-image.r-1x1:before {
    display: block;
    content: " ";
    width: 100%;
    padding-top: 100%;
  }
  .c-image.r-square > .content, .c-image.r-1x1 > .content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
  .c-image.r-4x3 {
    position: relative;
  }
  .c-image.r-4x3:before {
    display: block;
    content: " ";
    width: 100%;
    padding-top: 75%;
  }
  .c-image.r-4x3 > .content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
  .c-image.r-3x4 {
    position: relative;
  }
  .c-image.r-3x4:before {
    display: block;
    content: " ";
    width: 100%;
    padding-top: 133.3333333333%;
  }
  .c-image.r-3x4 > .content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
  .c-image.r-16x9 {
    position: relative;
  }
  .c-image.r-16x9:before {
    display: block;
    content: " ";
    width: 100%;
    padding-top: 56.25%;
  }
  .c-image.r-16x9 > .content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
}
@media (max-width: 766px) {
  .c-image .c-image__src {
    width: 100%;
  }
}
.c-image__media {
  margin: 0;
}
.c-image__src {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.c-image__secondary {
  position: absolute;
  transition: transform var(--base-transition), opacity var(--base-transition);
  z-index: 2;
}
@media (max-width: 1111px) {
  .c-image__secondary {
    height: 100%;
  }
  .c-image__secondary .c-image__src {
    max-height: 110%;
  }
}
@media (max-width: 766px) {
  .c-image__secondary {
    max-width: 100%;
  }
}
.front-h-left .c-image__secondary {
  left: calc(var(--front-src-shift) * -1);
}
.front-h-right .c-image__secondary {
  right: calc(var(--front-src-shift) * -1);
}
.front-h-center .c-image__secondary {
  transform: translateX(-50%);
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  text-align: center;
  display: flex;
  justify-content: center;
}
.front-v-top .c-image__secondary {
  top: calc(var(--front-src-shift) * -1);
}
.front-v-center .c-image__secondary {
  transform: translateY(-50%);
  top: 50%;
}
.front-v-center.front-h-center .c-image__secondary {
  transform: translate(-50%, -50%);
  text-align: center;
  min-height: 100%;
  min-width: 100%;
}
.front-v-center.front-h-center .c-image__secondary .c-image__src {
  margin: auto;
}
.front-v-bottom .c-image__secondary {
  bottom: calc(var(--front-src-shift) * -1);
  display: flex;
  align-items: flex-end;
}

.c-image__primary,
.c-video__primary {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform var(--base-transition), opacity var(--base-transition);
}
.r-square .c-image__primary, .r-1x1 .c-image__primary, .r-4x3 .c-image__primary, .r-3x4 .c-image__primary, .r-16x9 .c-image__primary,
.r-square .c-video__primary,
.r-1x1 .c-video__primary,
.r-4x3 .c-video__primary,
.r-3x4 .c-video__primary,
.r-16x9 .c-video__primary {
  position: absolute;
  top: 0;
  left: 0;
}
.main-h-full .c-image__primary .c-image__src,
.main-h-full .c-video__primary .c-image__src {
  height: 100%;
  width: 100%;
}
.main-h-left .c-image__primary,
.main-h-left .c-video__primary {
  justify-content: flex-start;
}
.main-h-center .c-image__primary,
.main-h-center .c-video__primary {
  justify-content: center;
}
.main-h-right .c-image__primary,
.main-h-right .c-video__primary {
  justify-content: flex-end;
}
.main-v-top .c-image__primary,
.main-v-top .c-video__primary {
  align-items: flex-start;
}
.main-v-center .c-image__primary,
.main-v-center .c-video__primary {
  align-items: center;
}
.main-v-bottom .c-image__primary,
.main-v-bottom .c-video__primary {
  align-items: flex-end;
}

.has-overlay .m-banner__media:after,
.l-testimonials-v1 .m-slide__media:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background-color: var(--primary-color1);
  opacity: var(--overlayOpacity);
  z-index: 1;
}

/* Critical - custom */
:root {
  --base-transition: .3s;
  --l-block-gap-vertical: 15px;
  --l-block-gap-horizontal: 15px;
  --c-block-title-size: clamp(var(--h4-font-size-mobile), var(--h-clamp-formula), var(--h4-font-size));
  --c-block-title-weight: var(--h4-font-weight);
  --c-block-title-transform: var(--h4-text-transform);
  --c-block-title-color: var(--titles-color);
  --c-block-text-size: var(--base-text-size);
  --c-block-padding: 15px;
  --c-block-align: left;
  --content-width-wide: 1500px;
  --h-clamp-formula: 3vw + 1.5rem;
}
@media (max-width: 1112px) {
  :root {
    --vertical-gap: 40px;
  }
}
@media (min-width: 1113px) and (max-width: 1440px) {
  :root {
    --content-width-wide: 100vw;
  }
}

.is-wysiwyg {
  --wysiwyg-margin: 1.5em;
  --wysiwyg-li-padding: 0 0 0 30px;
  --wysiwyg-li-bgp: 0 .4em;
  --wysiwyg-li-margin: 1em;
  --wysiwyg-li-fallback: "•";
}

.site-content {
  overflow: hidden;
}

.c-btn, .wpcf7-submit,
.gform_button,
.gform-button {
  --ico-size: 2.125em;
  --ico-gap: 0.3125em;
}
.c-btn .c-btn__txt, .wpcf7-submit .c-btn__txt,
.gform_button .c-btn__txt,
.gform-button .c-btn__txt {
  font-size: 1em;
}
@media (max-width: 1112px) {
  .c-btn .c-btn__txt, .wpcf7-submit .c-btn__txt,
.gform_button .c-btn__txt,
.gform-button .c-btn__txt {
    font-size: 18px;
  }
}
.c-btn.-primary, .wpcf7-submit,
.gform_button,
.gform-button {
  position: relative;
  padding: var(--ico-gap);
  background: linear-gradient(90deg, #78AD00 3.88%, #99CE00 100%);
  transition: box-shadow 0.3s;
}
@media (max-width: 1112px) {
  .c-btn.-primary, .wpcf7-submit,
.gform_button,
.gform-button {
    font-size: 18px;
  }
}
.c-btn.-primary:hover, .wpcf7-submit:hover,
.gform_button:hover,
.gform-button:hover {
  box-shadow: 0px 0px 55px rgba(121, 173, 1, 0.75);
}
.c-btn.-primary .c-btn__txt, .wpcf7-submit .c-btn__txt,
.gform_button .c-btn__txt,
.gform-button .c-btn__txt {
  padding: 0.65em 1.5em;
}
.c-btn.-primary.has-icon .c-btn__txt, .has-icon.wpcf7-submit .c-btn__txt,
.has-icon.gform_button .c-btn__txt,
.has-icon.gform-button .c-btn__txt {
  padding: 0.25em 1.5em;
}
@media (max-width: 1112px) {
  .c-btn.-primary.has-icon .c-btn__txt, .has-icon.wpcf7-submit .c-btn__txt,
.has-icon.gform_button .c-btn__txt,
.has-icon.gform-button .c-btn__txt {
    padding: 0.25em 0.75em;
  }
}
.c-btn.-primary .c-btn__ico, .wpcf7-submit .c-btn__ico,
.gform_button .c-btn__ico,
.gform-button .c-btn__ico {
  position: absolute;
  top: 50%;
  width: var(--ico-size);
  height: var(--ico-size);
  margin: 0;
  transform: translateY(-50%);
}
.c-btn.-primary .c-btn__ico svg, .wpcf7-submit .c-btn__ico svg,
.gform_button .c-btn__ico svg,
.gform-button .c-btn__ico svg {
  max-height: 1.5ch;
  color: #fff;
}
.c-btn.-primary.icon-right:before, .icon-right.wpcf7-submit:before,
.icon-right.gform_button:before,
.icon-right.gform-button:before {
  content: "";
  position: absolute;
  top: 50%;
  right: var(--ico-gap);
  width: var(--ico-size);
  height: var(--ico-size);
  background: var(--secondary-color2);
  border-radius: var(--ico-size);
  transform: translateY(-50%);
  transition: width 0.3s;
}
.c-btn.-primary.icon-right .c-btn__txt, .icon-right.wpcf7-submit .c-btn__txt,
.icon-right.gform_button .c-btn__txt,
.icon-right.gform-button .c-btn__txt {
  padding-right: 3em;
}
@media (max-width: 1112px) {
  .c-btn.-primary.icon-right .c-btn__txt, .icon-right.wpcf7-submit .c-btn__txt,
.icon-right.gform_button .c-btn__txt,
.icon-right.gform-button .c-btn__txt {
    padding-right: 2.75em;
  }
}
.c-btn.-primary.icon-right .c-btn__ico, .icon-right.wpcf7-submit .c-btn__ico,
.icon-right.gform_button .c-btn__ico,
.icon-right.gform-button .c-btn__ico {
  right: var(--ico-gap);
}
.c-btn.-primary.icon-right:hover:before, .icon-right.wpcf7-submit:hover:before,
.icon-right.gform_button:hover:before,
.icon-right.gform-button:hover:before {
  width: calc(100% - 2 * var(--ico-gap));
}
.c-btn.-primary.icon-right:hover .c-btn__ico, .icon-right.wpcf7-submit:hover .c-btn__ico,
.icon-right.gform_button:hover .c-btn__ico,
.icon-right.gform-button:hover .c-btn__ico {
  transform: translateY(-50%);
}
.c-btn.-primary.-inverted, .-inverted.wpcf7-submit,
.-inverted.gform_button,
.-inverted.gform-button {
  background: var(--btn-primary-color);
}
.c-btn.-primary.-inverted:hover, .-inverted.wpcf7-submit:hover,
.-inverted.gform_button:hover,
.-inverted.gform-button:hover {
  color: var(--btn-primary-color);
}
.c-btn.-primary.-inverted:hover .c-btn__txt, .-inverted.wpcf7-submit:hover .c-btn__txt,
.-inverted.gform_button:hover .c-btn__txt,
.-inverted.gform-button:hover .c-btn__txt {
  color: var(--btn-primary-color);
}
.c-btn.-secondary-solid, .-secondary-solid.wpcf7-submit,
.-secondary-solid.gform_button,
.-secondary-solid.gform-button {
  position: relative;
  padding: var(--ico-gap);
  background: #3dafc9;
  transition: box-shadow 0.3s;
}
@media (max-width: 1112px) {
  .c-btn.-secondary-solid, .-secondary-solid.wpcf7-submit,
.-secondary-solid.gform_button,
.-secondary-solid.gform-button {
    font-size: 18px;
  }
}
.c-btn.-secondary-solid:hover, .-secondary-solid.wpcf7-submit:hover,
.-secondary-solid.gform_button:hover,
.-secondary-solid.gform-button:hover {
  box-shadow: 0px 0px 55px rgba(48, 143, 165, 0.75);
}
.c-btn.-secondary-solid .c-btn__txt, .-secondary-solid.wpcf7-submit .c-btn__txt,
.-secondary-solid.gform_button .c-btn__txt,
.-secondary-solid.gform-button .c-btn__txt {
  padding: 0.65em 1.5em;
}
.c-btn.-secondary-solid.has-icon .c-btn__txt, .-secondary-solid.has-icon.wpcf7-submit .c-btn__txt,
.-secondary-solid.has-icon.gform_button .c-btn__txt,
.-secondary-solid.has-icon.gform-button .c-btn__txt {
  padding: 0.25em 1.5em;
}
@media (max-width: 1112px) {
  .c-btn.-secondary-solid.has-icon .c-btn__txt, .-secondary-solid.has-icon.wpcf7-submit .c-btn__txt,
.-secondary-solid.has-icon.gform_button .c-btn__txt,
.-secondary-solid.has-icon.gform-button .c-btn__txt {
    padding: 0.25em 0.75em;
  }
}
.c-btn.-secondary-solid .c-btn__ico, .-secondary-solid.wpcf7-submit .c-btn__ico,
.-secondary-solid.gform_button .c-btn__ico,
.-secondary-solid.gform-button .c-btn__ico {
  position: absolute;
  top: 50%;
  width: var(--ico-size);
  height: var(--ico-size);
  margin: 0;
  transform: translateY(-50%);
}
.c-btn.-secondary-solid .c-btn__ico svg, .-secondary-solid.wpcf7-submit .c-btn__ico svg,
.-secondary-solid.gform_button .c-btn__ico svg,
.-secondary-solid.gform-button .c-btn__ico svg {
  max-height: 1.5ch;
  color: #fff;
}
.c-btn.-secondary-solid.icon-right:before, .-secondary-solid.icon-right.wpcf7-submit:before,
.-secondary-solid.icon-right.gform_button:before,
.-secondary-solid.icon-right.gform-button:before {
  content: "";
  position: absolute;
  top: 50%;
  right: var(--ico-gap);
  width: var(--ico-size);
  height: var(--ico-size);
  background: rgba(0, 0, 0, 0.2);
  border-radius: var(--ico-size);
  transform: translateY(-50%);
  transition: width 0.3s;
}
.c-btn.-secondary-solid.icon-right .c-btn__txt, .-secondary-solid.icon-right.wpcf7-submit .c-btn__txt,
.-secondary-solid.icon-right.gform_button .c-btn__txt,
.-secondary-solid.icon-right.gform-button .c-btn__txt {
  padding-right: 3em;
}
@media (max-width: 1112px) {
  .c-btn.-secondary-solid.icon-right .c-btn__txt, .-secondary-solid.icon-right.wpcf7-submit .c-btn__txt,
.-secondary-solid.icon-right.gform_button .c-btn__txt,
.-secondary-solid.icon-right.gform-button .c-btn__txt {
    padding-right: 2.75em;
  }
}
.c-btn.-secondary-solid.icon-right .c-btn__ico, .-secondary-solid.icon-right.wpcf7-submit .c-btn__ico,
.-secondary-solid.icon-right.gform_button .c-btn__ico,
.-secondary-solid.icon-right.gform-button .c-btn__ico {
  right: var(--ico-gap);
}
.c-btn.-secondary-solid.icon-right:hover:before, .-secondary-solid.icon-right.wpcf7-submit:hover:before,
.-secondary-solid.icon-right.gform_button:hover:before,
.-secondary-solid.icon-right.gform-button:hover:before {
  width: calc(100% - 2 * var(--ico-gap));
}
.c-btn.-secondary-solid.icon-right:hover .c-btn__ico, .-secondary-solid.icon-right.wpcf7-submit:hover .c-btn__ico,
.-secondary-solid.icon-right.gform_button:hover .c-btn__ico,
.-secondary-solid.icon-right.gform-button:hover .c-btn__ico {
  transform: translateY(-50%);
}
.c-btn.-secondary-solid.-inverted, .-secondary-solid.-inverted.wpcf7-submit,
.-secondary-solid.-inverted.gform_button,
.-secondary-solid.-inverted.gform-button {
  background: var(--btn-secondary-color);
}
.c-btn.-secondary-solid.-inverted:hover, .-secondary-solid.-inverted.wpcf7-submit:hover,
.-secondary-solid.-inverted.gform_button:hover,
.-secondary-solid.-inverted.gform-button:hover {
  color: var(--btn-secondary-color);
}
.c-btn.-secondary-solid.-inverted:hover .c-btn__txt, .-secondary-solid.-inverted.wpcf7-submit:hover .c-btn__txt,
.-secondary-solid.-inverted.gform_button:hover .c-btn__txt,
.-secondary-solid.-inverted.gform-button:hover .c-btn__txt {
  color: var(--btn-secondary-color);
}
.c-btn.-light .c-btn__txt, .-light.wpcf7-submit .c-btn__txt,
.-light.gform_button .c-btn__txt,
.-light.gform-button .c-btn__txt {
  padding: calc(0.65em - 4.75px) 1.5em;
}
.c-btn.-small, .-small.wpcf7-submit,
.-small.gform_button,
.-small.gform-button {
  font-size: 16px;
}
@media (max-width: 1112px) {
  .c-btn.-small, .-small.wpcf7-submit,
.-small.gform_button,
.-small.gform-button {
    font-size: 18px;
  }
}
.c-btn.-small .c-btn__txt, .-small.wpcf7-submit .c-btn__txt,
.-small.gform_button .c-btn__txt,
.-small.gform-button .c-btn__txt {
  font-size: 1em;
}
.c-btn.account-overlay-trigger:focus, .account-overlay-trigger.wpcf7-submit:focus,
.account-overlay-trigger.gform_button:focus,
.account-overlay-trigger.gform-button:focus {
  outline: 0;
}

/* Banners */
.m-banner {
  --banner-height--small: 300px;
  --banner-height--medium: 650px;
  --banner-height--blog: 400px;
  --banner-height--full: 100vh;
}
.m-banner .l-gt-d {
  --v-gap-top: 4%;
}
.m-banner .l-gb-d {
  --v-gap-bot: 4%;
}
@media (max-width: 767px) {
  .m-banner__container {
    min-height: 20vh;
  }
}
@media (min-width: 1112px) {
  .m-banner--full .m-banner__container {
    max-height: none;
    min-height: var(--bannerHeight);
    height: auto;
  }
}
@media (max-width: 767px) {
  .m-banner__media {
    display: none;
  }
}
@media (min-width: 768px) {
  .m-banner__media {
    display: flex;
    justify-content: flex-end;
  }
  .m-banner__media-mask {
    overflow: hidden;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: left;
    mask-position: left;
    -webkit-mask-size: cover;
    mask-size: cover;
    position: absolute;
    object-fit: cover;
    top: 0;
    left: 57%;
    width: 43%;
    height: 100%;
    background: var(--primary-color3);
    -webkit-mask-image: url(../images/banner-media-mask.svg);
    mask-image: url(../images/banner-media-mask.svg);
  }
  .m-banner__media-mask .m-banner__picture,
.m-banner__media-mask .c-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    mix-blend-mode: darken;
    opacity: 0.3;
  }
}

.l-banner {
  gap: 30px;
}
.l-banner__text .c-block__btn {
  margin-top: 1rem;
}
@media (max-width: 767px) {
  .l-banner__text .l-banner__inner {
    text-align: center;
  }
}
@media (min-width: 768px) {
  .l-banner__text {
    flex-direction: column;
    align-items: flex-start;
    max-width: var(--columns-ratio);
    flex: 0 0 var(--columns-ratio);
    padding-top: 5rem;
  }
}
.l-banner__media {
  position: relative;
  align-items: flex-start;
}
.l-banner__media .c-image__primary {
  align-items: flex-start;
}
@media (min-width: 1113px) {
  .l-banner__media .c-image__src {
    position: absolute;
    top: 0;
    left: 0;
    max-width: calc(100% + 50vw - 0.5 * var(--content-width) - var(--page-gutter));
  }
}

.hero-cta {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 23.75rem;
  height: 23.75rem;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: var(--primary-color3);
  color: #fff;
  overflow: hidden;
}
@media (min-width: 768px) {
  .hero-cta {
    top: 50%;
    transform: translate(10%, -50%);
    width: 26.8rem;
    height: 26.8rem;
  }
}
.hero-cta .pop-cta__ico {
  position: relative;
  z-index: 0;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 9rem;
  height: 9rem;
  color: var(--primary-color3);
  border-radius: 50%;
  transition: transform 0.4s, color 0.1s;
}
.hero-cta .pop-cta__ico:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  background: var(--secondary-color3);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.4s;
}
.hero-cta .pop-cta__ico:after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  background: #fff;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.hero-cta .pop-cta__ico svg {
  width: 33.33%;
  height: auto;
  transform: translateX(10%);
}
.hero-cta .pop-cta__title {
  margin-top: 10px;
  font-weight: 700;
  font-size: 2rem;
  transition: transform 0.4s;
}
.hero-cta .pop-cta__desc {
  font-weight: 600;
  font-size: 1.6rem;
  transition: transform 0.4s;
}
.hero-cta:hover .pop-cta__ico {
  color: var(--secondary-color3);
  transform: scale(1.25);
}
.hero-cta:hover .pop-cta__ico:before {
  transform: translate(-50%, -50%) scale(4);
}
.hero-cta:hover .pop-cta__title, .hero-cta:hover .pop-cta__desc {
  transform: translateY(40%);
}

.scroll-down {
  position: static;
  margin-top: 6.5vh;
  gap: 15px;
  padding: 0;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0;
}
.scroll-down.sd-left {
  flex-direction: row-reverse;
  top: unset;
  bottom: 10px;
}
.scroll-down.sd-left .scroll-down__txt {
  transform: none;
  writing-mode: unset;
}
.scroll-down.sd-left .scroll-down__ico {
  margin: 0;
}
.scroll-down.sd-left .scroll-down__ico circle {
  animation: sd-bounce 1.25s infinite ease-in-out;
}

@keyframes sd-bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(42%);
  }
}
.animated-title__loop {
  position: relative;
  display: inline-flex;
}
@media (max-width: 767px) {
  .animated-title__loop {
    display: block;
  }
}
.animated-title__loop-first {
  position: static;
  opacity: 0;
  pointer-events: none;
}
.animated-title__loop-line {
  position: absolute;
  opacity: 0.5;
  top: 0;
  left: 0;
  height: 100%;
  width: auto;
  white-space: nowrap;
  color: var(--primary-color3);
  opacity: 0;
  transform: translateY(10%);
  animation-name: txtloop;
  animation-duration: calc(1.2s * var(--loopers-qty));
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  animation-delay: var(--looper-delay);
}
@media (max-width: 767px) {
  .animated-title__loop-line {
    width: 100%;
  }
}

@keyframes txtloop {
  0% {
    opacity: 0;
    transform: translateY(10%);
  }
  8% {
    transform: translateY(0);
  }
  16% {
    opacity: 1;
    transform: translateY(0);
  }
  25% {
    opacity: 1;
    transform: translateY(0);
  }
  33% {
    opacity: 0;
    transform: translateY(-10%);
  }
  100% {
    opacity: 0;
    transform: translateY(10%);
  }
}
.c-decor {
  pointer-events: none;
  position: absolute;
}

.--d-right {
  right: 0;
}

.--d-left {
  left: 0;
}

.--d-top {
  top: 0;
}

.--d-bottom {
  bottom: 0;
}

.--d-center-ver {
  top: 50%;
}

.--d-center-hor {
  left: 50%;
}

.decor-blue,
.decor-green {
  --decor-size: 65rem;
}
.decor-blue.--d-large,
.decor-green.--d-large {
  --decor-size: 80rem;
}
.decor-blue.--d-small,
.decor-green.--d-small {
  --decor-size: 50rem;
}
@media (max-width: 1112px) {
  .decor-blue,
.decor-green {
    --decor-size: 40rem;
  }
}

.decor-green:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  box-shadow: 0 0 calc(0.5 * var(--decor-size)) calc(0.5 * var(--decor-size)) #99CE00;
  opacity: 0.15;
  border-radius: 50%;
}
.decor-green.--d-right {
  transform: translateX(calc(0.35 * var(--decor-size)));
}
.decor-green.--d-left {
  transform: translateX(calc(-0.35 * var(--decor-size)));
}
.decor-green.--d-bottom:before {
  transform: translateY(calc(-0.25 * var(--decor-size)));
}

.decor-blue:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  box-shadow: 0 0 calc(0.5 * var(--decor-size)) calc(0.5 * var(--decor-size)) #34C9EB;
  opacity: 0.3;
  border-radius: 50%;
}
.decor-blue.--d-right {
  transform: translateX(calc(0.35 * var(--decor-size)));
}
.decor-blue.--d-left {
  transform: translateX(calc(-0.35 * var(--decor-size)));
}
.decor-blue.--d-bottom:before {
  transform: translateY(calc(-0.35 * var(--decor-size)));
}

.m-tabs,
.m-block {
  position: relative;
}

.m-slider .c-decor {
  z-index: 2;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9faGVscGVycy9fcmVib290LnNjc3MiLCJfX2NvcmUvbWl4aW5zL19hc3BlY3QtcmF0aW8uc2NzcyIsIl9fY29yZS9taXhpbnMvX3BhZ2Utc2l6ZXMuc2NzcyIsIl9fY29yZS9zZXR0aW5ncy9fc2V0dGluZ3MtbWFpbi5zY3NzIiwiX19jb3JlL21peGlucy9faW5jbHVkZS1tZWRpYS5zY3NzIiwiX19jb3JlL3NldHRpbmdzL19zZXR0aW5ncy1mb250LnNjc3MiLCJfX2NvcmUvbWl4aW5zL19mb250LWZhY2Uuc2NzcyIsIl9sYXlvdXQvX19iYXNlLnNjc3MiLCJjcml0aWNhbC5zY3NzIiwiX2xheW91dC9oZWFkZXIvX2hlYWRlci1jb3JlLnNjc3MiLCJfbGF5b3V0L2hlYWRlci9sYXlvdXRzL19oZWFkZXJfcm93cy5zY3NzIiwiX2xheW91dC9oZWFkZXIvbGF5b3V0cy9faGVhZGVyX3N0aWNreS5zY3NzIiwiX2xheW91dC9oZWFkZXIvbGF5b3V0cy9faGVhZGVyX21vYmlsZS5zY3NzIiwiX2xheW91dC9oZWFkZXIvbGF5b3V0cy9faGVhZGVyX3NpbXBsZS5zY3NzIiwiX2xheW91dC9oZWFkZXIvbGF5b3V0cy9faGVhZGVyX2RldmljZXMuc2NzcyIsIl9sYXlvdXQvaGVhZGVyL2Jsb2Nrcy9fbmF2YmFyX21lbnUuc2NzcyIsIl9sYXlvdXQvaGVhZGVyL2Jsb2Nrcy9fbmF2YmFyX2Ryb3Bkb3duLnNjc3MiLCJfbGF5b3V0L2hlYWRlci9ibG9ja3MvX25hdmJhcl9idXJnZXIuc2NzcyIsIl9sYXlvdXQvaGVhZGVyL2Jsb2Nrcy9fc2l0ZV9zZWFyY2guc2NzcyIsIl9sYXlvdXQvaGVhZGVyL2Jsb2Nrcy9fbGlua3MtbGlzdC5zY3NzIiwicHJvamVjdC1jdXN0b20vX2N1c3RvbV9faGVhZGVyLnNjc3MiLCJfbW9kdWxlcy9fYmFubmVycy5zY3NzIiwiX21vZHVsZXMvYmFubmVycy9fX2Jhbm5lcnMtY29yZS5zY3NzIiwiX21vZHVsZXMvYmFubmVycy9fX2Jhbm5lcnMtbGF5b3V0LnNjc3MiLCJfbW9kdWxlcy9zaWRlbmF2L19jLXNjcm9sbC1kb3duLnNjc3MiLCJfbW9kdWxlcy9faGVhZGluZ3Muc2NzcyIsIl9tb2R1bGVzL2hlYWRpbmdzL19faGVhZGluZ3MtY29yZS5zY3NzIiwiX21vZHVsZXMvaGVhZGluZ3MvX19oZWFkaW5ncy1sYXlvdXRzLnNjc3MiLCJfY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiX2NvbXBvbmVudHMvYnV0dG9ucy9fYnV0dG9ucy1jb3JlLnNjc3MiLCJfY29tcG9uZW50cy9faW1hZ2Uuc2NzcyIsIl9jb21wb25lbnRzL2ltYWdlL19jLWltYWdlX19jb3JlLnNjc3MiLCJfX2NvcmUvbWl4aW5zL19taW5pLW1peGlucy5zY3NzIiwicHJvamVjdC1jdXN0b20vX19jdXN0b21fX2NyaXRpY2FsLnNjc3MiLCJwcm9qZWN0LWN1c3RvbS9fY3VzdG9tX19tLWJhbm5lci5zY3NzIiwicHJvamVjdC1jdXN0b20vX2N1c3RvbV9fZGVjb3JhdGlvbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7RUFHRTs7O0FBR0Y7RUFDRTtJQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7SUFDRTs7O0FBSUo7RUFDRTs7O0FBR0Y7RUFDRTtJQUNFOzs7QUFJSjtFQUNFOzs7QUFHRjtFQUNFO0lBQ0U7OztBQUlKO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7RUFHRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQU9GO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7SUFDRTs7O0FBSUo7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFPRTs7O0FB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QUNJOztFQUdKO0lBQ0k7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7O0VBQ0E7SUFDSTtJQUNBOztFQUtKO0lBQ0k7O0VBRUo7SUFDSTtJQUNBOztFQUlSO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QVoyZVo7RVlyZVE7QUFBQTtJQUVJOzs7QVptZVo7RVk5ZEE7SUFHUTtJQUNBOztFQUVBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBSUE7SUFDSTtJQUNBO0lBQ0E7O0VBRUo7SUFDSTs7OztBQ25JcEI7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDOztBQUdEO0VBQ0M7O0FBS0Q7RUFDQzs7QUFFQTtFQUVDO0VBQ0E7RUFDQTs7QUFHRDtFQUNDOzs7QUMzRUo7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDOztBQUdEO0VBQ0M7O0FBR0Q7RUFDQztFQUNBOztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0M7O0FBRUQ7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVEO0VBQ0M7OztBQU1IO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0VBQ0M7OztBQUlGO0FBQUE7QUFBQTtBQUlBO0VBQ0M7O0FBRUE7RUFDQztFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTs7QUFHRDtFQUNDOztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUY7RUFDQzs7QUFDQTtFQUNDOztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0VBQ0M7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0VBQ0M7O0FBRUE7RUFDQzs7QUFJRjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSDtFQUNDO0lBQ0M7O0VBRUQ7SUFDQzs7O0FDaFBGO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSTtFQUNJOztBQUtKO0VBQ0k7O0FBS1o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7OztBQzVCUjtBQUVBO0VBQ0k7O0FoQm9rQkE7RWdCcmtCSjtJQUdROzs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR1E7RUFDSTs7QUFJSjtFQUNJOztBQUNBO0VBQ0k7O0FBSVo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlRO0FBQUE7QUFBQTtFQUVJOztBQUdSO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBR1I7RUFDSTs7QUFFSjtFQUNJOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7O0FBQ0E7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBU3hCO0VBQ0k7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7O0FBTWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBR0E7RUFDSTs7QUFDQTtFQUNJOztBQUtSO0VBQ0k7O0FBR1I7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0FBQUE7RUFDSTtFQUNBOztBQUNBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBRUk7O0FBSUo7QUFBQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7QUFBQTtFQUNJOztBQUlaO0FBQUE7RUFDSTtFQUNBOztBQUNBO0FBQUE7RUFDSTtFQUNBOztBQUVKO0FBQUE7RUFDSTs7QUFDQTtBQUFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJOztBQUtoQjtFQUNJOztBQUNBO0VBQ0k7RUFDQTs7QUFFSjtF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dkIraUJFO0V1QjdpQkg7SUFFRTs7O0FBR0Q7RUFDQzs7O0FDaENIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUVBO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFtQkE7QUE2SEE7QUE2QkE7O0FBM0tBO0FBQUE7QUFBQTtFQUNJOztBQUdKO0FBQUE7QUFBQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVFBO0FBQUE7QUFBQTtFQUNJOztBQUdBO0FBQUE7QUFBQTtFQUNJOztBQUlKO0FBQUE7QUFBQTtFQUNJOztBQUtaO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0FBQUE7QUFBQTtJQUNJO0lBQ0E7SUFDQTs7O0FBS1o7QUFBQTtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7QUFBQTtBQUFBO0lBQ0k7SUFDQTtJQUNBOzs7QUFLWjtBQUFBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtBQUFBO0FBQUE7SUFDSTtJQUNBO0lBQ0E7OztBQUtaO0FBQUE7QUFBQTtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtBQUFBO0FBQUE7SUFDSTtJQUNBO0lBQ0E7OztBQUtaO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0FBQUE7QUFBQTtJQUNJO0lBQ0E7SUFDQTs7O0FBS1o7QUFBQTtBQUFBO0VBQ0k7RUFFQTtFQUNBOztBQUNBO0FBQUE7QUFBQTtFQUNJOztBQUVKO0FBQUE7QUFBQTtFQUNJOztBQUNBO0FBQUE7QUFBQTtFQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTs7QUFJUjtFQUNJO0FBQUE7QUFBQTtJQUNJOzs7QUFLSjtBQUFBO0FBQUE7RUFDSTs7QUFJSjtBQUFBO0FBQUE7RUFDSTs7QUFPWjtBQUFBO0FBQUE7RUFD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QTtFQUNBOztBQUVJO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQUNBO0VBQ0k7OztBQU9wQjtFQUNJO0lBRUk7O0VBRUo7SUFDSTs7O0FBS0o7RUFDSTtFQUNBOztBOUIwVko7RThCNVZBO0lBSVE7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBOUJrVVI7RThCalZJO0lBaUJROzs7O0FBTWhCO0VBQ0k7SUFDSTtJQUNBOztFQUVKO0lBQ0k7O0VBRUo7SUFDSTtJQUNBOztFQUVKO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7O0VBRUo7SUFDSTtJQUNBOzs7QUNuU1I7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0VBRUk7O0FBQ0E7QUFBQTtFQUNJOztBQUVKO0FBQUE7RUFDSTs7QS9CbWlCSjtFK0IxaUJKO0FBQUE7SUFVUTs7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUdBO0VBQ0k7OztBQU1SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUdBO0VBQ0k7OztBQUtaO0FBQUE7RUFFSTs7O0FBSUE7RUFDSSIsImZpbGUiOiJjcml0aWNhbC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogTW9kaWZpZWQgQm9vdHN0cmFwIFJlYm9vdCB2NS4xLjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pIChyZW1vdmVkIGNvbG9ycyBhbmQgbGlua3MgdW5kZXJsaW5pbmcpXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDIwIFRoZSBCb290c3RyYXAgQXV0aG9yc1xuICogQ29weXJpZ2h0IDIwMTEtMjAyMCBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIEZvcmtlZCBmcm9tIE5vcm1hbGl6ZS5jc3MsIGxpY2Vuc2VkIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9ibG9iL21hc3Rlci9MSUNFTlNFLm1kKVxuICovXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgOnJvb3Qge1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICB9XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBcIk5vdG8gU2Fuc1wiLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG5cblt0YWJpbmRleD1cIi0xXCJdOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG59XG5cbmhyIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIGJvcmRlcjogMDtcbiAgb3BhY2l0eTogMC4yNTtcbn1cblxuaHI6bm90KFtzaXplXSkge1xuICBoZWlnaHQ6IDFweDtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuaDEge1xuICBmb250LXNpemU6IGNhbGMoMS4zNzVyZW0gKyAxLjV2dyk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICB9XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiBjYWxjKDEuMzI1cmVtICsgMC45dncpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cbn1cblxuaDMge1xuICBmb250LXNpemU6IGNhbGMoMS4zcmVtICsgMC42dncpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gIH1cbn1cblxuaDQge1xuICBmb250LXNpemU6IGNhbGMoMS4yNzVyZW0gKyAwLjN2dyk7XG59XG5cbnAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbmFiYnJbdGl0bGVdLFxuYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIGN1cnNvcjogaGVscDtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcbn1cblxuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8vIElzc3VlIHdpdGggaG93IHRoZSB0aGVtZSB3YXMgYnVpbHQuLi5cbnVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxub2wsXG51bCxcbmRsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5vbCBvbCxcbnVsIHVsLFxub2wgdWwsXG51bCBvbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuZGQge1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDAuODc1ZW07XG59XG5cbm1hcmsge1xuICBwYWRkaW5nOiAwLjJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbn1cblxuc3ViLFxuc3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLS41ZW07XG59XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmE6aG92ZXIge1xuXG59XG5cbmE6bm90KFtocmVmXSk6bm90KFtjbGFzc10pLCBhOm5vdChbaHJlZl0pOm5vdChbY2xhc3NdKTpob3ZlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbnByZSxcbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBkaXJlY3Rpb246IGx0ciAvKiBydGw6aWdub3JlICovO1xuICB1bmljb2RlLWJpZGk6IGJpZGktb3ZlcnJpZGU7XG59XG5cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xufVxucHJlIGNvZGUge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG59XG5cbmNvZGUge1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGNvbG9yOiAjZDYzMzg0O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5hID4gY29kZSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5rYmQge1xuICBwYWRkaW5nOiAwLjJyZW0gMC40cmVtO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyNTI5O1xuICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG59XG5cbmtiZCBrYmQge1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuaW1nLFxuc3ZnIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxudGFibGUge1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIGNvbG9yOiAjNmM3NTdkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50aCB7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IC13ZWJraXQtbWF0Y2gtcGFyZW50O1xufVxuXG50aGVhZCxcbnRib2R5LFxudGZvb3QsXG50cixcbnRkLFxudGgge1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMDtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbmJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQ7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbn1cblxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG5vcHRncm91cCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5zZWxlY3Qge1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cblxuW2xpc3RdOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3Ige1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5idXR0b246bm90KDpkaXNhYmxlZCksXG5bdHlwZT1cImJ1dHRvblwiXTpub3QoOmRpc2FibGVkKSxcblt0eXBlPVwicmVzZXRcIl06bm90KDpkaXNhYmxlZCksXG5bdHlwZT1cInN1Ym1pdFwiXTpub3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuOjotbW96LWZvY3VzLWlubmVyIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmZpZWxkc2V0IHtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbn1cblxubGVnZW5kIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogY2FsYygxLjI3NXJlbSArIDAuM3Z3KTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgbGVnZW5kIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG5sZWdlbmQgKyAqIHtcbiAgY2xlYXI6IGxlZnQ7XG59XG5cbjo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWZpZWxkcy13cmFwcGVyLFxuOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4dCxcbjo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1pbnV0ZSxcbjo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWhvdXItZmllbGQsXG46Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQsXG46Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCxcbjo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXllYXItZmllbGQge1xuICBwYWRkaW5nOiAwO1xufVxuXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuXG46Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1jb2xvci1zd2F0Y2gtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICBmb250OiBpbmhlcml0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxub3V0cHV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5pZnJhbWUge1xuICBib3JkZXI6IDA7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCR3aWR0aCwgJGhlaWdodCkge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdCY6YmVmb3Jle1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmctdG9wOiBtYXRoLmRpdigkaGVpZ2h0LCAkd2lkdGgpICogMTAwJTtcblx0fVxuXG5cdD4gLmNvbnRlbnQge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cdH1cbn1cblxuLypcbi5zaXh0ZWVuLW5pbmUge1xuXHRAaW5jbHVkZSBhc3BlY3QtcmF0aW8oMTYsOSk7XG59Ki9cbiIsIi8qIE1lZGlhIFF1ZXJpZXMgQnJlYWtwb2ludHMgKi9cblxuJGJyZWFrcG9pbnRzOiAoXG4gICAgICAgICdwaG9uZSc6IDMyMHB4LFxuICAgICAgICAncGhvbmUtbCc6IDU3NXB4LFxuICAgICAgICAndGFibGV0JzogNzY3cHgsXG4gICAgICAgICdkZXNrdG9wJzogMTExMnB4LFxuICAgICAgICAnZGVza3RvcC1tJzogMTI4MHB4LFxuICAgICAgICAnZGVza3RvcC1sJzogMTQ0MHB4LFxuICAgICAgICAnZGVza3RvcC14bCc6IDE2NjBweCxcbiAgICAgICAgJ2Rlc2t0b3AtMTkyMCc6IDE5MjBweCxcbik7XG5cbi8qKlxuKiAqKioqKioqKioqKioqKioqKioqXG4qICBVc2FnZSBleGFtcGxlc1xuKiAqKioqKioqKioqKioqKioqKioqXG4qXG4vL1xuLy8gIHVzZSA8PVxuKiAgIEFMV0FZUyB1c2UgPD0gKCAnPCcgd2l0aCAnPScgY2hhcmFjdGVyKSBmb3IgYWxsIGJyZWFrcG9pbnRzXG4qICAgd2hlbiBzZXR0aW5nIG1heC13aWR0aCwgZXg6IG1heC13aWR0aDogNzY3cHgsXG4qXG4qICAgc28gbWF4LXdpZHRoOiAxNDQwcHggID09IG1lZGlhKCc8PWRlc2t0b3AtbCcpXG4qXG4qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qXG4vLyAgdXNlID5cbiogICBBTFdBWVMgdXNlIG9ubHkgPiBhcyBzaW5nbGUgY2hhcmFjdGVyIGZvciBhbGwgYnJlYWtwb2ludHNcbiogICB3aGVuIHNldHRpbmcgbWluLXdpZHRoLCBleDogbWluLXdpZHRoOiA3NjhweCxcbipcbiogICBzbyBtaW4td2lkdGg6IDEwMjVweCAgPT0gbWVkaWEoJz5kZXNrdG9wJylcbipcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbipcbiojIyBFWEFNUExFOlxuKlxuKiAgIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KVxuKiAgID1cbiogICBtZWRpYSAoJz50YWJsZXQnKSwgKCc8PWRlc2t0b3AnKVxuKlxuLy9cblxuICovXG4iLCI6cm9vdCB7XG4gICAgLS1waG9uZS13aWR0aDogNTc2cHg7XG4gICAgLS10YWJsZXQtd2lkdGg6IDc2OHB4O1xuICAgIC0tZGVza3RvcC13aWR0aDogMTExMnB4O1xuICAgIC0tZGVza3RvcC13aWR0aC1zbTogMTAyNHB4O1xuICAgIC0tZGVza3RvcC13aWR0aC1tOiAxMjgwcHg7XG4gICAgLS1kZXNrdG9wLXdpZHRoLWw6IDE0NDBweDtcbiAgICAtLWRlc2t0b3Atd2lkdGgteGw6IDE2NDBweDtcbiAgICAtLWRlc2t0b3Atd2lkdGgtMTkyMDogMTkyMHB4O1xuICAgIC0tY29udGVudC13aWR0aDogdmFyKC0tZGVza3RvcC13aWR0aC1tKTsgLy8gRGVmYXVsdCBjb250ZW50IHdpZHRoICgxMjgwKVxuICAgIC0tYmxvZy13aWR0aDogNzYwcHg7XG4gICAgLS1wYWdlLWd1dHRlcjogMjBweDtcbiAgICAtLWdyaWQtZ3V0dGVyOiAyNHB4O1xuICAgIC0tYmFzZS10cmFuc2l0aW9uOiAuM3M7XHRcdCAgICAgICAgICAgIC8vIGRlZmF1bHQgdHJhbnNpdGlvbiBmb3IgaG92ZXJzXG5cbiAgICAtLXZlcnRpY2FsLWdhcDogNnZtaW47XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xuICAgICAgICAtLXZlcnRpY2FsLWdhcDogMjBweDtcbiAgICAgICAgLS1wYWdlLWd1dHRlcjogMTVweDtcbiAgICAgICAgLS1jb250ZW50LXdpZHRoOiB2YXIoLS10YWJsZXQtd2lkdGgpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PWRlc2t0b3AtbCcpIHtcbiAgICAgICAgLS1jb250ZW50LXdpZHRoOiB2YXIoLS1kZXNrdG9wLXdpZHRoLXNtKTtcbiAgICB9XG5cbn1cblxuXG4iLCIvLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjIuMC4wXG4vL1xuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczpsaXN0JztcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6XG4gICAgJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzpcbiAgICAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknLFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwLFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBtZXRhLmZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgfVxufVxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7XG59XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLmdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge1xuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLmhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpXG4gICAgICB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgbGlzdC5pbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyaW5nLnNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyaW5nLmxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYobGlzdC5pbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHJpbmcuaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyaW5nLnNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHJpbmcubGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLmdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC5nZXQoJHVuaXQtaW50ZXJ2YWxzLCBtYXRoLnVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3ttYXRoLnVuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC5oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC5nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsaXN0Lmxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxpc3QubGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBsaXN0LmFwcGVuZCgkcmVzdWx0LCBsaXN0Lm50aCgkbGlzdCwgJGkpLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgbWV0YS50eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHJpbmcuc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKFxuICAgICcwJzogMCxcbiAgICAnMSc6IDEsXG4gICAgJzInOiAyLFxuICAgICczJzogMyxcbiAgICAnNCc6IDQsXG4gICAgJzUnOiA1LFxuICAgICc2JzogNixcbiAgICAnNyc6IDcsXG4gICAgJzgnOiA4LFxuICAgICc5JzogOSxcbiAgKTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyaW5nLnNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0cmluZy5sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyaW5nLnNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QobGlzdC5pbmRleChtYXAua2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyaW5nLnNsaWNlKCR2YWx1ZSwgJGkpKTtcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAuZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXRoLmRpdihtYXAuZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSwgJGRpZ2l0cyk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6IChcbiAgICAncHgnOiAxcHgsXG4gICAgJ2NtJzogMWNtLFxuICAgICdtbSc6IDFtbSxcbiAgICAnJSc6IDElLFxuICAgICdjaCc6IDFjaCxcbiAgICAncGMnOiAxcGMsXG4gICAgJ2luJzogMWluLFxuICAgICdlbSc6IDFlbSxcbiAgICAncmVtJzogMXJlbSxcbiAgICAncHQnOiAxcHQsXG4gICAgJ2V4JzogMWV4LFxuICAgICd2dyc6IDF2dyxcbiAgICAndmgnOiAxdmgsXG4gICAgJ3ZtaW4nOiAxdm1pbixcbiAgICAndm1heCc6IDF2bWF4LFxuICApO1xuXG4gIEBpZiBub3QgbGlzdC5pbmRleChtYXAua2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAuZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLm1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC5tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGlzdC5sZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpXG4gIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxpc3QubGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3tzdHJpbmcudW5xdW90ZShwYXJzZS1leHByZXNzaW9uKGxpc3QubnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyogVHlwb2dyYXBoeSAqL1xuXG5AaW1wb3J0ICcuLi9taXhpbnMvZm9udC1mYWNlJztcblxuLy8gRm9yIGdvb2dsZSBmb250cyBwbGVhc2UgdXNlIGh0dHBzOi8vZ29vZ2xlLXdlYmZvbnRzLWhlbHBlci5oZXJva3VhcHAuY29tL2ZvbnRzIGlmIHBvc3NpYmxlXG5cbi8qXG5AaW5jbHVkZSBhZGRGb250RmFjZSgnR3JhZWJlbmJhY2ggU2V0IDAxJywgJy4uLy4uL2ZvbnRzL0dyYWViZW5iYWNoU2V0MDEnLCAoJ3dvZmYyJywgJ3dvZmYnKSwgKFxuXHRcdGNyZWF0ZUZvbnRNYXAoJ0dyYWViZW5iYWNoU2V0MDEtUmVndWxhcicsIDQwMCksXG5cdFx0Y3JlYXRlRm9udE1hcCgnR3JhZWJlbmJhY2hTZXQwMS1Cb2xkJywgNzAwKVxuKSk7XG4qL1xuXG4vKiAxcmVtID0gMTBweCAqL1xuXG5odG1sIHtcblxuXHRmb250LXNpemU6IDUwJTtcblxuXHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wLW1cIikge1xuXHRcdGZvbnQtc2l6ZTogNTglO1xuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcC1sXCIpIHtcblx0XHRmb250LXNpemU6IDYyLjUlO1xuXHR9XG59XG4iLCJAZnVuY3Rpb24gY3JlYXRlRm9udE1hcCgkZmlsZSwgJHdlaWdodDpub3JtYWwsICRzdHlsZTpub3JtYWwpIHtcblx0JGRlZjogKFxuXHRcdFx0ZmlsZTogJGZpbGUsXG5cdFx0XHR3ZWlnaHQ6ICR3ZWlnaHQsXG5cdFx0XHRzdHlsZTogJHN0eWxlXG5cdCk7XG5cdEByZXR1cm4gJGRlZjtcbn1cblxuQG1peGluIGFkZEZvbnRGYWNlKCRmb250RmFtaWx5LCAkYmFzZVBhdGgsICRmb3JtYXRzLCAkZGVmTGlzdCkge1xuXHRAZWFjaCAkZGVmIGluICRkZWZMaXN0IHtcblx0XHQkc3JjOiAoKTtcblx0XHRAZWFjaCAkZm9ybWF0IGluICRmb3JtYXRzIHtcblx0XHRcdCRleHQ6ICRmb3JtYXQ7XG5cblx0XHRcdEBpZiAoJGZvcm1hdCA9PSAndHJ1ZXR5cGUnKSB7XG5cdFx0XHRcdCRleHQ6ICd0dGYnO1xuXHRcdFx0fVxuXG5cdFx0XHQkdXJsOiB1cmwoJyN7JGJhc2VQYXRofS8je21hcF9nZXQoJGRlZiwgJ2ZpbGUnKX0uI3skZXh0fScpIGZvcm1hdChxdW90ZSgkZm9ybWF0KSk7XG5cdFx0XHQkc3JjOiBhcHBlbmQoJHNyYywgJHVybCwgY29tbWEpO1xuXHRcdH1cblxuXHRcdEBmb250LWZhY2Uge1xuXHRcdFx0Zm9udC1mYW1pbHk6IHF1b3RlKCRmb250RmFtaWx5KTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBtYXBfZ2V0KCRkZWYsICd3ZWlnaHQnKTtcblx0XHRcdGZvbnQtc3R5bGU6IG1hcF9nZXQoJGRlZiwgJ3N0eWxlJyk7XG5cdFx0XHRmb250LWRpc3BsYXk6IHN3YXA7XG5cdFx0XHRzcmM6ICRzcmM7XG5cdFx0fVxuXHR9XG59XG5cbi8qIE1peGluIG9yaWdpbjogaHR0cHM6Ly9tYXJjLWVkLXJhZmZhbGxpLmdpdGh1Yi5pby8yMDE3LzEwLzE0L3Nhc3MtZm9udC1mYWNlLmh0bWwgKi8iLCJib2R5LCBodG1sIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG5cbmJvZHkge1xuXHRsaW5lLWhlaWdodDogdmFyKC0tYmFzZS10ZXh0LWxpbmUtaGVpZ2h0LCAxKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWJhc2UtdGV4dC1mb250LXdlaWdodCwgNDAwKTtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXByaW1hcnkpO1xuXHRmb250LXNpemU6IHZhcigtLWJhc2UtdGV4dC1zaXplKTtcblxuXHRjb2xvcjogdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9keS1jb2xvcik7XG5cblx0W2NvbG9yLW1vZGU9XCJkYXJrXCJdICYge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG5cdFx0Y29sb3I6IHZhcigtLWJvZHktY29sb3IpO1xuXHR9XG59XG5cbmEge1xuXHRjb2xvcjogdmFyKC0tcHJpbWFyeS1saW5rLWNvbG9yKTtcblxuXHRbY29sb3ItbW9kZT1cImRhcmtcIl0gJiB7XG5cdFx0Y29sb3I6IHZhcigtLXByaW1hcnktbGluay1jb2xvci1hbHQpO1xuXHR9XG59XG5cbi4tY29sb3JzLWludmVydGVkLFxuLnN0eWxlLWRhcmsge1xuXHRjb2xvcjogdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yLWFsdCk7XG5cdC0tc2VjdGlvbi10aXRsZS1jb2xvcjogdmFyKC0tc2VjdGlvbi10aXRsZS1jb2xvci1hbHQpO1xufVxuXG4ud3JhcHBlciB7XG5cdG1pbi1oZWlnaHQ6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcC0xOTIwJykge1xuXHRcdG1heC13aWR0aDogdmFyKC0tZGVza3RvcC13aWR0aC0xOTIwKTtcblx0XHRtYXJnaW4taW5saW5lOiBhdXRvO1xuXHR9XG59XG5cbi5zaXRlLWNvbnRlbnQge1xuXHRmbGV4LWdyb3c6IDE7XG59XG5cbi5zaXRlLWhlYWRlciwgLnNpdGUtY29udGVudCwgLnNpdGUtZm9vdGVyIHtcblx0ZmxleC1zaHJpbms6IDA7XG59XG5cbi5jb250YWluZXItZmx1aWQsXG4uY29udGFpbmVyLFxuLmNvbnRhaW5lci1jdXN0b20sXG4uaW5uZXItZnJhbWUge1xuXHRtYXJnaW4taW5saW5lOiBhdXRvO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmlubmVyLWZyYW1lLFxuLmNvbnRhaW5lcixcbi5jb250YWluZXItY3VzdG9tIHtcblx0cGFkZGluZy1pbmxpbmU6IHZhcigtLXBhZ2UtZ3V0dGVyKTtcblx0dHJhbnNpdGlvbjogbWF4LXdpZHRoIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XG59XG5cbi5jb250YWluZXItZmx1aWQge1xuXHRwYWRkaW5nLWlubGluZTogdmFyKC0tZ3JpZC1vdXRlci1tYXJnaW4sIDJlbSk7XG59XG5cbi5pbm5lci1mcmFtZSxcbi5jb250YWluZXIge1xuXHRtYXgtd2lkdGg6IGNhbGModmFyKC0tY29udGVudC13aWR0aCkgKyB2YXIoLS1wYWdlLWd1dHRlciwgMjBweCkgKiAyKTtcbn1cblxuLmNvbnRhaW5lci1jdXN0b20ge1xuXHRAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xuXHRcdG1heC13aWR0aDogY2FsYyh2YXIoLS1jb250ZW50LXdpZHRoKSArIHZhcigtLXBhZ2UtZ3V0dGVyLCAyMHB4KSAqIDIpO1xuXHR9XG5cdEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcblx0XHRtYXgtd2lkdGg6IHZhcigtLWwtY29udGFpbmVyLXdpZHRoLCB2YXIoLS1jb250ZW50LXdpZHRoKSk7XG5cdH1cbn1cblxuLnNpdGUtY29udGVudCB7XG5cdG1pbi1oZWlnaHQ6IDQwMHB4O1xufVxuXG5AaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xuXHQuZ3QsIC5ndC1zLCAuZ3QtbCB7XG5cdFx0cGFkZGluZy10b3A6IHZhcigtLXZlcnRpY2FsLWdhcCk7XG5cdH1cblx0LmdiLCAuZ2ItcywgLmdiLWwge1xuXHRcdHBhZGRpbmctYm90dG9tOiB2YXIoLS12ZXJ0aWNhbC1nYXApO1xuXHR9XG5cdC5tdCwgLm10LWN1c3RvbSB7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tdmVydGljYWwtZ2FwKTtcblx0fVxuXHQubWIsIC5tYi1jdXN0b20ge1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLXZlcnRpY2FsLWdhcCk7XG5cdH1cbn1cbkBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcblx0Lmd0IHtcblx0XHRwYWRkaW5nLXRvcDogdmFyKC0tZGVmYXVsdC10b3AtZ2FwLCB2YXIoLS12ZXJ0aWNhbC1nYXApKTtcblx0fVxuXHQuZ2Ige1xuXHRcdHBhZGRpbmctYm90dG9tOiB2YXIoLS1kZWZhdWx0LWJvdHRvbS1nYXAsIHZhcigtLXZlcnRpY2FsLWdhcCkpO1xuXHR9XG5cdC5ndC1zIHtcblx0XHRwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1kZWZhdWx0LXRvcC1nYXApIC8gMik7XG5cdH1cblx0LmdiLXMge1xuXHRcdHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLWRlZmF1bHQtYm90dG9tLWdhcCkgLyAyKTtcblx0fVxuXHQuZ3QtbCB7XG5cdFx0cGFkZGluZy10b3A6IGNhbGModmFyKC0tZGVmYXVsdC10b3AtZ2FwKSAqIDEuNSk7XG5cdH1cblx0LmdiLWwge1xuXHRcdHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLWRlZmF1bHQtYm90dG9tLWdhcCkgKiAxLjUpO1xuXHR9XG5cblx0Lm10IHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1kZWZhdWx0LXRvcC1nYXAsIHZhcigtLXZlcnRpY2FsLWdhcCkpO1xuXHR9XG5cdC5tYiB7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tZGVmYXVsdC1ib3R0b20tZ2FwLCB2YXIoLS12ZXJ0aWNhbC1nYXApKTtcblx0fVxuXHQubXQtY3VzdG9tIHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1tYXJnaW4tdG9wKTtcblx0fVxuXHQubWItY3VzdG9tIHtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1tYXJnaW4tYm90dG9tKTtcblx0fVxufVxuXG4iLCIvLyBCYXNlIHN0eWxlcyBmb3IgdGhlIGZpcnN0IHZpZXdwb3J0XG4vLyBIZWxwZXJzIGFuZCB1dGlsaXRpZXNcbkBpbXBvcnQgJ19faGVscGVycy9yZWJvb3QnO1xuLy8gQ29yZSBzZXR0aW5nc1xuQGltcG9ydCAnX19jb3JlL2NvcmUtbWl4aW5zJztcbkBpbXBvcnQgJ19fY29yZS9jb3JlLXNldHRpbmdzJztcbkBpbXBvcnQgJ19sYXlvdXQvX2Jhc2UnO1xuXG4vKioqKiBTaXRlIEhlYWRlciAqL1xuXG5AaW1wb3J0ICdfbGF5b3V0L19oZWFkZXInO1xuQGltcG9ydCBcInByb2plY3QtY3VzdG9tL2N1c3RvbV9faGVhZGVyXCI7XG4vLyBTZWFyY2ggY29tcG9uZW50IChyZW1vdmUgaWYgbm8gc2VhcmNoIGluIGhlYWRlcilcbi8vIEBpbXBvcnQgXCJfbGF5b3V0L2hlYWRlci9ibG9ja3Mvc2l0ZV9zZWFyY2hcIjtcbi8vIFdvb2NvbW1lcmNlIFx0XHRcdFx0XHRcdFx0XHRcdChyZW1vdmUgaWYgbm8gV29vQ29tbWVyY2UpXG4vLyBAaW1wb3J0IFwiX2xheW91dC9oZWFkZXIvYmxvY2tzL2FjY291bnRcIjtcbi8vIEBpbXBvcnQgXCJfbGF5b3V0L2hlYWRlci9ibG9ja3MvY2FydFwiO1xuXG4vKioqKiBFbmQgSGVhZGVyICovXG5cblxuLyogQWJvdmUgdGhlIGZvbGQgbW9kdWxlcyAqL1xuXG5AaW1wb3J0IFwiX21vZHVsZXMvYmFubmVyc1wiO1xuQGltcG9ydCBcIl9tb2R1bGVzL3NpZGVuYXYvYy1zY3JvbGwtZG93blwiO1xuQGltcG9ydCBcIl9tb2R1bGVzL2hlYWRpbmdzXCI7XG5AaW1wb3J0IFwiX2NvbXBvbmVudHMvYnV0dG9uc1wiO1xuQGltcG9ydCBcIl9jb21wb25lbnRzL2ltYWdlXCI7XG4vLyBAaW1wb3J0IFwiX2NvbXBvbmVudHMv0YEtYmxvY2tcIjtcblxuLyogQ3JpdGljYWwgLSBjdXN0b20gKi9cblxuQGltcG9ydCBcInByb2plY3QtY3VzdG9tL19jdXN0b21fX2NyaXRpY2FsXCI7XG5AaW1wb3J0IFwicHJvamVjdC1jdXN0b20vY3VzdG9tX19tLWJhbm5lclwiO1xuQGltcG9ydCBcInByb2plY3QtY3VzdG9tL2N1c3RvbV9fZGVjb3JhdGlvbnNcIjsiLCIuc2l0ZS1oZWFkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcbiAgICBjb2xvcjogdmFyKC0taGVhZGVyLWxpbmstY29sb3IpO1xuICAgIHotaW5kZXg6IDk5O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcbiAgICAgICAgbWF4LWhlaWdodDogdmFyKC0tbmF2YmFyLWhlaWdodCk7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcbiAgICAgICAgcG9zaXRpb246IHZhcigtLWhlYWRlci1zdGlja3ktdHlwZSwgc3RpY2t5KTtcbiAgICAgICAgLmFkbWluLWJhciAmIHtcbiAgICAgICAgICAgIHRvcDogMjhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xvZ28ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcsIHN2ZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDYwcHg7XG4gICAgICAgICAgICBjb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLWhlYWRlci1sb2dvLXdpZHRoKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0taGVhZGVyLWxvZ28taGVpZ2h0KTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG5cbiAgICAmX19yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1uYXZiYXItZ2FwX3YpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb2wge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLW1haW4taGVhZGVyLWdhcC1iZXR3ZWVuLWl0ZW1zLCAxdncpO1xuICAgICAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XG5cbiAgICAgICAgYS5yaWdodCxcbiAgICAgICAgYS5sZWZ0IHtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcbiAgICAgICAgICAgICYuLWxlZnQge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuLWNlbnRlciB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi4tcmlnaHQge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193aWRnZXQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAuYy1ibG9ja19fYnRuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1tYWluLWhlYWRlci1nYXAtYmV0d2Vlbi1pdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc29jaWFsLWxpc3Qge1xuICAgICAgICBnYXA6IHZhcigtLW5hdmJhci1nYXBfaCk7XG4gICAgfVxuXG4gICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbn1cbiIsIi8qIEhlYWRlciBNYWluIFJvdyAqL1xuXG4uc2l0ZS1oZWFkZXJfX21haW4ge1xuXHQtLWhlYWRlci1saW5rLWNvbG9yOiB2YXIoLS1tYWluLWhlYWRlci1jb2xvcik7XG5cblx0Zm9udC13ZWlnaHQ6IHZhcigtLW1haW4taGVhZGVyLWZvbnQtd2VpZ2h0KTtcblx0dGV4dC10cmFuc2Zvcm06IHZhcigtLW1haW4taGVhZGVyLXRleHQtdHJhbnNmb3JtLCB1cHBlcmNhc2UpO1xuXHRmb250LXNpemU6IHZhcigtLW1haW4taGVhZGVyLWZvbnQtc2l6ZSwgMTZweCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1haW4taGVhZGVyLWJhY2tncm91bmQtY29sb3IpO1xuXG5cdC5zaXRlLWhlYWRlcl9fcm93IHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdH1cbn1cblxuLyogSGVhZGVyIFRvcCBSb3cgKi9cblxuLnNpdGUtaGVhZGVyX190b3Age1xuXHQtLWhlYWRlci1saW5rLWNvbG9yOiB2YXIoLS10b3AtaGVhZGVyLWNvbG9yKTtcblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10b3AtaGVhZGVyLWJhY2tncm91bmQtY29sb3IpO1xuXHRmb250LXNpemU6IHZhcigtLXNtYWxsZXItdGV4dC1zaXplKTtcblx0Y29sb3I6IHZhcigtLXRvcC1oZWFkZXItY29sb3IpO1xuXG5cdC5pbm5lci1mcmFtZSB7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHR9XG59XG5cbi8qIEhlYWRlciBCb3R0b20gUm93ICovXG5cbi5zaXRlLWhlYWRlcl9fYm90dG9tIHtcblx0LS1oZWFkZXItbGluay1jb2xvcjogdmFyKC0tYm90dG9tLWhlYWRlci1jb2xvcik7XG5cblx0Y29sb3I6IHZhcigtLWJvdHRvbS1oZWFkZXItY29sb3IpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3R0b20taGVhZGVyLWJhY2tncm91bmQtY29sb3IpO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcywgdHJhbnNmb3JtIC4zcztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0LmlubmVyLWZyYW1lIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxufSIsIi5pcy1zdGlja3kge1xuXG5cdC5zaXRlLWhlYWRlcl9fbWFpbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGVhZGVyLW1pbmktYmcsIHZhcigtLXByaW1hcnktY29sb3IxKSk7XG5cdFx0Ym94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIC4xKTtcblxuXHRcdC5zaXRlLWhlYWRlcl9fcm93IHtcblx0XHRcdHBhZGRpbmctYmxvY2s6IDFweDtcblx0XHR9XG5cdH1cblxuXHQuc2l0ZS1oZWFkZXJfX2xvZ28ge1xuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIikge1xuXHRcdFx0aGVpZ2h0OiA1MHB4O1xuXHRcdFx0bWF4LWhlaWdodDogNTBweDtcblx0XHRcdGltZywgc3ZnIHtcblx0XHRcdFx0bWF4LWhlaWdodDogNTBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuc2l0ZS1oZWFkZXJfX3RvcCB7XG5cdFx0LnNpdGUtaGVhZGVyX19yb3cge1xuXHRcdFx0bWF4LWhlaWdodDogMDtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxuXG5cdC5zaXRlLWhlYWRlcl9fYm90dG9tIHtcblx0XHRib2R5Om5vdCgubmF2LWFjdGl2ZSkgJiB7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDBweCk7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR6LWluZGV4OiAtMTtcblx0XHR9XG5cdH1cblxuXHQubmF2LW1haW5fX2J0bi4tZGVza3RvcCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxMHB4O1xuXHRcdHRvcDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0fVxufVxuIiwiQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xuXG4gICAgLm5hdmJhci1tb2JpbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHBhZGRpbmc6IDEwcHggdmFyKC0tcGFnZS1ndXR0ZXIpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLW5hdmJhci1oZWlnaHQpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oZWFkZXItbW9iaWxlLWJnKTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lubmVyIHtcbiAgICAgICAgICAgIHRvcDogdmFyKC0tbmF2YmFyLWhlaWdodCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oZWFkZXItbW9iaWxlLWJnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XG5cbiAgICAgICAgICAgIC5uYXYtYWN0aXZlICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggdmFyKC0tcGFnZS1ndXR0ZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2l0ZS1oZWFkZXJfX3dpZGdldCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXYtbWFpbl9fbGlua3Mge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA+IC5tZW51LWl0ZW0ge1xuICAgICAgICAgICAgICAgID4gYSwgLnBsYWluLW1lbnUtaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWxpbmstZ2FwKSAwO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGluay1zaXplLWwxKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtMjVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzgnIHZpZXdCb3g9JzAgMCAxNCA4JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdtNyAwIDcgNi40Nzc3TDEyLjM1NSA4IDcgMy4wNTUzIDEuNjQ1IDggMCA2LjQ3NzcgNyAwWicgZmlsbD0nJTIzZmZmJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3M7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5pcy10b2dnbGVkIHtcbiAgICAgICAgICAgICAgICAgICAgPiBhOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGluay1zaXplLWwyKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tbGluay1jb2xvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jdXJyZW50LW1lbnUtaXRlbSB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYnRuLWN1c3RvbSwgLmxpbmtzLWxpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1saW5rLWdhcCkgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uYXYtYWN0aXZlIHtcbiAgICAgICAgJiwgLnNpdGUtY29udGVudCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICAgIC5zaXRlLWNvbnRlbnQge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIi5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLXNpbXBsZS10ZXh0LFxuLnNpbmdsZS1wb3N0LFxuLmVycm9yNDA0LFxuLnNlYXJjaCB7XG5cdC5zaXRlLWhlYWRlcl9fbWFpbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGVhZGVyLW1pbmktYmcsIHZhcigtLXByaW1hcnktY29sb3IxKSk7XG5cdH1cblx0LnNpdGUtY29udGVudCB7XG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0tbmF2YmFyLWhlaWdodCk7XG5cdFx0fVxuXHR9XG59XG4iLCIuc2l0ZS1oZWFkZXJfX3RvcCB7XG5cdEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5zaXRlLWhlYWRlcl9fYm90dG9tIHtcblx0QGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLnNpdGUtaGVhZGVyX19tYWluIHtcblx0QGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xuXHQubmF2LW1haW5fX2J0bi4tZGVza3RvcCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcblx0Lm5hdi1tYWluX19idG4sXG5cdC5uYXZiYXItbW9iaWxlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59IiwiLyogTmF2YmFyIE1haW4gKi9cblxuLm5hdi1tYWluIHtcblx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG5cdFx0Jl9fbGlua3Mge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cblx0XHRcdD4gLm1lbnUtaXRlbSB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdFx0XHQ+IGEsXG5cdFx0XHRcdC5wbGFpbi1tZW51LWl0ZW0ge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHRcdFx0cGFkZGluZzogMCBjYWxjKHZhcigtLW1haW4taGVhZGVyLWdhcC1iZXR3ZWVuLWl0ZW1zLCAxdncpIC8gMik7XG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLW5hdmJhci1saW5rLWhlaWdodCk7XG5cdFx0XHRcdFx0Y29sb3I6IGN1cnJlbnRDb2xvcjtcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBmb250LXNpemUgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcblxuXHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0Y29sb3I6IHZhcigtLWhlYWRlci1saW5rLWNvbG9yLWhvdmVyLCB2YXIoLS1wcmltYXJ5LWNvbG9yMikpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jdXJyZW50LW1lbnUtaXRlbSB7XG5cdFx0PiBhIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1oZWFkZXItbGluay1jb2xvci1ob3ZlciwgdmFyKC0tcHJpbWFyeS1jb2xvcjIpKTtcblx0XHR9XG5cdH1cbn1cblxuLyogTmF2YmFyIFNlY29uZGFyeSAqL1xuXG4ubmF2LXNlY29uZGFyeSB7XG5cdCZfX2xpbmtzIHtcblx0XHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRcdFx0Z2FwOiB2YXIoLS1uYXZiYXItZ2FwX2gsIDF2dyk7XG5cdFx0fVxuXHR9XG5cblx0YSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRjb2xvcjogdmFyKC0taGVhZGVyLWxpbmstY29sb3IpO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHR9XG5cdH1cbn1cbiIsIi5uYXYtbWFpbiB7XG4gICAgLnN1Yi1tZW51IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xMHB4KTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWRyb3Bkb3duLXBhZGRpbmcpO1xuICAgICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1kcm9wZG93bi13aWR0aCk7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MsIHRyYW5zZm9ybSAuM3M7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kcm9wZG93bi1jb2xvcik7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1kcm9wZG93bi1mb250LXdlaWdodCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1kcm9wZG93bi1mb250LXNpemUpO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kcm9wZG93bi1jb2xvci1hY3RpdmUpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY3VycmVudC1tZW51LWl0ZW0gYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWNvbG9yLWFjdGl2ZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1lbnUtaXRlbS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWVudS1pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZW51LWl0ZW0tY2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWVudS1pdGVtLWltZy13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgICAgICAgICAgICAgaW1nLCBzdmcge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZW51LWl0ZW0ge1xuICAgICAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgOXB4IDE0cHggOXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tZHJvcGRvd24tYmcpIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZHJvcGRvd24tYmcpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDM0cHggcmdiYSgwLCA3LCA2MywgMC4xKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcbiAgICAgICAgICAgIC5tZW51LWl0ZW0taW1nLXdyYXBwZXIsXG4gICAgICAgICAgICAubWVudS1pdGVtLWNhcHRpb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIikge1xuXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDlweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDlweDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDEzNWRlZyk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZS1pbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgPiAuc3ViLW1lbnUge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5uYXYtbWFpbl9fYnRuIHtcblx0YWxsOiB1bnNldDtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGhlaWdodDogMzBweDtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHR0b3A6IDUwJTtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRjb2xvcjogdmFyKC0tYnVyZ2VyLWNvbG9yKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnVyZ2VyLWJnKTtcblx0cGFkZGluZzogMnB4IDVweDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDE1cHg7XG5cdHRyYW5zaXRpb246IGFsbCAuM3M7XG5cdHotaW5kZXg6IDEwO1xufVxuXG4uYnVyZ2VyLWljb24ge1xuXHR3aWR0aDogdmFyKC0tYnVyZ2VyLXdpZHRoKTtcblx0aGVpZ2h0OiAyMHB4O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjRzIGVhc2U7XG5cdGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblx0PiBzcGFuIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ZmxleDogbm9uZTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IHZhcigtLWJ1cmdlci1zZWdtZW50LWhlaWdodCk7XG5cdFx0YmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1cmdlci1zZWdtZW50LXJhZGl1cyk7XG5cblx0XHQmOmJlZm9yZSwgJjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWJ1cmdlci1zZWdtZW50LWhlaWdodCk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1idXJnZXItc2VnbWVudC1yYWRpdXMpO1xuXHRcdFx0YmFja2dyb3VuZDogaW5oZXJpdDtcblx0XHRcdHRyYW5zaXRpb246IGFsbCAuNHMgZWFzZTtcblx0XHR9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHR0b3A6IGNhbGModmFyKC0tYnVyZ2VyLXNlZ21lbnQtZ2FwKSAqIC0xKTtcblx0XHR9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdHRvcDogdmFyKC0tYnVyZ2VyLXNlZ21lbnQtZ2FwKTtcblx0XHR9XG5cdH1cblxuXHQuaXMtYWN0aXZlICYge1xuXHRcdD4gc3BhbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xuXG5cdFx0XHQmOmJlZm9yZSxcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLnNpdGUtc2VhcmNoIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0ZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGhlaWdodDogdmFyKC0tc2VhcmNoLXNpemUpO1xuXHR3aWR0aDogdmFyKC0tc2VhcmNoLXNpemUpO1xuXG5cdCYuLWZ1bGwge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG5cblx0Jl9fdG9nZ2xlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDVweDtcblx0XHR0b3A6IDA7XG5cdFx0aGVpZ2h0OiB2YXIoLS1zZWFyY2gtc2l6ZSk7XG5cdFx0d2lkdGg6IHZhcigtLXNlYXJjaC1zaXplKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWFyY2gtYnRuLWJnKTtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1zZWFyY2gtYnRuLXJhZGl1cyk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0cGFkZGluZzogNXB4O1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRcdHotaW5kZXg6IDEwO1xuXHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3M7XG5cblx0XHQmLmlzLWFjdGl2ZSB7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdC0taGVhZGVyLWxpbmstY29sb3I6IHZhcigtLWhlYWRlci1saW5rLWNvbG9yLWhvdmVyKTtcblx0XHR9XG5cblx0XHQuLWZ1bGwgJiB7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCZfX2ljb24ge1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW46IGF1dG87XG5cdFx0ZmlsbDogdmFyKC0taGVhZGVyLWxpbmstY29sb3IpO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG5cblx0W3R5cGU9J3N1Ym1pdCddIHtcblx0XHRyaWdodDogMDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGZvbnQtc2l6ZTogMDtcblx0XHRoZWlnaHQ6IHZhcigtLXNlYXJjaC1oZWlnaHQpO1xuXHRcdHdpZHRoOiAzMHB4O1xuXHRcdCY6Zm9jdXMge1xuXHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHR9XG5cdFx0Li10b2dnbGUgJixcblx0XHQuLWZ1bGwgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGZvbnQtc2l6ZTogMDtcblx0XHRcdGhlaWdodDogMzBweDtcblx0XHRcdHdpZHRoOiAzMHB4O1xuXHRcdH1cblx0XHQuLXBvcHVwICYge1xuXHRcdFx0aGVpZ2h0OiA1MHB4O1xuXHRcdH1cblx0fVxuXG59XG5cbi5zZWFyY2gtZmllbGQge1xuXHRwYWRkaW5nOiA1cHggMTBweDtcblx0aGVpZ2h0OiB2YXIoLS1zZWFyY2gtaGVpZ2h0KTtcblx0Ym9yZGVyOiBub25lO1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRtYXJnaW46IDA7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXNlYXJjaC1yYWRpdXMpO1xuXHRmb250LXNpemU6IDE2cHg7XG5cdHdpZHRoOiB2YXIoLS1zZWFyY2gtd2lkdGgpO1xuXG5cdC4tdG9nZ2xlICYge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcblx0XHRtYXgtd2lkdGg6IDA7XG5cdFx0dHJhbnNpdGlvbjogYWxsIC4ycztcblx0fVxuXG5cdC4tcG9wdXAgJiB7XG5cdFx0cGFkZGluZzogNXB4IDEwcHg7XG5cdFx0aGVpZ2h0OiA1MHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IDIuMnJlbTtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cblxuLyoqXG4gKiBTZWFyY2ggT3ZlcmxheVxuICovXG5cbi5zZWFyY2gtb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQuLXRvZ2dsZSAmIHtcblx0XHRtYXgtd2lkdGg6IDA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiBhbGwgLjNzO1xuXG5cdFx0Ji5pcy1zaG93biB7XG5cdFx0XHRtYXgtd2lkdGg6IGNhbGModmFyKC0tc2VhcmNoLXdpZHRoKSArIDIwcHgpO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuXHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWFyY2gtb3V0ZXItYmcpO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tc2VhcmNoLW91dGVyLWdhcCk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1zZWFyY2gtcmFkaXVzKSAwIHZhcigtLXNlYXJjaC1yYWRpdXMpIHZhcigtLXNlYXJjaC1yYWRpdXMpO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tc2VhcmNoLW91dGVyLWJvcmRlcik7XG5cdFx0XHR6LWluZGV4OiAxMDtcblxuXHRcdFx0LnNlYXJjaC1maWVsZCB7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xuXHRcdFx0XHRtYXgtd2lkdGg6IHZhcigtLXNlYXJjaC13aWR0aCk7XG5cdFx0XHR9XG5cblx0XHRcdCsgLnNpdGUtc2VhcmNoX190b2dnbGUge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xuXHRcdFx0fVxuXG5cdFx0XHQuc2VhcmNoLW92ZXJsYXlfX2Nsb3NlIHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmX19jbG9zZSB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpO1xuXHRcdFx0dG9wOiAxNHB4O1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tc2VhcmNoLW91dGVyLWJnKTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlYXJjaC1vdXRlci1ib3JkZXIpO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdGhlaWdodDogMzZweDtcblx0XHRcdHdpZHRoOiAzOHB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMjBweCAyMHB4IDAgMDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0ei1pbmRleDogMTAwMDtcblx0XHR9XG5cdH1cblxuXHQuLWZ1bGwgJiB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdCZfX2Nsb3NlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0Li1wb3B1cCAmIHtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHR6LWluZGV4OiAxMDEwO1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjUpO1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjNzO1xuXHRcdFx0ei1pbmRleDogLTE7XG5cdFx0fVxuXG5cdFx0Ji5pcy1oaWRkZW4ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHRmb3JtIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXgtd2lkdGg6IDQwMHB4O1xuXHRcdH1cblxuXHRcdCY6bm90KC5pcy1oaWRkZW4pIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlYXJjaC1vdXRlci1ib3JkZXIpO1xuXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0YW5pbWF0aW9uOiBvdmVybGF5LWFwcGVhciAuM3MgY3ViaWMtYmV6aWVyKC41NSwgLjA2LCAuNjgsIC4xOSkgZm9yd2FyZHM7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jl9fY2xvc2Uge1xuXHRcdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdFx0d2lkdGg6IDQwcHg7XG5cdFx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0dG9wOiA0MHB4O1xuXHRcdFx0cmlnaHQ6IDIwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2FhYTtcblx0XHRcdGNvbG9yOiAjYWFhO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0ei1pbmRleDogMTAwMDtcblx0XHR9XG5cdH1cbn1cblxuXG5Aa2V5ZnJhbWVzIG92ZXJsYXktYXBwZWFyIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuIiwiLmxpbmtzLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICZfX2l0ZW0ge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC4tbGVmdCAmIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLi1yaWdodCAmIHtcbiAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnRuIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICBpbWcsIHN2ZyB7XG4gICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgIG1heC13aWR0aDogMjBweDtcbiAgICB9XG59XG4iLCIvKiBIZWFkZXIgKi9cblxuOnJvb3Qge1xuICAgIC0tbmF2YmFyLWhlaWdodDogMTMwcHg7IC8vIGhlYWRlciBoZWlnaHQsIFRPRE86IGNhbGMgaXQgd2l0aCBKU1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG4gICAgICAgIC0tbmF2YmFyLWhlaWdodDogNzBweDtcbiAgICB9XG59XG5cbi5zaXRlLWhlYWRlciB7XG4gICAgLS1uYXZiYXItZ2FwX3Y6IDI1cHg7XG4gICAgLS1uYXZiYXItZ2FwX2g6IDF2dztcbiAgICAtLW5hdmJhci1saW5rLWhlaWdodDogMzBweDtcbiAgICAtLWhlYWRlci1saW5rLWNvbG9yOiB2YXIoLS1tYWluLWhlYWRlci1jb2xvcik7XG4gICAgLS1oZWFkZXItbGluay1jb2xvci1ob3ZlcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XG4gICAgLS1oZWFkZXItbG9nby13aWR0aDogMTAwJTtcbiAgICAtLWhlYWRlci1sb2dvLWhlaWdodDogODBweDtcbiAgICAtLWRyb3Bkb3duLWJnOiAjZmZmO1xuICAgIC0tZHJvcGRvd24tY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IzKTtcbiAgICAtLWRyb3Bkb3duLWNvbG9yLWFjdGl2ZTogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XG4gICAgLS1kcm9wZG93bi1mb250LXNpemU6IDE2cHg7XG4gICAgLS1kcm9wZG93bi1mb250LXdlaWdodDogNzAwO1xuICAgIC0tZHJvcGRvd24tcGFkZGluZzogMzBweCAzMHB4IDA7XG4gICAgLS1kcm9wZG93bi13aWR0aDogY2FsYygxMDAlICsgMzBweCk7XG4gICAgLS1jb250ZW50LXdpZHRoOiB2YXIoLS1kZXNrdG9wLXdpZHRoLW0pO1xuICAgIC5zaXRlLWhlYWRlcl9fbWFpbiB7XG4gICAgICAgIC5zaXRlLWhlYWRlcl9fY29sIHtcbiAgICAgICAgICAgICYuLWNlbnRlciB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5saW5rcy1saXN0IHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1tYWluLWhlYWRlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi13cmFwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gICAgICAgICAgICBncmlkLWdhcDogMy4zdnc7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1uYXZiYXItZ2FwX3YpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XG4gICAgICAgICAgICAubmF2LW1haW4ge1xuICAgICAgICAgICAgICAgIC5jdXJyZW50LW1lbnUtYW5jZXN0b3IsXG4gICAgICAgICAgICAgICAgLmN1cnJlbnQtbWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgJj4ucGxhaW4tbWVudS1pdGVtLFxuICAgICAgICAgICAgICAgICAgICAmPmEge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucGxhaW4tbWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAubWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyLjN2dztcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYtaGFzLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNDUlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogM3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgMHB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjUlLCA1MHB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcywgdHJhbnNmb3JtIDAuM3M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjUlLCAwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmPi5zdWItbWVudSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5pcy1zdGlja3kge1xuICAgICAgICAuc2l0ZS1oZWFkZXJfX21haW4ge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICYtb3V0ZXJ3cmFwIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAxMHB4IDIwcHggcmdiYSg2MSwgMTc1LCAyMDEsIDAuMSk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCAyMHB4IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLXdyYXAge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5uYXZiYXItbW9iaWxlIHtcbiAgICAtLWJ1cmdlci13aWR0aDogMjdweDtcbiAgICAtLWJ1cmdlci1zZWdtZW50LWhlaWdodDogNHB4O1xuICAgIC0tYnVyZ2VyLXNlZ21lbnQtZ2FwOiAxMHB4O1xuICAgIC0tYnVyZ2VyLXNlZ21lbnQtcmFkaXVzOiA1cHg7XG4gICAgLS1idXJnZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IzKTtcbiAgICAtLWJ1cmdlci1iZzogdHJhbnNwYXJlbnQ7XG4gICAgLS1oZWFkZXItbW9iaWxlLWJnOiAjZmZmO1xuICAgIC0tbGluay1zaXplLWwxOiAyMnB4O1xuICAgIC0tbGluay1zaXplLWwyOiAyMHB4O1xuICAgIC0tbGluay1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xuICAgIC0tbGluay1nYXA6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgLnNpdGUtaGVhZGVyLmlzLXN0aWNreSAmIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taGVhZGVyLW1vYmlsZS1iZyk7XG4gICAgfVxuICAgICZfX2lubmVyIHtcbiAgICAgICAgLnNpdGUtaGVhZGVyX193aWRnZXQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAmfi5zaXRlLWhlYWRlcl9fd2lkZ2V0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5uYXYtbWFpbl9fYnRuIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggYXV0byB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubGlua3MtbGlzdCxcbiAgICAubmF2LW1haW5fX2xpbmtzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IyKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgJj5saSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWxpbmstc2l6ZS1sMSk7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jdXJyZW50LW1lbnUtYW5jZXN0b3IsXG4gICAgICAgIC5jdXJyZW50LW1lbnUtaXRlbSB7XG4gICAgICAgICAgICAmPi5wbGFpbi1tZW51LWl0ZW0sXG4gICAgICAgICAgICAmPmEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgY3VycmVudENvbG9yO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMC45ZW07XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlLWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaXMtdG9nZ2xlZCB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjMpO1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tbGluay1nYXApIDA7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY+bGkge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC4yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jdXJyZW50LW1lbnUtYW5jZXN0b3IsXG4gICAgICAgICAgICAuY3VycmVudC1tZW51LWl0ZW0ge1xuICAgICAgICAgICAgICAgICY+LnBsYWluLW1lbnUtaXRlbSxcbiAgICAgICAgICAgICAgICAmPmEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5saW5rcy1saXN0X19pdGVtIHtcbiAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tbGluay1nYXApIDA7XG4gICAgICAgIH1cbiAgICAgICAgLmMtYnRuX190eHQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYy1idG4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxufSIsIi8qKlxuICMjIyMjIyMjIyMjIyMjIyMjIyMjXG4gIyAgIE1vZHVsZTogQkFOTkVSU1xuICMjIyMjIyMjIyMjIyMjIyMjIyMjXG4gKi9cblxuLyogTW9kdWxlIENvcmUgKi9cblxuQGltcG9ydCBcImJhbm5lcnMvX2Jhbm5lcnMtY29yZVwiO1xuXG4vKiBCYXNlIExheW91dCBTdHJ1Y3R1cmUgKi9cblxuQGltcG9ydCBcImJhbm5lcnMvX2Jhbm5lcnMtbGF5b3V0XCI7XG4iLCIvKipcbiAjIyMjIyMjIyMjIyMjIyMjXG4gIyAgIE1vZHVsZSBCQU5ORVJTOiBDb3JlXG4gIyMjIyMjIyMjIyMjIyMjI1xuICovXG5cbi5tLWJhbm5lciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cblx0LmwtZ3QtY3VzdG9tIHtcblx0XHQtLXYtZ2FwLXRvcDogdmFyKC0tbC1ndC1wYWRkaW5nKVxuXHR9XG5cdC5sLWdiLWN1c3RvbSB7XG5cdFx0LS12LWdhcC1ib3Q6IHZhcigtLWwtZ2ItcGFkZGluZylcblx0fVxuXG5cdC5sLWd0LWQge1xuXHRcdC0tdi1nYXAtdG9wOiA1JTtcblx0fVxuXHQubC1nYi1kIHtcblx0XHQtLXYtZ2FwLWJvdDogNSU7XG5cdH1cblxuXHQmX19jb250YWluZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtaW4taGVpZ2h0OiB2YXIoLS1iYW5uZXJIZWlnaHQsIGF1dG8pO1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcblx0XHRcdG1pbi1oZWlnaHQ6IDMwdmg7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0Lm0tYmFubmVyX19pbm5lciB7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmX19pbm5lciB7XG5cdFx0ZGlzcGxheTogZmxleDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcblx0XHRcdG1pbi1oZWlnaHQ6IDEwMCU7XG5cdFx0fVxuXG5cdFx0Ji5mbGV4LWNlbnRlciB7XG5cdFx0XHQubC1iYW5uZXIge1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdH1cblxuXHRcdFx0LmMtYmxvY2tfX2J0biB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmZsZXgtcmlnaHQge1xuXHRcdFx0LmwtYmFubmVyIHtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmX19tZWRpYSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGluc2V0OiAwO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuXHRcdFx0Ji5iZy1yLTUwIHtcblx0XHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdFx0bGVmdDogYXV0bztcblx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdCYuYmctbC01MCB7XG5cdFx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRcdHJpZ2h0OiBhdXRvO1xuXHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGltZywgdmlkZW8sIGlmcmFtZSB7XG5cdFx0XHRvYmplY3QtZml0OiBjb3Zlcjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxuXG5cdC5maXhlZC1oZWFkZXIuc2luZ2xlLXByb2R1Y3QgJiB7XG5cdFx0bWF4LWhlaWdodDogMjAwcHg7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXHR9XG5cblx0LyoqXG5cdCAqKioqKioqKioqKioqKipcblx0ICoqICBWYXJpYXRpb25zXG5cdCAqKioqKioqKioqKioqKipcblx0ICogIC5tLWJhbm5lci0tc21hbGwsIC0tbWVkaXVtLCAtLWZ1bGxcblx0ICovXG5cblx0QGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcblxuXHRcdCYtLWJsb2cge1xuXHRcdFx0LS1iYW5uZXJIZWlnaHQ6IHZhcigtLWJhbm5lci1oZWlnaHQtLWJsb2csIDQyMHB4KTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cblx0XHQmLS1zbWFsbCB7XG5cdFx0XHQtLWJhbm5lckhlaWdodDogdmFyKC0tYmFubmVyLWhlaWdodC0tc21hbGwsIDMwMHB4KTtcblx0XHR9XG5cblx0XHQmLS1tZWRpdW0ge1xuXHRcdFx0LS1iYW5uZXJIZWlnaHQ6IHZhcigtLWJhbm5lci1oZWlnaHQtLW1lZGl1bSwgNDUwcHgpO1xuXHRcdH1cblxuXHRcdCYtLWZ1bGwge1xuXHRcdFx0Lm0tYmFubmVyX19jb250YWluZXIge1xuXHRcdFx0XHQtLWJhbm5lckhlaWdodDogY2FsYyh2YXIoLS1iYW5uZXItaGVpZ2h0LS1mdWxsLCAxMDB2aCkgLSB2YXIoLS1uYXZiYXItaGVpZ2h0KSk7XG5cdFx0XHRcdG1heC1oZWlnaHQ6IDk2MHB4O1xuXHRcdFx0XHRoZWlnaHQ6IHZhcigtLWJhbm5lckhlaWdodCk7XG5cblx0XHRcdFx0LnN0YXRpYy1oZWFkZXIgJiB7XG5cdFx0XHRcdFx0LS1iYW5uZXJIZWlnaHQ6IHZhcigtLWJhbm5lci1oZWlnaHQtLWZ1bGwsIDEwMHZoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG59XG4iLCIvKipcbiAjIyMjIyMjIyMjIyMjIyMjXG4gIyAgIE1vZHVsZSBCQU5ORVJTOiBCYXNlIExheW91dFxuICMjIyMjIyMjIyMjIyMjIyNcbiAqL1xuXG4ubC1iYW5uZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHR3aWR0aDogMTAwJTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAyO1xuXHRnYXA6IDIwcHg7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS12LWdhcC10b3AsIDApO1xuXHRwYWRkaW5nLWJvdHRvbTogIHZhcigtLXYtZ2FwLWJvdCwgMCk7XG5cblx0QGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR9XG5cblx0Jl9fbWVkaWEge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcblx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXHRcdH1cblx0XHQuYy1pbWFnZSB7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHQmX190ZXh0IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0Y29sb3I6IHZhcigtLXByaW1hcnktdGV4dC1jb2xvci1hbHQpO1xuXG5cdFx0LnN0eWxlLWxpZ2h0ICYge1xuXHRcdFx0Y29sb3I6IHZhcigtLXByaW1hcnktdGV4dC1jb2xvcik7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIikge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRtYXgtd2lkdGg6IHZhcigtLWNvbHVtbnMtcmF0aW8pO1xuXHRcdFx0ZmxleDogMCAwIHZhcigtLWNvbHVtbnMtcmF0aW8pO1xuXG5cdFx0XHQuaXMtdmVydGljYWwgJiB7XG5cdFx0XHRcdGZsZXg6IGF1dG87XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmMtYmxvY2tfX2JvZHkge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cblx0Lm9yZGVyLXJldmVyc2UgJiB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXHR9XG5cblx0LmlzLXZlcnRpY2FsICYge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxuXG5cdC5pcy12ZXJ0aWNhbC5vcmRlci1yZXZlcnNlICYge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcblx0fVxufVxuIiwiLnNjcm9sbC1kb3duIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZXR0ZXItc3BhY2luZzogMC4yZW07XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0cGFkZGluZy10b3A6IDE1cHg7XG5cdHotaW5kZXg6IDM7XG5cblx0Li1jb2xvcnMtaW52ZXJ0ZWQgJixcblx0LnN0eWxlLWRhcmsgJiB7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdH1cblxuXHQmLnNkLWxlZnQge1xuXHRcdGxlZnQ6IDA7XG5cdFx0QGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wLWwnKSB7XG5cdFx0XHRsZWZ0OiAxNXB4O1xuXHRcdH1cblx0fVxuXHQmLnNkLXJpZ2h0IHtcblx0XHRyaWdodDogMDtcblx0XHRAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AtbCcpIHtcblx0XHRcdHJpZ2h0OiAxNXB4O1xuXHRcdH1cblx0fVxuXHQmLnNkLWxlZnQsXG5cdCYuc2QtcmlnaHQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdHRvcDogNTAlO1xuXG5cdFx0LnNjcm9sbC1kb3duX190eHQge1xuXHRcdFx0d3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdH1cblx0XHQuc2Nyb2xsLWRvd25fX2ljbyB7XG5cdFx0XHRtYXJnaW46IDIwcHggMDtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblx0Ji5zZC1jZW50ZXIge1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0Ym90dG9tOiA1MHB4O1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXHRcdGltZyB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbjogMTBweCBhdXRvO1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuIiwiLyogSGVhZGluZyBDb21wb25lbnQgKi9cblxuQGltcG9ydCBcImhlYWRpbmdzL19oZWFkaW5ncy1jb3JlXCI7XG5cbkBpbXBvcnQgXCJoZWFkaW5ncy9faGVhZGluZ3MtbGF5b3V0c1wiOyIsIi8qKlxuICogSEVBRElORyBNb2R1bGVcbiAqXG4gKiBTdGFuZGFsb25lIGhlYWRpbmcgc2VsZWN0b3JzLCB0aXRsZSwgcHJlL3N1Yi10aXRsZVxuICpcbiAqL1xuXG4uLWgxLCAuaXMtd3lzaXd5ZyBoMSB7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1oMS1saW5lLWhlaWdodCwgMSk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1oMS1mb250LXdlaWdodCwgNjAwKTtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWgxLWZvbnQpO1xuXHRtYXJnaW4tYm90dG9tOiB2YXIoLS1oMS1tYXJnaW4tYm90dG9tLCAuNWVtKTtcblx0dGV4dC10cmFuc2Zvcm06IHZhcigtLWgxLXRleHQtdHJhbnNmb3JtKTtcblx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLWgxLWxldHRlci1zcGFjaW5nLCAwKTtcblx0Zm9udC1zaXplOiAje1wiY2xhbXAoY2FsYyh2YXIoLS1oMS1mb250LXNpemUtbW9iaWxlKSAqIDEuMjUpLCB2YXIoLS1oLWNsYW1wLWZvcm11bGEpLCB2YXIoLS1oMS1mb250LXNpemUpKVwifTtcblx0Y29sb3I6IHZhcigtLW1haW4tdGl0bGUtY29sb3IpO1xuXHQuLWNvbG9ycy1pbnZlcnRlZCAmLFxuXHQuc3R5bGUtZGFyayAmIHtcblx0XHRjb2xvcjogdmFyKC0tbWFpbi10aXRsZS1jb2xvci1hbHQpO1xuXHR9XG59XG4uLWgyLCAuaXMtd3lzaXd5ZyBoMiB7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1oMi1saW5lLWhlaWdodCwgMSk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1oMi1mb250LXdlaWdodCwgNjAwKTtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWgyLWZvbnQpO1xuXHR0ZXh0LXRyYW5zZm9ybTogdmFyKC0taDItdGV4dC10cmFuc2Zvcm0pO1xuXHRsZXR0ZXItc3BhY2luZzogdmFyKC0taDItbGV0dGVyLXNwYWNpbmcsIDApO1xuXHRmb250LXNpemU6ICN7XCJjbGFtcChjYWxjKHZhcigtLWgyLWZvbnQtc2l6ZS1tb2JpbGUpICogMS4yNSksIHZhcigtLWgtY2xhbXAtZm9ybXVsYSksIHZhcigtLWgyLWZvbnQtc2l6ZSkpXCJ9O1xuXHRtYXJnaW4tYm90dG9tOiB2YXIoLS1oMi1tYXJnaW4tYm90dG9tLCAuNWVtKTtcbn1cbi4taDMsIC5pcy13eXNpd3lnIGgzIHtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWgzLWxpbmUtaGVpZ2h0LCAxKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWgzLWZvbnQtd2VpZ2h0LCA2MDApO1xuXHRmb250LWZhbWlseTogdmFyKC0taDMtZm9udCk7XG5cdHRleHQtdHJhbnNmb3JtOiB2YXIoLS1oMy10ZXh0LXRyYW5zZm9ybSk7XG5cdGxldHRlci1zcGFjaW5nOiB2YXIoLS1oMy1sZXR0ZXItc3BhY2luZywgMCk7XG5cdGZvbnQtc2l6ZTogI3tcImNsYW1wKGNhbGModmFyKC0taDMtZm9udC1zaXplLW1vYmlsZSkgKiAxLjI1KSwgdmFyKC0taC1jbGFtcC1mb3JtdWxhKSwgdmFyKC0taDMtZm9udC1zaXplKSlcIn07XG5cdG1hcmdpbi1ib3R0b206IHZhcigtLWgzLW1hcmdpbi1ib3R0b20sIC41ZW0pO1xufVxuLi1oNCwgLmlzLXd5c2l3eWcgaDQge1xuXHRsaW5lLWhlaWdodDogdmFyKC0taDQtbGluZS1oZWlnaHQsIDEpO1xuXHRmb250LXdlaWdodDogdmFyKC0taDQtZm9udC13ZWlnaHQsIDYwMCk7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1oNC1mb250KTtcblx0dGV4dC10cmFuc2Zvcm06IHZhcigtLWg0LXRleHQtdHJhbnNmb3JtKTtcblx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLWg0LWxldHRlci1zcGFjaW5nLCAwKTtcblx0Zm9udC1zaXplOiAje1wiY2xhbXAoY2FsYyh2YXIoLS1oNC1mb250LXNpemUtbW9iaWxlKSAqIDEuMjUpLCB2YXIoLS1oLWNsYW1wLWZvcm11bGEpLCB2YXIoLS1oNC1mb250LXNpemUpKVwifTtcblx0bWFyZ2luLWJvdHRvbTogdmFyKC0taDQtbWFyZ2luLWJvdHRvbSwgLjVlbSk7XG59XG5cbi5jLWhlYWRpbmcge1xuXG5cdCZfX3RpdGxlIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRcdHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuXHRcdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHRcdG1hcmdpbjogMDtcblx0XHR6LWluZGV4OiAxO1xuXG5cdFx0Y29sb3I6IHZhcigtLW1haW4tdGl0bGUtY29sb3IpO1xuXG5cdFx0Li1jb2xvcnMtaW52ZXJ0ZWQgJixcblx0XHQuc3R5bGUtZGFyayAmIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1tYWluLXRpdGxlLWNvbG9yLWFsdCk7XG5cdFx0fVxuXG5cdFx0LnRleHQtY2VudGVyICYge1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0fVxuXHR9XG5cblx0Jl9fcHJlIHtcblx0XHRjb2xvcjogdmFyKC0tcHJldGl0bGUtY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IyKSk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLXByZXRpdGxlLWxpbmUtaGVpZ2h0LCAxLjQpO1xuXHRcdGxldHRlci1zcGFjaW5nOiB2YXIoLS1wcmV0aXRsZS1sZXR0ZXItc3BhY2luZywgMCk7XG5cdFx0bWFyZ2luOiB2YXIoLS1wcmV0aXRsZS1tYXJnaW4tYm90dG9tLCAuNWVtKSAwO1xuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1wcmV0aXRsZS1mb250KTtcblx0XHRmb250LXdlaWdodDogdmFyKC0tcHJldGl0bGUtZm9udC13ZWlnaHQsIDUwMCk7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHZhcigtLXByZXRpdGxlLXRleHQtdHJhbnNmb3JtKTtcblx0XHRmb250LXNpemU6ICN7XCJjbGFtcCh2YXIoLS1wcmV0aXRsZS1mb250LXNpemUtbW9iaWxlLCAxOHB4KSwgdmFyKC0taC1jbGFtcC1mb3JtdWxhKSwgdmFyKC0tcHJldGl0bGUtZm9udC1zaXplLCAyLjRyZW0pKVwifTtcblxuXHRcdC4tY29sb3JzLWludmVydGVkICYsXG5cdFx0LnN0eWxlLWRhcmsgJiB7XG5cdFx0XHRjb2xvcjogdmFyKC0tcHJldGl0bGUtY29sb3ItYWx0KTtcblx0XHR9XG5cdH1cblxuXHQmX19zdWIge1xuXHRcdGNvbG9yOiB2YXIoLS1zdWJ0aXRsZS1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcjIpKTtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tc3VidGl0bGUtbGluZS1oZWlnaHQsIDEuNCk7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLXN1YnRpdGxlLWxldHRlci1zcGFjaW5nLCAwKTtcblx0XHRtYXJnaW46IHZhcigtLXN1YnRpdGxlLW1hcmdpbi1ib3R0b20sIC41ZW0pIDA7XG5cdFx0Zm9udC1mYW1pbHk6IHZhcigtLXN1YnRpdGxlLWZvbnQpO1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1zdWJ0aXRsZS1mb250LXdlaWdodCwgNTAwKTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdmFyKC0tc3VidGl0bGUtdGV4dC10cmFuc2Zvcm0pO1xuXHRcdGZvbnQtc2l6ZTogI3tcImNsYW1wKHZhcigtLXN1YnRpdGxlLWZvbnQtc2l6ZS1tb2JpbGUsIDE4cHgpLCB2YXIoLS1oLWNsYW1wLWZvcm11bGEpLCB2YXIoLS1zdWJ0aXRsZS1mb250LXNpemUsIDIuNHJlbSkpXCJ9O1xuXG5cdFx0Li1jb2xvcnMtaW52ZXJ0ZWQgJixcblx0XHQuc3R5bGUtZGFyayAmIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1zdWJ0aXRsZS1jb2xvci1hbHQpO1xuXHRcdH1cblx0fVxuXG5cdCZfX3ByZWFtYmxlIHtcblx0XHR3aWR0aDogY2FsYygxMDB2dyAtIDguMXB4KTtcblx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHRyaWdodDogNTAlO1xuXHRcdG1hcmdpbi1sZWZ0OiAtNTB2dztcblx0XHRtYXJnaW4tcmlnaHQ6IC01MHZ3O1xuXHRcdGhlaWdodDogMTBweDtcblxuXHRcdGNvbG9yOiB2YXIoLS1iYWNrdGl0bGUtY29sb3IpO1xuXHRcdGxldHRlci1zcGFjaW5nOiB2YXIoLS1iYWNrdGl0bGUtbGV0dGVyLXNwYWNpbmcsIDApO1xuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1iYWNrdGl0bGUtZm9udCk7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWJhY2t0aXRsZS1mb250LXdlaWdodCwgNTAwKTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdmFyKC0tYmFja3RpdGxlLXRleHQtdHJhbnNmb3JtKTtcblx0XHRvcGFjaXR5OiAuMjtcblx0XHRsaW5lLWhlaWdodDogLjg7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHR0b3A6IDA7XG5cdFx0cGFkZGluZzogLjJlbSAwO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tYmFja3RpdGxlLWZvbnQtc2l6ZSwgMi40cmVtKTtcblxuXHRcdC4tY29sb3JzLWludmVydGVkICYsXG5cdFx0LnN0eWxlLWRhcmsgJiB7XG5cdFx0XHRjb2xvcjogdmFyKC0tYmFja3RpdGxlLWNvbG9yLWFsdCk7XG5cdFx0fVxuXG5cdH1cblxuXHQmX19kZXNjcmlwdGlvbiB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1iYXNlLXRleHQtc2l6ZSk7XG5cdH1cblxuXHQvKipcblx0ICogIy4jIE1vZGlmaWVyc1xuXHQgKi9cblxuXHQudGV4dC1jZW50ZXIgJiB7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxufVxuIiwiLyogSGVhZGluZyBMYXlvdXQgKi9cblxuLmwtaGVhZGluZyB7XG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxufVxuXG4ubC1oZWFkaW5nLXYyIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cblx0LmMtaGVhZGluZyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR9XG5cdH1cblxufVxuXG4ubC1jb250ZW50LXNpbXBsZS0xIHtcblx0Lm0tYmxvY2tfX2NvbnRhaW5lciB7XG5cdFx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLWNvbnRlbnQtd2lkdGgpICsgdmFyKC0tcGFnZS1ndXR0ZXIsIDIwcHgpICogMik7XG5cdH1cblx0LmwtaGVhZGluZyB7XG5cdFx0QGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcblx0XHRcdG1heC13aWR0aDogdmFyKC0tbC1jb250YWluZXItd2lkdGgsIDEwMCUpO1xuXHRcdH1cblxuXHRcdCYudGV4dC1jZW50ZXIge1xuXHRcdFx0bWFyZ2luLWlubGluZTogYXV0bztcblx0XHR9XG5cdH1cbn1cbiIsIi8qKlxuICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiAjICAgQnV0dG9ucyBDb21wb25lbnRcbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4gKi9cblxuQGltcG9ydCBcImJ1dHRvbnMvYnV0dG9ucy1jb3JlXCI7XG4iLCIvKiogQnV0dG9ucyBDb3JlIENvbXBvbmVudCAqL1xuXG4uYnRuIHtcbiAgICAtLWJ0bi1pY28tY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAtLWljb24tc2hpZnQ6IDEwcHg7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwgYm9yZGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksIGJhY2tncm91bmQgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcbn1cblxuLmMtYnRuIHtcbiAgICBAZXh0ZW5kIC5idG47XG5cbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tYnRuLWZvbnQtc2l6ZSwgMS44cmVtKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tYnRuLWZvbnQtZmFtaWx5KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tYnRuLXRleHQtdHJhbnNmb3JtLCBub25lKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tYnV0dG9uLWZvbnQtd2VpZ2h0LCA0MDApO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWJ0bi1ib3gtc2hhZG93LCBub25lKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idG4tYm9yZGVyLXJhZGl1cywgMCk7XG5cbiAgICAmOm5vdCg6b25seS1jaGlsZCkge1xuICAgICAgICBtYXJnaW46IDJweDsgLy8gQnVmZmVyIGJldHdlZW4gbXVsdGlwbGUgYnV0dG9uc1xuICAgIH1cblxuICAgID4gc3BhbiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgJl9fdHh0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tYnRuLXBhZGRpbmctdG9wLWJvdHRvbSwgMTBweCkgdmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCwgMjBweCk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MsIGNvbG9yIC4zcztcbiAgICB9XG5cbiAgICAvKiBCdXR0b24gVmlzdWFsIFZhcmlhbnRzICovXG5cbiAgICAmLi1wcmltYXJ5LFxuICAgICYuLWludmVydGVkLFxuICAgICYuLXNlY29uZGFyeSB7XG4gICAgICAgIC5jLWJ0bl9faWNvIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiBjYWxjKHZhcigtLWJ0bi1wYWRkaW5nLWxlZnQtcmlnaHQsIDIwcHgpIC8gMik7XG4gICAgICAgIH1cbiAgICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICAgICAgLmMtYnRuX19pY28ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1idG4tcGFkZGluZy1sZWZ0LXJpZ2h0LCAyMHB4KSAqIC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmljb24tcmlnaHQge1xuICAgICAgICAgICAgLmMtYnRuX19pY28ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWJ0bi1wYWRkaW5nLWxlZnQtcmlnaHQsIDIwcHgpICogLTEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi4tcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1wcmltYXJ5LWJnKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1wcmltYXJ5LWNvbG9yKTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1idG4tcHJpbWFyeS1ib3JkZXIpIHNvbGlkIHZhcigtLWJ0bi1wcmltYXJ5LWJvcmRlci1jb2xvcik7XG5cbiAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1wcmltYXJ5LWJnLWhvdmVyKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYnRuLXByaW1hcnktY29sb3ItaG92ZXIpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLXByaW1hcnktYm9yZGVyLWNvbG9yLWhvdmVyKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi4taW52ZXJ0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1jb2xvcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1iZyk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tYnRuLXByaW1hcnktYm9yZGVyKSBzb2xpZCB2YXIoLS1idG4tcHJpbWFyeS1ib3JkZXItY29sb3IpO1xuXG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1jb2xvci1ob3Zlcik7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1wcmltYXJ5LWJnLWhvdmVyKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWJ0bi1wcmltYXJ5LWJvcmRlci1jb2xvcilcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuLXNlY29uZGFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1zZWNvbmRhcnktYmcpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYnRuLXNlY29uZGFyeS1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tYnRuLXNlY29uZGFyeS1ib3JkZXIpIHNvbGlkIHZhcigtLWJ0bi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTtcblxuICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLXNlY29uZGFyeS1iZy1ob3Zlcik7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1zZWNvbmRhcnktY29sb3ItaG92ZXIpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLXNlY29uZGFyeS1ib3JkZXItY29sb3ItaG92ZXIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLi1zZWNvbmRhcnktc29saWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tc2Vjb25kYXJ5LWJnLWhvdmVyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1wcmltYXJ5LWNvbG9yKTtcblxuICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLXNlY29uZGFyeS1iZy1ob3Zlcik7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1zZWNvbmRhcnktY29sb3ItaG92ZXIpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLXNlY29uZGFyeS1ib3JkZXItY29sb3ItaG92ZXIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLi1saWdodCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGNvbG9yOiAjNmY4MzhkO1xuICAgICAgICBib3JkZXI6IHZhcigtLWJ0bi1zZWNvbmRhcnktYm9yZGVyKSBzb2xpZCAjNmY4MzhkO1xuXG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmY4MzhkO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzZmODM4ZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuLWxpbmsge1xuICAgICAgICBjb2xvcjogdmFyKC0tYnRuLWxpbmstY29sb3IpO1xuXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgLmMtYnRuX190eHQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgICAuYy1idG5fX2ljbyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM1cHg7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1saW5rLWljb24tY29sb3IsIGN1cnJlbnRDb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdmcsIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1idG4tbGluay1jb2xvci1ob3Zlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgICAgICAuYy1idG5fX2ljbyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuaWNvbi1yaWdodCB7XG4gICAgICAgICAgICAuYy1idG5fX2ljbyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBCdXR0b24gU2l6ZSBWYXJpYW50cyAqL1xuXG4gICAgJi4tc21hbGwge1xuICAgICAgICAtLWJ0bi1wYWRkaW5nLWxlZnQtcmlnaHQ6IDIwcHg7XG4gICAgICAgIC0tYnRuLXBhZGRpbmctdG9wLWJvdHRvbTogMTBweDtcbiAgICAgICAgLmMtYnRuX190eHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAuOGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLi1sYXJnZSB7XG4gICAgICAgIC5jLWJ0bl9fdHh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLW9ibGlxdWUge1xuICAgICAgICAtLXNrZXctYW5nbGU6IDIwZGVnO1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXcoY2FsYyh2YXIoLS1za2V3LWFuZ2xlKSAqIC0xKSk7XG4gICAgICAgIC5jLWJ0bl9fdHh0LFxuICAgICAgICAuYy1idG5fX2ljbyAuaWNvbiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXcodmFyKC0tc2tldy1hbmdsZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogQnV0dG9uIEljb24gKi9cblxuICAgICZfX2ljbyB7XG4gICAgICAgIG1pbi13aWR0aDogMjBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA4MHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBmaWx0ZXIgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwgb3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICBzdmcsIGltZyB7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyY2g7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDogdmFyKC0tYnRuLWljby1jb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYnRuLWljby1jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksIGZpbHRlciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAuaWNvbi1yZXZlcnNlZCB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcbiAgICB9XG5cbiAgICAuYy1ibG9ja19fYnRuICYge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAuYy1idG5fX2ljbyB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG5cbiAgICAgICAgICAgICAgICAmLmljb24tcmV2ZXJzZWQge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTVweCkgc2NhbGVYKC0xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLyogQ0Y3IFN1Ym1pdCBCdXR0b24gKi9cblxuLndwY2Y3LXN1Ym1pdCxcbi5nZm9ybV9idXR0b24sXG4uZ2Zvcm0tYnV0dG9uIHtcbiAgICBAZXh0ZW5kIC5jLWJ0biwgLi1wcmltYXJ5O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tYnRuLWZvbnQtc2l6ZSwgMS44cmVtKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tYnRuLWZvbnQtZmFtaWx5KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tYnRuLXRleHQtdHJhbnNmb3JtLCBub25lKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tYnV0dG9uLWZvbnQtd2VpZ2h0LCA0MDApO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWJ0bi1ib3gtc2hhZG93LCBub25lKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idG4tYm9yZGVyLXJhZGl1cywgMCk7XG4gICAgcGFkZGluZzogdmFyKC0tYnRuLXBhZGRpbmctdG9wLWJvdHRvbSkgdmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCk7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XG5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCByZ2JhKDAsIDcsIDYzLCAwLjIpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuICMgICBJbWFnZSBDb21wb25lbnRcbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4gKi9cblxuQGltcG9ydCBcImltYWdlL2MtaW1hZ2VfX2NvcmVcIjtcbiIsIi8qKlxuICogIy4jIENvbXBvbmVudCBJTUFHRVxuICpcbiAqL1xuXG4uYy1pbWFnZSB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgJi5yLTF4MSxcbiAgICAgICAgJi5yLXNxdWFyZSxcbiAgICAgICAgJi5yLTR4MyxcbiAgICAgICAgJi5yLTN4NCxcbiAgICAgICAgJi5yLTE2eDkge1xuICAgICAgICAgICAgLmMtaW1hZ2VfX3ByaW1hcnksXG4gICAgICAgICAgICAuYy12aWRlb19fbWVkaWEge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnItc3F1YXJlLFxuICAgICAgICAmLnItMXgxIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygxLCAxKTsgLy8gU3F1YXJlIEltYWdlXG4gICAgICAgIH1cbiAgICAgICAgJi5yLTR4MyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oNCwgMyk7IC8vIEhvcml6b250YWwgcmVjdGFuZ2xlXG4gICAgICAgIH1cbiAgICAgICAgJi5yLTN4NCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oMywgNCk7IC8vIFZlcnRpY2FsIHJlY3RhbmdsZVxuICAgICAgICB9XG4gICAgICAgICYuci0xNng5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygxNiwgOSk7IC8vIFZlcnRpY2FsIHJlY3RhbmdsZVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWVkaWEgQmxvY2sgUmF0aW9cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAvL0BpbmNsdWRlIGFzcGVjdC1yYXRpbygyLCAxKTtcbiAgICAgICAgLmMtaW1hZ2VfX3NyYyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lZGlhIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX3NyYyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB9XG5cbiAgICAmX19zZWNvbmRhcnkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XG4gICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxkZXNrdG9wJykge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgLmMtaW1hZ2VfX3NyYyB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTEwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mcm9udC1oLWxlZnQgJiB7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLWZyb250LXNyYy1zaGlmdCkgKiAtMSk7XG4gICAgICAgIH1cbiAgICAgICAgLmZyb250LWgtcmlnaHQgJiB7XG4gICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1mcm9udC1zcmMtc2hpZnQpICogLTEpO1xuICAgICAgICB9XG4gICAgICAgIC5mcm9udC1oLWNlbnRlciAmIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLmZyb250LXYtdG9wICYge1xuICAgICAgICAgICAgdG9wOiBjYWxjKHZhcigtLWZyb250LXNyYy1zaGlmdCkgKiAtMSk7XG4gICAgICAgIH1cbiAgICAgICAgLmZyb250LXYtY2VudGVyICYge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIH1cbiAgICAgICAgLmZyb250LXYtY2VudGVyLmZyb250LWgtY2VudGVyICYge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgLmMtaW1hZ2VfX3NyYyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5mcm9udC12LWJvdHRvbSAmIHtcbiAgICAgICAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1mcm9udC1zcmMtc2hpZnQpICogLTEpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmMtaW1hZ2UsXG4uYy12aWRlbyB7XG4gICAgJl9fcHJpbWFyeSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwgb3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xuXG4gICAgICAgIC5yLXNxdWFyZSAmLFxuICAgICAgICAuci0xeDEgJixcbiAgICAgICAgLnItNHgzICYsXG4gICAgICAgIC5yLTN4NCAmLFxuICAgICAgICAuci0xNng5ICYge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWltYWdlX19zcmMge1xuICAgICAgICAgICAgLm1haW4taC1mdWxsICYge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tYWluLWgtbGVmdCAmIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgICAubWFpbi1oLWNlbnRlciAmIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLWgtcmlnaHQgJiB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLXYtdG9wICYge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgLm1haW4tdi1jZW50ZXIgJiB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLXYtYm90dG9tICYge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaGFzLW92ZXJsYXkgLm0tYmFubmVyX19tZWRpYSxcbi5sLXRlc3RpbW9uaWFscy12MSAubS1zbGlkZV9fbWVkaWEge1xuICAgIEBpbmNsdWRlIGhhcy1vdmVybGF5KHZhcigtLW92ZXJsYXlPcGFjaXR5KSlcbn1cbiIsIi8vIGNsZWFyZml4XG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb250LWRhdGEoJHNpemU6IGZhbHNlLCAkbGg6IGZhbHNlLCAkd2VpZ2h0OiBmYWxzZSwgJGZvbnQ6IGZhbHNlKSB7XG4gICAgQGlmICRzaXplIHsgZm9udC1zaXplOiAkc2l6ZTsgfVxuICAgIEBpZiAkbGggeyBsaW5lLWhlaWdodDogJGxoOyB9XG4gICAgQGlmICR3ZWlnaHQgeyBmb250LXdlaWdodDogJHdlaWdodDsgfVxuICAgIEBpZiAkZm9udCB7IGZvbnQtZmFtaWx5OiAkZm9udDsgfVxufVxuXG5AbWl4aW4gaGFzLW92ZXJsYXkoJG9wYWNpdHk6IGZhbHNlKSB7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xuICAgICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG59XG5cblxuQG1peGluIGNvdmVyLWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG59XG5cbi8vIHJvdGF0ZVxuQG1peGluIHJvdGF0ZSgkZGVnKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgjeyRkZWd9ZGVnKSk7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLy8gc2NhbGVcbkBtaXhpbiBzY2FsZSgkeCwkeSkge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgkeCwgJHkpKTtcbn1cblxuLy8gdHJhbnNsYXRlXG5AbWl4aW4gdHJhbnNsYXRlKCR4LCAkeSkge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoJHgsICR5KSk7XG59XG5cbi8vIHNrZXdcbkBtaXhpbiBza2V3KCR4LCAkeSkge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShza2V3KCN7JHh9ZGVnLCAjeyR5fWRlZykpO1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cblxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGNvbnRlbnRcbiAgICB9XG4gICAgJjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGNvbnRlbnRcbiAgICB9XG4gICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIEBjb250ZW50XG4gICAgfVxuICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGNvbnRlbnRcbiAgICB9XG59XG5cbkBtaXhpbiBncmFkaWVudC1ob3Jpem9udGFsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciAkc3RhcnQtcGVyY2VudCwgJGVuZC1jb2xvciAkZW5kLXBlcmNlbnQpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBWZXJ0aWNhbCBncmFkaWVudCwgZnJvbSB0b3AgdG8gYm90dG9tXG4vL1xuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbi8vIENvbG9yIHN0b3BzIGFyZSBub3QgYXZhaWxhYmxlIGluIElFOSBhbmQgYmVsb3cuXG5AbWl4aW4gZ3JhZGllbnQtdmVydGljYWwoJHN0YXJ0LWNvbG9yOiAjNTU1LCAkZW5kLWNvbG9yOiAjMzMzLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRzdGFydC1jb2xvciAkc3RhcnQtcGVyY2VudCwgJGVuZC1jb2xvciAkZW5kLXBlcmNlbnQpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAjNTU1LCAkZW5kLWNvbG9yOiAjMzMzLCAkZGVnOiA0NWRlZykge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRlZywgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtaG9yaXpvbnRhbC10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAjMDBiM2VlLCAkbWlkLWNvbG9yOiAjN2E0M2I2LCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAjYzMzMjVmKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbkBtaXhpbiBncmFkaWVudC12ZXJ0aWNhbC10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAjMDBiM2VlLCAkbWlkLWNvbG9yOiAjN2E0M2I2LCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAjYzMzMjVmKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICM1NTUsICRvdXRlci1jb2xvcjogIzMzMykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICRpbm5lci1jb2xvciwgJG91dGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtc3RyaXBlZCgkY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjE1KSwgJGFuZ2xlOiA0NWRlZykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkYW5nbGUsICRjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCAkY29sb3IgNTAlLCAkY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cbiIsIjpyb290IHtcbiAgICAtLWJhc2UtdHJhbnNpdGlvbjogLjNzOyAvLyBkZWZhdWx0IHRyYW5zaXRpb24gZm9yIGhvdmVyc1xuICAgIC0tbC1ibG9jay1nYXAtdmVydGljYWw6IDE1cHg7XG4gICAgLS1sLWJsb2NrLWdhcC1ob3Jpem9udGFsOiAxNXB4O1xuICAgIC0tYy1ibG9jay10aXRsZS1zaXplOiAje1wiY2xhbXAodmFyKC0taDQtZm9udC1zaXplLW1vYmlsZSksIHZhcigtLWgtY2xhbXAtZm9ybXVsYSksIHZhcigtLWg0LWZvbnQtc2l6ZSkpXCJ9O1xuICAgIC0tYy1ibG9jay10aXRsZS13ZWlnaHQ6IHZhcigtLWg0LWZvbnQtd2VpZ2h0KTtcbiAgICAtLWMtYmxvY2stdGl0bGUtdHJhbnNmb3JtOiB2YXIoLS1oNC10ZXh0LXRyYW5zZm9ybSk7XG4gICAgLS1jLWJsb2NrLXRpdGxlLWNvbG9yOiB2YXIoLS10aXRsZXMtY29sb3IpO1xuICAgIC0tYy1ibG9jay10ZXh0LXNpemU6IHZhcigtLWJhc2UtdGV4dC1zaXplKTtcbiAgICAtLWMtYmxvY2stcGFkZGluZzogMTVweDtcbiAgICAtLWMtYmxvY2stYWxpZ246IGxlZnQ7XG4gICAgLS1jb250ZW50LXdpZHRoLXdpZGU6IDE1MDBweDtcbiAgICAtLWgtY2xhbXAtZm9ybXVsYTogM3Z3ICsgMS41cmVtOyAvLyBoZWFkaW5ncyBzaXplIHRyYW5zZm9ybWF0aW9uXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcbiAgICAgICAgLS12ZXJ0aWNhbC1nYXA6IDQwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PWRlc2t0b3AtbCcpIHtcbiAgICAgICAgLS1jb250ZW50LXdpZHRoLXdpZGU6IDEwMHZ3O1xuICAgIH1cbn1cblxuLmlzLXd5c2l3eWcge1xuICAgIC0td3lzaXd5Zy1tYXJnaW46IDEuNWVtO1xuICAgIC0td3lzaXd5Zy1saS1wYWRkaW5nOiAwIDAgMCAzMHB4O1xuICAgIC0td3lzaXd5Zy1saS1iZ3A6IDAgLjRlbTtcbiAgICAtLXd5c2l3eWctbGktbWFyZ2luOiAxZW07XG4gICAgLS13eXNpd3lnLWxpLWZhbGxiYWNrOiAnXFwyMDIyJztcbn1cblxuLnNpdGUtY29udGVudCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmMtYnRuIHtcbiAgICAtLWljby1zaXplOiAyLjEyNWVtO1xuICAgIC0taWNvLWdhcDogMC4zMTI1ZW07XG4gICAgLmMtYnRuX190eHQge1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLi1wcmltYXJ5IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1pY28tZ2FwKTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjNzhBRDAwIDMuODglLCAjOTlDRTAwIDEwMCUpO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICB9XG4gICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zcztcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDU1cHggcmdiYSgxMjEsIDE3MywgMSwgMC43NSk7XG4gICAgICAgIH1cbiAgICAgICAgLmMtYnRuX190eHQge1xuICAgICAgICAgICAgcGFkZGluZzogMC42NWVtIDEuNWVtO1xuICAgICAgICB9XG4gICAgICAgICYuaGFzLWljb24ge1xuICAgICAgICAgICAgLmMtYnRuX190eHQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVlbSAxLjVlbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjI1ZW0gMC43NWVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYy1idG5fX2ljbyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1pY28tc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLWljby1zaXplKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMS41Y2g7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5pY29uLXJpZ2h0IHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICByaWdodDogdmFyKC0taWNvLWdhcCk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLWljby1zaXplKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLWljby1zaXplKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1pY28tc2l6ZSk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYy1idG5fX3R4dCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogM2VtO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNzVlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYy1idG5fX2ljbyB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHZhcigtLWljby1nYXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMip2YXIoLS1pY28tZ2FwKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jLWJ0bl9faWNvIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLi1pbnZlcnRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tcHJpbWFyeS1jb2xvcik7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYnRuLXByaW1hcnktY29sb3IpO1xuICAgICAgICAgICAgICAgIC5jLWJ0bl9fdHh0IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1wcmltYXJ5LWNvbG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi4tc2Vjb25kYXJ5LXNvbGlkIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1pY28tZ2FwKTtcbiAgICAgICAgYmFja2dyb3VuZDogIzNkYWZjOTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3M7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA1NXB4IHJnYmEoNDgsIDE0MywgMTY1LCAwLjc1KTtcbiAgICAgICAgfVxuICAgICAgICAuYy1idG5fX3R4dCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjY1ZW0gMS41ZW07XG4gICAgICAgIH1cbiAgICAgICAgJi5oYXMtaWNvbiB7XG4gICAgICAgICAgICAuYy1idG5fX3R4dCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC4yNWVtIDEuNWVtO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVlbSAwLjc1ZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jLWJ0bl9faWNvIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLWljby1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0taWNvLXNpemUpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxLjVjaDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmljb24tcmlnaHQge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1pY28tZ2FwKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0taWNvLXNpemUpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0taWNvLXNpemUpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoIzAwMCwgMC4yKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1pY28tc2l6ZSk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYy1idG5fX3R4dCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogM2VtO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNzVlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYy1idG5fX2ljbyB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHZhcigtLWljby1nYXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMip2YXIoLS1pY28tZ2FwKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jLWJ0bl9faWNvIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLi1pbnZlcnRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1idG4tc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAgICAgICAgICAgICAuYy1idG5fX3R4dCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1idG4tc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi4tbGlnaHQge1xuICAgICAgICAuYy1idG5fX3R4dCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBjYWxjKDAuNjVlbSAtIDQuNzVweCkgMS41ZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi4tc21hbGwge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmMtYnRuX190eHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5hY2NvdW50LW92ZXJsYXktdHJpZ2dlciB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIEJhbm5lcnMgKi9cblxuLm0tYmFubmVyIHtcbiAgICAtLWJhbm5lci1oZWlnaHQtLXNtYWxsOiAzMDBweDtcbiAgICAtLWJhbm5lci1oZWlnaHQtLW1lZGl1bTogNjUwcHg7XG4gICAgLS1iYW5uZXItaGVpZ2h0LS1ibG9nOiA0MDBweDtcbiAgICAtLWJhbm5lci1oZWlnaHQtLWZ1bGw6IDEwMHZoO1xuICAgIC5sLWd0LWQge1xuICAgICAgICAtLXYtZ2FwLXRvcDogNCU7XG4gICAgfVxuICAgIC5sLWdiLWQge1xuICAgICAgICAtLXYtZ2FwLWJvdDogNCU7XG4gICAgfVxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwdmg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi0tZnVsbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICAubS1iYW5uZXJfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1iYW5uZXJIZWlnaHQpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19tZWRpYSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICYtbWFzayB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2stcG9zaXRpb246IGxlZnQ7XG4gICAgICAgICAgICAgICAgbWFzay1wb3NpdGlvbjogbGVmdDtcbiAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2stc2l6ZTogY292ZXI7XG4gICAgICAgICAgICAgICAgbWFzay1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDU3JTtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDMlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG9yMyk7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Jhbm5lci1tZWRpYS1tYXNrLnN2Zyk7XG4gICAgICAgICAgICAgICAgbWFzay1pbWFnZTogdXJsKC4uL2ltYWdlcy9iYW5uZXItbWVkaWEtbWFzay5zdmcpO1xuICAgICAgICAgICAgICAgIC5tLWJhbm5lcl9fcGljdHVyZSxcbiAgICAgICAgICAgICAgICAuYy12aWRlbyB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgbWl4LWJsZW5kLW1vZGU6IGRhcmtlbjtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmwtYmFubmVyIHtcbiAgICBnYXA6IDMwcHg7XG4gICAgJl9fdGV4dCB7XG4gICAgICAgIC5jLWJsb2NrX19idG4ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICAubC1iYW5uZXJfX2lubmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbHVtbnMtcmF0aW8pO1xuICAgICAgICAgICAgZmxleDogMCAwIHZhcigtLWNvbHVtbnMtcmF0aW8pO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDVyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fbWVkaWEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAuYy1pbWFnZSB7XG4gICAgICAgICAgICAmX19wcmltYXJ5IHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcbiAgICAgICAgICAgICAgICAmX19zcmMge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgKyA1MHZ3IC0gMC41KnZhcigtLWNvbnRlbnQtd2lkdGgpIC0gdmFyKC0tcGFnZS1ndXR0ZXIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5oZXJvLWN0YSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAyMy43NXJlbTtcbiAgICBoZWlnaHQ6IDIzLjc1cmVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvcjMpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjYuOHJlbTtcbiAgICAgICAgaGVpZ2h0OiAyNi44cmVtO1xuICAgIH1cbiAgICAucG9wLWN0YSB7XG4gICAgICAgICZfX2ljbyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogOXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogOXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMyk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cywgY29sb3IgMC4xcztcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwKTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHM7XG4gICAgICAgIH1cbiAgICAgICAgJl9fZGVzYyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLnBvcC1jdGEge1xuICAgICAgICAgICAgJl9faWNvIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZfX3RpdGxlLFxuICAgICAgICAgICAgJl9fZGVzYyB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zY3JvbGwtZG93biB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tdG9wOiA2LjV2aDtcbiAgICBnYXA6IDE1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAmLnNkLWxlZnQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICAgIHRvcDogdW5zZXQ7XG4gICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgLnNjcm9sbC1kb3duIHtcbiAgICAgICAgICAgICZfX3R4dCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIHdyaXRpbmctbW9kZTogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmX19pY28ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBjaXJjbGUge1xuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IHNkLWJvdW5jZSAxLjI1cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgc2QtYm91bmNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDIlKTtcbiAgICB9XG59XG5cbi5hbmltYXRlZC10aXRsZSB7XG4gICAgJl9fbG9vcCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICAgICYtZmlyc3Qge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmLWxpbmUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMyk7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwJSk7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogdHh0bG9vcDtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogY2FsYygxLjJzKnZhcigtLWxvb3BlcnMtcXR5KSk7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tbG9vcGVyLWRlbGF5KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGtleWZyYW1lcyB0eHRsb29wIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMCUpO1xuICAgIH1cbiAgICA4JSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gICAgMTYlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cbiAgICAyNSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxuICAgIDMzJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMCUpO1xuICAgIH1cbn0iLCIuYy1kZWNvciB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uLS1kLXJpZ2h0IHtcbiAgICByaWdodDogMDtcbn1cblxuLi0tZC1sZWZ0IHtcbiAgICBsZWZ0OiAwO1xufVxuXG4uLS1kLXRvcCB7XG4gICAgdG9wOiAwO1xufVxuXG4uLS1kLWJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xufVxuXG4uLS1kLWNlbnRlci12ZXIge1xuICAgIHRvcDogNTAlO1xufVxuXG4uLS1kLWNlbnRlci1ob3Ige1xuICAgIGxlZnQ6IDUwJTtcbn1cblxuLmRlY29yLWJsdWUsXG4uZGVjb3ItZ3JlZW4ge1xuICAgIC0tZGVjb3Itc2l6ZTogNjVyZW07XG4gICAgJi4tLWQtbGFyZ2Uge1xuICAgICAgICAtLWRlY29yLXNpemU6IDgwcmVtO1xuICAgIH1cbiAgICAmLi0tZC1zbWFsbCB7XG4gICAgICAgIC0tZGVjb3Itc2l6ZTogNTByZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG4gICAgICAgIC0tZGVjb3Itc2l6ZTogNDByZW07XG4gICAgfVxufVxuXG4uZGVjb3ItZ3JlZW4ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgY2FsYygwLjUqdmFyKC0tZGVjb3Itc2l6ZSkpIGNhbGMoMC41KnZhcigtLWRlY29yLXNpemUpKSAjOTlDRTAwO1xuICAgICAgICBvcGFjaXR5OiAuMTU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG4gICAgJi4tLWQtcmlnaHQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwLjM1KnZhcigtLWRlY29yLXNpemUpKSk7XG4gICAgfVxuICAgICYuLS1kLWxlZnQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtMC4zNSp2YXIoLS1kZWNvci1zaXplKSkpO1xuICAgIH1cbiAgICAmLi0tZC1ib3R0b20ge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMC4yNSp2YXIoLS1kZWNvci1zaXplKSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGVjb3ItYmx1ZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCBjYWxjKDAuNSp2YXIoLS1kZWNvci1zaXplKSkgY2FsYygwLjUqdmFyKC0tZGVjb3Itc2l6ZSkpICMzNEM5RUI7XG4gICAgICAgIG9wYWNpdHk6IC4zO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuICAgICYuLS1kLXJpZ2h0IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMC4zNSp2YXIoLS1kZWNvci1zaXplKSkpO1xuICAgIH1cbiAgICAmLi0tZC1sZWZ0IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTAuMzUqdmFyKC0tZGVjb3Itc2l6ZSkpKTtcbiAgICB9XG4gICAgJi4tLWQtYm90dG9tIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoLTAuMzUqdmFyKC0tZGVjb3Itc2l6ZSkpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm0tdGFicyxcbi5tLWJsb2NrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tLXNsaWRlciB7XG4gICAgLmMtZGVjb3Ige1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgIH1cbn0iXX0= */
