/*
 * 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;
}

ol,
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: 1660px;
  --content-width: var(--desktop-width-m);
  --blog-width: 700px;
  --page-gutter: 20px;
  --grid-gutter: 24px;
  --base-transition: .3s;
  --vertical-gap: 6vmin;
}
@media (max-width: 1112px) {
  :root {
    --vertical-gap: 34px;
  }
}

/* Typography */
/* Mixin origin: https://marc-ed-raffalli.github.io/2017/10/14/sass-font-face.html */
/* 1rem = 10px */
html {
  font-size: 50%;
}
@media (min-width: 1280px) {
  html {
    font-size: 52%;
  }
}
@media (min-width: 1441px) {
  html {
    font-size: 58%;
  }
}
@media (min-width: 1660px) {
  html {
    font-size: 62.5%;
  }
}

/*
@include media(">desktop-m") {
	font-size: 58%;
}

@include media(">desktop-l") {
	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;
}

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

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

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

.inner-frame,
.container,
.container-custom {
  padding-left: var(--page-gutter);
  padding-right: var(--page-gutter);
  transition: max-width 0.3s;
}
@media (min-width: 1112px) and (max-width: 1441px) {
  .inner-frame,
  .container,
  .container-custom {
    --content-width: var(--desktop-width-sm);
  }
}
@media (max-width: 1112px) {
  .inner-frame,
  .container,
  .container-custom {
    --page-gutter: 20px;
    --content-width: var(--tablet-width);
  }
}

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

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

.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: 1112px) {
  .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) * 2.7);
  }
  .gb-l {
    padding-bottom: calc(var(--default-bottom-gap) * 2.7);
  }
  .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;
  position: var(--header-sticky-type, sticky);
}
@media (max-width: 1112px) {
  .site-header {
    max-height: var(--navbar-hight);
  }
}
@media (min-width: 1112px) {
  .admin-bar .site-header {
    top: 28px;
  }
}
@media (min-width: 1660px) {
  .site-header {
    --navbar-gap_h: 4.35vw;
  }
}
.site-header__logo {
  display: flex;
  align-items: center;
}
@media (min-width: 1112px) {
  .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;
  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: 1112px) {
  .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 0.3s;
  padding-top: var(--navbar-gap_v);
  padding-bottom: var(--navbar-gap_v);
}
@media (max-width: 1112px) {
  .site-header__row {
    flex-direction: column;
  }
}
.site-header__col {
  display: flex;
  align-items: center;
  gap: calc(var(--navbar-gap_h, 1vw) * 2);
  transition: padding 0.3s;
}
.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: 1112px) {
  .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 .social-list {
  gap: var(--navbar-gap_h);
}
.site-header__separator {
  height: 1em;
  width: 1px;
  background: currentColor;
}
.site-header a:not(.c-btn):not(.wpcf7-submit):not(.gform_button),
.site-header .plain-menu-item {
  color: var(--header-link-color);
}
@media (min-width: 1112px) {
  .site-header a:not(.c-btn):not(.wpcf7-submit):not(.gform_button):hover, .site-header a:not(.c-btn):not(.wpcf7-submit):not(.gform_button):focus-visible,
  .site-header .plain-menu-item:hover,
  .site-header .plain-menu-item:focus-visible {
    color: var(--header-link-color-hover, var(--primary-color2));
  }
}
.site-header .current-menu-item > a:not(.c-btn):not(.wpcf7-submit):not(.gform_button),
.site-header .current-menu-parent > a:not(.c-btn):not(.wpcf7-submit):not(.gform_button) {
  color: var(--header-link-color-hover, var(--primary-color2));
}

/* 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-top: 1px;
  padding-bottom: 1px;
}
@media (min-width: 1112px) {
  .is-sticky .site-header__logo {
    height: 50px;
    max-height: 50px;
  }
  .is-sticky .site-header__logo img, .is-sticky .site-header__logo svg {
    max-height: 80%;
  }
}
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 20px;
    height: var(--navbar-hight);
    background-color: var(--header-mobile-bg);
  }
  .navbar-mobile a {
    color: var(--link-color);
  }
  .navbar-mobile__inner {
    top: var(--navbar-hight);
    background-color: var(--header-mobile-bg);
    width: 100%;
    right: 0;
    position: absolute;
    opacity: 1;
    max-height: 0;
    overflow: hidden;
    pointer-events: none;
    transition: all 0.3s;
  }
  .nav-active .navbar-mobile__inner {
    opacity: 1;
    max-height: 90vh;
    pointer-events: auto;
    overflow-y: auto;
    padding: 15px;
  }
  .navbar-mobile__inner .site-header__widget {
    padding-bottom: 13px;
  }
  .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: block;
    font-size: var(--link-size-l1);
  }
  .navbar-mobile .sub-menu {
    padding-top: 5px;
    padding-left: 20px;
    overflow: hidden;
    transition: height 0.36s ease-in-out;
  }
  .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;
  }
}
.page-template-template-simple-text .site-header__main,
.search .site-header__main {
  background-color: var(--header-mini-bg, var(--primary-color1));
}
@media (min-width: 1112px) {
  .page-template-template-simple-text .site-content,
  .search .site-content {
    padding-top: var(--navbar-hight);
  }
}

@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: 1112px) {
  .nav-main__btn,
  .navbar-mobile {
    display: none;
  }
}
/* Navbar Main */
@media (min-width: 1112px) {
  .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 var(--main-header-gap-between-items, 1vw);
    line-height: var(--navbar-link-height);
    transition: color var(--base-transition), font-size var(--base-transition);
  }
}
.nav-main .current-menu-item > a {
  color: var(--header-link-color-hover, var(--primary-color2));
}

/* Navbar Secondary */
@media (min-width: 1112px) {
  .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 {
  --toggle-btn-width: 60px;
  /* Sub menu toggle */
  /* End sub menu toggle */
}
@media (min-width: 1112px) {
  .nav-main {
    --toggle-btn-width: 20px;
  }
}
@media (min-width: 1441px) {
  .nav-main {
    --toggle-btn-width: 30px;
  }
}
.nav-main .sub-menu {
  text-align: left;
}
@media (min-width: 1112px) {
  .nav-main .sub-menu {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    top: 100%;
    transform: translate(50%, 0);
    right: 1.5rem;
    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-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 a {
    padding: 5px;
  }
  .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;
  }
}
.nav-main .menu-item-has-children {
  position: relative;
  padding-right: var(--toggle-btn-width);
}
@media (min-width: 1112px) {
  .nav-main .menu-item-has-children {
    margin-right: 10px;
  }
}
@media (min-width: 1112px) {
  .nav-main .menu-item-has-children > a,
  .nav-main .menu-item-has-children > .plain-menu-item {
    padding-right: 0;
  }
}
@media (min-width: 1112px) {
  .nav-main .menu-item-has-children.focus > .sub-menu {
    opacity: 1;
    pointer-events: auto;
    transform: translate(50%, 0);
  }
}
@media (min-width: 1112px) {
  .nav-main .menu-item-has-children:hover > .sub-menu {
    opacity: 1;
    pointer-events: auto;
    transform: translate(50%, 0);
  }
}
.nav-main .menu-item-has-children .sub-menu-toggle:before,
.nav-main .menu-item-has-children .plain-menu-item:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 70%;
  transform: translate(-50%, -65%) rotate(135deg);
  border-top: 3px solid var(--primary-color2);
  border-right: 3px solid var(--primary-color2);
  width: 10px;
  height: 10px;
  cursor: pointer;
  transition: all var(--base-transition) ease-in-out;
}
@media (max-width: 1112px) {
  .nav-main .menu-item-has-children .sub-menu-toggle:before,
  .nav-main .menu-item-has-children .plain-menu-item:before {
    transform: translate(-50%, -70%) rotate(45deg);
    left: unset;
    right: 17px;
  }
}
@media (max-width: 1112px) {
  .nav-main .menu-item-has-children .sub-menu-toggle.is-toggled:before,
  .nav-main .menu-item-has-children .plain-menu-item.is-toggled:before {
    transform: translate(-50%, -50%) rotate(135deg);
    border-color: var(--primary-color3);
  }
}
.nav-main .menu-item-has-children .sub-menu-toggle {
  position: absolute;
  top: 30px;
  right: 0;
  transform: translateY(-50%);
  width: var(--toggle-btn-width);
  height: var(--toggle-btn-width);
}
@media (min-width: 1112px) {
  .nav-main .menu-item-has-children .sub-menu-toggle {
    top: 50%;
    width: var(--toggle-btn-width);
    height: var(--toggle-btn-width);
  }
}
@media (max-width: 1112px) {
  .nav-main .menu-item-has-children .sub-menu-toggle {
    width: 70px;
    height: 50px;
  }
}
.nav-main .menu-item-has-children .plain-menu-item {
  position: relative;
}
@media (max-width: 1112px) {
  .nav-main .menu-item-has-children .plain-menu-item {
    width: calc(100% + var(--toggle-btn-width));
  }
}
.nav-main .menu-item-has-children .plain-menu-item:before {
  right: -25px;
  left: unset;
}
@media (max-width: 1112px) {
  .nav-main .menu-item-has-children .plain-menu-item:before {
    right: 17px;
  }
}

.nav-main__btn {
  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 > div {
  position: relative;
  flex: none;
  width: 100%;
  height: var(--burger-segment-hight);
  background: currentColor;
  transition: all 0.4s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--burger-segment-radius);
}
.burger-icon > div:before, .burger-icon > div:after {
  content: "";
  position: absolute;
  z-index: 1;
  left: 0;
  width: 100%;
  height: var(--burger-segment-hight);
  border-radius: var(--burger-segment-radius);
  background: inherit;
  transition: all 0.4s ease;
}
.burger-icon > div:before {
  top: calc(var(--burger-segment-gap) * -1);
}
.burger-icon > div:after {
  top: var(--burger-segment-gap);
}
.is-active .burger-icon > div {
  transform: rotate(135deg);
}
.is-active .burger-icon > div:before, .is-active .burger-icon > div:after {
  top: 0;
  transform: rotate(90deg);
  width: 100%;
}
.is-active .burger-icon > div: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;
}
.-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 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;
}

/**** End Header */
.c-btn, .wpcf7-submit,
.gform_button {
  margin: 1rem;
  border: none;
  transition: all var(--base-transition) ease-in-out;
}
@media (max-width: 767px) {
  .c-btn, .wpcf7-submit,
  .gform_button {
    --btn-font-size: calc(1.4rem * 1.25);
    --btn-padding-top-bottom: calc(1.4rem * 1.25);
    --btn-padding-left-right: calc(3.4rem * 1.25);
  }
}
.c-btn__txt {
  line-height: 1.2;
  padding-right: calc(var(--btn-padding-left-right) / 1.5);
}
.c-btn__ico {
  min-width: 5.4rem;
}
.c-btn__ico svg, .c-btn__ico img {
  max-height: 2.2rem;
}
.c-btn.-small, .-small.wpcf7-submit,
.-small.gform_button {
  --btn-padding-left-right: 3rem;
  --btn-padding-top-bottom: 1.5rem;
  margin: 0.4rem;
}
@media (max-width: 575px) {
  .c-btn.-small, .-small.wpcf7-submit,
  .-small.gform_button {
    --btn-padding-left-right: calc(2.8rem * 1.25);
    --btn-padding-top-bottom: calc(1.1rem * 1.25);
  }
}
.c-btn.-small .c-btn__txt, .-small.wpcf7-submit .c-btn__txt,
.-small.gform_button .c-btn__txt {
  font-size: 1.4rem;
  padding-right: calc(var(--btn-padding-left-right) / 2);
}
@media (max-width: 575px) {
  .c-btn.-small .c-btn__txt, .-small.wpcf7-submit .c-btn__txt,
  .-small.gform_button .c-btn__txt {
    font-size: 1.75rem;
  }
}
.c-btn.-small .c-btn__ico svg, .-small.wpcf7-submit .c-btn__ico svg,
.-small.gform_button .c-btn__ico svg, .c-btn.-small .c-btn__ico img, .-small.wpcf7-submit .c-btn__ico img,
.-small.gform_button .c-btn__ico img {
  max-height: 1.4rem;
}
.c-btn.-primary, .wpcf7-submit,
.gform_button, .c-btn.-inverted, .c-btn.-secondary {
  --outline-color: rgba(103, 157, 221, 0.1);
  --outline-size: 0.7rem;
  box-shadow: 0 0 0 var(--outline-size) var(--outline-color);
}
.c-btn.-primary, .wpcf7-submit,
.gform_button, .c-btn.-secondary {
  background: linear-gradient(55deg, var(--c1), var(--c1) 20%, var(--c2) 51%, var(--c1) 80%, var(--c1)) var(--x, 0)/200%;
}
.c-btn.-primary:before, .wpcf7-submit:before,
.gform_button:before, .c-btn.-secondary:before {
  --outline-size: 0.7rem;
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc(100% + var(--outline-size) * 1.8);
  height: calc(100% + var(--outline-size) * 1.8);
  pointer-events: none;
  border-radius: inherit;
  opacity: 0;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
  transition: all var(--base-transition) ease-in-out;
}
.c-btn.-primary:hover, .wpcf7-submit:hover,
.gform_button:hover, .c-btn.-primary:focus-visible, .wpcf7-submit:focus-visible,
.gform_button:focus-visible, .c-btn.-secondary:hover, .c-btn.-secondary:focus-visible {
  --x: 100%;
}
.c-btn.-primary:hover:before, .wpcf7-submit:hover:before,
.gform_button:hover:before, .c-btn.-primary:focus-visible:before, .wpcf7-submit:focus-visible:before,
.gform_button:focus-visible:before, .c-btn.-secondary:hover:before, .c-btn.-secondary:focus-visible:before {
  opacity: 1;
}
.c-btn.-primary, .wpcf7-submit,
.gform_button {
  --c1: var(--btn-primary-bg);
  --c2: var(--primary-color3);
}
.c-btn.-inverted, .-inverted.wpcf7-submit,
.-inverted.gform_button {
  --c1: var(--btn-secondary-bg);
  --c2: var(--secondary-color2);
  --c3: var(--btn-primary-color);
  --btn-ico-color: var(--primary-color2);
  transition: color 0.12s ease-in-out;
}
.c-btn.-inverted:before, .-inverted.wpcf7-submit:before,
.-inverted.gform_button:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  border-radius: inherit;
  transition: all var(--base-transition) ease-in-out;
  opacity: 0;
  background: linear-gradient(55deg, var(--c1), var(--c1) 20%, var(--c2) 51%, var(--c1) 80%, var(--c1)) var(--x, 0)/200%;
}
.c-btn.-inverted:hover, .-inverted.wpcf7-submit:hover,
.-inverted.gform_button:hover, .c-btn.-inverted:focus-visible, .-inverted.wpcf7-submit:focus-visible,
.-inverted.gform_button:focus-visible {
  --btn-ico-color: var(--secondary-color3);
  --outline-color: rgba(243, 100, 55, 0.15);
  color: var(--secondary-color3);
}
.c-btn.-inverted:hover:before, .-inverted.wpcf7-submit:hover:before,
.-inverted.gform_button:hover:before, .c-btn.-inverted:focus-visible:before, .-inverted.wpcf7-submit:focus-visible:before,
.-inverted.gform_button:focus-visible:before {
  opacity: 1;
}
.c-btn.-inverted:focus-visible, .-inverted.wpcf7-submit:focus-visible,
.-inverted.gform_button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
.c-btn.-secondary, .-secondary.wpcf7-submit,
.-secondary.gform_button {
  --outline-color: rgba(243, 100, 55, 0.15);
  border: none;
  --c1: var(--btn-secondary-bg);
  --c2: var(--secondary-color2);
}
.c-btn.-link, .-link.wpcf7-submit,
.-link.gform_button {
  transition: color 0.12s ease-in-out;
}
.c-btn.-link.-small .c-btn__txt, .-link.-small.wpcf7-submit .c-btn__txt,
.-link.-small.gform_button .c-btn__txt {
  padding-right: 0;
}
.c-btn.-link.-small .c-btn__ico, .-link.-small.wpcf7-submit .c-btn__ico,
.-link.-small.gform_button .c-btn__ico {
  min-width: 1rem;
  width: 1.8rem;
}
.c-btn.-link.has-icon:hover, .-link.has-icon.wpcf7-submit:hover,
.-link.has-icon.gform_button:hover, .c-btn.-link.has-icon:focus-visible, .-link.has-icon.wpcf7-submit:focus-visible,
.-link.has-icon.gform_button:focus-visible {
  --link-icon-color: var(--primary-color2);
}
.c-btn.-link.icon-right .c-btn__ico, .-link.icon-right.wpcf7-submit .c-btn__ico,
.-link.icon-right.gform_button .c-btn__ico {
  margin-left: 0.4rem;
}
.c-btn.-link.icon-left .c-btn__ico, .-link.icon-left.wpcf7-submit .c-btn__ico,
.-link.icon-left.gform_button .c-btn__ico {
  margin-right: 0.4rem;
}

.site-header:not(.is-sticky) + .sticky-form {
  --sticky-form-top-shape: calc(var(--navbar-hight-not-sticky) + 40px);
  --sticky-form-height: calc(100vh - var(--navbar-hight-not-sticky) + 40px);
}
.site-header:not(.is-sticky) + .sticky-form + .sticky-form {
  bottom: 10vh;
}
.site-header + .sticky-form {
  --sticky-form-top-shape: calc(var(--navbar-hight) + 3px);
  --sticky-form-height: calc(100vh - var(--navbar-hight) - 0px);
}
.site-header + .sticky-form + .sticky-form {
  bottom: 0;
}

