/*
 * Sitewide header layout
 * Menu theming is in main-menu.scss
*/
a.logo {
  display: block;
}

body.gin--horizontal-toolbar.user-logged-in .gin-breadcrumb__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
body.gin--horizontal-toolbar.user-logged-in .header-main {
  top: var(--gin-toolbar-height);
  z-index: 20;
}

@media (min-width: 960px) {
  .page-header {
    background-color: var(--lighter-grey);
    z-index: 10;
  }
  .header-top {
    background: var(--darker-blue);
    color: var(--accent-yellow);
    font-size: 0.9em;
  }
  .header-top a {
    color: var(--accent-yellow);
    text-decoration: none;
    font-weight: 500;
  }
  .header-top a:hover, .header-top a:focus {
    text-decoration: underline;
  }
  .mobile-logo,
  .header-top .navbar-brand,
  .header-top .navbar-toggler {
    display: none;
  }
  .header-main {
    background-color: var(--white);
    box-shadow: var(--box-shadow-standard);
    width: 100%;
    z-index: 20;
  }
  .header-main > .container {
    padding: 0.5rem var(--responsive-padding);
    display: grid;
    grid-template-columns: 350px auto;
    align-items: center;
    grid-gap: 1.5rem;
  }
  .region-header {
    padding: 0.5rem var(--responsive-padding);
    margin-right: auto;
    margin-left: auto;
    width: 100%;
    max-width: var(--max-width);
    display: flex;
    justify-content: flex-end;
  }
  .navbar-brand img {
    width: 100%;
    height: auto;
  }
  .region-nav-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
}
.navbar-toggler {
  border: none;
  padding: 0;
  display: flex;
  justify-content: flex-end;
}
.navbar-toggler:hover, .navbar-toggler:focus, .navbar-toggler:focus-within {
  border: none;
  box-shadow: none;
}
.navbar-toggler svg {
  fill: var(--accent-yellow);
  height: 1.5rem;
  width: 1.5rem;
}

.navbar-close {
  display: none;
}

@media (min-width: 1200px) and (max-width: 1300px) {
  .header-main {
    grid-template-columns: 320px auto;
  }
}
@media (min-width: 960px) and (max-width: 1239.98px) {
  body {
    --header-height: 5.9rem;
  }
  .header-main .navbar {
    justify-content: flex-end;
  }
  .navbar-toggler svg {
    fill: var(--primary-blue);
  }
}
@media (max-width: 959.98px) {
  .header-top {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: center;
    justify-content: space-between;
    background: var(--darker-blue);
    color: var(--accent-yellow);
    padding: 1rem var(--responsive-padding);
    position: sticky;
  }
  .header-top a {
    color: var(--accent-yellow);
    font-weight: 600;
    text-decoration: none;
  }
  .mobile-logo {
    display: flex;
    justify-content: center;
  }
  .mobile-logo img {
    height: 2.5rem;
    width: 2.5rem;
  }
  .navbar {
    justify-content: flex-end;
    padding: 0;
  }
  .region-nav-branding {
    display: none;
  }
  .header-main .container {
    padding: 0;
  }
  .header-main .container .navbar-toggler {
    display: none;
  }
}
.language-switcher-language-url .nav-link {
  padding: 0;
}

html[lang=en] .language-switcher-language-url .nav-link.en {
  display: none;
}

html[lang=fr] .language-switcher-language-url .nav-link.fr {
  display: none;
}

.layout {
  scroll-margin-top: var(--header-height);
}

body.gin--horizontal-toolbar.user-logged-in .gin-breadcrumb__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
body.gin--horizontal-toolbar.user-logged-in .header-main {
  top: var(--gin-toolbar-height);
}

/*
 * Main content layout
*/
.page-content {
  background: var(--white);
  margin: 0 auto;
  max-width: var(--max-width);
  padding: 0 var(--responsive-padding) var(--vertical-padding);
}

.page--landing-page .page-content {
  padding-left: 0;
  padding-right: 0;
}

.page-main .region-admin {
  padding: var(--vertical-padding) var(--responsive-padding);
  margin-right: auto;
  margin-left: auto;
  width: 100%;
  max-width: var(--max-width);
}

.path-node:not(.node-form-page, .node-add-page) .page-content,
.path--term .page-content {
  max-width: 100%;
  padding: 0;
}

/**
 * Some common component CSS for layout builder
 */
.layout {
  container-type: inline-size;
  container-name: layout;
}
.layout.section-bg-color {
  padding-bottom: 2rem;
  padding-top: 2rem;
}
.layout .block {
  margin-bottom: calc(1.5 * var(--gutter-standard));
}
.layout .block--heading {
  margin-bottom: var(--gutter-standard);
}

.sidebar-top,
.sidebar-bottom,
.region-sidebar {
  container-name: sidebar;
  container-type: inline-size;
}

.layout--onecol .layout__region {
  padding: var(--vertical-padding) var(--responsive-padding);
  margin-right: auto;
  margin-left: auto;
  width: 100%;
  max-width: var(--max-width);
  padding: 0 var(--responsive-padding);
  margin: var(--vertical-padding) auto;
}

/*
 * Component CSS for main menu
*/
.navbar-expand-lg .navbar-nav .nav-link {
  --bs-navbar-nav-link-padding-x: 1rem;
  --bs-navbar-active-color: inherit;
}

.menu--main {
  --bs-navbar-nav-link-padding-x: 1.2rem;
}
.menu--main .nav-link,
.menu--main a.dropdown-item {
  color: var(--black);
  display: block;
  font-weight: 500;
  font-size: 0.9rem;
  padding: 0.45rem 1.2rem;
}
.menu--main .nav-link.active,
.menu--main a.dropdown-item.active {
  background: transparent;
}
.menu--main .nav-link:is(:hover, :focus), .menu--main .nav-link.show,
.menu--main a.dropdown-item:is(:hover, :focus),
.menu--main a.dropdown-item.show {
  background: var(--light-blue);
  color: var(--primary-blue);
  text-decoration: none;
}
.menu--main .nav-item.has-megamenu {
  display: flex;
  align-items: center;
  gap: 0.2rem;
}

.dropdown-toggle::after {
  border-top-color: var(--dark-grey);
}
.dropdown-toggle.show::after {
  transform: rotate(180deg);
}

.dropdown-menu {
  --bs-dropdown-spacer: .5rem;
  display: none;
  background-color: var(--white);
  border-color: var(--light-grey);
  border-radius: var(--border-radius-small);
  box-shadow: var(--box-shadow-standard);
  font-size: 0.9rem;
  padding: 0;
}
.dropdown-menu.show {
  display: grid;
}

@media (min-width: 960px) {
  .nav-level-0 {
    align-items: center;
  }
  .nav-level-0 > .nav-item {
    margin: 0 0.2rem;
  }
  .nav-level-0 > .nav-item > .nav-link {
    border-radius: var(--border-radius-small);
    padding: 0.25rem 0.7em;
  }
  .nav-level-0 > .nav-item > .nav-link:is(:hover, :focus), .nav-level-0 > .nav-item > .nav-link.show {
    background: var(--light-blue);
  }
}
@media (min-width: 1200px) and (max-width: 1350px) {
  .nav-level-0 > .nav-item > .nav-link {
    font-size: 0.9rem;
  }
}
@media (min-width: 1350px) {
  .nav-level-0 > .nav-item > .nav-link {
    font-size: 1rem;
    padding: 0.25rem 0.8em;
  }
}
@media (min-width: 960px) and (max-width: 1239.98px) {
  .offcanvas-backdrop {
    display: none;
  }
  .offcanvas {
    display: none;
  }
  .offcanvas.show {
    display: flex;
  }
  .navbar-expand-xl .navbar-toggler {
    display: block;
  }
  .header-main .container {
    position: relative;
  }
  .header-main .navbar {
    position: static;
  }
  .offcanvas.offcanvas-end {
    --bs-offcanvas-width: 100vw;
    background: white !important;
    border-top: 1px solid var(--grey) !important;
    box-shadow: var(--box-shadow-standard);
    width: 100vw;
    position: absolute;
    top: 3.5rem;
    right: 0;
    left: 0;
    bottom: auto;
    transition: none;
    margin-right: calc(-1 * var(--responsive-padding));
    padding: 0.5rem;
  }
  .navbar-nav {
    flex-direction: row;
  }
  .navbar-nav .dropdown-menu {
    position: absolute;
  }
}
@media (max-width: 959.98px) {
  .offcanvas {
    --bs-offcanvas-width: 80vw;
    --bs-navbar-active-color: var(--accent-yellow);
    padding: 1rem;
    background: var(--primary-blue);
    color: var(--white);
  }
  .offcanvas .btn-close {
    --bs-btn-close-color: var(--white);
    --bs-btn-close-bg: transparent;
  }
  .offcanvas .mobile-logo {
    display: block;
    margin-bottom: 1rem;
    width: 13.5rem;
    max-width: calc(100% - 2rem);
    width: 100%;
  }
  .offcanvas .mobile-logo svg {
    width: 100%;
    height: auto;
    max-width: 13rem;
  }
  .offcanvas .navbar-close {
    --navbar-close-size: 1.8rem;
    display: block;
    background: transparent;
    border: none;
    height: var(--navbar-close-size);
    width: var(--navbar-close-size);
    position: absolute;
    right: 1rem;
    top: 1rem;
  }
  .offcanvas .navbar-close svg {
    fill: var(--accent-yellow);
    height: var(--navbar-close-size);
    width: var(--navbar-close-size);
  }
  .offcanvas a,
  .offcanvas .nav-link {
    color: var(--white);
  }
  .offcanvas a:hover, .offcanvas a:focus, .offcanvas .nav-link:hover, .offcanvas .nav-link:focus {
    background: transparent;
    color: var(--accent-yellow);
  }
  .offcanvas .menu--main .navbar-nav {
    display: grid;
    grid-template-columns: 50% 50%;
    grid-gap: 0.5rem;
    border: none;
    border-bottom: 2px solid var(--white-transparent);
    border-top: 2px solid var(--white-transparent);
    padding: 1rem 0;
  }
  .offcanvas .menu--main .navbar-nav .nav-link,
  .offcanvas .menu--main .navbar-nav a.dropdown-item {
    padding: 0;
  }
  .offcanvas .menu--main .navbar-nav .has-megamenu {
    grid-column: span 2;
    justify-content: center;
    border-bottom: 2px solid var(--white-transparent);
    padding-bottom: 1rem;
    margin-bottom: 1rem;
  }
  .offcanvas .menu--main .navbar-nav .has-megamenu .nav-link {
    font-size: 0.9em;
    padding-left: 2rem;
  }
  .offcanvas .menu--main .navbar-nav .has-megamenu svg {
    fill: var(--light-primary-blue);
  }
  .offcanvas .menu--main .navbar-nav .has-megamenu .dropdown-toggle:after {
    display: none;
  }
  .offcanvas .menu--main > .navbar-nav {
    border-bottom: none;
  }
  .offcanvas .nav-item.dropdown {
    grid-column: span 2;
  }
  .offcanvas .nav-item.dropdown > .nav-link,
  .offcanvas .nav-item.dropdown .dropdown-toggle {
    display: none;
  }
  .offcanvas .navbar-nav.dropdown-menu {
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    font-size: 0.9rem;
    margin-top: 1rem;
  }
  .offcanvas .navbar-nav.dropdown-menu .dropdown-item {
    color: var(--white);
    font-size: 0.9em;
  }
  .offcanvas .navbar-nav.dropdown-menu .dropdown-item:hover, .offcanvas .navbar-nav.dropdown-menu .dropdown-item:focus {
    background: transparent;
    color: var(--accent-yellow);
  }
}
/*
 * Megamenus
*/
.menu--main .has-megamenu .nav-link {
  padding-left: 2rem;
}

