@charset "UTF-8";
/*
 * Alterations for Bootstrap Alerts
 * Configured to be used in Basic blocks using the full html text format
*/
.alert {
  color: var(--black);
}
.alert .btn {
  --bs-btn-color: var(--primary-blue) ;
}
.alert p:last-child {
  margin-bottom: 0;
}

.region-top-notice .alert {
  margin-bottom: 0;
}
.region-top-notice .alert h2,
.region-top-notice .alert .text-formatted {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--responsive-padding);
  text-align: center;
}

@media (max-width: 959.98px) {
  .region-top-notice {
    order: 4;
    grid-column: span 3;
    margin: 1rem calc(-1 * var(--responsive-padding)) -2rem;
  }
  .region-top-notice .btn {
    color: var(--primary-blue);
  }
}
.page-banner .region-banner-notice {
  padding: var(--vertical-padding) var(--responsive-padding);
  margin-right: auto;
  margin-left: auto;
  width: 100%;
  max-width: var(--max-width);
  padding-bottom: 0;
}
.page-banner .region-banner-notice h2 {
  margin: 0 0 1rem;
  text-shadow: none;
}

/*
 * Component CSS for landing page banners
*/
.page-banner {
  --banner-clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4rem), 0% 100%);
}

body:not(.page--landing-page) .page-banner {
  background-color: var(--lighter-grey);
  clip-path: var(--banner-clip-path);
  overflow: hidden;
  padding-bottom: 3rem;
}

.region-banner {
  padding: var(--vertical-padding) var(--responsive-padding);
  margin-right: auto;
  margin-left: auto;
  width: 100%;
  max-width: var(--max-width);
  padding-top: 0.5rem;
}

@media (min-width: 960px) {
  .region-banner.has-org-logo {
    display: grid;
    grid-template-columns: auto auto;
    align-items: end;
    grid-gap: var(--gutter-standard);
  }
  .region-banner.has-org-logo .org-logo {
    display: flex;
    justify-content: flex-end;
    margin-top: 3rem;
  }
}
@media (min-width: 1240px) {
  .region-banner.has-org-logo .org-logo {
    grid-row: span 2;
  }
  .region-banner.has-org-logo .org-logo figure {
    height: 10.5rem;
    width: 10.5rem;
    padding: 1rem;
  }
}
.banner {
  --banner-min-height: 38vw;
  background-color: var(--dark-primary-blue);
  background: linear-gradient(rgba(12, 94, 117, 0.7960784314), rgba(6, 47, 59, 0.8));
  clip-path: var(--banner-clip-path);
  color: var(--white);
  display: flex;
  min-height: var(--banner-min-height);
  padding-bottom: 2rem;
  position: relative;
}
.banner .region-banner {
  padding: 0;
  margin: 0;
}
.banner .region-breadcrumbs {
  margin: 0;
  padding: 1.5rem 0 0 0;
}
.banner h1,
.banner h2 {
  line-height: 1.05;
  margin: 3rem 0 2.6rem;
  text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.7490196078);
}
.banner h1 {
  max-width: 100%;
  word-break: break-word;
}
.banner a:not(.btn) {
  color: var(--accent-yellow);
}

.banner:before,
.banner:after {
  content: "";
  display: block;
  position: absolute;
}

.banner:before {
  background: url(../assets/banner-overlay2.svg) top left no-repeat;
  background-size: contain;
  left: 8%;
  top: 0;
  z-index: 4;
  height: 6rem;
  width: 20%;
}

.banner:after {
  background: url(../assets/banner-overlay1.svg) top left no-repeat;
  background-size: cover;
  z-index: 4;
  top: 0;
  display: grid;
  height: 100%;
  width: 100%;
}

.banner-overlay-2 {
  left: 20%;
  z-index: 1;
}

@media (max-width: 767.98px) {
  .banner {
    padding-bottom: 3rem;
  }
  .banner::before {
    left: 2rem;
    width: 14rem;
  }
}
.banner--image .field-banner-image {
  position: absolute;
  top: 0;
  z-index: 2;
  right: 0;
  height: 100%;
  width: 50%;
}
.banner--image .field-banner-image .media-view--banner {
  display: flex;
  height: 100%;
}
.banner--image .field-banner-image figure {
  margin: 0;
  height: 100%;
  width: 100%;
}
.banner--image .field-banner-image img {
  -webkit-mask-image: url("../assets/banner-photo-mask.svg");
  mask-image: url("../assets/banner-photo-mask.svg");
  -webkit-mask-size: cover;
  mask-size: cover;
  object-fit: cover;
  width: 100%;
  height: 100%;
}

@media (max-width: 959.98px) {
  .field-banner-image {
    display: none;
  }
}
.banner--icon {
  --banner-min-height: 38vw;
}
.banner--icon .banner-content {
  flex: 1 0 auto;
}
.banner--icon .field-banner-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 25%;
  padding-top: 5rem;
  position: absolute;
  right: 0;
  z-index: 10;
}
.banner--icon .field-banner-image .media--icon {
  width: 100%;
}
.banner--icon .field-banner-image .media--icon:not(.icon--keep-colour) svg {
  fill: var(--light-primary-blue);
}
.banner--icon .field-banner-image .media--icon:not(.icon--keep-colour) svg path {
  fill: var(--light-primary-blue);
}
.banner--icon .field-banner-image figure {
  display: flex;
  width: 100%;
}
.banner--icon .field-banner-image svg {
  width: 9rem;
  height: 9rem;
  max-width: 100%;
}

@media (min-width: 1240px) {
  .banner--icon .field-banner-image {
    width: 27%;
  }
  .banner--icon .field-banner-image svg {
    width: 65%;
    height: 65%;
    max-width: 100%;
  }
}
@media (max-width: 959.98px) {
  .banner--icon .field-banner-image {
    display: none;
  }
  .banner--icon .banner-text {
    max-width: 100%;
  }
}
.banner-content {
  padding: 1rem var(--responsive-padding) var(--vertical-padding);
  position: relative;
  max-width: 100%;
  z-index: 10;
}

@media (min-width: 1240px) {
  .banner-content {
    flex: 1 0 auto;
    padding-bottom: calc(2 * var(--vertical-padding));
  }
  .banner .block-system-breadcrumb-block {
    margin-bottom: 4vw;
  }
  .banner-text {
    font-size: 1.2rem;
    line-height: 2.25rem;
  }
}
@media (min-width: 1355px) {
  .banner-content {
    padding-left: calc((100% - var(--max-width)) / 2);
    padding-right: calc((100% - var(--max-width)) / 2);
  }
}
@media (max-width: 1620px) {
  .admin-toolbar-expanded .gin--navigation .banner-content,
  .gin--vertical-toolbar[data-toolbar-menu=open] .banner-content {
    padding-left: 1rem;
  }
}
@media (min-width: 960px) {
  .block--page-title-block {
    max-width: 68%;
  }
  .banner-text {
    font-size: 1.1rem;
    line-height: 2.15rem;
    width: 68%;
  }
}
@media (max-width: 959.98px) {
  .banner-text {
    font-size: 1.1rem;
    line-height: 1.75;
  }
}
@media (min-width: 1240px) {
  .banner-text {
    font-size: 1.35rem;
    line-height: 2.25rem;
    max-width: 64%;
  }
}
.is-front .banner-content {
  display: grid;
  align-items: center;
  min-height: var(--banner-min-height);
}
.is-front h2 {
  font-family: var(--font-family-serif);
  font-size: var(--h1-font-size);
}

.banner .btn-primary {
  --bs-btn-color: var(--darker-blue);
  --bs-btn-border-color: var(--white);
  --bs-btn-hover-bg: var(--accent-yellow);
  --bs-btn-hover-color: var(--darker-blue);
  border-color: var(--white);
}
.banner .btn-primary:is(:hover, :focus, :active) {
  border-color: var(--bs-btn-hover-bg);
}
.banner .btn-secondary {
  --bs-btn-bg: transparent;
  --bs-btn-color: var(--white);
  --bs-btn-hover-bg: var(--accent-yellow);
  --bs-btn-hover-color: var(--darker-blue);
}
.banner .btn-secondary:is(:hover, :focus, :active) {
  background: var(--accent-yellow);
  border-color: var(--bs-btn-hover-bg);
}

/*
 * Common block theming
*/
.block.has-h2-bar h2::before,
.block--heading h2::before,
.block--views h2::before {
  content: "";
  display: block;
  height: 6px;
  width: 1.5rem;
  margin-bottom: 1rem;
  background: var(--primary-blue);
}

.heading-align-centre .block > h2 {
  text-align: center;
}
.heading-align-centre .block > h2::before {
  margin-left: auto;
  margin-right: auto;
}

.block.has-bg-color {
  --bg-color-padding: 2rem;
  padding: var(--bg-color-padding);
  position: relative;
}
.block.has-bg-color h2::before {
  display: none;
}
.block.has-bg-color .field.body {
  position: relative;
  z-index: 4;
}
@media (min-width: 960px) {
  .block.has-bg-color {
    --bg-color-padding: 2.5rem;
    border-radius: var(--border-radius-big);
  }
  .block.has-bg-color::after {
    content: "";
    display: block;
    width: 100%;
    height: 4rem;
    position: absolute;
    bottom: -1rem;
    left: 0;
    z-index: 0;
    border-radius: var(--border-radius-big);
    border-top-left-radius: 0;
    transform: skewY(-3deg);
    background-color: inherit;
  }
}

.layout--twocol-basic .layout__region .block.has-bg-color:first-child {
  margin-top: calc(-1 * var(--bg-color-padding) / 2);
}
@media (max-width: 599.98px) {
  .layout--twocol-basic .layout__region .block.has-bg-color:first-child {
    margin-left: calc(-1 * var(--responsive-padding));
  }
}

.layout--onecol .block.has-bg-color::after {
  display: none;
}

.layout__region--second .block.has-bg-color::after {
  transform: skewY(3deg);
}

/*
 * Component CSS for Buttons block type
*/
.block--buttons ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}
.block--buttons ul li:first-child .btn {
  --bs-btn-color: var(--accent-red);
}

@media (max-width: 599.98px) {
  .block--buttons ul {
    flex-direction: column;
  }
}
.block--views + .block--buttons {
  margin-top: calc(-0.5 * var(--gutter-standard));
}

/*
 ** Component CSS for CTA blocks
*/
.block--cta {
  --cta-padding: 2.25rem;
}
.block--cta h2,
.block--cta .field-text p:last-child {
  margin-bottom: 0.5rem;
}
.block--cta h2 {
  font-size: 2rem;
}
.block--cta.has-bg-color {
  padding: var(--cta-padding);
  position: relative;
}
.block--cta.has-bg-color h2::before {
  display: none;
}
.block--cta.has-bg-color .cta-content,
.block--cta.has-bg-color .btn {
  position: relative;
  z-index: 4;
}
.block--cta.has-icon {
  display: grid;
  grid-template-columns: auto 30%;
  grid-gap: 0.5rem 1rem;
}
.block--cta.has-icon h2,
.block--cta.has-icon .button-link {
  grid-column: span 2;
}
.block--cta .field-icon {
  display: flex;
  justify-content: flex-end;
}
.block--cta .field-icon figure {
  margin: 0;
}
.block--cta .field-icon svg {
  width: 100%;
  height: auto;
  fill: var(--grey);
}
.block--cta .field-icon svg path {
  fill: var(--grey);
}
.block--cta.has-icon:not(.has-bg-color) h2::before {
  background: var(--accent-red);
}
.block--cta.has-icon:not(.has-bg-color) .btn {
  --bs-btn-color: var(--accent-red);
}
.block--cta .cta-content {
  margin-bottom: 1.75rem;
}
.block--cta .cta-content p:last-child {
  margin-bottom: 0;
}
.block--cta .icon-edge--edge,
.block--cta .media--cta-illustration {
  margin-right: calc(-1 * var(--cta-padding));
}
.block--cta .icon-left .icon-edge--edge,
.block--cta .icon-left .media--cta-illustration {
  margin-left: calc(-1 * var(--cta-padding));
  margin-right: auto;
}

@media (min-width: 768px) and (max-width: 1240px) {
  .block--cta {
    --cta-padding: 1.5rem;
    grid-template-columns: auto 30%;
  }
}
@media (min-width: 768px) {
  .block--cta.has-bg-color {
    border-radius: var(--border-radius-big);
  }
}
@media (min-width: 960px) {
  .sidebar .block--cta {
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 1rem;
  }
  .sidebar .block--cta::after {
    content: "";
    display: block;
    width: 100%;
    height: 4rem;
    position: absolute;
    bottom: -1rem;
    left: 0;
    z-index: 0;
    border-radius: var(--border-radius-big);
    border-top-left-radius: 0;
    transform: skewY(-3deg);
    background-color: inherit;
  }
}
.layout--twocol-split.right .block--cta.has-bg-color::after {
  transform: skewY(3deg);
}

@media (min-width: 1240px) {
  .sidebar .block--cta.has-bg-color {
    margin-left: calc(-1 * var(--cta-padding));
    margin-right: calc(-1 * var(--cta-padding));
  }
}
@media (min-width: 960px) {
  .layout--onecol .block--cta {
    --cta-padding: 3rem;
    border-radius: var(--border-radius-bigger);
    max-width: var(--max-width--narrow);
    margin-left: auto;
    margin-right: auto;
    display: grid;
    grid-template-columns: auto 30%;
  }
  .layout--onecol .block--cta h2 {
    grid-column: span 1;
  }
  .layout--onecol .block--cta .field-icon {
    align-items: center;
    grid-row: span 3;
    order: 2;
  }
  .layout--onecol .block--cta .field-text {
    order: 3;
  }
  .layout--onecol .block--cta .button-link {
    grid-column: span 1;
    order: 4;
  }
  .layout--onecol .block--cta.icon-left {
    grid-template-columns: 40% auto;
  }
  .layout--onecol .block--cta.icon-left h2 {
    order: 1;
  }
  .layout--onecol .block--cta.icon-left .field-icon {
    order: 0;
  }
}
@media (min-width: 960px) {
  .layout--onecol .block--cta {
    grid-template-columns: auto 40%;
  }
}
@media (min-width: 960px) {
  .layout--onecol .block--cta .media--cta-illustration {
    overflow: visible;
  }
  .layout--onecol .block--cta .media--cta-illustration img {
    max-width: inherit;
    width: 110%;
  }
  .layout--onecol .block--cta.icon-left .media--cta-illustration {
    transform: translate(-25%, 0);
  }
  .layout--onecol:last-child {
    position: relative;
    z-index: 4;
  }
  .layout--onecol:last-child .block--cta:last-child {
    margin: 0 auto -5rem;
    z-index: 5;
  }
}
@media (min-width: 960px) and (max-width: 1240px) {
  .layout--onecol .block--cta .media--cta-illustration {
    transform: scale(1.3) translate(8%, 1.1rem);
  }
  .layout--onecol .block--cta.icon-left .media--cta-illustration {
    transform: scale(1.3) translate(-32%, 0.8rem);
  }
}
@media (max-width: 959.98px) {
  .block--cta.has-icon {
    grid-template-columns: auto;
  }
  .block--cta .field-icon {
    display: none;
  }
  .block--cta.has-bg-color {
    max-width: none;
    border-radius: 0;
    margin-left: calc(-1 * var(--responsive-padding));
    margin-right: calc(-1 * var(--responsive-padding));
    width: calc(100% + 2 * var(--responsive-padding));
  }
  .layout:last-child .block--cta.has-bg-color,
  .sidebar-bottom .block--cta.has-bg-color {
    margin-bottom: 0;
  }
  .layout:last-child .block--cta.has-bg-color:last-child,
  .sidebar-bottom .block--cta.has-bg-color:last-child {
    margin-bottom: calc(-2 * var(--vertical-padding));
  }
}
/**
 * Component CSS for Social media links
 * Block shown in footer and on Let's Connect page
*/
.block--links {
  margin-bottom: 0;
}
.block--links li {
  margin-bottom: 0.5rem;
}
.block--links svg {
  height: 35px;
  width: 28px;
}
.block--links a {
  color: var(--primary-blue);
}
.block--links .link-text {
  display: none;
}

.layout .block--links {
  margin: 0;
}

.block--links.display-inline .field-pg-links {
  display: flex;
  align-items: center;
  gap: 0.9rem;
}

.block--links.show-text .link-text {
  display: inline-block;
}

.paragraph--type--link-with-icon a {
  display: flex;
  gap: 0.3rem;
  align-items: center;
  justify-content: flex-start;
}
.paragraph--type--link-with-icon a figure {
  margin: 0;
}

/**
 * In the footer
*/
.page-footer .block--links a {
  color: var(--light-grey);
}
.page-footer .block--links a:is(:hover, :focus) {
  color: var(--white);
}
.page-footer .block--links svg.ext {
  display: none;
}

@media (max-width: 959.98px) {
  .page-footer .block-social-media-links-block {
    margin: 2rem 0;
  }
  .page-footer .field-pg-links {
    justify-content: center;
  }
}
@media (min-width: 960px) {
  .page-footer .field-pg-links {
    justify-content: end;
  }
}
/*
 * Component CSS for block card copmonent
 */
.block--card h3 {
  margin-bottom: 1.3rem;
}
.block--card .field-media-image {
  border-radius: var(--border-radius-big);
  margin-bottom: 1rem;
  overflow: hidden;
}
.block--card .field-media-image figure {
  margin: 0;
}
.block--card .field-media-image img {
  display: block;
  width: 100%;
}
.block--card .media--icon svg {
  width: 3rem;
  height: 2.5rem;
}
.block--card .media--icon svg,
.block--card .media--icon path {
  fill: var(--primary-blue);
}
.block--card .field-links a {
  display: block;
  line-height: 1.2;
  margin-bottom: 0.4rem;
  padding-left: 1.2rem;
}
.block--card .field-links a:before {
  content: "";
  display: inline-block;
  border: 0.4rem solid transparent;
  border-left: 0.4rem solid var(--primary-blue);
  margin-right: 0.3rem;
  margin-left: -1.1rem;
}

.region-breadcrumbs {
  --bs-breadcrumb-divider-color: var(--white);
  padding: var(--vertical-padding) var(--responsive-padding);
  margin-right: auto;
  margin-left: auto;
  width: 100%;
  max-width: var(--max-width);
  padding-bottom: 1rem;
}

ol.breadcrumb {
  margin: 0;
  padding-bottom: 0;
}