.sticky-form {
  position: fixed;
  z-index: 91;
  background-color: var(--dark-white);
  padding: 0 4.5rem 0;
  width: 76.1rem;
  max-width: 100%;
  transform: translateX(100%);
  transition: all var(--base-transition) ease-in-out;
}
.sticky-form.is-active {
  transform: translateX(0);
}
@media (max-width: 575px) {
  .sticky-form {
    padding: 0 1rem;
  }
}
.sticky-form__trigger {
  transition: all var(--base-transition) ease-in-out;
}
.sticky-form__close {
  transition: all var(--base-transition) ease-in-out;
  position: absolute;
  top: 2rem;
  right: 1rem;
  width: 4rem;
  height: 4rem;
  color: var(--primary-color1);
  cursor: pointer;
  background: transparent;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sticky-form__close:hover, .sticky-form__close:focus-visible {
  opacity: 0.8;
}
.sticky-form .gform_confirmation_wrapper.ds-contact-us .gform_confirmation_message {
  margin: 12rem 0 6rem;
}
@media (max-width: 1112px) {
  .sticky-form .gform_confirmation_wrapper.ds-contact-us .gform_confirmation_message {
    background-color: var(--dark-white);
  }
  .sticky-form .gform_confirmation_wrapper.ds-contact-us .gform_confirmation_message:before {
    background-color: var(--dark-white);
  }
}
.sticky-form .gform_wrapper {
  --h-margin: 5.6rem;
  padding: 0 4.5rem 0;
  overflow-y: auto;
  height: calc(100% - var(--h-margin) * 2);
  margin: var(--h-margin) 0;
}
@media (max-width: 575px) {
  .sticky-form .gform_wrapper {
    --h-margin: 6rem;
    padding: 0 1rem 8rem;
  }
}
.sticky-form .gform_wrapper::-webkit-scrollbar-track {
  background-color: rgb(225, 235, 248);
  border-radius: 5px;
}
.sticky-form .gform_wrapper::-webkit-scrollbar {
  width: 4px;
  background-color: rgb(225, 235, 248);
  border-radius: 5px;
}
.sticky-form .gform_wrapper::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background-color: var(--primary-color3);
}
.sticky-form .gform_wrapper.gravity-theme .gform_title {
  font-size: 4rem;
  background: linear-gradient(20deg, var(--primary-color1) 50%, var(--primary-color3) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
  letter-spacing: -0.02em;
  font-weight: 700;
}
.sticky-form .gform_wrapper.gravity-theme .gform_description {
  color: var(--dark-gray);
}
.sticky-form .gform_wrapper.gravity-theme .gform_fields {
  grid-row-gap: 1.2rem;
}
.sticky-form .gform_wrapper.gravity-theme .gform_fields input[type=text],
.sticky-form .gform_wrapper.gravity-theme .gform_fields input[type=email],
.sticky-form .gform_wrapper.gravity-theme .gform_fields input[type=phone],
.sticky-form .gform_wrapper.gravity-theme .gform_fields input[type=tel],
.sticky-form .gform_wrapper.gravity-theme .gform_fields input[type=number],
.sticky-form .gform_wrapper.gravity-theme .gform_fields input[type=date],
.sticky-form .gform_wrapper.gravity-theme .gform_fields input[type=file],
.sticky-form .gform_wrapper.gravity-theme .gform_fields select,
.sticky-form .gform_wrapper.gravity-theme .gform_fields textarea {
  padding: 1.2rem var(--input-padding-left-right, 10px);
}
@media (min-width: 575px) {
  .sticky-form .gform_wrapper.gravity-theme .gform_fields input[type=submit] {
    margin: 0;
  }
}
@media (max-width: 575px) {
  .sticky-form .gform_wrapper.gravity-theme .gform_fields input[type=submit] {
    min-height: 40px;
    max-height: 44px;
  }
}
.sticky-form .gform_wrapper.gravity-theme .gform-body {
  margin-top: 2.7rem;
}
@media (min-width: 575px) {
  .sticky-form .gform_wrapper.gravity-theme .gform-body {
    margin-top: 3.7rem;
  }
}
.sticky-form .gform_wrapper.gravity-theme .gform_footer {
  padding: 0;
  margin-top: 1rem;
}
.sticky-form .gform_wrapper.gravity-theme .gform_validation_errors {
  margin-bottom: 1rem;
}
.sticky-form--contact {
  right: 0;
  top: var(--sticky-form-top-shape);
  max-height: var(--sticky-form-height);
}
@media (min-width: 1112px) {
  .sticky-form--contact {
    border-radius: 0 0 0 20px;
    height: 82rem;
  }
}
@media (max-width: 1112px) {
  .sticky-form--contact {
    height: var(--sticky-form-height);
  }
}
@media (min-width: 575px) and (max-width: 1112px) {
  .sticky-form--contact {
    height: 84rem;
  }
}
.sticky-form--contact .sticky-form__trigger {
  position: absolute;
  top: 40px;
  left: 0;
  transform: translateX(-99%) rotate(180deg);
  writing-mode: tb-rl;
  background: linear-gradient(270deg, rgb(86, 122, 183) 0%, var(--primary-color1) 25%);
  border: 2px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 4px 42px rgba(62, 75, 130, 0.2);
  border-radius: 0 20px 20px 0;
  color: var(--secondary-color3);
  padding: 3.2rem 1rem;
  cursor: pointer;
  font-weight: 800;
  font-size: 1.6rem;
  line-height: 1;
  letter-spacing: 0.03em;
  display: flex;
  align-items: center;
}
@media (max-width: 1112px) {
  .sticky-form--contact .sticky-form__trigger {
    padding: 17px 14px;
    font-size: 1.75rem;
    border-radius: 0 10px 10px 0;
  }
}
@media (min-width: 1441px) {
  .sticky-form--contact .sticky-form__trigger {
    font-size: 2.2rem;
    padding: 4.5rem 1.6rem;
  }
}
.sticky-form--contact .sticky-form__trigger:hover, .sticky-form--contact .sticky-form__trigger:focus-visible {
  color: #C6EAFF;
  background: linear-gradient(90deg, rgb(86, 122, 183) 0%, var(--primary-color1) 25%);
}
.sticky-form--contact .sticky-form__trigger:hover .icon, .sticky-form--contact .sticky-form__trigger:focus-visible .icon {
  color: var(--primary-color3);
}
.sticky-form--contact .sticky-form__trigger .caption {
  padding-top: 1.4rem;
}
@media (max-width: 1112px) {
  .sticky-form--contact .sticky-form__trigger .caption {
    display: none;
  }
}
.sticky-form--contact .sticky-form__trigger .icon {
  color: var(--primary-color2);
  transform: rotate(180deg);
  width: 2.2rem;
  height: 2.2rem;
  transition: all var(--base-transition) ease-in-out;
}
@media (max-width: 575px) {
  .sticky-form--contact .sticky-form__trigger .icon {
    width: 15px;
    height: 15px;
  }
}
@media (min-width: 1441px) {
  .sticky-form--contact .sticky-form__trigger .icon {
    width: 2.9rem;
    height: 2.9rem;
  }
}
.sticky-form--contact .gform_button:focus + .c-btn, .sticky-form--contact .gform_button:focus + .wpcf7-submit,
.sticky-form--contact .gform_button:focus + .gform_button, .sticky-form--contact .gform_button:focus-visible + .c-btn, .sticky-form--contact .gform_button:focus-visible + .wpcf7-submit,
.sticky-form--contact .gform_button:focus-visible + .gform_button {
  --x: 100%;
  outline: 2px solid var(--primary-color3);
  outline-offset: 3px;
  box-shadow: inset 0 6px 14px rgba(255, 255, 255, 0.25);
}
.sticky-form--e-book {
  left: 0;
  transform: translateX(-100%);
  bottom: 0;
  height: calc(100vh - var(--navbar-hight));
  max-height: calc(100vh - var(--navbar-hight));
}
@media (min-width: 1112px) {
  .sticky-form--e-book {
    border-radius: 0 20px 0 0;
    bottom: 13vh;
    height: 62rem;
    max-height: calc(87vh - var(--navbar-hight));
  }
}
@media (max-width: 575px) {
  .sticky-form--e-book.is-active {
    bottom: unset !important;
    top: var(--navbar-hight);
  }
}
@media (min-width: 575px) and (max-width: 1112px) {
  .sticky-form--e-book {
    height: 60rem;
  }
}
.sticky-form--e-book.is-active .sticky-form__trigger {
  box-shadow: none;
  bottom: 0;
}
@media (max-width: 1112px) {
  .sticky-form--e-book .gravity-theme {
    min-height: calc(100% - var(--h-margin) * 1.5);
  }
}
.sticky-form--e-book .sticky-form__trigger {
  --outline-color: rgba(103, 157, 221, 0.1);
  --outline-size: 0.7rem;
  position: absolute;
  right: 0;
  bottom: var(--outline-size);
  transform: translateX(100%);
  background: var(--secondary-color3);
  border-radius: 0 300px 300px 0;
  padding: 1.5rem 2.5rem 1.9rem 5rem;
  cursor: pointer;
  font-weight: 800;
  font-size: 1.6rem;
  line-height: 1;
  letter-spacing: 0.03em;
  display: flex;
  align-items: center;
  box-shadow: 0 0 0 var(--outline-size) var(--outline-color);
}
@media (max-width: 1112px) {
  .sticky-form--e-book .sticky-form__trigger {
    padding: 14px 12px 16px 12px;
    font-size: 1.75rem;
    border-radius: 0 10px 10px 0;
  }
}
@media (hover: hover) {
  .sticky-form--e-book .sticky-form__trigger:hover {
    background: #F0F5FC;
  }
}
.sticky-form--e-book .sticky-form__trigger .caption {
  font-size: 2.9rem;
  line-height: 1;
  letter-spacing: -0.02em;
  background: linear-gradient(20deg, var(--primary-color1) 50%, var(--primary-color3) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
}
@media (max-width: 1112px) {
  .sticky-form--e-book .sticky-form__trigger .caption {
    display: none;
  }
}
.sticky-form--e-book .sticky-form__trigger .caption span {
  display: block;
  font-weight: 400;
  font-size: 1.4rem;
}
.sticky-form--e-book .sticky-form__trigger .icon {
  color: var(--primary-color2);
  width: 2.1rem;
}
@media (max-width: 1112px) {
  .sticky-form--e-book .sticky-form__trigger .icon {
    width: 26px;
  }
}
.sticky-form--e-book .sticky-form__trigger .icon.mobile {
  display: none;
}
@media (max-width: 1112px) {
  .sticky-form--e-book .sticky-form__trigger .icon.mobile {
    display: block;
  }
}
.sticky-form--e-book .sticky-form__trigger .icon.desktop {
  margin-left: 2rem;
}
@media (max-width: 1112px) {
  .sticky-form--e-book .sticky-form__trigger .icon.desktop {
    display: none;
  }
}

.sticky-form-overlay {
  z-index: -1;
  position: fixed;
  width: 100%;
  height: 100%;
  background-color: var(--black);
  opacity: 0;
  transition: all var(--base-transition) ease-in-out;
}
.sticky-form-overlay.is-active {
  z-index: 89;
  opacity: 0.5;
}

.social-list.social-list {
  --social-link-gap_h: 10px;
  gap: var(--social-link-gap_h);
  display: flex;
  flex-wrap: wrap;
  max-width: 22.3rem;
}
@media (min-width: 1441px) {
  .social-list.social-list {
    max-width: 36rem;
  }
}
.social-list__link {
  display: flex;
  position: relative;
}
.social-list__link:before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  pointer-events: none;
  border-radius: inherit;
  opacity: 1;
  background: radial-gradient(119.17% 304.47% at 67.78% -61.67%, var(--primary-color3) 0%, var(--primary-color1) 100%);
  transition: all var(--base-transition) ease-in-out;
}
.social-list__link:hover, .social-list__link:focus-visible {
  transform: scale(1);
}
.social-list__link:hover:before, .social-list__link:focus-visible:before {
  opacity: 0;
  z-index: -1;
}
.social-list__icon {
  position: relative;
  max-width: 60%;
  max-height: 60%;
}
.social-list__icon.icon-social-blog {
  max-height: 55%;
  max-width: 55%;
}
.social-list__icon.icon-social-instagram {
  max-width: 55%;
}
.social-list__icon.icon-social-twitter {
  max-width: 50%;
}

.site-header:not(.is-sticky) ~ .sticky-socials, .site-header:not(.is-sticky) ~ div ~ .sticky-socials {
  --sticky-form-top-shape: calc(var(--navbar-hight-not-sticky));
}
.site-header ~ .sticky-socials, .site-header ~ div ~ .sticky-socials {
  --sticky-form-top-shape: calc(var(--navbar-hight) + 3px);
}

.sticky-socials {
  position: fixed;
  left: 0;
  z-index: 90;
  top: calc(var(--sticky-form-top-shape) + 40px);
  border-radius: 0 10px 10px 0;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  transition: all var(--base-transition) ease-in-out;
}
@media (max-width: 575px) {
  .sticky-socials {
    top: calc(var(--sticky-form-top-shape) + 40px);
  }
}
.sticky-socials.is-active {
  pointer-events: auto;
}
.sticky-socials.is-active .social-list,
.sticky-socials.is-active .socials-close {
  transform: translateX(0);
}
.sticky-socials .socials-close {
  border-radius: 0 10px 0 0;
  width: 5.3rem;
  height: 3.2rem;
  transform: translateX(-100%);
  order: 1;
  border: none;
  transition: all var(--base-transition) ease-in-out;
}
.sticky-socials .socials-toggle {
  margin-top: 3.4rem;
  border-radius: inherit;
  height: 5.3rem;
  pointer-events: auto;
  order: 3;
  color: #ffffff;
}
.sticky-socials .socials-toggle,
.sticky-socials .socials-close {
  background-color: var(--light-white);
  width: 5.3rem;
  cursor: pointer;
  color: #ffffff;
  transition: all var(--base-transition) ease-in-out;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sticky-socials .socials-toggle:hover, .sticky-socials .socials-toggle:focus-visible,
.sticky-socials .socials-close:hover,
.sticky-socials .socials-close:focus-visible {
  background-color: var(--secondary-color3);
}
.sticky-socials .socials-toggle:focus-visible,
.sticky-socials .socials-close:focus-visible {
  outline: 2px solid currentColor;
}
.sticky-socials .socials-toggle .icon,
.sticky-socials .socials-close .icon {
  max-width: 60%;
  max-height: 60%;
}
.sticky-socials .social-list {
  --social-icon-size: 5.3rem;
  --social-icon-radius: 0;
  --social-icon-color: var(--primary-color1);
  --social-icon-bg-hover: var(--secondary-color3);
  --social-icon-bg: var(--lighter-gray);
  order: 2;
  display: flex;
  flex-direction: column;
  gap: 0;
  background-color: var(--lighter-gray);
  border-radius: 0 0 10px 0;
  transform: translateX(-100%);
  transition: all var(--base-transition) ease-in-out;
}
.sticky-socials .social-list__item {
  border-bottom: 1px solid var(--light-white);
  transition: all var(--base-transition) ease-in-out;
}
.sticky-socials .social-list__item:last-of-type {
  border-radius: 0 0 10px 0;
  border-bottom: none;
}
.sticky-socials .social-list__item:hover {
  color: var(--secondary-color3);
}
.sticky-socials .social-list__link {
  border-radius: inherit;
}
.sticky-socials .social-list__link:before {
  display: none;
}
.sticky-socials .social-list__link:hover .icon {
  color: var(--primary-color2);
}
.sticky-socials .social-list__icon {
  max-width: 45%;
  max-height: 45%;
}
.sticky-socials .social-list__icon.icon-social-tiktok {
  max-height: 55%;
  max-width: 55%;
}
.sticky-socials .social-list__icon.icon-social-blog {
  max-height: 42%;
  max-width: 42%;
}

/* 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: 4%;
}
.m-banner .l-gb-d {
  --v-gap-bot: 4%;
}
.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: 1112px) {
  .m-banner__inner {
    min-height: 100%;
  }
}
.m-banner__inner.flex-center .l-banner {
  justify-content: center;
}
.m-banner__inner.flex-center .c-btn-bar {
  text-align: center;
}
.m-banner__inner.flex-right .l-banner {
  justify-content: flex-end;
}
.m-banner__media {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 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 picture, .m-banner__media video, .m-banner__media iframe {
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  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 {
    max-height: 960px;
  }
  .static-header .m-banner--full .m-banner__container {
    --bannerHeight: var(--banner-height--full, 100vh);
  }
  .fixed-header .m-banner--full .m-banner__container {
    --bannerHeight: calc(var(--banner-height--full, 100vh) - var(--navbar-hight));
  }
}

/* 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: 1112px) {
  .l-banner__media {
    flex: 1 1 auto;
  }
}
.l-banner__media .c-image {
  height: 100%;
  width: 100%;
}
.l-banner__text {
  position: relative;
  display: flex;
  align-items: center;
  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: 1112px) {
  .l-banner__text {
    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;
}

/* 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(var(--h1-font-size-mobile), 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(var(--h2-font-size-mobile), 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(var(--h3-font-size-mobile), 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(var(--h4-font-size-mobile), 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;
  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.5;
  line-height: 0.8;
  white-space: nowrap;
  top: 0;
  padding: 0.2em 0;
  font-size: clamp(var(--backtitle-font-size-mobile, 18px), var(--h-clamp-formula), 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: 767px) {
  .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;
  }
}

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

.c-btn, .wpcf7-submit,
.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);
  margin: 2px;
  /* Button Visual Variants */
  /* Button Size Variants */
  /* Button Icon */
}
.c-btn > span, .wpcf7-submit > 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, .c-btn.-inverted .c-btn__ico, .c-btn.-secondary .c-btn__ico {
  padding-left: calc(var(--btn-padding-left-right, 20px) / 2);
  padding-right: 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, .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, .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 {
  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 {
    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 {
  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 {
    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 {
  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 {
    background-color: var(--btn-secondary-bg-hover);
    color: var(--btn-secondary-color-hover);
    border-color: var(--btn-secondary-border-color-hover);
  }
}
.c-btn.-link, .-link.wpcf7-submit,
.-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 {
  padding: 0;
}
.c-btn.-link .c-btn__ico, .-link.wpcf7-submit .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 {
  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, .c-btn.-link .c-btn__ico img, .-link.wpcf7-submit .c-btn__ico img,
.-link.gform_button .c-btn__ico img {
  max-height: 1em;
}
.c-btn.-link:hover, .-link.wpcf7-submit:hover,
.-link.gform_button:hover, .c-btn.-link:focus-visible, .-link.wpcf7-submit:focus-visible,
.-link.gform_button:focus-visible {
  color: var(--btn-link-color-hover);
}
.c-btn.-link:focus-visible, .-link.wpcf7-submit:focus-visible,
.-link.gform_button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
.c-btn.-link.icon-left .c-btn__ico, .-link.icon-left.wpcf7-submit .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 {
  margin-left: 10px;
}
.c-btn.-small, .-small.wpcf7-submit,
.-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 {
  font-size: 0.8em;
}
.c-btn.-small .icon, .-small.wpcf7-submit .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 {
  font-size: 1.4em;
}
.c-btn.is-oblique, .is-oblique.wpcf7-submit,
.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,
.c-btn.is-oblique .c-btn__ico .icon,
.is-oblique.wpcf7-submit .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 0.3s, filter 0.3s, opacity 0.3s;
  pointer-events: none;
  display: flex;
}
.c-btn__ico svg, .c-btn__ico img {
  margin: auto;
  max-height: 1.5em;
}
.c-btn__ico svg {
  fill: var(--btn-ico-color);
  color: var(--btn-ico-color);
}
.c-btn__ico img {
  transition: transform 0.3s, filter 0.3s, opacity 0.3s;
  max-width: 100%;
}
.c-btn.icon-left, .icon-left.wpcf7-submit,
.icon-left.gform_button {
  flex-direction: row-reverse;
}
.c-btn .icon-reversed, .wpcf7-submit .icon-reversed,
.gform_button .icon-reversed {
  transform: scaleX(-1);
}
.c-btn-bar .c-btn, .c-btn-bar .wpcf7-submit,
.c-btn-bar .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 {
    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 {
    transform: translateX(-5px) scaleX(-1);
  }
}

/* CF7 Submit Button */
.wpcf7-submit,
.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);
  transition: all 0.3s;
}
@media (hover: hover) {
  .wpcf7-submit: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: 767px) {
  .c-image {
    position: relative;
  }
  .c-image:before {
    display: block;
    content: " ";
    width: 100%;
    padding-top: 100%;
  }
  .c-image > .content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
  .c-image .c-image__src, .c-image svg {
    width: 100%;
  }
}
.c-image.main-c-cropped .c-image__src,
.c-image.main-c-cropped .c-image svg {
  object-fit: cover;
}
.c-image.main-c-not-cropped .c-image__src,
.c-image.main-c-not-cropped .c-image svg {
  object-fit: contain;
}
.c-image__src,
.c-image svg {
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
}
.c-image__secondary {
  position: absolute;
  transition: transform var(--base-transition), opacity var(--base-transition);
  z-index: 2;
}
@media (max-width: 1112px) {
  .c-image__secondary {
    height: 100%;
  }
  .c-image__secondary .c-image__src,
  .c-image__secondary svg {
    max-height: 110%;
  }
}
@media (max-width: 767px) {
  .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,
.front-v-center.front-h-center .c-image__secondary svg {
  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, .c-image__primary .c-image__src svg,
.main-h-full .c-video__primary .c-image__src,
.c-video__primary .c-image__src svg {
  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;
}

/**
 ############################
 #   Content Block Component
 ############################
 */
.c-block {
  border-radius: var(--c-block-radius);
}
.c-block__title {
  position: relative;
  font-size: var(--c-block-title-size);
  font-weight: var(--c-block-title-weight);
  text-transform: var(--c-block-title-transform);
  color: var(--c-block-title-color);
  margin-bottom: var(--h4-margin-bottom, 0.5em);
}
.c-block__title a {
  color: inherit;
  display: block;
}
.c-block__title a:hover {
  color: var(--btn-link-color-hover);
}
.c-block.has-background {
  background-color: var(--c-block-bg, #fff);
}
.c-block.has-shadow {
  box-shadow: var(--c-block-shadow);
}
.c-block__pretitle {
  margin-bottom: 0.5em;
}
.c-block__description strong {
  color: var(--primary-color2);
}
.c-block__description p:last-child {
  margin-bottom: 0;
}
.c-block__media {
  position: relative;
}
.c-block__media img {
  max-width: 100%;
  max-height: 100%;
}
.c-block__icon {
  max-width: 100%;
  height: auto;
  overflow: hidden;
}
.c-block .c-block__btn {
  margin-top: 1em;
}
@media (hover: hover) {
  .c-block {
    transition: transform 0.4s ease-out, background-color 0.4s;
  }
}

/* Custom Critical */
:root {
  --navbar-hight: 100px;
  --navbar-hight-not-sticky: 30vh;
  /* Colors*/
  --dark-gray: #6A6A6A;
  --lighter-gray: #CFD1D9;
  --light-gray: #E6EEF4;
  --dark-white: #F4F6FF;
  --light-white: #E6EFF9;
  --primary-color1-dark: #0B1643;
  --black: #000000;
  /* End colors*/
}

.m-banner {
  --banner-height--small: 72.5rem;
  --banner-height--medium: 96.5rem;
  --banner-height--blog: 72.5rem;
  --banner-height--full: 100vh;
  --banner-height--single: 66.4vmin;
}

.m-slider {
  position: relative;
}

/* Header */
.site-header {
  --navbar-gap_v: 30px;
  --navbar-gap_h: 1vw;
  --navbar-link-height: 30px;
  --header-link-color: var(--main-header-color);
  --header-link-color-hover: #F68765;
  --header-logo-width: 100%;
  --header-logo-height: 7.4rem;
  --dropdown-bg: #fff;
  --dropdown-color: var(--primary-color1);
  --dropdown-color-active: var(--primary-color2);
  --dropdown-font-size: 16px;
  --dropdown-font-weight: 600;
  --dropdown-padding: 18px 0 0;
  --dropdown-width: 200px;
  --main-header-font-size: 1.7rem;
}
@media (min-width: 1660px) {
  .site-header {
    --navbar-gap_h: 4.35vw;
    --header-logo-height: 9.4rem;
  }
}
.site-header:not(.is-sticky) {
  --main-header-background-color: transparent;
  background-image: linear-gradient(180deg, #192559 0, rgba(19, 30, 75, 0) 100%);
}
.site-header__top .site-header__row {
  padding-block: 1rem;
  position: relative;
}
.site-header__top .header-top-close {
  position: absolute;
  top: 50%;
  right: var(--page-gutter);
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  color: var(--top-header-color);
  display: flex;
  cursor: pointer;
  transition: all var(--base-transition) ease-in-out;
  opacity: 0;
  pointer-events: none;
}
.site-header__top .header-top-close svg {
  max-width: 100%;
  max-height: 100%;
}
.site-header__top .header-top-close:hover {
  opacity: 0.3;
}
.top-header-closed .site-header__top {
  max-height: 0;
  overflow: hidden;
  padding: 0;
}
.site-header__main {
  transition: all var(--base-transition) ease-in-out;
}
.site-header__row {
  padding-right: var(--page-gutter, 20px);
  padding-left: var(--page-gutter, 20px);
  max-width: 100vw;
}
@media (min-width: 1112px) {
  .site-header__row {
    padding-right: 7rem;
    padding-left: 7rem;
  }
}
@media (min-width: 1112px) {
  .site-header .menu-item.current-menu-item:before, .site-header .menu-item.current-menu-parent:before {
    display: none;
    content: "";
    position: absolute;
    z-index: 0;
    top: calc((var(--header-logo-height) + 0.5rem) / -2);
    right: var(--toggle-btn-width);
    transform: translate(0, -100%);
    width: calc(100% - var(--toggle-btn-width) * 2);
    height: 7px;
    pointer-events: none;
    border-radius: inherit;
    background: var(--primary-color2);
  }
}
@media (min-width: 1112px) {
  .site-header .menu-item:first-of-type.current-menu-parent:before {
    width: calc(100% - var(--toggle-btn-width));
  }
}
@media (min-width: 1660px) {
  .site-header .links-list {
    margin-left: 1vw;
  }
}
.site-header .links-list__item {
  font-size: 1.8rem;
}
.site-header .links-list__btn .c-btn__txt {
  font-weight: 800;
  font-size: 2.4rem;
  padding: 0;
}
.site-header .links-list svg {
  width: 2rem;
  height: 2rem;
  margin-inline: 1rem;
}
@media (min-width: 1112px) {
  .site-header__col.-right {
    gap: 3.6rem;
  }
}

.navbar-mobile {
  --burger-width: 22px;
  --burger-segment-hight: 3px;
  --burger-segment-gap: 7px;
  --burger-segment-radius: 0;
  --burger-color: #fff;
  --burger-bg: rgba(255, 255, 255, 0);
  --header-mobile-bg: var(--primary-color1);
  --link-size-l1: 20px;
  --link-size-l2: 16px;
  --link-color: #fff;
  --link-gap: 15px;
}

.site-search {
  --search-size: 30px;
  --search-btn-bg: transparent;
  --search-btn-radius: 4px;
  --search-height: 30px;
  --search-width: 250px;
  --search-radius: 4px;
  --search-outer-bg: var(--primary-color3);
  --search-outer-gap: 5px;
  --search-outer-border: #333;
}

.site-header .site-header__logo img, .site-header .site-header__logo svg {
  transition: all var(--base-transition) ease-in-out;
}
.site-header > a:not(.c-btn):not(.wpcf7-submit):not(.gform_button):not(.wpcf7-submit):not(.gform_button):hover, .site-header > .plain-menu-item:hover {
  color: var(--header-link-color-hover, var(--primary-color2));
}

.nav-main__links .menu-item a,
.nav-main__links .menu-item .plain-menu-item {
  text-transform: uppercase;
  font-weight: 800;
}
@media (min-width: 1112px) {
  .nav-main__links .menu-item.horizontally-sub-menu .sub-menu {
    display: flex;
    transform: translate(0%, 0);
    left: 0;
    max-width: unset;
    width: fit-content;
    border-radius: 10px;
    overflow: hidden;
  }
  .nav-main__links .menu-item.horizontally-sub-menu .sub-menu:before {
    left: 12.3rem;
  }
  .nav-main__links .menu-item.horizontally-sub-menu .sub-menu:after {
    height: calc(100% - 10px);
  }
  .nav-main__links .menu-item.horizontally-sub-menu .sub-menu .menu-item {
    border-top: 1px solid rgba(103, 157, 221, 0.18);
    width: 161px;
  }
  .nav-main__links .menu-item.horizontally-sub-menu .sub-menu .menu-item:hover .menu-item-img-wrapper svg path, .nav-main__links .menu-item.horizontally-sub-menu .sub-menu .menu-item.current-menu-item .menu-item-img-wrapper svg path {
    fill: var(--secondary-color3) !important;
  }
  .nav-main__links .menu-item.horizontally-sub-menu .sub-menu .menu-item:before {
    opacity: 1;
    top: unset;
    left: 50%;
    transform: translateX(-50%);
    bottom: 17px;
    display: none;
  }
  .nav-main__links .menu-item.horizontally-sub-menu .sub-menu .menu-item:not(:first-of-type) {
    border-left: 1px solid rgba(103, 157, 221, 0.18);
  }
  .nav-main__links .menu-item.horizontally-sub-menu .sub-menu .menu-item > a:not(.c-btn):not(.wpcf7-submit):not(.gform_button), .nav-main__links .menu-item.horizontally-sub-menu .sub-menu .menu-item > .plain-menu-item {
    padding: 30px 30px 37px;
    display: flex;
    flex-direction: column;
    line-height: 1.17;
    text-align: center;
    height: 100%;
  }
  .nav-main__links .menu-item.horizontally-sub-menu .sub-menu .menu-item .menu-item-content {
    margin-top: 14px;
  }
  .nav-main__links .menu-item.horizontally-sub-menu .sub-menu .menu-item .menu-item-img-wrapper {
    height: 58px;
    display: flex;
    align-items: center;
    margin: 0 auto;
  }
}
@media (min-width: 1112px) {
  .nav-main__links > .menu-item > a {
    padding: 0.5rem var(--toggle-btn-width);
  }
}
@media (min-width: 1112px) {
  .nav-main__links > .menu-item.menu-item-has-children > a,
  .nav-main__links > .menu-item.menu-item-has-children > .plain-menu-item {
    padding-right: 0;
  }
}
@media (min-width: 1112px) {
  .nav-main__links .sub-menu {
    right: 1.5rem;
    left: unset;
  }
  .nav-main__links .sub-menu:before {
    border-width: 0 10px 8px 10px;
  }
  .nav-main__links .sub-menu:after {
    top: 8px;
    background: linear-gradient(0deg, #F4F6FF, var(--secondary-color3));
  }
  .nav-main__links .sub-menu .menu-item {
    margin: 0;
    position: relative;
    background: #F4F6FF;
    transition: all var(--base-transition) ease-in-out;
  }
  .nav-main__links .sub-menu .menu-item:hover, .nav-main__links .sub-menu .menu-item.current-menu-item {
    background-color: var(--primary-color1);
    color: var(--secondary-color3);
  }
  .nav-main__links .sub-menu .menu-item:hover > a:not(.c-btn):not(.wpcf7-submit):not(.gform_button), .nav-main__links .sub-menu .menu-item:hover > .plain-menu-item, .nav-main__links .sub-menu .menu-item.current-menu-item > a:not(.c-btn):not(.wpcf7-submit):not(.gform_button), .nav-main__links .sub-menu .menu-item.current-menu-item > .plain-menu-item {
    color: inherit;
  }
  .nav-main__links .sub-menu .menu-item:hover:before, .nav-main__links .sub-menu .menu-item:hover:after, .nav-main__links .sub-menu .menu-item.current-menu-item:before, .nav-main__links .sub-menu .menu-item.current-menu-item:after {
    opacity: 1;
  }
  .nav-main__links .sub-menu .menu-item a:focus-visible {
    background-color: var(--primary-color1);
    color: #ffffff !important;
  }
  .nav-main__links .sub-menu .menu-item a:focus-visible .menu-item-content {
    color: #ffffff;
  }
  .nav-main__links .sub-menu .menu-item a:focus-visible svg,
  .nav-main__links .sub-menu .menu-item a:focus-visible path {
    fill: #ffffff;
  }
  .nav-main__links .sub-menu .menu-item:first-of-type {
    border-top: 1px solid rgba(103, 157, 221, 0.18);
  }
  .nav-main__links .sub-menu .menu-item:before, .nav-main__links .sub-menu .menu-item:after {
    position: absolute;
    content: "";
    pointer-events: none;
    opacity: 0;
    transition: all var(--base-transition) ease-in-out;
  }
  .nav-main__links .sub-menu .menu-item:after {
    top: -1px;
    left: 0;
    width: 100%;
    height: calc(100% + 1px);
    border-radius: inherit;
    background: radial-gradient(119.17% 304.47% at 67.78% -61.67%, var(--primary-color3) 0%, transparent 100%);
    z-index: 0;
  }
  .nav-main__links .sub-menu .menu-item:before {
    top: 50%;
    right: 8px;
    left: unset;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Ccircle cx='7' cy='7' r='7' fill='url(%23paint0_radial_1351_6247)'/%3E%3Cpath d='M5 7H9' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7 5L9 7L7 9' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cdefs%3E%3CradialGradient id='paint0_radial_1351_6247' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='translate(9.48969 -8.63333) rotate(103.734) scale(17.1743 26.3261)'%3E%3Cstop stop-color='%23E1AD59'/%3E%3Cstop offset='0.427083' stop-color='%23F36437'/%3E%3C/radialGradient%3E%3C/defs%3E%3C/svg%3E");
    border-radius: 50px;
    transform: translateY(-50%);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 1;
  }
  .nav-main__links .sub-menu .menu-item > a:not(.c-btn):not(.wpcf7-submit):not(.gform_button), .nav-main__links .sub-menu .menu-item > .plain-menu-item {
    color: var(--primary-color1);
    font-size: 12px;
    padding: 9px 30px 9px 15px;
    position: relative;
    z-index: 2;
  }
}

/* Mobile navigation */
.site-header:not(.is-sticky) .navbar-mobile {
  background-image: linear-gradient(180deg, #192559 0%, rgba(255, 255, 255, 0) 100%);
}
@media (max-width: 1112px) {
  .site-header:not(.is-sticky) .navbar-mobile {
    height: auto;
    max-height: var(--navbar-hight);
    padding: 29px 20px 26px;
    --navbar-hight: var(--navbar-hight-not-sticky);
    background-color: rgba(255, 255, 255, 0);
    transition: all var(--base-transition) ease-in-out;
  }
}
@media (max-width: 1112px) {
  .site-header:not(.is-sticky) .site-header__logo img, .site-header:not(.is-sticky) .site-header__logo svg {
    max-height: 65px;
    height: 65px;
  }
}
@media (max-width: 1112px) {
  .site-header.is-sticky .navbar-mobile {
    background-image: linear-gradient(180deg, #192559 0%, var(--primary-color1) 100%);
  }
}
@media (max-width: 1112px) {
  .site-header .navbar-mobile {
    position: relative;
  }
  .site-header .navbar-mobile .links-list__item {
    flex-wrap: wrap;
    flex-direction: column;
    align-items: center;
    width: 100%;
    background: linear-gradient(90deg, rgba(103, 157, 221, 0.39) 0%, rgba(103, 157, 221, 0) 100%);
    border-radius: 6px;
    padding: 20px 30px;
  }
  .site-header .navbar-mobile .links-list__item span, .site-header .navbar-mobile .links-list__item a {
    color: inherit;
    font-weight: 800;
  }
  .site-header .navbar-mobile .links-list__item > span {
    font-size: 2.25rem;
    margin-bottom: 5px;
  }
  .site-header .navbar-mobile .links-list__item a {
    font-size: 4rem;
    line-height: 1;
  }
  .site-header .navbar-mobile .links-list__item a span {
    line-height: inherit;
    padding: 0;
  }
  .site-header .navbar-mobile .social-list {
    padding-top: 13px;
    margin-bottom: 0;
    margin-inline: auto;
    width: 30rem;
    max-width: 100%;
  }
  .site-header .navbar-mobile .social-list__link {
    background-color: var(--secondary-color3);
    --social-icon-color: var(--header-mobile-bg);
  }
  .site-header .navbar-mobile .social-list__link:before {
    display: none;
  }
  .site-header .navbar-mobile .nav-secondary {
    padding-top: 12px;
  }
  .site-header .navbar-mobile .nav-secondary__links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    font-size: 1.75rem;
  }
  .site-header .navbar-mobile .c-btn-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  .site-header .navbar-mobile .c-btn-bar .c-btn__txt {
    padding-top: 1.875rem;
    padding-bottom: 1.875rem;
  }
}
.site-header .burger-icon {
  width: 30px;
  height: 23px;
}
@media (max-width: 1112px) {
  .site-header .nav-main__btn {
    padding-left: 0;
    padding-right: 0;
    width: 50px;
    height: 50px;
  }
  .site-header .nav-main__links > .menu-item {
    border-bottom: 1px dashed rgba(244, 246, 255, 0.32);
  }
  .site-header .nav-main__links > .menu-item:last-of-type {
    border: none;
  }
  .site-header .nav-main .sub-menu {
    padding: 0;
  }
  .site-header .nav-main .sub-menu a {
    padding: 15px 25px;
    font-weight: 500;
    background: linear-gradient(90deg, rgba(103, 157, 221, 0.39) 0%, rgba(103, 157, 221, 0) 100%);
    border-radius: 6px;
    line-height: 1;
    margin: 5px 0;
  }
  .site-header .nav-main .sub-menu li:last-of-type {
    margin-bottom: 8px;
  }
}

@media (max-width: 1112px) {
  .nav-active .site-header:not(.is-sticky) .navbar-mobile {
    background-color: #192559;
    background-image: linear-gradient(180deg, #192559 0%, var(--primary-color1) 100%);
  }
}
@media (max-width: 1112px) {
  .nav-active .site-header .navbar-mobile {
    height: auto;
    max-height: var(--navbar-hight);
    padding: 49px 20px 26px;
    --navbar-hight: 139px;
    background-color: #192559;
  }
}
.nav-active .site-header .navbar-mobile__inner {
  max-height: 95vh;
  height: calc(100vh - var(--navbar-hight));
  padding: 15px 15px 150px 15px;
}
@media (max-width: 1112px) {
  .nav-active .site-header .site-header__logo img, .nav-active .site-header .site-header__logo svg {
    max-height: 65px;
    height: 65px;
  }
}

body:not(.nav-active) .burger-icon {
  width: var(--burger-width);
}
body:not(.nav-active) .burger-icon > div:before, body:not(.nav-active) .burger-icon > div:after {
  width: calc(100% + 8px);
  left: unset;
  right: 0;
}

body.nav-active {
  height: 100%;
  min-height: 100vh;
  overflow: hidden;
}

/*End mobile navigation*/
.m-banner__container {
  padding-top: var(--navbar-hight);
  width: 100%;
}
@media (max-width: 1112px) {
  .m-banner__container {
    --navbar-hight: 139px;
  }
}
@media (max-width: 575px) {
  .m-banner__container {
    padding-bottom: 6rem;
  }
}
.m-banner .c-banner__description {
  font-size: 2.2rem;
  width: 51.8rem;
  max-width: 100%;
}
@media (max-width: 767px) {
  .m-banner .c-banner__description {
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 575px) {
  .m-banner .c-banner__description {
    font-size: 2.25rem;
    width: 293px;
    margin: 0 auto;
  }
}
@media (max-width: 767px) {
  .m-banner .c-banner__content {
    text-align: center;
  }
}

.m-banner.-version-1 .loc-search-form {
  width: 68rem;
  max-width: 100%;
}
.m-banner.-version-1 .m-banner__container {
  position: relative;
}
.m-banner.-version-1 .m-banner__container:before {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: 0;
  width: 100%;
  height: 22%;
  pointer-events: none;
  background: linear-gradient(0deg, var(--primary-color1) 0%, rgba(19, 30, 75, 0) 100%);
}
@media (min-width: 1112px) {
  .m-banner.-version-1 .m-banner__container:before {
    top: 0;
    left: 0;
    height: 100%;
    width: 60%;
    background: linear-gradient(100deg, var(--primary-color1-dark) 7.19%, rgba(11, 22, 67, 0) 86.08%);
  }
}
@media (min-width: 1112px) {
  .m-banner.-version-1.has-overlay .m-banner__media:after {
    display: none;
  }
}
@media (max-width: 575px) {
  .m-banner.-version-1.has-search-form .m-banner__container {
    padding-bottom: 0;
  }
}
@media (max-width: 575px) {
  .m-banner.-version-1.has-search-form .l-banner {
    padding-bottom: 0;
  }
}
@media (max-width: 575px) {
  .m-banner.-version-1.has-search-form .loc-search-form {
    margin-top: 32px;
  }
}
.m-banner.-version-1.has-search-form .loc-search-form:before {
  background-color: var(--primary-color2);
}
@media (max-width: 1112px) {
  .m-banner.-version-1.has-search-form .loc-search-form:before {
    background: radial-gradient(119.17% 304.47% at 67.78% -61.67%, var(--secondary-color2) 0%, var(--primary-color2) 42.71%);
  }
}
@media (max-width: 575px) {
  .m-banner.-version-1 .c-banner__content {
    text-align: center;
  }
}
.m-banner.-version-1 .c-banner__content .c-heading__title {
  font-size: 10rem;
  line-height: 0.91;
  letter-spacing: -0.03em;
}
@media (max-width: 575px) {
  .m-banner.-version-1 .c-banner__content .c-heading__title {
    font-size: 7.5rem;
  }
}
.m-banner.-version-1 .c-banner__content .c-heading__pre {
  color: var(--main-title-color-alt);
  margin-bottom: 4rem;
  letter-spacing: 0.4em;
}
@media (max-width: 575px) {
  .m-banner.-version-1 .c-banner__content .c-heading__pre {
    margin-bottom: 10px;
  }
}
.m-banner.-version-1 .c-banner__description {
  width: 46rem;
}
@media (max-width: 575px) {
  .m-banner.-version-1 .c-banner__description {
    width: 307px;
  }
}
@media (max-width: 1112px) {
  .m-banner.-version-1 .c-video__controls {
    display: none;
  }
}

.m-banner.-version-2 {
  position: relative;
  margin-bottom: var(--banner-bottom-shift);
  --banner-bottom-shift: 22.5rem;
}
@media (min-width: 767px) {
  .m-banner.-version-2 {
    --banner-bottom-shift: 12.5rem;
  }
}
@media (min-width: 1112px) {
  .m-banner.-version-2.order-reverse .l-banner__text {
    padding-right: var(--shift);
    padding-left: 2rem;
  }
}
@media (min-width: 767px) {
  .m-banner.-version-2.order-reverse .l-banner__media {
    right: unset;
    left: 0;
  }
}
@media (min-width: 1112px) {
  .m-banner.-version-2 .m-banner__inner {
    max-width: calc(100vw + var(--page-gutter, 20px) * 2);
    padding: 0;
  }
}
@media (max-width: 1112px) {
  .m-banner.-version-2 .m-banner__container {
    overflow: visible;
  }
}
@media (min-width: 767px) and (max-width: 1112px) {
  .m-banner.-version-2 .m-banner__container {
    --columns-ratio: 55% !important;
  }
}
@media (min-width: 767px) {
  .m-banner.-version-2 .m-banner__container:before {
    position: absolute;
    content: "";
    bottom: -1px;
    left: 0;
    right: 0;
    height: 8px;
    z-index: 1;
    background: linear-gradient(90deg, var(--primary-color2), var(--secondary-color2) 30%, #4C66A0 30%, var(--primary-color3));
  }
}
.m-banner.-version-2 .m-banner__container:after {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 27.2rem;
  transform: translateY(100%);
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(103, 157, 221, 0.6) 0%, rgba(244, 246, 255, 0) 100%);
  background-color: inherit;
  transition: all var(--base-transition) ease-in-out;
}
@media (max-width: 575px) {
  .m-banner.-version-2 .m-banner__container:after {
    height: 47.125rem;
  }
}
.m-banner.-version-2 .m-banner__media {
  background-color: var(--primary-color1);
}
.m-banner.-version-2 .m-banner__picture {
  opacity: 0.5;
  mix-blend-mode: multiply;
}
.m-banner.-version-2 .l-banner {
  position: relative;
}
@media (max-width: 575px) {
  .m-banner.-version-2 .l-banner {
    gap: 5.625rem;
  }
}
@media (min-width: 1112px) {
  .m-banner.-version-2 .l-banner__text {
    --shift: calc(50vw - var(--content-width) / 2);
    padding-left: var(--shift);
  }
}
@media (min-width: 767px) {
  .m-banner.-version-2 .l-banner__text {
    max-width: var(--columns-ratio);
    flex: 0 0 var(--columns-ratio);
  }
}
@media (min-width: 1112px) {
  .m-banner.-version-2 .l-banner__text .c-heading {
    margin-bottom: 1.5rem;
  }
}
@media (min-width: 767px) {
  .m-banner.-version-2 .l-banner__media {
    padding: 3rem;
    position: absolute;
    right: 0;
    bottom: 0;
    width: calc(100% - var(--columns-ratio));
    transform: translateY(15%);
  }
}
@media (min-width: 1660px) {
  .m-banner.-version-2 .l-banner__media {
    transform: translateY(20%);
  }
}
@media (max-width: 767px) {
  .m-banner.-version-2 .l-banner__media {
    margin-bottom: calc(var(--banner-bottom-shift) * -1.25);
  }
}
@media (min-width: 575px) and (max-width: 767px) {
  .m-banner.-version-2 .l-banner__media {
    width: 80%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
}
.m-banner.-version-2 .l-banner__media .c-image {
  border-radius: 20px 215px;
  position: relative;
}
@media (max-width: 1112px) {
  .m-banner.-version-2 .l-banner__media .c-image {
    border-radius: 20px 110px;
  }
}
.m-banner.-version-2 .l-banner__media .c-image:before {
  display: block;
  content: " ";
  width: 100%;
  padding-top: 63.0346232179%;
}
.m-banner.-version-2 .l-banner__media .c-image > .content {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
@media (max-width: 1112px) {
  .m-banner.-version-2 .l-banner__media .c-image {
    position: relative;
  }
  .m-banner.-version-2 .l-banner__media .c-image:before {
    display: block;
    content: " ";
    width: 100%;
    padding-top: 97.0588235294%;
  }
  .m-banner.-version-2 .l-banner__media .c-image > .content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
}
.m-banner.-version-2 .l-banner__media .c-image:after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc(100% + 4rem);
  height: calc(100% + 4rem);
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 100%);
  transition: all var(--base-transition) ease-in-out;
}
@media (max-width: 1112px) {
  .m-banner.-version-2 .l-banner__media .c-image:after {
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0) 55%, rgba(255, 255, 255, 0) 100%);
  }
}
.m-banner.-version-2 .l-banner__media .c-image__media, .m-banner.-version-2 .l-banner__media .c-image__src {
  width: 100%;
  height: 100%;
}
.m-banner.-version-2 .l-banner__media .c-image__media {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
.m-banner.-version-2 .l-banner__media .c-image__src {
  border-radius: 6px 200px;
}
@media (max-width: 1112px) {
  .m-banner.-version-2 .l-banner__media .c-image__src {
    border-radius: 6px 100px;
  }
}
.m-banner.-version-2 .c-banner__description {
  width: 40.5rem;
}

.m-banner.-version-3 {
  margin-bottom: 0;
}
@media (min-width: 1112px) {
  .m-banner.-version-3 .c-banner__description {
    font-size: 1.8rem;
  }
}
@media (max-width: 1112px) {
  .m-banner.-version-3 .m-banner__container:after {
    display: none;
  }
}
@media (max-width: 767px) {
  .m-banner.-version-3 .l-banner {
    gap: 0;
  }
}
.m-banner.-version-3 .l-banner__media {
  margin-bottom: 0;
}

.m-banner.-version-4 {
  margin-bottom: 0;
}
@media (min-width: 767px) and (max-width: 1112px) {
  .m-banner.-version-4 .m-banner__container {
    --columns-ratio: 100% !important;
  }
}
.m-banner.-version-4 .m-banner__container:after {
  display: none;
}
.m-banner.-version-4 .c-banner__description {
  width: auto;
}

@media (max-width: 1112px) {
  .m-banner.-version-5 .m-banner__container {
    padding-bottom: 8rem;
    --columns-ratio: 100% !important;
  }
}
.m-banner.-version-5 .m-banner__container:after {
  display: none;
}
.m-banner.-version-5 .m-banner__container .phone {
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1.2;
  color: var(--secondary-color3);
}
@media (max-width: 1112px) {
  .m-banner.-version-5 .m-banner__container .phone {
    text-align: center;
    display: flex;
    gap: 16px;
    align-items: center;
    margin-inline: auto;
    width: fit-content;
  }
}
@media (min-width: 1112px) {
  .m-banner.-version-5 .m-banner__container .phone {
    display: none;
  }
}
.m-banner.-version-5 .m-banner__container .phone svg {
  color: var(--primary-color2);
  fill: var(--primary-color2);
}
@media (max-width: 1112px) {
  .m-banner.-version-5 .c-banner__content {
    text-align: center;
  }
}
.m-banner.-version-5 .c-banner__description {
  width: 100%;
}
.m-banner.-version-5 .c-banner__description ul:not(.blocks-gallery-grid) {
  margin-top: 3rem;
}
@media (max-width: 1112px) {
  .m-banner.-version-5 .c-banner__description ul:not(.blocks-gallery-grid) {
    display: none;
  }
}
.m-banner.-version-5 .c-banner__description ul:not(.blocks-gallery-grid) li {
  background-position: 0.5rem 0;
  margin-bottom: 2rem;
}
.m-banner.-version-5 .c-banner__description ul:not(.blocks-gallery-grid) li strong {
  font-size: 2rem;
  font-weight: 700;
}

.loc-search-form {
  position: relative;
  background: var(--secondary-color3);
  box-shadow: 0 4px 74px rgba(15, 44, 78, 0.41);
  border-radius: 20px;
  position: relative;
  padding: 4.3rem 3.3rem 2.3rem 2.8rem;
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
}
@media (max-width: 575px) {
  .loc-search-form {
    flex-direction: column;
    padding: 4.5rem 2.5rem 2.5rem 2.5rem;
  }
}
.loc-search-form:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -6px;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  border-radius: inherit;
  background-color: var(--primary-color3);
}
.loc-search-form.validation-error .error {
  display: block;
  text-align: center;
  width: 100%;
}
@media (max-width: 575px) {
  .loc-search-form.validation-error .error {
    margin-bottom: 2rem;
  }
}
@media (min-width: 1112px) {
  .loc-search-form.validation-error .error {
    position: absolute;
    bottom: 3px;
    left: 50%;
    transform: translate(-50%, 100%);
  }
}
.loc-search-form.validation-error .search-fields-wrapper input:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file]) {
  border-color: var(--validation-error-color);
}
.loc-search-form .loc-search-form_label {
  position: absolute;
  top: -20px;
  left: 39px;
  font-size: 1.6rem;
}
@media (max-width: 1441px) {
  .loc-search-form .loc-search-form_label {
    left: 20px;
  }
}
.loc-search-form .filter-loader {
  height: 100%;
  width: 100%;
  position: absolute;
  background: rgba(255, 255, 255, 0.5);
  z-index: 100;
  left: 0;
  top: 0;
  opacity: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: inherit;
  transition: opacity 0.35s ease-in-out;
}
.loc-search-form .filter-loader.hide {
  opacity: 0;
}
.loc-search-form .filter-loader.d-none {
  display: none;
}
.loc-search-form .spinner {
  width: 40px;
  height: 40px;
  position: relative;
}
.loc-search-form .double-bounce1, .loc-search-form .double-bounce2 {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: var(--primary-color2);
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: sk-bounce 2s infinite ease-in-out;
  animation: sk-bounce 2s infinite ease-in-out;
}
.loc-search-form .double-bounce2 {
  -webkit-animation-delay: -1s;
  animation-delay: -1s;
}
@-webkit-keyframes sk-bounce {
  0%, 100% {
    -webkit-transform: scale(0);
  }
  50% {
    -webkit-transform: scale(1);
  }
}
@keyframes sk-bounce {
  0%, 100% {
    transform: scale(0);
    -webkit-transform: scale(0);
  }
  50% {
    transform: scale(1);
    -webkit-transform: scale(1);
  }
}
.loc-search-form .search-fields-wrapper {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  flex: 1;
}
@media (max-width: 575px) {
  .loc-search-form .search-fields-wrapper {
    width: 100%;
    flex-direction: column;
  }
}
.loc-search-form .search-fields-wrapper input:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file]) {
  margin: 5px 10px;
  padding: 10px 2.6rem;
  font-size: 1.6rem;
  color: var(--primary-color1);
  border-radius: 60px;
  background-color: var(--dark-white);
  box-shadow: inset 0 3px 3px rgba(103, 157, 221, 0.1), inset 0 7.5px 15px rgba(103, 157, 221, 0.1);
  width: 100%;
  border: 1px solid;
  font-weight: 300;
}
@media (max-width: 575px) {
  .loc-search-form .search-fields-wrapper input:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file]) {
    margin: 0 0 10px;
    font-size: 2rem;
    line-height: 1.35;
  }
}
.loc-search-form .search-fields-wrapper input:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file])::-webkit-input-placeholder {
  color: var(--primary-color1);
}
.loc-search-form .search-fields-wrapper input:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file])::-moz-placeholder {
  color: var(--primary-color1);
}
.loc-search-form .search-fields-wrapper input:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file]):-ms-input-placeholder {
  color: var(--primary-color1);
}
.loc-search-form .search-fields-wrapper input:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file]):-moz-placeholder {
  color: var(--primary-color1);
}
.loc-search-form .search-fields-wrapper input:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file])[aria-invalid=true] {
  border-color: var(--primary-color1);
}
@media (min-width: 767px) {
  .loc-search-form .search-fields-wrapper input:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file]) {
    font-size: 1.8rem;
  }
}
.loc-search-form .error {
  display: none;
  text-align: left;
  font-size: 1.4rem;
  color: var(--validation-error-color);
}
.loc-search-form .c-btn, .loc-search-form .wpcf7-submit,
.loc-search-form .gform_button {
  margin: 5px;
}
@media (max-width: 575px) {
  .loc-search-form .c-btn, .loc-search-form .wpcf7-submit,
  .loc-search-form .gform_button {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .loc-search-form .c-btn, .loc-search-form .wpcf7-submit,
  .loc-search-form .gform_button {
    justify-content: center;
  }
}
@media (max-width: 575px) {
  .loc-search-form .c-btn__txt {
    line-height: 1.65;
  }
}

/* End Custom Critical */
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9faGVscGVycy9fcmVib290LnNjc3MiLCJfX2NvcmUvbWl4aW5zL19hc3BlY3QtcmF0aW8uc2NzcyIsIl9fY29yZS9taXhpbnMvX3BhZ2Utc2l6ZXMuc2NzcyIsIl9fY29yZS9zZXR0aW5ncy9fc2V0dGluZ3MtbWFpbi5zY3NzIiwiX19jb3JlL21peGlucy9faW5jbHVkZS1tZWRpYS5zY3NzIiwiX19jb3JlL3NldHRpbmdzL19zZXR0aW5ncy1mb250LnNjc3MiLCJfX2NvcmUvbWl4aW5zL19mb250LWZhY2Uuc2NzcyIsIl9sYXlvdXQvX19iYXNlLnNjc3MiLCJjcml0aWNhbC5zY3NzIiwiX2xheW91dC9oZWFkZXIvX2hlYWRlci1jb3JlLnNjc3MiLCJfbGF5b3V0L2hlYWRlci9sYXlvdXRzL19oZWFkZXJfcm93cy5zY3NzIiwiX2xheW91dC9oZWFkZXIvbGF5b3V0cy9faGVhZGVyX3N0aWNreS5zY3NzIiwiX2xheW91dC9oZWFkZXIvbGF5b3V0cy9faGVhZGVyX21vYmlsZS5zY3NzIiwiX2xheW91dC9oZWFkZXIvbGF5b3V0cy9faGVhZGVyX3NpbXBsZS5zY3NzIiwiX2xheW91dC9oZWFkZXIvbGF5b3V0cy9faGVhZGVyX2RldmljZXMuc2NzcyIsIl9sYXlvdXQvaGVhZGVyL2Jsb2Nrcy9fbmF2YmFyX21lbnUuc2NzcyIsIl9sYXlvdXQvaGVhZGVyL2Jsb2Nrcy9fbmF2YmFyX2Ryb3Bkb3duLnNjc3MiLCJfX2NvcmUvbWl4aW5zL19taW5pLW1peGlucy5zY3NzIiwiX2xheW91dC9oZWFkZXIvYmxvY2tzL19uYXZiYXJfYnVyZ2VyLnNjc3MiLCJfbGF5b3V0L2hlYWRlci9ibG9ja3MvX3NpdGVfc2VhcmNoLnNjc3MiLCJfbGF5b3V0L2hlYWRlci9ibG9ja3MvX2xpbmtzLWxpc3Quc2NzcyIsInByb2plY3QtY3VzdG9tL19jdXN0b21fX2J0bnMuc2NzcyIsInByb2plY3QtY3VzdG9tL19jdXN0b21fX3N0aWNreS1mb3Jtcy5zY3NzIiwicHJvamVjdC1jdXN0b20vX2N1c3RvbV9fc29jaWFsLWxpc3Quc2NzcyIsIl9tb2R1bGVzL19iYW5uZXJzLnNjc3MiLCJfbW9kdWxlcy9iYW5uZXJzL19fYmFubmVycy1jb3JlLnNjc3MiLCJfbW9kdWxlcy9iYW5uZXJzL19fYmFubmVycy1sYXlvdXQuc2NzcyIsIl9tb2R1bGVzL19oZWFkaW5ncy5zY3NzIiwiX21vZHVsZXMvaGVhZGluZ3MvX19oZWFkaW5ncy1jb3JlLnNjc3MiLCJfbW9kdWxlcy9oZWFkaW5ncy9fX2hlYWRpbmdzLWxheW91dHMuc2NzcyIsIl9jb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJfY29tcG9uZW50cy9idXR0b25zL19idXR0b25zLWNvcmUuc2NzcyIsIl9jb21wb25lbnRzL19pbWFnZS5zY3NzIiwiX2NvbXBvbmVudHMvaW1hZ2UvX2MtaW1hZ2VfX2NvcmUuc2NzcyIsIl9jb21wb25lbnRzL18lRDElODEtYmxvY2suc2NzcyIsIl9jb21wb25lbnRzL2MtYmxvY2svX2MtYmxvY2stY29yZS5zY3NzIiwicHJvamVjdC1jdXN0b20vX2N1c3RvbV9faGVhZGVyLnNjc3MiLCJwcm9qZWN0LWN1c3RvbS9tb2R1bGVzL2Jhbm5lcnMvdmVyL19iYW5uZXJzLWdlbmVyYWwuc2NzcyIsInByb2plY3QtY3VzdG9tL21vZHVsZXMvYmFubmVycy92ZXIvX3ZlcnNpb24tMS5zY3NzIiwicHJvamVjdC1jdXN0b20vbW9kdWxlcy9iYW5uZXJzL3Zlci9fdmVyc2lvbi0yLnNjc3MiLCJwcm9qZWN0LWN1c3RvbS9tb2R1bGVzL2Jhbm5lcnMvdmVyL192ZXJzaW9uLTMuc2NzcyIsInByb2plY3QtY3VzdG9tL21vZHVsZXMvYmFubmVycy92ZXIvX3ZlcnNpb24tNC5zY3NzIiwicHJvamVjdC1jdXN0b20vbW9kdWxlcy9iYW5uZXJzL3Zlci9fdmVyc2lvbi01LnNjc3MiLCJwcm9qZWN0LWN1c3RvbS9tb2R1bGVzL2Zvcm1zL3Zlci9fbG9jLXNlYXJjaC1mb3JtLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7RUFHRTs7O0FBR0Y7RUFDRTtJQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7SUFDRTs7O0FBSUo7RUFDRTs7O0FBR0Y7RUFDRTtJQUNFOzs7QUFJSjtFQUNFOzs7QUFHRjtFQUNFO0lBQ0U7OztBQUlKO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtFQUdFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBT0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtB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O0VZclpJO0lBYVE7SUFDQTs7O0FBSVI7RUFDSTs7QVprWVI7RVluWUk7SUFHUTs7O0FBRUo7RUFDSTtFQUNBOztBWjRYWjtFWTlYUTtJQUlROzs7O0FFN01wQjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDOztBQUdEO0VBQ0M7O0FBS0Q7RUFDQzs7QUFFQTtFQUVDO0VBQ0E7RUFDQTs7QUFHRDtFQUNDOzs7QUMxRUo7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDOztBQUdEO0VBQ0M7O0FBR0Q7RUFDQztFQUNBOztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRDtFQUNDOzs7QUFNSDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7QUFBQTtBQUFBO0FBSUE7RUFDQzs7QUFFQTtFQUNDO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBOztBQUdEO0VBQ0M7RUFDQTtFQUNBOztB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QUFFQTtFQUNFOztBQUdGO0VBQ0U7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7O0FBS0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QXZDZ2NBO0V1Q3BjRjtJQU1JO0lBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0F2Q2diRjtFdUMxYkE7SUFhSTtJQUNBO0lBQ0E7OztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QXZDdVpKO0V1QzFiQTtJQXVDSTs7O0FBS047RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtBQUFBO0VBQ0U7O0F2Q3NZQTtFdUN2WUY7QUFBQTtJQUdJOzs7QXZDb1lGO0V1Q3ZZRjtBQUFBO0lBTUk7OztBdkNpWUY7RXVDOVhBO0lBRUk7Ozs7QW5DaElSIiwiZmlsZSI6ImNyaXRpY2FsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIE1vZGlmaWVkIEJvb3RzdHJhcCBSZWJvb3QgdjUuMS4xIChodHRwczovL2dldGJvb3RzdHJhcC5jb20vKSAocmVtb3ZlZCBjb2xvcnMgYW5kIGxpbmtzIHVuZGVybGluaW5nKVxyXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDIwIFRoZSBCb290c3RyYXAgQXV0aG9yc1xyXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDIwIFR3aXR0ZXIsIEluYy5cclxuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXHJcbiAqIEZvcmtlZCBmcm9tIE5vcm1hbGl6ZS5jc3MsIGxpY2Vuc2VkIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9ibG9iL21hc3Rlci9MSUNFTlNFLm1kKVxyXG4gKi9cclxuKixcclxuKjo6YmVmb3JlLFxyXG4qOjphZnRlciB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XHJcbiAgOnJvb3Qge1xyXG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XHJcbiAgfVxyXG59XHJcblxyXG5ib2R5IHtcclxuICBtYXJnaW46IDA7XHJcbiAgZm9udC1mYW1pbHk6IHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIFwiTm90byBTYW5zXCIsIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcclxuICBmb250LXNpemU6IDFyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBsaW5lLWhlaWdodDogMS41O1xyXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XHJcbn1cclxuXHJcblt0YWJpbmRleD1cIi0xXCJdOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xyXG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuaHIge1xyXG4gIG1hcmdpbjogMXJlbSAwO1xyXG4gIGNvbG9yOiBpbmhlcml0O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcclxuICBib3JkZXI6IDA7XHJcbiAgb3BhY2l0eTogMC4yNTtcclxufVxyXG5cclxuaHI6bm90KFtzaXplXSkge1xyXG4gIGhlaWdodDogMXB4O1xyXG59XHJcblxyXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbn1cclxuXHJcbmgxIHtcclxuICBmb250LXNpemU6IGNhbGMoMS4zNzVyZW0gKyAxLjV2dyk7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcclxuICBoMSB7XHJcbiAgICBmb250LXNpemU6IDIuNXJlbTtcclxuICB9XHJcbn1cclxuXHJcbmgyIHtcclxuICBmb250LXNpemU6IGNhbGMoMS4zMjVyZW0gKyAwLjl2dyk7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcclxuICBoMiB7XHJcbiAgICBmb250LXNpemU6IDJyZW07XHJcbiAgfVxyXG59XHJcblxyXG5oMyB7XHJcbiAgZm9udC1zaXplOiBjYWxjKDEuM3JlbSArIDAuNnZ3KTtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcclxuICB9XHJcbn1cclxuXHJcbmg0IHtcclxuICBmb250LXNpemU6IGNhbGMoMS4yNzVyZW0gKyAwLjN2dyk7XHJcbn1cclxuXHJcbnAge1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG59XHJcblxyXG5hYmJyW3RpdGxlXSxcclxuYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XHJcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xyXG4gIGN1cnNvcjogaGVscDtcclxuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcclxuICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7XHJcbn1cclxuXHJcbmFkZHJlc3Mge1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG59XHJcblxyXG5vbCxcclxudWwge1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbm9sLFxyXG51bCxcclxuZGwge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG5vbCBvbCxcclxudWwgdWwsXHJcbm9sIHVsLFxyXG51bCBvbCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuZHQge1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbn1cclxuXHJcbmRkIHtcclxuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxuICBtYXJnaW4tbGVmdDogMDtcclxufVxyXG5cclxuYmxvY2txdW90ZSB7XHJcbiAgbWFyZ2luOiAwIDAgMXJlbTtcclxufVxyXG5cclxuYixcclxuc3Ryb25nIHtcclxuICBmb250LXdlaWdodDogYm9sZGVyO1xyXG59XHJcblxyXG5zbWFsbCB7XHJcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xyXG59XHJcblxyXG5tYXJrIHtcclxuICBwYWRkaW5nOiAwLjJlbTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xyXG59XHJcblxyXG5zdWIsXHJcbnN1cCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZvbnQtc2l6ZTogMC43NWVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAwO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxufVxyXG5cclxuc3ViIHtcclxuICBib3R0b206IC0uMjVlbTtcclxufVxyXG5cclxuc3VwIHtcclxuICB0b3A6IC0uNWVtO1xyXG59XHJcblxyXG5hIHtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbmE6aG92ZXIge1xyXG5cclxufVxyXG5cclxuYTpub3QoW2hyZWZdKTpub3QoW2NsYXNzXSksIGE6bm90KFtocmVmXSk6bm90KFtjbGFzc10pOmhvdmVyIHtcclxuICBjb2xvcjogaW5oZXJpdDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbnByZSxcclxuY29kZSxcclxua2JkLFxyXG5zYW1wIHtcclxuICBmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcclxuICBmb250LXNpemU6IDFlbTtcclxuICBkaXJlY3Rpb246IGx0ciAvKiBydGw6aWdub3JlICovO1xyXG4gIHVuaWNvZGUtYmlkaTogYmlkaS1vdmVycmlkZTtcclxufVxyXG5cclxucHJlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xyXG59XHJcbnByZSBjb2RlIHtcclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgY29sb3I6IGluaGVyaXQ7XHJcbiAgd29yZC1icmVhazogbm9ybWFsO1xyXG59XHJcblxyXG5jb2RlIHtcclxuICBmb250LXNpemU6IDAuODc1ZW07XHJcbiAgY29sb3I6ICNkNjMzODQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG59XHJcbmEgPiBjb2RlIHtcclxuICBjb2xvcjogaW5oZXJpdDtcclxufVxyXG5cclxua2JkIHtcclxuICBwYWRkaW5nOiAwLjJyZW0gMC40cmVtO1xyXG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcclxuICBjb2xvcjogI2ZmZjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyNTI5O1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcclxufVxyXG5cclxua2JkIGtiZCB7XHJcbiAgcGFkZGluZzogMDtcclxuICBmb250LXNpemU6IDFlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG5maWd1cmUge1xyXG4gIG1hcmdpbjogMCAwIDFyZW07XHJcbn1cclxuXHJcbmltZyxcclxuc3ZnIHtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcblxyXG50YWJsZSB7XHJcbiAgY2FwdGlvbi1zaWRlOiBib3R0b207XHJcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxufVxyXG5cclxuY2FwdGlvbiB7XHJcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcclxuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xyXG4gIGNvbG9yOiAjNmM3NTdkO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbnRoIHtcclxuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xyXG4gIHRleHQtYWxpZ246IC13ZWJraXQtbWF0Y2gtcGFyZW50O1xyXG59XHJcblxyXG50aGVhZCxcclxudGJvZHksXHJcbnRmb290LFxyXG50cixcclxudGQsXHJcbnRoIHtcclxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XHJcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICBib3JkZXItd2lkdGg6IDA7XHJcbn1cclxuXHJcbmxhYmVsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbmJ1dHRvbiB7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxufVxyXG5cclxuYnV0dG9uOmZvY3VzIHtcclxuICBvdXRsaW5lOiAxcHggZG90dGVkO1xyXG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcclxufVxyXG5cclxuaW5wdXQsXHJcbmJ1dHRvbixcclxuc2VsZWN0LFxyXG5vcHRncm91cCxcclxudGV4dGFyZWEge1xyXG4gIG1hcmdpbjogMDtcclxuICBmb250LWZhbWlseTogaW5oZXJpdDtcclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcbmJ1dHRvbixcclxuaW5wdXQge1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG59XHJcblxyXG5idXR0b24sXHJcbnNlbGVjdCB7XHJcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbn1cclxuXHJcbltyb2xlPVwiYnV0dG9uXCJdIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbnNlbGVjdCB7XHJcbiAgd29yZC13cmFwOiBub3JtYWw7XHJcbn1cclxuXHJcbltsaXN0XTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG5idXR0b24sXHJcblt0eXBlPVwiYnV0dG9uXCJdLFxyXG5bdHlwZT1cInJlc2V0XCJdLFxyXG5bdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XHJcbn1cclxuXHJcbmJ1dHRvbjpub3QoOmRpc2FibGVkKSxcclxuW3R5cGU9XCJidXR0b25cIl06bm90KDpkaXNhYmxlZCksXHJcblt0eXBlPVwicmVzZXRcIl06bm90KDpkaXNhYmxlZCksXHJcblt0eXBlPVwic3VibWl0XCJdOm5vdCg6ZGlzYWJsZWQpIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbjo6LW1vei1mb2N1cy1pbm5lciB7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuICByZXNpemU6IHZlcnRpY2FsO1xyXG59XHJcblxyXG5maWVsZHNldCB7XHJcbiAgbWluLXdpZHRoOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGJvcmRlcjogMDtcclxufVxyXG5cclxubGVnZW5kIHtcclxuICBmbG9hdDogbGVmdDtcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuICBmb250LXNpemU6IGNhbGMoMS4yNzVyZW0gKyAwLjN2dyk7XHJcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gIGxlZ2VuZCB7XHJcbiAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICB9XHJcbn1cclxuXHJcbmxlZ2VuZCArICoge1xyXG4gIGNsZWFyOiBsZWZ0O1xyXG59XHJcblxyXG46Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1maWVsZHMtd3JhcHBlcixcclxuOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4dCxcclxuOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtbWludXRlLFxyXG46Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1ob3VyLWZpZWxkLFxyXG46Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQsXHJcbjo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkLFxyXG46Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xyXG4gIGhlaWdodDogYXV0bztcclxufVxyXG5cclxuW3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG59XHJcblxyXG46Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuOjotd2Via2l0LWNvbG9yLXN3YXRjaC13cmFwcGVyIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcclxuICBmb250OiBpbmhlcml0O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xyXG59XHJcblxyXG5vdXRwdXQge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuaWZyYW1lIHtcclxuICBib3JkZXI6IDA7XHJcbn1cclxuXHJcbnN1bW1hcnkge1xyXG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbnByb2dyZXNzIHtcclxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuXHJcbltoaWRkZW5dIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xyXG5cclxuQG1peGluIGFzcGVjdC1yYXRpbygkd2lkdGgsICRoZWlnaHQpIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0JjpiZWZvcmV7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdGNvbnRlbnQ6IFwiIFwiO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRwYWRkaW5nLXRvcDogbWF0aC5kaXYoJGhlaWdodCwgJHdpZHRoKSAqIDEwMCU7XHJcblx0fVxyXG5cclxuXHQ+IC5jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHR9XHJcbn1cclxuXHJcbi8qXHJcbi5zaXh0ZWVuLW5pbmUge1xyXG5cdEBpbmNsdWRlIGFzcGVjdC1yYXRpbygxNiw5KTtcclxufSovXHJcbiIsIi8qIE1lZGlhIFF1ZXJpZXMgQnJlYWtwb2ludHMgKi9cclxuXHJcbiRicmVha3BvaW50czogKFxyXG4gICAgICAgICdwaG9uZSc6IDMyMHB4LFxyXG4gICAgICAgICdwaG9uZS1sJzogNTc1cHgsXHJcbiAgICAgICAgJ3RhYmxldCc6IDc2N3B4LFxyXG4gICAgICAgICdkZXNrdG9wLXNtJzogMTAyNHB4LFxyXG4gICAgICAgICdkZXNrdG9wJzogMTExMnB4LFxyXG4gICAgICAgICdkZXNrdG9wLW0nOiAxMjgwcHgsXHJcbiAgICAgICAgJ2Rlc2t0b3AtbCc6IDE0NDFweCxcclxuICAgICAgICAnZGVza3RvcC14bCc6IDE2NjBweFxyXG4pO1xyXG5cclxuLyoqXHJcbiogKioqKioqKioqKioqKioqKioqKlxyXG4qICBVc2FnZSBleGFtcGxlc1xyXG4qICoqKioqKioqKioqKioqKioqKipcclxuKlxyXG4vL1xyXG4vLyAgdXNlIDw9XHJcbiogICBBTFdBWVMgdXNlIDw9ICggJzwnIHdpdGggJz0nIGNoYXJhY3RlcikgZm9yIGFsbCBicmVha3BvaW50c1xyXG4qICAgd2hlbiBzZXR0aW5nIG1heC13aWR0aCwgZXg6IG1heC13aWR0aDogNzY3cHgsXHJcbipcclxuKiAgIHNvIG1heC13aWR0aDogMTQ0MHB4ICA9PSBtZWRpYSgnPD1kZXNrdG9wLWwnKVxyXG4qXHJcbiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuKlxyXG4vLyAgdXNlID5cclxuKiAgIEFMV0FZUyB1c2Ugb25seSA+IGFzIHNpbmdsZSBjaGFyYWN0ZXIgZm9yIGFsbCBicmVha3BvaW50c1xyXG4qICAgd2hlbiBzZXR0aW5nIG1pbi13aWR0aCwgZXg6IG1pbi13aWR0aDogNzY4cHgsXHJcbipcclxuKiAgIHNvIG1pbi13aWR0aDogMTAyNXB4ICA9PSBtZWRpYSgnPmRlc2t0b3AnKVxyXG4qXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuKlxyXG4qIyMgRVhBTVBMRTpcclxuKlxyXG4qICAgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpXHJcbiogICA9XHJcbiogICBtZWRpYSAoJz50YWJsZXQnKSwgKCc8PWRlc2t0b3AnKVxyXG4qXHJcbi8vXHJcblxyXG4gKi9cclxuXHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAwYFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4kdW5pdC1pbnRlcnZhbHM6IChcclxuICAgICAgICAncHgnOiAwLFxyXG4gICAgICAgICdlbSc6IDAuMDEsXHJcbiAgICAgICAgJ3JlbSc6IDAuMSxcclxuICAgICAgICAnJzogMFxyXG4pIDtcclxuIiwiOnJvb3Qge1xyXG4gICAgLS1waG9uZS13aWR0aDogNTc2cHg7XHJcbiAgICAtLXRhYmxldC13aWR0aDogNzY4cHg7XHJcbiAgICAtLWRlc2t0b3Atd2lkdGg6IDExMTJweDtcclxuICAgIC0tZGVza3RvcC13aWR0aC1zbTogMTAyNHB4O1xyXG4gICAgLS1kZXNrdG9wLXdpZHRoLW06IDEyODBweDtcclxuICAgIC0tZGVza3RvcC13aWR0aC1sOiAxNDQwcHg7XHJcbiAgICAtLWRlc2t0b3Atd2lkdGgteGw6IDE2NjBweDtcclxuICAgIC0tY29udGVudC13aWR0aDogdmFyKC0tZGVza3RvcC13aWR0aC1tKTsgLy8gRGVmYXVsdCBjb250ZW50IHdpZHRoICgxMjgwKVxyXG4gICAgLS1ibG9nLXdpZHRoOiA3MDBweDtcclxuICAgIC0tcGFnZS1ndXR0ZXI6IDIwcHg7XHJcbiAgICAtLWdyaWQtZ3V0dGVyOiAyNHB4O1xyXG4gICAgLS1iYXNlLXRyYW5zaXRpb246IC4zcztcdFx0ICAgICAgICAvLyBkZWZhdWx0IHRyYW5zaXRpb24gZm9yIGhvdmVyc1xyXG5cclxuICAgIC0tdmVydGljYWwtZ2FwOiA2dm1pbjtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgIC0tdmVydGljYWwtZ2FwOiAzNHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuIiwiLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXHJcbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcclxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXHJcbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XHJcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcclxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcclxuLy9cclxuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3NcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB2Mi4wLjBcclxuLy9cclxuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxyXG4vL1xyXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcclxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXHJcbi8vXHJcbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcclxuQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcbkB1c2UgJ3Nhc3M6bWF0aCc7XHJcbkB1c2UgJ3Nhc3M6bWFwJztcclxuQHVzZSAnc2FzczpsaXN0JztcclxuQHVzZSAnc2FzczpzdHJpbmcnO1xyXG5AdXNlICdzYXNzOm1ldGEnO1xyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcclxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XHJcbi8vL1xyXG4kYnJlYWtwb2ludHM6IChcclxuICAncGhvbmUnOiAzMjBweCxcclxuICAndGFibGV0JzogNzY4cHgsXHJcbiAgJ2Rlc2t0b3AnOiAxMDI0cHgsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuICAnc2NyZWVuJzogJ3NjcmVlbicsXHJcbiAgJ3ByaW50JzogJ3ByaW50JyxcclxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdyZXRpbmEyeCc6XHJcbiAgICAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxyXG4gICdyZXRpbmEzeCc6XHJcbiAgICAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknLFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcbiAgJ3B4JzogMSxcclxuICAnZW0nOiAwLjAxLFxyXG4gICdyZW0nOiAwLjEsXHJcbiAgJyc6IDAsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xyXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3JcclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXHJcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gICAuZm9vIHtcclxuLy8vICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XHJcblxyXG4vLy8vXHJcbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG4vLy9cclxuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXHJcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxyXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuICBAaWYgbWV0YS5mZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiAkbWVzc2FnZTtcclxuICAgICRfOiBub29wKCk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcclxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxyXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxyXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQG1peGluIGxvZygkbWVzc2FnZSkge1xyXG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuICB9XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xyXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cclxuLy8vXHJcbkBmdW5jdGlvbiBub29wKCkge1xyXG59XHJcblxyXG4vLy9cclxuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xyXG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAuZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xyXG5cclxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcclxuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuICAgIEBpZiBub3QgbWFwLmhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpXHJcbiAgICAgIHtcclxuICAgICAgICBAcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmIG5vdCBsaXN0LmluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG4gICAgICBAcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBQYXJzaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcbi8vL1xyXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XHJcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XHJcbiAgICBAaWYgc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHJpbmcuaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0cmluZy5zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcbiAgQGlmIHN0cmluZy5sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcclxuICBAcmV0dXJuIGlmKGxpc3QuaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG4gICRvcGVyYXRvci1pbmRleDogc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG4gICR2YWx1ZTogc3RyaW5nLnNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHJpbmcubGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuICBAaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuICAgICR2YWx1ZTogbWFwLmdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgJGludGVydmFsOiBtYXAuZ2V0KCR1bml0LWludGVydmFscywgbWF0aC51bml0KCR2YWx1ZSkpO1xyXG5cclxuICBAaWYgbm90ICRpbnRlcnZhbCB7XHJcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje21hdGgudW5pdCgkdmFsdWUpfWAuJyk7XHJcbiAgfVxyXG5cclxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XHJcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcclxuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xyXG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gIEBpZiBtYXAuaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XHJcbiAgICBAcmV0dXJuIG1hcC5nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XHJcbiAgfVxyXG5cclxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcclxuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHJcbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxyXG4vLy9cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxpc3QubGVuZ3RoKCRsaXN0KSkge1xyXG4gIEBpZiBsaXN0Lmxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xyXG4gICAgQHJldHVybiAoKTtcclxuICB9XHJcblxyXG4gICRyZXN1bHQ6ICgpO1xyXG5cclxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XHJcbiAgICAkcmVzdWx0OiBsaXN0LmFwcGVuZCgkcmVzdWx0LCBsaXN0Lm50aCgkbGlzdCwgJGkpLCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuLy8vXHJcbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn1cclxuLy8vXHJcblxyXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xyXG4gIEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcbiAgICBAcmV0dXJuICR2YWx1ZTtcclxuICB9IEBlbHNlIGlmIG1ldGEudHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcclxuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XHJcbiAgfVxyXG5cclxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHJpbmcuc2xpY2UoJHZhbHVlLCAxLCAxKTtcclxuICAkcmVzdWx0OiAwO1xyXG4gICRkaWdpdHM6IDA7XHJcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xyXG4gICRudW1iZXJzOiAoXHJcbiAgICAnMCc6IDAsXHJcbiAgICAnMSc6IDEsXHJcbiAgICAnMic6IDIsXHJcbiAgICAnMyc6IDMsXHJcbiAgICAnNCc6IDQsXHJcbiAgICAnNSc6IDUsXHJcbiAgICAnNic6IDYsXHJcbiAgICAnNyc6IDcsXHJcbiAgICAnOCc6IDgsXHJcbiAgICAnOSc6IDksXHJcbiAgKTtcclxuXHJcbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXHJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xyXG4gICAgJHZhbHVlOiBzdHJpbmcuc2xpY2UoJHZhbHVlLCAyKTtcclxuICB9XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyaW5nLmxlbmd0aCgkdmFsdWUpIHtcclxuICAgICRjaGFyYWN0ZXI6IHN0cmluZy5zbGljZSgkdmFsdWUsICRpLCAkaSk7XHJcblxyXG4gICAgQGlmIG5vdChsaXN0LmluZGV4KG1hcC5rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcclxuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0cmluZy5zbGljZSgkdmFsdWUsICRpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcclxuICAgICAgJGRpZ2l0czogMTtcclxuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcclxuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLmdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xyXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWF0aC5kaXYobWFwLmdldCgkbnVtYmVycywgJGNoYXJhY3RlciksICRkaWdpdHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuICAkdW5pdHM6IChcclxuICAgICdweCc6IDFweCxcclxuICAgICdjbSc6IDFjbSxcclxuICAgICdtbSc6IDFtbSxcclxuICAgICclJzogMSUsXHJcbiAgICAnY2gnOiAxY2gsXHJcbiAgICAncGMnOiAxcGMsXHJcbiAgICAnaW4nOiAxaW4sXHJcbiAgICAnZW0nOiAxZW0sXHJcbiAgICAncmVtJzogMXJlbSxcclxuICAgICdwdCc6IDFwdCxcclxuICAgICdleCc6IDFleCxcclxuICAgICd2dyc6IDF2dyxcclxuICAgICd2aCc6IDF2aCxcclxuICAgICd2bWluJzogMXZtaW4sXHJcbiAgICAndm1heCc6IDF2bWF4LFxyXG4gICk7XHJcblxyXG4gIEBpZiBub3QgbGlzdC5pbmRleChtYXAua2V5cygkdW5pdHMpLCAkdW5pdCkge1xyXG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC5nZXQoJHVuaXRzLCAkdW5pdCk7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXHJcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXHJcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcclxuLy8vIGZvciBpbnN0YW5jZS5cclxuLy8vXHJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XHJcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcclxuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XHJcblxyXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG4gICRicmVha3BvaW50czogbWFwLm1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xyXG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLm1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xyXG5cclxuICBAY29udGVudDtcclxuXHJcbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xyXG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuLy8vXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cclxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcclxuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsaXN0Lmxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcclxuICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKVxyXG4gIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsaXN0Lmxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XHJcbiAgICBAbWVkaWEgI3tzdHJpbmcudW5xdW90ZShwYXJzZS1leHByZXNzaW9uKGxpc3QubnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XHJcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qIFR5cG9ncmFwaHkgKi9cclxuXHJcbkBpbXBvcnQgJy4uL21peGlucy9mb250LWZhY2UnO1xyXG5cclxuLyogMXJlbSA9IDEwcHggKi9cclxuXHJcbmh0bWwge1xyXG5cclxuXHRmb250LXNpemU6IDUwJTtcclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcC1tXCIpIHtcclxuXHRcdGZvbnQtc2l6ZTogNTIlO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcC1sXCIpIHtcclxuXHRcdGZvbnQtc2l6ZTogNTglO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcC14bFwiKSB7XHJcblx0XHRmb250LXNpemU6IDYyLjUlO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qXHJcbkBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3AtbVwiKSB7XHJcblx0Zm9udC1zaXplOiA1OCU7XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3AtbFwiKSB7XHJcblx0Zm9udC1zaXplOiA2Mi41JTtcclxufSovXHJcbiIsIkBmdW5jdGlvbiBjcmVhdGVGb250TWFwKCRmaWxlLCAkd2VpZ2h0Om5vcm1hbCwgJHN0eWxlOm5vcm1hbCkge1xyXG5cdCRkZWY6IChcclxuXHRcdFx0ZmlsZTogJGZpbGUsXHJcblx0XHRcdHdlaWdodDogJHdlaWdodCxcclxuXHRcdFx0c3R5bGU6ICRzdHlsZVxyXG5cdCk7XHJcblx0QHJldHVybiAkZGVmO1xyXG59XHJcblxyXG5AbWl4aW4gYWRkRm9udEZhY2UoJGZvbnRGYW1pbHksICRiYXNlUGF0aCwgJGZvcm1hdHMsICRkZWZMaXN0KSB7XHJcblx0QGVhY2ggJGRlZiBpbiAkZGVmTGlzdCB7XHJcblx0XHQkc3JjOiAoKTtcclxuXHRcdEBlYWNoICRmb3JtYXQgaW4gJGZvcm1hdHMge1xyXG5cdFx0XHQkZXh0OiAkZm9ybWF0O1xyXG5cclxuXHRcdFx0QGlmICgkZm9ybWF0ID09ICd0cnVldHlwZScpIHtcclxuXHRcdFx0XHQkZXh0OiAndHRmJztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0JHVybDogdXJsKCcjeyRiYXNlUGF0aH0vI3ttYXBfZ2V0KCRkZWYsICdmaWxlJyl9LiN7JGV4dH0nKSBmb3JtYXQocXVvdGUoJGZvcm1hdCkpO1xyXG5cdFx0XHQkc3JjOiBhcHBlbmQoJHNyYywgJHVybCwgY29tbWEpO1xyXG5cdFx0fVxyXG5cclxuXHRcdEBmb250LWZhY2Uge1xyXG5cdFx0XHRmb250LWZhbWlseTogcXVvdGUoJGZvbnRGYW1pbHkpO1xyXG5cdFx0XHRmb250LXdlaWdodDogbWFwX2dldCgkZGVmLCAnd2VpZ2h0Jyk7XHJcblx0XHRcdGZvbnQtc3R5bGU6IG1hcF9nZXQoJGRlZiwgJ3N0eWxlJyk7XHJcblx0XHRcdGZvbnQtZGlzcGxheTogc3dhcDtcclxuXHRcdFx0c3JjOiAkc3JjO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLyogTWl4aW4gb3JpZ2luOiBodHRwczovL21hcmMtZWQtcmFmZmFsbGkuZ2l0aHViLmlvLzIwMTcvMTAvMTQvc2Fzcy1mb250LWZhY2UuaHRtbCAqLyIsImJvZHksIGh0bWwge1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHRtaW4taGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG5cclxuYm9keSB7XHJcblx0bGluZS1oZWlnaHQ6IHZhcigtLWJhc2UtdGV4dC1saW5lLWhlaWdodCwgMSk7XHJcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWJhc2UtdGV4dC1mb250LXdlaWdodCwgNDAwKTtcclxuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktcHJpbWFyeSk7XHJcblx0Zm9udC1zaXplOiB2YXIoLS1iYXNlLXRleHQtc2l6ZSk7XHJcblxyXG5cdGNvbG9yOiB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpO1xyXG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJvZHktY29sb3IpO1xyXG5cclxuXHRbY29sb3ItbW9kZT1cImRhcmtcIl0gJiB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xyXG5cdFx0Y29sb3I6IHZhcigtLWJvZHktY29sb3IpO1xyXG5cdH1cclxufVxyXG5cclxuYSB7XHJcblx0Y29sb3I6IHZhcigtLXByaW1hcnktbGluay1jb2xvcik7XHJcblxyXG5cdFtjb2xvci1tb2RlPVwiZGFya1wiXSAmIHtcclxuXHRcdGNvbG9yOiB2YXIoLS1wcmltYXJ5LWxpbmstY29sb3ItYWx0KTtcclxuXHR9XHJcbn1cclxuXHJcbi4tY29sb3JzLWludmVydGVkLFxyXG4uc3R5bGUtZGFyayB7XHJcblx0Y29sb3I6IHZhcigtLXByaW1hcnktdGV4dC1jb2xvci1hbHQpO1xyXG5cdC0tc2VjdGlvbi10aXRsZS1jb2xvcjogdmFyKC0tc2VjdGlvbi10aXRsZS1jb2xvci1hbHQpO1xyXG59XHJcblxyXG4ud3JhcHBlciB7XHJcblx0bWluLWhlaWdodDogMTAwJTtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0YWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbn1cclxuXHJcbi5zaXRlLWNvbnRlbnQge1xyXG5cdGZsZXgtZ3JvdzogMTtcclxufVxyXG5cclxuLnNpdGUtaGVhZGVyLCAuc2l0ZS1jb250ZW50LCAuc2l0ZS1mb290ZXIge1xyXG5cdGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4uY29udGFpbmVyLWZsdWlkLFxyXG4uY29udGFpbmVyLFxyXG4uY29udGFpbmVyLWN1c3RvbSxcclxuLmlubmVyLWZyYW1lIHtcclxuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XHJcblx0bWFyZ2luLWxlZnQ6IGF1dG87XHJcblx0d2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5pbm5lci1mcmFtZSxcclxuLmNvbnRhaW5lcixcclxuLmNvbnRhaW5lci1jdXN0b20ge1xyXG5cdHBhZGRpbmctbGVmdDogdmFyKC0tcGFnZS1ndXR0ZXIpO1xyXG5cdHBhZGRpbmctcmlnaHQ6IHZhcigtLXBhZ2UtZ3V0dGVyKTtcclxuXHR0cmFuc2l0aW9uOiBtYXgtd2lkdGggLjNzO1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PWRlc2t0b3AtbCcpIHtcclxuXHRcdC0tY29udGVudC13aWR0aDogdmFyKC0tZGVza3RvcC13aWR0aC1zbSk7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcblx0XHQtLXBhZ2UtZ3V0dGVyOiAyMHB4O1xyXG5cdFx0LS1jb250ZW50LXdpZHRoOiB2YXIoLS10YWJsZXQtd2lkdGgpO1xyXG5cdH1cclxufVxyXG5cclxuLmNvbnRhaW5lci1mbHVpZCB7XHJcblx0cGFkZGluZy1yaWdodDogdmFyKC0tZ3JpZC1vdXRlci1tYXJnaW4sIDJlbSk7XHJcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1ncmlkLW91dGVyLW1hcmdpbiwgMmVtKTtcclxufVxyXG5cclxuLmlubmVyLWZyYW1lLFxyXG4uY29udGFpbmVyIHtcclxuXHRtYXgtd2lkdGg6IGNhbGModmFyKC0tY29udGVudC13aWR0aCkgKyB2YXIoLS1wYWdlLWd1dHRlciwgMjBweCkgKiAyKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci1jdXN0b20ge1xyXG5cdG1heC13aWR0aDogdmFyKC0tbC1jb250YWluZXItd2lkdGgsIHZhcigtLWNvbnRlbnQtd2lkdGgpKTtcclxufVxyXG5cclxuLnNpdGUtY29udGVudCB7XHJcblx0bWluLWhlaWdodDogNDAwcHg7XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcblx0Lmd0LCAuZ3QtcywgLmd0LWwge1xyXG5cdFx0cGFkZGluZy10b3A6IHZhcigtLXZlcnRpY2FsLWdhcCk7XHJcblx0fVxyXG5cdC5nYiwgLmdiLXMsIC5nYi1sIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOiB2YXIoLS12ZXJ0aWNhbC1nYXApO1xyXG5cdH1cclxuXHQubXQsIC5tdC1jdXN0b20ge1xyXG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tdmVydGljYWwtZ2FwKTtcclxuXHR9XHJcblx0Lm1iLCAubWItY3VzdG9tIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLXZlcnRpY2FsLWdhcCk7XHJcblx0fVxyXG59XHJcbkBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuXHQuZ3Qge1xyXG5cdFx0cGFkZGluZy10b3A6IHZhcigtLWRlZmF1bHQtdG9wLWdhcCwgdmFyKC0tdmVydGljYWwtZ2FwKSk7XHJcblx0fVxyXG5cdC5nYiB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tZGVmYXVsdC1ib3R0b20tZ2FwLCB2YXIoLS12ZXJ0aWNhbC1nYXApKTtcclxuXHR9XHJcblx0Lmd0LXMge1xyXG5cdFx0cGFkZGluZy10b3A6IGNhbGModmFyKC0tZGVmYXVsdC10b3AtZ2FwKSAvIDIpO1xyXG5cdH1cclxuXHQuZ2ItcyB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1kZWZhdWx0LWJvdHRvbS1nYXApIC8gMik7XHJcblx0fVxyXG5cdC5ndC1sIHtcclxuXHRcdHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWRlZmF1bHQtdG9wLWdhcCkgKiAyLjcpO1xyXG5cdH1cclxuXHQuZ2ItbCB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1kZWZhdWx0LWJvdHRvbS1nYXApICogMi43KTtcclxuXHR9XHJcblxyXG5cdC5tdCB7XHJcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1kZWZhdWx0LXRvcC1nYXAsIHZhcigtLXZlcnRpY2FsLWdhcCkpO1xyXG5cdH1cclxuXHQubWIge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tZGVmYXVsdC1ib3R0b20tZ2FwLCB2YXIoLS12ZXJ0aWNhbC1nYXApKTtcclxuXHR9XHJcblx0Lm10LWN1c3RvbSB7XHJcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1tYXJnaW4tdG9wKTtcclxuXHR9XHJcblx0Lm1iLWN1c3RvbSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1tYXJnaW4tYm90dG9tKTtcclxuXHR9XHJcbn1cclxuXHJcbiIsIi8vIEJhc2Ugc3R5bGVzIGZvciB0aGUgZmlyc3Qgdmlld3BvcnRcclxuXHJcbi8vIEhlbHBlcnMgYW5kIHV0aWxpdGllc1xyXG5AaW1wb3J0ICdfX2hlbHBlcnMvcmVib290JztcclxuXHJcbi8vIENvcmUgc2V0dGluZ3NcclxuXHJcbkBpbXBvcnQgJ19fY29yZS9jb3JlLW1peGlucyc7XHJcbkBpbXBvcnQgJ19fY29yZS9jb3JlLXNldHRpbmdzJztcclxuXHJcblxyXG5AaW1wb3J0ICdfbGF5b3V0L19iYXNlJztcclxuXHJcbi8qKioqIFNpdGUgSGVhZGVyICovXHJcblxyXG5AaW1wb3J0ICdfbGF5b3V0L19oZWFkZXInO1xyXG5cclxuLy8gU2VhcmNoIGNvbXBvbmVudCBcdFx0XHRcdFx0XHRcdChyZW1vdmUgaWYgbm8gc2VhcmNoIGluIGhlYWRlcilcclxuXHJcbi8vQGltcG9ydCBcIl9sYXlvdXQvaGVhZGVyL2Jsb2Nrcy9zaXRlX3NlYXJjaFwiO1xyXG5cclxuLy8gV29vY29tbWVyY2UgXHRcdFx0XHRcdFx0XHRcdFx0KHJlbW92ZSBpZiBubyBXb29Db21tZXJjZSlcclxuXHJcbi8vQGltcG9ydCBcIl9sYXlvdXQvaGVhZGVyL2Jsb2Nrcy9hY2NvdW50XCI7XHJcbi8vQGltcG9ydCBcIl9sYXlvdXQvaGVhZGVyL2Jsb2Nrcy9jYXJ0XCI7XHJcblxyXG4vKioqKiBFbmQgSGVhZGVyICovXHJcbkBpbXBvcnQgXCJwcm9qZWN0LWN1c3RvbS9jdXN0b21fX2J0bnNcIjtcclxuQGltcG9ydCBcInByb2plY3QtY3VzdG9tL2N1c3RvbV9fc3RpY2t5LWZvcm1zXCI7XHJcbkBpbXBvcnQgXCJwcm9qZWN0LWN1c3RvbS9jdXN0b21fX3NvY2lhbC1saXN0XCI7XHJcblxyXG5cclxuLyogQWJvdmUgdGhlIGZvbGQgbW9kdWxlcyAqL1xyXG5cclxuQGltcG9ydCBcIl9tb2R1bGVzL2Jhbm5lcnNcIjtcclxuQGltcG9ydCBcIl9tb2R1bGVzL2hlYWRpbmdzXCI7XHJcblxyXG5AaW1wb3J0IFwiX2NvbXBvbmVudHMvYnV0dG9uc1wiO1xyXG5AaW1wb3J0IFwiX2NvbXBvbmVudHMvaW1hZ2VcIjtcclxuQGltcG9ydCBcIl9jb21wb25lbnRzL9GBLWJsb2NrXCI7XHJcblxyXG4vKiBDdXN0b20gQ3JpdGljYWwgKi9cclxuXHJcbjpyb290IHtcclxuICAtLW5hdmJhci1oaWdodDogMTAwcHg7IC8vIGhlYWRlciBoZWlnaHRcclxuICAtLW5hdmJhci1oaWdodC1ub3Qtc3RpY2t5OiAzMHZoOy8vIGhlYWRlciBoZWlnaHQgbm90IHN0aWNreVxyXG5cclxuICAvKiBDb2xvcnMqL1xyXG4gIC0tZGFyay1ncmF5OiAjNkE2QTZBO1xyXG4gIC0tbGlnaHRlci1ncmF5OiAjQ0ZEMUQ5O1xyXG4gIC0tbGlnaHQtZ3JheTogI0U2RUVGNDtcclxuICAtLWRhcmstd2hpdGU6ICNGNEY2RkY7XHJcbiAgLS1saWdodC13aGl0ZTogI0U2RUZGOTtcclxuICAtLXByaW1hcnktY29sb3IxLWRhcms6ICMwQjE2NDM7XHJcbiAgLS1ibGFjazogIzAwMDAwMDtcclxuICAvKiBFbmQgY29sb3JzKi9cclxufVxyXG5cclxuLm0tYmFubmVye1xyXG4gIC0tYmFubmVyLWhlaWdodC0tc21hbGw6IDcyLjVyZW07XHJcbiAgLS1iYW5uZXItaGVpZ2h0LS1tZWRpdW06IDk2LjVyZW07XHJcbiAgLS1iYW5uZXItaGVpZ2h0LS1ibG9nOiA3Mi41cmVtO1xyXG4gIC0tYmFubmVyLWhlaWdodC0tZnVsbDogMTAwdmg7XHJcbiAgLS1iYW5uZXItaGVpZ2h0LS1zaW5nbGU6IDY2LjR2bWluO1xyXG59XHJcblxyXG4ubS1zbGlkZXJ7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcbkBpbXBvcnQgXCJwcm9qZWN0LWN1c3RvbS9jdXN0b21fX2hlYWRlclwiO1xyXG5AaW1wb3J0IFwicHJvamVjdC1jdXN0b20vbW9kdWxlcy9iYW5uZXJzL2Jhbm5lcnMtY29yZVwiO1xyXG5AaW1wb3J0IFwicHJvamVjdC1jdXN0b20vbW9kdWxlcy9mb3Jtcy9mb3Jtcy1jb3JlXCI7XHJcblxyXG5cclxuXHJcbi8qIEVuZCBDdXN0b20gQ3JpdGljYWwgKi9cclxuIiwiLnNpdGUtaGVhZGVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcclxuICAgIGNvbG9yOiB2YXIoLS1oZWFkZXItbGluay1jb2xvcik7XHJcbiAgICB6LWluZGV4OiA5OTtcclxuICAgIHBvc2l0aW9uOiB2YXIoLS1oZWFkZXItc3RpY2t5LXR5cGUsIHN0aWNreSk7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IHZhcigtLW5hdmJhci1oaWdodCk7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgLmFkbWluLWJhciAmIHtcclxuICAgICAgICAgICAgdG9wOiAyOHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcC14bCcpIHtcclxuICAgICAgICAtLW5hdmJhci1nYXBfaDogNC4zNXZ3O1xyXG4gICAgfVxyXG5cclxuICAgICZfX2xvZ28ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWF4LWhlaWdodDogMTUwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbWcsIHN2ZyB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMjUwcHg7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDYwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1oZWFkZXItbG9nby13aWR0aCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0taGVhZGVyLWxvZ28taGVpZ2h0KTtcclxuICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcclxuICAgICAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTUwcHg7XHJcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIikge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9faW5uZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgfVxyXG5cclxuICAgICZfX3JvdyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcztcclxuXHJcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLW5hdmJhci1nYXBfdik7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLW5hdmJhci1nYXBfdik7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fY29sIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLW5hdmJhci1nYXBfaCwgMXZ3KSAqIDIpO1xyXG4gICAgICAgIHRyYW5zaXRpb246IHBhZGRpbmcgLjNzO1xyXG5cclxuICAgICAgICBhLnJpZ2h0LFxyXG4gICAgICAgIGEubGVmdCB7XHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgJi4tbGVmdCB7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi4tY2VudGVyIHtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuLXJpZ2h0IHtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fd2lkZ2V0IHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc29jaWFsLWxpc3Qge1xyXG4gICAgICAgIGdhcDogdmFyKC0tbmF2YmFyLWdhcF9oKTtcclxuICAgIH1cclxuXHJcbiAgICAmX19zZXBhcmF0b3Ige1xyXG4gICAgICAgIGhlaWdodDogMWVtO1xyXG4gICAgICAgIHdpZHRoOiAxcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIGE6bm90KC5jLWJ0biksXHJcbiAgICAucGxhaW4tbWVudS1pdGVte1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1oZWFkZXItbGluay1jb2xvcik7XHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKXtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1oZWFkZXItbGluay1jb2xvci1ob3ZlciwgdmFyKC0tcHJpbWFyeS1jb2xvcjIpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jdXJyZW50LW1lbnUtaXRlbSxcclxuICAgIC5jdXJyZW50LW1lbnUtcGFyZW50e1xyXG4gICAgICAgICYgPiBhOm5vdCguYy1idG4pe1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0taGVhZGVyLWxpbmstY29sb3ItaG92ZXIsIHZhcigtLXByaW1hcnktY29sb3IyKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufSIsIi8qIEhlYWRlciBNYWluIFJvdyAqL1xyXG5cclxuLnNpdGUtaGVhZGVyX19tYWluIHtcclxuXHQtLWhlYWRlci1saW5rLWNvbG9yOiB2YXIoLS1tYWluLWhlYWRlci1jb2xvcik7XHJcblxyXG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1tYWluLWhlYWRlci1mb250LXdlaWdodCk7XHJcblx0dGV4dC10cmFuc2Zvcm06IHZhcigtLW1haW4taGVhZGVyLXRleHQtdHJhbnNmb3JtLCB1cHBlcmNhc2UpO1xyXG5cdGZvbnQtc2l6ZTogdmFyKC0tbWFpbi1oZWFkZXItZm9udC1zaXplLCAxNnB4KTtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tYWluLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yKTtcclxuXHJcblx0LnNpdGUtaGVhZGVyX19yb3cge1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdH1cclxufVxyXG5cclxuLyogSGVhZGVyIFRvcCBSb3cgKi9cclxuXHJcbi5zaXRlLWhlYWRlcl9fdG9wIHtcclxuXHQtLWhlYWRlci1saW5rLWNvbG9yOiB2YXIoLS10b3AtaGVhZGVyLWNvbG9yKTtcclxuXHJcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG9wLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yKTtcclxuXHRmb250LXNpemU6IHZhcigtLXNtYWxsZXItdGV4dC1zaXplKTtcclxuXHRjb2xvcjogdmFyKC0tdG9wLWhlYWRlci1jb2xvcik7XHJcblxyXG5cdC5pbm5lci1mcmFtZSB7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0fVxyXG59XHJcblxyXG4vKiBIZWFkZXIgQm90dG9tIFJvdyAqL1xyXG5cclxuLnNpdGUtaGVhZGVyX19ib3R0b20ge1xyXG5cdC0taGVhZGVyLWxpbmstY29sb3I6IHZhcigtLWJvdHRvbS1oZWFkZXItY29sb3IpO1xyXG5cclxuXHRjb2xvcjogdmFyKC0tYm90dG9tLWhlYWRlci1jb2xvcik7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm90dG9tLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yKTtcclxuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcywgdHJhbnNmb3JtIC4zcztcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0LmlubmVyLWZyYW1lIHtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdH1cclxufSIsIi5pcy1zdGlja3kge1xyXG5cclxuXHQuc2l0ZS1oZWFkZXJfX21haW4ge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGVhZGVyLW1pbmktYmcsIHZhcigtLXByaW1hcnktY29sb3IxKSk7XHJcblx0XHRib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgLjEpO1xyXG5cclxuXHRcdC5zaXRlLWhlYWRlcl9fcm93IHtcclxuXHRcdFx0cGFkZGluZy10b3A6IDFweDtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206IDFweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5zaXRlLWhlYWRlcl9fbG9nbyB7XHJcblx0XHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuXHRcdFx0aGVpZ2h0OiA1MHB4O1xyXG5cdFx0XHRtYXgtaGVpZ2h0OiA1MHB4O1xyXG5cdFx0XHRpbWcsIHN2ZyB7XHJcblx0XHRcdFx0bWF4LWhlaWdodDogODAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuc2l0ZS1oZWFkZXJfX2JvdHRvbSB7XHJcblx0XHRib2R5Om5vdCgubmF2LWFjdGl2ZSkgJiB7XHJcblx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwcHgpO1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Lm5hdi1tYWluX19idG4uLWRlc2t0b3Age1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMTBweDtcclxuXHRcdHRvcDogNTAlO1xyXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdH1cclxufSIsIkBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuXHJcbiAgICAubmF2YmFyLW1vYmlsZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1uYXZiYXItaGlnaHQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhlYWRlci1tb2JpbGUtYmcpO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9faW5uZXIge1xyXG4gICAgICAgICAgICB0b3A6IHZhcigtLW5hdmJhci1oaWdodCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhlYWRlci1tb2JpbGUtYmcpO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XHJcblxyXG4gICAgICAgICAgICAubmF2LWFjdGl2ZSAmIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xyXG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnNpdGUtaGVhZGVyX193aWRnZXQge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEzcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5uYXYtbWFpbl9fbGlua3Mge1xyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID4gLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgICAgICAgICA+IGEsIC5wbGFpbi1tZW51LWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWxpbmstZ2FwKSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGluay1zaXplLWwxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zdWItbWVudSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMzZzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1saW5rLXNpemUtbDIpO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuY3VycmVudC1tZW51LWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYnRuLWN1c3RvbSwgLmxpbmtzLWxpc3Qge1xyXG4gICAgICAgICAgICBtYXJnaW46IHZhcigtLWxpbmstZ2FwKSAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iLCIucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1zaW1wbGUtdGV4dCxcclxuLnNlYXJjaCB7XHJcblx0LnNpdGUtaGVhZGVyX19tYWluIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhlYWRlci1taW5pLWJnLCB2YXIoLS1wcmltYXJ5LWNvbG9yMSkpO1xyXG5cdH1cclxuXHQuc2l0ZS1jb250ZW50IHtcclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIikge1xyXG5cdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0tbmF2YmFyLWhpZ2h0KTtcclxuXHRcdH1cclxuXHR9XHJcbn0iLCIuc2l0ZS1oZWFkZXJfX2JvdHRvbSB7XHJcblx0QGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaXRlLWhlYWRlcl9fbWFpbiB7XHJcblx0QGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuXHQubmF2LW1haW5fX2J0bi4tZGVza3RvcCB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxufVxyXG5cclxuQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XHJcblx0Lm5hdi1tYWluX19idG4sXHJcblx0Lm5hdmJhci1tb2JpbGUge1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHR9XHJcbn0iLCIvKiBOYXZiYXIgTWFpbiAqL1xyXG5cclxuLm5hdi1tYWluIHtcclxuXHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuXHRcdCZfX2xpbmtzIHtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuXHJcblx0XHRcdD4gLm1lbnUtaXRlbSB7XHJcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcblx0XHRcdFx0PiBhLFxyXG5cdFx0XHRcdC5wbGFpbi1tZW51LWl0ZW0ge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0XHRcdFx0cGFkZGluZzogMCB2YXIoLS1tYWluLWhlYWRlci1nYXAtYmV0d2Vlbi1pdGVtcywgMXZ3KTtcclxuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1uYXZiYXItbGluay1oZWlnaHQpO1xyXG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwgZm9udC1zaXplIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY3VycmVudC1tZW51LWl0ZW0ge1xyXG5cdFx0PiBhIHtcclxuXHRcdFx0Y29sb3I6IHZhcigtLWhlYWRlci1saW5rLWNvbG9yLWhvdmVyLCB2YXIoLS1wcmltYXJ5LWNvbG9yMikpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLyogTmF2YmFyIFNlY29uZGFyeSAqL1xyXG5cclxuLm5hdi1zZWNvbmRhcnkge1xyXG5cdCZfX2xpbmtzIHtcclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIikge1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cdFx0XHRnYXA6IHZhcigtLW5hdmJhci1nYXBfaCwgMXZ3KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGEge1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0Y29sb3I6IHZhcigtLWhlYWRlci1saW5rLWNvbG9yKTtcclxuXHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi5uYXYtbWFpbiB7XHJcbiAgICAtLXRvZ2dsZS1idG4td2lkdGg6IDYwcHg7XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICAtLXRvZ2dsZS1idG4td2lkdGg6IDIwcHg7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wLWxcIikge1xyXG4gICAgICAgIC0tdG9nZ2xlLWJ0bi13aWR0aDogMzBweDtcclxuICAgIH1cclxuICAgIC5zdWItbWVudSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgICAgIHRvcDogMTAwJTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAwKTtcclxuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tZHJvcGRvd24tcGFkZGluZyk7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogdmFyKC0tZHJvcGRvd24td2lkdGgpO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcclxuXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzLCB0cmFuc2Zvcm0gLjNzO1xyXG5cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tZHJvcGRvd24tY29sb3IpO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1kcm9wZG93bi1mb250LXdlaWdodCk7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWRyb3Bkb3duLWZvbnQtc2l6ZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWNvbG9yLWFjdGl2ZSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmN1cnJlbnQtbWVudS1pdGVtIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWNvbG9yLWFjdGl2ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubWVudS1pdGVtLXRpdGxlIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAubWVudS1pdGVtLWNhcHRpb24ge1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5tZW51LWl0ZW0taW1nLXdyYXBwZXIge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcclxuXHJcbiAgICAgICAgICAgICAgICBpbWcsIHN2ZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLm1lbnUtaXRlbSB7XHJcblxyXG4gICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgOXB4IDE0cHggOXB4O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1kcm9wZG93bi1iZykgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDFweDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRyb3Bkb3duLWJnKTtcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDM0cHggcmdiYSgwLCA3LCA2MywgMC4xKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgLm1lbnUtaXRlbS1pbWctd3JhcHBlcixcclxuICAgICAgICAgICAgLm1lbnUtaXRlbS1jYXB0aW9uIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogU3ViIG1lbnUgdG9nZ2xlICovXHJcbiAgICAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiB7XHJcblxyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS10b2dnbGUtYnRuLXdpZHRoKTtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPiBhLFxyXG4gICAgICAgID4gLnBsYWluLW1lbnUtaXRlbXtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmZvY3VzIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuXHJcbiAgICAgICAgICAgICAgICA+IC5zdWItbWVudSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuXHJcbiAgICAgICAgICAgICAgICA+IC5zdWItbWVudSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc3ViLW1lbnUtdG9nZ2xlLFxyXG4gICAgICAgIC5wbGFpbi1tZW51LWl0ZW0ge1xyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDcwJTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC02NSUpIHJvdGF0ZSgxMzVkZWcpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IyKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogM3B4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IyKTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKXtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNzAlKSByb3RhdGUoNDVkZWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHVuc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxN3B4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLmlzLXRvZ2dsZWQge1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDEzNWRlZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN1Yi1tZW51LXRvZ2dsZSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiAzMHB4O1xyXG4gICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tdG9nZ2xlLWJ0bi13aWR0aCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tdG9nZ2xlLWJ0bi13aWR0aCk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXRvZ2dsZS1idG4td2lkdGgpO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS10b2dnbGUtYnRuLXdpZHRoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDcwcHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6NTBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnBsYWluLW1lbnUtaXRlbSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpe1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLXRvZ2dsZS1idG4td2lkdGgpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMjVweDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IHVuc2V0O1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpe1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxN3B4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qIEVuZCBzdWIgbWVudSB0b2dnbGUgKi9cclxufSIsIi8vIGNsZWFyZml4XHJcbkBtaXhpbiBjbGVhcmZpeCgpIHtcclxuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICBjb250ZW50OiBcIiBcIjtcclxuICAgIH1cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm9udC1kYXRhKCRzaXplOiBmYWxzZSwgJGxoOiBmYWxzZSwgJHdlaWdodDogZmFsc2UsICRmb250OiBmYWxzZSkge1xyXG4gICAgQGlmICRzaXplIHsgZm9udC1zaXplOiAkc2l6ZTsgfVxyXG4gICAgQGlmICRsaCB7IGxpbmUtaGVpZ2h0OiAkbGg7IH1cclxuICAgIEBpZiAkd2VpZ2h0IHsgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7IH1cclxuICAgIEBpZiAkZm9udCB7IGZvbnQtZmFtaWx5OiAkZm9udDsgfVxyXG59XHJcblxyXG5AbWl4aW4gaGFzLW92ZXJsYXkoJG9wYWNpdHk6IGZhbHNlKSB7XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XHJcbiAgICAgICAgei1pbmRleDogMTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbkBtaXhpbiBjb3Zlci1iYWNrZ3JvdW5kIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG59XHJcblxyXG4vLyByb3RhdGVcclxuQG1peGluIHJvdGF0ZSgkZGVnKSB7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKCN7JGRlZ31kZWcpKTtcclxuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxufVxyXG5cclxuLy8gc2NhbGVcclxuQG1peGluIHNjYWxlKCR4LCR5KSB7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoJHgsICR5KSk7XHJcbn1cclxuXHJcbi8vIHRyYW5zbGF0ZVxyXG5AbWl4aW4gdHJhbnNsYXRlKCR4LCAkeSkge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgkeCwgJHkpKTtcclxufVxyXG4vLyB0cmFuc2l0aW9uXHJcbkBtaXhpbiB0cmFuc2l0aW9uIHtcclxuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pIGVhc2UtaW4tb3V0O1xyXG59XHJcblxyXG5cclxuLy8gc2tld1xyXG5AbWl4aW4gc2tldygkeCwgJHkpIHtcclxuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShza2V3KCN7JHh9ZGVnLCAjeyR5fWRlZykpO1xyXG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcblxyXG5cclxuQG1peGluIHBsYWNlaG9sZGVyIHtcclxuICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIEBjb250ZW50XHJcbiAgICB9XHJcbiAgICAmOi1tb3otcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIEBjb250ZW50XHJcbiAgICB9XHJcbiAgICAmOjotbW96LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBAY29udGVudFxyXG4gICAgfVxyXG4gICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIEBjb250ZW50XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBncmFkaWVudC1ob3Jpem9udGFsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcclxufVxyXG5cclxuLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxyXG4vL1xyXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxyXG4vLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxyXG5AbWl4aW4gZ3JhZGllbnQtdmVydGljYWwoJHN0YXJ0LWNvbG9yOiAjNTU1LCAkZW5kLWNvbG9yOiAjMzMzLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcclxufVxyXG5cclxuQG1peGluIGdyYWRpZW50LWRpcmVjdGlvbmFsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJGRlZzogNDVkZWcpIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXHJcbn1cclxuXHJcbkBtaXhpbiBncmFkaWVudC1ob3Jpem9udGFsLXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICMwMGIzZWUsICRtaWQtY29sb3I6ICM3YTQzYjYsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICNjMzMyNWYpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbkBtaXhpbiBncmFkaWVudC12ZXJ0aWNhbC10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAjMDBiM2VlLCAkbWlkLWNvbG9yOiAjN2E0M2I2LCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAjYzMzMjVmKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbkBtaXhpbiBncmFkaWVudC1yYWRpYWwoJGlubmVyLWNvbG9yOiAjNTU1LCAkb3V0ZXItY29sb3I6ICMzMzMpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICRpbm5lci1jb2xvciwgJG91dGVyLWNvbG9yKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbkBtaXhpbiBncmFkaWVudC1zdHJpcGVkKCRjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMTUpLCAkYW5nbGU6IDQ1ZGVnKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XHJcbn1cclxuIiwiLm5hdi1tYWluX19idG4ge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRoZWlnaHQ6IDMwcHg7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdHRvcDogNTAlO1xyXG5cdGJvcmRlci1yYWRpdXM6IDNweDtcclxuXHRjb2xvcjogdmFyKC0tYnVyZ2VyLWNvbG9yKTtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXJnZXItYmcpO1xyXG5cdHBhZGRpbmc6IDJweCA1cHg7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0cmlnaHQ6IDE1cHg7XHJcblx0dHJhbnNpdGlvbjogYWxsIC4zcztcclxuXHR6LWluZGV4OiAxMDtcclxufVxyXG5cclxuLmJ1cmdlci1pY29uIHtcclxuXHR3aWR0aDogdmFyKC0tYnVyZ2VyLXdpZHRoKTtcclxuXHRoZWlnaHQ6IDIwcHg7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjRzIGVhc2U7XHJcblx0YmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcblx0PiBkaXYge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0ZmxleDogbm9uZTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiB2YXIoLS1idXJnZXItc2VnbWVudC1oaWdodCk7XHJcblx0XHRiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1cmdlci1zZWdtZW50LXJhZGl1cyk7XHJcblxyXG5cdFx0JjpiZWZvcmUsICY6YWZ0ZXIge1xyXG5cdFx0XHRjb250ZW50OiAnJztcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHR6LWluZGV4OiAxO1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0aGVpZ2h0OiB2YXIoLS1idXJnZXItc2VnbWVudC1oaWdodCk7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1cmdlci1zZWdtZW50LXJhZGl1cyk7XHJcblx0XHRcdGJhY2tncm91bmQ6IGluaGVyaXQ7XHJcblx0XHRcdHRyYW5zaXRpb246IGFsbCAuNHMgZWFzZTtcclxuXHRcdH1cclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHRvcDogY2FsYyh2YXIoLS1idXJnZXItc2VnbWVudC1nYXApICogLTEpO1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHR0b3A6IHZhcigtLWJ1cmdlci1zZWdtZW50LWdhcCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuaXMtYWN0aXZlICYge1xyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xyXG5cclxuXHRcdFx0JjpiZWZvcmUsXHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdHRvcDogMDtcclxuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn0iLCIuc2l0ZS1zZWFyY2gge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdGhlaWdodDogdmFyKC0tc2VhcmNoLXNpemUpO1xyXG5cdHdpZHRoOiB2YXIoLS1zZWFyY2gtc2l6ZSk7XHJcblxyXG5cdCYuLWZ1bGwge1xyXG5cdFx0d2lkdGg6IGF1dG87XHJcblx0fVxyXG5cclxuXHQmX190b2dnbGUge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0cmlnaHQ6IDVweDtcclxuXHRcdHRvcDogMDtcclxuXHRcdGhlaWdodDogdmFyKC0tc2VhcmNoLXNpemUpO1xyXG5cdFx0d2lkdGg6IHZhcigtLXNlYXJjaC1zaXplKTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlYXJjaC1idG4tYmcpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tc2VhcmNoLWJ0bi1yYWRpdXMpO1xyXG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0cGFkZGluZzogNXB4O1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0b3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRcdHotaW5kZXg6IDEwO1xyXG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcztcclxuXHJcblx0XHQmLmlzLWFjdGl2ZSB7XHJcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQtLWhlYWRlci1saW5rLWNvbG9yOiB2YXIoLS1oZWFkZXItbGluay1jb2xvci1ob3Zlcik7XHJcblx0XHR9XHJcblxyXG5cdFx0Li1mdWxsICYge1xyXG5cdFx0XHR3aWR0aDogYXV0bztcclxuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmX19pY29uIHtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luOiBhdXRvO1xyXG5cdFx0ZmlsbDogdmFyKC0taGVhZGVyLWxpbmstY29sb3IpO1xyXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0fVxyXG5cclxuXHRbdHlwZT0nc3VibWl0J10ge1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGZvbnQtc2l6ZTogMDtcclxuXHRcdGhlaWdodDogdmFyKC0tc2VhcmNoLWhlaWdodCk7XHJcblx0XHR3aWR0aDogMzBweDtcclxuXHJcblx0XHQuLXRvZ2dsZSAmLFxyXG5cdFx0Li1mdWxsICYge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRmb250LXNpemU6IDA7XHJcblx0XHRcdGhlaWdodDogMzBweDtcclxuXHRcdFx0d2lkdGg6IDMwcHg7XHJcblx0XHR9XHJcblx0XHQuLXBvcHVwICYge1xyXG5cdFx0XHRoZWlnaHQ6IDUwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxufVxyXG5cclxuLnNlYXJjaC1maWVsZCB7XHJcblx0cGFkZGluZzogNXB4IDEwcHg7XHJcblx0aGVpZ2h0OiB2YXIoLS1zZWFyY2gtaGVpZ2h0KTtcclxuXHRib3JkZXI6IG5vbmU7XHJcblx0YmFja2dyb3VuZDogI2ZmZjtcclxuXHRtYXJnaW46IDA7XHJcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tc2VhcmNoLXJhZGl1cyk7XHJcblx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdHdpZHRoOiB2YXIoLS1zZWFyY2gtd2lkdGgpO1xyXG5cclxuXHQuLXRvZ2dsZSAmIHtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcclxuXHRcdG1heC13aWR0aDogMDtcclxuXHRcdHRyYW5zaXRpb246IGFsbCAuMnM7XHJcblx0fVxyXG5cclxuXHQuLXBvcHVwICYge1xyXG5cdFx0cGFkZGluZzogNXB4IDEwcHg7XHJcblx0XHRoZWlnaHQ6IDUwcHg7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRmb250LXNpemU6IDIuMnJlbTtcclxuXHR9XHJcblxyXG59XHJcblxyXG4vKipcclxuICogU2VhcmNoIE92ZXJsYXlcclxuICovXHJcblxyXG4uc2VhcmNoLW92ZXJsYXkge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcblx0Li10b2dnbGUgJiB7XHJcblx0XHRtYXgtd2lkdGg6IDA7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0dHJhbnNpdGlvbjogYWxsIC4zcztcclxuXHJcblx0XHQmLmlzLXNob3duIHtcclxuXHRcdFx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLXNlYXJjaC13aWR0aCkgKyAyMHB4KTtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xyXG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2VhcmNoLW91dGVyLWJnKTtcclxuXHRcdFx0cGFkZGluZzogdmFyKC0tc2VhcmNoLW91dGVyLWdhcCk7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLXNlYXJjaC1yYWRpdXMpIDAgdmFyKC0tc2VhcmNoLXJhZGl1cykgdmFyKC0tc2VhcmNoLXJhZGl1cyk7XHJcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlYXJjaC1vdXRlci1ib3JkZXIpO1xyXG5cdFx0XHR6LWluZGV4OiAxMDtcclxuXHJcblx0XHRcdC5zZWFyY2gtZmllbGQge1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xyXG5cdFx0XHRcdG1heC13aWR0aDogdmFyKC0tc2VhcmNoLXdpZHRoKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0KyAuc2l0ZS1zZWFyY2hfX3RvZ2dsZSB7XHJcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xyXG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0XHRcdGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5zZWFyY2gtb3ZlcmxheV9fY2xvc2Uge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19jbG9zZSB7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTBweCk7XHJcblx0XHRcdHRvcDogMTRweDtcclxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tc2VhcmNoLW91dGVyLWJnKTtcclxuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tc2VhcmNoLW91dGVyLWJvcmRlcik7XHJcblx0XHRcdGJvcmRlci1ib3R0b206IG5vbmU7XHJcblx0XHRcdGhlaWdodDogMzZweDtcclxuXHRcdFx0d2lkdGg6IDM4cHg7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCAwIDA7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0XHR6LWluZGV4OiAxMDAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Li1mdWxsICYge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0Jl9fY2xvc2Uge1xyXG5cdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Li1wb3B1cCAmIHtcclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0ei1pbmRleDogMTAxMDtcclxuXHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRyaWdodDogMDtcclxuXHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC41KTtcclxuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHRcdHRyYW5zaXRpb246IGFsbCAuM3M7XHJcblx0XHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0fVxyXG5cclxuXHRcdCYuaXMtaGlkZGVuIHtcclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdH1cclxuXHJcblx0XHRmb3JtIHtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuXHRcdFx0dG9wOiA1MCU7XHJcblx0XHRcdGxlZnQ6IDUwJTtcclxuXHRcdFx0bWF4LXdpZHRoOiA0MDBweDtcclxuXHRcdH1cclxuXHJcblx0XHQmOm5vdCguaXMtaGlkZGVuKSB7XHJcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlYXJjaC1vdXRlci1ib3JkZXIpO1xyXG5cclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0YW5pbWF0aW9uOiBvdmVybGF5LWFwcGVhciAuM3MgY3ViaWMtYmV6aWVyKC41NSwgLjA2LCAuNjgsIC4xOSkgZm9yd2FyZHM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19jbG9zZSB7XHJcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdFx0d2lkdGg6IDQwcHg7XHJcblx0XHRcdGhlaWdodDogNDBweDtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRcdHRvcDogNDBweDtcclxuXHRcdFx0cmlnaHQ6IDIwcHg7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XHJcblx0XHRcdGNvbG9yOiAjYWFhO1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRcdHotaW5kZXg6IDEwMDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuQGtleWZyYW1lcyBvdmVybGF5LWFwcGVhciB7XHJcblx0MCUge1xyXG5cdFx0b3BhY2l0eTogMDtcclxuXHR9XHJcblx0MTAwJSB7XHJcblx0XHRvcGFjaXR5OiAxO1xyXG5cdH1cclxufVxyXG4iLCIubGlua3MtbGlzdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAmX19pdGVtIHtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgLi1sZWZ0ICYge1xyXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuLXJpZ2h0ICYge1xyXG4gICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2J0biB7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIH1cclxuXHJcbiAgICBpbWcsIHN2ZyB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDVweDtcclxuICAgICAgICBtYXgtd2lkdGg6IDIwcHg7XHJcbiAgICB9XHJcbn1cclxuIiwiLmMtYnRuIHtcclxuICBtYXJnaW46IDFyZW07XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb247XHJcbiAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xyXG4gICAgLS1idG4tZm9udC1zaXplOiBjYWxjKDEuNHJlbSAqIDEuMjUpO1xyXG4gICAgLS1idG4tcGFkZGluZy10b3AtYm90dG9tOiBjYWxjKDEuNHJlbSAqIDEuMjUpO1xyXG4gICAgLS1idG4tcGFkZGluZy1sZWZ0LXJpZ2h0OiBjYWxjKDMuNHJlbSAqIDEuMjUpO1xyXG4gIH1cclxuXHJcbiAgJl9fdHh0IHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWJ0bi1wYWRkaW5nLWxlZnQtcmlnaHQpIC8gMS41KTtcclxuICB9XHJcblxyXG4gICZfX2ljbyB7XHJcbiAgICBtaW4td2lkdGg6IDUuNHJlbTtcclxuXHJcbiAgICBzdmcsIGltZyB7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDIuMnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuLXNtYWxsIHtcclxuICAgIC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodDogM3JlbTtcclxuICAgIC0tYnRuLXBhZGRpbmctdG9wLWJvdHRvbTogMS41cmVtO1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgICAgLS1idG4tcGFkZGluZy1sZWZ0LXJpZ2h0OiBjYWxjKDIuOHJlbSAqIDEuMjUpO1xyXG4gICAgICAtLWJ0bi1wYWRkaW5nLXRvcC1ib3R0b206IGNhbGMoMS4xcmVtICogMS4yNSk7XHJcbiAgICB9XHJcbiAgICBtYXJnaW46IDAuNHJlbTtcclxuXHJcbiAgICAuYy1idG4ge1xyXG4gICAgICAmX190eHQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lLWwnKSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IGNhbGMoMS40cmVtICogMS4yNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCkgLyAyKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJl9faWNvIHtcclxuICAgICAgICBzdmcsIGltZyB7XHJcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAxLjRyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLi1wcmltYXJ5LFxyXG4gICYuLWludmVydGVkLFxyXG4gICYuLXNlY29uZGFyeSB7XHJcbiAgICAtLW91dGxpbmUtY29sb3I6IHJnYmEoMTAzLCAxNTcsIDIyMSwgMC4xKTtcclxuICAgIC0tb3V0bGluZS1zaXplOiAwLjdyZW07XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1vdXRsaW5lLXNpemUpIHZhcigtLW91dGxpbmUtY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgJi4tcHJpbWFyeSxcclxuICAmLi1zZWNvbmRhcnkge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDU1ZGVnLCB2YXIoLS1jMSksIHZhcigtLWMxKSAyMCUsIHZhcigtLWMyKSA1MSUsIHZhcigtLWMxKSA4MCUsIHZhcigtLWMxKSkgdmFyKC0teCwgMCkvIDIwMCU7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAtLW91dGxpbmUtc2l6ZTogMC43cmVtO1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLW91dGxpbmUtc2l6ZSkgKiAxLjgpO1xyXG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLW91dGxpbmUtc2l6ZSkgKiAxLjgpO1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICAgIC0teDogMTAwJTtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLi1wcmltYXJ5IHtcclxuICAgIC0tYzE6IHZhcigtLWJ0bi1wcmltYXJ5LWJnKTtcclxuICAgIC0tYzI6IHZhcigtLXByaW1hcnktY29sb3IzKTtcclxuXHJcbiAgfVxyXG5cclxuICAmLi1pbnZlcnRlZCB7XHJcbiAgICAtLWMxOiB2YXIoLS1idG4tc2Vjb25kYXJ5LWJnKTtcclxuICAgIC0tYzI6IHZhcigtLXNlY29uZGFyeS1jb2xvcjIpO1xyXG4gICAgLS1jMzogdmFyKC0tYnRuLXByaW1hcnktY29sb3IpO1xyXG4gICAgLS1idG4taWNvLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMik7XHJcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjEycyBlYXNlLWluLW91dDtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg1NWRlZywgdmFyKC0tYzEpLCB2YXIoLS1jMSkgMjAlLCB2YXIoLS1jMikgNTElLCB2YXIoLS1jMSkgODAlLCB2YXIoLS1jMSkpIHZhcigtLXgsIDApLzIwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICAgIC0tYnRuLWljby1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgIC0tb3V0bGluZS1jb2xvcjogcmdiYSgyNDMsIDEwMCwgNTUsIDAuMTUpO1xyXG4gICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XHJcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgJi4tc2Vjb25kYXJ5IHtcclxuICAgIC0tb3V0bGluZS1jb2xvcjogcmdiYSgyNDMsIDEwMCwgNTUsIDAuMTUpO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgLS1jMTogdmFyKC0tYnRuLXNlY29uZGFyeS1iZyk7XHJcbiAgICAtLWMyOiB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICB9XHJcblxyXG4gICYuLWxpbmsge1xyXG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xMnMgZWFzZS1pbi1vdXQ7XHJcblxyXG4gICAgJi4tc21hbGwge1xyXG4gICAgICAuYy1idG4ge1xyXG4gICAgICAgICZfX3R4dCB7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9faWNvIHtcclxuICAgICAgICAgIG1pbi13aWR0aDogMXJlbTtcclxuICAgICAgICAgIHdpZHRoOiAxLjhyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5oYXMtaWNvbiB7XHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICAgICAgLS1saW5rLWljb24tY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuaWNvbi1yaWdodCB7XHJcbiAgICAgIC5jLWJ0biB7XHJcbiAgICAgICAgJl9faWNvIHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjRyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5pY29uLWxlZnQge1xyXG4gICAgICAuYy1idG4ge1xyXG4gICAgICAgICZfX2ljbyB7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNHJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIuc2l0ZS1oZWFkZXIge1xyXG4gICY6bm90KC5pcy1zdGlja3kpIHtcclxuICAgICYgKyAuc3RpY2t5LWZvcm0ge1xyXG4gICAgICAtLXN0aWNreS1mb3JtLXRvcC1zaGFwZTogY2FsYyh2YXIoLS1uYXZiYXItaGlnaHQtbm90LXN0aWNreSkgKyA0MHB4KTtcclxuICAgICAgLS1zdGlja3ktZm9ybS1oZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1uYXZiYXItaGlnaHQtbm90LXN0aWNreSkgKyA0MHB4KTtcclxuXHJcbiAgICAgICYgKyAuc3RpY2t5LWZvcm0ge1xyXG4gICAgICAgIGJvdHRvbTogMTB2aDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJiArIC5zdGlja3ktZm9ybSB7XHJcbiAgICAtLXN0aWNreS1mb3JtLXRvcC1zaGFwZTogY2FsYyh2YXIoLS1uYXZiYXItaGlnaHQpICsgM3B4KTtcclxuICAgIC0tc3RpY2t5LWZvcm0taGVpZ2h0OiBjYWxjKDEwMHZoIC0gdmFyKC0tbmF2YmFyLWhpZ2h0KSAtIDBweCk7XHJcblxyXG4gICAgJiArIC5zdGlja3ktZm9ybSB7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG4uc3RpY2t5LWZvcm0ge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB6LWluZGV4OiA5MTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXJrLXdoaXRlKTtcclxuICBwYWRkaW5nOiAwIDQuNXJlbSAwO1xyXG4gIHdpZHRoOiA3Ni4xcmVtO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICB9XHJcblxyXG4gICZfX3RyaWdnZXIge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcclxuICB9XHJcblxyXG4gICZfX2Nsb3NlIHtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XHJcblxyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAycmVtO1xyXG4gICAgcmlnaHQ6IDFyZW07XHJcbiAgICB3aWR0aDogNHJlbTtcclxuICAgIGhlaWdodDogNHJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAuZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXIge1xyXG4gICAgJi5kcy1jb250YWN0LXVzIHtcclxuICAgICAgLmdmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlIHtcclxuICAgICAgICBtYXJnaW46IDEycmVtIDAgNnJlbTtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyay13aGl0ZSk7XHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmstd2hpdGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmdmb3JtX3dyYXBwZXIge1xyXG4gICAgLS1oLW1hcmdpbjogNS42cmVtO1xyXG4gICAgcGFkZGluZzogMCA0LjVyZW0gMDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLWgtbWFyZ2luKSAqIDIpO1xyXG4gICAgbWFyZ2luOiB2YXIoLS1oLW1hcmdpbikgMDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZS1sJykge1xyXG4gICAgICAtLWgtbWFyZ2luOiA2cmVtO1xyXG4gICAgICBwYWRkaW5nOiAwIDFyZW0gOHJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI1LCAyMzUsIDI0OCwgMSk7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICAgIHdpZHRoOiA0cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI1LCAyMzUsIDI0OCwgMSk7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjMpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAmLmdyYXZpdHktdGhlbWUge1xyXG4gICAgICAuZ2Zvcm1fdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNHJlbTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjBkZWcsIHZhcigtLXByaW1hcnktY29sb3IxKSA1MCUsIHZhcigtLXByaW1hcnktY29sb3IzKSAxMDAlKTtcclxuICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xyXG4gICAgICAgIHRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmdmb3JtX2Rlc2NyaXB0aW9uIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tZGFyay1ncmF5KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmdmb3JtX2ZpZWxkcyB7XHJcbiAgICAgICAgZ3JpZC1yb3ctZ2FwOiAxLjJyZW07XHJcblxyXG4gICAgICAgIGlucHV0W3R5cGU9dGV4dF0sXHJcbiAgICAgICAgaW5wdXRbdHlwZT1lbWFpbF0sXHJcbiAgICAgICAgaW5wdXRbdHlwZT1waG9uZV0sXHJcbiAgICAgICAgaW5wdXRbdHlwZT10ZWxdLFxyXG4gICAgICAgIGlucHV0W3R5cGU9bnVtYmVyXSxcclxuICAgICAgICBpbnB1dFt0eXBlPWRhdGVdLFxyXG4gICAgICAgIGlucHV0W3R5cGU9ZmlsZV0sXHJcbiAgICAgICAgc2VsZWN0LFxyXG4gICAgICAgIHRleHRhcmVhIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDEuMnJlbSB2YXIoLS1pbnB1dC1wYWRkaW5nLWxlZnQtcmlnaHQsIDEwcHgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lLWwnKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lLWwnKSB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQ0cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuZ2Zvcm0tYm9keSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMi43cmVtO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lLWwnKSB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzLjdyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuZ2Zvcm1fZm9vdGVyIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycyB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tY29udGFjdCB7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRvcDogdmFyKC0tc3RpY2t5LWZvcm0tdG9wLXNoYXBlKTtcclxuICAgIG1heC1oZWlnaHQ6IHZhcigtLXN0aWNreS1mb3JtLWhlaWdodCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJykge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAyMHB4O1xyXG4gICAgICBoZWlnaHQ6IDgycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgIGhlaWdodDogdmFyKC0tc3RpY2t5LWZvcm0taGVpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lLWwnLCAnPD1kZXNrdG9wJykge1xyXG4gICAgICBoZWlnaHQ6IDg0cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5zdGlja3ktZm9ybSB7XHJcbiAgICAgICZfX3RyaWdnZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDQwcHg7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTk5JSkgcm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgd3JpdGluZy1tb2RlOiB0Yi1ybDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCByZ2JhKDg2LCAxMjIsIDE4MykgMCUsIHZhcigtLXByaW1hcnktY29sb3IxKSAyNSUpO1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDRweCA0MnB4IHJnYmEoNjIsIDc1LCAxMzAsIDAuMik7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAyMHB4IDIwcHggMDtcclxuICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgICAgcGFkZGluZzogMy4ycmVtIDFyZW07XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDE3cHggMTRweDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygxLjRyZW0gKiAxLjI1KTtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AtbCcpIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xyXG4gICAgICAgICAgcGFkZGluZzogNC41cmVtIDEuNnJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcclxuICAgICAgICAgIGNvbG9yOiAjQzZFQUZGO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDg2LCAxMjIsIDE4MykgMCUsIHZhcigtLXByaW1hcnktY29sb3IxKSAyNSUpO1xyXG5cclxuICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5jYXB0aW9uIHtcclxuICAgICAgICAgIHBhZGRpbmctdG9wOiAxLjRyZW07XHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IyKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgICB3aWR0aDogMi4ycmVtO1xyXG4gICAgICAgICAgaGVpZ2h0OiAyLjJyZW07XHJcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTVweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcC1sJykge1xyXG4gICAgICAgICAgICB3aWR0aDogMi45cmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDIuOXJlbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZ2Zvcm1fYnV0dG9uIHtcclxuXHJcbiAgICAgICY6Zm9jdXMsXHJcbiAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XHJcblxyXG4gICAgICAgICsgLmMtYnRuIHtcclxuICAgICAgICAgIC0teDogMTAwJTtcclxuXHJcbiAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tcHJpbWFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDNweDtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgNnB4IDE0cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gICYtLWUtYm9vayB7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLW5hdmJhci1oaWdodCkpO1xyXG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLW5hdmJhci1oaWdodCkpO1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJykge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDIwcHggMCAwO1xyXG4gICAgICBib3R0b206IDEzdmg7XHJcbiAgICAgIGhlaWdodDogNjJyZW07XHJcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxM3ZoIC0gdmFyKC0tbmF2YmFyLWhpZ2h0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZS1sJykge1xyXG4gICAgICAgIGJvdHRvbTogdW5zZXQgIWltcG9ydGFudDtcclxuICAgICAgICB0b3A6IHZhcigtLW5hdmJhci1oaWdodCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZS1sJywgJzw9ZGVza3RvcCcpIHtcclxuICAgICAgaGVpZ2h0OiA2MHJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgIC5zdGlja3ktZm9ybSB7XHJcbiAgICAgICAgJl9fdHJpZ2dlciB7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ncmF2aXR5LXRoZW1lIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1oLW1hcmdpbikgKiAxLjUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnN0aWNreS1mb3JtIHtcclxuICAgICAgJl9fdHJpZ2dlciB7XHJcbiAgICAgICAgLS1vdXRsaW5lLWNvbG9yOiByZ2JhKDEwMywgMTU3LCAyMjEsIDAuMSk7XHJcbiAgICAgICAgLS1vdXRsaW5lLXNpemU6IDAuN3JlbTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiB2YXIoLS1vdXRsaW5lLXNpemUpO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDMwMHB4IDMwMHB4IDA7XHJcbiAgICAgICAgcGFkZGluZzogMS41cmVtIDIuNXJlbSAxLjlyZW0gNXJlbTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1vdXRsaW5lLXNpemUpIHZhcigtLW91dGxpbmUtY29sb3IpO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxNHB4IDEycHggMTZweCAxMnB4O1xyXG4gICAgICAgICAgZm9udC1zaXplOiBjYWxjKDEuNHJlbSAqIDEuMjUpO1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRjBGNUZDO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmNhcHRpb24ge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAyLjlyZW07XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDIwZGVnLCB2YXIoLS1wcmltYXJ5LWNvbG9yMSkgNTAlLCB2YXIoLS1wcmltYXJ5LWNvbG9yMykgMTAwJSk7XHJcbiAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgICAgICAgIHRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICAgICAgd2lkdGg6IDIuMXJlbTtcclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNnB4O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYubW9iaWxlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuZGVza3RvcCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uc3RpY2t5LWZvcm0tb3ZlcmxheSB7XHJcbiAgei1pbmRleDogLTE7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ibGFjayk7XHJcbiAgb3BhY2l0eTogMDtcclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICB6LWluZGV4OiA4OTtcclxuICAgIG9wYWNpdHk6IDAuNTtcclxuXHJcbiAgfVxyXG59XHJcbiIsIi5zb2NpYWwtbGlzdCB7XHJcbiAgJi5zb2NpYWwtbGlzdCB7XHJcbiAgICAtLXNvY2lhbC1saW5rLWdhcF9oOiAxMHB4O1xyXG4gICAgZ2FwOiB2YXIoLS1zb2NpYWwtbGluay1nYXBfaCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgbWF4LXdpZHRoOiAyMi4zcmVtO1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wLWwnKSB7XHJcbiAgICAgIG1heC13aWR0aDogMzZyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19saW5rIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB6LWluZGV4OiAwO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCgxMTkuMTclIDMwNC40NyUgYXQgNjcuNzglIC02MS42NyUsIHZhcigtLXByaW1hcnktY29sb3IzKSAwJSwgdmFyKC0tcHJpbWFyeS1jb2xvcjEpIDEwMCUpO1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2ljb24ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWF4LXdpZHRoOiA2MCU7XHJcbiAgICBtYXgtaGVpZ2h0OiA2MCU7XHJcblxyXG4gICAgJi5pY29uLXNvY2lhbC1ibG9nIHtcclxuICAgICAgbWF4LWhlaWdodDogNTUlO1xyXG4gICAgICBtYXgtd2lkdGg6IDU1JTtcclxuICAgIH1cclxuXHJcbiAgICAmLmljb24tc29jaWFsLWluc3RhZ3JhbSB7XHJcbiAgICAgIG1heC13aWR0aDogNTUlO1xyXG4gICAgfVxyXG5cclxuICAgICYuaWNvbi1zb2NpYWwtdHdpdHRlciB7XHJcbiAgICAgIG1heC13aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy9TdGlja3kgc29jaWFsc1xyXG4uc2l0ZS1oZWFkZXIge1xyXG4gICY6bm90KC5pcy1zdGlja3kpIHtcclxuICAgICYgfiAuc3RpY2t5LXNvY2lhbHMsXHJcbiAgICAmIH4gZGl2IH4gLnN0aWNreS1zb2NpYWxzIHtcclxuICAgICAgLS1zdGlja3ktZm9ybS10b3Atc2hhcGU6IGNhbGModmFyKC0tbmF2YmFyLWhpZ2h0LW5vdC1zdGlja3kpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYgfiAuc3RpY2t5LXNvY2lhbHMsXHJcbiAgJiB+IGRpdiB+IC5zdGlja3ktc29jaWFscyB7XHJcbiAgICAtLXN0aWNreS1mb3JtLXRvcC1zaGFwZTogY2FsYyh2YXIoLS1uYXZiYXItaGlnaHQpICsgM3B4KTtcclxuICB9XHJcbn1cclxuXHJcbi5zdGlja3ktc29jaWFscyB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogOTA7XHJcbiAgdG9wOiBjYWxjKHZhcigtLXN0aWNreS1mb3JtLXRvcC1zaGFwZSkgKyA0MHB4KTtcclxuICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcclxuICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZS1sJykge1xyXG4gICAgdG9wOiBjYWxjKHZhcigtLXN0aWNreS1mb3JtLXRvcC1zaGFwZSkgKyA0MHB4KTtcclxuICB9XHJcblxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG5cclxuICAgIC5zb2NpYWwtbGlzdCxcclxuICAgIC5zb2NpYWxzLWNsb3NlIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNvY2lhbHMtY2xvc2Uge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDAgMDtcclxuICAgIHdpZHRoOiA1LjNyZW07XHJcbiAgICBoZWlnaHQ6IDMuMnJlbTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XHJcbiAgICBvcmRlcjogMTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgLnNvY2lhbHMtdG9nZ2xlIHtcclxuICAgIG1hcmdpbi10b3A6IDMuNHJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XHJcbiAgICBoZWlnaHQ6IDUuM3JlbTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgb3JkZXI6IDM7XHJcbiAgICBjb2xvcjogI2ZmZmZmZjtcclxuICB9XHJcblxyXG4gIC5zb2NpYWxzLXRvZ2dsZSxcclxuICAuc29jaWFscy1jbG9zZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC13aGl0ZSk7XHJcbiAgICB3aWR0aDogNS4zcmVtO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzLXZpc2libGUge1xyXG4gICAgICBvdXRsaW5lOiAycHggc29saWQgY3VycmVudENvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgICAgbWF4LWhlaWdodDogNjAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNvY2lhbC1saXN0IHtcclxuICAgIC0tc29jaWFsLWljb24tc2l6ZTogNS4zcmVtO1xyXG4gICAgLS1zb2NpYWwtaWNvbi1yYWRpdXM6IDA7XHJcbiAgICAtLXNvY2lhbC1pY29uLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAtLXNvY2lhbC1pY29uLWJnLWhvdmVyOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgIC0tc29jaWFsLWljb24tYmc6IHZhcigtLWxpZ2h0ZXItZ3JheSk7XHJcblxyXG4gICAgb3JkZXI6IDI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0ZXItZ3JheSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMTBweCAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XHJcblxyXG4gICAgJl9faXRlbSB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saWdodC13aGl0ZSk7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XHJcblxyXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDEwcHggMDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX19saW5rIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2ljb24ge1xyXG4gICAgICBtYXgtd2lkdGg6IDQ1JTtcclxuICAgICAgbWF4LWhlaWdodDogNDUlO1xyXG5cclxuICAgICAgJi5pY29uLXNvY2lhbC10aWt0b2sge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDU1JTtcclxuICAgICAgICBtYXgtd2lkdGg6IDU1JTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5pY29uLXNvY2lhbC1ibG9nIHtcclxuICAgICAgICBtYXgtaGVpZ2h0OiA0MiU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA0MiU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIvKipcclxuICMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiAjICAgTW9kdWxlOiBCQU5ORVJTXHJcbiAjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4gKi9cclxuXHJcbi8qIE1vZHVsZSBDb3JlICovXHJcblxyXG5AaW1wb3J0IFwiYmFubmVycy9fYmFubmVycy1jb3JlXCI7XHJcblxyXG4vKiBCYXNlIExheW91dCBTdHJ1Y3R1cmUgKi9cclxuXHJcbkBpbXBvcnQgXCJiYW5uZXJzL19iYW5uZXJzLWxheW91dFwiO1xyXG4iLCIvKipcclxuICMjIyMjIyMjIyMjIyMjIyNcclxuICMgICBNb2R1bGUgQkFOTkVSUzogQ29yZVxyXG4gIyMjIyMjIyMjIyMjIyMjI1xyXG4gKi9cclxuXHJcbi5tLWJhbm5lciB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cclxuXHQubC1ndC1jdXN0b20ge1xyXG5cdFx0LS12LWdhcC10b3A6IHZhcigtLWwtZ3QtcGFkZGluZylcclxuXHR9XHJcblx0LmwtZ2ItY3VzdG9tIHtcclxuXHRcdC0tdi1nYXAtYm90OiB2YXIoLS1sLWdiLXBhZGRpbmcpXHJcblx0fVxyXG5cclxuXHQubC1ndC1kIHtcclxuXHRcdC0tdi1nYXAtdG9wOiA0JTtcclxuXHR9XHJcblx0LmwtZ2ItZCB7XHJcblx0XHQtLXYtZ2FwLWJvdDogNCU7XHJcblx0fVxyXG5cclxuXHQmX19jb250YWluZXIge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0bWluLWhlaWdodDogdmFyKC0tYmFubmVySGVpZ2h0LCBhdXRvKTtcclxuXHRcdHBhZGRpbmctbGVmdDogMDtcclxuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuXHRcdFx0bWluLWhlaWdodDogMzB2aDtcclxuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdFx0Lm0tYmFubmVyX19pbm5lciB7XHJcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmX19pbm5lciB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuXHRcdFx0bWluLWhlaWdodDogMTAwJTtcclxuXHRcdH1cclxuXHJcblx0XHQmLmZsZXgtY2VudGVyIHtcclxuXHRcdFx0LmwtYmFubmVyIHtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmMtYnRuLWJhciB7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5mbGV4LXJpZ2h0IHtcclxuXHRcdFx0LmwtYmFubmVyIHtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmX19tZWRpYSB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG5cdFx0XHQmLmJnLXItNTAge1xyXG5cdFx0XHRcdHdpZHRoOiA1MCU7XHJcblx0XHRcdFx0bGVmdDogYXV0bztcclxuXHRcdFx0XHRpbWcge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQmLmJnLWwtNTAge1xyXG5cdFx0XHRcdHdpZHRoOiA1MCU7XHJcblx0XHRcdFx0cmlnaHQ6IGF1dG87XHJcblx0XHRcdFx0aW1nIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpbWcsIHBpY3R1cmUsIHZpZGVvLCBpZnJhbWUge1xyXG5cdFx0XHRvYmplY3QtZml0OiBjb3ZlcjtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHR0b3A6IDA7XHJcblx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmZpeGVkLWhlYWRlci5zaW5nbGUtcHJvZHVjdCAmIHtcclxuXHRcdG1heC1oZWlnaHQ6IDIwMHB4O1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKioqKioqKioqKioqKioqXHJcblx0ICoqICBWYXJpYXRpb25zXHJcblx0ICoqKioqKioqKioqKioqKlxyXG5cdCAqICAubS1iYW5uZXItLXNtYWxsLCAtLW1lZGl1bSwgLS1mdWxsXHJcblx0ICovXHJcblxyXG5cdEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcblxyXG5cdFx0Ji0tYmxvZyB7XHJcblx0XHRcdC0tYmFubmVySGVpZ2h0OiB2YXIoLS1iYW5uZXItaGVpZ2h0LS1ibG9nLCA0MjBweCk7XHJcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdH1cclxuXHJcblx0XHQmLS1zbWFsbCB7XHJcblx0XHRcdC0tYmFubmVySGVpZ2h0OiB2YXIoLS1iYW5uZXItaGVpZ2h0LS1zbWFsbCwgMzAwcHgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdCYtLW1lZGl1bSB7XHJcblx0XHRcdC0tYmFubmVySGVpZ2h0OiB2YXIoLS1iYW5uZXItaGVpZ2h0LS1tZWRpdW0sIDQ1MHB4KTtcclxuXHRcdH1cclxuXHJcblx0XHQmLS1mdWxsIHtcclxuXHRcdFx0Lm0tYmFubmVyX19jb250YWluZXIge1xyXG5cdFx0XHRcdG1heC1oZWlnaHQ6IDk2MHB4O1xyXG5cclxuXHRcdFx0XHQuc3RhdGljLWhlYWRlciAmIHtcclxuXHRcdFx0XHRcdC0tYmFubmVySGVpZ2h0OiB2YXIoLS1iYW5uZXItaGVpZ2h0LS1mdWxsLCAxMDB2aCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5maXhlZC1oZWFkZXIgJiB7XHJcblx0XHRcdFx0XHQtLWJhbm5lckhlaWdodDogY2FsYyh2YXIoLS1iYW5uZXItaGVpZ2h0LS1mdWxsLCAxMDB2aCkgLSB2YXIoLS1uYXZiYXItaGlnaHQpKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG59XHJcbiIsIi8qKlxyXG4gIyMjIyMjIyMjIyMjIyMjI1xyXG4gIyAgIE1vZHVsZSBCQU5ORVJTOiBCYXNlIExheW91dFxyXG4gIyMjIyMjIyMjIyMjIyMjI1xyXG4gKi9cclxuXHJcbi5sLWJhbm5lciB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR6LWluZGV4OiAyO1xyXG5cdGdhcDogMjBweDtcclxuXHRwYWRkaW5nLXRvcDogdmFyKC0tdi1nYXAtdG9wLCAwKTtcclxuXHRwYWRkaW5nLWJvdHRvbTogIHZhcigtLXYtZ2FwLWJvdCwgMCk7XHJcblxyXG5cdEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHR9XHJcblxyXG5cdCZfX21lZGlhIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuXHRcdFx0ZmxleDogMSAxIGF1dG87XHJcblx0XHR9XHJcblx0XHQuYy1pbWFnZSB7XHJcblx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmX190ZXh0IHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0Y29sb3I6IHZhcigtLXByaW1hcnktdGV4dC1jb2xvci1hbHQpO1xyXG5cclxuXHRcdC5zdHlsZS1saWdodCAmIHtcclxuXHRcdFx0Y29sb3I6IHZhcigtLXByaW1hcnktdGV4dC1jb2xvcik7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdH1cclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIikge1xyXG5cdFx0XHRtYXgtd2lkdGg6IHZhcigtLWNvbHVtbnMtcmF0aW8pO1xyXG5cdFx0XHRmbGV4OiAwIDAgdmFyKC0tY29sdW1ucy1yYXRpbyk7XHJcblxyXG5cdFx0XHQuaXMtdmVydGljYWwgJiB7XHJcblx0XHRcdFx0ZmxleDogYXV0bztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5jLWJsb2NrX19ib2R5IHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQub3JkZXItcmV2ZXJzZSAmIHtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuXHR9XHJcblxyXG5cdC5pcy12ZXJ0aWNhbCAmIHtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LmlzLXZlcnRpY2FsLm9yZGVyLXJldmVyc2UgJiB7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XHJcblx0fVxyXG59XHJcbiIsIi8qIEhlYWRpbmcgQ29tcG9uZW50ICovXHJcblxyXG5AaW1wb3J0IFwiaGVhZGluZ3MvX2hlYWRpbmdzLWNvcmVcIjtcclxuXHJcbkBpbXBvcnQgXCJoZWFkaW5ncy9faGVhZGluZ3MtbGF5b3V0c1wiOyIsIi8qKlxyXG4gKiBIRUFESU5HIE1vZHVsZVxyXG4gKlxyXG4gKiBTdGFuZGFsb25lIGhlYWRpbmcgc2VsZWN0b3JzLCB0aXRsZSwgcHJlL3N1Yi10aXRsZVxyXG4gKlxyXG4gKi9cclxuXHJcbi4taDEsIC5pcy13eXNpd3lnIGgxIHtcclxuXHRsaW5lLWhlaWdodDogdmFyKC0taDEtbGluZS1oZWlnaHQsIDEpO1xyXG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1oMS1mb250LXdlaWdodCwgNjAwKTtcclxuXHRmb250LWZhbWlseTogdmFyKC0taDEtZm9udCk7XHJcblx0bWFyZ2luLWJvdHRvbTogdmFyKC0taDEtbWFyZ2luLWJvdHRvbSwgLjVlbSk7XHJcblx0dGV4dC10cmFuc2Zvcm06IHZhcigtLWgxLXRleHQtdHJhbnNmb3JtKTtcclxuXHRsZXR0ZXItc3BhY2luZzogdmFyKC0taDEtbGV0dGVyLXNwYWNpbmcsIDApO1xyXG5cdGZvbnQtc2l6ZTogI3tcImNsYW1wKHZhcigtLWgxLWZvbnQtc2l6ZS1tb2JpbGUpLCB2YXIoLS1oLWNsYW1wLWZvcm11bGEpLCB2YXIoLS1oMS1mb250LXNpemUpKVwifTtcclxuXHRjb2xvcjogdmFyKC0tbWFpbi10aXRsZS1jb2xvcik7XHJcblx0Li1jb2xvcnMtaW52ZXJ0ZWQgJixcclxuXHQuc3R5bGUtZGFyayAmIHtcclxuXHRcdGNvbG9yOiB2YXIoLS1tYWluLXRpdGxlLWNvbG9yLWFsdCk7XHJcblx0fVxyXG59XHJcbi4taDIsIC5pcy13eXNpd3lnIGgyIHtcclxuXHRsaW5lLWhlaWdodDogdmFyKC0taDItbGluZS1oZWlnaHQsIDEpO1xyXG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1oMi1mb250LXdlaWdodCwgNjAwKTtcclxuXHRmb250LWZhbWlseTogdmFyKC0taDItZm9udCk7XHJcblx0dGV4dC10cmFuc2Zvcm06IHZhcigtLWgyLXRleHQtdHJhbnNmb3JtKTtcclxuXHRsZXR0ZXItc3BhY2luZzogdmFyKC0taDItbGV0dGVyLXNwYWNpbmcsIDApO1xyXG5cdGZvbnQtc2l6ZTogI3tcImNsYW1wKHZhcigtLWgyLWZvbnQtc2l6ZS1tb2JpbGUpLCB2YXIoLS1oLWNsYW1wLWZvcm11bGEpLCB2YXIoLS1oMi1mb250LXNpemUpKVwifTtcclxuXHRtYXJnaW4tYm90dG9tOiB2YXIoLS1oMi1tYXJnaW4tYm90dG9tLCAuNWVtKTtcclxufVxyXG4uLWgzLCAuaXMtd3lzaXd5ZyBoMyB7XHJcblx0bGluZS1oZWlnaHQ6IHZhcigtLWgzLWxpbmUtaGVpZ2h0LCAxKTtcclxuXHRmb250LXdlaWdodDogdmFyKC0taDMtZm9udC13ZWlnaHQsIDYwMCk7XHJcblx0Zm9udC1mYW1pbHk6IHZhcigtLWgzLWZvbnQpO1xyXG5cdHRleHQtdHJhbnNmb3JtOiB2YXIoLS1oMy10ZXh0LXRyYW5zZm9ybSk7XHJcblx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLWgzLWxldHRlci1zcGFjaW5nLCAwKTtcclxuXHRmb250LXNpemU6ICN7XCJjbGFtcCh2YXIoLS1oMy1mb250LXNpemUtbW9iaWxlKSwgdmFyKC0taC1jbGFtcC1mb3JtdWxhKSwgdmFyKC0taDMtZm9udC1zaXplKSlcIn07XHJcblx0bWFyZ2luLWJvdHRvbTogdmFyKC0taDMtbWFyZ2luLWJvdHRvbSwgLjVlbSk7XHJcbn1cclxuLi1oNCwgLmlzLXd5c2l3eWcgaDQge1xyXG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1oNC1saW5lLWhlaWdodCwgMSk7XHJcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWg0LWZvbnQtd2VpZ2h0LCA2MDApO1xyXG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1oNC1mb250KTtcclxuXHR0ZXh0LXRyYW5zZm9ybTogdmFyKC0taDQtdGV4dC10cmFuc2Zvcm0pO1xyXG5cdGxldHRlci1zcGFjaW5nOiB2YXIoLS1oNC1sZXR0ZXItc3BhY2luZywgMCk7XHJcblx0Zm9udC1zaXplOiAje1wiY2xhbXAodmFyKC0taDQtZm9udC1zaXplLW1vYmlsZSksIHZhcigtLWgtY2xhbXAtZm9ybXVsYSksIHZhcigtLWg0LWZvbnQtc2l6ZSkpXCJ9O1xyXG5cdG1hcmdpbi1ib3R0b206IHZhcigtLWg0LW1hcmdpbi1ib3R0b20sIC41ZW0pO1xyXG59XHJcblxyXG4uYy1oZWFkaW5nIHtcclxuXHJcblx0Jl9fdGl0bGUge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XHJcblx0XHR0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcclxuXHRcdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0ei1pbmRleDogMTtcclxuXHJcblx0XHRjb2xvcjogdmFyKC0tbWFpbi10aXRsZS1jb2xvcik7XHJcblxyXG5cdFx0Li1jb2xvcnMtaW52ZXJ0ZWQgJixcclxuXHRcdC5zdHlsZS1kYXJrICYge1xyXG5cdFx0XHRjb2xvcjogdmFyKC0tbWFpbi10aXRsZS1jb2xvci1hbHQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC50ZXh0LWNlbnRlciAmIHtcclxuXHRcdFx0bWFyZ2luOiAwIGF1dG87XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmX19wcmUge1xyXG5cdFx0Y29sb3I6IHZhcigtLXByZXRpdGxlLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yMikpO1xyXG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLXByZXRpdGxlLWxpbmUtaGVpZ2h0LCAxLjQpO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLXByZXRpdGxlLWxldHRlci1zcGFjaW5nLCAwKTtcclxuXHRcdG1hcmdpbjogdmFyKC0tcHJldGl0bGUtbWFyZ2luLWJvdHRvbSwgLjVlbSkgMDtcclxuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1wcmV0aXRsZS1mb250KTtcclxuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1wcmV0aXRsZS1mb250LXdlaWdodCwgNTAwKTtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB2YXIoLS1wcmV0aXRsZS10ZXh0LXRyYW5zZm9ybSk7XHJcblx0XHRmb250LXNpemU6ICN7XCJjbGFtcCh2YXIoLS1wcmV0aXRsZS1mb250LXNpemUtbW9iaWxlLCAxOHB4KSwgdmFyKC0taC1jbGFtcC1mb3JtdWxhKSwgdmFyKC0tcHJldGl0bGUtZm9udC1zaXplLCAyLjRyZW0pKVwifTtcclxuXHJcblx0XHQuLWNvbG9ycy1pbnZlcnRlZCAmLFxyXG5cdFx0LnN0eWxlLWRhcmsgJiB7XHJcblx0XHRcdGNvbG9yOiB2YXIoLS1wcmV0aXRsZS1jb2xvci1hbHQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jl9fc3ViIHtcclxuXHRcdGNvbG9yOiB2YXIoLS1zdWJ0aXRsZS1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcjIpKTtcclxuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1zdWJ0aXRsZS1saW5lLWhlaWdodCwgMS40KTtcclxuXHRcdGxldHRlci1zcGFjaW5nOiB2YXIoLS1zdWJ0aXRsZS1sZXR0ZXItc3BhY2luZywgMCk7XHJcblx0XHRtYXJnaW46IHZhcigtLXN1YnRpdGxlLW1hcmdpbi1ib3R0b20sIC41ZW0pIDA7XHJcblx0XHRmb250LWZhbWlseTogdmFyKC0tc3VidGl0bGUtZm9udCk7XHJcblx0XHRmb250LXdlaWdodDogdmFyKC0tc3VidGl0bGUtZm9udC13ZWlnaHQsIDUwMCk7XHJcblx0XHR0ZXh0LXRyYW5zZm9ybTogdmFyKC0tc3VidGl0bGUtdGV4dC10cmFuc2Zvcm0pO1xyXG5cdFx0Zm9udC1zaXplOiAje1wiY2xhbXAodmFyKC0tc3VidGl0bGUtZm9udC1zaXplLW1vYmlsZSwgMThweCksIHZhcigtLWgtY2xhbXAtZm9ybXVsYSksIHZhcigtLXN1YnRpdGxlLWZvbnQtc2l6ZSwgMi40cmVtKSlcIn07XHJcblxyXG5cdFx0Li1jb2xvcnMtaW52ZXJ0ZWQgJixcclxuXHRcdC5zdHlsZS1kYXJrICYge1xyXG5cdFx0XHRjb2xvcjogdmFyKC0tc3VidGl0bGUtY29sb3ItYWx0KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCZfX3ByZWFtYmxlIHtcclxuXHRcdHdpZHRoOiBjYWxjKDEwMHZ3IC0gOC4xcHgpO1xyXG5cdFx0bWF4LXdpZHRoOiBub25lO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0bGVmdDogNTAlO1xyXG5cdFx0cmlnaHQ6IDUwJTtcclxuXHRcdG1hcmdpbi1sZWZ0OiAtNTB2dztcclxuXHRcdG1hcmdpbi1yaWdodDogLTUwdnc7XHJcblxyXG5cdFx0Y29sb3I6IHZhcigtLWJhY2t0aXRsZS1jb2xvcik7XHJcblx0XHRsZXR0ZXItc3BhY2luZzogdmFyKC0tYmFja3RpdGxlLWxldHRlci1zcGFjaW5nLCAwKTtcclxuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1iYWNrdGl0bGUtZm9udCk7XHJcblx0XHRmb250LXdlaWdodDogdmFyKC0tYmFja3RpdGxlLWZvbnQtd2VpZ2h0LCA1MDApO1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHZhcigtLWJhY2t0aXRsZS10ZXh0LXRyYW5zZm9ybSk7XHJcblx0XHRvcGFjaXR5OiAuNTtcclxuXHRcdGxpbmUtaGVpZ2h0OiAuODtcclxuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRwYWRkaW5nOiAuMmVtIDA7XHJcblx0XHRmb250LXNpemU6ICN7XCJjbGFtcCh2YXIoLS1iYWNrdGl0bGUtZm9udC1zaXplLW1vYmlsZSwgMThweCksIHZhcigtLWgtY2xhbXAtZm9ybXVsYSksIHZhcigtLWJhY2t0aXRsZS1mb250LXNpemUsIDIuNHJlbSkpXCJ9O1xyXG5cclxuXHRcdC4tY29sb3JzLWludmVydGVkICYsXHJcblx0XHQuc3R5bGUtZGFyayAmIHtcclxuXHRcdFx0Y29sb3I6IHZhcigtLWJhY2t0aXRsZS1jb2xvci1hbHQpO1xyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdCZfX2Rlc2NyaXB0aW9uIHtcclxuXHRcdGZvbnQtc2l6ZTogdmFyKC0tYmFzZS10ZXh0LXNpemUpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogIy4jIE1vZGlmaWVyc1xyXG5cdCAqL1xyXG5cclxuXHQudGV4dC1jZW50ZXIgJiB7XHJcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcclxuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHR9XHJcbn1cclxuIiwiLyogSGVhZGluZyBMYXlvdXQgKi9cclxuXHJcbi5sLWhlYWRpbmcge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdH1cclxufVxyXG5cclxuLmwtaGVhZGluZy12MiB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0YWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG5cclxuXHQuYy1oZWFkaW5nIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcbn1cclxuIiwiLyoqXHJcbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiAjICAgQnV0dG9ucyBDb21wb25lbnRcclxuICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICovXHJcblxyXG5AaW1wb3J0IFwiYnV0dG9ucy9idXR0b25zLWNvcmVcIjtcclxuIiwiLyoqIEJ1dHRvbnMgQ29yZSBDb21wb25lbnQgKi9cclxuXHJcbi5idG4ge1xyXG4gICAgLS1idG4taWNvLWNvbG9yOiBjdXJyZW50Q29sb3I7XHJcbiAgICAtLWljb24tc2hpZnQ6IDEwcHg7XHJcblxyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzLCBib3JkZXIgLjNzLCBiYWNrZ3JvdW5kIC4zcztcclxufVxyXG5cclxuLmMtYnRuIHtcclxuICAgIEBleHRlbmQgLmJ0bjtcclxuXHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1idG4tZm9udC1zaXplLCAxLjhyZW0pO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWJ0bi1mb250LWZhbWlseSk7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tYnRuLXRleHQtdHJhbnNmb3JtLCBub25lKTtcclxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1idXR0b24tZm9udC13ZWlnaHQsIDQwMCk7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1idG4tYm94LXNoYWRvdywgbm9uZSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idG4tYm9yZGVyLXJhZGl1cywgMCk7XHJcbiAgICBtYXJnaW46IDJweDtcclxuICAgID4gc3BhbiB7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1cclxuXHJcbiAgICAmX190eHQge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB6LWluZGV4OiAyO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tYnRuLXBhZGRpbmctdG9wLWJvdHRvbSwgMTBweCkgdmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCwgMjBweCk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcywgY29sb3IgLjNzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEJ1dHRvbiBWaXN1YWwgVmFyaWFudHMgKi9cclxuXHJcbiAgICAmLi1wcmltYXJ5LFxyXG4gICAgJi4taW52ZXJ0ZWQsXHJcbiAgICAmLi1zZWNvbmRhcnkge1xyXG4gICAgICAgIC5jLWJ0bl9faWNvIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWJ0bi1wYWRkaW5nLWxlZnQtcmlnaHQsIDIwcHgpIC8gMik7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCwgMjBweCkgLyAyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5pY29uLWxlZnQge1xyXG4gICAgICAgICAgICAuYy1idG5fX2ljbyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCwgMjBweCkgKiAtMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5pY29uLXJpZ2h0IHtcclxuICAgICAgICAgICAgLmMtYnRuX19pY28ge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCwgMjBweCkgKiAtMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi4tcHJpbWFyeSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLXByaW1hcnktYmcpO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1jb2xvcik7XHJcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1idG4tcHJpbWFyeS1ib3JkZXIpIHNvbGlkIHZhcigtLWJ0bi1wcmltYXJ5LWJvcmRlci1jb2xvcik7XHJcblxyXG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLXByaW1hcnktYmctaG92ZXIpO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1wcmltYXJ5LWNvbG9yLWhvdmVyKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLXByaW1hcnktYm9yZGVyLWNvbG9yLWhvdmVyKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuLWludmVydGVkIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1jb2xvcik7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1wcmltYXJ5LWJnKTtcclxuICAgICAgICBib3JkZXI6IHZhcigtLWJ0bi1wcmltYXJ5LWJvcmRlcikgc29saWQgdmFyKC0tYnRuLXByaW1hcnktYm9yZGVyLWNvbG9yKTtcclxuXHJcbiAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1jb2xvci1ob3Zlcik7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYnRuLXByaW1hcnktYmctaG92ZXIpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1ib3JkZXItY29sb3IpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi4tc2Vjb25kYXJ5IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tc2Vjb25kYXJ5LWJnKTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYnRuLXNlY29uZGFyeS1jb2xvcik7XHJcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1idG4tc2Vjb25kYXJ5LWJvcmRlcikgc29saWQgdmFyKC0tYnRuLXNlY29uZGFyeS1ib3JkZXItY29sb3IpO1xyXG5cclxuICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1zZWNvbmRhcnktYmctaG92ZXIpO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1zZWNvbmRhcnktY29sb3ItaG92ZXIpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tc2Vjb25kYXJ5LWJvcmRlci1jb2xvci1ob3ZlcilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLi1saW5rIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYnRuLWxpbmstY29sb3IpO1xyXG5cclxuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAuYy1idG5fX3R4dCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jLWJ0bl9faWNvIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAzNXB4O1xyXG4gICAgICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWxpbmstaWNvbi1jb2xvciwgY3VycmVudENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdmcsIGltZyB7XHJcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1saW5rLWNvbG9yLWhvdmVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XHJcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmljb24tbGVmdCB7XHJcbiAgICAgICAgICAgIC5jLWJ0bl9faWNvIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLmljb24tcmlnaHQge1xyXG4gICAgICAgICAgICAuYy1idG5fX2ljbyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiBCdXR0b24gU2l6ZSBWYXJpYW50cyAqL1xyXG5cclxuICAgICYuLXNtYWxsIHtcclxuICAgICAgICAtLWJ0bi1wYWRkaW5nLWxlZnQtcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgLS1idG4tcGFkZGluZy10b3AtYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIC5jLWJ0bl9fdHh0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAuOGVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi4tbGFyZ2Uge1xyXG4gICAgICAgIC5jLWJ0bl9fdHh0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5pcy1vYmxpcXVlIHtcclxuICAgICAgICAtLXNrZXctYW5nbGU6IDIwZGVnO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2tldyhjYWxjKHZhcigtLXNrZXctYW5nbGUpICogLTEpKTtcclxuICAgICAgICAuYy1idG5fX3R4dCxcclxuICAgICAgICAuYy1idG5fX2ljbyAuaWNvbiB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tldyh2YXIoLS1za2V3LWFuZ2xlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qIEJ1dHRvbiBJY29uICovXHJcblxyXG4gICAgJl9faWNvIHtcclxuICAgICAgICBtaW4td2lkdGg6IDIwcHg7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA4MHB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzLCBmaWx0ZXIgLjNzLCBvcGFjaXR5IC4zcztcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICBzdmcsIGltZyB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgbWF4LWhlaWdodDogMS41ZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICBmaWxsOiB2YXIoLS1idG4taWNvLWNvbG9yKTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1pY28tY29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcywgZmlsdGVyIC4zcywgb3BhY2l0eSAuM3M7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5pY29uLWxlZnQge1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbi1yZXZlcnNlZCB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xyXG4gICAgfVxyXG5cclxuICAgIC5jLWJ0bi1iYXIgJiB7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgLmMtYnRuX19pY28ge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XHJcblxyXG4gICAgICAgICAgICAgICAgJi5pY29uLXJldmVyc2VkIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTVweCkgc2NhbGVYKC0xKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qIENGNyBTdWJtaXQgQnV0dG9uICovXHJcblxyXG4ud3BjZjctc3VibWl0LFxyXG4uZ2Zvcm1fYnV0dG9uIHtcclxuICAgIEBleHRlbmQgLmMtYnRuLCAuLXByaW1hcnk7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWJ0bi1mb250LXNpemUsIDEuOHJlbSk7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tYnRuLWZvbnQtZmFtaWx5KTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1idG4tdGV4dC10cmFuc2Zvcm0sIG5vbmUpO1xyXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWJ1dHRvbi1mb250LXdlaWdodCwgNDAwKTtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLWJ0bi1ib3gtc2hhZG93LCBub25lKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ0bi1ib3JkZXItcmFkaXVzLCAwKTtcclxuICAgIHBhZGRpbmc6IHZhcigtLWJ0bi1wYWRkaW5nLXRvcC1ib3R0b20pIHZhcigtLWJ0bi1wYWRkaW5nLWxlZnQtcmlnaHQpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcztcclxuXHJcbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCAycHggcmdiYSgwLCA3LCA2MywgMC4yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIvKipcclxuICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICMgICBJbWFnZSBDb21wb25lbnRcclxuICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICovXHJcblxyXG5AaW1wb3J0IFwiaW1hZ2UvYy1pbWFnZV9fY29yZVwiO1xyXG4iLCIvKipcclxuICogIy4jIENvbXBvbmVudCBJTUFHRVxyXG4gKlxyXG4gKi9cclxuXHJcbi5jLWltYWdlIHtcclxuXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgICYuci0xeDEsXHJcbiAgICAgICAgJi5yLXNxdWFyZSxcclxuICAgICAgICAmLnItNHgzLFxyXG4gICAgICAgICYuci0zeDQsXHJcbiAgICAgICAgJi5yLTE2eDkge1xyXG4gICAgICAgICAgICAuYy1pbWFnZV9fcHJpbWFyeSxcclxuICAgICAgICAgICAgLmMtdmlkZW9fX21lZGlhIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLnItc3F1YXJlLFxyXG4gICAgICAgICYuci0xeDEge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oMSwgMSk7IC8vIFNxdWFyZSBJbWFnZVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLnItNHgzIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvKDQsIDMpOyAvLyBIb3Jpem9udGFsIHJlY3RhbmdsZVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLnItM3g0IHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvKDMsIDQpOyAvLyBWZXJ0aWNhbCByZWN0YW5nbGVcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5yLTE2eDkge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oMTYsIDkpOyAvLyBWZXJ0aWNhbCByZWN0YW5nbGVcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWVkaWEgQmxvY2sgUmF0aW9cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcclxuICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oMSwgMSk7XHJcbiAgICAgICAgLmMtaW1hZ2VfX3NyYyxzdmcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5tYWluLWMtY3JvcHBlZHtcclxuICAgICAgICAuYy1pbWFnZXtcclxuICAgICAgICAgICAgJl9fc3JjLFxyXG4gICAgICAgICAgICBzdmd7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1haW4tYy1ub3QtY3JvcHBlZHtcclxuICAgICAgICAuYy1pbWFnZXtcclxuICAgICAgICAgICAgJl9fc3JjLFxyXG4gICAgICAgICAgICBzdmd7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fc3JjLFxyXG4gICAgc3ZnIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcclxuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICAmX19zZWNvbmRhcnkge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwgb3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xyXG4gICAgICAgIHotaW5kZXg6IDI7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAuYy1pbWFnZV9fc3JjLFxyXG4gICAgICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTEwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZyb250LWgtbGVmdCAmIHtcclxuICAgICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1mcm9udC1zcmMtc2hpZnQpICogLTEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZnJvbnQtaC1yaWdodCAmIHtcclxuICAgICAgICAgICAgcmlnaHQ6IGNhbGModmFyKC0tZnJvbnQtc3JjLXNoaWZ0KSAqIC0xKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmZyb250LWgtY2VudGVyICYge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZnJvbnQtdi10b3AgJiB7XHJcbiAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1mcm9udC1zcmMtc2hpZnQpICogLTEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZnJvbnQtdi1jZW50ZXIgJiB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5mcm9udC12LWNlbnRlci5mcm9udC1oLWNlbnRlciAmIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAuYy1pbWFnZV9fc3JjLFxyXG4gICAgICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5mcm9udC12LWJvdHRvbSAmIHtcclxuICAgICAgICAgICAgYm90dG9tOiBjYWxjKHZhcigtLWZyb250LXNyYy1zaGlmdCkgKiAtMSk7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jLWltYWdlLFxyXG4uYy12aWRlbyB7XHJcbiAgICAmX19wcmltYXJ5IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XHJcblxyXG4gICAgICAgIC5yLXNxdWFyZSAmLFxyXG4gICAgICAgIC5yLTF4MSAmLFxyXG4gICAgICAgIC5yLTR4MyAmLFxyXG4gICAgICAgIC5yLTN4NCAmLFxyXG4gICAgICAgIC5yLTE2eDkgJiB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmMtaW1hZ2VfX3NyYyB7XHJcbiAgICAgICAgICAgIC5tYWluLWgtZnVsbCAmLHN2ZyB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1haW4taC1sZWZ0ICYge1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5tYWluLWgtY2VudGVyICYge1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLm1haW4taC1yaWdodCAmIHtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLm1haW4tdi10b3AgJiB7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIH1cclxuICAgICAgICAubWFpbi12LWNlbnRlciAmIHtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLm1haW4tdi1ib3R0b20gJiB7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5oYXMtb3ZlcmxheSAubS1iYW5uZXJfX21lZGlhLFxyXG4ubC10ZXN0aW1vbmlhbHMtdjEgLm0tc2xpZGVfX21lZGlhIHtcclxuICAgIEBpbmNsdWRlIGhhcy1vdmVybGF5KHZhcigtLW92ZXJsYXlPcGFjaXR5KSlcclxufVxyXG4iLCIvKipcclxuICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICMgICBDb250ZW50IEJsb2NrIENvbXBvbmVudFxyXG4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4gKi9cclxuXHJcbkBpbXBvcnQgXCJjLWJsb2NrL2MtYmxvY2stY29yZVwiOyIsIi5jLWJsb2NrIHtcclxuXHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jLWJsb2NrLXJhZGl1cyk7XHJcblxyXG4gICAgJl9fdGl0bGUge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLWMtYmxvY2stdGl0bGUtc2l6ZSk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWMtYmxvY2stdGl0bGUtd2VpZ2h0KTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tYy1ibG9jay10aXRsZS10cmFuc2Zvcm0pO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJsb2NrLXRpdGxlLWNvbG9yKTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1oNC1tYXJnaW4tYm90dG9tLCAuNWVtKTtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1idG4tbGluay1jb2xvci1ob3Zlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5oYXMtYmFja2dyb3VuZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ibG9jay1iZywgI2ZmZik7XHJcbiAgICB9XHJcblxyXG4gICAgJi5oYXMtc2hhZG93IHtcclxuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1jLWJsb2NrLXNoYWRvdyk7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fcHJldGl0bGUge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41ZW07XHJcbiAgICB9XHJcblxyXG4gICAgJl9fZGVzY3JpcHRpb24ge1xyXG5cclxuICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fbWVkaWEge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2ljb24ge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxuXHJcbiAgICAmX19idG4ge1xyXG4gICAgICAgIC5jLWJsb2NrICYge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC40cyBlYXNlLW91dCwgYmFja2dyb3VuZC1jb2xvciAuNHM7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIi8qIEhlYWRlciAqL1xyXG5cclxuLnNpdGUtaGVhZGVyIHtcclxuICAtLW5hdmJhci1nYXBfdjogMzBweDtcclxuICAtLW5hdmJhci1nYXBfaDogMXZ3O1xyXG4gIC0tbmF2YmFyLWxpbmstaGVpZ2h0OiAzMHB4O1xyXG4gIC0taGVhZGVyLWxpbmstY29sb3I6IHZhcigtLW1haW4taGVhZGVyLWNvbG9yKTtcclxuICAtLWhlYWRlci1saW5rLWNvbG9yLWhvdmVyOiAjRjY4NzY1O1xyXG5cclxuICAtLWhlYWRlci1sb2dvLXdpZHRoOiAxMDAlO1xyXG4gIC0taGVhZGVyLWxvZ28taGVpZ2h0OiA3LjRyZW07XHJcblxyXG4gIC0tZHJvcGRvd24tYmc6ICNmZmY7XHJcbiAgLS1kcm9wZG93bi1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gIC0tZHJvcGRvd24tY29sb3ItYWN0aXZlOiB2YXIoLS1wcmltYXJ5LWNvbG9yMik7XHJcbiAgLS1kcm9wZG93bi1mb250LXNpemU6IDE2cHg7XHJcbiAgLS1kcm9wZG93bi1mb250LXdlaWdodDogNjAwO1xyXG4gIC0tZHJvcGRvd24tcGFkZGluZzogMThweCAwIDA7XHJcbiAgLS1kcm9wZG93bi13aWR0aDogMjAwcHg7XHJcblxyXG4gIC0tbWFpbi1oZWFkZXItZm9udC1zaXplOiAxLjdyZW07XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcC14bCcpIHtcclxuICAgIC0tbmF2YmFyLWdhcF9oOiA0LjM1dnc7XHJcbiAgICAtLWhlYWRlci1sb2dvLWhlaWdodDogOS40cmVtO1xyXG4gIH1cclxuXHJcbiAgJjpub3QoLmlzLXN0aWNreSkge1xyXG4gICAgLS1tYWluLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxOTI1NTkgMCwgcmdiYSgxOSwgMzAsIDc1LCAwKSAxMDAlKTtcclxuICB9XHJcbiAgJl9fdG9we1xyXG4gICAgLnNpdGUtaGVhZGVye1xyXG4gICAgICAmX19yb3d7XHJcbiAgICAgICAgcGFkZGluZy1ibG9jazogMXJlbTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaGVhZGVyLXRvcC1jbG9zZSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIHJpZ2h0OiB2YXIoLS1wYWdlLWd1dHRlcik7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgd2lkdGg6IDE2cHg7XHJcbiAgICAgIGhlaWdodDogMTZweDtcclxuICAgICAgLy9vcGFjaXR5OiAwLjU7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS10b3AtaGVhZGVyLWNvbG9yKTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgc3Zne1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgb3BhY2l0eTogMC4zO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRvcC1oZWFkZXItY2xvc2VkICYge1xyXG4gICAgICBtYXgtaGVpZ2h0OiAwO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fbWFpbiB7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgJl9fcm93IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXBhZ2UtZ3V0dGVyLCAyMHB4KTtcclxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcGFnZS1ndXR0ZXIsIDIwcHgpO1xyXG4gICAgbWF4LXdpZHRoOiAxMDB2dztcclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgcGFkZGluZy1yaWdodDogN3JlbTtcclxuICAgICAgcGFkZGluZy1sZWZ0OiA3cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1lbnUtaXRlbSB7XHJcbiAgICAmLmN1cnJlbnQtbWVudS1pdGVtLFxyXG4gICAgJi5jdXJyZW50LW1lbnUtcGFyZW50IHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICB6LWluZGV4OiAwO1xyXG4gICAgICAgICAgdG9wOiBjYWxjKCh2YXIoLS1oZWFkZXItbG9nby1oZWlnaHQpICsgMC41cmVtKSAvIC0yKTtcclxuICAgICAgICAgIHJpZ2h0OiB2YXIoLS10b2dnbGUtYnRuLXdpZHRoKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcclxuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS10b2dnbGUtYnRuLXdpZHRoKSAqIDIpO1xyXG4gICAgICAgICAgaGVpZ2h0OiA3cHg7XHJcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG9yMik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpmaXJzdC1vZi10eXBlIHtcclxuICAgICAgJi5jdXJyZW50LW1lbnUtcGFyZW50IHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS10b2dnbGUtYnRuLXdpZHRoKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubGlua3MtbGlzdCB7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wLXhsJykge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMXZ3O1xyXG4gICAgfVxyXG4gICAgJl9faXRlbXtcclxuICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICB9XHJcbiAgICAmX19idG4ge1xyXG4gICAgICAuYy1idG4ge1xyXG4gICAgICAgICZfX3R4dCB7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIHdpZHRoOiAycmVtO1xyXG4gICAgICBoZWlnaHQ6IDJyZW07XHJcbiAgICAgIG1hcmdpbi1pbmxpbmU6MXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2NvbCB7XHJcbiAgICAmLi1yaWdodCB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICBnYXA6IDMuNnJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5hdmJhci1tb2JpbGUge1xyXG4gIC0tYnVyZ2VyLXdpZHRoOiAyMnB4O1xyXG4gIC0tYnVyZ2VyLXNlZ21lbnQtaGlnaHQ6IDNweDtcclxuICAtLWJ1cmdlci1zZWdtZW50LWdhcDogN3B4O1xyXG4gIC0tYnVyZ2VyLXNlZ21lbnQtcmFkaXVzOiAwO1xyXG4gIC0tYnVyZ2VyLWNvbG9yOiAjZmZmO1xyXG4gIC0tYnVyZ2VyLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xyXG5cclxuICAtLWhlYWRlci1tb2JpbGUtYmc6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuXHJcbiAgLS1saW5rLXNpemUtbDE6IDIwcHg7XHJcbiAgLS1saW5rLXNpemUtbDI6IDE2cHg7XHJcbiAgLS1saW5rLWNvbG9yOiAjZmZmO1xyXG4gIC0tbGluay1nYXA6IDE1cHg7XHJcbn1cclxuXHJcbi5zaXRlLXNlYXJjaCB7XHJcbiAgLS1zZWFyY2gtc2l6ZTogMzBweDtcclxuICAtLXNlYXJjaC1idG4tYmc6IHRyYW5zcGFyZW50O1xyXG4gIC0tc2VhcmNoLWJ0bi1yYWRpdXM6IDRweDtcclxuICAtLXNlYXJjaC1oZWlnaHQ6IDMwcHg7XHJcbiAgLS1zZWFyY2gtd2lkdGg6IDI1MHB4O1xyXG4gIC0tc2VhcmNoLXJhZGl1czogNHB4O1xyXG4gIC0tc2VhcmNoLW91dGVyLWJnOiB2YXIoLS1wcmltYXJ5LWNvbG9yMyk7XHJcbiAgLS1zZWFyY2gtb3V0ZXItZ2FwOiA1cHg7XHJcbiAgLS1zZWFyY2gtb3V0ZXItYm9yZGVyOiAjMzMzO1xyXG59XHJcblxyXG4uc2l0ZS1oZWFkZXIge1xyXG4gIC5zaXRlLWhlYWRlciB7XHJcbiAgICAmX19sb2dvIHtcclxuICAgICAgaW1nLCBzdmcge1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYgPiBhOm5vdCguYy1idG4pOm5vdCgud3BjZjctc3VibWl0KTpub3QoLmdmb3JtX2J1dHRvbiksXHJcbiAgJiA+IC5wbGFpbi1tZW51LWl0ZW0ge1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1oZWFkZXItbGluay1jb2xvci1ob3ZlciwgdmFyKC0tcHJpbWFyeS1jb2xvcjIpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5uYXYtbWFpbiB7XHJcbiAgJl9fbGlua3Mge1xyXG4gICAgLm1lbnUtaXRlbSB7XHJcbiAgICAgIGEsXHJcbiAgICAgIC5wbGFpbi1tZW51LWl0ZW0ge1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5ob3Jpem9udGFsbHktc3ViLW1lbnUge1xyXG4gICAgICAgIC5zdWItbWVudSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAwKTtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcclxuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgbGVmdDogMTIuM3JlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwcHgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAubWVudS1pdGVtIHtcclxuICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxMDMsIDE1NywgMjIxLCAwLjE4KTtcclxuICAgICAgICAgICAgICB3aWR0aDogMTYxcHg7XHJcblxyXG4gICAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICAgJi5jdXJyZW50LW1lbnUtaXRlbSB7XHJcbiAgICAgICAgICAgICAgICAubWVudS1pdGVtLWltZy13cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgICAgc3ZnIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXRoIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgdG9wOiB1bnNldDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogMTdweDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDEwMywgMTU3LCAyMjEsIDAuMTgpO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgJiA+IGE6bm90KC5jLWJ0biksXHJcbiAgICAgICAgICAgICAgJiA+IC5wbGFpbi1tZW51LWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMzBweCAzMHB4IDM3cHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE3O1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgLm1lbnUtaXRlbS1jb250ZW50IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDE0cHg7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAubWVudS1pdGVtLWltZy13cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogNThweDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJiA+IC5tZW51LWl0ZW0ge1xyXG4gICAgICAmID4gYSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJykge1xyXG4gICAgICAgICAgcGFkZGluZzogMC41cmVtIHZhcigtLXRvZ2dsZS1idG4td2lkdGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcclxuICAgICAgICA+IGEsXHJcbiAgICAgICAgPiAucGxhaW4tbWVudS1pdGVtIHtcclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIikge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAuc3ViLW1lbnUge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgICBsZWZ0OiB1bnNldDtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMTBweCA4cHggMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICB0b3A6IDhweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjRjRGNkZGLCB2YXIoLS1zZWNvbmRhcnktY29sb3IzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5tZW51LWl0ZW0ge1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogI0Y0RjZGRjtcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XHJcblxyXG4gICAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAgICYuY3VycmVudC1tZW51LWl0ZW0ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuXHJcbiAgICAgICAgICAgICYgPiBhOm5vdCguYy1idG4pLFxyXG4gICAgICAgICAgICAmID4gLnBsYWluLW1lbnUtaXRlbSB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlLFxyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYTpmb2N1cy12aXNpYmxlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAgICAgLm1lbnUtaXRlbS1jb250ZW50IHtcclxuICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3ZnLFxyXG4gICAgICAgICAgICBwYXRoIHtcclxuICAgICAgICAgICAgICBmaWxsOiAjZmZmZmZmO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDEwMywgMTU3LCAyMjEsIDAuMTgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6YmVmb3JlLFxyXG4gICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICB0b3A6IC0xcHg7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDFweCk7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCgxMTkuMTclIDMwNC40NyUgYXQgNjcuNzglIC02MS42NyUsIHZhcigtLXByaW1hcnktY29sb3IzKSAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDA7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgcmlnaHQ6IDhweDtcclxuICAgICAgICAgICAgbGVmdDogdW5zZXQ7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHZpZXdCb3g9JzAgMCAxNCAxNCcgZmlsbD0nbm9uZSclM0UlM0NjaXJjbGUgY3g9JzcnIGN5PSc3JyByPSc3JyBmaWxsPSd1cmwoJTIzcGFpbnQwX3JhZGlhbF8xMzUxXzYyNDcpJy8lM0UlM0NwYXRoIGQ9J001IDdIOScgc3Ryb2tlPSd3aGl0ZScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJy8lM0UlM0NwYXRoIGQ9J003IDVMOSA3TDcgOScgc3Ryb2tlPSd3aGl0ZScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJy8lM0UlM0NkZWZzJTNFJTNDcmFkaWFsR3JhZGllbnQgaWQ9J3BhaW50MF9yYWRpYWxfMTM1MV82MjQ3JyBjeD0nMCcgY3k9JzAnIHI9JzEnIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJyBncmFkaWVudFRyYW5zZm9ybT0ndHJhbnNsYXRlKDkuNDg5NjkgLTguNjMzMzMpIHJvdGF0ZSgxMDMuNzM0KSBzY2FsZSgxNy4xNzQzIDI2LjMyNjEpJyUzRSUzQ3N0b3Agc3RvcC1jb2xvcj0nJTIzRTFBRDU5Jy8lM0UlM0NzdG9wIG9mZnNldD0nMC40MjcwODMnIHN0b3AtY29sb3I9JyUyM0YzNjQzNycvJTNFJTNDL3JhZGlhbEdyYWRpZW50JTNFJTNDL2RlZnMlM0UlM0Mvc3ZnJTNFXCIpO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYgPiBhOm5vdCguYy1idG4pLFxyXG4gICAgICAgICAgJiA+IC5wbGFpbi1tZW51LWl0ZW0ge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDlweCAzMHB4IDlweCAxNXB4O1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyogTW9iaWxlIG5hdmlnYXRpb24gKi9cclxuLnNpdGUtaGVhZGVyIHtcclxuICAmOm5vdCguaXMtc3RpY2t5KSB7XHJcbiAgICAubmF2YmFyLW1vYmlsZSB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IHZhcigtLW5hdmJhci1oaWdodCk7XHJcbiAgICAgICAgcGFkZGluZzogMjlweCAyMHB4IDI2cHg7XHJcbiAgICAgICAgLS1uYXZiYXItaGlnaHQ6IHZhcigtLW5hdmJhci1oaWdodC1ub3Qtc3RpY2t5KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XHJcbiAgICAgIH1cclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzE5MjU1OSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcclxuICAgIH1cclxuXHJcbiAgICAuc2l0ZS1oZWFkZXIge1xyXG4gICAgICAmX19sb2dvIHtcclxuICAgICAgICBpbWcsIHN2ZyB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA2NXB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDY1cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmlzLXN0aWNreSB7XHJcbiAgICAubmF2YmFyLW1vYmlsZSB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzE5MjU1OSAwJSwgdmFyKC0tcHJpbWFyeS1jb2xvcjEpIDEwMCUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubmF2YmFyLW1vYmlsZSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIC5saW5rcy1saXN0IHtcclxuICAgICAgICAmX19pdGVtIHtcclxuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTAzLCAxNTcsIDIyMSwgMC4zOSkgMCUsIHJnYmEoMTAzLCAxNTcsIDIyMSwgMCkgMTAwJSk7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgICAgICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XHJcblxyXG4gICAgICAgICAgc3BhbiwgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYgPiBzcGFuIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiBjYWxjKDEuOHJlbSAqIDEuMjUpO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygzLjJyZW0gKiAxLjI1KTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcblxyXG4gICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC5zb2NpYWwtbGlzdCB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDEzcHg7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xyXG4gICAgICAgIHdpZHRoOiAzMHJlbTtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICZfX2xpbmsge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgICAgICAtLXNvY2lhbC1pY29uLWNvbG9yOiB2YXIoLS1oZWFkZXItbW9iaWxlLWJnKTtcclxuXHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC5uYXYtc2Vjb25kYXJ5IHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcclxuXHJcbiAgICAgICAgJl9fbGlua3Mge1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgIGdhcDogMjBweDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygxLjRyZW0gKiAxLjI1KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLmMtYnRuLWJhciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgICAgIC5jLWJ0biB7XHJcbiAgICAgICAgICAmX190eHQge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogY2FsYygxLjVyZW0gKiAxLjI1KTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMS41cmVtICogMS4yNSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYnVyZ2VyLWljb24ge1xyXG4gICAgd2lkdGg6IDMwcHg7XHJcbiAgICBoZWlnaHQ6IDIzcHg7XHJcbiAgfVxyXG5cclxuICAubmF2LW1haW4ge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuICAgICAgJl9fYnRuIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICAgIH1cclxuICAgICAgJl9fbGlua3Mge1xyXG4gICAgICAgICYgPiAubWVudS1pdGVtIHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgcmdiYSgyNDQsIDI0NiwgMjU1LCAwLjMyKTtcclxuXHJcbiAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLnN1Yi1tZW51IHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjVweDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTAzLCAxNTcsIDIyMSwgMC4zOSkgMCUsIHJnYmEoMTAzLCAxNTcsIDIyMSwgMCkgMTAwJSk7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICAgIG1hcmdpbjogNXB4IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5uYXYtYWN0aXZlIHtcclxuICAuc2l0ZS1oZWFkZXIge1xyXG4gICAgJjpub3QoLmlzLXN0aWNreSkge1xyXG4gICAgICAubmF2YmFyLW1vYmlsZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTI1NTk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTkyNTU5IDAlLCB2YXIoLS1wcmltYXJ5LWNvbG9yMSkgMTAwJSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdmJhci1tb2JpbGUge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS1uYXZiYXItaGlnaHQpO1xyXG4gICAgICAgIHBhZGRpbmc6IDQ5cHggMjBweCAyNnB4O1xyXG4gICAgICAgIC0tbmF2YmFyLWhpZ2h0OiAxMzlweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyNTU5O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmX19pbm5lciB7XHJcbiAgICAgICAgbWF4LWhlaWdodDogOTV2aDtcclxuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1uYXZiYXItaGlnaHQpKTtcclxuICAgICAgICBwYWRkaW5nOiAxNXB4IDE1cHggMTUwcHggMTVweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaXRlLWhlYWRlciB7XHJcbiAgICAgICZfX2xvZ28ge1xyXG4gICAgICAgIGltZywgc3ZnIHtcclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDY1cHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogNjVweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5ib2R5Om5vdCgubmF2LWFjdGl2ZSkge1xyXG4gIC5idXJnZXItaWNvbiB7XHJcbiAgICB3aWR0aDogdmFyKC0tYnVyZ2VyLXdpZHRoKTtcclxuXHJcbiAgICAmID4gZGl2IHtcclxuICAgICAgJjpiZWZvcmUsXHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA4cHgpO1xyXG4gICAgICAgIGxlZnQ6IHVuc2V0O1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuYm9keSB7XHJcbiAgJi5uYXYtYWN0aXZlIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcbn1cclxuXHJcbi8qRW5kIG1vYmlsZSBuYXZpZ2F0aW9uKi9cclxuIiwiLm0tYmFubmVyIHtcclxuXHJcbiAgJl9fY29udGFpbmVyIHtcclxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1uYXZiYXItaGlnaHQpO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAtLW5hdmJhci1oaWdodDogMTM5cHg7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZS1sJykge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jLWJhbm5lciB7XHJcbiAgICAmX19kZXNjcmlwdGlvbiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xyXG4gICAgICB3aWR0aDogNTEuOHJlbTtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKXtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgIH1cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgICAgICBmb250LXNpemU6IGNhbGMoMS44cmVtICogMS4yNSk7XHJcbiAgICAgICAgd2lkdGg6IDI5M3B4O1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19jb250ZW50e1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKXtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLm0tYmFubmVyIHtcclxuICAmLi12ZXJzaW9uLTEge1xyXG4gICAgLmxvYy1zZWFyY2gtZm9ybSB7XHJcbiAgICAgIHdpZHRoOiA2OHJlbTtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5tLWJhbm5lciB7XHJcbiAgICAgICZfX2NvbnRhaW5lciB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgaGVpZ2h0OiAyMiU7XHJcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCB2YXIoLS1wcmltYXJ5LWNvbG9yMSkgMCUsIHJnYmEoMTksIDMwLCA3NSwgMCkgMTAwJSk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTAwZGVnLCB2YXIoLS1wcmltYXJ5LWNvbG9yMS1kYXJrKSA3LjE5JSwgcmdiYSgxMSwgMjIsIDY3LCAwKSA4Ni4wOCUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuaGFzLW92ZXJsYXkge1xyXG4gICAgICAubS1iYW5uZXIge1xyXG4gICAgICAgICZfX21lZGlhIHtcclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuaGFzLXNlYXJjaC1mb3JtIHtcclxuICAgICAgLm0tYmFubmVyIHtcclxuICAgICAgICAmX19jb250YWluZXIge1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAubC1iYW5uZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lLWwnKSB7XHJcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5sb2Mtc2VhcmNoLWZvcm0ge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lLWwnKSB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzMnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDExOS4xNyUgMzA0LjQ3JSBhdCA2Ny43OCUgLTYxLjY3JSwgdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMikgMCUsIHZhcigtLXByaW1hcnktY29sb3IyKSA0Mi43MSUpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jLWJhbm5lciB7XHJcbiAgICAgICZfX2NvbnRlbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lLWwnKSB7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYy1oZWFkaW5nIHtcclxuICAgICAgICAgICZfX3RpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMC4wcmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMC45MTtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAzZW07XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lLWwnKSB7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiBjYWxjKDZyZW0gKiAxLjI1KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICZfX3ByZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1tYWluLXRpdGxlLWNvbG9yLWFsdCk7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjRlbTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmX19kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgd2lkdGg6IDQ2cmVtO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lLWwnKSB7XHJcbiAgICAgICAgICB3aWR0aDogMzA3cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC5jLXZpZGVvIHtcclxuICAgICAgJl9fY29udHJvbHMge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIi5tLWJhbm5lciB7XHJcbiAgJi4tdmVyc2lvbi0yIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWJhbm5lci1ib3R0b20tc2hpZnQpO1xyXG4gICAgLS1iYW5uZXItYm90dG9tLXNoaWZ0OiAyMi41cmVtO1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgIC0tYmFubmVyLWJvdHRvbS1zaGlmdDogMTIuNXJlbTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgJi5vcmRlci1yZXZlcnNlIHtcclxuICAgICAgLmwtYmFubmVyIHtcclxuICAgICAgICAmX190ZXh0IHtcclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogIHZhcigtLXNoaWZ0KTtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmX19tZWRpYSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcclxuICAgICAgICAgICAgcmlnaHQ6IHVuc2V0O1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm0tYmFubmVyIHtcclxuXHJcbiAgICAgICZfX2lubmVyIHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgKyB2YXIoLS1wYWdlLWd1dHRlciwgMjBweCkgKiAyKTtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmX19jb250YWluZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnLCAnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgLS1jb2x1bW5zLXJhdGlvOiA1NSUgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICBib3R0b206IC0xcHg7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDhweDtcclxuICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1wcmltYXJ5LWNvbG9yMiksIHZhcigtLXNlY29uZGFyeS1jb2xvcjIpIDMwJSwgIzRDNjZBMCAzMCUsIHZhcigtLXByaW1hcnktY29sb3IzKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgaGVpZ2h0OiAyNy4ycmVtO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xyXG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxMDMsIDE1NywgMjIxLCAwLjYpIDAlLCByZ2JhKDI0NCwgMjQ2LCAyNTUsIDApIDEwMCUpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZS1sJykge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMzcuN3JlbSAqIDEuMjUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJl9fbWVkaWEge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJl9fcGljdHVyZSB7XHJcbiAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5sLWJhbm5lciB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgICAgICBnYXA6IGNhbGMoNC41cmVtICogMS4yNSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICZfX3RleHQge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAgIC0tc2hpZnQ6IGNhbGMoNTB2dyAtIHZhcigtLWNvbnRlbnQtd2lkdGgpIC8gMik7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNoaWZ0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbHVtbnMtcmF0aW8pO1xyXG4gICAgICAgICAgZmxleDogMCAwIHZhcigtLWNvbHVtbnMtcmF0aW8pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICZfX21lZGlhIHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDNyZW07XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1jb2x1bW5zLXJhdGlvKSk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTUlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcC14bCcpIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMCUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWJhbm5lci1ib3R0b20tc2hpZnQpICogLTEuMjUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lLWwnLCAnPD10YWJsZXQnKSB7XHJcbiAgICAgICAgICB3aWR0aDogODAlO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYy1pbWFnZSB7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4IDIxNXB4O1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweCAxMTBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbyg5ODIsIDYxOSk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oMzc0LCAzNjMpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAwO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDRyZW0pO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRyZW0pO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDU1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmX19tZWRpYSxcclxuICAgICAgICAgICZfX3NyYyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJl9fbWVkaWEge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmX19zcmMge1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHggMjAwcHg7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4IDEwMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmMtYmFubmVyIHtcclxuICAgICAgJl9fZGVzY3JpcHRpb24ge1xyXG4gICAgICAgIHdpZHRoOiA0MC41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiLm0tYmFubmVyIHtcclxuICAmLi12ZXJzaW9uLTMge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgICAuYy1iYW5uZXIge1xyXG4gICAgICAmX19kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJykge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAubS1iYW5uZXJ7XHJcbiAgICAgICZfX2NvbnRhaW5lcntcclxuICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5sLWJhbm5lciB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICBnYXA6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICZfX21lZGlhIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiLm0tYmFubmVyIHtcclxuICAmLi12ZXJzaW9uLTR7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgLm0tYmFubmVye1xyXG4gICAgICAmX19jb250YWluZXJ7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnLCAnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgLS1jb2x1bW5zLXJhdGlvOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jLWJhbm5lcntcclxuICAgICAgJl9fZGVzY3JpcHRpb257XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIubS1iYW5uZXIge1xuICAmLi12ZXJzaW9uLTUge1xuXG4gICAgLm0tYmFubmVyIHtcbiAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDhyZW07XG4gICAgICAgICAgLS1jb2x1bW5zLXJhdGlvOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucGhvbmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygycmVtICogMS4yNSk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xuICAgICAgICAgICAgZmlsbDogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jLWJhbm5lciB7XG4gICAgICAmX19jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICB1bDpub3QoLmJsb2Nrcy1nYWxsZXJ5LWdyaWQpIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC41cmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmxvYy1zZWFyY2gtZm9ybSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gIGJveC1zaGFkb3c6IDAgNHB4IDc0cHggcmdiYSgxNSwgNDQsIDc4LCAwLjQxKTtcclxuICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nOiA0LjNyZW0gMy4zcmVtIDIuM3JlbSAyLjhyZW07XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lLWwnKSB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgcGFkZGluZzogNC41cmVtIDIuNXJlbSAyLjVyZW0gMi41cmVtO1xyXG4gIH1cclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICAgIHRvcDogLTZweDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IzKTtcclxuICB9XHJcblxyXG4gICYudmFsaWRhdGlvbi1lcnJvciB7XHJcbiAgICAuZXJyb3Ige1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gICAgICB9XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpe1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBib3R0b206IDNweDtcclxuICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwxMDAlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtZmllbGRzLXdyYXBwZXIge1xyXG4gICAgICBpbnB1dDpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1pbWFnZV0pOm5vdChbdHlwZT1maWxlXSkge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdmFsaWRhdGlvbi1lcnJvci1jb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5sb2Mtc2VhcmNoLWZvcm1fbGFiZWwge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMjBweDtcclxuICAgIGxlZnQ6IDM5cHg7XHJcbiAgICBmb250LXNpemU6IDEuNnJlbTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wLWwnKSB7XHJcbiAgICAgIGxlZnQ6IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLmZpbHRlci1sb2FkZXIge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XHJcbiAgICB6LWluZGV4OiAxMDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMzVzIGVhc2UtaW4tb3V0O1xyXG5cclxuICAgICYuaGlkZSB7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kLW5vbmUge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNwaW5uZXIge1xyXG4gICAgd2lkdGg6IDQwcHg7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG4gIC5kb3VibGUtYm91bmNlMSwgLmRvdWJsZS1ib3VuY2UyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgb3BhY2l0eTogMC42O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzay1ib3VuY2UgMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XHJcbiAgICBhbmltYXRpb246IHNrLWJvdW5jZSAycyBpbmZpbml0ZSBlYXNlLWluLW91dDtcclxuICB9XHJcblxyXG4gIC5kb3VibGUtYm91bmNlMiB7XHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTFzO1xyXG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMXM7XHJcbiAgfVxyXG5cclxuICBALXdlYmtpdC1rZXlmcmFtZXMgc2stYm91bmNlIHtcclxuICAgIDAlLCAxMDAlIHtcclxuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xyXG4gICAgfVxyXG4gICAgNTAlIHtcclxuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAa2V5ZnJhbWVzIHNrLWJvdW5jZSB7XHJcbiAgICAwJSwgMTAwJSB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XHJcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcclxuICAgIH1cclxuICAgIDUwJSB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAuc2VhcmNoLWZpZWxkcy13cmFwcGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQ6bm90KFt0eXBlPVwic3VibWl0XCJdKTpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9aW1hZ2VdKTpub3QoW3R5cGU9ZmlsZV0pIHtcclxuICAgICAgbWFyZ2luOiA1cHggMTBweDtcclxuICAgICAgcGFkZGluZzogMTBweCAyLjZyZW07XHJcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA2MHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXJrLXdoaXRlKTtcclxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAzcHggM3B4IHJnYmEoMTAzLCAxNTcsIDIyMSwgMC4xKSwgaW5zZXQgMCA3LjVweCAxNXB4IHJnYmEoMTAzLCAxNTcsIDIyMSwgMC4xKTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xyXG4gICAgICBmb250LXdlaWdodDogMzAwO1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYygxLjZyZW0gKiAxLjI1KTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJlthcmlhLWludmFsaWQ9XCJ0cnVlXCJdIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lcnJvciB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgY29sb3I6IHZhcigtLXZhbGlkYXRpb24tZXJyb3ItY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLmMtYnRuIHtcclxuICAgIG1hcmdpbjogNXB4O1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUtbCcpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICZfX3R4dCB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lLWwnKSB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iXX0= */