.megamenu-icon {
  height: 1.3rem;
  width: 1.3rem;
  margin: 0 -2rem 0 0.5rem;
  position: relative;
}

@media (min-width: 960px) {
  .menu--main .has-megamenu .nav-link {
    border-radius: var(--border-radius-small);
    border: 2px solid var(--dark-primary-blue);
    box-shadow: var(--box-shadow-standard);
    padding-right: 0.6rem;
    display: inline-block;
  }
  .menu--main .has-megamenu .nav-link.show {
    box-shadow: none;
    border-color: var(--light-blue);
  }
  .menu--main .has-megamenu svg {
    fill: var(--light-primary-blue);
  }
}
@media (max-width: 1239.98px) {
  .menu--main .has-megamenu {
    text-align: center;
  }
}
.menu--main.contextual-region {
  position: static;
}
.menu--main.contextual-region > .contextual {
  right: 5rem;
}

@media (max-width: 959.98px) {
  .mega-menu-wrapper {
    display: none;
  }
}
@media (min-width: 960px) {
  .mega-menu-wrapper {
    max-width: var(--max-width);
    grid-template-columns: auto 33%;
    grid-gap: calc(2 * var(--gutter-standard));
    margin: 0;
    padding: 1rem;
    width: 100vw;
    left: auto !important;
    right: 0;
  }
  .mega-menu-wrapper.show {
    display: grid;
    top: 2.6rem;
    z-index: 10;
  }
  .mega-menu-wrapper a {
    font-weight: 500;
    text-decoration: none;
  }
  .mega-menu-wrapper .view-taxonomy {
    padding: 1rem 0;
  }
  .mega-menu-wrapper .view-taxonomy ul {
    grid-gap: 0;
  }
  .mega-menu-wrapper .view-taxonomy a {
    color: var(--black);
    display: block;
    line-height: 1.4;
    padding: 0.5rem 1.5rem;
  }
  .mega-menu-wrapper .view-taxonomy a:hover, .mega-menu-wrapper .view-taxonomy a:focus {
    background: var(--lighter-blue);
    color: var(--primary-blue);
  }
  .mega-menu-wrapper .view-mode-sidebar {
    background-color: var(--lighter-yellow);
    border-radius: var(--border-radius-big);
    padding: 1.3rem;
  }
  .mega-menu-wrapper .view-mode-sidebar .field__label {
    font-size: 0.9rem;
    font-weight: normal;
  }
  .mega-menu-wrapper .view-mode-sidebar > .field:not(:last-child) {
    margin-bottom: 1rem;
  }
  .mega-menu-wrapper .view-mode-sidebar h2 {
    font-size: 1.2rem;
    margin: 0.2rem 0 0.7rem;
  }
  .mega-menu-wrapper .view-mode-sidebar h2 a {
    color: var(--black);
  }
  .mega-menu-wrapper .view-mode-sidebar h2 a:is(:hover, :focus) {
    color: var(--primary-blue);
  }
  .mega-menu-wrapper .view-mode-sidebar .field.description p {
    line-height: 1.5;
    margin-bottom: 1rem;
  }
  .mega-menu-wrapper .view-mode-sidebar a:not(.btn) {
    color: var(--primary-blue);
  }
  .mega-menu-wrapper .view-mode-sidebar a:not(.btn):hover, .mega-menu-wrapper .view-mode-sidebar a:not(.btn):focus {
    background-color: transparent;
    text-decoration: underline;
  }
  .mega-menu-wrapper .view-mode-sidebar .btn {
    --bs-btn-color: var(--primary-blue);
    --bs-btn-border: var(--primary-blue);
    padding: 0.8rem 1.3rem;
  }
  .mega-menu-wrapper .view-mode-sidebar .text-formatted ul li {
    margin: 0.7rem 0;
  }
}
@media (min-width: 960px) and (max-width: 1239.98px) {
  .mega-menu-wrapper {
    grid-template-columns: auto 43%;
    margin: 0 0.7rem;
    max-width: calc(100vw - 1.4rem);
  }
  .mega-menu-wrapper .view-taxonomy {
    padding: 0;
  }
  .mega-menu-wrapper .view-taxonomy a {
    padding: 0.3rem 0.5rem;
  }
}
/*
 * Submit menu - appears as dropdown
*/
.block--menu-submit {
  position: relative;
}
.block--menu-submit .submit-toggle {
  font-size: 1rem;
  margin: 0;
  padding: 0.4rem 0.45rem 0.4rem 0.9rem;
}
.block--menu-submit .submit-toggle:after {
  border-top-color: var(--white);
  margin-top: 0.1rem;
}
.block--menu-submit .submit-toggle:is(:focus)::after {
  transform: rotate(180deg);
  margin-top: 0rem;
}
.block--menu-submit .collapse {
  position: absolute;
}
.block--menu-submit .navbar-nav {
  flex-direction: column;
  padding: 0;
}
.block--menu-submit .dropdown-menu[data-bs-popper] {
  left: auto;
  right: 0;
  margin-top: 0.4rem;
  padding: 0;
}

@media (max-width: 959.98px) {
  .offcanvas .btn {
    background: transparent;
    border: 2px solid var(--white-transparent);
  }
  .offcanvas .btn svg {
    fill: var(--light-primary-blue);
  }
  .offcanvas .block-system-menu-blocksubmit .navbar-mav {
    display: block;
  }
  .offcanvas .block-system-menu-blocksubmit .nav-link {
    color: var(--black);
    padding: 0.4rem;
  }
  .offcanvas .dropdown-menu[data-bs-popper] {
    left: 0;
    right: auto;
  }
}
.menu--submit .nav-link {
  color: var(--black);
  display: block;
  font-weight: 500;
  padding: 0.45rem 1.2rem;
}
.menu--submit .nav-link:is(:hover, :focus) {
  background: var(--light-blue);
  color: var(--primary-blue);
  text-decoration: none;
}
.menu--submit li:last-child {
  border-top: 1px solid var(--grey);
  min-width: 11.5rem;
}

@media (max-width: 959.98px) {
  .menu--submit .navbar-nav {
    padding: 0;
  }
}
/*
 * Component CSS for sitewide footer
*/
.page-footer {
  background: var(--darker-blue);
  color: var(--lighter-grey);
  padding: 4rem 0 2rem;
  padding-left: calc(2 * var(--responsive-padding));
  padding-right: calc(2 * var(--responsive-padding));
}
.page-footer h2 {
  font-size: 1.3rem;
  margin-bottom: 0.7rem;
}
.page-footer a {
  color: var(--accent-yellow);
  font-weight: 500;
  text-decoration: none;
}
.page-footer a:is(:hover, :focus) {
  color: var(--accent-yellow);
  text-decoration: underline;
}
.page-footer .caret-link:before {
  border-left-color: var(--accent-yellow);
}

.footer-top,
.region-footer-bottom {
  padding: var(--vertical-padding) 0;
  margin-right: auto;
  margin-left: auto;
  width: 100%;
  max-width: var(--max-width);
}

.region-footer-bottom {
  border-top: 2px solid var(--white-transparent);
  font-size: 0.9rem;
}
.region-footer-bottom p {
  margin-bottom: 0.5rem;
}
.region-footer-bottom a.ext {
  margin-right: -0.6rem;
}

.footer-logo {
  margin-bottom: 0.4rem;
}
.footer-logo svg {
  width: 100%;
  height: auto;
}

.menu--footer .nav-link {
  font-size: 0.9rem;
  padding: 0.25rem;
}