/*
 ** Component CSS for Events
*/
.event-location-mode {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

/*
 * Additional component theming for forms
*/
form {
  --bs-border-width: 2px;
}

.form-item {
  margin-bottom: 1rem;
}

.form-wrapper {
  margin: 0 0 1.8rem;
}
.form-wrapper .form-item {
  margin: 0 0 1rem;
}
.form-wrapper .form-wrapper {
  margin: 0;
}

.form-control {
  max-width: calc(100vw - 2 * var(--responsive-padding));
}

.form-actions {
  margin-top: 1.8rem;
}

.form-submit {
  --bs-btn-color: var(--accent-red);
}

details {
  background: var(--lighter-grey);
  border: none;
}

summary {
  border: 2px solid var(--grey);
}
summary::focus {
  border-color: var(--dark-grey);
}

legend {
  font-weight: bold;
}

label,
.label {
  display: inline-block;
  font-size: 0.9em;
  font-weight: bold;
  margin-bottom: 0.3rem;
}

.description,
.counter {
  font-size: 0.85em;
  line-height: 1.5;
}

.form-text {
  margin-top: 0;
}

input .form-item,
select .form-radios .form-item,
.form-checkboxes .form-item,
.term-reference-tree-level .form-item {
  display: flex;
  gap: 0.5rem;
  margin: 0.5rem 0;
}

.form-check-input:checked {
  background-color: var(--primary-blue);
  border-color: var(--primary-blue);
}

/**
 * Component CSS for Jobs/RFPs nodes
 */
.field-job-oloection > div {
  display: inline-block;
}

.job-rfp.teaser .job-rfp-content > span::after {
  content: "";
  display: inline-block;
  background-color: var(--black);
  border-radius: 50%;
  height: 0.25rem;
  width: 0.25rem;
  vertical-align: middle;
  margin: 0 0.25rem;
}
.job-rfp.teaser .job-rfp-content > span:last-child::after {
  display: none;
}
.job-rfp.teaser .job-rfp-deadline {
  color: var(--dark-grey);
  font-weight: 500;
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .job-rfp.teaser.has-logo {
    display: grid;
    grid-template-columns: auto 9.2rem;
    gap: 0 var(--gutter-standard);
  }
  .job-rfp.teaser .content-labels {
    grid-column: span 2;
  }
  .job-rfp.teaser .content {
    display: flex;
    flex-direction: column;
  }
  .job-rfp.teaser .content .job-rfp-deadline {
    margin-top: auto;
  }
  .job-rfp.teaser .org-logo {
    order: 2;
    margin-top: 0.5rem;
    padding-right: 1.5rem;
  }
}
@media (max-width: 767.98px) {
  .job-rfp.teaser .org-logo {
    display: none;
  }
}

/*
 * Component CSS for media entities
*/
.logos-inline {
  display: grid;
  align-items: center;
  justify-content: center;
  grid-gap: calc(2 * var(--gutter-standard));
  margin-bottom: -1rem;
}
.logos-inline li {
  display: grid;
  align-items: center;
  justify-content: center;
}
.logos-inline img {
  height: 55px;
  width: auto;
}
@media (min-width: 768px) {
  .logos-inline {
    grid-template-columns: auto auto;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
  }
  .logos-inline img {
    height: 75px;
  }
}

.media--image.content-half-width {
  width: 50%;
}

.media--image.content-full-width {
  width: 100%;
}

.field-file-attachment .grid {
  grid-gap: 1rem;
}

.media--document {
  border: 1px solid var(--darker-blue);
  border-radius: 0;
  display: flex;
  flex-direction: column;
  min-height: 10rem;
  height: 100%;
  width: 100%;
}
.media--document.filetype-doc {
  padding: 1rem;
}
.media--document .field-media-document {
  line-height: 1.3;
  margin-bottom: auto;
  word-wrap: break-word;
}
.media--document .file-info {
  color: var(--dark-grey);
  font-size: 0.85rem;
  font-weight: 500;
  margin-bottom: 0;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.media--document .file-size {
  margin-left: 0.2rem;
}
.media--document .file-icon {
  height: 1.2rem;
  width: 0.9rem;
  fill: var(--grey);
  margin-right: 0.5rem;
}
.media--document.filetype-img a {
  display: grid;
  height: 100%;
}
.media--document.filetype-img img {
  object-fit: cover;
  height: 100%;
}

/**
 * Misc. Additional nav components
*/
.pagination {
  --bs-pagination-active-bg: var(--primary-blue);
  --bs-pagination-active-border-color: var(--primary-blue);
  --bs-pagination-color: var(--primary-blue);
  flex-wrap: wrap;
  margin: 3rem 0;
}

.page-link:is(:hover, :focus) {
  background-color: var(--lighter-grey);
  text-decoration: none;
}

@media (max-width: 767.98px) {
  .pagination .page-item.pager__item--next span, .pagination .page-item.pager__item--last span, .pagination .page-item.pager__item--first span, .pagination .page-item.pager__item--previous span {
    display: none;
  }
  .pagination .page-item.pager__item--next .page-link::after, .pagination .page-item.pager__item--last .page-link::after, .pagination .page-item.pager__item--first .page-link::after, .pagination .page-item.pager__item--previous .page-link::after {
    content: "";
    display: inline-block;
  }
  .pagination .page-item.pager__item--next .page-link::after {
    content: "›";
  }
  .pagination .page-item.pager__item--last .page-link::after {
    content: "»";
  }
  .pagination .page-item.pager__item--first .page-link::after {
    content: "«";
  }
  .pagination .page-item.pager__item--previous .page-link::after {
    content: "‹";
  }
}
/**
 * Component CSS common to several node types & view modes
 * Usually common to Resources, Jobs/RFPs, News & Events
 */
.path-node .node-preview-container.node-preview-container .form-item {
  display: flex;
  align-items: center;
}
.path-node .node-preview-container.node-preview-container .form-item label {
  white-space: nowrap;
}

.content-labels {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.content-label {
  background-color: var(--light-primary-blue);
  border-radius: var(--border-radius-small);
  display: inline-block;
  font-weight: 500;
  line-height: 1.1;
  margin-top: -1px;
  padding: 0.5rem 0.7rem;
}

.created-interval {
  background-color: var(--dark-grey);
  border-radius: 0.5rem;
  color: var(--white);
  float: right;
  font-size: 0.9rem;
  font-weight: 600;
  margin: 0.3rem;
  padding: 0.1rem 0.5rem;
}

@media (min-width: 1240px) {
  .region-banner .content-label {
    font-size: 1.5rem;
    padding: 0.5em 0.7em;
    margin-bottom: 1rem;
  }
}
.node.teaser.event, .node.teaser.news {
  position: relative;
}
.node.teaser.event .content-label, .node.teaser.news .content-label {
  position: absolute;
  left: 0;
  top: 0;
}

.node.card,
.node.teaser {
  --default-image-size: 12rem;
  background-color: var(--lighter-blue);
  border-radius: var(--border-radius-small);
  margin-bottom: var(--gutter-standard);
  display: block;
  position: relative;
}
.node.card .content,
.node.teaser .content {
  padding: 1rem;
}
.node.card h2,
.node.card h3,
.node.teaser h2,
.node.teaser h3 {
  font-size: 1.35rem;
  margin: 0 0 0.35rem;
}
.node.card h2 a,
.node.card h3 a,
.node.teaser h2 a,
.node.teaser h3 a {
  color: var(--black);
}
.node.card h2 a::after,
.node.card h3 a::after,
.node.teaser h2 a::after,
.node.teaser h3 a::after {
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  z-index: 10;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  left: 0;
  border: 2px solid var(--light-primary-blue);
  box-shadow: var(--box-shadow-standard);
}
.node.card h2 a:is(:hover, :focus)::after,
.node.card h3 a:is(:hover, :focus)::after,
.node.teaser h2 a:is(:hover, :focus)::after,
.node.teaser h3 a:is(:hover, :focus)::after {
  box-shadow: none;
}
.node.card h2 a:is(:focus-within)::after,
.node.card h3 a:is(:focus-within)::after,
.node.teaser h2 a:is(:focus-within)::after,
.node.teaser h3 a:is(:focus-within)::after {
  border-color: var(--primary-blue);
}
.node.card .field-employer,
.node.teaser .field-employer {
  font-weight: 600;
}
.node.card .field.body,
.node.teaser .field.body {
  margin: 0.5rem 0 1rem;
}
.node.card .field.body p:first-child,
.node.teaser .field.body p:first-child {
  margin-top: 0;
}
.node.card .field.body p:last-child,
.node.teaser .field.body p:last-child {
  margin-bottom: 0;
}
.node.card .date,
.node.teaser .date {
  color: var(--dark-grey);
  font-weight: 500;
  margin-bottom: 0;
  padding-top: 1rem;
}
.node.card .datetime.lang--fr,
.node.teaser .datetime.lang--fr {
  text-transform: lowercase;
}
.node.card .default-image,
.node.teaser .default-image {
  background: var(--light-grey);
  display: grid;
  align-items: center;
  justify-content: center;
  height: var(--default-image-size);
  overflow: hidden;
}
.node.card .default-image:before,
.node.teaser .default-image:before {
  content: "";
  display: block;
  height: calc(1.2 * var(--default-image-size));
  width: calc(1.2 * var(--default-image-size));
  background: var(--lighter-grey);
  border-radius: 50%;
  margin: -1rem 0;
}
.node.card .default-image svg,
.node.teaser .default-image svg {
  --icon-size: 3.8rem;
  width: var(--icon-size);
  height: var(--icon-size);
  position: absolute;
  left: calc(50% - var(--icon-size) / 2);
  position: absolute;
  z-index: 6;
  fill: var(--grey);
}
.node.card .default-image svg path,
.node.teaser .default-image svg path {
  fill: var(--grey);
}
.node.card.event .media figure, .node.card.news-digest .media figure, .node.card.news .media figure,
.node.teaser.event .media figure,
.node.teaser.news-digest .media figure,
.node.teaser.news .media figure {
  height: var(--default-image-size);
  overflow: hidden;
  margin: 0;
  width: 100%;
}
.node.card.event .media figure img, .node.card.news-digest .media figure img, .node.card.news .media figure img,
.node.teaser.event .media figure img,
.node.teaser.news-digest .media figure img,
.node.teaser.news .media figure img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}

@media (max-width: 599.98px) {
  .node.teaser .field.body {
    display: none;
  }
}
.grid li > .node {
  height: calc(100% - var(--gutter-standard));
}
.grid li > .node .content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  height: calc(100% - 3.5rem - var(--gutter-standard));
}
.grid li > .node .date {
  margin-top: auto;
}
.grid li > .node.event .content, .grid li > .node.news-digest .content, .grid li > .node.news .content {
  height: calc(100% - var(--default-image-size));
}

.paragraph--type--link-with-description {
  margin-bottom: 1rem;
}
.paragraph--type--link-with-description h2 {
  font-weight: 700;
}

/*
 ** Component CSS for node details view mode
 ** Used for Events and Jobs/RFPs
*/
.node.details {
  background-color: var(--lighter-blue);
  margin-bottom: calc(3 * var(--gutter-standard));
  padding: var(--gutter-standard);
  position: relative;
}
.node.details .content {
  position: relative;
  z-index: 4;
}
.node.details a:not(.btn) {
  color: var(--accent-red);
}
.node.details a.btn {
  --bs-btn-color: var(--accent-red);
}
.node.details a.ext svg {
  fill: var(--accent-red);
}
.node.details a.ext svg path {
  stroke: var(--accent-red);
}
.node.details a.ext.btn:is(:hover, :focus) svg {
  fill: var(--white);
}
.node.details a.ext.btn:is(:hover, :focus) svg path {
  stroke: var(--white);
}
.node.details .field {
  margin-bottom: 1rem;
}
.node.details .field__label {
  display: inline-block;
}
.node.details .field__label:after {
  content: ":";
  display: inline;
  margin-right: 0.4rem;
}
.node.details.lang--fr .field__label::after {
  margin-left: 0.4rem;
}
.node.details .field-event-location div,
.node.details .field-job-location div {
  display: inline;
}
@media (max-width: 767.98px) {
  .node.details {
    margin-left: calc(-1 * var(--responsive-padding));
    margin-right: calc(-1 * var(--responsive-padding));
    width: calc(100% + 2 * var(--responsive-padding));
    clip-path: var(--clip-angle-bottom);
    padding-bottom: calc(2 * var(--gutter-standard));
  }
}
@media (min-width: 768px) {
  .node.details {
    border-radius: var(--border-radius-big);
    padding-bottom: 0.2rem;
  }
  .node.details::after {
    content: "";
    display: block;
    width: 100%;
    height: 4rem;
    position: absolute;
    bottom: -1rem;
    left: 0;
    z-index: 0;
    border-radius: var(--border-radius-big);
    border-top-left-radius: 0;
    transform: skewY(-3deg);
    background-color: inherit;
  }
}

html[lang=fr] .field-job-deadline-date time {
  text-transform: lowercase;
}

/**
 * Component CSS for full nodes
 * Common to Resources, Events, Jobs/RFPs, News
*/
.node.full .main .block--layout-builder > .field.body.summary-trimmed {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.5;
}
.node.full.job-rfp .main .block--layout-builder > .field.body.summary-trimmed {
  font-size: 1rem;
  font-weight: normal;
  line-height: inherit;
}
.node.full .field-links li {
  margin-bottom: 0.5rem;
}
.node.full .sidebar-top .block {
  margin-bottom: var(--gutter-standard);
}
.node.full .sidebar-top p {
  margin-bottom: 0.75rem;
}
.node.full .sidebar-top ul {
  margin-bottom: 0;
}
.node.full .sidebar-top ul.list-unstyled li {
  margin-bottom: 0.75rem;
}

.lang--fr .node.full .field--name-created,
.lang--fr .node.full .field.changed .field__item {
  text-transform: lowercase;
}

.field-regions .term-tree-list > .item-list > .term > li {
  list-style: none;
  margin-left: 0;
}
.field-regions .term-tree-list .selected {
  font-weight: 500;
}

.field-settlenet-org-link {
  background: url("../assets/settlenet-discuss-icon.svg") no-repeat 95% center;
  background-color: var(--lighter-grey);
  display: flex;
  align-items: center;
  padding: var(--gutter-standard);
}
.field-settlenet-org-link p {
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .field-settlenet-org-link {
    background-size: 24%;
    border-radius: var(--border-radius-big);
    height: 130px;
    padding-right: 210px;
  }
}
@media (max-width: 767.98px) {
  .field-settlenet-org-link {
    background-size: 150px;
    margin: 0 calc(-1 * var(--responsive-padding));
    height: auto;
    padding-right: 160px;
  }
}

.field-partnerships {
  background-color: var(--lighter-yellow);
  padding: var(--gutter-standard);
}
.field-partnerships p:last-child {
  margin-bottom: 0;
}
.field-partnerships svg.ext {
  margin-right: -0.6rem;
}
@media (max-width: 767.98px) {
  .field-partnerships {
    margin-left: calc(-1 * var(--responsive-padding));
    margin-right: calc(-1 * var(--responsive-padding));
    width: calc(100% + 2 * var(--responsive-padding));
  }
}
@media (min-width: 768px) {
  .field-partnerships {
    border-radius: var(--border-radius-big);
  }
  .field-partnerships.has-logo {
    display: grid;
    grid-template-columns: auto 8.2rem;
    grid-gap: var(--gutter-standard);
    align-items: center;
  }
}

.views-exposed-form form {
  position: relative;
}
.views-exposed-form h3 {
  margin-bottom: 0;
}

.sidebar-top .views-exposed-from h2::before {
  display: none;
}
.sidebar-top .views-exposed-from .form-submit {
  --bs-btn-bg: var(--accent-red);
  --bs-btn-color: var(--white);
  font-size: 0.9em;
  padding: 0.6rem 0.8rem;
}

.exposed-search-form {
  --search-button-width: 2.5rem;
  --search-form-height: 2.5rem;
}
.exposed-search-form .form-type-textfield {
  float: left;
  margin: 0;
  width: calc(100% - var(--search-button-width));
}
.exposed-search-form .form-type-textfield label {
  display: none;
}
.exposed-search-form .form-type-textfield .form-text {
  height: var(--search-form-height);
}
.exposed-search-form .form-submit {
  --bs-btn-active-color: transparent;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  display: inline-block;
  margin: 0 0 0 -4px;
  padding: 0.6rem;
  height: var(--search-form-height);
  width: var(--search-button-width);
  color: transparent;
  background: var(--primary-blue) center center no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' fill='%23fff' viewBox='0 0 512 512'%3E%3Cpath d='M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z'/%3E%3C/svg%3E");
  background-size: 50%;
  background-position: center center;
}
.exposed-search-form .form-submit:is(:hover, :focus) {
  border-color: var(--accent-red);
  background-color: var(--accent-red);
}

.sidebar-top .views-exposed-form .form-reset {
  background: transparent;
  border: none;
  box-shadow: none;
  color: var(--primary-blue);
  margin: 0 0 0 1rem;
  padding: 0;
  text-transform: capitalize;
  width: auto;
}
.sidebar-top .views-exposed-form .form-reset:is(:hover, :focus) {
  color: var(--primary-blue);
  text-decoration: underline;
}

.bef-exposed-form details {
  border: none;
  margin: 0 0 -2px;
}
.bef-exposed-form details:first-of-type {
  border-top-left-radius: var(--border-radius-small);
  border-top-right-radius: var(--border-radius-small);
  overflow: hidden;
}
.bef-exposed-form details summary {
  font-weight: 500;
  padding: 0.5rem 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.bef-exposed-form details summary::marker {
  content: "";
  display: none;
}
.bef-exposed-form details summary::after {
  content: "";
  display: inline-block;
  border-top: 4px solid var(--primary-blue);
  border-right: 4px solid var(--primary-blue);
  height: 0.6rem;
  width: 0.6rem;
  transform: rotate(45deg);
  display: inline-block;
}
.bef-exposed-form details summary[aria-expanded=true]::after {
  transform: rotate(135deg);
}
.bef-exposed-form details .details-wrapper {
  background: var(--lighter-grey);
  padding: 0.5rem 1rem;
}
.bef-exposed-form details fieldset {
  margin: 0;
}
.bef-exposed-form details legend {
  display: none;
}
.bef-exposed-form details label {
  font-size: 0.95em;
}

.bef-checkboxes.bef-nested ul {
  list-style: none;
  padding: 0;
}

.collapsible-checkboxes-trigger::before {
  content: "+";
  display: inline-block;
  margin-right: 0.2rem;
}
.collapsible-checkboxes-trigger.show::before {
  content: "-";
}

.collapsible-checkboxes .bef-checkboxes li:nth-child(n+6) {
  display: none;
}
.collapsible-checkboxes.show .bef-checkboxes li:nth-child(n+6) {
  display: block;
}

.form-item-sort-bef-combine {
  border: 2px solid var(--grey);
  border-radius: var(--border-radius-small);
  display: flex;
  align-items: center;
  padding: 0.2rem 0.5rem;
}
.form-item-sort-bef-combine:focus {
  border-color: var(--primary-blue);
}
.form-item-sort-bef-combine .form-item {
  margin: 0;
}
.form-item-sort-bef-combine label {
  margin: 0.2rem 0 0;
  white-space: nowrap;
}
.form-item-sort-bef-combine label:after {
  content: ":";
}
.form-item-sort-bef-combine select {
  border: none;
}
.form-item-sort-bef-combine select:focus {
  border: none;
  box-shadow: none;
}

.bef-exposed-form .form-submit {
  --bs-btn-disabled-bg: var(--bs-btn-active-bg);
  --bs-btn-disabled-border-color: var(--bs-btn-active-bg);
  --bs-btn-color: var(--white);
  --bs-btn-bg: var(--primary-blue);
  --bs-btn-hover-bg: var(--accent-red);
  border: none;
}

/*
 * Component CSS for Social sharing links
*/
.social-sharing-buttons {
  justify-content: start;
  margin: 1rem 0;
}
.social-sharing-buttons h2 {
  font-size: 1rem;
  font-weight: normal;
  margin: 0;
}
.social-sharing-buttons .icon {
  height: 1.2rem;
  width: 1.2rem;
  fill: var(--grey);
}
.social-sharing-buttons a:not(:last-child):after {
  content: ",";
  display: inline-block;
}

/**
 * Component CSS for taxonomy terms
*/
.view-taxonomy .columns--3col ul {
  margin: 1rem 0 1rem;
}
.view-taxonomy .columns--3col li {
  margin-bottom: 0.5rem;
  break-inside: avoid;
}

.taxonomy-term.full .description {
  font-weight: 600;
  font-size: 1.35rem;
  max-width: 50rem;
}

.org-logo figure {
  background: var(--white);
  border: 3px solid var(--light-grey);
  border-radius: var(--border-radius-big);
  display: grid;
  align-items: center;
  justify-content: center;
  width: 8.2rem;
  height: 8.2rem;
  padding: 0.8rem;
}

.taxonomy-term.megamenu-card h2 a {
  font-weight: 600;
  color: var(--black);
}
.taxonomy-term.megamenu-card.has-logo .content {
  display: grid;
  grid-template-columns: auto auto;
  grid-gap: 0.5rem;
}
.taxonomy-term.megamenu-card .org-logo figure {
  border-color: var(--accent-yellow);
  width: 5.2rem;
  height: 5.2rem;
}
.taxonomy-term.megamenu-card > .btn {
  font-size: 0.9rem;
}

.taxonomy-term .tab-pane.block--views > h2 {
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.taxonomy-term .tab-pane.block--views > h2:not(caption) {
  position: absolute !important;
}
.taxonomy-term .tab-pane.block--views > h2 * {
  overflow: hidden !important;
}

.taxonomy-term.full .group-more-info {
  margin-top: var(--gutter-standard);
}
.taxonomy-term.full .group-more-info h2 {
  margin-bottom: 0.8rem;
}
.taxonomy-term.full .group-more-info h2::before {
  content: "";
  display: block;
  height: 6px;
  width: 1.5rem;
  margin-bottom: 1rem;
  background: var(--primary-blue);
}
.taxonomy-term.full .group-more-info .field__label {
  font-weight: normal;
  margin-right: 0.2rem;
}

@media (min-width: 768px) {
  .taxonomy-term.full .group-org-info {
    display: grid;
    grid-template-columns: auto minmax(10rem, 14rem);
    grid-gap: var(--gutter-standard);
  }
  .field-organization-logo {
    order: 2;
  }
}
/**
 * Component CSS for Org/Agency taxonomy terms
*/
@media (max-width: 767.98px) {
  .field-organization-logo {
    display: none;
  }
}
.taxonomy-term.full .group-more-info {
  margin-top: var(--gutter-standard);
}
.taxonomy-term.full .group-more-info h2 {
  margin-bottom: 0.8rem;
}
.taxonomy-term.full .group-more-info h2::before {
  content: "";
  display: block;
  height: 6px;
  width: 1.5rem;
  margin-bottom: 1rem;
  background: var(--primary-blue);
}
.taxonomy-term.full .group-more-info .field__label {
  font-weight: normal;
  margin-right: 0.2rem;
}

@media (min-width: 768px) {
  .vocabulary-orgs-and-agencies .group-org-info {
    display: grid;
    grid-template-columns: auto 10rem;
    grid-gap: var(--gutter-standard);
  }
  .field-organization-logo {
    order: 2;
    display: grid;
    justify-content: end;
  }
}
.nav-tabs .nav-link {
  background: var(--lighter-grey);
  border-bottom: 1px solid var(--grey);
  border-radius: 0;
  color: var(--primary-blue);
  font-weight: 500;
  padding: 0.5rem 1rem;
}

.taxonomy-twocol-tabs .nav-tabs {
  --tab-border-width: 2px;
  border: none;
  align-items: end;
  flex-wrap: nowrap;
  margin-bottom: var(--vertical-padding);
  overflow: visible;
  white-space: nowrap;
}
.taxonomy-twocol-tabs .nav-tabs::after {
  content: "";
  display: block;
  background-color: var(--grey);
  height: var(--tab-border-width);
  width: 100%;
}
.taxonomy-twocol-tabs .nav-tabs .nav-link {
  border-bottom: 0;
  position: relative;
  z-index: 2;
}
.taxonomy-twocol-tabs .nav-tabs .nav-link::after {
  content: "";
  display: block;
  background-color: var(--grey);
  width: calc(100% + var(--tab-border-width));
  height: var(--tab-border-width);
  position: absolute;
  left: 1px;
  bottom: 0.5px;
  margin: 0 calc(-1 * var(--tab-border-width));
  z-index: 4;
}
.taxonomy-twocol-tabs .nav-tabs .nav-link.active {
  background-color: transparent;
  color: var(--black);
  border-top-left-radius: var(--border-radius-small);
  border-top-right-radius: var(--border-radius-small);
  border: var(--tab-border-width) solid var(--grey);
  border-bottom: none;
}
.taxonomy-twocol-tabs .nav-tabs .nav-link.active::after {
  background-color: var(--white);
  width: 100%;
  left: var(--tab-border-width);
  height: calc(1px + var(--tab-border-width));
}
.taxonomy-twocol-tabs .nav-tabs .nav-link:is(:hover, :focus-visible) {
  background: var(--light-grey);
  border-color: var(--light-grey);
}
.taxonomy-twocol-tabs .nav-tabs .nav-link:is(:hover, :focus-visible)::after {
  display: none;
}

@media (max-width: 767.98px) {
  .taxonomy-twocol-tabs .nav-tabs {
    cursor: grab;
    margin-left: calc(-1 * var(--responsive-padding));
    margin-right: calc(-1 * var(--responsive-padding));
    overflow: auto;
    scrollbar-width: none;
  }
}
@media (max-width: 599.98px) {
  .taxonomy-twocol-tabs .nav-tabs .nav-link::after {
    bottom: 1.5px;
  }
  .taxonomy-twocol-tabs .nav-tabs::before {
    content: "";
    display: block;
    background: linear-gradient(90deg, transparent, rgba(175, 175, 175, 0.5));
    height: 2.5rem;
    width: 11px;
    position: absolute;
    right: 0;
    z-index: 99;
  }
}
.tab-pane {
  display: none;
}
.tab-pane.show {
  display: block;
}

/**
 * Component CSS for Views
*/
.view-header-filters .form-actions {
  display: none;
}
.view-header-filters .form-wrapper {
  margin: 0;
}

@media (min-width: 768px) {
  .view-header-filters {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--gutter-standard);
  }
  .view-header-filters .views-exposed-form,
  .view-header-filters .form-item-sort-bef-combine {
    margin: 0;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMuY3NzIiwiY29tcG9uZW50cy9fYWxlcnRzLnNjc3MiLCIuLi8uLi8uLi9jb250cmliL2Jvb3RzdHJhcDUvZGlzdC9ib290c3RyYXAvNS4zLjgvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJjb21wb25lbnRzL19iYW5uZXIuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2Nrcy5zY3NzIiwiY29tcG9uZW50cy9fYmxvY2stLWJ1dHRvbnMuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2NrLS1jdGEuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2NrLS1saW5rcy5zY3NzIiwiY29tcG9uZW50cy9fYmxvY2stLWNhcmQuc2NzcyIsImNvbXBvbmVudHMvX2JyZWFkY3J1bWIuc2NzcyIsImNvbXBvbmVudHMvX2V2ZW50cy5zY3NzIiwiY29tcG9uZW50cy9fZm9ybXMuc2NzcyIsImNvbXBvbmVudHMvX2pvYi1yZnAuc2NzcyIsImNvbXBvbmVudHMvX21lZGlhLnNjc3MiLCJjb21wb25lbnRzL19uYXYuc2NzcyIsImNvbXBvbmVudHMvX25vZGVzLnNjc3MiLCJjb21wb25lbnRzL19ub2RlLS1kZXRhaWxzLnNjc3MiLCJjb21wb25lbnRzL19ub2RlLS1mdWxsLnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2gtdmlld3Muc2NzcyIsImNvbXBvbmVudHMvX3NvY2lhbC1zaGFyZS5zY3NzIiwiY29tcG9uZW50cy9fdGF4b25vbXktdGVybS5zY3NzIiwiLi4vLi4vLi4vY29udHJpYi9ib290c3RyYXA1L2Rpc3QvYm9vdHN0cmFwLzUuMy44L3Njc3MvbWl4aW5zL192aXN1YWxseS1oaWRkZW4uc2NzcyIsImNvbXBvbmVudHMvX3RheG9ub215LXRlcm0tLW9yZ3MtYWdlbmNpZXMuc2NzcyIsImNvbXBvbmVudHMvX3RhYnMuc2NzcyIsImNvbXBvbmVudHMvX3ZpZXdzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdC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QUNBLDRDQUFBO0VBQ0EsVUFBQTtBeEIwdEROO0F3QnR0REk7RUFDRSw2QkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0RBQUE7RUFDQSxtREFBQTtFQUNBLGlEQUFBO0VBQ0EsbUJBQUE7QXhCd3RETjtBd0J0dERNO0VBQ0UsOEJBQUE7RUFDQSxXQUFBO0VBQ0EsNkJBQUE7RUFDQSwyQ0FBQTtBeEJ3dERSO0F3Qm50REk7RUFDRSw2QkFBQTtFQUNBLCtCQUFBO0F4QnF0RE47QXdCbnRETTtFQUNFLGFBQUE7QXhCcXREUjs7QUVqdERJO0VzQklGO0lBQ0UsWUFBQTtJQUNBLGlEQUFBO0lBQ0Esa0RBQUE7SUFDQSxjQUFBO0lBQ0EscUJBQUE7RXhCaXRERjtBQUNGO0FFM3RESTtFc0JnQkE7SUFDRSxhQUFBO0V4QjhzREo7RXdCMXNERTtJQUNFLFdBQUE7SUFDQSxjQUFBO0lBQ0EseUVBQUE7SUFDQSxjQUFBO0lBQ0EsV0FBQTtJQUNBLGtCQUFBO0lBQ0EsUUFBQTtJQUNBLFdBQUE7RXhCNHNESjtBQUNGO0F3QnZzREE7RUFDRSxhQUFBO0F4QnlzREY7QXdCdnNERTtFQUNFLGNBQUE7QXhCeXNESjs7QXlCNXpEQTs7Q0FBQTtBQU1FO0VBQ0UsYUFBQTtBekI0ekRKO0F5Qnp6REU7RUFDRSxTQUFBO0F6QjJ6REo7O0FFdndESTtFdUIvQ0Y7SUFDRSxhQUFBO0lBQ0EsOEJBQUE7SUFDQSxtQkFBQTtJQUNBLHFDQUFBO0V6QjB6REY7RXlCeHpERTs7SUFFRSxTQUFBO0V6QjB6REo7QUFDRiIsImZpbGUiOiJjb21wb25lbnRzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qXG4gKiBBbHRlcmF0aW9ucyBmb3IgQm9vdHN0cmFwIEFsZXJ0c1xuICogQ29uZmlndXJlZCB0byBiZSB1c2VkIGluIEJhc2ljIGJsb2NrcyB1c2luZyB0aGUgZnVsbCBodG1sIHRleHQgZm9ybWF0XG4qL1xuLmFsZXJ0IHtcbiAgY29sb3I6IHZhcigtLWJsYWNrKTtcbn1cbi5hbGVydCAuYnRuIHtcbiAgLS1icy1idG4tY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSkgO1xufVxuLmFsZXJ0IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5yZWdpb24tdG9wLW5vdGljZSAuYWxlcnQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnJlZ2lvbi10b3Atbm90aWNlIC5hbGVydCBoMixcbi5yZWdpb24tdG9wLW5vdGljZSAuYWxlcnQgLnRleHQtZm9ybWF0dGVkIHtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NTkuOThweCkge1xuICAucmVnaW9uLXRvcC1ub3RpY2Uge1xuICAgIG9yZGVyOiA0O1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDM7XG4gICAgbWFyZ2luOiAxcmVtIGNhbGMoLTEgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKSAtMnJlbTtcbiAgfVxuICAucmVnaW9uLXRvcC1ub3RpY2UgLmJ0biB7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gIH1cbn1cbi5wYWdlLWJhbm5lciAucmVnaW9uLWJhbm5lci1ub3RpY2Uge1xuICBwYWRkaW5nOiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nKSB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cbi5wYWdlLWJhbm5lciAucmVnaW9uLWJhbm5lci1ub3RpY2UgaDIge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuLypcbiAqIENvbXBvbmVudCBDU1MgZm9yIGxhbmRpbmcgcGFnZSBiYW5uZXJzXG4qL1xuLnBhZ2UtYmFubmVyIHtcbiAgLS1iYW5uZXItY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIGNhbGMoMTAwJSAtIDRyZW0pLCAwJSAxMDAlKTtcbn1cblxuYm9keTpub3QoLnBhZ2UtLWxhbmRpbmctcGFnZSkgLnBhZ2UtYmFubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHRlci1ncmV5KTtcbiAgY2xpcC1wYXRoOiB2YXIoLS1iYW5uZXItY2xpcC1wYXRoKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XG59XG5cbi5yZWdpb24tYmFubmVyIHtcbiAgcGFkZGluZzogdmFyKC0tdmVydGljYWwtcGFkZGluZykgdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5yZWdpb24tYmFubmVyLmhhcy1vcmctbG9nbyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bztcbiAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xuICB9XG4gIC5yZWdpb24tYmFubmVyLmhhcy1vcmctbG9nbyAub3JnLWxvZ28ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI0MHB4KSB7XG4gIC5yZWdpb24tYmFubmVyLmhhcy1vcmctbG9nbyAub3JnLWxvZ28ge1xuICAgIGdyaWQtcm93OiBzcGFuIDI7XG4gIH1cbiAgLnJlZ2lvbi1iYW5uZXIuaGFzLW9yZy1sb2dvIC5vcmctbG9nbyBmaWd1cmUge1xuICAgIGhlaWdodDogMTAuNXJlbTtcbiAgICB3aWR0aDogMTAuNXJlbTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG59XG4uYmFubmVyIHtcbiAgLS1iYW5uZXItbWluLWhlaWdodDogMzh2dztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyay1wcmltYXJ5LWJsdWUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgxMiwgOTQsIDExNywgMC43OTYwNzg0MzE0KSwgcmdiYSg2LCA0NywgNTksIDAuOCkpO1xuICBjbGlwLXBhdGg6IHZhcigtLWJhbm5lci1jbGlwLXBhdGgpO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiB2YXIoLS1iYW5uZXItbWluLWhlaWdodCk7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYmFubmVyIC5yZWdpb24tYmFubmVyIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuLmJhbm5lciAucmVnaW9uLWJyZWFkY3J1bWJzIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxLjVyZW0gMCAwIDA7XG59XG4uYmFubmVyIGgxLFxuLmJhbm5lciBoMiB7XG4gIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICBtYXJnaW46IDNyZW0gMCAyLjZyZW07XG4gIHRleHQtc2hhZG93OiAycHggMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuNzQ5MDE5NjA3OCk7XG59XG4uYmFubmVyIGgxIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuLmJhbm5lciBhOm5vdCguYnRuKSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbn1cblxuLmJhbm5lcjpiZWZvcmUsXG4uYmFubmVyOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmJhbm5lcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vYXNzZXRzL2Jhbm5lci1vdmVybGF5Mi5zdmcpIHRvcCBsZWZ0IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBsZWZ0OiA4JTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA0O1xuICBoZWlnaHQ6IDZyZW07XG4gIHdpZHRoOiAyMCU7XG59XG5cbi5iYW5uZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vYXNzZXRzL2Jhbm5lci1vdmVybGF5MS5zdmcpIHRvcCBsZWZ0IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgei1pbmRleDogNDtcbiAgdG9wOiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYmFubmVyLW92ZXJsYXktMiB7XG4gIGxlZnQ6IDIwJTtcbiAgei1pbmRleDogMTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5iYW5uZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICB9XG4gIC5iYW5uZXI6OmJlZm9yZSB7XG4gICAgbGVmdDogMnJlbTtcbiAgICB3aWR0aDogMTRyZW07XG4gIH1cbn1cbi5iYW5uZXItLWltYWdlIC5maWVsZC1iYW5uZXItaW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMjtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDUwJTtcbn1cbi5iYW5uZXItLWltYWdlIC5maWVsZC1iYW5uZXItaW1hZ2UgLm1lZGlhLXZpZXctLWJhbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5iYW5uZXItLWltYWdlIC5maWVsZC1iYW5uZXItaW1hZ2UgZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmJhbm5lci0taW1hZ2UgLmZpZWxkLWJhbm5lci1pbWFnZSBpbWcge1xuICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcIi4uL2Fzc2V0cy9iYW5uZXItcGhvdG8tbWFzay5zdmdcIik7XG4gIG1hc2staW1hZ2U6IHVybChcIi4uL2Fzc2V0cy9iYW5uZXItcGhvdG8tbWFzay5zdmdcIik7XG4gIC13ZWJraXQtbWFzay1zaXplOiBjb3ZlcjtcbiAgbWFzay1zaXplOiBjb3ZlcjtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NTkuOThweCkge1xuICAuZmllbGQtYmFubmVyLWltYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uYmFubmVyLS1pY29uIHtcbiAgLS1iYW5uZXItbWluLWhlaWdodDogMzh2dztcbn1cbi5iYW5uZXItLWljb24gLmJhbm5lci1jb250ZW50IHtcbiAgZmxleDogMSAwIGF1dG87XG59XG4uYmFubmVyLS1pY29uIC5maWVsZC1iYW5uZXItaW1hZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZy10b3A6IDVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwO1xufVxuLmJhbm5lci0taWNvbiAuZmllbGQtYmFubmVyLWltYWdlIC5tZWRpYS0taWNvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmJhbm5lci0taWNvbiAuZmllbGQtYmFubmVyLWltYWdlIC5tZWRpYS0taWNvbjpub3QoLmljb24tLWtlZXAtY29sb3VyKSBzdmcge1xuICBmaWxsOiB2YXIoLS1saWdodC1wcmltYXJ5LWJsdWUpO1xufVxuLmJhbm5lci0taWNvbiAuZmllbGQtYmFubmVyLWltYWdlIC5tZWRpYS0taWNvbjpub3QoLmljb24tLWtlZXAtY29sb3VyKSBzdmcgcGF0aCB7XG4gIGZpbGw6IHZhcigtLWxpZ2h0LXByaW1hcnktYmx1ZSk7XG59XG4uYmFubmVyLS1pY29uIC5maWVsZC1iYW5uZXItaW1hZ2UgZmlndXJlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYmFubmVyLS1pY29uIC5maWVsZC1iYW5uZXItaW1hZ2Ugc3ZnIHtcbiAgd2lkdGg6IDlyZW07XG4gIGhlaWdodDogOXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI0MHB4KSB7XG4gIC5iYW5uZXItLWljb24gLmZpZWxkLWJhbm5lci1pbWFnZSB7XG4gICAgd2lkdGg6IDI3JTtcbiAgfVxuICAuYmFubmVyLS1pY29uIC5maWVsZC1iYW5uZXItaW1hZ2Ugc3ZnIHtcbiAgICB3aWR0aDogNjUlO1xuICAgIGhlaWdodDogNjUlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk1OS45OHB4KSB7XG4gIC5iYW5uZXItLWljb24gLmZpZWxkLWJhbm5lci1pbWFnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuYmFubmVyLS1pY29uIC5iYW5uZXItdGV4dCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG4uYmFubmVyLWNvbnRlbnQge1xuICBwYWRkaW5nOiAxcmVtIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykgdmFyKC0tdmVydGljYWwtcGFkZGluZyk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyNDBweCkge1xuICAuYmFubmVyLWNvbnRlbnQge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDIgKiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nKSk7XG4gIH1cbiAgLmJhbm5lciAuYmxvY2stc3lzdGVtLWJyZWFkY3J1bWItYmxvY2sge1xuICAgIG1hcmdpbi1ib3R0b206IDR2dztcbiAgfVxuICAuYmFubmVyLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTM1NXB4KSB7XG4gIC5iYW5uZXItY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDAlIC0gdmFyKC0tbWF4LXdpZHRoKSkgLyAyKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCgxMDAlIC0gdmFyKC0tbWF4LXdpZHRoKSkgLyAyKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MjBweCkge1xuICAuYWRtaW4tdG9vbGJhci1leHBhbmRlZCAuZ2luLS1uYXZpZ2F0aW9uIC5iYW5uZXItY29udGVudCxcbiAgLmdpbi0tdmVydGljYWwtdG9vbGJhcltkYXRhLXRvb2xiYXItbWVudT1vcGVuXSAuYmFubmVyLWNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5ibG9jay0tcGFnZS10aXRsZS1ibG9jayB7XG4gICAgbWF4LXdpZHRoOiA2OCU7XG4gIH1cbiAgLmJhbm5lci10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi4xNXJlbTtcbiAgICB3aWR0aDogNjglO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTU5Ljk4cHgpIHtcbiAgLmJhbm5lci10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS43NTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyNDBweCkge1xuICAuYmFubmVyLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi4yNXJlbTtcbiAgICBtYXgtd2lkdGg6IDY0JTtcbiAgfVxufVxuLmlzLWZyb250IC5iYW5uZXItY29udGVudCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLWJhbm5lci1taW4taGVpZ2h0KTtcbn1cbi5pcy1mcm9udCBoMiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1zZXJpZik7XG4gIGZvbnQtc2l6ZTogdmFyKC0taDEtZm9udC1zaXplKTtcbn1cblxuLmJhbm5lciAuYnRuLXByaW1hcnkge1xuICAtLWJzLWJ0bi1jb2xvcjogdmFyKC0tZGFya2VyLWJsdWUpO1xuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgLS1icy1idG4taG92ZXItYmc6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICAtLWJzLWJ0bi1ob3Zlci1jb2xvcjogdmFyKC0tZGFya2VyLWJsdWUpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXdoaXRlKTtcbn1cbi5iYW5uZXIgLmJ0bi1wcmltYXJ5OmlzKDpob3ZlciwgOmZvY3VzLCA6YWN0aXZlKSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtYnRuLWhvdmVyLWJnKTtcbn1cbi5iYW5uZXIgLmJ0bi1zZWNvbmRhcnkge1xuICAtLWJzLWJ0bi1iZzogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbiAgLS1icy1idG4taG92ZXItY29sb3I6IHZhcigtLWRhcmtlci1ibHVlKTtcbn1cbi5iYW5uZXIgLmJ0bi1zZWNvbmRhcnk6aXMoOmhvdmVyLCA6Zm9jdXMsIDphY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LXllbGxvdyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtYnRuLWhvdmVyLWJnKTtcbn1cblxuLypcbiAqIENvbW1vbiBibG9jayB0aGVtaW5nXG4qL1xuLmJsb2NrLmhhcy1oMi1iYXIgaDI6OmJlZm9yZSxcbi5ibG9jay0taGVhZGluZyBoMjo6YmVmb3JlLFxuLmJsb2NrLS12aWV3cyBoMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogNnB4O1xuICB3aWR0aDogMS41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xufVxuXG4uaGVhZGluZy1hbGlnbi1jZW50cmUgLmJsb2NrID4gaDIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uaGVhZGluZy1hbGlnbi1jZW50cmUgLmJsb2NrID4gaDI6OmJlZm9yZSB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5ibG9jay5oYXMtYmctY29sb3Ige1xuICAtLWJnLWNvbG9yLXBhZGRpbmc6IDJyZW07XG4gIHBhZGRpbmc6IHZhcigtLWJnLWNvbG9yLXBhZGRpbmcpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYmxvY2suaGFzLWJnLWNvbG9yIGgyOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJsb2NrLmhhcy1iZy1jb2xvciAuZmllbGQuYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogNDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuYmxvY2suaGFzLWJnLWNvbG9yIHtcbiAgICAtLWJnLWNvbG9yLXBhZGRpbmc6IDIuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWJpZyk7XG4gIH1cbiAgLmJsb2NrLmhhcy1iZy1jb2xvcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0xcmVtO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWJpZyk7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICB0cmFuc2Zvcm06IHNrZXdZKC0zZGVnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cbi5sYXlvdXQtLXR3b2NvbC1iYXNpYyAubGF5b3V0X19yZWdpb24gLmJsb2NrLmhhcy1iZy1jb2xvcjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1iZy1jb2xvci1wYWRkaW5nKSAvIDIpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU5OS45OHB4KSB7XG4gIC5sYXlvdXQtLXR3b2NvbC1iYXNpYyAubGF5b3V0X19yZWdpb24gLmJsb2NrLmhhcy1iZy1jb2xvcjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKTtcbiAgfVxufVxuXG4ubGF5b3V0LS1vbmVjb2wgLmJsb2NrLmhhcy1iZy1jb2xvcjo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubGF5b3V0X19yZWdpb24tLXNlY29uZCAuYmxvY2suaGFzLWJnLWNvbG9yOjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2tld1koM2RlZyk7XG59XG5cbi8qXG4gKiBDb21wb25lbnQgQ1NTIGZvciBCdXR0b25zIGJsb2NrIHR5cGVcbiovXG4uYmxvY2stLWJ1dHRvbnMgdWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG59XG4uYmxvY2stLWJ1dHRvbnMgdWwgbGk6Zmlyc3QtY2hpbGQgLmJ0biB7XG4gIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS1hY2NlbnQtcmVkKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU5OS45OHB4KSB7XG4gIC5ibG9jay0tYnV0dG9ucyB1bCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuLmJsb2NrLS12aWV3cyArIC5ibG9jay0tYnV0dG9ucyB7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTAuNSAqIHZhcigtLWd1dHRlci1zdGFuZGFyZCkpO1xufVxuXG4vKlxuICoqIENvbXBvbmVudCBDU1MgZm9yIENUQSBibG9ja3NcbiovXG4uYmxvY2stLWN0YSB7XG4gIC0tY3RhLXBhZGRpbmc6IDIuMjVyZW07XG59XG4uYmxvY2stLWN0YSBoMixcbi5ibG9jay0tY3RhIC5maWVsZC10ZXh0IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi5ibG9jay0tY3RhIGgyIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuLmJsb2NrLS1jdGEuaGFzLWJnLWNvbG9yIHtcbiAgcGFkZGluZzogdmFyKC0tY3RhLXBhZGRpbmcpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYmxvY2stLWN0YS5oYXMtYmctY29sb3IgaDI6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYmxvY2stLWN0YS5oYXMtYmctY29sb3IgLmN0YS1jb250ZW50LFxuLmJsb2NrLS1jdGEuaGFzLWJnLWNvbG9yIC5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDQ7XG59XG4uYmxvY2stLWN0YS5oYXMtaWNvbiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAzMCU7XG4gIGdyaWQtZ2FwOiAwLjVyZW0gMXJlbTtcbn1cbi5ibG9jay0tY3RhLmhhcy1pY29uIGgyLFxuLmJsb2NrLS1jdGEuaGFzLWljb24gLmJ1dHRvbi1saW5rIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbn1cbi5ibG9jay0tY3RhIC5maWVsZC1pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5ibG9jay0tY3RhIC5maWVsZC1pY29uIGZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cbi5ibG9jay0tY3RhIC5maWVsZC1pY29uIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZpbGw6IHZhcigtLWdyZXkpO1xufVxuLmJsb2NrLS1jdGEgLmZpZWxkLWljb24gc3ZnIHBhdGgge1xuICBmaWxsOiB2YXIoLS1ncmV5KTtcbn1cbi5ibG9jay0tY3RhLmhhcy1pY29uOm5vdCguaGFzLWJnLWNvbG9yKSBoMjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LXJlZCk7XG59XG4uYmxvY2stLWN0YS5oYXMtaWNvbjpub3QoLmhhcy1iZy1jb2xvcikgLmJ0biB7XG4gIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS1hY2NlbnQtcmVkKTtcbn1cbi5ibG9jay0tY3RhIC5jdGEtY29udGVudCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNzVyZW07XG59XG4uYmxvY2stLWN0YSAuY3RhLWNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5ibG9jay0tY3RhIC5pY29uLWVkZ2UtLWVkZ2UsXG4uYmxvY2stLWN0YSAubWVkaWEtLWN0YS1pbGx1c3RyYXRpb24ge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jdGEtcGFkZGluZykpO1xufVxuLmJsb2NrLS1jdGEgLmljb24tbGVmdCAuaWNvbi1lZGdlLS1lZGdlLFxuLmJsb2NrLS1jdGEgLmljb24tbGVmdCAubWVkaWEtLWN0YS1pbGx1c3RyYXRpb24ge1xuICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWN0YS1wYWRkaW5nKSk7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTI0MHB4KSB7XG4gIC5ibG9jay0tY3RhIHtcbiAgICAtLWN0YS1wYWRkaW5nOiAxLjVyZW07XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDMwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5ibG9jay0tY3RhLmhhcy1iZy1jb2xvciB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1iaWcpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLnNpZGViYXIgLmJsb2NrLS1jdGEge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgfVxuICAuc2lkZWJhciAuYmxvY2stLWN0YTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0xcmVtO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWJpZyk7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICB0cmFuc2Zvcm06IHNrZXdZKC0zZGVnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB9XG59XG4ubGF5b3V0LS10d29jb2wtc3BsaXQucmlnaHQgLmJsb2NrLS1jdGEuaGFzLWJnLWNvbG9yOjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2tld1koM2RlZyk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjQwcHgpIHtcbiAgLnNpZGViYXIgLmJsb2NrLS1jdGEuaGFzLWJnLWNvbG9yIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWN0YS1wYWRkaW5nKSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY3RhLXBhZGRpbmcpKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5sYXlvdXQtLW9uZWNvbCAuYmxvY2stLWN0YSB7XG4gICAgLS1jdGEtcGFkZGluZzogM3JlbTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWJpZ2dlcik7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgtLW5hcnJvdyk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDMwJTtcbiAgfVxuICAubGF5b3V0LS1vbmVjb2wgLmJsb2NrLS1jdGEgaDIge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDE7XG4gIH1cbiAgLmxheW91dC0tb25lY29sIC5ibG9jay0tY3RhIC5maWVsZC1pY29uIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdyaWQtcm93OiBzcGFuIDM7XG4gICAgb3JkZXI6IDI7XG4gIH1cbiAgLmxheW91dC0tb25lY29sIC5ibG9jay0tY3RhIC5maWVsZC10ZXh0IHtcbiAgICBvcmRlcjogMztcbiAgfVxuICAubGF5b3V0LS1vbmVjb2wgLmJsb2NrLS1jdGEgLmJ1dHRvbi1saW5rIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAxO1xuICAgIG9yZGVyOiA0O1xuICB9XG4gIC5sYXlvdXQtLW9uZWNvbCAuYmxvY2stLWN0YS5pY29uLWxlZnQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDAlIGF1dG87XG4gIH1cbiAgLmxheW91dC0tb25lY29sIC5ibG9jay0tY3RhLmljb24tbGVmdCBoMiB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLmxheW91dC0tb25lY29sIC5ibG9jay0tY3RhLmljb24tbGVmdCAuZmllbGQtaWNvbiB7XG4gICAgb3JkZXI6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAubGF5b3V0LS1vbmVjb2wgLmJsb2NrLS1jdGEge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byA0MCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAubGF5b3V0LS1vbmVjb2wgLmJsb2NrLS1jdGEgLm1lZGlhLS1jdGEtaWxsdXN0cmF0aW9uIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuICAubGF5b3V0LS1vbmVjb2wgLmJsb2NrLS1jdGEgLm1lZGlhLS1jdGEtaWxsdXN0cmF0aW9uIGltZyB7XG4gICAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICAgIHdpZHRoOiAxMTAlO1xuICB9XG4gIC5sYXlvdXQtLW9uZWNvbCAuYmxvY2stLWN0YS5pY29uLWxlZnQgLm1lZGlhLS1jdGEtaWxsdXN0cmF0aW9uIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjUlLCAwKTtcbiAgfVxuICAubGF5b3V0LS1vbmVjb2w6bGFzdC1jaGlsZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDQ7XG4gIH1cbiAgLmxheW91dC0tb25lY29sOmxhc3QtY2hpbGQgLmJsb2NrLS1jdGE6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwIGF1dG8gLTVyZW07XG4gICAgei1pbmRleDogNTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogMTI0MHB4KSB7XG4gIC5sYXlvdXQtLW9uZWNvbCAuYmxvY2stLWN0YSAubWVkaWEtLWN0YS1pbGx1c3RyYXRpb24ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKSB0cmFuc2xhdGUoOCUsIDEuMXJlbSk7XG4gIH1cbiAgLmxheW91dC0tb25lY29sIC5ibG9jay0tY3RhLmljb24tbGVmdCAubWVkaWEtLWN0YS1pbGx1c3RyYXRpb24ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKSB0cmFuc2xhdGUoLTMyJSwgMC44cmVtKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk1OS45OHB4KSB7XG4gIC5ibG9jay0tY3RhLmhhcy1pY29uIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87XG4gIH1cbiAgLmJsb2NrLS1jdGEgLmZpZWxkLWljb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmJsb2NrLS1jdGEuaGFzLWJnLWNvbG9yIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyICogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSk7XG4gIH1cbiAgLmxheW91dDpsYXN0LWNoaWxkIC5ibG9jay0tY3RhLmhhcy1iZy1jb2xvcixcbiAgLnNpZGViYXItYm90dG9tIC5ibG9jay0tY3RhLmhhcy1iZy1jb2xvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAubGF5b3V0Omxhc3QtY2hpbGQgLmJsb2NrLS1jdGEuaGFzLWJnLWNvbG9yOmxhc3QtY2hpbGQsXG4gIC5zaWRlYmFyLWJvdHRvbSAuYmxvY2stLWN0YS5oYXMtYmctY29sb3I6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYygtMiAqIHZhcigtLXZlcnRpY2FsLXBhZGRpbmcpKTtcbiAgfVxufVxuLyoqXG4gKiBDb21wb25lbnQgQ1NTIGZvciBTb2NpYWwgbWVkaWEgbGlua3NcbiAqIEJsb2NrIHNob3duIGluIGZvb3RlciBhbmQgb24gTGV0J3MgQ29ubmVjdCBwYWdlXG4qL1xuLmJsb2NrLS1saW5rcyB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uYmxvY2stLWxpbmtzIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuLmJsb2NrLS1saW5rcyBzdmcge1xuICBoZWlnaHQ6IDM1cHg7XG4gIHdpZHRoOiAyOHB4O1xufVxuLmJsb2NrLS1saW5rcyBhIHtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG59XG4uYmxvY2stLWxpbmtzIC5saW5rLXRleHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubGF5b3V0IC5ibG9jay0tbGlua3Mge1xuICBtYXJnaW46IDA7XG59XG5cbi5ibG9jay0tbGlua3MuZGlzcGxheS1pbmxpbmUgLmZpZWxkLXBnLWxpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjlyZW07XG59XG5cbi5ibG9jay0tbGlua3Muc2hvdy10ZXh0IC5saW5rLXRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWxpbmstd2l0aC1pY29uIGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuM3JlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLnBhcmFncmFwaC0tdHlwZS0tbGluay13aXRoLWljb24gYSBmaWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogSW4gdGhlIGZvb3RlclxuKi9cbi5wYWdlLWZvb3RlciAuYmxvY2stLWxpbmtzIGEge1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JleSk7XG59XG4ucGFnZS1mb290ZXIgLmJsb2NrLS1saW5rcyBhOmlzKDpob3ZlciwgOmZvY3VzKSB7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG59XG4ucGFnZS1mb290ZXIgLmJsb2NrLS1saW5rcyBzdmcuZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk1OS45OHB4KSB7XG4gIC5wYWdlLWZvb3RlciAuYmxvY2stc29jaWFsLW1lZGlhLWxpbmtzLWJsb2NrIHtcbiAgICBtYXJnaW46IDJyZW0gMDtcbiAgfVxuICAucGFnZS1mb290ZXIgLmZpZWxkLXBnLWxpbmtzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5wYWdlLWZvb3RlciAuZmllbGQtcGctbGlua3Mge1xuICAgIGp1c3RpZnktY29udGVudDogZW5kO1xuICB9XG59XG4vKlxuICogQ29tcG9uZW50IENTUyBmb3IgYmxvY2sgY2FyZCBjb3Btb25lbnRcbiAqL1xuLmJsb2NrLS1jYXJkIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4zcmVtO1xufVxuLmJsb2NrLS1jYXJkIC5maWVsZC1tZWRpYS1pbWFnZSB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtYmlnKTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5ibG9jay0tY2FyZCAuZmllbGQtbWVkaWEtaW1hZ2UgZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuLmJsb2NrLS1jYXJkIC5maWVsZC1tZWRpYS1pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG4uYmxvY2stLWNhcmQgLm1lZGlhLS1pY29uIHN2ZyB7XG4gIHdpZHRoOiAzcmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbn1cbi5ibG9jay0tY2FyZCAubWVkaWEtLWljb24gc3ZnLFxuLmJsb2NrLS1jYXJkIC5tZWRpYS0taWNvbiBwYXRoIHtcbiAgZmlsbDogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbn1cbi5ibG9jay0tY2FyZCAuZmllbGQtbGlua3MgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW4tYm90dG9tOiAwLjRyZW07XG4gIHBhZGRpbmctbGVmdDogMS4ycmVtO1xufVxuLmJsb2NrLS1jYXJkIC5maWVsZC1saW5rcyBhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiAwLjRyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAwLjRyZW0gc29saWQgdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjNyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMS4xcmVtO1xufVxuXG4ucmVnaW9uLWJyZWFkY3J1bWJzIHtcbiAgLS1icy1icmVhZGNydW1iLWRpdmlkZXItY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgcGFkZGluZzogdmFyKC0tdmVydGljYWwtcGFkZGluZykgdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbm9sLmJyZWFkY3J1bWIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4vKlxuICoqIENvbXBvbmVudCBDU1MgZm9yIEV2ZW50c1xuKi9cbi5ldmVudC1sb2NhdGlvbi1tb2RlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjVyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qXG4gKiBBZGRpdGlvbmFsIGNvbXBvbmVudCB0aGVtaW5nIGZvciBmb3Jtc1xuKi9cbmZvcm0ge1xuICAtLWJzLWJvcmRlci13aWR0aDogMnB4O1xufVxuXG4uZm9ybS1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmZvcm0td3JhcHBlciB7XG4gIG1hcmdpbjogMCAwIDEuOHJlbTtcbn1cbi5mb3JtLXdyYXBwZXIgLmZvcm0taXRlbSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG59XG4uZm9ybS13cmFwcGVyIC5mb3JtLXdyYXBwZXIge1xuICBtYXJnaW46IDA7XG59XG5cbi5mb3JtLWNvbnRyb2wge1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAyICogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSk7XG59XG5cbi5mb3JtLWFjdGlvbnMge1xuICBtYXJnaW4tdG9wOiAxLjhyZW07XG59XG5cbi5mb3JtLXN1Ym1pdCB7XG4gIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS1hY2NlbnQtcmVkKTtcbn1cblxuZGV0YWlscyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0ZXItZ3JleSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuc3VtbWFyeSB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWdyZXkpO1xufVxuc3VtbWFyeTo6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWRhcmstZ3JleSk7XG59XG5cbmxlZ2VuZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5sYWJlbCxcbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbn1cblxuLmRlc2NyaXB0aW9uLFxuLmNvdW50ZXIge1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmZvcm0tdGV4dCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbmlucHV0IC5mb3JtLWl0ZW0sXG5zZWxlY3QgLmZvcm0tcmFkaW9zIC5mb3JtLWl0ZW0sXG4uZm9ybS1jaGVja2JveGVzIC5mb3JtLWl0ZW0sXG4udGVybS1yZWZlcmVuY2UtdHJlZS1sZXZlbCAuZm9ybS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjVyZW07XG4gIG1hcmdpbjogMC41cmVtIDA7XG59XG5cbi5mb3JtLWNoZWNrLWlucHV0OmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG59XG5cbi8qKlxuICogQ29tcG9uZW50IENTUyBmb3IgSm9icy9SRlBzIG5vZGVzXG4gKi9cbi5maWVsZC1qb2Itb2xvZWN0aW9uID4gZGl2IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uam9iLXJmcC50ZWFzZXIgLmpvYi1yZnAtY29udGVudCA+IHNwYW46OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ibGFjayk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgaGVpZ2h0OiAwLjI1cmVtO1xuICB3aWR0aDogMC4yNXJlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAuMjVyZW07XG59XG4uam9iLXJmcC50ZWFzZXIgLmpvYi1yZnAtY29udGVudCA+IHNwYW46bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmpvYi1yZnAudGVhc2VyIC5qb2ItcmZwLWRlYWRsaW5lIHtcbiAgY29sb3I6IHZhcigtLWRhcmstZ3JleSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmpvYi1yZnAudGVhc2VyLmhhcy1sb2dvIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byA5LjJyZW07XG4gICAgZ2FwOiAwIHZhcigtLWd1dHRlci1zdGFuZGFyZCk7XG4gIH1cbiAgLmpvYi1yZnAudGVhc2VyIC5jb250ZW50LWxhYmVscyB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgfVxuICAuam9iLXJmcC50ZWFzZXIgLmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuam9iLXJmcC50ZWFzZXIgLmNvbnRlbnQgLmpvYi1yZnAtZGVhZGxpbmUge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gIH1cbiAgLmpvYi1yZnAudGVhc2VyIC5vcmctbG9nbyB7XG4gICAgb3JkZXI6IDI7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5qb2ItcmZwLnRlYXNlciAub3JnLWxvZ28ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLypcbiAqIENvbXBvbmVudCBDU1MgZm9yIG1lZGlhIGVudGl0aWVzXG4qL1xuLmxvZ29zLWlubGluZSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBncmlkLWdhcDogY2FsYygyICogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKSk7XG4gIG1hcmdpbi1ib3R0b206IC0xcmVtO1xufVxuLmxvZ29zLWlubGluZSBsaSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmxvZ29zLWlubGluZSBpbWcge1xuICBoZWlnaHQ6IDU1cHg7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5sb2dvcy1pbmxpbmUge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG4gIC5sb2dvcy1pbmxpbmUgaW1nIHtcbiAgICBoZWlnaHQ6IDc1cHg7XG4gIH1cbn1cblxuLm1lZGlhLS1pbWFnZS5jb250ZW50LWhhbGYtd2lkdGgge1xuICB3aWR0aDogNTAlO1xufVxuXG4ubWVkaWEtLWltYWdlLmNvbnRlbnQtZnVsbC13aWR0aCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmllbGQtZmlsZS1hdHRhY2htZW50IC5ncmlkIHtcbiAgZ3JpZC1nYXA6IDFyZW07XG59XG5cbi5tZWRpYS0tZG9jdW1lbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrZXItYmx1ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi1oZWlnaHQ6IDEwcmVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuLm1lZGlhLS1kb2N1bWVudC5maWxldHlwZS1kb2Mge1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLm1lZGlhLS1kb2N1bWVudCAuZmllbGQtbWVkaWEtZG9jdW1lbnQge1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4ubWVkaWEtLWRvY3VtZW50IC5maWxlLWluZm8ge1xuICBjb2xvcjogdmFyKC0tZGFyay1ncmV5KTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4ubWVkaWEtLWRvY3VtZW50IC5maWxlLXNpemUge1xuICBtYXJnaW4tbGVmdDogMC4ycmVtO1xufVxuLm1lZGlhLS1kb2N1bWVudCAuZmlsZS1pY29uIHtcbiAgaGVpZ2h0OiAxLjJyZW07XG4gIHdpZHRoOiAwLjlyZW07XG4gIGZpbGw6IHZhcigtLWdyZXkpO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn1cbi5tZWRpYS0tZG9jdW1lbnQuZmlsZXR5cGUtaW1nIGEge1xuICBkaXNwbGF5OiBncmlkO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ubWVkaWEtLWRvY3VtZW50LmZpbGV0eXBlLWltZyBpbWcge1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vKipcbiAqIE1pc2MuIEFkZGl0aW9uYWwgbmF2IGNvbXBvbmVudHNcbiovXG4ucGFnaW5hdGlvbiB7XG4gIC0tYnMtcGFnaW5hdGlvbi1hY3RpdmUtYmc6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gIC0tYnMtcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICAtLWJzLXBhZ2luYXRpb24tY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAzcmVtIDA7XG59XG5cbi5wYWdlLWxpbms6aXMoOmhvdmVyLCA6Zm9jdXMpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHRlci1ncmV5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnBhZ2luYXRpb24gLnBhZ2UtaXRlbS5wYWdlcl9faXRlbS0tbmV4dCBzcGFuLCAucGFnaW5hdGlvbiAucGFnZS1pdGVtLnBhZ2VyX19pdGVtLS1sYXN0IHNwYW4sIC5wYWdpbmF0aW9uIC5wYWdlLWl0ZW0ucGFnZXJfX2l0ZW0tLWZpcnN0IHNwYW4sIC5wYWdpbmF0aW9uIC5wYWdlLWl0ZW0ucGFnZXJfX2l0ZW0tLXByZXZpb3VzIHNwYW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnBhZ2luYXRpb24gLnBhZ2UtaXRlbS5wYWdlcl9faXRlbS0tbmV4dCAucGFnZS1saW5rOjphZnRlciwgLnBhZ2luYXRpb24gLnBhZ2UtaXRlbS5wYWdlcl9faXRlbS0tbGFzdCAucGFnZS1saW5rOjphZnRlciwgLnBhZ2luYXRpb24gLnBhZ2UtaXRlbS5wYWdlcl9faXRlbS0tZmlyc3QgLnBhZ2UtbGluazo6YWZ0ZXIsIC5wYWdpbmF0aW9uIC5wYWdlLWl0ZW0ucGFnZXJfX2l0ZW0tLXByZXZpb3VzIC5wYWdlLWxpbms6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAucGFnaW5hdGlvbiAucGFnZS1pdGVtLnBhZ2VyX19pdGVtLS1uZXh0IC5wYWdlLWxpbms6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIuKAulwiO1xuICB9XG4gIC5wYWdpbmF0aW9uIC5wYWdlLWl0ZW0ucGFnZXJfX2l0ZW0tLWxhc3QgLnBhZ2UtbGluazo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiwrtcIjtcbiAgfVxuICAucGFnaW5hdGlvbiAucGFnZS1pdGVtLnBhZ2VyX19pdGVtLS1maXJzdCAucGFnZS1saW5rOjphZnRlciB7XG4gICAgY29udGVudDogXCLCq1wiO1xuICB9XG4gIC5wYWdpbmF0aW9uIC5wYWdlLWl0ZW0ucGFnZXJfX2l0ZW0tLXByZXZpb3VzIC5wYWdlLWxpbms6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIuKAuVwiO1xuICB9XG59XG4vKipcbiAqIENvbXBvbmVudCBDU1MgY29tbW9uIHRvIHNldmVyYWwgbm9kZSB0eXBlcyAmIHZpZXcgbW9kZXNcbiAqIFVzdWFsbHkgY29tbW9uIHRvIFJlc291cmNlcywgSm9icy9SRlBzLCBOZXdzICYgRXZlbnRzXG4gKi9cbi5wYXRoLW5vZGUgLm5vZGUtcHJldmlldy1jb250YWluZXIubm9kZS1wcmV2aWV3LWNvbnRhaW5lciAuZm9ybS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5wYXRoLW5vZGUgLm5vZGUtcHJldmlldy1jb250YWluZXIubm9kZS1wcmV2aWV3LWNvbnRhaW5lciAuZm9ybS1pdGVtIGxhYmVsIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNvbnRlbnQtbGFiZWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uY29udGVudC1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LXByaW1hcnktYmx1ZSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjdyZW07XG59XG5cbi5jcmVhdGVkLWludGVydmFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyay1ncmV5KTtcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW46IDAuM3JlbTtcbiAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyNDBweCkge1xuICAucmVnaW9uLWJhbm5lciAuY29udGVudC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgcGFkZGluZzogMC41ZW0gMC43ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuLm5vZGUudGVhc2VyLmV2ZW50LCAubm9kZS50ZWFzZXIubmV3cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5ub2RlLnRlYXNlci5ldmVudCAuY29udGVudC1sYWJlbCwgLm5vZGUudGVhc2VyLm5ld3MgLmNvbnRlbnQtbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cblxuLm5vZGUuY2FyZCxcbi5ub2RlLnRlYXNlciB7XG4gIC0tZGVmYXVsdC1pbWFnZS1zaXplOiAxMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHRlci1ibHVlKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlci1zdGFuZGFyZCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubm9kZS5jYXJkIC5jb250ZW50LFxuLm5vZGUudGVhc2VyIC5jb250ZW50IHtcbiAgcGFkZGluZzogMXJlbTtcbn1cbi5ub2RlLmNhcmQgaDIsXG4ubm9kZS5jYXJkIGgzLFxuLm5vZGUudGVhc2VyIGgyLFxuLm5vZGUudGVhc2VyIGgzIHtcbiAgZm9udC1zaXplOiAxLjM1cmVtO1xuICBtYXJnaW46IDAgMCAwLjM1cmVtO1xufVxuLm5vZGUuY2FyZCBoMiBhLFxuLm5vZGUuY2FyZCBoMyBhLFxuLm5vZGUudGVhc2VyIGgyIGEsXG4ubm9kZS50ZWFzZXIgaDMgYSB7XG4gIGNvbG9yOiB2YXIoLS1ibGFjayk7XG59XG4ubm9kZS5jYXJkIGgyIGE6OmFmdGVyLFxuLm5vZGUuY2FyZCBoMyBhOjphZnRlcixcbi5ub2RlLnRlYXNlciBoMiBhOjphZnRlcixcbi5ub2RlLnRlYXNlciBoMyBhOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbGlnaHQtcHJpbWFyeS1ibHVlKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy1zdGFuZGFyZCk7XG59XG4ubm9kZS5jYXJkIGgyIGE6aXMoOmhvdmVyLCA6Zm9jdXMpOjphZnRlcixcbi5ub2RlLmNhcmQgaDMgYTppcyg6aG92ZXIsIDpmb2N1cyk6OmFmdGVyLFxuLm5vZGUudGVhc2VyIGgyIGE6aXMoOmhvdmVyLCA6Zm9jdXMpOjphZnRlcixcbi5ub2RlLnRlYXNlciBoMyBhOmlzKDpob3ZlciwgOmZvY3VzKTo6YWZ0ZXIge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLm5vZGUuY2FyZCBoMiBhOmlzKDpmb2N1cy13aXRoaW4pOjphZnRlcixcbi5ub2RlLmNhcmQgaDMgYTppcyg6Zm9jdXMtd2l0aGluKTo6YWZ0ZXIsXG4ubm9kZS50ZWFzZXIgaDIgYTppcyg6Zm9jdXMtd2l0aGluKTo6YWZ0ZXIsXG4ubm9kZS50ZWFzZXIgaDMgYTppcyg6Zm9jdXMtd2l0aGluKTo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG59XG4ubm9kZS5jYXJkIC5maWVsZC1lbXBsb3llcixcbi5ub2RlLnRlYXNlciAuZmllbGQtZW1wbG95ZXIge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLm5vZGUuY2FyZCAuZmllbGQuYm9keSxcbi5ub2RlLnRlYXNlciAuZmllbGQuYm9keSB7XG4gIG1hcmdpbjogMC41cmVtIDAgMXJlbTtcbn1cbi5ub2RlLmNhcmQgLmZpZWxkLmJvZHkgcDpmaXJzdC1jaGlsZCxcbi5ub2RlLnRlYXNlciAuZmllbGQuYm9keSBwOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5ub2RlLmNhcmQgLmZpZWxkLmJvZHkgcDpsYXN0LWNoaWxkLFxuLm5vZGUudGVhc2VyIC5maWVsZC5ib2R5IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubm9kZS5jYXJkIC5kYXRlLFxuLm5vZGUudGVhc2VyIC5kYXRlIHtcbiAgY29sb3I6IHZhcigtLWRhcmstZ3JleSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuLm5vZGUuY2FyZCAuZGF0ZXRpbWUubGFuZy0tZnIsXG4ubm9kZS50ZWFzZXIgLmRhdGV0aW1lLmxhbmctLWZyIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbn1cbi5ub2RlLmNhcmQgLmRlZmF1bHQtaW1hZ2UsXG4ubm9kZS50ZWFzZXIgLmRlZmF1bHQtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodC1ncmV5KTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGhlaWdodDogdmFyKC0tZGVmYXVsdC1pbWFnZS1zaXplKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5ub2RlLmNhcmQgLmRlZmF1bHQtaW1hZ2U6YmVmb3JlLFxuLm5vZGUudGVhc2VyIC5kZWZhdWx0LWltYWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGNhbGMoMS4yICogdmFyKC0tZGVmYXVsdC1pbWFnZS1zaXplKSk7XG4gIHdpZHRoOiBjYWxjKDEuMiAqIHZhcigtLWRlZmF1bHQtaW1hZ2Utc2l6ZSkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodGVyLWdyZXkpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG1hcmdpbjogLTFyZW0gMDtcbn1cbi5ub2RlLmNhcmQgLmRlZmF1bHQtaW1hZ2Ugc3ZnLFxuLm5vZGUudGVhc2VyIC5kZWZhdWx0LWltYWdlIHN2ZyB7XG4gIC0taWNvbi1zaXplOiAzLjhyZW07XG4gIHdpZHRoOiB2YXIoLS1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogY2FsYyg1MCUgLSB2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNjtcbiAgZmlsbDogdmFyKC0tZ3JleSk7XG59XG4ubm9kZS5jYXJkIC5kZWZhdWx0LWltYWdlIHN2ZyBwYXRoLFxuLm5vZGUudGVhc2VyIC5kZWZhdWx0LWltYWdlIHN2ZyBwYXRoIHtcbiAgZmlsbDogdmFyKC0tZ3JleSk7XG59XG4ubm9kZS5jYXJkLmV2ZW50IC5tZWRpYSBmaWd1cmUsIC5ub2RlLmNhcmQubmV3cy1kaWdlc3QgLm1lZGlhIGZpZ3VyZSwgLm5vZGUuY2FyZC5uZXdzIC5tZWRpYSBmaWd1cmUsXG4ubm9kZS50ZWFzZXIuZXZlbnQgLm1lZGlhIGZpZ3VyZSxcbi5ub2RlLnRlYXNlci5uZXdzLWRpZ2VzdCAubWVkaWEgZmlndXJlLFxuLm5vZGUudGVhc2VyLm5ld3MgLm1lZGlhIGZpZ3VyZSB7XG4gIGhlaWdodDogdmFyKC0tZGVmYXVsdC1pbWFnZS1zaXplKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5ub2RlLmNhcmQuZXZlbnQgLm1lZGlhIGZpZ3VyZSBpbWcsIC5ub2RlLmNhcmQubmV3cy1kaWdlc3QgLm1lZGlhIGZpZ3VyZSBpbWcsIC5ub2RlLmNhcmQubmV3cyAubWVkaWEgZmlndXJlIGltZyxcbi5ub2RlLnRlYXNlci5ldmVudCAubWVkaWEgZmlndXJlIGltZyxcbi5ub2RlLnRlYXNlci5uZXdzLWRpZ2VzdCAubWVkaWEgZmlndXJlIGltZyxcbi5ub2RlLnRlYXNlci5uZXdzIC5tZWRpYSBmaWd1cmUgaW1nIHtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1OTkuOThweCkge1xuICAubm9kZS50ZWFzZXIgLmZpZWxkLmJvZHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5ncmlkIGxpID4gLm5vZGUge1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLWd1dHRlci1zdGFuZGFyZCkpO1xufVxuLmdyaWQgbGkgPiAubm9kZSAuY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzLjVyZW0gLSB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpKTtcbn1cbi5ncmlkIGxpID4gLm5vZGUgLmRhdGUge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuLmdyaWQgbGkgPiAubm9kZS5ldmVudCAuY29udGVudCwgLmdyaWQgbGkgPiAubm9kZS5uZXdzLWRpZ2VzdCAuY29udGVudCwgLmdyaWQgbGkgPiAubm9kZS5uZXdzIC5jb250ZW50IHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1kZWZhdWx0LWltYWdlLXNpemUpKTtcbn1cblxuLnBhcmFncmFwaC0tdHlwZS0tbGluay13aXRoLWRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5wYXJhZ3JhcGgtLXR5cGUtLWxpbmstd2l0aC1kZXNjcmlwdGlvbiBoMiB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qXG4gKiogQ29tcG9uZW50IENTUyBmb3Igbm9kZSBkZXRhaWxzIHZpZXcgbW9kZVxuICoqIFVzZWQgZm9yIEV2ZW50cyBhbmQgSm9icy9SRlBzXG4qL1xuLm5vZGUuZGV0YWlscyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0ZXItYmx1ZSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMyAqIHZhcigtLWd1dHRlci1zdGFuZGFyZCkpO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubm9kZS5kZXRhaWxzIC5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA0O1xufVxuLm5vZGUuZGV0YWlscyBhOm5vdCguYnRuKSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtcmVkKTtcbn1cbi5ub2RlLmRldGFpbHMgYS5idG4ge1xuICAtLWJzLWJ0bi1jb2xvcjogdmFyKC0tYWNjZW50LXJlZCk7XG59XG4ubm9kZS5kZXRhaWxzIGEuZXh0IHN2ZyB7XG4gIGZpbGw6IHZhcigtLWFjY2VudC1yZWQpO1xufVxuLm5vZGUuZGV0YWlscyBhLmV4dCBzdmcgcGF0aCB7XG4gIHN0cm9rZTogdmFyKC0tYWNjZW50LXJlZCk7XG59XG4ubm9kZS5kZXRhaWxzIGEuZXh0LmJ0bjppcyg6aG92ZXIsIDpmb2N1cykgc3ZnIHtcbiAgZmlsbDogdmFyKC0td2hpdGUpO1xufVxuLm5vZGUuZGV0YWlscyBhLmV4dC5idG46aXMoOmhvdmVyLCA6Zm9jdXMpIHN2ZyBwYXRoIHtcbiAgc3Ryb2tlOiB2YXIoLS13aGl0ZSk7XG59XG4ubm9kZS5kZXRhaWxzIC5maWVsZCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4ubm9kZS5kZXRhaWxzIC5maWVsZF9fbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ubm9kZS5kZXRhaWxzIC5maWVsZF9fbGFiZWw6YWZ0ZXIge1xuICBjb250ZW50OiBcIjpcIjtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW4tcmlnaHQ6IDAuNHJlbTtcbn1cbi5ub2RlLmRldGFpbHMubGFuZy0tZnIgLmZpZWxkX19sYWJlbDo6YWZ0ZXIge1xuICBtYXJnaW4tbGVmdDogMC40cmVtO1xufVxuLm5vZGUuZGV0YWlscyAuZmllbGQtZXZlbnQtbG9jYXRpb24gZGl2LFxuLm5vZGUuZGV0YWlscyAuZmllbGQtam9iLWxvY2F0aW9uIGRpdiB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAubm9kZS5kZXRhaWxzIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyICogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSk7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1jbGlwLWFuZ2xlLWJvdHRvbSk7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMiAqIHZhcigtLWd1dHRlci1zdGFuZGFyZCkpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5vZGUuZGV0YWlscyB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1iaWcpO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjJyZW07XG4gIH1cbiAgLm5vZGUuZGV0YWlsczo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0xcmVtO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWJpZyk7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICB0cmFuc2Zvcm06IHNrZXdZKC0zZGVnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cbmh0bWxbbGFuZz1mcl0gLmZpZWxkLWpvYi1kZWFkbGluZS1kYXRlIHRpbWUge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuXG4vKipcbiAqIENvbXBvbmVudCBDU1MgZm9yIGZ1bGwgbm9kZXNcbiAqIENvbW1vbiB0byBSZXNvdXJjZXMsIEV2ZW50cywgSm9icy9SRlBzLCBOZXdzXG4qL1xuLm5vZGUuZnVsbCAubWFpbiAuYmxvY2stLWxheW91dC1idWlsZGVyID4gLmZpZWxkLmJvZHkuc3VtbWFyeS10cmltbWVkIHtcbiAgZm9udC1zaXplOiAxLjM1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLm5vZGUuZnVsbC5qb2ItcmZwIC5tYWluIC5ibG9jay0tbGF5b3V0LWJ1aWxkZXIgPiAuZmllbGQuYm9keS5zdW1tYXJ5LXRyaW1tZWQge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuLm5vZGUuZnVsbCAuZmllbGQtbGlua3MgbGkge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG4ubm9kZS5mdWxsIC5zaWRlYmFyLXRvcCAuYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xufVxuLm5vZGUuZnVsbCAuc2lkZWJhci10b3AgcCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG4ubm9kZS5mdWxsIC5zaWRlYmFyLXRvcCB1bCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubm9kZS5mdWxsIC5zaWRlYmFyLXRvcCB1bC5saXN0LXVuc3R5bGVkIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cblxuLmxhbmctLWZyIC5ub2RlLmZ1bGwgLmZpZWxkLS1uYW1lLWNyZWF0ZWQsXG4ubGFuZy0tZnIgLm5vZGUuZnVsbCAuZmllbGQuY2hhbmdlZCAuZmllbGRfX2l0ZW0ge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuXG4uZmllbGQtcmVnaW9ucyAudGVybS10cmVlLWxpc3QgPiAuaXRlbS1saXN0ID4gLnRlcm0gPiBsaSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmZpZWxkLXJlZ2lvbnMgLnRlcm0tdHJlZS1saXN0IC5zZWxlY3RlZCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5maWVsZC1zZXR0bGVuZXQtb3JnLWxpbmsge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9hc3NldHMvc2V0dGxlbmV0LWRpc2N1c3MtaWNvbi5zdmdcIikgbm8tcmVwZWF0IDk1JSBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0ZXItZ3JleSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlci1zdGFuZGFyZCk7XG59XG4uZmllbGQtc2V0dGxlbmV0LW9yZy1saW5rIHAge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5maWVsZC1zZXR0bGVuZXQtb3JnLWxpbmsge1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjQlO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtYmlnKTtcbiAgICBoZWlnaHQ6IDEzMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIxMHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLmZpZWxkLXNldHRsZW5ldC1vcmctbGluayB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxNTBweDtcbiAgICBtYXJnaW46IDAgY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNjBweDtcbiAgfVxufVxuXG4uZmllbGQtcGFydG5lcnNoaXBzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHRlci15ZWxsb3cpO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xufVxuLmZpZWxkLXBhcnRuZXJzaGlwcyBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmZpZWxkLXBhcnRuZXJzaGlwcyBzdmcuZXh0IHtcbiAgbWFyZ2luLXJpZ2h0OiAtMC42cmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5maWVsZC1wYXJ0bmVyc2hpcHMge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0xICogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDIgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5maWVsZC1wYXJ0bmVyc2hpcHMge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtYmlnKTtcbiAgfVxuICAuZmllbGQtcGFydG5lcnNoaXBzLmhhcy1sb2dvIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byA4LjJyZW07XG4gICAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlci1zdGFuZGFyZCk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuXG4udmlld3MtZXhwb3NlZC1mb3JtIGZvcm0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udmlld3MtZXhwb3NlZC1mb3JtIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnNpZGViYXItdG9wIC52aWV3cy1leHBvc2VkLWZyb20gaDI6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2lkZWJhci10b3AgLnZpZXdzLWV4cG9zZWQtZnJvbSAuZm9ybS1zdWJtaXQge1xuICAtLWJzLWJ0bi1iZzogdmFyKC0tYWNjZW50LXJlZCk7XG4gIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjhyZW07XG59XG5cbi5leHBvc2VkLXNlYXJjaC1mb3JtIHtcbiAgLS1zZWFyY2gtYnV0dG9uLXdpZHRoOiAyLjVyZW07XG4gIC0tc2VhcmNoLWZvcm0taGVpZ2h0OiAyLjVyZW07XG59XG4uZXhwb3NlZC1zZWFyY2gtZm9ybSAuZm9ybS10eXBlLXRleHRmaWVsZCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zZWFyY2gtYnV0dG9uLXdpZHRoKSk7XG59XG4uZXhwb3NlZC1zZWFyY2gtZm9ybSAuZm9ybS10eXBlLXRleHRmaWVsZCBsYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZXhwb3NlZC1zZWFyY2gtZm9ybSAuZm9ybS10eXBlLXRleHRmaWVsZCAuZm9ybS10ZXh0IHtcbiAgaGVpZ2h0OiB2YXIoLS1zZWFyY2gtZm9ybS1oZWlnaHQpO1xufVxuLmV4cG9zZWQtc2VhcmNoLWZvcm0gLmZvcm0tc3VibWl0IHtcbiAgLS1icy1idG4tYWN0aXZlLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMCAwIC00cHg7XG4gIHBhZGRpbmc6IDAuNnJlbTtcbiAgaGVpZ2h0OiB2YXIoLS1zZWFyY2gtZm9ybS1oZWlnaHQpO1xuICB3aWR0aDogdmFyKC0tc2VhcmNoLWJ1dHRvbi13aWR0aCk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1ibHVlKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGhlaWdodD0nMWVtJyBmaWxsPSclMjNmZmYnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyUzRSUzQ3BhdGggZD0nTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZjLTM0LjQgMjUuMi03Ni44IDQwLTEyMi43IDQwQzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwUzQxNiA5My4xIDQxNiAyMDh6TTIwOCAzNTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4eicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA1MCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG59XG4uZXhwb3NlZC1zZWFyY2gtZm9ybSAuZm9ybS1zdWJtaXQ6aXMoOmhvdmVyLCA6Zm9jdXMpIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtcmVkKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LXJlZCk7XG59XG5cbi5zaWRlYmFyLXRvcCAudmlld3MtZXhwb3NlZC1mb3JtIC5mb3JtLXJlc2V0IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gIG1hcmdpbjogMCAwIDAgMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnNpZGViYXItdG9wIC52aWV3cy1leHBvc2VkLWZvcm0gLmZvcm0tcmVzZXQ6aXMoOmhvdmVyLCA6Zm9jdXMpIHtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uYmVmLWV4cG9zZWQtZm9ybSBkZXRhaWxzIHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDAgMCAtMnB4O1xufVxuLmJlZi1leHBvc2VkLWZvcm0gZGV0YWlsczpmaXJzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5iZWYtZXhwb3NlZC1mb3JtIGRldGFpbHMgc3VtbWFyeSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYmVmLWV4cG9zZWQtZm9ybSBkZXRhaWxzIHN1bW1hcnk6Om1hcmtlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYmVmLWV4cG9zZWQtZm9ybSBkZXRhaWxzIHN1bW1hcnk6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgaGVpZ2h0OiAwLjZyZW07XG4gIHdpZHRoOiAwLjZyZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmJlZi1leHBvc2VkLWZvcm0gZGV0YWlscyBzdW1tYXJ5W2FyaWEtZXhwYW5kZWQ9dHJ1ZV06OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbn1cbi5iZWYtZXhwb3NlZC1mb3JtIGRldGFpbHMgLmRldGFpbHMtd3JhcHBlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0ZXItZ3JleSk7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xufVxuLmJlZi1leHBvc2VkLWZvcm0gZGV0YWlscyBmaWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbn1cbi5iZWYtZXhwb3NlZC1mb3JtIGRldGFpbHMgbGVnZW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5iZWYtZXhwb3NlZC1mb3JtIGRldGFpbHMgbGFiZWwge1xuICBmb250LXNpemU6IDAuOTVlbTtcbn1cblxuLmJlZi1jaGVja2JveGVzLmJlZi1uZXN0ZWQgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uY29sbGFwc2libGUtY2hlY2tib3hlcy10cmlnZ2VyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIitcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDAuMnJlbTtcbn1cbi5jb2xsYXBzaWJsZS1jaGVja2JveGVzLXRyaWdnZXIuc2hvdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCItXCI7XG59XG5cbi5jb2xsYXBzaWJsZS1jaGVja2JveGVzIC5iZWYtY2hlY2tib3hlcyBsaTpudGgtY2hpbGQobis2KSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY29sbGFwc2libGUtY2hlY2tib3hlcy5zaG93IC5iZWYtY2hlY2tib3hlcyBsaTpudGgtY2hpbGQobis2KSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZm9ybS1pdGVtLXNvcnQtYmVmLWNvbWJpbmUge1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ncmV5KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuMnJlbSAwLjVyZW07XG59XG4uZm9ybS1pdGVtLXNvcnQtYmVmLWNvbWJpbmU6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG59XG4uZm9ybS1pdGVtLXNvcnQtYmVmLWNvbWJpbmUgLmZvcm0taXRlbSB7XG4gIG1hcmdpbjogMDtcbn1cbi5mb3JtLWl0ZW0tc29ydC1iZWYtY29tYmluZSBsYWJlbCB7XG4gIG1hcmdpbjogMC4ycmVtIDAgMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5mb3JtLWl0ZW0tc29ydC1iZWYtY29tYmluZSBsYWJlbDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiOlwiO1xufVxuLmZvcm0taXRlbS1zb3J0LWJlZi1jb21iaW5lIHNlbGVjdCB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5mb3JtLWl0ZW0tc29ydC1iZWYtY29tYmluZSBzZWxlY3Q6Zm9jdXMge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5iZWYtZXhwb3NlZC1mb3JtIC5mb3JtLXN1Ym1pdCB7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJnOiB2YXIoLS1icy1idG4tYWN0aXZlLWJnKTtcbiAgLS1icy1idG4tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1idG4tYWN0aXZlLWJnKTtcbiAgLS1icy1idG4tY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgLS1icy1idG4tYmc6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiB2YXIoLS1hY2NlbnQtcmVkKTtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4vKlxuICogQ29tcG9uZW50IENTUyBmb3IgU29jaWFsIHNoYXJpbmcgbGlua3NcbiovXG4uc29jaWFsLXNoYXJpbmctYnV0dG9ucyB7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIG1hcmdpbjogMXJlbSAwO1xufVxuLnNvY2lhbC1zaGFyaW5nLWJ1dHRvbnMgaDIge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbjogMDtcbn1cbi5zb2NpYWwtc2hhcmluZy1idXR0b25zIC5pY29uIHtcbiAgaGVpZ2h0OiAxLjJyZW07XG4gIHdpZHRoOiAxLjJyZW07XG4gIGZpbGw6IHZhcigtLWdyZXkpO1xufVxuLnNvY2lhbC1zaGFyaW5nLWJ1dHRvbnMgYTpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgY29udGVudDogXCIsXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBDb21wb25lbnQgQ1NTIGZvciB0YXhvbm9teSB0ZXJtc1xuKi9cbi52aWV3LXRheG9ub215IC5jb2x1bW5zLS0zY29sIHVsIHtcbiAgbWFyZ2luOiAxcmVtIDAgMXJlbTtcbn1cbi52aWV3LXRheG9ub215IC5jb2x1bW5zLS0zY29sIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBicmVhay1pbnNpZGU6IGF2b2lkO1xufVxuXG4udGF4b25vbXktdGVybS5mdWxsIC5kZXNjcmlwdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgbWF4LXdpZHRoOiA1MHJlbTtcbn1cblxuLm9yZy1sb2dvIGZpZ3VyZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTtcbiAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tbGlnaHQtZ3JleSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtYmlnKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA4LjJyZW07XG4gIGhlaWdodDogOC4ycmVtO1xuICBwYWRkaW5nOiAwLjhyZW07XG59XG5cbi50YXhvbm9teS10ZXJtLm1lZ2FtZW51LWNhcmQgaDIgYSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1ibGFjayk7XG59XG4udGF4b25vbXktdGVybS5tZWdhbWVudS1jYXJkLmhhcy1sb2dvIC5jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87XG4gIGdyaWQtZ2FwOiAwLjVyZW07XG59XG4udGF4b25vbXktdGVybS5tZWdhbWVudS1jYXJkIC5vcmctbG9nbyBmaWd1cmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICB3aWR0aDogNS4ycmVtO1xuICBoZWlnaHQ6IDUuMnJlbTtcbn1cbi50YXhvbm9teS10ZXJtLm1lZ2FtZW51LWNhcmQgPiAuYnRuIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG5cbi50YXhvbm9teS10ZXJtIC50YWItcGFuZS5ibG9jay0tdmlld3MgPiBoMiB7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG4udGF4b25vbXktdGVybSAudGFiLXBhbmUuYmxvY2stLXZpZXdzID4gaDI6bm90KGNhcHRpb24pIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG59XG4udGF4b25vbXktdGVybSAudGFiLXBhbmUuYmxvY2stLXZpZXdzID4gaDIgKiB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLnRheG9ub215LXRlcm0uZnVsbCAuZ3JvdXAtbW9yZS1pbmZvIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKTtcbn1cbi50YXhvbm9teS10ZXJtLmZ1bGwgLmdyb3VwLW1vcmUtaW5mbyBoMiB7XG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcbn1cbi50YXhvbm9teS10ZXJtLmZ1bGwgLmdyb3VwLW1vcmUtaW5mbyBoMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogNnB4O1xuICB3aWR0aDogMS41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xufVxuLnRheG9ub215LXRlcm0uZnVsbCAuZ3JvdXAtbW9yZS1pbmZvIC5maWVsZF9fbGFiZWwge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tcmlnaHQ6IDAuMnJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC50YXhvbm9teS10ZXJtLmZ1bGwgLmdyb3VwLW9yZy1pbmZvIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMTByZW0sIDE0cmVtKTtcbiAgICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKTtcbiAgfVxuICAuZmllbGQtb3JnYW5pemF0aW9uLWxvZ28ge1xuICAgIG9yZGVyOiAyO1xuICB9XG59XG4vKipcbiAqIENvbXBvbmVudCBDU1MgZm9yIE9yZy9BZ2VuY3kgdGF4b25vbXkgdGVybXNcbiovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLmZpZWxkLW9yZ2FuaXphdGlvbi1sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4udGF4b25vbXktdGVybS5mdWxsIC5ncm91cC1tb3JlLWluZm8ge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xufVxuLnRheG9ub215LXRlcm0uZnVsbCAuZ3JvdXAtbW9yZS1pbmZvIGgyIHtcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xufVxuLnRheG9ub215LXRlcm0uZnVsbCAuZ3JvdXAtbW9yZS1pbmZvIGgyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA2cHg7XG4gIHdpZHRoOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktYmx1ZSk7XG59XG4udGF4b25vbXktdGVybS5mdWxsIC5ncm91cC1tb3JlLWluZm8gLmZpZWxkX19sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1yaWdodDogMC4ycmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnZvY2FidWxhcnktb3Jncy1hbmQtYWdlbmNpZXMgLmdyb3VwLW9yZy1pbmZvIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxMHJlbTtcbiAgICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKTtcbiAgfVxuICAuZmllbGQtb3JnYW5pemF0aW9uLWxvZ28ge1xuICAgIG9yZGVyOiAyO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAganVzdGlmeS1jb250ZW50OiBlbmQ7XG4gIH1cbn1cbi5uYXYtdGFicyAubmF2LWxpbmsge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodGVyLWdyZXkpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ3JleSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbn1cblxuLnRheG9ub215LXR3b2NvbC10YWJzIC5uYXYtdGFicyB7XG4gIC0tdGFiLWJvcmRlci13aWR0aDogMnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBlbmQ7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nKTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udGF4b25vbXktdHdvY29sLXRhYnMgLm5hdi10YWJzOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5KTtcbiAgaGVpZ2h0OiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKTtcbiAgd2lkdGg6IDEwMCU7XG59XG4udGF4b25vbXktdHdvY29sLXRhYnMgLm5hdi10YWJzIC5uYXYtbGluayB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbn1cbi50YXhvbm9teS10d29jb2wtdGFicyAubmF2LXRhYnMgLm5hdi1saW5rOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5KTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLXRhYi1ib3JkZXItd2lkdGgpKTtcbiAgaGVpZ2h0OiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxcHg7XG4gIGJvdHRvbTogMC41cHg7XG4gIG1hcmdpbjogMCBjYWxjKC0xICogdmFyKC0tdGFiLWJvcmRlci13aWR0aCkpO1xuICB6LWluZGV4OiA0O1xufVxuLnRheG9ub215LXR3b2NvbC10YWJzIC5uYXYtdGFicyAubmF2LWxpbmsuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1ibGFjayk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gIGJvcmRlcjogdmFyKC0tdGFiLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tZ3JleSk7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4udGF4b25vbXktdHdvY29sLXRhYnMgLm5hdi10YWJzIC5uYXYtbGluay5hY3RpdmU6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2hpdGUpO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogdmFyKC0tdGFiLWJvcmRlci13aWR0aCk7XG4gIGhlaWdodDogY2FsYygxcHggKyB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSk7XG59XG4udGF4b25vbXktdHdvY29sLXRhYnMgLm5hdi10YWJzIC5uYXYtbGluazppcyg6aG92ZXIsIDpmb2N1cy12aXNpYmxlKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWdyZXkpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWxpZ2h0LWdyZXkpO1xufVxuLnRheG9ub215LXR3b2NvbC10YWJzIC5uYXYtdGFicyAubmF2LWxpbms6aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSk6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC50YXhvbm9teS10d29jb2wtdGFicyAubmF2LXRhYnMge1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU5OS45OHB4KSB7XG4gIC50YXhvbm9teS10d29jb2wtdGFicyAubmF2LXRhYnMgLm5hdi1saW5rOjphZnRlciB7XG4gICAgYm90dG9tOiAxLjVweDtcbiAgfVxuICAudGF4b25vbXktdHdvY29sLXRhYnMgLm5hdi10YWJzOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgxNzUsIDE3NSwgMTc1LCAwLjUpKTtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICB3aWR0aDogMTFweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogOTk7XG4gIH1cbn1cbi50YWItcGFuZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGFiLXBhbmUuc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvbXBvbmVudCBDU1MgZm9yIFZpZXdzXG4qL1xuLnZpZXctaGVhZGVyLWZpbHRlcnMgLmZvcm0tYWN0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udmlldy1oZWFkZXItZmlsdGVycyAuZm9ybS13cmFwcGVyIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnZpZXctaGVhZGVyLWZpbHRlcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKTtcbiAgfVxuICAudmlldy1oZWFkZXItZmlsdGVycyAudmlld3MtZXhwb3NlZC1mb3JtLFxuICAudmlldy1oZWFkZXItZmlsdGVycyAuZm9ybS1pdGVtLXNvcnQtYmVmLWNvbWJpbmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufSIsIi8qXG4gKiBBbHRlcmF0aW9ucyBmb3IgQm9vdHN0cmFwIEFsZXJ0c1xuICogQ29uZmlndXJlZCB0byBiZSB1c2VkIGluIEJhc2ljIGJsb2NrcyB1c2luZyB0aGUgZnVsbCBodG1sIHRleHQgZm9ybWF0XG4qL1xuXG4uYWxlcnQge1xuICBjb2xvcjogdmFyKC0tYmxhY2spO1xuXG4gIC5idG4ge1xuICAgIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpXG4gIH1cblxuICBwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gVG9wIG5vdGljZSBhZGp1c3RtZW50c1xuLnJlZ2lvbi10b3Atbm90aWNlIC5hbGVydCB7XG5cbiAgbWFyZ2luLWJvdHRvbTogMDtcblxuICBoMixcbiAgLnRleHQtZm9ybWF0dGVkIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMCB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4vLyBNb2JpbGUgbGF5b3V0XG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obGcpIHtcbiAgLnJlZ2lvbi10b3Atbm90aWNlIHtcbiAgICBvcmRlcjogNDtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAzO1xuICAgIG1hcmdpbjogMXJlbSBjYWxjKC0xICogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSkgLTJyZW07XG5cbiAgICAuYnRuIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBCYW5uZXIgbm90aWNlIGFkanVzdG1lbnRzXG5cbi5wYWdlLWJhbm5lciAucmVnaW9uLWJhbm5lci1ub3RpY2Uge1xuICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcjtcbiAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgaDIge1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBHZXQgc29tZSB1c2VmdWwgZmlsZXMgZnJvbSBCb290c3RyYXAuXG4vLyBDb21waWxpbmcgZXZlcnl0aGluZyBpcyBzbG93LCBzbyBqdXN0IGdldCB0aGUgcGFydHMgd2UgbmVlZCB0byB1c2VcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lcy9jb250cmliL2Jvb3RzdHJhcDUvZGlzdC9ib290c3RyYXAvNS4zLjgvc2Nzcy9mdW5jdGlvbnMnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi90aGVtZXMvY29udHJpYi9ib290c3RyYXA1L2Rpc3QvYm9vdHN0cmFwLzUuMy44L3Njc3MvdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lcy9jb250cmliL2Jvb3RzdHJhcDUvZGlzdC9ib290c3RyYXAvNS4zLjgvc2Nzcy9taXhpbnMnO1xuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICB4czogMCxcbiAgeHNtOiAzNzRweCxcbiAgc206IDYwMHB4LFxuICBtZDogNzY4cHgsXG4gIGxnOiA5NjBweCxcbiAgeGw6IDEyNDBweCxcbiAgeHhsOiAxNDAwcHhcbik7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi90aGVtZXMvY29udHJpYi9ib290c3RyYXA1L2Rpc3QvYm9vdHN0cmFwLzUuMy44L3Njc3MvbWl4aW5zL2JyZWFrcG9pbnRzJztcblxuLy8gT3ZlcnJpZGUgQm9vc3RyYXAgY29udGFpbmVyIG1peGluXG5AbWl4aW4gbWFrZS1jb250YWluZXIoJHBhZGRpbmcteDogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSxcbiAgJHBhZGRpbmcteTogdmFyKC0tdmVydGljYWwtcGFkZGluZykpIHtcbiAgcGFkZGluZzogJHBhZGRpbmcteSAkcGFkZGluZy14O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xufVxuXG4vLyBIZWFkaW5nIGJhcjsgVXNlIGluIGEgcHNldWRvLWVsZW1lbnQgKHByb2JhYmx5IDpiZWZvcmUpXG5AbWl4aW4gaGVhZGluZy1iYXIoJGNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpLCAkY2VudGVyOiBmYWxzZSkge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogNnB4O1xuICB3aWR0aDogMS41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiAkY29sb3I7XG5cbiAgQGlmICRjZW50ZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuXG4vLyBBbmdsZWQgYm90dG9tIHNlY3Rpb24gZm9yIHNrZXdlZCBibG9ja3Ncbi8vIFNob3VsZCBiZSB1c2VkIGluIGdlbmVyYXRlZCBjb250ZW50LCBwcm9iYWJseSA6OmFmdGVyXG4vLyBNYWtlIHN1cmUgdGhlIHBhcmVudCBlbGVtZW50IGhhcyBwb3NpdGlvbjogcmVsYXRpdmVcbkBtaXhpbiBhbmdsZWQtYm90dG9tLWN1cnZlKCkge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRyZW07XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0xcmVtO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAwO1xuXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtYmlnKTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgdHJhbnNmb3JtOiBza2V3WSgtM2RlZyk7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBtb2JpbGUtbWFyZ2luLWJsZWVkKCkge1xuICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArICgyICogdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSkpO1xufVxuXG4vLyBCb290c3RyYXAncyBjYXJldCBtaXhpbiBpbmNsdWRlcyA6OmFmdGVyIGFuZCBpbmNsdWRlcyBzb21lIHJlZHVuZGFudCBjb2RlXG4vLyBpZiBuZWVkZWQgOjpiZWZvcmVcbkBtaXhpbiBjYXJldCgkc2l6ZTogLjRyZW0sICRkaXJlY3Rpb246ICdyaWdodCcsICRjb2xvcjogdmFyKC0tYmxhY2spKSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcblxuICBAaWYgJGRpcmVjdGlvbiA9PSdyaWdodCcge1xuICAgIGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gIH1cblxuICBAaWYgJGRpcmVjdGlvbiA9PSdsZWZ0JyB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gIH1cblxuICBAaWYgJGRpcmVjdGlvbiA9PSd1cCcge1xuICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09J2Rvd24nIHtcbiAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gIH1cblxufVxuXG5AbWl4aW4gY2hldnJvbigkc2l6ZTogMXJlbSwgJHN0cm9rZTogMnB4LCAkZGlyZWN0aW9uOiAncmlnaHQnLCAkY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpKSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXRvcDogJHN0cm9rZSBzb2xpZCAkY29sb3I7XG4gIGJvcmRlci1yaWdodDogJHN0cm9rZSBzb2xpZCAkY29sb3I7XG4gIGhlaWdodDogJHNpemU7XG4gIHdpZHRoOiAkc2l6ZTtcblxuICBAaWYgJGRpcmVjdGlvbiA9PSdyaWdodCcge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09J2xlZnQnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09J3VwJyB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09J2Rvd24nIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xuICB9XG5cbn1cblxuLy8gQ2FyZXQgbGlua1xuQG1peGluIGNhcmV0LWxpbmsoJGNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW4tYm90dG9tOiAuNHJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxLjJyZW07XG4gIDtcblxuICAmOmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY2FyZXQoJGNvbG9yOiAkY29sb3IpO1xuICAgIG1hcmdpbi1yaWdodDogLjNyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0xLjFyZW07XG4gIH1cbn1cbiIsIi8qXG4gKiBDb21wb25lbnQgQ1NTIGZvciBsYW5kaW5nIHBhZ2UgYmFubmVyc1xuKi9cbi5wYWdlLWJhbm5lciB7XG4gIC0tYmFubmVyLWNsaXAtcGF0aDogcG9seWdvbigwIDAsIDEwMCUgMCwgMTAwJSBjYWxjKDEwMCUgLSA0cmVtKSwgMCUgMTAwJSk7XG59XG5cbmJvZHk6bm90KC5wYWdlLS1sYW5kaW5nLXBhZ2UpIC5wYWdlLWJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0ZXItZ3JleSk7XG4gIGNsaXAtcGF0aDogdmFyKC0tYmFubmVyLWNsaXAtcGF0aCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtO1xufVxuXG4ucmVnaW9uLWJhbm5lciB7XG4gIEBpbmNsdWRlIG1ha2UtY29udGFpbmVyKCk7XG4gIHBhZGRpbmctdG9wOiAuNXJlbTtcbn1cblxuLy8gUGFnZSBiYW5uZXIgaGFzIG9yZyBsb2dvIChmb3IgSm9icy9SRlBzKVxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuICAucmVnaW9uLWJhbm5lci5oYXMtb3JnLWxvZ28ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGVuZDtcbiAgICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKTtcblxuICAgIC5vcmctbG9nbyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoeGwpIHtcbiAgLnJlZ2lvbi1iYW5uZXIuaGFzLW9yZy1sb2dvIC5vcmctbG9nbyB7XG4gICAgZ3JpZC1yb3c6IHNwYW4gMjtcblxuICAgIGZpZ3VyZSB7XG4gICAgICBoZWlnaHQ6IDEwLjVyZW07XG4gICAgICB3aWR0aDogMTAuNXJlbTtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgfVxuICB9XG59XG5cbi8vIExhbmRpbmcgcGFnZSBiYW5uZXJzXG4uYmFubmVyIHtcbiAgLS1iYW5uZXItbWluLWhlaWdodDogMzh2dztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyay1wcmltYXJ5LWJsdWUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIzBDNUU3NUNCLCAjMDYyRjNCQ0MpO1xuICBjbGlwLXBhdGg6IHZhcigtLWJhbm5lci1jbGlwLXBhdGgpO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiB2YXIoLS1iYW5uZXItbWluLWhlaWdodCk7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLnJlZ2lvbi1iYW5uZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLnJlZ2lvbi1icmVhZGNydW1icyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEuNXJlbSAwIDAgMDtcbiAgfVxuXG4gIGgxLFxuICBoMiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgbWFyZ2luOiAzcmVtIDAgMi42cmVtO1xuICAgIHRleHQtc2hhZG93OiAycHggMnB4IDZweCAjMDAwMDAwQkY7XG4gIH1cblxuICBoMSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8vIEFjY29tbW9kYXRlIHNvbWUgbG9uZ2VyIHRpdGxlcyBlZy4gQWJvdXQgcGFnZSBpbiBGUlxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIH1cblxuICBhOm5vdCguYnRuKSB7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICB9XG59XG5cbi8vIExheWVyaW5nIGN1cnZlIGVsZW1lbnRzXG4uYmFubmVyOmJlZm9yZSxcbi5iYW5uZXI6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmJhbm5lcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vYXNzZXRzL2Jhbm5lci1vdmVybGF5Mi5zdmcpIHRvcCBsZWZ0IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBsZWZ0OiA4JTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA0O1xuICBoZWlnaHQ6IDZyZW07XG4gIHdpZHRoOiAyMCU7XG59XG5cbi5iYW5uZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vYXNzZXRzL2Jhbm5lci1vdmVybGF5MS5zdmcpIHRvcCBsZWZ0IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgei1pbmRleDogNDtcbiAgdG9wOiAwO1xuXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5iYW5uZXItb3ZlcmxheS0yIHtcbiAgbGVmdDogMjAlO1xuICB6LWluZGV4OiAxO1xufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgLmJhbm5lciB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgbGVmdDogMnJlbTtcbiAgICAgIHdpZHRoOiAxNHJlbTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQmFubmVyIGltYWdlXG4uYmFubmVyLS1pbWFnZSAuZmllbGQtYmFubmVyLWltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDI7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA1MCU7XG5cbiAgLm1lZGlhLXZpZXctLWJhbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBpbWcge1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTogdXJsKCcuLi9hc3NldHMvYmFubmVyLXBob3RvLW1hc2suc3ZnJyk7XG4gICAgbWFzay1pbWFnZTogdXJsKCcuLi9hc3NldHMvYmFubmVyLXBob3RvLW1hc2suc3ZnJyk7XG4gICAgLXdlYmtpdC1tYXNrLXNpemU6IGNvdmVyO1xuICAgIG1hc2stc2l6ZTogY292ZXI7XG5cbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gIC5maWVsZC1iYW5uZXItaW1hZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8gV2l0aCBpY29uXG4uYmFubmVyLS1pY29uIHtcbiAgLS1iYW5uZXItbWluLWhlaWdodDogMzh2dztcblxuICAuYmFubmVyLWNvbnRlbnQge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG5cbiAgLmZpZWxkLWJhbm5lci1pbWFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAyNSU7XG4gICAgcGFkZGluZy10b3A6IDVyZW07XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogMTA7XG5cblxuICAgIC5tZWRpYS0taWNvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgJjpub3QoLmljb24tLWtlZXAtY29sb3VyKSBzdmcge1xuICAgICAgICBmaWxsOiB2YXIoLS1saWdodC1wcmltYXJ5LWJsdWUpO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgIGZpbGw6IHZhcigtLWxpZ2h0LXByaW1hcnktYmx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogOXJlbTtcbiAgICAgIGhlaWdodDogOXJlbTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHhsKSB7XG4gIC5iYW5uZXItLWljb24gLmZpZWxkLWJhbm5lci1pbWFnZSB7XG4gICAgd2lkdGg6IDI3JTtcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogNjUlO1xuICAgICAgaGVpZ2h0OiA2NSU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZykge1xuICAuYmFubmVyLS1pY29uIHtcbiAgICAuZmllbGQtYmFubmVyLWltYWdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmJhbm5lci10ZXh0IHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGV4dCBjb250ZW50XG5cbi5iYW5uZXItY29udGVudCB7XG4gIHBhZGRpbmc6IDFyZW0gdmFyKC0tcmVzcG9uc2l2ZS1wYWRkaW5nKSB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwO1xufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHhsKSB7XG4gIC5iYW5uZXItY29udGVudCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMiAqIHZhcigtLXZlcnRpY2FsLXBhZGRpbmcpKVxuICB9XG5cbiAgLmJhbm5lciAuYmxvY2stc3lzdGVtLWJyZWFkY3J1bWItYmxvY2sge1xuICAgIG1hcmdpbi1ib3R0b206IDR2dztcbiAgfVxuXG4gIC5iYW5uZXItdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG4gIH1cbn1cblxuLy8gRml4IGxlZnQgbWFyZ2luIHdoZW4gYmlnZ2VyIHRoYW4gdGhlIG1heC13aWR0aFxuQG1lZGlhIChtaW4td2lkdGg6IDEzNTVweCkge1xuICAuYmFubmVyLWNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygoMTAwJSAtIHZhcigtLW1heC13aWR0aCkpIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYygoMTAwJSAtIHZhcigtLW1heC13aWR0aCkpIC8gMik7XG4gIH1cbn1cblxuLy8gV2hlbiB0aGUgbGVmdCBzaWRlIHRvb2xiYXIgaXMgb3BlblxuQG1lZGlhIChtYXgtd2lkdGg6IDE2MjBweCkge1xuXG4gIC5hZG1pbi10b29sYmFyLWV4cGFuZGVkIC5naW4tLW5hdmlnYXRpb24sXG4gIC5naW4tLXZlcnRpY2FsLXRvb2xiYXJbZGF0YS10b29sYmFyLW1lbnU9XCJvcGVuXCJdIHtcbiAgICAuYmFubmVyLWNvbnRlbnQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gIC5ibG9jay0tcGFnZS10aXRsZS1ibG9jayB7XG4gICAgbWF4LXdpZHRoOiA2OCU7XG4gIH1cblxuICAuYmFubmVyLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjE1cmVtO1xuICAgIHdpZHRoOiA2OCU7XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gIC5iYW5uZXItdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNzU7XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4bCkge1xuICAuYmFubmVyLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi4yNXJlbTtcbiAgICBtYXgtd2lkdGg6IDY0JTtcbiAgfVxufVxuXG4vLyBGcm9udCBwYWdlIGFkanVzdG1lbnRzXG4uaXMtZnJvbnQge1xuICAuYmFubmVyLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiB2YXIoLS1iYW5uZXItbWluLWhlaWdodCk7XG4gIH1cblxuICBoMiB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXNlcmlmKTtcbiAgICBmb250LXNpemU6IHZhcigtLWgxLWZvbnQtc2l6ZSk7XG4gIH1cbn1cblxuLy8gQnV0dG9uIGNvbG91cnNcbi5iYW5uZXIge1xuICAuYnRuLXByaW1hcnkge1xuICAgIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS1kYXJrZXItYmx1ZSk7XG4gICAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gICAgLS1icy1idG4taG92ZXItYmc6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICAgIC0tYnMtYnRuLWhvdmVyLWNvbG9yOiB2YXIoLS1kYXJrZXItYmx1ZSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG5cbiAgICAmOmlzKDpob3ZlciwgOmZvY3VzLCA6YWN0aXZlKSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWJzLWJ0bi1ob3Zlci1iZyk7XG4gICAgfVxuICB9XG5cbiAgLmJ0bi1zZWNvbmRhcnkge1xuICAgIC0tYnMtYnRuLWJnOiB0cmFuc3BhcmVudDtcbiAgICAtLWJzLWJ0bi1jb2xvcjogdmFyKC0td2hpdGUpO1xuICAgIC0tYnMtYnRuLWhvdmVyLWJnOiB2YXIoLS1hY2NlbnQteWVsbG93KTtcbiAgICAtLWJzLWJ0bi1ob3Zlci1jb2xvcjogdmFyKC0tZGFya2VyLWJsdWUpO1xuXG4gICAgJjppcyg6aG92ZXIsIDpmb2N1cywgOmFjdGl2ZSkge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LXllbGxvdyk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWJzLWJ0bi1ob3Zlci1iZyk7XG4gICAgfVxuICB9XG59XG4iLCIvKlxuICogQ29tbW9uIGJsb2NrIHRoZW1pbmdcbiovXG5cbi5ibG9jay5oYXMtaDItYmFyLFxuLmJsb2NrLS1oZWFkaW5nLFxuLmJsb2NrLS12aWV3cyB7XG4gIGgyOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGhlYWRpbmctYmFyKCk7XG4gIH1cbn1cblxuLmhlYWRpbmctYWxpZ24tY2VudHJlIC5ibG9jaz5oMiB7XG5cbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbn1cblxuLy8gV2l0aCBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBza2V3ZWQgYm90dG9tIGFuZ2xlXG4uYmxvY2suaGFzLWJnLWNvbG9yIHtcbiAgLS1iZy1jb2xvci1wYWRkaW5nOiAycmVtO1xuICBwYWRkaW5nOiB2YXIoLS1iZy1jb2xvci1wYWRkaW5nKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGgyOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuZmllbGQuYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDQ7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gICAgLS1iZy1jb2xvci1wYWRkaW5nOiAyLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1iaWcpO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgYW5nbGVkLWJvdHRvbS1jdXJ2ZSgpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBXaGVuIHRoaXMgaXMgdGhlIGZpcnN0IGl0ZW0gaW4gYSB0d28tY29sdW1uIGxheW91dCwgbW92ZSBpdCB1cCBzbyBpdCBhbGlnbnNcbi8vIFdpdGggdGhlIGxlZnQgY29sdW1uIChmb3IgTGV0J3MgQ29ubmVjdCBhbmQgR2V0IFVwZGF0ZXMgcGFnZXMpXG4ubGF5b3V0LS10d29jb2wtYmFzaWMgLmxheW91dF9fcmVnaW9uIC5ibG9jay5oYXMtYmctY29sb3I6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiBjYWxjKCgtMSAqIHZhcigtLWJnLWNvbG9yLXBhZGRpbmcpKSAvMik7XG5cbiAgLy8gT24gbW9iaWxlIG1ha2UgaXQgZnVsbCBibGVlZFxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpO1xuICB9XG59XG5cblxuLy8gTm8gYW5nbGUgd2hlbiBpbiBvbmUgY29sdW1uIGxheW91dFxuLmxheW91dC0tb25lY29sIC5ibG9jay5oYXMtYmctY29sb3I6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gV2hlbiBpbiB0aGUgcmlnaHQgc2lkZSwgc2tldyB0aGUgb3RoZXIgd2F5XG4ubGF5b3V0X19yZWdpb24tLXNlY29uZCB7XG4gIC5ibG9jay5oYXMtYmctY29sb3I6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdZKDNkZWcpXG4gIH1cbn1cbiIsIi8qXG4gKiBDb21wb25lbnQgQ1NTIGZvciBCdXR0b25zIGJsb2NrIHR5cGVcbiovXG5cbi5ibG9jay0tYnV0dG9ucyB7XG4gIHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAuNXJlbTtcblxuICAgIGxpOmZpcnN0LWNoaWxkIC5idG4ge1xuICAgICAgLS1icy1idG4tY29sb3I6IHZhcigtLWFjY2VudC1yZWQpO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pIHtcbiAgLmJsb2NrLS1idXR0b25zIHVsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbn1cblxuLmJsb2NrLS12aWV3cysuYmxvY2stLWJ1dHRvbnMge1xuICBtYXJnaW4tdG9wOiBjYWxjKC0uNSAqIHZhcigtLWd1dHRlci1zdGFuZGFyZCkpO1xufVxuXG4vLyBUaWdodGVuIHVwIHRoZSBtYXJnaW4gd2hlbiB0aGlzIGlzIGFmdGVyIGEgdmlld1xuIiwiLypcbiAqKiBDb21wb25lbnQgQ1NTIGZvciBDVEEgYmxvY2tzXG4qL1xuXG4uYmxvY2stLWN0YSB7XG4gIC0tY3RhLXBhZGRpbmc6IDIuMjVyZW07XG5cbiAgaDIsXG4gIC5maWVsZC10ZXh0IHA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxuXG4gICYuaGFzLWJnLWNvbG9yIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jdGEtcGFkZGluZyk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgaDI6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jdGEtY29udGVudCxcbiAgICAuYnRuIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDQ7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyBpcyBpcyB0aGUgZGVmYXVsdCBmb3IgbW9iaWxlIGFuZCBpbiBzaWRlYmFyXG4gICYuaGFzLWljb24ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDMwJTtcbiAgICBncmlkLWdhcDogLjVyZW0gMXJlbTtcblxuICAgIGgyLFxuICAgIC5idXR0b24tbGluayB7XG4gICAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1pY29uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICBmaWd1cmUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGZpbGw6IHZhcigtLWdyZXkpO1xuXG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogdmFyKC0tZ3JleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gV2l0aCBpY29uIGFuZCBiYWNrZ3JvdW5kIGNvbG91clxuXG4gICYuaGFzLWljb246bm90KC5oYXMtYmctY29sb3IpIHtcbiAgICBoMjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1yZWQpO1xuICAgIH1cblxuICAgIC5idG4ge1xuICAgICAgLS1icy1idG4tY29sb3I6IHZhcigtLWFjY2VudC1yZWQpO1xuICAgIH1cblxuICB9XG5cbiAgLmN0YS1jb250ZW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjc1cmVtO1xuXG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSWNvbnMgZWRnZSBhZGp1c3RtZW50c1xuICAuaWNvbi1lZGdlLS1lZGdlLFxuICAubWVkaWEtLWN0YS1pbGx1c3RyYXRpb24ge1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWN0YS1wYWRkaW5nKSk7XG4gIH1cblxuICAuaWNvbi1sZWZ0IHtcblxuICAgIC8vIEljb25zIGVkZ2UgYWRqdXN0bWVudHNcbiAgICAuaWNvbi1lZGdlLS1lZGdlLFxuICAgIC5tZWRpYS0tY3RhLWlsbHVzdHJhdGlvbiB7XG4gICAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWN0YS1wYWRkaW5nKSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbn1cblxuLy8gQWRkIG1pZGRsZSBzY3JlZW4gc2l6ZXNcbkBtZWRpYSAobWluLXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCBtZCkpIGFuZCAobWF4LXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCB4bCkpIHtcbiAgLmJsb2NrLS1jdGEge1xuICAgIC0tY3RhLXBhZGRpbmc6IDEuNXJlbTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMzAlO1xuXG4gIH1cbn1cblxuLy8gQXQgbGFyZ2VyIHNjcmVlbiBzaXplc1xuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAuYmxvY2stLWN0YS5oYXMtYmctY29sb3Ige1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtYmlnKTtcbiAgfVxufVxuXG4vLyBJbiB0aGUgc2lkZWJhciwgYnV0IG5vdCBhdCB0aGUgc21hbGxlc3Qgc2NyZWVuIHNpemVzXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gIC5zaWRlYmFyIHtcbiAgICAuYmxvY2stLWN0YSB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGFuZ2xlZC1ib3R0b20tY3VydmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gSW4gdGhlIHJpZ2h0IHNpZGViYXIsIHRoZSBhbmdsZWQgY2xpcCBnb2VzIHRoZSBvdGhlciB3YXlcbi5sYXlvdXQtLXR3b2NvbC1zcGxpdC5yaWdodCB7XG4gIC5ibG9jay0tY3RhLmhhcy1iZy1jb2xvcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2tld1koM2RlZylcbiAgfVxufVxuXG4vLyBBdCB0aGUgbGFyZ2VzdCBzY3JlZW4gc2l6ZXMsIHRoZSBiYWNrZ3JvdW5kIG92ZXJsYXBzIHRoZSBzaWRlIG1hcmdpblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4bCkge1xuICAuc2lkZWJhciB7XG4gICAgLmJsb2NrLS1jdGEuaGFzLWJnLWNvbG9yIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY3RhLXBhZGRpbmcpKTtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWN0YS1wYWRkaW5nKSk7XG4gICAgfVxuICB9XG59XG5cbi8vIEluIG9uZSBjb2x1bW4gbGF5b3V0IChmdWxsIHdpZHRoIGF0IGxhcmdlciBzY3JlZW4gc2l6ZXMpXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gIC5sYXlvdXQtLW9uZWNvbCB7XG4gICAgLmJsb2NrLS1jdGEge1xuICAgICAgLS1jdGEtcGFkZGluZzogM3JlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtYmlnZ2VyKTtcbiAgICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoLS1uYXJyb3cpO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDMwJTtcblxuXG4gICAgICBoMiB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDE7XG4gICAgICB9XG5cbiAgICAgIC5maWVsZC1pY29uIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ3JpZC1yb3c6IHNwYW4gMztcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICB9XG5cbiAgICAgIC5maWVsZC10ZXh0IHtcbiAgICAgICAgb3JkZXI6IDM7XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24tbGluayB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDE7XG4gICAgICAgIG9yZGVyOiA0O1xuICAgICAgfVxuXG4gICAgICAvLyBJY29uIG9yIGlsbHVzdHJhdGlvbiB0byB0aGUgbGVmdFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwJSBhdXRvO1xuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZC1pY29uIHtcbiAgICAgICAgICBvcmRlcjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gIC5sYXlvdXQtLW9uZWNvbCB7XG4gICAgLmJsb2NrLS1jdGEge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDQwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8gSWxsdXN0cmF0aW9ucyBvdmVyZmxvdyB0aGUgY29udGFpbmVyXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gIC5sYXlvdXQtLW9uZWNvbCB7XG4gICAgLmJsb2NrLS1jdGEge1xuICAgICAgLm1lZGlhLS1jdGEtaWxsdXN0cmF0aW9uIHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgd2lkdGg6IDExMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICAubWVkaWEtLWN0YS1pbGx1c3RyYXRpb24ge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNSUsIDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gV2hlbiB0aGlzIGlzIHRoZSBsYXN0IGNoaWxkLCBvdmVybGFwIHRoZSBmb290ZXJcbiAgLmxheW91dC0tb25lY29sOmxhc3QtY2hpbGQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA0O1xuXG4gICAgLmJsb2NrLS1jdGE6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW46IDAgYXV0byAtNXJlbTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgfVxuICB9XG59XG5cbi8vIEF0IGxnLXhsIGJyZWFrcG9pbnRzLCBhZGp1c3QgdGhlIGlsbHVzdHJhdGlvbiBwb3NpdGlvblxuQG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsIGxnKSkgYW5kIChtYXgtd2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsIHhsKSkge1xuICAubGF5b3V0LS1vbmVjb2wgLmJsb2NrLS1jdGEge1xuICAgIC5tZWRpYS0tY3RhLWlsbHVzdHJhdGlvbiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMykgdHJhbnNsYXRlKDglLCAxLjFyZW0pO1xuICAgIH1cblxuICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgIC5tZWRpYS0tY3RhLWlsbHVzdHJhdGlvbiB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKSB0cmFuc2xhdGUoLTMyJSwgMC44cmVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gT24gc21hbGxlciBzY3JlZW5zLCByZW1vdmUgdGhlIGJvcmRlci1yYWRpdXMgYW5kIHRoZSBpbGx1c3RyYXRpb25cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZykge1xuICAuYmxvY2stLWN0YSB7XG4gICAgJi5oYXMtaWNvbiB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87XG4gICAgfVxuXG4gICAgLmZpZWxkLWljb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmhhcy1iZy1jb2xvciB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgQGluY2x1ZGUgbW9iaWxlLW1hcmdpbi1ibGVlZCgpXG4gICAgfVxuICB9XG5cbiAgLy8gQWRqdXN0IGJ1dHRvbSBtYXJnaW5cbiAgLmxheW91dDpsYXN0LWNoaWxkIC5ibG9jay0tY3RhLmhhcy1iZy1jb2xvcixcbiAgLnNpZGViYXItYm90dG9tIC5ibG9jay0tY3RhLmhhcy1iZy1jb2xvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKC0yICogdmFyKC0tdmVydGljYWwtcGFkZGluZykpO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBDb21wb25lbnQgQ1NTIGZvciBTb2NpYWwgbWVkaWEgbGlua3NcbiAqIEJsb2NrIHNob3duIGluIGZvb3RlciBhbmQgb24gTGV0J3MgQ29ubmVjdCBwYWdlXG4qL1xuXG4vLyBDb21tb24gdG8gYm90aFxuLmJsb2NrLS1saW5rcyB7XG5cbiAgbWFyZ2luLWJvdHRvbTogMDtcblxuICBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIH1cblxuICBzdmcge1xuICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGUgU0BXIGljb24gaXMgZ2V0dGluZyBjbGlwcGVkIGF0IGNlcnRhaW4gcmVtIHNpemVzXG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHdpZHRoOiAyOHB4O1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gIH1cblxuICAubGluay10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5sYXlvdXQgLmJsb2NrLS1saW5rcyB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8gSW5saW5lIGRpc3BsYXlcbi5ibG9jay0tbGlua3MuZGlzcGxheS1pbmxpbmUge1xuICAuZmllbGQtcGctbGlua3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IC45cmVtO1xuICB9XG59XG5cbi8vIE5vIHRleHRcbi5ibG9jay0tbGlua3Muc2hvdy10ZXh0IHtcbiAgLmxpbmstdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vIEljb24gKyBMaW5rIGFsaWdubWVudFxuLnBhcmFncmFwaC0tdHlwZS0tbGluay13aXRoLWljb24gYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4zcmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBJbiB0aGUgZm9vdGVyXG4qL1xuLnBhZ2UtZm9vdGVyIC5ibG9jay0tbGlua3Mge1xuICBhIHtcbiAgICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JleSk7XG5cbiAgICAmOmlzKDpob3ZlciwgOmZvY3VzKSB7XG4gICAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICAgIH1cbiAgfVxuXG4gIHN2Zy5leHQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxufVxuXG4vLyBBdCBzbWFsbGVyIHNjcmVlbiBzaXplc1xuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gIC5wYWdlLWZvb3RlciAuYmxvY2stc29jaWFsLW1lZGlhLWxpbmtzLWJsb2NrIHtcbiAgICBtYXJnaW46IDJyZW0gMDtcbiAgfVxuXG4gIC5wYWdlLWZvb3RlciAuZmllbGQtcGctbGlua3Mge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbn1cblxuLy8gQXQgYmlnZ2VyIHNjcmVlbiBzaXplc1xuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuICAucGFnZS1mb290ZXIge1xuXG4gICAgLmZpZWxkLXBnLWxpbmtzIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZW5kO1xuXG4gICAgfVxuXG4gIH1cbn1cbiIsIi8qXG4gKiBDb21wb25lbnQgQ1NTIGZvciBibG9jayBjYXJkIGNvcG1vbmVudFxuICovXG5cbi5ibG9jay0tY2FyZCB7XG4gIGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjNyZW07XG4gIH1cblxuICAvLyBJbWFnZSBhZGp1c3RtZW50c1xuICAuZmllbGQtbWVkaWEtaW1hZ2Uge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtYmlnKTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBmaWd1cmUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEljb24gYWRqdXN0bWVudHNcbiAgLm1lZGlhLS1pY29uIHtcbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDNyZW07XG4gICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICB9XG5cbiAgICBzdmcsXG4gICAgcGF0aCB7XG4gICAgICBmaWxsOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1saW5rcyBhIHtcbiAgICBAaW5jbHVkZSBjYXJldC1saW5rKCk7XG4gIH1cbn1cbiIsIi5yZWdpb24tYnJlYWRjcnVtYnMge1xuICAtLWJzLWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogdmFyKC0td2hpdGUpO1xuICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcigpO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxub2wuYnJlYWRjcnVtYiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG4iLCIvKlxuICoqIENvbXBvbmVudCBDU1MgZm9yIEV2ZW50c1xuKi9cbi5ldmVudC1sb2NhdGlvbi1tb2RlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjVyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4iLCIvKlxuICogQWRkaXRpb25hbCBjb21wb25lbnQgdGhlbWluZyBmb3IgZm9ybXNcbiovXG5cbmZvcm0ge1xuICAtLWJzLWJvcmRlci13aWR0aDogMnB4O1xufVxuXG4uZm9ybS1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmZvcm0td3JhcHBlciB7XG4gIG1hcmdpbjogMCAwIDEuOHJlbTtcblxuICAuZm9ybS1pdGVtIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICB9XG5cbiAgLmZvcm0td3JhcHBlciB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5mb3JtLWNvbnRyb2wge1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAoMiAqIHZhcigtLXJlc3BvbnNpdmUtcGFkZGluZykpKVxufVxuXG4uZm9ybS1hY3Rpb25zIHtcbiAgbWFyZ2luLXRvcDogMS44cmVtO1xufVxuXG4uZm9ybS1zdWJtaXQge1xuICAtLWJzLWJ0bi1jb2xvcjogdmFyKC0tYWNjZW50LXJlZCk7XG59XG5cbmRldGFpbHMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodGVyLWdyZXkpO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbnN1bW1hcnkge1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ncmV5KTtcblxuICAmOjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kYXJrLWdyZXkpO1xuICB9XG59XG5cbmxlZ2VuZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5sYWJlbCxcbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IC4zcmVtO1xufVxuXG4uZGVzY3JpcHRpb24sXG4uY291bnRlciB7XG4gIGZvbnQtc2l6ZTogLjg1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5mb3JtLXRleHQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG5cbmlucHV0LFxuc2VsZWN0XG5cbi8qIENoZWNrYm94ZXMgKi9cbi5mb3JtLXJhZGlvcyxcbi5mb3JtLWNoZWNrYm94ZXMsXG4udGVybS1yZWZlcmVuY2UtdHJlZS1sZXZlbCB7XG4gIC5mb3JtLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAwLjVyZW07XG4gICAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgfVxufVxuXG4uZm9ybS1jaGVjay1pbnB1dDpjaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xufVxuIiwiLyoqXG4gKiBDb21wb25lbnQgQ1NTIGZvciBKb2JzL1JGUHMgbm9kZXNcbiAqL1xuLmZpZWxkLWpvYi1vbG9lY3Rpb24+ZGl2IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vLyBUZWFzZXIgdmlldyBtb2RlXG5cbi5qb2ItcmZwLnRlYXNlciB7XG5cbiAgLmpvYi1yZnAtY29udGVudD5zcGFuIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJsYWNrKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGhlaWdodDogLjI1cmVtO1xuICAgICAgd2lkdGg6IC4yNXJlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW46IDAgMC4yNXJlbTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmpvYi1yZnAtZGVhZGxpbmUge1xuICAgIGNvbG9yOiB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC8vIExvZ28gZ3JpZCBsYXlvdXRcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAgICYuaGFzLWxvZ28ge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byA5LjJyZW07XG4gICAgICBnYXA6IDAgdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKTtcbiAgICB9XG5cbiAgICAuY29udGVudC1sYWJlbHMge1xuICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgICB9XG5cbiAgICAuY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgLmpvYi1yZnAtZGVhZGxpbmUge1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5vcmctbG9nbyB7XG4gICAgICBvcmRlcjogMjtcbiAgICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGltYWdlIG9uIG1vYmlsZVxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAub3JnLWxvZ28ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxufVxuIiwiLypcbiAqIENvbXBvbmVudCBDU1MgZm9yIG1lZGlhIGVudGl0aWVzXG4qL1xuXG4ubG9nb3MtaW5saW5lIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdyaWQtZ2FwOiBjYWxjKDIgKiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpKTtcbiAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG5cbiAgbGkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIGltZyB7XG4gICAgaGVpZ2h0OiA1NXB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogNzVweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gSW1hZ2VzXG5cbi5tZWRpYS0taW1hZ2UuY29udGVudC1oYWxmLXdpZHRoIHtcbiAgd2lkdGg6IDUwJVxufVxuXG4ubWVkaWEtLWltYWdlLmNvbnRlbnQtZnVsbC13aWR0aCB7XG4gIHdpZHRoOiAxMDAlXG59XG5cbi8vIEF0dGFjaG1lbnRzIChEb2N1bWVudHMpXG5cbi5maWVsZC1maWxlLWF0dGFjaG1lbnQgLmdyaWQge1xuICBncmlkLWdhcDogMXJlbTtcbn1cblxuLm1lZGlhLS1kb2N1bWVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmtlci1ibHVlKTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogMTByZW07XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLy8gRm9yIGRvY3VtZW50c1xuICAmLmZpbGV0eXBlLWRvYyB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuXG4gIC5maWVsZC1tZWRpYS1kb2N1bWVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgfVxuXG4gIC5maWxlLWluZm8ge1xuICAgIGNvbG9yOiB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuXG4gIC5maWxlLXNpemUge1xuICAgIG1hcmdpbi1sZWZ0OiAuMnJlbTtcbiAgfVxuXG4gIC5maWxlLWljb24ge1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIHdpZHRoOiAuOXJlbTtcbiAgICBmaWxsOiB2YXIoLS1ncmV5KTtcbiAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xuICB9XG5cbiAgLy8gRm9yIGltYWdlc1xuICAmLmZpbGV0eXBlLWltZyB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogTWlzYy4gQWRkaXRpb25hbCBuYXYgY29tcG9uZW50c1xuKi9cblxuLy8gUGFnZXIgYWRqdXN0bWVudHNcblxuLnBhZ2luYXRpb24ge1xuICAtLWJzLXBhZ2luYXRpb24tYWN0aXZlLWJnOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICAtLWJzLXBhZ2luYXRpb24tYWN0aXZlLWJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgLS1icy1wYWdpbmF0aW9uLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuXG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAzcmVtIDA7XG59XG5cbi5wYWdlLWxpbms6aXMoOmhvdmVyLCA6Zm9jdXMpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHRlci1ncmV5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vLyBPbiBzbWFsbGVyIHNjcmVlbnMsIGp1c3QgaGlkZSB0aGUgbnVtYmVyc1xuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgLnBhZ2luYXRpb24gLnBhZ2UtaXRlbSB7XG5cbiAgICAvLyBIaWRlIGZpcnN0L2xhc3QvbmV4dC9wcmV2aW91cyB0ZXh0IG9uIHNtYWxsZXIgc2NyZWVucy5cbiAgICAmLnBhZ2VyX19pdGVtLS1uZXh0LFxuICAgICYucGFnZXJfX2l0ZW0tLWxhc3QsXG4gICAgJi5wYWdlcl9faXRlbS0tZmlyc3QsXG4gICAgJi5wYWdlcl9faXRlbS0tcHJldmlvdXMge1xuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICYgLnBhZ2UtbGluazo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYucGFnZXJfX2l0ZW0tLW5leHQgLnBhZ2UtbGluazo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcMjAzQSc7XG4gICAgfVxuXG4gICAgJi5wYWdlcl9faXRlbS0tbGFzdCAucGFnZS1saW5rOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwwMGJiJztcbiAgICB9XG5cbiAgICAmLnBhZ2VyX19pdGVtLS1maXJzdCAucGFnZS1saW5rOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwwMGFiJztcbiAgICB9XG5cbiAgICAmLnBhZ2VyX19pdGVtLS1wcmV2aW91cyAucGFnZS1saW5rOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwyMDM5JztcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogQ29tcG9uZW50IENTUyBjb21tb24gdG8gc2V2ZXJhbCBub2RlIHR5cGVzICYgdmlldyBtb2Rlc1xuICogVXN1YWxseSBjb21tb24gdG8gUmVzb3VyY2VzLCBKb2JzL1JGUHMsIE5ld3MgJiBFdmVudHNcbiAqL1xuXG4vLyBQcmV2aWV3IGhlYWRlclxuLnBhdGgtbm9kZSAubm9kZS1wcmV2aWV3LWNvbnRhaW5lci5ub2RlLXByZXZpZXctY29udGFpbmVyIC5mb3JtLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIGxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbi8vIENvbnRlbnQgbGFiZWxcbi5jb250ZW50LWxhYmVscyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmNvbnRlbnQtbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1wcmltYXJ5LWJsdWUpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBwYWRkaW5nOiAuNXJlbSAwLjdyZW07XG59XG5cbi8vIENyZWF0ZWQgaW50ZXJ2YWxcbi5jcmVhdGVkLWludGVydmFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyay1ncmV5KTtcbiAgYm9yZGVyLXJhZGl1czogLjVyZW07XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAuOXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luOiAuM3JlbTtcbiAgcGFkZGluZzogMC4xcmVtIC41cmVtO1xufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHhsKSB7XG4gIC5yZWdpb24tYmFubmVyIC5jb250ZW50LWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBwYWRkaW5nOiAuNWVtIC43ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuXG4ubm9kZS50ZWFzZXIge1xuXG4gICYuZXZlbnQsXG4gICYubmV3cyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmNvbnRlbnQtbGFiZWwge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGVhc2VyL2NhcmQgdmlldyBtb2RlXG4ubm9kZS5jYXJkLFxuLm5vZGUudGVhc2VyIHtcblxuICAtLWRlZmF1bHQtaW1hZ2Utc2l6ZTogMTJyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0ZXItYmx1ZSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG5cbiAgaDIsXG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuMzVyZW07XG4gICAgbWFyZ2luOiAwIDAgLjM1cmVtO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogdmFyKC0tYmxhY2spO1xuXG4gICAgICAvLyBGYWtlIHRoZSBmdWxsIGNhcmQgbGlua1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWxpZ2h0LXByaW1hcnktYmx1ZSk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3ctc3RhbmRhcmQpO1xuICAgICAgfVxuXG4gICAgICAmOmlzKDpob3ZlciwgOmZvY3VzKTo6YWZ0ZXIge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuXG4gICAgICAmOmlzKDpmb2N1cy13aXRoaW4pOjphZnRlciB7XG5cbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLmZpZWxkLWVtcGxveWVyIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgLmZpZWxkLmJvZHkge1xuICAgIG1hcmdpbjogLjVyZW0gMCAxcmVtO1xuXG4gICAgcDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5kYXRlIHtcbiAgICBjb2xvcjogdmFyKC0tZGFyay1ncmV5KTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gIH1cblxuICAuZGF0ZXRpbWUubGFuZy0tZnIge1xuICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIH1cblxuICAvLyBEZWZhdWx0IGltYWdlcyBmb3IgbmV3cyAmIGV2ZW50c1xuICAuZGVmYXVsdC1pbWFnZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHQtZ3JleSk7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogdmFyKC0tZGVmYXVsdC1pbWFnZS1zaXplKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogY2FsYygxLjIgKiB2YXIoLS1kZWZhdWx0LWltYWdlLXNpemUpKTtcbiAgICAgIHdpZHRoOiBjYWxjKDEuMiAqIHZhcigtLWRlZmF1bHQtaW1hZ2Utc2l6ZSkpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHRlci1ncmV5KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG1hcmdpbjogLTFyZW0gMDtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgLS1pY29uLXNpemU6IDMuOHJlbTtcbiAgICAgIHdpZHRoOiB2YXIoLS1pY29uLXNpemUpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1pY29uLXNpemUpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAodmFyKC0taWNvbi1zaXplKSAvIDIpKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IDY7XG4gICAgICBmaWxsOiB2YXIoLS1ncmV5KTtcblxuICAgICAgcGF0aCB7XG4gICAgICAgIGZpbGw6IHZhcigtLWdyZXkpO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgJi5ldmVudCxcbiAgJi5uZXdzLWRpZ2VzdCxcbiAgJi5uZXdzIHtcbiAgICAubWVkaWEgZmlndXJlIHtcbiAgICAgIGhlaWdodDogdmFyKC0tZGVmYXVsdC1pbWFnZS1zaXplKTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gSGlkZSBib2R5IGluIHNtYWxsZXIgdmlld3BvcnRzXG5cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAubm9kZS50ZWFzZXIgLmZpZWxkLmJvZHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8gRml4IGhlaWdodHMgaW4gdHdvIGNvbHVtbiBsYXlvdXRcbi5ncmlkIGxpPi5ub2RlIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpKTtcblxuICAuY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDMuNXJlbSAtIHZhcigtLWd1dHRlci1zdGFuZGFyZCkpO1xuICB9XG5cbiAgLmRhdGUge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gIH1cblxuICAmLmV2ZW50LFxuICAmLm5ld3MtZGlnZXN0LFxuICAmLm5ld3Mge1xuICAgIC5jb250ZW50IHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tZGVmYXVsdC1pbWFnZS1zaXplKSk7XG4gICAgfVxuICB9XG59XG5cbi8vIE5ld3MgZGlnZXN0IGxpbmsgZmllbGRzXG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWxpbmstd2l0aC1kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgaDIge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cbn1cbiIsIi8qXG4gKiogQ29tcG9uZW50IENTUyBmb3Igbm9kZSBkZXRhaWxzIHZpZXcgbW9kZVxuICoqIFVzZWQgZm9yIEV2ZW50cyBhbmQgSm9icy9SRlBzXG4qL1xuXG4ubm9kZS5kZXRhaWxzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHRlci1ibHVlKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygzICogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKSk7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlci1zdGFuZGFyZCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDQ7XG4gIH1cblxuICBhOm5vdCguYnRuKSB7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudC1yZWQpO1xuICB9XG5cbiAgYS5idG4ge1xuICAgIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS1hY2NlbnQtcmVkKTtcbiAgfVxuXG4gIGEuZXh0IHtcbiAgICBzdmcge1xuICAgICAgZmlsbDogdmFyKC0tYWNjZW50LXJlZCk7XG5cbiAgICAgIHBhdGgge1xuICAgICAgICBzdHJva2U6IHZhcigtLWFjY2VudC1yZWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5idG46aXMoOmhvdmVyLCA6Zm9jdXMpIHtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgZmlsbDogdmFyKC0td2hpdGUpO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogdmFyKC0td2hpdGUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZmllbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cblxuICAuZmllbGRfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIG1hcmdpbi1yaWdodDogLjRyZW07XG4gICAgfVxuICB9XG5cbiAgJi5sYW5nLS1mciAuZmllbGRfX2xhYmVsIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogLjRyZW07XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLWV2ZW50LWxvY2F0aW9uLFxuICAuZmllbGQtam9iLWxvY2F0aW9uIHtcbiAgICBkaXYge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbiAgfVxuXG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgQGluY2x1ZGUgbW9iaWxlLW1hcmdpbi1ibGVlZCgpO1xuICAgIGNsaXAtcGF0aDogdmFyKC0tY2xpcC1hbmdsZS1ib3R0b20pO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDIgKiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWJpZyk7XG4gICAgcGFkZGluZy1ib3R0b206IC4ycmVtO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgYW5nbGVkLWJvdHRvbS1jdXJ2ZSgpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBJbiBmcmVuY2gsIG1ha2UgdGhlIGRhdGUgbG93ZXIgY2FzZVxuaHRtbFtsYW5nPWZyXSB7XG4gIC5maWVsZC1qb2ItZGVhZGxpbmUtZGF0ZSB7XG4gICAgdGltZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBDb21wb25lbnQgQ1NTIGZvciBmdWxsIG5vZGVzXG4gKiBDb21tb24gdG8gUmVzb3VyY2VzLCBFdmVudHMsIEpvYnMvUkZQcywgTmV3c1xuKi9cbi5ub2RlLmZ1bGwge1xuICAubWFpbiB7XG4gICAgLmJsb2NrLS1sYXlvdXQtYnVpbGRlcj4uZmllbGQuYm9keS5zdW1tYXJ5LXRyaW1tZWQge1xuICAgICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgfVxuICB9XG5cbiAgJi5qb2ItcmZwIC5tYWluIC5ibG9jay0tbGF5b3V0LWJ1aWxkZXI+LmZpZWxkLmJvZHkuc3VtbWFyeS10cmltbWVkIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC5maWVsZC1saW5rcyBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIH1cblxuICAuc2lkZWJhci10b3Age1xuICAgIC5ibG9jayB7XG4gICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICYubGlzdC11bnN0eWxlZCBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC43NXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmxhbmctLWZyIC5ub2RlLmZ1bGwge1xuXG4gIC5maWVsZC0tbmFtZS1jcmVhdGVkLFxuICAuZmllbGQuY2hhbmdlZCAuZmllbGRfX2l0ZW0ge1xuICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIH1cbn1cblxuLy8gRml4aW5nIG1hcmstdXAgZm9yIFJlZ2lvbnMgbGlzdFxuLy8gVGhlcmUgaXMgYSBwYXRjaCBmb3IgdGhpcyBtYXJrLXVwIGlzc3VlICgjMzI0NzQ5MSkgYnV0IGl0IGN1cnJlbnRseSBjb25mbGljdHNcbi8vIFdpdGggYSBtb3JlIGltcG9ydGFudCBwYXRjaFxuXG4uZmllbGQtcmVnaW9ucyAudGVybS10cmVlLWxpc3Qge1xuICAmPi5pdGVtLWxpc3Q+LnRlcm0+bGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAuc2VsZWN0ZWQge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cblxufVxuXG4vLyBTZXR0bGVuZXQub3JnIGxpbmtcbi5maWVsZC1zZXR0bGVuZXQtb3JnLWxpbmsge1xuICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2Fzc2V0cy9zZXR0bGVuZXQtZGlzY3Vzcy1pY29uLnN2ZycpIG5vLXJlcGVhdCA5NSUgY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodGVyLWdyZXkpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xuXG4gICYgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDI0JTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWJpZyk7XG4gICAgaGVpZ2h0OiAxMzBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMTBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTUwcHg7XG4gICAgbWFyZ2luOiAwIGNhbGMoLTEgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogMTYwcHg7XG4gIH1cbn1cblxuLy8gUGFydG5lcnNoaXBzIGJsb2NrXG4uZmllbGQtcGFydG5lcnNoaXBzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHRlci15ZWxsb3cpO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xuXG4gIHA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIHN2Zy5leHQge1xuICAgIG1hcmdpbi1yaWdodDogLS42cmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgQGluY2x1ZGUgbW9iaWxlLW1hcmdpbi1ibGVlZCgpXG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1iaWcpO1xuXG4gICAgJi5oYXMtbG9nbyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDguMnJlbTtcbiAgICAgIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH1cblxufVxuIiwiLy8gRXhwb3NlZCBmb3JtIHRoZW1pbmdcbi8vIERlcGVuZHMgb24gZXhwb3NlZCBmaWx0ZXJzIGJlaW5nIGluIHRoZSBzaWRlYmFyLXRvcCBsYXlvdXQgcmVnaW9uXG5cbi52aWV3cy1leHBvc2VkLWZvcm0ge1xuICBmb3JtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLyBSZWd1bGFyIEFwcGx5IHN1Ym1pdCBidXR0b25cblxuLnNpZGViYXItdG9wIC52aWV3cy1leHBvc2VkLWZyb20ge1xuICBoMjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmZvcm0tc3VibWl0IHtcbiAgICAtLWJzLWJ0bi1iZzogdmFyKC0tYWNjZW50LXJlZCk7XG4gICAgLS1icy1idG4tY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgICBmb250LXNpemU6IC45ZW07XG4gICAgcGFkZGluZzogLjZyZW0gLjhyZW07XG4gIH1cbn1cblxuLy8gU2VhcmNoIGV4cG9zZWQgZm9ybVxuXG4uZXhwb3NlZC1zZWFyY2gtZm9ybSB7XG4gIC0tc2VhcmNoLWJ1dHRvbi13aWR0aDogMi41cmVtO1xuICAtLXNlYXJjaC1mb3JtLWhlaWdodDogMi41cmVtO1xuXG4gIC8vIFRoZW1lIHRoZSBzZWFyY2ggaW5wdXQgJiBzdWJtaXQgYnV0dG9uXG4gIC5mb3JtLXR5cGUtdGV4dGZpZWxkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNlYXJjaC1idXR0b24td2lkdGgpKTtcblxuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmZvcm0tdGV4dCB7XG4gICAgICBoZWlnaHQ6IHZhcigtLXNlYXJjaC1mb3JtLWhlaWdodCk7XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tc3VibWl0IHtcblxuICAgIC0tYnMtYnRuLWFjdGl2ZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgMCAwIC00cHg7XG4gICAgcGFkZGluZzogLjZyZW07XG4gICAgaGVpZ2h0OiB2YXIoLS1zZWFyY2gtZm9ybS1oZWlnaHQpO1xuICAgIHdpZHRoOiB2YXIoLS1zZWFyY2gtYnV0dG9uLXdpZHRoKTtcblxuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWJsdWUpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBoZWlnaHQ9JzFlbScgZmlsbD0nJTIzZmZmJyB2aWV3Qm94PScwIDAgNTEyIDUxMiclM0UlM0NwYXRoIGQ9J000MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2Yy0zNC40IDI1LjItNzYuOCA0MC0xMjIuNyA0MEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMFM0MTYgOTMuMSA0MTYgMjA4ek0yMDggMzUyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHonLyUzRSUzQy9zdmclM0VcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiA1MCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblxuICAgICY6aXMoOmhvdmVyLCA6Zm9jdXMpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LXJlZCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtcmVkKTtcbiAgICB9XG5cbiAgfVxufVxuXG4vLyBTcGVjaWFsIHRoZW1pbmcgZm9yIHNpZGViYXIgZmlsdGVyc1xuLnNpZGViYXItdG9wIHtcblxuICAvLyAgUG9zaXRpb24gdGhlIHJlc2V0IGJ1dHRvblxuICAudmlld3MtZXhwb3NlZC1mb3JtIHtcblxuICAgIC5mb3JtLXN1Ym1pdCB7fVxuXG4gICAgLmZvcm0tcmVzZXQge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gICAgICBtYXJnaW46IDAgMCAwIDFyZW07XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICB3aWR0aDogYXV0bztcblxuICAgICAgJjppcyg6aG92ZXIsIDpmb2N1cykge1xuICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1ibHVlKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRoZW1lIEJFRiBjb2xsYXBzaWJsZSBlbGVtZW50c1xuLmJlZi1leHBvc2VkLWZvcm0gZGV0YWlscyB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwIDAgLTJweDtcblxuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgc3VtbWFyeSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOjptYXJrZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNoZXZyb24oJHNpemU6IC42cmVtLCAkc3Ryb2tlOiA0cHgsICRkaXJlY3Rpb246IHJpZ2h0LCAkY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSkpO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgICZbYXJpYS1leHBhbmRlZD10cnVlXTo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgICB9XG4gIH1cblxuICAuZGV0YWlscy13cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodGVyLWdyZXkpO1xuICAgIHBhZGRpbmc6IC41cmVtIDFyZW07XG4gIH1cblxuICAvLyBHcm91cGVkIGZpbHRlcnMgaGF2ZSBhbiBleHRyYSBmaWVsZHNldFxuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogLjk1ZW07XG4gIH1cbn1cblxuLy8gQkVGIGNoZWNrYm94ZXMgZml4XG4uYmVmLWNoZWNrYm94ZXMuYmVmLW5lc3RlZCB7XG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8gSGlkZS9zaG93IG92ZXJmbG93IGJlaGF2aW91ciBmb3IgY2hlY2tib3ggbGlzdHNcbi5jb2xsYXBzaWJsZS1jaGVja2JveGVzLXRyaWdnZXIge1xuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcrJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAuMnJlbTtcbiAgfVxuXG4gICYuc2hvdzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnLSc7XG4gIH1cbn1cblxuLmNvbGxhcHNpYmxlLWNoZWNrYm94ZXMge1xuICAuYmVmLWNoZWNrYm94ZXMgbGk6bnRoLWNoaWxkKG4rNikge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLnNob3cge1xuICAgIC5iZWYtY2hlY2tib3hlcyBsaTpudGgtY2hpbGQobis2KSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cblxuLy8gUHV0IHRoZSBzb3J0IGxhYmVsIGluc2lkZSB0aGUgc2VsZWN0IGJveFxuLmZvcm0taXRlbS1zb3J0LWJlZi1jb21iaW5lIHtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZ3JleSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAuMnJlbSAuNXJlbTtcblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gIH1cblxuICAuZm9ybS1pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgbWFyZ2luOiAuMnJlbSAwIDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJzonXG4gICAgfVxuICB9XG5cbiAgc2VsZWN0IHtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIEJFRiAob3IgVmlld3MgYWpheD8pIGJyaWVmbHkgYWRkcyBkaXNhYmxlZCBjbGFzcyB0byBidXR0b25zXG4uYmVmLWV4cG9zZWQtZm9ybSAuZm9ybS1zdWJtaXQge1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1iZzogdmFyKC0tYnMtYnRuLWFjdGl2ZS1iZyk7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtYnRuLWFjdGl2ZS1iZyk7XG4gIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIC0tYnMtYnRuLWJnOiB2YXIoLS1wcmltYXJ5LWJsdWUpO1xuICAtLWJzLWJ0bi1ob3Zlci1iZzogdmFyKC0tYWNjZW50LXJlZCk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbiIsIi8qXG4gKiBDb21wb25lbnQgQ1NTIGZvciBTb2NpYWwgc2hhcmluZyBsaW5rc1xuKi9cblxuLnNvY2lhbC1zaGFyaW5nLWJ1dHRvbnMge1xuXG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIG1hcmdpbjogMXJlbSAwO1xuXG4gIGgyIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuaWNvbiB7XG4gICAgaGVpZ2h0OiAxLjJyZW07XG4gICAgd2lkdGg6IDEuMnJlbTtcbiAgICBmaWxsOiB2YXIoLS1ncmV5KTtcbiAgfVxuXG4gIGE6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgY29udGVudDogJywnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG59XG4iLCIvKipcbiAqIENvbXBvbmVudCBDU1MgZm9yIHRheG9ub215IHRlcm1zXG4qL1xuXG4vLyBWb2NhYnVsYXJ5IGxhbmRpbmcgcGFnZSB2aWV3c1xuXG4udmlldy10YXhvbm9teSAuY29sdW1ucy0tM2NvbCB7XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMXJlbSAwIDFyZW07XG4gIH1cblxuICBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxufVxuXG4vLyBUZXJtIEZ1bGwgcGFnZVxuLnRheG9ub215LXRlcm0uZnVsbCB7XG4gIC5kZXNjcmlwdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDEuMzVyZW07XG4gICAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgfVxufVxuXG4vLyBPcmdhbml6YXRpb24gbG9nb3MsIHVzZWQgaW4gYSBmZXcgcGxhY2VzXG4ub3JnLWxvZ28gZmlndXJlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpO1xuICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1saWdodC1ncmV5KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1iaWcpO1xuXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogOC4ycmVtO1xuICBoZWlnaHQ6IDguMnJlbTtcbiAgcGFkZGluZzogLjhyZW07XG59XG5cbi8vIE1lZ2FtZW51IGNhcmQgdmlldyBtb2RlXG4udGF4b25vbXktdGVybS5tZWdhbWVudS1jYXJkIHtcbiAgaDIge1xuICAgIGEge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiB2YXIoLS1ibGFjayk7XG4gICAgfVxuICB9XG5cbiAgJi5oYXMtbG9nbyAuY29udGVudCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bztcbiAgICBncmlkLWdhcDogLjVyZW07XG4gIH1cblxuICAub3JnLWxvZ28gZmlndXJlIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC15ZWxsb3cpO1xuICAgIHdpZHRoOiA1LjJyZW07XG4gICAgaGVpZ2h0OiA1LjJyZW07XG4gIH1cblxuICAmPi5idG4ge1xuICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gIH1cbn1cblxuLy8gQSBmZXcgYWRkaXRpb25hbCBiaXRzIGZvciB0aGUgdGF4b25vbXkvdGVybSB0YWIgZGlzcGxheXNcblxuLy8gTWFrZSBibG9jayB0aXRsZXMgdmlzdWFsbHkgaGlkZGVuIHdoZW4gbmVlZGVkXG4udGF4b25vbXktdGVybSAudGFiLXBhbmUuYmxvY2stLXZpZXdzPmgyIHtcbiAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xufVxuXG5cbi8vIEZ1bGwgY29udGVudCBsYXlvdXRcbi50YXhvbm9teS10ZXJtLmZ1bGwgLmdyb3VwLW1vcmUtaW5mbyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlci1zdGFuZGFyZCk7XG5cbiAgaDIge1xuICAgIG1hcmdpbi1ib3R0b206IC44cmVtO1xuICB9XG5cbiAgaDI6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgaGVhZGluZy1iYXIoKTtcbiAgfVxuXG4gIC5maWVsZF9fbGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLXJpZ2h0OiAuMnJlbTtcbiAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gIC50YXhvbm9teS10ZXJtLmZ1bGwgLmdyb3VwLW9yZy1pbmZvIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMTByZW0sIDE0cmVtKTtcbiAgICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKTtcbiAgfVxuXG4gIC5maWVsZC1vcmdhbml6YXRpb24tbG9nbyB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBIaWRlIGNvbnRlbnQgdmlzdWFsbHkgd2hpbGUga2VlcGluZyBpdCBhY2Nlc3NpYmxlIHRvIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXNcbi8vXG4vLyBTZWU6IGh0dHBzOi8vd3d3LmExMXlwcm9qZWN0LmNvbS9wb3N0cy8yMDEzLTAxLTExLWhvdy10by1oaWRlLWNvbnRlbnQvXG4vLyBTZWU6IGh0dHBzOi8va2l0dHlnaXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cblxuQG1peGluIHZpc3VhbGx5LWhpZGRlbigpIHtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogLTFweCAhaW1wb3J0YW50OyAvLyBGaXggZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMjU2ODZcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG5cbiAgLy8gRml4IGZvciBwb3NpdGlvbmVkIHRhYmxlIGNhcHRpb24gdGhhdCBjb3VsZCBiZWNvbWUgYW5vbnltb3VzIGNlbGxzXG4gICY6bm90KGNhcHRpb24pIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIEZpeCB0byBwcmV2ZW50IG92ZXJmbG93aW5nIGNoaWxkcmVuIHRvIGJlY29tZSBmb2N1c2FibGVcbiAgKiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIFVzZSB0byBvbmx5IGRpc3BsYXkgY29udGVudCB3aGVuIGl0J3MgZm9jdXNlZCwgb3Igb25lIG9mIGl0cyBjaGlsZCBlbGVtZW50cyBpcyBmb2N1c2VkXG4vLyAoaS5lLiB3aGVuIGZvY3VzIGlzIHdpdGhpbiB0aGUgZWxlbWVudC9jb250YWluZXIgdGhhdCB0aGUgY2xhc3Mgd2FzIGFwcGxpZWQgdG8pXG4vL1xuLy8gVXNlZnVsIGZvciBcIlNraXAgdG8gbWFpbiBjb250ZW50XCIgbGlua3M7IHNlZSBodHRwczovL3d3dy53My5vcmcvV0FJL1dDQUcyMi9UZWNobmlxdWVzL2dlbmVyYWwvRzEuaHRtbFxuXG5AbWl4aW4gdmlzdWFsbHktaGlkZGVuLWZvY3VzYWJsZSgpIHtcbiAgJjpub3QoOmZvY3VzKTpub3QoOmZvY3VzLXdpdGhpbikge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICB9XG59XG4iLCIvKipcbiAqIENvbXBvbmVudCBDU1MgZm9yIE9yZy9BZ2VuY3kgdGF4b25vbXkgdGVybXNcbiovXG5cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAuZmllbGQtb3JnYW5pemF0aW9uLWxvZ28ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8gRnVsbCBjb250ZW50IGxheW91dFxuLnRheG9ub215LXRlcm0uZnVsbCAuZ3JvdXAtbW9yZS1pbmZvIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKTtcblxuICBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjhyZW07XG4gIH1cblxuICBoMjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWJhcigpO1xuICB9XG5cbiAgLmZpZWxkX19sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW4tcmlnaHQ6IC4ycmVtO1xuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgLnZvY2FidWxhcnktb3Jncy1hbmQtYWdlbmNpZXMgLmdyb3VwLW9yZy1pbmZvIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxMHJlbTtcbiAgICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyLXN0YW5kYXJkKTtcbiAgfVxuXG4gIC5maWVsZC1vcmdhbml6YXRpb24tbG9nbyB7XG4gICAgb3JkZXI6IDI7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgfVxufVxuIiwiLy8gQm9vdHN0cmFwIG92ZXJyaWRlcyBmb3IgdGFic1xuXG4ubmF2LXRhYnMge1xuICAubmF2LWxpbmsge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0ZXItZ3JleSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWdyZXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktYmx1ZSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgfVxufVxuXG4vLyBKdXN0IGZvciB0YXhvbm9teSB0d28gY29sdW1uIGxheW91dFxuLnRheG9ub215LXR3b2NvbC10YWJzIC5uYXYtdGFicyB7XG4gIC0tdGFiLWJvcmRlci13aWR0aDogMnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBlbmQ7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nKTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkpO1xuICAgIGhlaWdodDogdmFyKC0tdGFiLWJvcmRlci13aWR0aCk7XG4gICAgd2lkdGg6IDEwMCVcbiAgfVxuXG4gIC5uYXYtbGluayB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLXRhYi1ib3JkZXItd2lkdGgpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMXB4O1xuICAgICAgYm90dG9tOiAuNXB4O1xuICAgICAgbWFyZ2luOiAwIGNhbGMoLTEgKiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSk7XG4gICAgICB6LWluZGV4OiA0O1xuICAgIH1cblxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogdmFyKC0tYmxhY2spO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gICAgICBib3JkZXI6IHZhcigtLXRhYi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWdyZXkpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZWZ0OiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDFweCArIHZhcigtLXRhYi1ib3JkZXItd2lkdGgpKTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgICY6aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHQtZ3JleSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWxpZ2h0LWdyZXkpO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duIChtZCkge1xuICAudGF4b25vbXktdHdvY29sLXRhYnMgLm5hdi10YWJzIHtcbiAgICBjdXJzb3I6IGdyYWI7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1yZXNwb25zaXZlLXBhZGRpbmcpKTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XG4gIC50YXhvbm9teS10d29jb2wtdGFicyAubmF2LXRhYnMge1xuXG4gICAgLm5hdi1saW5rOjphZnRlciB7XG4gICAgICBib3R0b206IDEuNXB4O1xuICAgIH1cblxuICAgIC8vIEZha2UgYSBkcm9wIHNoYWRvdyB0byB0aGUgcmlnaHRcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgxNzUsIDE3NSwgMTc1LCAwLjUpKTtcbiAgICAgIGhlaWdodDogMi41cmVtO1xuICAgICAgd2lkdGg6IDExcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHotaW5kZXg6IDk5O1xuICAgIH1cbiAgfVxufVxuXG4vLyBIaWRlIHRoZSBjbG9zZWQgdGFicyBieSBkZWZhdWx0XG4udGFiLXBhbmUge1xuICBkaXNwbGF5OiBub25lO1xuXG4gICYuc2hvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxufVxuIiwiLyoqXG4gKiBDb21wb25lbnQgQ1NTIGZvciBWaWV3c1xuKi9cblxuLnZpZXctaGVhZGVyLWZpbHRlcnMge1xuXG4gIC5mb3JtLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuZm9ybS13cmFwcGVyIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAudmlldy1oZWFkZXItZmlsdGVycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXItc3RhbmRhcmQpO1xuXG4gICAgLnZpZXdzLWV4cG9zZWQtZm9ybSxcbiAgICAuZm9ybS1pdGVtLXNvcnQtYmVmLWNvbWJpbmUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxufVxuIl19 */