@media (max-width: 959.98px) {
  .page-footer {
    text-align: center;
  }
  .footer-logo {
    max-width: 15.5rem;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (min-width: 960px) {
  .page-footer {
    clip-path: var(--clip-angle-top);
  }
  .footer-logo {
    max-width: 17.5rem;
  }
  .region-footer {
    display: grid;
    grid-template-columns: auto auto;
    justify-content: space-between;
    gap: var(--gutter-standard);
  }
  .region-footer .block--block-content {
    max-width: 30rem;
    margin-left: 3rem;
  }
  .region-footer .block--social-media-links {
    margin-top: -2.2rem;
  }
  .menu--footer .navbar-nav {
    flex-direction: row;
    gap: 0.5rem;
  }
}
.container {
  max-width: var(--max-width);
  padding: var(--vertical-padding) var(--responsive-padding);
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxheW91dC9faGVhZGVyLnNjc3MiLCJsYXlvdXQuY3NzIiwiLi4vLi4vLi4vY29udHJpYi9ib290c3RyYXA1L2Rpc3QvYm9vdHN0cmFwLzUuMy44L3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIiwiX21peGlucy5zY3NzIiwibGF5b3V0L19tYWluLnNjc3MiLCJsYXlvdXQvX2xheW91dC1idWlsZGVyLnNjc3MiLCJsYXlvdXQvX21lbnUtLW1haW4uc2NzcyIsImxheW91dC9fbWVudS0tc3VibWl0LnNjc3MiLCJsYXlvdXQvX2Zvb3Rlci5zY3NzIiwibGF5b3V0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUFBO0FBSUE7RUFDRSxjQUFBO0FDQ0Y7O0FER0U7RUFDRSxnQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0FDQUo7QURHRTtFQUNFLDhCQUFBO0VBQ0EsV0FBQTtBQ0RKOztBQytDSTtFRnRDRjtJQUNFLHFDQUFBO0lBQ0EsV0FBQTtFQ0xGO0VEUUE7SUFDRSw4QkFBQTtJQUNBLDJCQUFBO0lBQ0EsZ0JBQUE7RUNORjtFRFFFO0lBQ0UsMkJBQUE7SUFDQSxxQkFBQTtJQUNBLGdCQUFBO0VDTko7RURRSTtJQUNFLDBCQUFBO0VDTk47RURXQTs7O0lBR0UsYUFBQTtFQ1RGO0VEWUE7SUFDRSw4QkFBQTtJQUNBLHNDQUFBO0lBQ0EsV0FBQTtJQUNBLFdBQUE7RUNWRjtFRFlFO0lBQ0UseUNBQUE7SUFDQSxhQUFBO0lBQ0EsaUNBQUE7SUFDQSxtQkFBQTtJQUNBLGdCQUFBO0VDVko7RURjQTtJRzlDQSx5Q0FBQTtJQUNBLGtCQUFBO0lBQ0EsaUJBQUE7SUFDQSxXQUFBO0lBQ0EsMkJBQUE7SUg2Q0UsYUFBQTtJQUNBLHlCQUFBO0VDVEY7RURZQTtJQUNFLFdBQUE7SUFDQSxZQUFBO0VDVkY7RURhQTtJQUNFLGFBQUE7SUFDQSxtQkFBQTtJQUNBLDhCQUFBO0lBQ0EsV0FBQTtFQ1hGO0FBQ0Y7QURjQTtFQUNFLFlBQUE7RUFD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QUFBO0lBQ0EsaUJBQUE7RVAycEJKO0VPeHBCRTtJQUNFLG1CQUFBO0VQMHBCSjtFT3RwQkE7SUFDRSxtQkFBQTtJQUNBLFdBQUE7RVB3cEJGO0FBQ0Y7QVE1dkJBO0VBQ0UsMkJBQUE7RUFDQSwwREFBQTtBUjh2QkYiLCJmaWxlIjoibGF5b3V0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBTaXRld2lkZSBoZWFkZXIgbGF5b3V0XG4gKiBNZW51IHRoZW1pbmcgaXMgaW4gbWFpbi1tZW51LnNjc3NcbiovXG5hLmxvZ28ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuYm9keS5naW4tLWhvcml6b250YWwtdG9vbGJhci51c2VyLWxvZ2dlZC1pbiB7XG4gIC5naW4tYnJlYWRjcnVtYl9fbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5oZWFkZXItbWFpbiB7XG4gICAgdG9wOiB2YXIoLS1naW4tdG9vbGJhci1oZWlnaHQpO1xuICAgIHotaW5kZXg6IDIwO1xuICB9XG59XG5cblxuLy8gTGFyZ2VyIHNjcmVlbiBsYXlvdXRcbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblxuICAucGFnZS1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0ZXItZ3JleSk7XG4gICAgei1pbmRleDogMTA7XG4gIH1cblxuICAuaGVhZGVyLXRvcCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGFya2VyLWJsdWUpO1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbiAgICBmb250LXNpemU6IC45ZW07XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICY6bWF0Y2hlcyg6aG92ZXIsIDpmb2N1cykge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubW9iaWxlLWxvZ28sXG4gIC5oZWFkZXItdG9wIC5uYXZiYXItYnJhbmQsXG4gIC5oZWFkZXItdG9wIC5uYXZiYXItdG9nZ2xlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5oZWFkZXItbWFpbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3ctc3RhbmRhcmQpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDIwO1xuXG4gICAgPi5jb250YWluZXIge1xuICAgICAgcGFkZGluZzogLjVyZW0gdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKTtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM1MHB4IGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ3JpZC1nYXA6IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAucmVnaW9uLWhlYWRlciB7XG4gICAgQGluY2x1ZGUgbWFrZS1jb250YWluZXIoJHBhZGRpbmcteDogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSxcbiAgICAgICRwYWRkaW5nLXk6IC41cmVtKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIH1cblxuICAubmF2YmFyLWJyYW5kIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLnJlZ2lvbi1uYXYtbWFpbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4ubmF2YmFyLXRvZ2dsZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgJjptYXRjaGVzKDpob3ZlciwgOmZvY3VzLCA6Zm9jdXMtd2l0aGluKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICBzdmcge1xuICAgIGZpbGw6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gIH1cbn1cblxuLm5hdmJhci1jbG9zZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLy8gQmV0d2VlbiAxMjAwLTEzMDBweCwgbWFrZSB0aGUgbG9nbyBhIGJpdCBzbWFsbGVyXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTMwMHB4KSB7XG4gIC5oZWFkZXItbWFpbiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMjBweCBhdXRvO1xuICB9XG5cbn1cblxuLy8gU21hbGxlciBkZXNrdG9wIHNpemVzLiBUb2dnbGVzIGRlc2t0b3AgbWVudVxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKGxnLCB4bCkge1xuICBib2R5IHtcbiAgICAtLWhlYWRlci1oZWlnaHQ6IDUuOXJlbTtcbiAgfVxuXG4gIC5oZWFkZXItbWFpbiAubmF2YmFyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB9XG5cbiAgLm5hdmJhci10b2dnbGVyIHtcbiAgICBzdmcge1xuICAgICAgZmlsbDogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTW9iaWxlIGhlYWRlciBsYXlvdXRcblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gIC5oZWFkZXItdG9wIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXJrZXItYmx1ZSk7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICAgIHBhZGRpbmc6IDFyZW0gdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKTtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogdmFyKC0tYWNjZW50LXllbGxvdyk7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tb2JpbGUtbG9nbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGltZyB7XG4gICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgIHdpZHRoOiAyLjVyZW07XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhciB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLnJlZ2lvbi1uYXYtYnJhbmRpbmcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuaGVhZGVyLW1haW4gLmNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMDtcblxuICAgIC5uYXZiYXItdG9nZ2xlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG59XG5cbi8vIExhbmd1YWdlIHN3aXRjaGVyIGJsb2NrXG4ubGFuZ3VhZ2Utc3dpdGNoZXItbGFuZ3VhZ2UtdXJsIC5uYXYtbGluayB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmh0bWxbbGFuZz1cImVuXCJdIC5sYW5ndWFnZS1zd2l0Y2hlci1sYW5ndWFnZS11cmwgLm5hdi1saW5rLmVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuaHRtbFtsYW5nPVwiZnJcIl0gLmxhbmd1YWdlLXN3aXRjaGVyLWxhbmd1YWdlLXVybCAubmF2LWxpbmsuZnIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBHaXZlIGFuY2hvciBsaW5rcyBzb21lIHNwYWNlIGFjY29tbW9kYXRlIHN0aWNreSBoZWFkZXJcblxuLmxheW91dCB7XG4gIHNjcm9sbC1tYXJnaW4tdG9wOiB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcbn1cblxuLy8gQWRqdXN0bWVudHMgZm9yIGdpbiB0b29sYmFyXG5ib2R5Lmdpbi0taG9yaXpvbnRhbC10b29sYmFyLnVzZXItbG9nZ2VkLWluIHtcbiAgLmdpbi1icmVhZGNydW1iX19saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmhlYWRlci1tYWluIHtcbiAgICB0b3A6IHZhcigtLWdpbi10b29sYmFyLWhlaWdodCk7XG4gIH1cbn1cbiIsIi8qXG4gKiBTaXRld2lkZSBoZWFkZXIgbGF5b3V0XG4gKiBNZW51IHRoZW1pbmcgaXMgaW4gbWFpbi1tZW51LnNjc3NcbiovXG5hLmxvZ28ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuYm9keS5naW4tLWhvcml6b250YWwtdG9vbGJhci51c2VyLWxvZ2dlZC1pbiAuZ2luLWJyZWFkY3J1bWJfX2xpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5ib2R5Lmdpbi0taG9yaXpvbnRhbC10b29sYmFyLnVzZXItbG9nZ2VkLWluIC5oZWFkZXItbWFpbiB7XG4gIHRvcDogdmFyKC0tZ2luLXRvb2xiYXItaGVpZ2h0KTtcbiAgei1pbmRleDogMjA7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFnZS1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0ZXItZ3JleSk7XG4gICAgei1pbmRleDogMTA7XG4gIH1cbiAgLmhlYWRlci10b3Age1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWRhcmtlci1ibHVlKTtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LXllbGxvdyk7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxuICAuaGVhZGVyLXRvcCBhIHtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LXllbGxvdyk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbiAgLmhlYWRlci10b3AgYTptYXRjaGVzKDpob3ZlciwgOmZvY3VzKSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbiAgLm1vYmlsZS1sb2dvLFxuICAuaGVhZGVyLXRvcCAubmF2YmFyLWJyYW5kLFxuICAuaGVhZGVyLXRvcCAubmF2YmFyLXRvZ2dsZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmhlYWRlci1tYWluIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy1zdGFuZGFyZCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMjA7XG4gIH1cbiAgLmhlYWRlci1tYWluID4gLmNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMC41cmVtIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZyk7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM1MHB4IGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBncmlkLWdhcDogMS41cmVtO1xuICB9XG4gIC5yZWdpb24taGVhZGVyIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxuICAubmF2YmFyLWJyYW5kIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gIC5yZWdpb24tbmF2LW1haW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5uYXZiYXItdG9nZ2xlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5uYXZiYXItdG9nZ2xlcjptYXRjaGVzKDpob3ZlciwgOmZvY3VzLCA6Zm9jdXMtd2l0aGluKSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5uYXZiYXItdG9nZ2xlciBzdmcge1xuICBmaWxsOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHdpZHRoOiAxLjVyZW07XG59XG5cbi5uYXZiYXItY2xvc2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTMwMHB4KSB7XG4gIC5oZWFkZXItbWFpbiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMjBweCBhdXRvO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjM5Ljk4cHgpIHtcbiAgYm9keSB7XG4gICAgLS1oZWFkZXItaGVpZ2h0OiA1LjlyZW07XG4gIH1cbiAgLmhlYWRlci1tYWluIC5uYXZiYXIge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIH1cbiAgLm5hdmJhci10b2dnbGVyIHN2ZyB7XG4gICAgZmlsbDogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk1OS45OHB4KSB7XG4gIC5oZWFkZXItdG9wIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGFya2VyLWJsdWUpO1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbiAgICBwYWRkaW5nOiAxcmVtIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZyk7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgfVxuICAuaGVhZGVyLXRvcCBhIHtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LXllbGxvdyk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgLm1vYmlsZS1sb2dvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIC5tb2JpbGUtbG9nbyBpbWcge1xuICAgIGhlaWdodDogMi41cmVtO1xuICAgIHdpZHRoOiAyLjVyZW07XG4gIH1cbiAgLm5hdmJhciB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC5yZWdpb24tbmF2LWJyYW5kaW5nIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5oZWFkZXItbWFpbiAuY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC5oZWFkZXItbWFpbiAuY29udGFpbmVyIC5uYXZiYXItdG9nZ2xlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmxhbmd1YWdlLXN3aXRjaGVyLWxhbmd1YWdlLXVybCAubmF2LWxpbmsge1xuICBwYWRkaW5nOiAwO1xufVxuXG5odG1sW2xhbmc9ZW5dIC5sYW5ndWFnZS1zd2l0Y2hlci1sYW5ndWFnZS11cmwgLm5hdi1saW5rLmVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuaHRtbFtsYW5nPWZyXSAubGFuZ3VhZ2Utc3dpdGNoZXItbGFuZ3VhZ2UtdXJsIC5uYXYtbGluay5mciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5sYXlvdXQge1xuICBzY3JvbGwtbWFyZ2luLXRvcDogdmFyKC0taGVhZGVyLWhlaWdodCk7XG59XG5cbmJvZHkuZ2luLS1ob3Jpem9udGFsLXRvb2xiYXIudXNlci1sb2dnZWQtaW4gLmdpbi1icmVhZGNydW1iX19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuYm9keS5naW4tLWhvcml6b250YWwtdG9vbGJhci51c2VyLWxvZ2dlZC1pbiAuaGVhZGVyLW1haW4ge1xuICB0b3A6IHZhcigtLWdpbi10b29sYmFyLWhlaWdodCk7XG59XG5cbi8qXG4gKiBNYWluIGNvbnRlbnQgbGF5b3V0XG4qL1xuLnBhZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgcGFkZGluZzogMCB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpIHZhcigtLXZlcnRpY2FsLXBhZGRpbmcpO1xufVxuXG4ucGFnZS0tbGFuZGluZy1wYWdlIC5wYWdlLWNvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi5wYWdlLW1haW4gLnJlZ2lvbi1hZG1pbiB7XG4gIHBhZGRpbmc6IHZhcigtLXZlcnRpY2FsLXBhZGRpbmcpIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZyk7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG59XG5cbi5wYXRoLW5vZGU6bm90KC5ub2RlLWZvcm0tcGFnZSwgLm5vZGUtYWRkLXBhZ2UpIC5wYWdlLWNvbnRlbnQsXG4ucGF0aC0tdGVybSAucGFnZS1jb250ZW50IHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFNvbWUgY29tbW9uIGNvbXBvbmVudCBDU1MgZm9yIGxheW91dCBidWlsZGVyXG4gKi9cbi5sYXlvdXQge1xuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gIGNvbnRhaW5lci1uYW1lOiBsYXlvdXQ7XG59XG4ubGF5b3V0LnNlY3Rpb24tYmctY29sb3Ige1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgcGFkZGluZy10b3A6IDJyZW07XG59XG4ubGF5b3V0IC5ibG9jayB7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMS41ICogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKSk7XG59XG4ubGF5b3V0IC5ibG9jay0taGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlci1zdGFuZGFyZCk7XG59XG5cbi5zaWRlYmFyLXRvcCxcbi5zaWRlYmFyLWJvdHRvbSxcbi5yZWdpb24tc2lkZWJhciB7XG4gIGNvbnRhaW5lci1uYW1lOiBzaWRlYmFyO1xuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG59XG5cbi5sYXlvdXQtLW9uZWNvbCAubGF5b3V0X19yZWdpb24ge1xuICBwYWRkaW5nOiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nKSB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICBwYWRkaW5nOiAwIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZyk7XG4gIG1hcmdpbjogdmFyKC0tdmVydGljYWwtcGFkZGluZykgYXV0bztcbn1cblxuLypcbiAqIENvbXBvbmVudCBDU1MgZm9yIG1haW4gbWVudVxuKi9cbi5uYXZiYXItZXhwYW5kLWxnIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XG4gIC0tYnMtbmF2YmFyLW5hdi1saW5rLXBhZGRpbmcteDogMXJlbTtcbiAgLS1icy1uYXZiYXItYWN0aXZlLWNvbG9yOiBpbmhlcml0O1xufVxuXG4ubWVudS0tbWFpbiB7XG4gIC0tYnMtbmF2YmFyLW5hdi1saW5rLXBhZGRpbmcteDogMS4ycmVtO1xufVxuLm1lbnUtLW1haW4gLm5hdi1saW5rLFxuLm1lbnUtLW1haW4gYS5kcm9wZG93bi1pdGVtIHtcbiAgY29sb3I6IHZhcigtLWJsYWNrKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBwYWRkaW5nOiAwLjQ1cmVtIDEuMnJlbTtcbn1cbi5tZW51LS1tYWluIC5uYXYtbGluay5hY3RpdmUsXG4ubWVudS0tbWFpbiBhLmRyb3Bkb3duLWl0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ubWVudS0tbWFpbiAubmF2LWxpbms6aXMoOmhvdmVyLCA6Zm9jdXMpLCAubWVudS0tbWFpbiAubmF2LWxpbmsuc2hvdyxcbi5tZW51LS1tYWluIGEuZHJvcGRvd24taXRlbTppcyg6aG92ZXIsIDpmb2N1cyksXG4ubWVudS0tbWFpbiBhLmRyb3Bkb3duLWl0ZW0uc2hvdyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWJsdWUpO1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLm1lbnUtLW1haW4gLm5hdi1pdGVtLmhhcy1tZWdhbWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4ycmVtO1xufVxuXG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWRhcmstZ3JleSk7XG59XG4uZHJvcGRvd24tdG9nZ2xlLnNob3c6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLmRyb3Bkb3duLW1lbnUge1xuICAtLWJzLWRyb3Bkb3duLXNwYWNlcjogLjVyZW07XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1saWdodC1ncmV5KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3ctc3RhbmRhcmQpO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgcGFkZGluZzogMDtcbn1cbi5kcm9wZG93bi1tZW51LnNob3cge1xuICBkaXNwbGF5OiBncmlkO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm5hdi1sZXZlbC0wIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC5uYXYtbGV2ZWwtMCA+IC5uYXYtaXRlbSB7XG4gICAgbWFyZ2luOiAwIDAuMnJlbTtcbiAgfVxuICAubmF2LWxldmVsLTAgPiAubmF2LWl0ZW0gPiAubmF2LWxpbmsge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC43ZW07XG4gIH1cbiAgLm5hdi1sZXZlbC0wID4gLm5hdi1pdGVtID4gLm5hdi1saW5rOmlzKDpob3ZlciwgOmZvY3VzKSwgLm5hdi1sZXZlbC0wID4gLm5hdi1pdGVtID4gLm5hdi1saW5rLnNob3cge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWJsdWUpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTM1MHB4KSB7XG4gIC5uYXYtbGV2ZWwtMCA+IC5uYXYtaXRlbSA+IC5uYXYtbGluayB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMzUwcHgpIHtcbiAgLm5hdi1sZXZlbC0wID4gLm5hdi1pdGVtID4gLm5hdi1saW5rIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjhlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogMTIzOS45OHB4KSB7XG4gIC5vZmZjYW52YXMtYmFja2Ryb3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm9mZmNhbnZhcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmY2FudmFzLnNob3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm5hdmJhci10b2dnbGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuaGVhZGVyLW1haW4gLmNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5oZWFkZXItbWFpbiAubmF2YmFyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9XG4gIC5vZmZjYW52YXMub2ZmY2FudmFzLWVuZCB7XG4gICAgLS1icy1vZmZjYW52YXMtd2lkdGg6IDEwMHZ3O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWdyZXkpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy1zdGFuZGFyZCk7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDMuNXJlbTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgfVxuICAubmF2YmFyLW5hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTU5Ljk4cHgpIHtcbiAgLm9mZmNhbnZhcyB7XG4gICAgLS1icy1vZmZjYW52YXMtd2lkdGg6IDgwdnc7XG4gICAgLS1icy1uYXZiYXItYWN0aXZlLWNvbG9yOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgfVxuICAub2ZmY2FudmFzIC5idG4tY2xvc2Uge1xuICAgIC0tYnMtYnRuLWNsb3NlLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gICAgLS1icy1idG4tY2xvc2UtYmc6IHRyYW5zcGFyZW50O1xuICB9XG4gIC5vZmZjYW52YXMgLm1vYmlsZS1sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiAxMy41cmVtO1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMnJlbSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm9mZmNhbnZhcyAubW9iaWxlLWxvZ28gc3ZnIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxM3JlbTtcbiAgfVxuICAub2ZmY2FudmFzIC5uYXZiYXItY2xvc2Uge1xuICAgIC0tbmF2YmFyLWNsb3NlLXNpemU6IDEuOHJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgaGVpZ2h0OiB2YXIoLS1uYXZiYXItY2xvc2Utc2l6ZSk7XG4gICAgd2lkdGg6IHZhcigtLW5hdmJhci1jbG9zZS1zaXplKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgdG9wOiAxcmVtO1xuICB9XG4gIC5vZmZjYW52YXMgLm5hdmJhci1jbG9zZSBzdmcge1xuICAgIGZpbGw6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICAgIGhlaWdodDogdmFyKC0tbmF2YmFyLWNsb3NlLXNpemUpO1xuICAgIHdpZHRoOiB2YXIoLS1uYXZiYXItY2xvc2Utc2l6ZSk7XG4gIH1cbiAgLm9mZmNhbnZhcyBhLFxuICAub2ZmY2FudmFzIC5uYXYtbGluayB7XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgfVxuICAub2ZmY2FudmFzIGE6bWF0Y2hlcyg6aG92ZXIsIDpmb2N1cyksXG4gIC5vZmZjYW52YXMgLm5hdi1saW5rOm1hdGNoZXMoOmhvdmVyLCA6Zm9jdXMpIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LXllbGxvdyk7XG4gIH1cbiAgLm9mZmNhbnZhcyAubWVudS0tbWFpbiAubmF2YmFyLW5hdiB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwJSA1MCU7XG4gICAgZ3JpZC1nYXA6IDAuNXJlbTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLXdoaXRlLXRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0td2hpdGUtdHJhbnNwYXJlbnQpO1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgfVxuICAub2ZmY2FudmFzIC5tZW51LS1tYWluIC5uYXZiYXItbmF2IC5uYXYtbGluayxcbiAgLm9mZmNhbnZhcyAubWVudS0tbWFpbiAubmF2YmFyLW5hdiBhLmRyb3Bkb3duLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgLm9mZmNhbnZhcyAubWVudS0tbWFpbiAubmF2YmFyLW5hdiAuaGFzLW1lZ2FtZW51IHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS13aGl0ZS10cmFuc3BhcmVudCk7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuICAub2ZmY2FudmFzIC5tZW51LS1tYWluIC5uYXZiYXItbmF2IC5oYXMtbWVnYW1lbnUgLm5hdi1saW5rIHtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgfVxuICAub2ZmY2FudmFzIC5tZW51LS1tYWluIC5uYXZiYXItbmF2IC5oYXMtbWVnYW1lbnUgc3ZnIHtcbiAgICBmaWxsOiB2YXIoLS1saWdodC1wcmltYXJ5LWJsdWUpO1xuICB9XG4gIC5vZmZjYW52YXMgLm1lbnUtLW1haW4gLm5hdmJhci1uYXYgLmhhcy1tZWdhbWVudSAuZHJvcGRvd24tdG9nZ2xlOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmZjYW52YXMgLm1lbnUtLW1haW4gPiAubmF2YmFyLW5hdiB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuICAub2ZmY2FudmFzIC5uYXYtaXRlbS5kcm9wZG93biB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgfVxuICAub2ZmY2FudmFzIC5uYXYtaXRlbS5kcm9wZG93biA+IC5uYXYtbGluayxcbiAgLm9mZmNhbnZhcyAubmF2LWl0ZW0uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmY2FudmFzIC5uYXZiYXItbmF2LmRyb3Bkb3duLW1lbnUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG4gIC5vZmZjYW52YXMgLm5hdmJhci1uYXYuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSB7XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG4gIC5vZmZjYW52YXMgLm5hdmJhci1uYXYuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTptYXRjaGVzKDpob3ZlciwgOmZvY3VzKSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICB9XG59XG4vKlxuICogTWVnYW1lbnVzXG4qL1xuLm1lbnUtLW1haW4gLmhhcy1tZWdhbWVudSAubmF2LWxpbmsge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG59XG5cbi5tZWdhbWVudS1pY29uIHtcbiAgaGVpZ2h0OiAxLjNyZW07XG4gIHdpZHRoOiAxLjNyZW07XG4gIG1hcmdpbjogMCAtMnJlbSAwIDAuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm1lbnUtLW1haW4gLmhhcy1tZWdhbWVudSAubmF2LWxpbmsge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWRhcmstcHJpbWFyeS1ibHVlKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LXN0YW5kYXJkKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjZyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC5tZW51LS1tYWluIC5oYXMtbWVnYW1lbnUgLm5hdi1saW5rLnNob3cge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1saWdodC1ibHVlKTtcbiAgfVxuICAubWVudS0tbWFpbiAuaGFzLW1lZ2FtZW51IHN2ZyB7XG4gICAgZmlsbDogdmFyKC0tbGlnaHQtcHJpbWFyeS1ibHVlKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyMzkuOThweCkge1xuICAubWVudS0tbWFpbiAuaGFzLW1lZ2FtZW51IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbi5tZW51LS1tYWluLmNvbnRleHR1YWwtcmVnaW9uIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5tZW51LS1tYWluLmNvbnRleHR1YWwtcmVnaW9uID4gLmNvbnRleHR1YWwge1xuICByaWdodDogNXJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk1OS45OHB4KSB7XG4gIC5tZWdhLW1lbnUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5tZWdhLW1lbnUtd3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAzMyU7XG4gICAgZ3JpZC1nYXA6IGNhbGMoMiAqIHZhcigtLWd1dHRlci1zdGFuZGFyZCkpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLm1lZ2EtbWVudS13cmFwcGVyLnNob3cge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgdG9wOiAyLjZyZW07XG4gICAgei1pbmRleDogMTA7XG4gIH1cbiAgLm1lZ2EtbWVudS13cmFwcGVyIGEge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIC5tZWdhLW1lbnUtd3JhcHBlciAudmlldy10YXhvbm9teSB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICB9XG4gIC5tZWdhLW1lbnUtd3JhcHBlciAudmlldy10YXhvbm9teSB1bCB7XG4gICAgZ3JpZC1nYXA6IDA7XG4gIH1cbiAgLm1lZ2EtbWVudS13cmFwcGVyIC52aWV3LXRheG9ub215IGEge1xuICAgIGNvbG9yOiB2YXIoLS1ibGFjayk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtO1xuICB9XG4gIC5tZWdhLW1lbnUtd3JhcHBlciAudmlldy10YXhvbm9teSBhOm1hdGNoZXMoOmhvdmVyLCA6Zm9jdXMpIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodGVyLWJsdWUpO1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICB9XG4gIC5tZWdhLW1lbnUtd3JhcHBlciAudmlldy1tb2RlLXNpZGViYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0ZXIteWVsbG93KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWJpZyk7XG4gICAgcGFkZGluZzogMS4zcmVtO1xuICB9XG4gIC5tZWdhLW1lbnUtd3JhcHBlciAudmlldy1tb2RlLXNpZGViYXIgLmZpZWxkX19sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuICAubWVnYS1tZW51LXdyYXBwZXIgLnZpZXctbW9kZS1zaWRlYmFyID4gLmZpZWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cbiAgLm1lZ2EtbWVudS13cmFwcGVyIC52aWV3LW1vZGUtc2lkZWJhciBoMiB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgbWFyZ2luOiAwLjJyZW0gMCAwLjdyZW07XG4gIH1cbiAgLm1lZ2EtbWVudS13cmFwcGVyIC52aWV3LW1vZGUtc2lkZWJhciBoMiBhIHtcbiAgICBjb2xvcjogdmFyKC0tYmxhY2spO1xuICB9XG4gIC5tZWdhLW1lbnUtd3JhcHBlciAudmlldy1tb2RlLXNpZGViYXIgaDIgYTppcyg6aG92ZXIsIDpmb2N1cykge1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICB9XG4gIC5tZWdhLW1lbnUtd3JhcHBlciAudmlldy1tb2RlLXNpZGViYXIgLmZpZWxkLmRlc2NyaXB0aW9uIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuICAubWVnYS1tZW51LXdyYXBwZXIgLnZpZXctbW9kZS1zaWRlYmFyIGE6bm90KC5idG4pIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgfVxuICAubWVnYS1tZW51LXdyYXBwZXIgLnZpZXctbW9kZS1zaWRlYmFyIGE6bm90KC5idG4pOm1hdGNoZXMoOmhvdmVyLCA6Zm9jdXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuICAubWVnYS1tZW51LXdyYXBwZXIgLnZpZXctbW9kZS1zaWRlYmFyIC5idG4ge1xuICAgIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICAgIC0tYnMtYnRuLWJvcmRlcjogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgICBwYWRkaW5nOiAwLjhyZW0gMS4zcmVtO1xuICB9XG4gIC5tZWdhLW1lbnUtd3JhcHBlciAudmlldy1tb2RlLXNpZGViYXIgLnRleHQtZm9ybWF0dGVkIHVsIGxpIHtcbiAgICBtYXJnaW46IDAuN3JlbSAwO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjM5Ljk4cHgpIHtcbiAgLm1lZ2EtbWVudS13cmFwcGVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gNDMlO1xuICAgIG1hcmdpbjogMCAwLjdyZW07XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMS40cmVtKTtcbiAgfVxuICAubWVnYS1tZW51LXdyYXBwZXIgLnZpZXctdGF4b25vbXkge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgLm1lZ2EtbWVudS13cmFwcGVyIC52aWV3LXRheG9ub215IGEge1xuICAgIHBhZGRpbmc6IDAuM3JlbSAwLjVyZW07XG4gIH1cbn1cbi8qXG4gKiBTdWJtaXQgbWVudSAtIGFwcGVhcnMgYXMgZHJvcGRvd25cbiovXG4uYmxvY2stLW1lbnUtc3VibWl0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmJsb2NrLS1tZW51LXN1Ym1pdCAuc3VibWl0LXRvZ2dsZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjRyZW0gMC40NXJlbSAwLjRyZW0gMC45cmVtO1xufVxuLmJsb2NrLS1tZW51LXN1Ym1pdCAuc3VibWl0LXRvZ2dsZTphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgbWFyZ2luLXRvcDogMC4xcmVtO1xufVxuLmJsb2NrLS1tZW51LXN1Ym1pdCAuc3VibWl0LXRvZ2dsZTppcyg6Zm9jdXMpOjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIG1hcmdpbi10b3A6IDByZW07XG59XG4uYmxvY2stLW1lbnUtc3VibWl0IC5jb2xsYXBzZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5ibG9jay0tbWVudS1zdWJtaXQgLm5hdmJhci1uYXYge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiAwO1xufVxuLmJsb2NrLS1tZW51LXN1Ym1pdCAuZHJvcGRvd24tbWVudVtkYXRhLWJzLXBvcHBlcl0ge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xuICBwYWRkaW5nOiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTU5Ljk4cHgpIHtcbiAgLm9mZmNhbnZhcyAuYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS13aGl0ZS10cmFuc3BhcmVudCk7XG4gIH1cbiAgLm9mZmNhbnZhcyAuYnRuIHN2ZyB7XG4gICAgZmlsbDogdmFyKC0tbGlnaHQtcHJpbWFyeS1ibHVlKTtcbiAgfVxuICAub2ZmY2FudmFzIC5ibG9jay1zeXN0ZW0tbWVudS1ibG9ja3N1Ym1pdCAubmF2YmFyLW1hdiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLm9mZmNhbnZhcyAuYmxvY2stc3lzdGVtLW1lbnUtYmxvY2tzdWJtaXQgLm5hdi1saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tYmxhY2spO1xuICAgIHBhZGRpbmc6IDAuNHJlbTtcbiAgfVxuICAub2ZmY2FudmFzIC5kcm9wZG93bi1tZW51W2RhdGEtYnMtcG9wcGVyXSB7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuLm1lbnUtLXN1Ym1pdCAubmF2LWxpbmsge1xuICBjb2xvcjogdmFyKC0tYmxhY2spO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZzogMC40NXJlbSAxLjJyZW07XG59XG4ubWVudS0tc3VibWl0IC5uYXYtbGluazppcyg6aG92ZXIsIDpmb2N1cykge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodC1ibHVlKTtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5tZW51LS1zdWJtaXQgbGk6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ncmV5KTtcbiAgbWluLXdpZHRoOiAxMS41cmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTU5Ljk4cHgpIHtcbiAgLm1lbnUtLXN1Ym1pdCAubmF2YmFyLW5hdiB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuLypcbiAqIENvbXBvbmVudCBDU1MgZm9yIHNpdGV3aWRlIGZvb3RlclxuKi9cbi5wYWdlLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWRhcmtlci1ibHVlKTtcbiAgY29sb3I6IHZhcigtLWxpZ2h0ZXItZ3JleSk7XG4gIHBhZGRpbmc6IDRyZW0gMCAycmVtO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGMoMiAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKTtcbn1cbi5wYWdlLWZvb3RlciBoMiB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjdyZW07XG59XG4ucGFnZS1mb290ZXIgYSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnBhZ2UtZm9vdGVyIGE6aXMoOmhvdmVyLCA6Zm9jdXMpIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5wYWdlLWZvb3RlciAuY2FyZXQtbGluazpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tYWNjZW50LXllbGxvdyk7XG59XG5cbi5mb290ZXItdG9wLFxuLnJlZ2lvbi1mb290ZXItYm90dG9tIHtcbiAgcGFkZGluZzogdmFyKC0tdmVydGljYWwtcGFkZGluZykgMDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbn1cblxuLnJlZ2lvbi1mb290ZXItYm90dG9tIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLXdoaXRlLXRyYW5zcGFyZW50KTtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4ucmVnaW9uLWZvb3Rlci1ib3R0b20gcCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi5yZWdpb24tZm9vdGVyLWJvdHRvbSBhLmV4dCB7XG4gIG1hcmdpbi1yaWdodDogLTAuNnJlbTtcbn1cblxuLmZvb3Rlci1sb2dvIHtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xufVxuLmZvb3Rlci1sb2dvIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5tZW51LS1mb290ZXIgLm5hdi1saW5rIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIHBhZGRpbmc6IDAuMjVyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NTkuOThweCkge1xuICAucGFnZS1mb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuZm9vdGVyLWxvZ28ge1xuICAgIG1heC13aWR0aDogMTUuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAucGFnZS1mb290ZXIge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tY2xpcC1hbmdsZS10b3ApO1xuICB9XG4gIC5mb290ZXItbG9nbyB7XG4gICAgbWF4LXdpZHRoOiAxNy41cmVtO1xuICB9XG4gIC5yZWdpb24tZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLWd1dHRlci1zdGFuZGFyZCk7XG4gIH1cbiAgLnJlZ2lvbi1mb290ZXIgLmJsb2NrLS1ibG9jay1jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDMwcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICB9XG4gIC5yZWdpb24tZm9vdGVyIC5ibG9jay0tc29jaWFsLW1lZGlhLWxpbmtzIHtcbiAgICBtYXJnaW4tdG9wOiAtMi4ycmVtO1xuICB9XG4gIC5tZW51LS1mb290ZXIgLm5hdmJhci1uYXYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiAwLjVyZW07XG4gIH1cbn1cbi5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gIHBhZGRpbmc6IHZhcigtLXZlcnRpY2FsLXBhZGRpbmcpIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZyk7XG59IiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwgeHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQGlmIG5vdCAkbiB7XG4gICAgQGVycm9yIFwiYnJlYWtwb2ludCBgI3skbmFtZX1gIG5vdCBmb3VuZCBpbiBgI3skYnJlYWtwb2ludHN9YFwiO1xuICB9XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIHJlZHVjZWQgYnkgMC4wMnB4IHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZlxuLy8gYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChtZCwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1heCBhbmQgJG1heCA+IDAsICRtYXggLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46ICBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogIGJyZWFrcG9pbnQtbWF4KCRuZXh0LCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmV4dCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEdldCBzb21lIHVzZWZ1bCBmaWxlcyBmcm9tIEJvb3RzdHJhcC5cbi8vIENvbXBpbGluZyBldmVyeXRoaW5nIGlzIHNsb3csIHNvIGp1c3QgZ2V0IHRoZSBwYXJ0cyB3ZSBuZWVkIHRvIHVzZVxuQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWVzL2NvbnRyaWIvYm9vdHN0cmFwNS9kaXN0L2Jvb3RzdHJhcC81LjMuOC9zY3NzL2Z1bmN0aW9ucyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lcy9jb250cmliL2Jvb3RzdHJhcDUvZGlzdC9ib290c3RyYXAvNS4zLjgvc2Nzcy92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWVzL2NvbnRyaWIvYm9vdHN0cmFwNS9kaXN0L2Jvb3RzdHJhcC81LjMuOC9zY3NzL21peGlucyc7XG5cbiRncmlkLWJyZWFrcG9pbnRzOiAoXG4gIHhzOiAwLFxuICB4c206IDM3NHB4LFxuICBzbTogNjAwcHgsXG4gIG1kOiA3NjhweCxcbiAgbGc6IDk2MHB4LFxuICB4bDogMTI0MHB4LFxuICB4eGw6IDE0MDBweFxuKTtcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lcy9jb250cmliL2Jvb3RzdHJhcDUvZGlzdC9ib290c3RyYXAvNS4zLjgvc2Nzcy9taXhpbnMvYnJlYWtwb2ludHMnO1xuXG4vLyBPdmVycmlkZSBCb29zdHJhcCBjb250YWluZXIgbWl4aW5cbkBtaXhpbiBtYWtlLWNvbnRhaW5lcigkcGFkZGluZy14OiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpLFxuICAkcGFkZGluZy15OiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nKSkge1xuICBwYWRkaW5nOiAkcGFkZGluZy15ICRwYWRkaW5nLXg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG59XG5cbi8vIEhlYWRpbmcgYmFyOyBVc2UgaW4gYSBwc2V1ZG8tZWxlbWVudCAocHJvYmFibHkgOmJlZm9yZSlcbkBtaXhpbiBoZWFkaW5nLWJhcigkY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSksICRjZW50ZXI6IGZhbHNlKSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA2cHg7XG4gIHdpZHRoOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJhY2tncm91bmQ6ICRjb2xvcjtcblxuICBAaWYgJGNlbnRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi8vIEFuZ2xlZCBib3R0b20gc2VjdGlvbiBmb3Igc2tld2VkIGJsb2Nrc1xuLy8gU2hvdWxkIGJlIHVzZWQgaW4gZ2VuZXJhdGVkIGNvbnRlbnQsIHByb2JhYmx5IDo6YWZ0ZXJcbi8vIE1ha2Ugc3VyZSB0aGUgcGFyZW50IGVsZW1lbnQgaGFzIHBvc2l0aW9uOiByZWxhdGl2ZVxuQG1peGluIGFuZ2xlZC1ib3R0b20tY3VydmUoKSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHJlbTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTFyZW07XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDA7XG5cbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1iaWcpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICB0cmFuc2Zvcm06IHNrZXdZKC0zZGVnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIG1vYmlsZS1tYXJnaW4tYmxlZWQoKSB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSk7XG4gIG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICB3aWR0aDogY2FsYygxMDAlICsgKDIgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKSk7XG59XG5cbi8vIEJvb3RzdHJhcCdzIGNhcmV0IG1peGluIGluY2x1ZGVzIDo6YWZ0ZXIgYW5kIGluY2x1ZGVzIHNvbWUgcmVkdW5kYW50IGNvZGVcbi8vIGlmIG5lZWRlZCA6OmJlZm9yZVxuQG1peGluIGNhcmV0KCRzaXplOiAuNHJlbSwgJGRpcmVjdGlvbjogJ3JpZ2h0JywgJGNvbG9yOiB2YXIoLS1ibGFjaykpIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gIEBpZiAkZGlyZWN0aW9uID09J3JpZ2h0JyB7XG4gICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09J2xlZnQnIHtcbiAgICBib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09J3VwJyB7XG4gICAgYm9yZGVyLXRvcDogJHNpemUgc29saWQgJGNvbG9yO1xuICB9XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0nZG93bicge1xuICAgIGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgfVxuXG59XG5cbkBtaXhpbiBjaGV2cm9uKCRzaXplOiAxcmVtLCAkc3Ryb2tlOiAycHgsICRkaXJlY3Rpb246ICdyaWdodCcsICRjb2xvcjogdmFyKC0tY29sb3ItYmx1ZSkpIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItdG9wOiAkc3Ryb2tlIHNvbGlkICRjb2xvcjtcbiAgYm9yZGVyLXJpZ2h0OiAkc3Ryb2tlIHNvbGlkICRjb2xvcjtcbiAgaGVpZ2h0OiAkc2l6ZTtcbiAgd2lkdGg6ICRzaXplO1xuXG4gIEBpZiAkZGlyZWN0aW9uID09J3JpZ2h0JyB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB9XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0nbGVmdCcge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICB9XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0ndXAnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB9XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0nZG93bicge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gIH1cblxufVxuXG4vLyBDYXJldCBsaW5rXG5AbWl4aW4gY2FyZXQtbGluaygkY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIG1hcmdpbi1ib3R0b206IC40cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuMnJlbTtcbiAgO1xuXG4gICY6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjYXJldCgkY29sb3I6ICRjb2xvcik7XG4gICAgbWFyZ2luLXJpZ2h0OiAuM3JlbTtcbiAgICBtYXJnaW4tbGVmdDogLTEuMXJlbTtcbiAgfVxufVxuIiwiLypcbiAqIE1haW4gY29udGVudCBsYXlvdXRcbiovXG5cbi5wYWdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gIHBhZGRpbmc6IDAgdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nKTtcbn1cblxuLnBhZ2UtLWxhbmRpbmctcGFnZSAucGFnZS1jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4ucGFnZS1tYWluIC5yZWdpb24tYWRtaW4ge1xuICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcigpO1xufVxuXG4vLyBQYWdlcyB0aGF0IGhhdmUgbGF5b3V0IGJ1aWxkZXJcblxuLnBhdGgtbm9kZTpub3QoLm5vZGUtZm9ybS1wYWdlLCAubm9kZS1hZGQtcGFnZSksXG4ucGF0aC0tdGVybSB7XG4gIC5wYWdlLWNvbnRlbnQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG4iLCIvKipcbiAqIFNvbWUgY29tbW9uIGNvbXBvbmVudCBDU1MgZm9yIGxheW91dCBidWlsZGVyXG4gKi9cbi5sYXlvdXQge1xuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gIGNvbnRhaW5lci1uYW1lOiBsYXlvdXQ7XG5cbiAgJi5zZWN0aW9uLWJnLWNvbG9yIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgfVxuXG4gIC5ibG9jayB7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYygxLjUgKiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpKTtcbiAgfVxuXG4gIC5ibG9jay0taGVhZGluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKVxuICB9XG59XG5cbi5zaWRlYmFyLXRvcCxcbi5zaWRlYmFyLWJvdHRvbSxcbi5yZWdpb24tc2lkZWJhciB7XG4gIGNvbnRhaW5lci1uYW1lOiBzaWRlYmFyO1xuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG59XG5cbi5sYXlvdXQtLW9uZWNvbCAubGF5b3V0X19yZWdpb24ge1xuICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcigpO1xuICBwYWRkaW5nOiAwIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZyk7XG4gIG1hcmdpbjogdmFyKC0tdmVydGljYWwtcGFkZGluZykgYXV0bztcbn1cbiIsIi8qXG4gKiBDb21wb25lbnQgQ1NTIGZvciBtYWluIG1lbnVcbiovXG4ubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuICAtLWJzLW5hdmJhci1uYXYtbGluay1wYWRkaW5nLXg6IDFyZW07XG4gIC0tYnMtbmF2YmFyLWFjdGl2ZS1jb2xvcjogaW5oZXJpdDtcbn1cblxuLm1lbnUtLW1haW4ge1xuICAtLWJzLW5hdmJhci1uYXYtbGluay1wYWRkaW5nLXg6IDEuMnJlbTtcblxuICAubmF2LWxpbmssXG4gIGEuZHJvcGRvd24taXRlbSB7XG4gICAgY29sb3I6IHZhcigtLWJsYWNrKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gICAgcGFkZGluZzogLjQ1cmVtIDEuMnJlbTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6aXMoOmhvdmVyLCA6Zm9jdXMpLFxuICAgICYuc2hvdyB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodC1ibHVlKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5uYXYtaXRlbS5oYXMtbWVnYW1lbnUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuMnJlbTtcbiAgfVxufVxuXG4uZHJvcGRvd24tdG9nZ2xlIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWRhcmstZ3JleSk7XG4gIH1cblxuICAmLnNob3c6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB9XG59XG5cbi5kcm9wZG93bi1tZW51IHtcbiAgLS1icy1kcm9wZG93bi1zcGFjZXI6IC41cmVtO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbGlnaHQtZ3JleSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LXN0YW5kYXJkKTtcbiAgZm9udC1zaXplOiAuOXJlbTtcbiAgcGFkZGluZzogMDtcblxuICAmLnNob3cge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gIH1cbn1cblxuLy8gTGFyZ2VyIHNjcmVlbiBsYXlvdXRcblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuICAubmF2LWxldmVsLTAge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmPi5uYXYtaXRlbSB7XG4gICAgICBtYXJnaW46IDAgLjJyZW07XG5cbiAgICAgICY+Lm5hdi1saW5rIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gLjdlbTtcblxuICAgICAgICAmOmlzKDpob3ZlciwgOmZvY3VzKSxcbiAgICAgICAgJi5zaG93IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodC1ibHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBCZXR3ZWVuIDEyMDAtMTM0MHB4LCBtYWtlIHRoZSBmb250IHNtYWxsZXJcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMzUwcHgpIHtcbiAgLm5hdi1sZXZlbC0wPi5uYXYtaXRlbT4ubmF2LWxpbmsge1xuICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEzNTBweCkge1xuICAubmF2LWxldmVsLTA+Lm5hdi1pdGVtPi5uYXYtbGluayB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gLjhlbTtcbiAgfVxufVxuXG4vLyBTbWFsbGVyIGRlc2t0b3Agc2l6ZXMuIFRvZ2dsZXMgZGVza3RvcCBtZW51IGFzIGRyb3Bkb3duXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWJldHdlZW4obGcsIHhsKSB7XG5cbiAgLm9mZmNhbnZhcy1iYWNrZHJvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5vZmZjYW52YXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLnNob3cge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLXRvZ2dsZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmhlYWRlci1tYWluIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAubmF2YmFyIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxuICB9XG5cbiAgLm9mZmNhbnZhcy5vZmZjYW52YXMtZW5kIHtcbiAgICAtLWJzLW9mZmNhbnZhcy13aWR0aDogMTAwdnc7XG4gICAgYmFja2dyb3VuZDogd2hpdGUgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGluZyBCb290c3RyYXBcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZ3JleSkgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGluZyBCb290c3RyYXBcbiAgICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LXN0YW5kYXJkKTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMy41cmVtO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG5cbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKTtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gIH1cblxuICAubmF2YmFyLW5hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBNb2JpbGUgbWVudSB0b2dnbGVzICh4bCBhbmQgc21hbGxlcilcbi8vIE1vYmlsZSBoZWFkZXIgbGF5b3V0IHN0YXJ0cyBhdCBtZCBhbmQgc21hbGxlclxuXG4vLyBTbWFsbCBTY3JlZW4gbWVudSBsYXlvdXRcbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZykge1xuICAub2ZmY2FudmFzIHtcblxuICAgIC0tYnMtb2ZmY2FudmFzLXdpZHRoOiA4MHZ3O1xuICAgIC0tYnMtbmF2YmFyLWFjdGl2ZS1jb2xvcjogdmFyKC0tYWNjZW50LXllbGxvdyk7XG4gICAgcGFkZGluZzogMXJlbTtcblxuICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKTtcblxuICAgIC5idG4tY2xvc2Uge1xuICAgICAgLS1icy1idG4tY2xvc2UtY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgICAgIC0tYnMtYnRuLWNsb3NlLWJnOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAubW9iaWxlLWxvZ28ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgd2lkdGg6IDEzLjVyZW07XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDJyZW0pO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICYgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxM3JlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2YmFyLWNsb3NlIHtcbiAgICAgIC0tbmF2YmFyLWNsb3NlLXNpemU6IDEuOHJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBoZWlnaHQ6IHZhcigtLW5hdmJhci1jbG9zZS1zaXplKTtcbiAgICAgIHdpZHRoOiB2YXIoLS1uYXZiYXItY2xvc2Utc2l6ZSk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMXJlbTtcbiAgICAgIHRvcDogMXJlbTtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgZmlsbDogdmFyKC0tYWNjZW50LXllbGxvdyk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tbmF2YmFyLWNsb3NlLXNpemUpO1xuICAgICAgICB3aWR0aDogdmFyKC0tbmF2YmFyLWNsb3NlLXNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGEsXG4gICAgLm5hdi1saW5rIHtcbiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG5cbiAgICAgICY6bWF0Y2hlcyg6aG92ZXIsIDpmb2N1cykge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZW51LS1tYWluIC5uYXZiYXItbmF2IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwJSA1MCU7XG4gICAgICBncmlkLWdhcDogLjVyZW07XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0td2hpdGUtdHJhbnNwYXJlbnQpO1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLXdoaXRlLXRyYW5zcGFyZW50KTtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgLm5hdi1saW5rLFxuICAgICAgYS5kcm9wZG93bi1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLmhhcy1tZWdhbWVudSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0td2hpdGUtdHJhbnNwYXJlbnQpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAubmF2LWxpbmsge1xuICAgICAgICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgIGZpbGw6IHZhcigtLWxpZ2h0LXByaW1hcnktYmx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAuZHJvcGRvd24tdG9nZ2xlOmFmdGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1lbnUtLW1haW4+Lm5hdmJhci1uYXYge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBDaGlsZCBtZW51cyBkaXNwbGF5IG9wZW4gb24gbW9iaWxlXG4gICAgLm5hdi1pdGVtLmRyb3Bkb3duIHtcbiAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7XG5cbiAgICAgICY+Lm5hdi1saW5rLFxuICAgICAgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdmJhci1uYXYuZHJvcGRvd24tbWVudSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG5cbiAgICAgIC5kcm9wZG93bi1pdGVtIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgICAgICAgZm9udC1zaXplOiAuOWVtO1xuXG4gICAgICAgICY6bWF0Y2hlcyg6aG92ZXIsIDpmb2N1cykge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKlxuICogTWVnYW1lbnVzXG4qL1xuXG4vLyBOYXYgbGluayB3aXRoIGljb25cbi5tZW51LS1tYWluIC5oYXMtbWVnYW1lbnUge1xuICAubmF2LWxpbmsge1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgfVxufVxuXG4ubWVnYW1lbnUtaWNvbiB7XG4gIGhlaWdodDogMS4zcmVtO1xuICB3aWR0aDogMS4zcmVtO1xuICBtYXJnaW46IDAgLTJyZW0gMCAwLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gTWFpbiBuYXYgbGluayBvbiBsYXJnZXIgc2NyZWVuc1xuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuICAubWVudS0tbWFpbiAuaGFzLW1lZ2FtZW51IHtcblxuICAgIC5uYXYtbGluayB7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWRhcmstcHJpbWFyeS1ibHVlKTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3ctc3RhbmRhcmQpO1xuICAgICAgcGFkZGluZy1yaWdodDogLjZyZW07XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICYuc2hvdyB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbGlnaHQtYmx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIGZpbGw6IHZhcigtLWxpZ2h0LXByaW1hcnktYmx1ZSk7XG4gICAgfVxuICB9XG59XG5cbi8vIE1haW4gbmF2IGxpbmsgb24gc21hbGxlciBzY3JlZW5zXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeGwpIHtcbiAgLm1lbnUtLW1haW4gLmhhcy1tZWdhbWVudSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi8vIEZpcnN0IGFkanVzdCBwb3NpdGlvbmluZyBzbyB0aGUgZHJvcGRvd24gd2lsbCBzaXQgaW4gdGhlIHJpZ2h0IHBsYWNlXG4ubWVudS0tbWFpbi5jb250ZXh0dWFsLXJlZ2lvbiB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG5cbiAgLy8gUHV0IHRoZSBjb250ZXh0dWFsIGxpbmtzIGJhY2sgaW4gc29tZSByZWFzb25hYmxlIHBvc2l0aW9uXG4gICY+LmNvbnRleHR1YWwge1xuICAgIHJpZ2h0OiA1cmVtO1xuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZykge1xuXG4gIC8vIEhpZGUgb24gc21hbGxlciBzY3JlZW5zXG4gIC5tZWdhLW1lbnUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gIC5tZWdhLW1lbnUtd3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAzMyU7XG4gICAgZ3JpZC1nYXA6IGNhbGMoMiAqIHZhcigtLWd1dHRlci1zdGFuZGFyZCkpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHdpZHRoOiAxMDB2dztcblxuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICByaWdodDogMDtcblxuICAgICYuc2hvdyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgdG9wOiAyLjZyZW07XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLnZpZXctdGF4b25vbXkge1xuICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAmIHVsIHtcbiAgICAgICAgZ3JpZC1nYXA6IDA7XG4gICAgICB9XG5cbiAgICAgICYgYSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ibGFjayk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtO1xuXG4gICAgICAgICY6bWF0Y2hlcyg6aG92ZXIsIDpmb2N1cykge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0ZXItYmx1ZSk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudmlldy1tb2RlLXNpZGViYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHRlci15ZWxsb3cpO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1iaWcpO1xuICAgICAgcGFkZGluZzogMS4zcmVtO1xuXG4gICAgICAuZmllbGRfX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIH1cblxuICAgICAgPi5maWVsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgIH1cblxuICAgICAgaDIge1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjJyZW0gMCAuN3JlbTtcblxuICAgICAgICAmIGEge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ibGFjayk7XG5cbiAgICAgICAgICAmOmlzKDpob3ZlciwgOmZvY3VzKSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmZpZWxkLmRlc2NyaXB0aW9uIHAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgfVxuXG4gICAgICBhOm5vdCguYnRuKSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuXG4gICAgICAgICY6bWF0Y2hlcyg6aG92ZXIsIDpmb2N1cykge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5idG4ge1xuICAgICAgICAtLWJzLWJ0bi1jb2xvcjogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgICAgICAgLS1icy1idG4tYm9yZGVyOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMS4zcmVtO1xuICAgICAgfVxuXG4gICAgICAudGV4dC1mb3JtYXR0ZWQgdWwgbGkge1xuICAgICAgICBtYXJnaW46IDAuN3JlbSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBNZWdhbWVudSBkcm9wZG93biBhdCBzbWFsbGVyIGRlc2t0b3Agc2l6ZXNcbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbihsZywgeGwpIHtcbiAgLm1lZ2EtbWVudS13cmFwcGVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gNDMlO1xuICAgIG1hcmdpbjogMCAwLjdyZW07XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMS40cmVtKTtcblxuICAgIC52aWV3LXRheG9ub215IHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAwLjNyZW0gMC41cmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLypcbiAqIFN1Ym1pdCBtZW51IC0gYXBwZWFycyBhcyBkcm9wZG93blxuKi9cblxuLmJsb2NrLS1tZW51LXN1Ym1pdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuc3VibWl0LXRvZ2dsZSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwLjRyZW0gLjQ1cmVtIDAuNHJlbSAuOXJlbTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0td2hpdGUpO1xuICAgICAgbWFyZ2luLXRvcDogLjFyZW07XG4gICAgfVxuXG4gICAgJjppcyg6Zm9jdXMpIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgbWFyZ2luLXRvcDogMHJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY29sbGFwc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICB9XG5cbiAgLm5hdmJhci1uYXYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5kcm9wZG93bi1tZW51W2RhdGEtYnMtcG9wcGVyXSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tdG9wOiAuNHJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vIEluIG1vYmlsZSBtZW51XG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obGcpIHtcbiAgLm9mZmNhbnZhcyB7XG4gICAgLmJ0biB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXdoaXRlLXRyYW5zcGFyZW50KTtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgZmlsbDogdmFyKC0tbGlnaHQtcHJpbWFyeS1ibHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2stc3lzdGVtLW1lbnUtYmxvY2tzdWJtaXQge1xuICAgICAgLm5hdmJhci1tYXYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLm5hdi1saW5rIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWJsYWNrKTtcbiAgICAgICAgcGFkZGluZzogLjRyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRyb3Bkb3duLW1lbnVbZGF0YS1icy1wb3BwZXJdIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIG1lbnUgZHJvcGRvd25cbi5tZW51LS1zdWJtaXQge1xuICAubmF2LWxpbmsge1xuICAgIGNvbG9yOiB2YXIoLS1ibGFjayk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBwYWRkaW5nOiAuNDVyZW0gMS4ycmVtO1xuXG4gICAgJjppcyg6aG92ZXIsIDpmb2N1cykge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHQtYmx1ZSk7XG4gICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZ3JleSk7XG4gICAgbWluLXdpZHRoOiAxMS41cmVtO1xuICB9XG59XG5cbi8vIEluIG1vYmlsZSBtZW51XG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obGcpIHtcbiAgLm1lbnUtLXN1Ym1pdCAubmF2YmFyLW5hdiB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG59XG4iLCIvKlxuICogQ29tcG9uZW50IENTUyBmb3Igc2l0ZXdpZGUgZm9vdGVyXG4qL1xuXG4ucGFnZS1mb290ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXJrZXItYmx1ZSk7XG4gIGNvbG9yOiB2YXIoLS1saWdodGVyLWdyZXkpO1xuICBwYWRkaW5nOiA0cmVtIDAgMnJlbTtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKTtcbiAgcGFkZGluZy1yaWdodDogY2FsYygyICogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSk7XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IC43cmVtO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjppcyg6aG92ZXIsIDpmb2N1cykge1xuICAgICAgY29sb3I6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gIH1cblxuICAuY2FyZXQtbGluazpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbiAgfVxufVxuXG4uZm9vdGVyLXRvcCxcbi5yZWdpb24tZm9vdGVyLWJvdHRvbSB7XG4gIEBpbmNsdWRlIG1ha2UtY29udGFpbmVyKCRwYWRkaW5nLXg6IDApO1xufVxuXG4ucmVnaW9uLWZvb3Rlci1ib3R0b20ge1xuICBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0td2hpdGUtdHJhbnNwYXJlbnQpO1xuICBmb250LXNpemU6IC45cmVtO1xuXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICB9XG5cbiAgYS5leHQge1xuICAgIG1hcmdpbi1yaWdodDogLS42cmVtO1xuICB9XG5cbn1cblxuLmZvb3Rlci1sb2dvIHtcbiAgbWFyZ2luLWJvdHRvbTogLjRyZW07XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLm1lbnUtLWZvb3RlciAubmF2LWxpbmsge1xuICBmb250LXNpemU6IC45cmVtO1xuICBwYWRkaW5nOiAuMjVyZW07XG59XG5cbi8vIFNtYWxsZXIgc2NyZWVuIGxheW91dFxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gIC5wYWdlLWZvb3RlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLmZvb3Rlci1sb2dvIHtcbiAgICBtYXgtd2lkdGg6IDE1LjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi8vIExhcmdlciBzY3JlZW4gbGF5b3V0XG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gIC5wYWdlLWZvb3RlciB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1jbGlwLWFuZ2xlLXRvcCk7XG4gIH1cblxuICAuZm9vdGVyLWxvZ28ge1xuICAgIG1heC13aWR0aDogMTcuNXJlbTtcbiAgfVxuXG4gIC5yZWdpb24tZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLWd1dHRlci1zdGFuZGFyZCk7XG5cbiAgICAuYmxvY2stLWJsb2NrLWNvbnRlbnQge1xuICAgICAgbWF4LXdpZHRoOiAzMHJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICAgIH1cblxuICAgIC5ibG9jay0tc29jaWFsLW1lZGlhLWxpbmtzIHtcbiAgICAgIG1hcmdpbi10b3A6IC0yLjJyZW07XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtLWZvb3RlciAubmF2YmFyLW5hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IC41cmVtO1xuICB9XG59XG4iLCJAaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwibGF5b3V0L2hlYWRlclwiLFxuICAgICAgICBcImxheW91dC9tYWluXCIsXG4gICAgICAgIFwibGF5b3V0L2xheW91dC1idWlsZGVyXCIsXG4gICAgICAgIFwibGF5b3V0L21lbnUtLW1haW5cIixcbiAgICAgICAgXCJsYXlvdXQvbWVudS0tc3VibWl0XCIsXG4gICAgICAgIFwibGF5b3V0L2Zvb3RlclwiO1xuXG4uY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICBwYWRkaW5nOiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nKSB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpO1xufVxuIl19 */
