/* Document
 * ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 */
:where(html) {
  line-height: 1.15; /* 1 */
}
/* Sections
 * ========================================================================== */
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Edge, Firefox, and Safari.
 */
:where(h1) {
  margin-block-start: 0.67em;
  margin-block-end: 0.67em;
  font-size: 2em;
}
/* Grouping content
 * ========================================================================== */
/**
 * Remove the margin on nested lists in Chrome, Edge, and Safari.
 */
:where(dl, ol, ul) :where(dl, ol, ul) {
  margin-block-start: 0;
  margin-block-end: 0;
}
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Correct the inheritance of border color in Firefox.
 */
:where(hr) {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  color: inherit; /* 2 */
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
:where(pre) {
  font-size: 1em; /* 2 */
  font-family: monospace, monospace; /* 1 */
}
/* Text-level semantics
 * ========================================================================== */
/**
 * Add the correct text decoration in Safari.
 */
:where(abbr[title]) {
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
:where(b, strong) {
  font-weight: bolder;
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
:where(code, kbd, samp) {
  font-size: 1em; /* 2 */
  font-family: monospace, monospace; /* 1 */
}
/**
 * Add the correct font size in all browsers.
 */
:where(small) {
  font-size: 80%;
}
/* Tabular data
 * ========================================================================== */
/**
 * 1. Correct table border color in Chrome, Edge, and Safari.
 * 2. Remove text indentation from table contents in Chrome, Edge, and Safari.
 */
:where(table) {
  border-color: currentColor; /* 1 */
  text-indent: 0; /* 2 */
}
/* Forms
 * ========================================================================== */
/**
 * Remove the margin on controls in Safari.
 */
:where(button, input, select) {
  margin: 0;
}
/**
 * Remove the inheritance of text transform in Firefox.
 */
:where(button) {
  text-transform: none;
}
/**
 * Correct the inability to style buttons in iOS and Safari.
 */
:where(button, input:is([type="button" i], [type="reset" i], [type="submit" i])) {
  -webkit-appearance: button;
}
/**
 * Add the correct vertical alignment in Chrome, Edge, and Firefox.
 */
:where(progress) {
  vertical-align: baseline;
}
/**
 * Remove the inheritance of text transform in Firefox.
 */
:where(select) {
  text-transform: none;
}
/**
 * Remove the margin in Firefox and Safari.
 */
:where(textarea) {
  margin: 0;
}
/**
 * 1. Correct the odd appearance in Chrome, Edge, and Safari.
 * 2. Correct the outline style in Safari.
 */
:where(input[type="search" i]) {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
/**
 * Correct the cursor style of increment and decrement buttons in Safari.
 */
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */
::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}
/**
 * Remove the inner padding in Chrome, Edge, and Safari on macOS.
 */
::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * 1. Correct the inability to style upload buttons in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
/**
 * Remove the inner border and padding of focus outlines in Firefox.
 */
:where(button, input:is([type="button" i], [type="color" i], [type="reset" i], [type="submit" i]))::-moz-focus-inner {
  padding: 0;
  border-style: none;
}
/**
 * Restore the focus outline styles unset by the previous rule in Firefox.
 */
:where(button, input:is([type="button" i], [type="color" i], [type="reset" i], [type="submit" i]))::-moz-focusring {
  outline: 1px dotted ButtonText;
}
/**
 * Remove the additional :invalid styles in Firefox.
 */
:where(:-moz-ui-invalid) {
  box-shadow: none;
}
/* Interactive
 * ========================================================================== */
/*
 * Add the correct styles in Safari.
 */
:where(dialog) {
  position: absolute;
  right: 0;
  left: 0;
  width: -moz-fit-content;
  width: fit-content;
  height: -moz-fit-content;
  height: fit-content;
  margin: auto;
  padding: 1em;
  border: solid;
  background-color: white;
  color: black;
}
:where(dialog:not([open])) {
  display: none;
}
/*
 * Add the correct display in all browsers.
 */
:where(summary) {
  display: list-item;
}
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

::selection {
  background: #b3d4fc;
  text-shadow: none;
}

hr {
  display: block;
  height: 1px;
  margin: 1em 0;
  padding: 0;
  border: 0;
  border-top: 1px solid #ccc;
}

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

input,
button,
textarea,
select {
  font: inherit;
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

textarea {
  resize: vertical;
}

.browserupgrade {
  margin: 0.2em 0;
  padding: 0.2em 0;
  background: #ccc;
  color: #000;
}
.float-right{
    float: right;
}
.card__price, .price__count{
    position: relative;
    height: 40px;
}
.card__price s, .price__count s{
    color:#8e8282
}
.card__price>.difference,.price__count>.difference{
    position: absolute;
    top: -15px;
    right: -50px;
    text-align: center;
    margin: 0;
    background: #6FA92E;
    height: 20px;
    border-radius: 5px;
    color: white;
    font-size: 14px;
}
.hidden {
  display: none !important;
}
ul.pagination li{
    margin: 0 3px;
}
ul.pagination li a{
    text-decoration: none;
    color:#3E3E3E
}
ul.pagination li.active a{
    color:#6FA92E;
}
.visuallyhidden {
  clip: rect(0 0 0 0);
  -webkit-overflow-scrolling: touch;
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  white-space: nowrap;
}

.invisible {
  visibility: hidden;
}

.section {
  box-sizing: border-box;
  max-width: 1170px;
  margin: 0 auto;
  padding: 0 10px;
}

.section__title {
  margin-bottom: 13px;
  color: #3E3E3E;
  font-style: normal;
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.17;
}

.section__title_white {
  color: #fff;
}

.card {
  box-sizing: border-box;
  width: 212px;
  min-height: 296px;
  margin-top: 20px;
  margin-right: 3px;
  margin-bottom: 20px;
  margin-left: 50px;
  border: 1px solid rgba(142, 130, 130, 0.27);
  border-radius: 16px;
}

.card .card__image {
    height:260px;
  margin-top: 20px;
  margin-bottom: 9px;
  overflow: hidden;
}

.card .card__image img {
  width: 100%;
  height: 100%;
  object-fit:cover;
}

.card .card__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-left: 15px;
}

.card .card__content .card__title,
.card .card__content .card__price {
  color: #3E3E3E;
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.19;
}

.card .card__content .card__title {
  margin-top: 0;
  margin-bottom: 10px;
}

.card .card__content .card__price {
  margin-top: 10px;
}

.card .card__content .card__button {
  margin-bottom: 17px;
  padding: 0.5px 49px;
  border-radius: 11px;
  background: #6FA92E;
  color: #fff;
  font-style: normal;
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 2.14;
  text-align: center;
  cursor: pointer;
  transition: .3s ease;
}

.card .card__content .card__button:hover {
  background: #89cb3f;
}

.section__slider {
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
  display: flex;
  position: relative;
  min-height: 336px;
  padding-right: 100px;
  padding-left: 100px;
  overflow: hidden;
  border: 1px solid rgba(142, 130, 130, 0.27);
  border-radius: 16px;
  box-shadow: 0 0 10px rgba(142, 130, 130, 0.5);
}

.section__slider .slick-slide {
  box-sizing: border-box;
  width: 212px;
  min-height: 296px;
  margin-top: 20px;
  margin-right: 3px;
  margin-bottom: 20px;
  margin-left: 50px;
  border: 1px solid rgba(142, 130, 130, 0.27);
  border-radius: 16px;
}

.section__slider .slick-slide .card {
  margin: 0;
}

.section__slider .slick-list {
  -webkit-overflow-scrolling: touch;
  margin: 0 -30px;
  overflow: hidden;
}

.section__slider .slick-track {
  display: flex;
}

.section__slider .slick-arrow {
  z-index: 10;
  position: absolute;
  top: 45%;
  width: 25.5px;
  height: 60.48px;
  border: none;
  background: transparent;
  font-size: 0;
}

.section__slider .slick-prev {
  left: 15px;
  background-image: url("../img/icons/left-row.svg");
  background-position: 45% 45%;
  background-size: cover;
  background-repeat: no-repeat;
  transition: all 0.4s ease 0s;
}

.section__slider .slick-next {
  right: 26px;
  background-image: url("../img/icons/right-row.svg");
  background-position: 55% 45%;
  background-size: cover;
  background-repeat: no-repeat;
}

main {
  scroll-behavior: smooth;
}

.breadcrumbs {
  display: flex;
  justify-content: start;
  min-height: 90px;
  border-bottom: 1px solid rgba(142, 130, 130, 0.27);
}

.breadcrumbs .breadcrumbs__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 0;
  gap: 20px;
}

.breadcrumbs .breadcrumbs__list li {
  position: relative;
  list-style: none;
}

.breadcrumbs .breadcrumbs__list li:last-child a {
  text-decoration: none;
  cursor: default;
  pointer-events: none;
}

.breadcrumbs .breadcrumbs__list li:not(:last-child):after {
    position: absolute;
    top: 0;
    right: -15px;
    content: "/";
    color: #9C9C9C;
    font-size: 1.0rem;
}

.breadcrumbs .breadcrumbs__list li a {
    color: #d0cccc;
    font-style: normal;
    font-weight: 400;
    font-size: 14px;

}

.catalog__wrapper {
  border-radius: 16px;
  transition: 0.3s ease;
}

.catalog__wrapper .catalog_article {
  max-width: 268px;
  margin-bottom: 39px;
  border: 1px solid rgba(142, 130, 130, 0.27);
  border-radius: 16px;
}

.catalog__wrapper .catalog_article .section__title {
  margin: 0;
  padding-left: 17px;
  border-bottom: 1px solid rgba(142, 130, 130, 0.27);
  font-size: 1.25rem;
  line-height: 2.95;
}

.catalog__wrapper .catalog_article .article__list {
  margin: 0;
  padding-left: 0;
}

.catalog__wrapper .catalog_article .article__list li {
  padding-right: 10px;
  padding-left: 17px;
  list-style: none;
  transition: .3s ease;
}

.catalog__wrapper .catalog_article .article__list li:not(:last-child) {
  border-bottom: 1px solid rgba(142, 130, 130, 0.27);
}

.catalog__wrapper .catalog_article .article__list li:last-child {
  padding-bottom: 7px;
  border-bottom-right-radius: 15px;
  border-bottom-left-radius: 15px;
}

.catalog__wrapper .catalog_article .article__list li:hover {
  background-color: rgba(142, 130, 130, 0.27);
}

.catalog__wrapper .catalog_article .article__list li a {
  display: block;
  color: #3E3E3E;
  font-style: normal;
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 2.25;
  text-decoration: none;
}

.catalog__wrapper .commercial {
  margin-bottom: 60px;
}

.catalog__wrapper .commercial img {
  width: 100%;
  height: auto;
  border-radius: 16px;
}

.catalog_active {
  z-index: 10;
  transform: translateX(0) !important;
  background-color: #fff;
}

.icon-mono {
  fill: currentColor;
  display: inline-block;
  height: 1em;
}

.icon-facebook {
  width: 0.52632em;
  font-size: 1.9rem;
}

.icon-telegram {
  width: 1em;
  font-size: 18.947rem;
}

.icon-multi {
  display: inline-block;
  height: 1em;
}

.icon-js {
  width: 0.73052em;
  font-size: 30.8rem;
}

footer#footer {
  min-height: 317px;
  padding-top: 14px;
  background-color: #8E8282;
  color: #fff;
}

footer#footer a {
  color: #fff;
  text-decoration: none;
  transition: 0.3s ease;
}

footer#footer a:hover {
  color: #cccccc;
}

footer#footer .section .footer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 2px solid #fff;
}

footer#footer .section .footer__top .logo {
  display: flex;
  flex-wrap: wrap;
  width: 96px;
  height: 55px;
  margin-bottom: 10px;
}

footer#footer .section .footer__top .logo img {
  width: 100%;
}

footer#footer .section .footer__top .logo span {
  font-style: normal;
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1.17;
  text-transform: uppercase;
}

footer#footer .section .footer__top .phone {
  margin-right: 10px;
  font-style: normal;
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.15;
}

footer#footer .section .footer__middle {
  display: flex;
}

footer#footer .section .footer__middle .footer__menu {
  display: flex;
  flex-grow: 1;
  justify-content: center;
  gap: 50px;
}

footer#footer .section .footer__middle .footer__menu .middle__list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

footer#footer .section .footer__middle .footer__menu .middle__list .list__title {
  margin-bottom: 11px;
  font-style: normal;
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.15;
}

footer#footer .section .footer__middle .footer__menu .middle__list ul {
  margin-top: 0;
  padding-left: 0;
}

footer#footer .section .footer__middle .footer__menu .middle__list ul li {
  margin-top: 5px;
  list-style: none;
}

footer#footer .section .footer__middle .footer__menu .middle__list ul li a {
  font-style: normal;
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.15;
}

footer#footer .section .footer__middle .address {
  align-self: flex-end;
}

.section__first {
  position: relative;
  height: 100vh;
  height: calc(var(--vh, 1vh) * 100);
}

.section__first img {
  display: block;
  width: 100%;
  height: inherit;
}

.section__first .first__block {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 835px;
  height: 100%;
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  background: rgba(100, 100, 100, 0.46);
}

.section__first .first__block .block__text {
  display: flex;
  flex-grow: 1;
  flex-direction: column;
  justify-content: center;
}

.section__first .first__block .block__text .block__title {
  display: flex;
  align-items: center;
}

.section__first .first__block .block__text .block__title .block__title-img {
  width: 197.12px;
  height: 72.22px;
  margin-bottom: 19px;
}

.section__first .first__block .block__text .block__title .block__title-text {
  align-self: baseline;
  color: #fff;
  font-style: normal;
  font-weight: 400;
  font-size: 4.4375rem;
  line-height: 1.15;
  text-transform: uppercase;
}

.section__first .first__block .block__text .block__subtitle {
  max-width: 550px;
  color: #fff;
  font-style: normal;
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.15;
}

.section__first .nav {
  align-self: flex-start;
  margin-bottom: 18px;
  margin-left: 137px;
}

.section__first .nav .nav__list {
  display: flex;
  padding: 0;
  gap: 23px;
}

.section__first .nav .nav__list .list__items {
  list-style: none;
}

.section__first .nav .nav__list .list__items .items__link {
  color: #fff;
  font-style: normal;
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.15;
}

.section__special {
  display: flex;
  margin-top: 70px;
  margin-bottom: 60px;
  padding: 0 10px;
  gap: 30px;
}

.section__special .special__item {
  display: block;
  max-width: 568px;
}

.section__special .special__item .item__img {
  width: 100%;
  height: auto;
  transform: translate3d(0, 0, 0);
}

.second__slider {
  margin-top: 30px;
  margin-bottom: 80px;
}

.section__benefits {
  min-height: 223px;
  padding: 0 10px;
  background: #8E8282;
}

.section__benefits .section {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0;
}

.section__benefits .section .section__title {
  align-self: flex-start;
}

.section__benefits .section .benefits__wrapper {
  display: flex;
  gap: 37px;
  color: #fff;
}

.section__benefits .section .benefits__wrapper .benefit {
  box-sizing: border-box;
  display: flex;
  max-width: 370px;
  height: max-content;
  padding: 12px 21px 13px 16px;
  gap: 18px;
  border: 1px solid #fff;
  border-radius: 10px;
}

.section__benefits .section .benefits__wrapper .benefit:last-child {
  margin-bottom: 36px;
}

.section__benefits .section .benefits__wrapper .benefit img {
  align-self: center;
  max-width: 66px;
  max-height: 66px;
}

.section__benefits .section .benefits__wrapper .benefit .benefit__title {
  margin-top: 0;
  margin-bottom: 4px;
  font-style: normal;
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.17;
}

.section__benefits .section .benefits__wrapper .benefit .benefit__text {
  margin-top: 0;
  font-style: normal;
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1.14;
}

.section__about {
  padding: 67px 10px 80px 10px;
  background: #aea3988c;
}

.section__about .section__wrapper {
  display: flex;
  align-items: center;
  /*max-height: auto;*/
  gap: 31px;
}

.section__about .section__wrapper img {
  width: calc(
 150px + (339 - 150) * ((100vw - 375px) /
 (1440 - 375)));
  height: calc(
 150px + (353 - 150) * ((100vw - 375px) /
 (1440 - 375)));
  border-radius: 16px;
  box-shadow: 0px 0px 0px 15px #fff;
}

.section__about .section__wrapper .about__block {
  display: flex;
  flex-direction: column;
  color: #3E3E3E;
}

.section__about .section__wrapper .about__block .about__title {
  margin: 0;
  margin-bottom: 20px;
  font-style: normal;
  font-weight: 900;
  font-size: 2.25rem;
  font-size: calc(
 1rem + (36 - 16) * ((100vw - 23.4375rem) /
 (1440 - 375)));
  line-height: NaN;
}

.section__about .section__wrapper .about__block .about__fio {
  margin: 0;
  margin-bottom: 10px;
  font-style: normal;
  font-weight: 700;
  font-size: 1.125rem;
  font-size: calc(
 0.75rem + (18 - 12) * ((100vw - 23.4375rem) /
 (1440 - 375)));
  line-height: NaN;
}

.section__about .section__wrapper .about__block .about__position {
  margin: 0;
  margin-bottom: 10px;
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  font-size: calc(
 0.75rem + (16 - 12) * ((100vw - 23.4375rem) /
 (1440 - 375)));
  line-height: NaN;
}

.section__about .section__wrapper .about__block .about__company {
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  font-size: calc(
 0.75rem + (18 - 12) * ((100vw - 23.4375rem) /
 (1440 - 375)));
  margin: 8px 0;
}

.catalog__section {
  padding-bottom: 125px;
  background: rgba(174, 163, 152, 0.55);
}

.catalog__section .section__title {
  margin-bottom: 33px;
}

.catalog__section .cube {
  display: flex;
  flex-direction: column;
  padding-left: 10%;
}

.catalog__section .cube .cube__items {
  display: flex;
  flex-wrap: wrap;
  max-width: 1170px;
  gap: 50px 30px;
}

.catalog__section .cube .cube__items .cube__link {
  display: block;
  position: relative;
  max-width: 300px;
  max-height: 270px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.18);
  transition: .3s ease;
}

.catalog__section .cube .cube__items .cube__link:hover {
  box-shadow: 0 0 10px 5px #8E8282;
}

.catalog__section .cube .cube__items .cube__link img {
  width: 100%;
  height: 100%;
  border-radius: 16px;
}

.catalog__section .cube .cube__items .cube__link .cube__text {
  box-sizing: border-box;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  padding: 24px 0;
  transform: translate(-50%, -50%);
  background: linear-gradient(90deg, rgba(142, 130, 130, 0.2) -4.37%, #8E8282 25.46%, rgba(142, 130, 130, 0.983377) 66.09%, rgba(142, 130, 130, 0.2) 103.69%);
  color: #fff;
  text-align: center;
}

.catalog__section .cube .section__title {
  color: #fff;
}

.content {
  display: flex;
  gap: 30px;
}

.content .content__catalog .catalog_title {
  transition: 0.3s ease;
}

.content .content__catalog .active {
  top: 150px !important;
  left: 30px !important;
  transform: rotateZ(0deg) !important;
}

.content .content__main {
  display: flex;
  flex: 1 1 70%;
  flex-direction: column;
}

.content .content__main .catalog__items {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.content .content__main .catalog__items .card {
  width: calc(
 150px + (260 - 150) * ((100vw - 375px) /
 (1440 - 375)));
  margin: 0;
}

.content .content__main .catalog__items .card .card__content .card__button {
  align-self: center;
}

.content .content__main .pagination {
  display: flex;
  flex-grow: 1;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 61px;
}
.page-header{
    width: 100%;
    top: 0;
    left: 0;
    position: fixed !important;
    transition: 0.1s ease;
    z-index: 999;
}
.content .content__main .pagination .page__list {
  display: flex;
  gap: 10px;
}
.content__catalog{

}
.content .content__main .pagination .page__list .page__arrow {
  color: #3E3E3E;
  text-decoration: none;
}

.content .content__main .pagination .page__list .page__item {
  list-style-type: none;
}

.content .content__main .pagination .page__list .page__item .active .page__number {
  color: #6FA92E;
}

.content .content__main .pagination .page__list .page__item .page__number {
  color: #3E3E3E;
  font-style: normal;
  font-weight: 400;
  font-size: 1.125rem;
  line-height: 1.17;
  text-decoration: none;
}

.content .content__main .pagination .page__list .page__item .page__number .active {
  color: #6FA92E;
}

.content {
  padding-right: 10px;
  padding-left: 10px;
  gap: 30px;
}

.content .content__main .slider_and_price {
  display: flex;
}

.content .content__main .slider_and_price .single__slider {
  display: flex;
  position: relative;
}

.content .content__main .slider_and_price .single__slider .slider__img {
  max-width: 500px;
  width: 100%;
    object-fit: contain;
  height: 385px;
}

.content .content__main .slider_and_price .single__slider .slick-slide {
  box-sizing: border-box;
  max-width: 500px;
  width:100%;
  min-height: 296px;
  margin-top: 20px;
  margin-right: 3px;
  margin-bottom: 20px;
  margin-left: 50px;
}

.content .content__main .slider_and_price .single__slider .slick-list {
  -webkit-overflow-scrolling: touch;
  max-width: 500px;
  margin: 0;
  overflow: hidden;
}

.content .content__main .slider_and_price .single__slider .slick-track {
  -webkit-overflow-scrolling: touch;
  display: flex;
  overflow: hidden;
}
.headroom {
    -webkit-transition: all .25s ease-in-out;
    -moz-transition: all .25s ease-in-out;
    transition: all .5s ease-in-out;
}
.headroom--pinned {
-moz-transform: translateY(0%);
    -webkit-transform: translateY(0%);
    transform: translateY(0%);
}
.headroom--unpinned {
  -moz-transform: translateY(-116%);
  -webkit-transform: translateY(-116%);
  transform: translateY(-116%);
}
.content .content__main .slider_and_price .single__slider .slick-arrow {
  z-index: 10;
  position: absolute;
  top: 45%;
  width: 10px;
  height: 25px;
  border: none;
  background: transparent;
  font-size: 0;
  cursor: pointer;
}

.content .content__main .slider_and_price .single__slider .slick-prev {
  left: -15px;
  background-image: url("../images/icons/left-row.svg");
  background-position: 45% 45%;
  background-size: cover;
  background-repeat: no-repeat;
  transition: all 0.4s ease 0s;
}

.content .content__main .slider_and_price .single__slider .slick-next {
  right: -15px;
  background-image: url("../images/icons/right-row.svg");
  background-position: 55% 45%;
  background-size: cover;
  background-repeat: no-repeat;
}

.content .content__main .slider_and_price .single__slider .slick-dots {
  display: flex;
  position: absolute;
  bottom: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 3px;
  list-style: none;
  text-align: center;
}

.content .content__main .slider_and_price .single__slider .slick-dots li {
  display: inline-block;
  position: relative;
  width: 15px;
  height: 15px;
  margin: 0 5px;
  padding: 0;
  border-radius: 50%;
  background-color: #b3b3b3;
  cursor: pointer;
}

.content .content__main .slider_and_price .single__slider .slick-dots li.slick-active {
  box-shadow: inset 0 0 5px 3px #000;
}

.content .content__main .slider_and_price .single__slider .slick-dots li button {
  display: block;
  width: 20px;
  height: 20px;
  padding: 5px;
  border: 0;
  outline: none;
  background: transparent;
  color: transparent;
  font-size: 0;
  line-height: 0;
  cursor: pointer;
}

.content .content__main .slider_and_price .price {
  align-self: flex-end;
  margin-bottom: 30px;
  margin-left: 46px;
}

.content .content__main .slider_and_price .price .price__count {
  color: #3E3E3E;
  font-style: normal;
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.15;
    position: relative;
}

.content .content__main .slider_and_price .price .price__btn {
  padding: 10px 40px;
  border-radius: 16px;
  background: #6FA92E;
  color: #fff;
  text-decoration: none;
}

.content .content__main .slider_and_price .price .price__btn:hover {
  background: #89cb3f;
}

.content .content__main .about__block .about__title,
.content .content__main .about__block .about__materials,
.content .content__main .about__block .item__text,
.content .content__main .about__block .about__elements {
  color: #3E3E3E;
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.19;
}

.content .content__main .about__block .elements__list {
  list-style: none;
}

.header__nav {
  background-color: #8E8282;
  color: #fff;
}

.header__nav .section {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 7px;
  padding-bottom: 8px;
}

.header__nav .section .logo {
  display: flex;
  flex-wrap: wrap;
  width: 96px;
  height: 55px;
  margin-bottom: 10px;
}

.header__nav .section .logo:hover a {
  color: #cccccc;
}

.header__nav .section .logo:hover img {
  fill: #cccccc;
}

.header__nav .section .logo a {
  color: #fff;
  text-decoration: none;
}

.header__nav .section .logo img {
  width: 100%;
}

.header__nav .section .logo span {
  font-style: normal;
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1.17;
  text-transform: uppercase;
}

.header__nav .section .nav__list {
  display: flex;
  padding: 0;
  gap: 23px;
}

.header__nav .section .nav__list .list__items {
  list-style: none;
}

.header__nav .section .nav__list .list__items .items__link {
  color: #fff;
  font-style: normal;
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.15;
  text-decoration: none;
  transition: 0.3s ease;
}

.header__nav .section .nav__list .list__items .items__link:hover {
  color: #cccccc;
}

.header__nav .section .nav__list .list__items .items__link.active {
  color: #bfbfbf;
  text-decoration: underline;
}

.header__nav .section .phone {
  margin-right: 10px;
  color: #fff;
  font-style: normal;
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.15;
  text-decoration: none;
  transition: 0.3s ease;
}

.header__nav .section .phone:hover {
  color: #cccccc;
}

.header__nav .nav__mobile {
  -webkit-overflow-scrolling: touch;
  display: none;
  z-index: 2;
  position: relative;
  width: 30px;
  height: 30px;
  margin-right: 20px;
  overflow: hidden;
}

.header__nav .nav__mobile.active {
  position: fixed;
  top: 10px;
}

.header__nav .nav__mobile.active .mobile__btn:nth-of-type(1) {
  display: none;
}
.headroom--pinned {
    display: block;
}
.headroom--unpinned {
    display: none;
}
.headroom {
    will-change: transform;
    transition: transform 200ms linear;
}
.headroom--pinned {
    transform: translateY(0%);
}
.headroom--unpinned {
    transform: translateY(-100%);
}

.header__nav .nav__mobile.active .mobile__btn:nth-of-type(2) {
  top: 50%;
  transform: translate(-50%, 0%) rotate(45deg);
}

.header__nav .nav__mobile.active .mobile__btn:nth-of-type(3) {
  top: 50%;
  transform: translate(-50%, 0%) rotate(-45deg);
}

.header__nav .nav__mobile.active .mobile__block {
  transform: translateX(0);
}

.header__nav .nav__mobile .mobile__btn {
  z-index: 10;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 30px;
  height: 2px;
  transform: translate(-50%, -50%);
  background-color: #fff;
  transition: all 0.5s;
}

.header__nav .nav__mobile .mobile__btn:nth-of-type(2) {
  top: calc(50% - 7px);
}

.header__nav .nav__mobile .mobile__btn:nth-of-type(3) {
  top: calc(50% + 7px);
}

.header__nav .nav__mobile .mobile__block {
  -webkit-overflow-scrolling: touch;
  display: flex;
  position: fixed;
  top: 0;
  right: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100vh;
  padding: 15px;
  overflow-y: hidden;
  gap: 50px;
  transform: translateX(100%);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #8E8282;
  transition: transform 0.5s;
  will-change: transform;
}

.header__nav .nav__mobile .mobile__block .logo {
  display: flex;
  width: 150px;
  height: auto;
  text-decoration: none;
}

.header__nav .nav__mobile .mobile__block .logo a {
  text-decoration: none;
}

.header__nav .nav__mobile .mobile__block .logo a img {
  width: 100%;
}

.header__nav .nav__mobile .mobile__block .logo a span {
  color: #fff;
  font-size: 1.875rem;
  letter-spacing: 0.375rem;
  text-transform: uppercase;
}

.header__nav .nav__mobile .mobile__block .nav__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  list-style: none;
}

.header__nav .nav__mobile .mobile__block .nav__list .items__link {
  color: #fff;
  font-size: 1.875rem;
  line-height: 1.5;
  text-decoration: none;
}

.header__nav .nav__mobile .mobile__block .phone {
  display: block;
  color: #fff;
  font-size: 1.5625rem;
  text-decoration: none;
}

/**************************
  Basic Modal Styles
**************************/
.modal {
  font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif;
}

.modal__overlay {
  display: flex;
  z-index: 11;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.75);
}

.modal__container {
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
  width: 50%;
  max-width: 640px;
  height: 100%;
  padding: 30px;
  overflow-y: auto;
  border: 1px solid rgba(142, 130, 130, 0.27);
  border-radius: 4px;
  border-radius: 16px;
  background-color: #fff;
  box-shadow: -4px -3px 7px rgba(0, 0, 0, 0.25), 3px 4px 7px rgba(0, 0, 0, 0.25);
}

@supports (display: flex) {
  .modal__container {
    height: initial;
    max-height: 80vh;
    max-height: calc(var(--vh, 1vh) * 80);
  }
}

.modal__header {
  display: block;
  position: relative;
  height: 30px;
  margin-bottom: 20px;
}

@supports (display: flex) {
  .modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: initial;
    margin-bottom: 0px;
  }
}

.modal__title {
  box-sizing: border-box;
  position: absolute;
  top: 20px;
  left: 20px;
  margin-top: 0;
  margin-bottom: 0;
  color: #00449e;
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1.25;
}

.modal__close {
  position: absolute;
  top: 20px;
  right: 20px;
  margin: 0px;
  padding: 0px;
  border: 0;
  background: transparent;
  cursor: pointer;
}

@supports (display: flex) {
  .modal__title {
    position: static;
  }
  .modal__close {
    position: static;
  }
}

.modal__header .modal__close:before {
  content: "\2715";
}

.modal__content {
  margin-top: 10px;
  margin-bottom: 10px;
  color: rgba(0, 0, 0, 0.8);
}

@supports (display: flex) {
  .modal__content {
    margin-top: 2rem;
    margin-bottom: 2rem;
    line-height: 1.5;
  }
}

.modal__btn {
  -webkit-appearance: button;
  -moz-osx-font-smoothing: grayscale;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  margin: 0;
  padding-top: .5rem;
  padding-right: 1rem;
  padding-bottom: .5rem;
  padding-left: 1rem;
  overflow: visible;
  transform: translateZ(0);
  border-width: 0;
  border-style: none;
  border-radius: .25rem;
  backface-visibility: hidden;
  background-color: #6FA92E;
  color: #fff;
  font-size: 1.125rem;
  line-height: 1.17;
  text-transform: none;
  cursor: pointer;
  transition: transform .25s ease-out;
  transition: background-color .3s ease;
  will-change: transform;
}

.modal__btn:hover {
  background-color: #89cb3f;
}

.modal__btn-primary {
  background-color: #00449e;
  color: #fff;
}

/**************************
    Animation Style
  **************************/
@keyframes mmfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes mmfadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

@keyframes mmslideIn {
  from {
    transform: translateY(15%);
  }
  to {
    transform: translateY(0);
  }
}

@keyframes mmslideOut {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-10%);
  }
}

.micromodal-slide {
  display: none;
}

.micromodal-slide.is-open {
  display: block;
}

.micromodal-slide[aria-hidden="false"] .modal__overlay {
  animation: mmfadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden="false"] .modal__container {
  animation: mmslideIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden="true"] .modal__overlay {
  animation: mmfadeOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden="true"] .modal__container {
  animation: mmslideOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide .modal__container,
.micromodal-slide .modal__overlay {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  will-change: transform;
}

/**************************
    Custom styles for individual modals
  **************************/
.modal__container button {
  outline: none;
  cursor: pointer !important;
}

.mini_phone {
    right: 30px;
    bottom: 15px;
    position: fixed;
    display: none;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #33bd33;
    z-index: 999;
    cursor: pointer;
    text-decoration: none;
}
@media (max-width: 770px){
.mini_phone {
    display: block;
}
}
.mini_phone:before, .mini_phone:after {
    content: " ";
    display: block;
    position: absolute;
    border: 50%;
    border: 1px solid #4fbaea;
    left: -20px;
    right: -20px;
    top: -20px;
    bottom: -20px;
    border-radius: 50%;
    animation: animate 1.5s linear infinite;
    opacity: 0;
    backface-visibility: hidden;
}
.mini_phone:after{
	animation-delay: .5s;
}

@keyframes animate
{
	0%
	{
		transform: scale(0.5);
		opacity: 0;
	}
	50%
	{
		opacity: 1;
	}
	100%
	{
		transform: scale(1.2);
		opacity: 0;
	}
}
.mini_phone i {
    color: #fff;
    font-size: 35px;
    width: 60px;
    line-height: 1.6;
    text-align: center;
    text-decoration: none;
}
.modal__container h2.modal__title {
  color: #595959;
}

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

.modal__title {
  box-sizing: border-box;
  margin-top: 0;
  margin-bottom: 0;
  color: #00449e;
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1.25;
}

.modal__close {
  font-size: 1.5rem;
}

.modal__content {
  margin-top: 2rem;
  margin-bottom: 2rem;
  color: rgba(0, 0, 0, 0.8);
  line-height: 1.5;
}

.modal__btn {
  -webkit-appearance: none;
  display: block;
  margin: 0 auto;
  border-radius: 16px;
}

/**************************
    Mobile custom styles for individual modals
  **************************/

.modal__input {
  align-self: center;
  width: 100%;
  min-height: 46px;
  margin-bottom: 12px;
  padding-left: 20px;
  border: 1px solid rgba(142, 130, 130, 0.56);
  border-radius: 16px;
}

label {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

@media (min-width: 1440px) {
  .section__about .section__wrapper img {
    width: 339px;
  }
  .section__about .section__wrapper img {
    height: 353px;
  }
  .section__about .section__wrapper .about__block .about__title {
    font-size: 2.25rem;
  }
  .section__about .section__wrapper .about__block .about__fio {
    font-size: 1.125rem;
  }
  .section__about .section__wrapper .about__block .about__position {
    font-size: 1rem;
  }
  .section__about .section__wrapper .about__block .about__company {
    font-size: 1.125rem;
  }
  .content .content__main .catalog__items .card {
    width: 260px;
  }
}

@media only screen and (min-device-width: 320px) and (max-device-width: 480px) {
  .modal__container {
    width: 90% !important;
    min-width: 90% !important;
  }
  @supports (display: flex) {
    .modal__container {
      width: 90% !important;
      min-width: 90% !important;
    }
  }
}

@media (max-width: 1080px) {
  .section__benefits .section .benefits__wrapper .benefit .benefit__text {
    font-size: 0.95rem;
  }
}

@media (max-width: 1045px) {
  .catalog__wrapper {
       position: absolute;
    top: 195px;
    left: 0;
    height: 100%;
    z-index:999;
    transform: translateX(-100%);
  }
  .catalog__wrapper .catalog_article .section__title {
    font-size: 1rem;
  }
  .catalog__wrapper .catalog_article .article__list li {
    padding-right: 0;
  }
  .catalog__wrapper .catalog_article .article__list li a {
    font-size: 1rem;
  }
  .content .content__catalog .catalog_title {
    margin-top:30px;
    position: absolute;
    top: 205px;
    left: -20px;
    transform: rotateZ(90deg);
    z-index:998;

  }
  .content .content__main {
    flex-basis: 80%;
  }
}

@media (max-width: 1024px) {
  .section__benefits .section .benefits__wrapper .benefit img {
    max-width: 50px;
    max-height: 50px;
  }
  .section__benefits .section .benefits__wrapper .benefit .benefit__title {
    font-size: 1.2rem;
  }
}

@media (max-width: 920px) {
  .section__benefits .section .benefits__wrapper {
    flex-wrap: wrap;
  }
}

@media (max-width: 800px) {
  .catalog__wrapper {
    top: 160px;
    position: absolute;
  }
  .section__first .first__block {
    width: 100%;
    padding: 20px;
  }
  .section__benefits .section .benefits__wrapper {
    justify-content: center;
  }
  .section__benefits .section .benefits__wrapper .benefit {
    align-items: center;
    max-width: 70%;
    min-height: 112px;
  }
  .section__about {
    padding: 40px 10px 40px 10px;
  }
  .content .content__catalog .active {
    top: 111px !important;
  }
  .header__nav .section {
    justify-content: flex-end;
  }
  .header__nav .section .logo {
    display: none;
  }
  .header__nav .section .nav__list {
    display: none;
  }
  .header__nav .section .phone {
    display: none;
  }
  .header__nav .nav__mobile {
    display: block;
  }
}

@media (max-width: 799px) {
  .section__first .first__block .block__text .block__title {
    flex-direction: column;
    align-items: center;
  }
  .section__first .first__block .block__text .block__title .block__title-img {
    margin-bottom: 0;
  }
  .section__first .first__block .block__text .block__title .block__title-text {
    align-self: center;
    margin-top: 0;
    font-size: 3.125rem;
  }
}

@media (max-width: 768px) {
  .section__special {
    flex-wrap: wrap;
    justify-content: center;
  }
  .section__special .special__item {
    max-width: 80%;
  }
  .content .content__main .catalog__items .card .card__content .card__button {
    padding-right: 30px;
    padding-left: 30px;
  }
}

@media (max-width: 711px) {
  .catalog__section .cube {
    padding-left: 0;
  }
  .catalog__section .cube .cube__items {
    align-items: center;
    justify-content: center;
  }
  .catalog__section .cube .section__title {
    padding-left: 10px;
  }
}

@media (max-width: 674px) {
  footer#footer .section .footer__middle {
    flex-direction: column;
  }
  footer#footer .section .footer__middle .address {
    display: flex;
    align-self: center;
  }
}

@media (max-width: 643px) {
  .content .content__main .slider_and_price {
    flex-wrap: wrap;
  }
}

@media (max-width: 640px) {
  .section__about .section__wrapper img {
    display: none;
  }
}

@media (max-width: 620px) {
  .breadcrumbs {
    min-height: 60px;
  }
  .breadcrumbs .breadcrumbs__list li a {
    font-size: 1rem;
  }
}

@media (max-width: 550px) {
  .section__first .nav {
    margin-left: 0;
  }
}

@media (max-width: 532px) {
  footer#footer .section .footer__middle .footer__menu .middle__list .list__title {
    font-size: 1rem;
  }
  footer#footer .section .footer__middle .footer__menu .middle__list ul li a {
    font-size: 0.875rem;
  }
}

@media (max-width: 414px) {
  .section__first .first__block .block__text .block__subtitle {
    margin-top: 0;
  }
  .section__first .nav {
    align-self: center;
  }
  .section__first .nav .nav__list {
    flex-direction: column;
    justify-content: space-between;
  }
  .section__first .nav .nav__list .list__items .items__link {
    font-size: 1.625rem;
  }
  .content .content__main .slider_and_price .single__slider .slider__img {
    width: 250px;
    height: auto;
  }
  .content .content__main .slider_and_price .single__slider .slick-slide {
    width: 250px;
    height: auto;
  }
  .content .content__main .slider_and_price .single__slider .slick-list {
    width: 250px;
  }
  .header__nav .section .nav__list {
    flex-direction: column;
    justify-content: space-between;
  }
  .header__nav .section .nav__list .list__items .items__link {
    font-size: 1.625rem;
  }
}

@media (max-width: 375px) {
  footer#footer .section .footer__middle .address {
    flex-direction: column;
  }
  footer#footer .section .footer__middle .address p {
    margin: 3px;
  }
  .section__about .section__wrapper img {
    width: 150px;
  }
  .section__about .section__wrapper img {
    height: 150px;
  }
  .section__about .section__wrapper .about__block .about__title {
    font-size: 1.5rem;
  }
  .section__about .section__wrapper .about__block .about__fio {
    font-size: 0.95rem;
  }
  .section__about .section__wrapper .about__block .about__position {
    font-size: 0.95rem;
  }
  .section__about .section__wrapper .about__block .about__company {
    font-size: 0.95rem;
  }
  .section__about .section__wrapper{
      max-height:none;
  }

}
@media (max-width: 500px) {
      .content .content__main .catalog__items .card {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9AY3NzdG9vbHMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwiZ2xvYmFsL19iYXNlLnNjc3MiLCJtYWluLmNzcyIsIjxubyBzb3VyY2U+Iiwic2V0dGluZ3MvX3ZhcmlhYmxlcy5zY3NzIiwiZ2VuZXJhdGVkL19zcHJpdGUtbW9uby1nZW5lcmF0ZWQuc2NzcyIsImdlbmVyYXRlZC9fc3ByaXRlLW11bHRpLWdlbmVyYXRlZC5zY3NzIiwibGF5b3V0cy9fZm9vdGVyLnNjc3MiLCJwYWdlcy9pbmRleC9faW5kZXguc2NzcyIsInBhZ2VzL2luZGV4L19zcGVjaWFsLnNjc3MiLCJzZXR0aW5ncy9fbWl4aW5zLnNjc3MiLCJwYWdlcy9pbmRleC9fc2Vjb25kU2xpZGVyLnNjc3MiLCJwYWdlcy9pbmRleC9fYmVuZWZpdHMuc2NzcyIsInBhZ2VzL2luZGV4L19hYm91dC5zY3NzIiwicGFnZXMvY2F0YWxvZy9jYXRhbG9nLnNjc3MiLCJwYWdlcy9jYXRhbG9nX2luc2lkZS9jYXRhbG9nX2luc2lkZS5zY3NzIiwicGFnZXMvc2luZ2xlL19zaW5nbGUuc2NzcyIsInBhZ2VzL19tZW51LnNjc3MiLCJjb21wb25lbnRzL19tb2RhbC5zY3NzIiwic2V0dGluZ3MvX2luY2x1ZGUtbWVkaWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTsrRUFDK0U7QUFFL0U7O0VBRUU7QUFFRjtFQUNFLGlCQUFpQixFQUFFLE1BQU07QUFDM0I7QUFFQTsrRUFDK0U7QUFFL0U7OztFQUdFO0FBRUY7RUFHRSwwQkFBMEI7RUFEMUIsd0JBQXdCO0VBRHhCLGNBQWM7QUFHaEI7QUFFQTsrRUFDK0U7QUFFL0U7O0VBRUU7QUFFRjtFQUVFLHFCQUFxQjtFQURyQixtQkFBbUI7QUFFckI7QUFFQTs7O0VBR0U7QUFFRjtFQUNFLHVCQUF1QixFQUFFLE1BQU07RUFFL0IsU0FBUyxFQUFFLE1BQU07RUFEakIsY0FBYyxFQUFFLE1BQU07QUFFeEI7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RVJrMkJoQjtFV3YzQkY7SUhxQkksYUFBYztFUjgyQmhCO0VXbjRCRjtJSHFCSSxlQUFjO0VSZzVCaEI7RVdyNkJGO0lIcUJJLGtCQUFjO0VSczZCaEI7RVczN0JGO0lIcUJJLGtCQUFjO0VSNDdCaEI7RVdqOUJGO0lIcUJJLGtCQUFjO0VSZzlCaEI7RWFyK0JGO0lMcUJJLFlBQWM7RVJpbUNoQjtBQXZqQkY7O0FEL2VBO0VBQ0U7SUFDRSxxQ0FBcUM7SUFDckMsdUNBQXVDO0lBRXZDLGdDQUFnQztJQURoQyxzQ0FBc0M7RUNSeEM7QUFDRiIsImZpbGUiOiJtYWluLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBEb2N1bWVudFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuOndoZXJlKGh0bWwpIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRWRnZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoaDEpIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbi1ibG9jay1lbmQ6IDAuNjdlbTtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwLjY3ZW07XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gb24gbmVzdGVkIGxpc3RzIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoZGwsIG9sLCB1bCkgOndoZXJlKGRsLCBvbCwgdWwpIHtcbiAgbWFyZ2luLWJsb2NrLWVuZDogMDtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBvZiBib3JkZXIgY29sb3IgaW4gRmlyZWZveC5cbiAqL1xuXG46d2hlcmUoaHIpIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG46d2hlcmUocHJlKSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoYWJiclt0aXRsZV0pIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjp3aGVyZShiLCBzdHJvbmcpIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbjp3aGVyZShjb2RlLCBrYmQsIHNhbXApIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuOndoZXJlKHNtYWxsKSB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKiBUYWJ1bGFyIGRhdGFcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0YWJsZSBib3JkZXIgY29sb3IgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICogMi4gUmVtb3ZlIHRleHQgaW5kZW50YXRpb24gZnJvbSB0YWJsZSBjb250ZW50cyBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuOndoZXJlKHRhYmxlKSB7XG4gIGJvcmRlci1jb2xvcjogY3VycmVudENvbG9yOyAvKiAxICovXG4gIHRleHQtaW5kZW50OiAwOyAvKiAyICovXG59XG5cbi8qIEZvcm1zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIG9uIGNvbnRyb2xzIGluIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoYnV0dG9uLCBpbnB1dCwgc2VsZWN0KSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuOndoZXJlKGJ1dHRvbikge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgYnV0dG9ucyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoYnV0dG9uLCBpbnB1dDppcyhbdHlwZT1cImJ1dHRvblwiIGldLCBbdHlwZT1cInJlc2V0XCIgaV0sIFt0eXBlPVwic3VibWl0XCIgaV0pKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgRmlyZWZveC5cbiAqL1xuXG46d2hlcmUocHJvZ3Jlc3MpIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG46d2hlcmUoc2VsZWN0KSB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUodGV4dGFyZWEpIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cbjp3aGVyZShpbnB1dFt0eXBlPVwic2VhcmNoXCIgaV0pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHRleHQgc3R5bGUgb2YgcGxhY2Vob2xkZXJzIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgb3BhY2l0eTogMC41NDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cbjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgdXBsb2FkIGJ1dHRvbnMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBvZiBmb2N1cyBvdXRsaW5lcyBpbiBGaXJlZm94LlxuICovXG5cbjp3aGVyZShidXR0b24sIGlucHV0OmlzKFt0eXBlPVwiYnV0dG9uXCIgaV0sIFt0eXBlPVwiY29sb3JcIiBpXSwgW3R5cGU9XCJyZXNldFwiIGldLCBbdHlwZT1cInN1Ym1pdFwiIGldKSk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgb3V0bGluZSBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUgaW4gRmlyZWZveC5cbiAqL1xuXG46d2hlcmUoYnV0dG9uLCBpbnB1dDppcyhbdHlwZT1cImJ1dHRvblwiIGldLCBbdHlwZT1cImNvbG9yXCIgaV0sIFt0eXBlPVwicmVzZXRcIiBpXSwgW3R5cGU9XCJzdWJtaXRcIiBpXSkpOjotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGFkZGl0aW9uYWwgOmludmFsaWQgc3R5bGVzIGluIEZpcmVmb3guXG4gKi9cblxuOndoZXJlKDotbW96LXVpLWludmFsaWQpIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyogSW50ZXJhY3RpdmVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3Qgc3R5bGVzIGluIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoZGlhbG9nKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IHNvbGlkO1xuICBjb2xvcjogYmxhY2s7XG4gIGhlaWdodDogLW1vei1maXQtY29udGVudDtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgbGVmdDogMDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAxZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAtbW96LWZpdC1jb250ZW50O1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG5cbjp3aGVyZShkaWFsb2c6bm90KFtvcGVuXSkpIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG46d2hlcmUoc3VtbWFyeSkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG4iLCIvKiBjcml0aWNhbDpzdGFydCAqL1xyXG4vLyBCYXNlIHN0eWxlc1xyXG4vLyBCb3gtc2l6aW5nIGRlZmF1bHRzXHJcbmh0bWwge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbiosXHJcbio6YmVmb3JlLFxyXG4qOmFmdGVyIHtcclxuICBib3gtc2l6aW5nOiBpbmhlcml0O1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgbWluLXdpZHRoOiAzMjBweDtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICBtYXJnaW46IDA7XHJcbiAgY29sb3I6ICRjb2xvci1ibGFjaztcclxuICBmb250LWZhbWlseTogJ1JvYm90bycsIEhlbHZldGljYSwgVmVyZGFuYSwgc2Fucy1zZXJpZjtcclxuICBmb250LXNpemU6IDEwMCU7XHJcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XHJcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplU3BlZWQ7XHJcbn1cclxuXHJcbi8qIGNyaXRpY2FsOmVuZCAqL1xyXG5cclxuLy8gQSBiZXR0ZXIgbG9va2luZyBkZWZhdWx0IGxpbmtzIGRlY29yYXRpb25cclxuYTpub3QoW2NsYXNzXSkge1xyXG4gIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogYXV0bztcclxufVxyXG5cclxuLy8gUmVtb3ZlIHRleHQtc2hhZG93IGluIHNlbGVjdGlvbiBoaWdobGlnaHQuIEN1c3RvbWl6ZSB0aGUgYmFja2dyb3VuZCBjb2xvciB0byBtYXRjaCB5b3VyIGRlc2lnbi5cclxuOjpzZWxlY3Rpb24ge1xyXG4gIGJhY2tncm91bmQ6ICNiM2Q0ZmM7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi8vIEEgYmV0dGVyIGxvb2tpbmcgZGVmYXVsdCBob3Jpem9udGFsIHJ1bGVcclxuaHIge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIGJvcmRlcjogMDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcclxuICBtYXJnaW46IDFlbSAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi8vIFJlbW92ZSB0aGUgZ2FwIGJldHdlZW4gYXVkaW8sIGNhbnZhcywgaWZyYW1lcywgaW1hZ2VzLCB2aWRlb3MgYW5kIHRoZSBib3R0b20gb2YgdGhlaXIgY29udGFpbmVyc1xyXG5hdWRpbyxcclxuY2FudmFzLFxyXG5pZnJhbWUsXHJcbmltZyxcclxuc3ZnLFxyXG52aWRlbyB7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuLy8gSW5oZXJpdCBmb250IGZvciBpbnB1dHNcclxuaW5wdXQsXHJcbmJ1dHRvbixcclxudGV4dGFyZWEsXHJcbnNlbGVjdCB7XHJcbiAgZm9udDogaW5oZXJpdDtcclxufVxyXG5cclxuLy8gUmVtb3ZlIGRlZmF1bHQgZmllbGRzZXQgc3R5bGVzLlxyXG5maWVsZHNldCB7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vLyBBbGxvdyBvbmx5IHZlcnRpY2FsIHJlc2l6aW5nIG9mIHRleHRhcmVhcy5cclxudGV4dGFyZWEge1xyXG4gIHJlc2l6ZTogdmVydGljYWw7XHJcbn1cclxuXHJcbi8vIFJlc2V0IGFsbCBDU1MgYW5pbWF0aW9uIGZvciB1c2VyLCB3aG8gcHJlZmVyIGxlc3MgYW5pbWF0aW9uIGluIGJyb3dzZXJzXHJcbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XHJcbiAgKiB7XHJcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50O1xyXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50O1xyXG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XHJcbiAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIFNvbWUgaGVscGVyIGNsYXNzZXNcclxuLy8gT2xkIElFIG1lc3NhZ2UgYmxvY2tcclxuLmJyb3dzZXJ1cGdyYWRlIHtcclxuICBtYXJnaW46IDAuMmVtIDA7XHJcbiAgYmFja2dyb3VuZDogI2NjYztcclxuICBjb2xvcjogIzAwMDtcclxuICBwYWRkaW5nOiAwLjJlbSAwO1xyXG59XHJcblxyXG4vLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzXHJcbi5oaWRkZW4ge1xyXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLy8gSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzXHJcbi52aXN1YWxseWhpZGRlbiB7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgbWFyZ2luOiAtMXB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcGFkZGluZzogMDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDFweDtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4vLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XHJcbi5pbnZpc2libGUge1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxufVxyXG5cclxuLnNlY3Rpb24ge1xyXG4gIG1heC13aWR0aDogMTE3MHB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgcGFkZGluZzogMCAxMHB4O1xyXG59XHJcblxyXG4uc2VjdGlvbl9fdGl0bGUge1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGZvbnQtc2l6ZTogMjRweDtcclxuICBsaW5lLWhlaWdodDogMjhweDtcclxuICBjb2xvcjogJGNvbG9yLXRpdGxlO1xyXG4gIG1hcmdpbi1ib3R0b206IDEzcHg7XHJcblxyXG4gICZfd2hpdGUge1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICB9XHJcbn1cclxuXHJcbi5jYXJkIHtcclxuICB3aWR0aDogMjEycHg7XHJcbiAgbWluLWhlaWdodDogMjk2cHg7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDIsIDEzMCwgMTMwLCAwLjI3KTtcclxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG4gIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG5cclxuICAuY2FyZF9faW1hZ2Uge1xyXG4gICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDlweDtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNhcmRfX2NvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuXHJcbiAgICAuY2FyZF9fdGl0bGUsXHJcbiAgICAuY2FyZF9fcHJpY2Uge1xyXG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItdGl0bGU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNhcmRfX3RpdGxlIHtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAuY2FyZF9fcHJpY2Uge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmNhcmRfX2J1dHRvbiB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgcGFkZGluZzogMC41cHggNDlweDtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXNsaWRlci1idXR0b247XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDExcHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xyXG4gICAgICB0cmFuc2l0aW9uOiAuM3MgZWFzZTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTdweDtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGNvbG9yLXNsaWRlci1idXR0b24sIDEwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnNlY3Rpb25fX3NsaWRlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcGFkZGluZy1sZWZ0OiAxMDBweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMDBweDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgbWluLWhlaWdodDogMzM2cHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDIsIDEzMCwgMTMwLCAwLjI3KTtcclxuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDE0MiwgMTMwLCAxMzAsIDAuNSk7XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuXHJcblxyXG4gIC5zbGljay1zbGlkZSB7XHJcbiAgICB3aWR0aDogMjEycHg7XHJcbiAgICBtaW4taGVpZ2h0OiAyOTZweDtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQyLCAxMzAsIDEzMCwgMC4yNyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxuICB9XHJcblxyXG4gIC5zbGljay1saXN0IHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBtYXJnaW46IDAgLTMwcHg7XHJcbiAgfVxyXG5cclxuICAuc2xpY2stdHJhY2sge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICB9XHJcblxyXG4gIC5zbGljay1hcnJvdyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBmb250LXNpemU6IDA7XHJcbiAgICB0b3A6IDQ1JTtcclxuICAgIHotaW5kZXg6IDEwO1xyXG4gICAgd2lkdGg6IDI1LjVweDtcclxuICAgIGhlaWdodDogNjAuNDhweDtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gIH1cclxuXHJcbiAgLnNsaWNrLXByZXYge1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZSAwcztcclxuICAgIGxlZnQ6IDE1cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltZy9pY29ucy9sZWZ0LXJvdy5zdmcnKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0NSUgNDUlO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICB9XHJcblxyXG4gIC5zbGljay1uZXh0IHtcclxuICAgIHJpZ2h0OiAyNnB4O1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWcvaWNvbnMvcmlnaHQtcm93LnN2ZycpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDU1JSA0NSU7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIH1cclxufVxyXG5cclxubWFpbiB7XHJcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XHJcbn1cclxuXHJcbi5icmVhZGNydW1icyB7XHJcbiAgbWluLWhlaWdodDogOTBweDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTQyLCAxMzAsIDEzMCwgMC4yNyk7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJzw9NjIwcHgnKSB7XHJcbiAgICBtaW4taGVpZ2h0OiA2MHB4O1xyXG4gIH1cclxuXHJcbiAgLmJyZWFkY3J1bWJzX19saXN0IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZ2FwOiAyMHB4O1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCIvXCI7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICByaWdodDogLTE1cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGNvbG9yOiAjOUM5QzlDO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XHJcbiAgICAgICAgY29sb3I6ICM5QzlDOUM7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9NjIwcHgnKSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY2F0YWxvZ19fd3JhcHBlciB7XHJcbiAgdHJhbnNpdGlvbjogMC4zcyBlYXNlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJzw9MTA0NXB4Jykge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAxOTVweDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0TWlkJykge1xyXG4gICAgdG9wOiAxNjBweDtcclxuICB9XHJcblxyXG4gIC5jYXRhbG9nX2FydGljbGUge1xyXG4gICAgbWF4LXdpZHRoOiAyNjhweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQyLCAxMzAsIDEzMCwgMC4yNyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMzlweDtcclxuXHJcbiAgICAuc2VjdGlvbl9fdGl0bGUge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMTdweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDU5cHg7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE0MiwgMTMwLCAxMzAsIDAuMjcpO1xyXG4gICAgICBmb250LXNpemU6IDIwcHg7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD0xMDQ1cHgnKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmFydGljbGVfX2xpc3Qge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTdweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgIHRyYW5zaXRpb246IC4zcyBlYXNlO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD0xMDQ1cHgnKSB7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE0MiwgMTMwLCAxMzAsIDAuMjcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTVweDtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDE1cHg7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE0MiwgMTMwLCAxMzAsIDAuMjcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGl0bGU7XHJcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDQ1cHg7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9MTA0NXB4Jykge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLmNvbW1lcmNpYWwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNhdGFsb2dfYWN0aXZlIHtcclxuICB0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKSFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIHotaW5kZXg6IDEwO1xyXG59IiwiQGltcG9ydC1ub3JtYWxpemU7XG4vKiBjcml0aWNhbDpzdGFydCAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAzMjBweDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgSGVsdmV0aWNhLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwMCU7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVTcGVlZDtcbn1cblxuLyogY3JpdGljYWw6ZW5kICovXG5hOm5vdChbY2xhc3NdKSB7XG4gIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogYXV0bztcbn1cblxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjYjNkNGZjO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuaHIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5pbnB1dCxcbmJ1dHRvbixcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAqIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50O1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxufVxuXG4uYnJvd3NlcnVwZ3JhZGUge1xuICBtYXJnaW46IDAuMmVtIDA7XG4gIGJhY2tncm91bmQ6ICNjY2M7XG4gIGNvbG9yOiAjMDAwO1xuICBwYWRkaW5nOiAwLjJlbSAwO1xufVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udmlzdWFsbHloaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNlY3Rpb24ge1xuICBtYXgtd2lkdGg6IDExNzBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDAgMTBweDtcbn1cblxuLnNlY3Rpb25fX3RpdGxlIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBjb2xvcjogIzNFM0UzRTtcbiAgbWFyZ2luLWJvdHRvbTogMTNweDtcbn1cblxuLnNlY3Rpb25fX3RpdGxlX3doaXRlIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5jYXJkIHtcbiAgd2lkdGg6IDIxMnB4O1xuICBtaW4taGVpZ2h0OiAyOTZweDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDIsIDEzMCwgMTMwLCAwLjI3KTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIG1hcmdpbi1sZWZ0OiA1MHB4O1xufVxuXG4uY2FyZCAuY2FyZF9faW1hZ2Uge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiA5cHg7XG59XG5cbi5jYXJkIC5jYXJkX19pbWFnZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uY2FyZCAuY2FyZF9fY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG59XG5cbi5jYXJkIC5jYXJkX19jb250ZW50IC5jYXJkX190aXRsZSxcbi5jYXJkIC5jYXJkX19jb250ZW50IC5jYXJkX19wcmljZSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTlweDtcbiAgY29sb3I6ICMzRTNFM0U7XG59XG5cbi5jYXJkIC5jYXJkX19jb250ZW50IC5jYXJkX190aXRsZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5jYXJkIC5jYXJkX19jb250ZW50IC5jYXJkX19wcmljZSB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLmNhcmQgLmNhcmRfX2NvbnRlbnQgLmNhcmRfX2J1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDAuNXB4IDQ5cHg7XG4gIGJhY2tncm91bmQ6ICM2RkE5MkU7XG4gIGJvcmRlci1yYWRpdXM6IDExcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB0cmFuc2l0aW9uOiAuM3MgZWFzZTtcbiAgbWFyZ2luLWJvdHRvbTogMTdweDtcbn1cblxuLmNhcmQgLmNhcmRfX2NvbnRlbnQgLmNhcmRfX2J1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICM4OWNiM2Y7XG59XG5cbi5zZWN0aW9uX19zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctbGVmdDogMTAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiAzMzZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDIsIDEzMCwgMTMwLCAwLjI3KTtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxNDIsIDEzMCwgMTMwLCAwLjUpO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xufVxuXG4uc2VjdGlvbl9fc2xpZGVyIC5zbGljay1zbGlkZSB7XG4gIHdpZHRoOiAyMTJweDtcbiAgbWluLWhlaWdodDogMjk2cHg7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQyLCAxMzAsIDEzMCwgMC4yNyk7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBtYXJnaW4tbGVmdDogNTBweDtcbn1cblxuLnNlY3Rpb25fX3NsaWRlciAuc2xpY2stbGlzdCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMCAtMzBweDtcbn1cblxuLnNlY3Rpb25fX3NsaWRlciAuc2xpY2stdHJhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uc2VjdGlvbl9fc2xpZGVyIC5zbGljay1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1zaXplOiAwO1xuICB0b3A6IDQ1JTtcbiAgei1pbmRleDogMTA7XG4gIHdpZHRoOiAyNS41cHg7XG4gIGhlaWdodDogNjAuNDhweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLnNlY3Rpb25fX3NsaWRlciAuc2xpY2stcHJldiB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UgMHM7XG4gIGxlZnQ6IDE1cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2ltZy9pY29ucy9sZWZ0LXJvdy5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDQ1JSA0NSU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5zZWN0aW9uX19zbGlkZXIgLnNsaWNrLW5leHQge1xuICByaWdodDogMjZweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1nL2ljb25zL3JpZ2h0LXJvdy5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDU1JSA0NSU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbm1haW4ge1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLmJyZWFkY3J1bWJzIHtcbiAgbWluLWhlaWdodDogOTBweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTQyLCAxMzAsIDEzMCwgMC4yNyk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2MjBweCkge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gIH1cbn1cblxuLmJyZWFkY3J1bWJzIC5icmVhZGNydW1ic19fbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAyMHB4O1xuICBwYWRkaW5nOiAwO1xufVxuXG4uYnJlYWRjcnVtYnMgLmJyZWFkY3J1bWJzX19saXN0IGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uYnJlYWRjcnVtYnMgLmJyZWFkY3J1bWJzX19saXN0IGxpOmxhc3QtY2hpbGQgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmJyZWFkY3J1bWJzIC5icmVhZGNydW1ic19fbGlzdCBsaTpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgY29udGVudDogXCIvXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogLTE1cHg7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY29sb3I6ICM5QzlDOUM7XG59XG5cbi5icmVhZGNydW1icyAuYnJlYWRjcnVtYnNfX2xpc3QgbGkgYSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMjNweDtcbiAgY29sb3I6ICM5QzlDOUM7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2MjBweCkge1xuICAuYnJlYWRjcnVtYnMgLmJyZWFkY3J1bWJzX19saXN0IGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuXG4uY2F0YWxvZ19fd3JhcHBlciB7XG4gIHRyYW5zaXRpb246IDAuM3MgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwNDVweCkge1xuICAuY2F0YWxvZ19fd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTk1cHg7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmNhdGFsb2dfX3dyYXBwZXIge1xuICAgIHRvcDogMTYwcHg7XG4gIH1cbn1cblxuLmNhdGFsb2dfX3dyYXBwZXIgLmNhdGFsb2dfYXJ0aWNsZSB7XG4gIG1heC13aWR0aDogMjY4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQyLCAxMzAsIDEzMCwgMC4yNyk7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIG1hcmdpbi1ib3R0b206IDM5cHg7XG59XG5cbi5jYXRhbG9nX193cmFwcGVyIC5jYXRhbG9nX2FydGljbGUgLnNlY3Rpb25fX3RpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDE3cHg7XG4gIGxpbmUtaGVpZ2h0OiA1OXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxNDIsIDEzMCwgMTMwLCAwLjI3KTtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTA0NXB4KSB7XG4gIC5jYXRhbG9nX193cmFwcGVyIC5jYXRhbG9nX2FydGljbGUgLnNlY3Rpb25fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuLmNhdGFsb2dfX3dyYXBwZXIgLmNhdGFsb2dfYXJ0aWNsZSAuYXJ0aWNsZV9fbGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4uY2F0YWxvZ19fd3JhcHBlciAuY2F0YWxvZ19hcnRpY2xlIC5hcnRpY2xlX19saXN0IGxpIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAxN3B4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICB0cmFuc2l0aW9uOiAuM3MgZWFzZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwNDVweCkge1xuICAuY2F0YWxvZ19fd3JhcHBlciAuY2F0YWxvZ19hcnRpY2xlIC5hcnRpY2xlX19saXN0IGxpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cbi5jYXRhbG9nX193cmFwcGVyIC5jYXRhbG9nX2FydGljbGUgLmFydGljbGVfX2xpc3QgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE0MiwgMTMwLCAxMzAsIDAuMjcpO1xufVxuXG4uY2F0YWxvZ19fd3JhcHBlciAuY2F0YWxvZ19hcnRpY2xlIC5hcnRpY2xlX19saXN0IGxpOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogN3B4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTVweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTVweDtcbn1cblxuLmNhdGFsb2dfX3dyYXBwZXIgLmNhdGFsb2dfYXJ0aWNsZSAuYXJ0aWNsZV9fbGlzdCBsaTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTQyLCAxMzAsIDEzMCwgMC4yNyk7XG59XG5cbi5jYXRhbG9nX193cmFwcGVyIC5jYXRhbG9nX2FydGljbGUgLmFydGljbGVfX2xpc3QgbGkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjM0UzRTNFO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDQ1cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDQ1cHgpIHtcbiAgLmNhdGFsb2dfX3dyYXBwZXIgLmNhdGFsb2dfYXJ0aWNsZSAuYXJ0aWNsZV9fbGlzdCBsaSBhIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuLmNhdGFsb2dfX3dyYXBwZXIgLmNvbW1lcmNpYWwge1xuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xufVxuXG4uY2F0YWxvZ19fd3JhcHBlciAuY29tbWVyY2lhbCBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xufVxuXG4uY2F0YWxvZ19hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgei1pbmRleDogMTA7XG59XG5cbi5pY29uLW1vbm8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMWVtO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbi5pY29uLWZhY2Vib29rIHtcbiAgZm9udC1zaXplOiAxLjlyZW07XG4gIHdpZHRoOiAwLjUyNjMyZW07XG59XG5cbi5pY29uLXRlbGVncmFtIHtcbiAgZm9udC1zaXplOiAxOC45NDdyZW07XG4gIHdpZHRoOiAxZW07XG59XG5cbi5pY29uLW11bHRpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDFlbTtcbn1cblxuLmljb24tanMge1xuICBmb250LXNpemU6IDMwLjhyZW07XG4gIHdpZHRoOiAwLjczMDUyZW07XG59XG5cbmZvb3RlciNmb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEU4MjgyO1xuICBjb2xvcjogI2ZmZjtcbiAgbWluLWhlaWdodDogMzE3cHg7XG4gIHBhZGRpbmctdG9wOiAxNHB4O1xufVxuXG5mb290ZXIjZm9vdGVyIGEge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjNzIGVhc2U7XG59XG5cbmZvb3RlciNmb290ZXIgYTpob3ZlciB7XG4gIGNvbG9yOiAjY2NjY2NjO1xufVxuXG5mb290ZXIjZm9vdGVyIC5zZWN0aW9uIC5mb290ZXJfX3RvcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZmY7XG59XG5cbmZvb3RlciNmb290ZXIgLnNlY3Rpb24gLmZvb3Rlcl9fdG9wIC5sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDk2cHg7XG4gIGhlaWdodDogNTVweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG5mb290ZXIjZm9vdGVyIC5zZWN0aW9uIC5mb290ZXJfX3RvcCAubG9nbyBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cblxuZm9vdGVyI2Zvb3RlciAuc2VjdGlvbiAuZm9vdGVyX190b3AgLmxvZ28gc3BhbiB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cblxuZm9vdGVyI2Zvb3RlciAuc2VjdGlvbiAuZm9vdGVyX190b3AgLnBob25lIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbmZvb3RlciNmb290ZXIgLnNlY3Rpb24gLmZvb3Rlcl9fbWlkZGxlIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY3NHB4KSB7XG4gIGZvb3RlciNmb290ZXIgLnNlY3Rpb24gLmZvb3Rlcl9fbWlkZGxlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5cbmZvb3RlciNmb290ZXIgLnNlY3Rpb24gLmZvb3Rlcl9fbWlkZGxlIC5mb290ZXJfX21lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDUwcHg7XG59XG5cbmZvb3RlciNmb290ZXIgLnNlY3Rpb24gLmZvb3Rlcl9fbWlkZGxlIC5mb290ZXJfX21lbnUgLm1pZGRsZV9fbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG5mb290ZXIjZm9vdGVyIC5zZWN0aW9uIC5mb290ZXJfX21pZGRsZSAuZm9vdGVyX19tZW51IC5taWRkbGVfX2xpc3QgLmxpc3RfX3RpdGxlIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICBtYXJnaW4tYm90dG9tOiAxMXB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTMycHgpIHtcbiAgZm9vdGVyI2Zvb3RlciAuc2VjdGlvbiAuZm9vdGVyX19taWRkbGUgLmZvb3Rlcl9fbWVudSAubWlkZGxlX19saXN0IC5saXN0X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5cbmZvb3RlciNmb290ZXIgLnNlY3Rpb24gLmZvb3Rlcl9fbWlkZGxlIC5mb290ZXJfX21lbnUgLm1pZGRsZV9fbGlzdCB1bCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuZm9vdGVyI2Zvb3RlciAuc2VjdGlvbiAuZm9vdGVyX19taWRkbGUgLmZvb3Rlcl9fbWVudSAubWlkZGxlX19saXN0IHVsIGxpIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG5mb290ZXIjZm9vdGVyIC5zZWN0aW9uIC5mb290ZXJfX21pZGRsZSAuZm9vdGVyX19tZW51IC5taWRkbGVfX2xpc3QgdWwgbGkgYSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMjNweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDUzMnB4KSB7XG4gIGZvb3RlciNmb290ZXIgLnNlY3Rpb24gLmZvb3Rlcl9fbWlkZGxlIC5mb290ZXJfX21lbnUgLm1pZGRsZV9fbGlzdCB1bCBsaSBhIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cblxuZm9vdGVyI2Zvb3RlciAuc2VjdGlvbiAuZm9vdGVyX19taWRkbGUgLmFkZHJlc3Mge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY3NHB4KSB7XG4gIGZvb3RlciNmb290ZXIgLnNlY3Rpb24gLmZvb3Rlcl9fbWlkZGxlIC5hZGRyZXNzIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMzc1cHgpIHtcbiAgZm9vdGVyI2Zvb3RlciAuc2VjdGlvbiAuZm9vdGVyX19taWRkbGUgLmFkZHJlc3Mge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAuc2VjdGlvbiAuZm9vdGVyX19taWRkbGUgLmFkZHJlc3MgcCB7XG4gICAgbWFyZ2luOiAzcHg7XG4gIH1cbn1cblxuLnNlY3Rpb25fX2ZpcnN0IHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2VjdGlvbl9fZmlyc3QgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5zZWN0aW9uX19maXJzdCAuZmlyc3RfX2Jsb2NrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA4MzVweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuNDYpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuc2VjdGlvbl9fZmlyc3QgLmZpcnN0X19ibG9jayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjBweDtcbiAgfVxufVxuXG4uc2VjdGlvbl9fZmlyc3QgLmZpcnN0X19ibG9jayAuYmxvY2tfX3RleHQge1xuICBmbGV4LWdyb3c6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uc2VjdGlvbl9fZmlyc3QgLmZpcnN0X19ibG9jayAuYmxvY2tfX3RleHQgLmJsb2NrX190aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3OTlweCkge1xuICAuc2VjdGlvbl9fZmlyc3QgLmZpcnN0X19ibG9jayAuYmxvY2tfX3RleHQgLmJsb2NrX190aXRsZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG5cbi5zZWN0aW9uX19maXJzdCAuZmlyc3RfX2Jsb2NrIC5ibG9ja19fdGV4dCAuYmxvY2tfX3RpdGxlIC5ibG9ja19fdGl0bGUtaW1nIHtcbiAgd2lkdGg6IDE5Ny4xMnB4O1xuICBoZWlnaHQ6IDcyLjIycHg7XG4gIG1hcmdpbi1ib3R0b206IDE5cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3OTlweCkge1xuICAuc2VjdGlvbl9fZmlyc3QgLmZpcnN0X19ibG9jayAuYmxvY2tfX3RleHQgLmJsb2NrX190aXRsZSAuYmxvY2tfX3RpdGxlLWltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4uc2VjdGlvbl9fZmlyc3QgLmZpcnN0X19ibG9jayAuYmxvY2tfX3RleHQgLmJsb2NrX190aXRsZSAuYmxvY2tfX3RpdGxlLXRleHQge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogNzFweDtcbiAgbGluZS1oZWlnaHQ6IDgycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZmZmO1xuICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc5OXB4KSB7XG4gIC5zZWN0aW9uX19maXJzdCAuZmlyc3RfX2Jsb2NrIC5ibG9ja19fdGV4dCAuYmxvY2tfX3RpdGxlIC5ibG9ja19fdGl0bGUtdGV4dCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmb250LXNpemU6IDUwcHg7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICB9XG59XG5cbi5zZWN0aW9uX19maXJzdCAuZmlyc3RfX2Jsb2NrIC5ibG9ja19fdGV4dCAuYmxvY2tfX3N1YnRpdGxlIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICBtYXgtd2lkdGg6IDU1MHB4O1xuICBjb2xvcjogI2ZmZjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQxNHB4KSB7XG4gIC5zZWN0aW9uX19maXJzdCAuZmlyc3RfX2Jsb2NrIC5ibG9ja19fdGV4dCAuYmxvY2tfX3N1YnRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5zZWN0aW9uX19maXJzdCAubmF2IHtcbiAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWFyZ2luLWxlZnQ6IDEzN3B4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTUwcHgpIHtcbiAgLnNlY3Rpb25fX2ZpcnN0IC5uYXYge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MTRweCkge1xuICAuc2VjdGlvbl9fZmlyc3QgLm5hdiB7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICB9XG59XG5cbi5zZWN0aW9uX19maXJzdCAubmF2IC5uYXZfX2xpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwO1xuICBnYXA6IDIzcHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MTRweCkge1xuICAuc2VjdGlvbl9fZmlyc3QgLm5hdiAubmF2X19saXN0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxufVxuXG4uc2VjdGlvbl9fZmlyc3QgLm5hdiAubmF2X19saXN0IC5saXN0X19pdGVtcyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5zZWN0aW9uX19maXJzdCAubmF2IC5uYXZfX2xpc3QgLmxpc3RfX2l0ZW1zIC5pdGVtc19fbGluayB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMjNweDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MTRweCkge1xuICAuc2VjdGlvbl9fZmlyc3QgLm5hdiAubmF2X19saXN0IC5saXN0X19pdGVtcyAuaXRlbXNfX2xpbmsge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgfVxufVxuXG4uc2VjdGlvbl9fc3BlY2lhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMzBweDtcbiAgbWFyZ2luLXRvcDogNzBweDtcbiAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgcGFkZGluZzogMCAxMHB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNlY3Rpb25fX3NwZWNpYWwge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuXG4uc2VjdGlvbl9fc3BlY2lhbCAuc3BlY2lhbF9faXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDU2OHB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNlY3Rpb25fX3NwZWNpYWwgLnNwZWNpYWxfX2l0ZW0ge1xuICAgIG1heC13aWR0aDogODAlO1xuICB9XG59XG5cbi5zZWN0aW9uX19zcGVjaWFsIC5zcGVjaWFsX19pdGVtIC5pdGVtX19pbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2Vjb25kX19zbGlkZXIge1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiA4MHB4O1xufVxuXG4uc2VjdGlvbl9fYmVuZWZpdHMge1xuICBtaW4taGVpZ2h0OiAyMjNweDtcbiAgYmFja2dyb3VuZDogIzhFODI4MjtcbiAgcGFkZGluZzogMCAxMHB4O1xufVxuXG4uc2VjdGlvbl9fYmVuZWZpdHMgLnNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uc2VjdGlvbl9fYmVuZWZpdHMgLnNlY3Rpb24gLnNlY3Rpb25fX3RpdGxlIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLnNlY3Rpb25fX2JlbmVmaXRzIC5zZWN0aW9uIC5iZW5lZml0c19fd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMzdweDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MjBweCkge1xuICAuc2VjdGlvbl9fYmVuZWZpdHMgLnNlY3Rpb24gLmJlbmVmaXRzX193cmFwcGVyIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gIC5zZWN0aW9uX19iZW5lZml0cyAuc2VjdGlvbiAuYmVuZWZpdHNfX3dyYXBwZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5cbi5zZWN0aW9uX19iZW5lZml0cyAuc2VjdGlvbiAuYmVuZWZpdHNfX3dyYXBwZXIgLmJlbmVmaXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDE4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1heC13aWR0aDogMzcwcHg7XG4gIGhlaWdodDogbWF4LWNvbnRlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmc6IDEycHggMjFweCAxM3B4IDE2cHg7XG59XG5cbi5zZWN0aW9uX19iZW5lZml0cyAuc2VjdGlvbiAuYmVuZWZpdHNfX3dyYXBwZXIgLmJlbmVmaXQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDM2cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuc2VjdGlvbl9fYmVuZWZpdHMgLnNlY3Rpb24gLmJlbmVmaXRzX193cmFwcGVyIC5iZW5lZml0IHtcbiAgICBtaW4taGVpZ2h0OiAxMTJweDtcbiAgICBtYXgtd2lkdGg6IDcwJTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG5cbi5zZWN0aW9uX19iZW5lZml0cyAuc2VjdGlvbiAuYmVuZWZpdHNfX3dyYXBwZXIgLmJlbmVmaXQgaW1nIHtcbiAgbWF4LXdpZHRoOiA2NnB4O1xuICBtYXgtaGVpZ2h0OiA2NnB4O1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnNlY3Rpb25fX2JlbmVmaXRzIC5zZWN0aW9uIC5iZW5lZml0c19fd3JhcHBlciAuYmVuZWZpdCBpbWcge1xuICAgIG1heC13aWR0aDogNTBweDtcbiAgICBtYXgtaGVpZ2h0OiA1MHB4O1xuICB9XG59XG5cbi5zZWN0aW9uX19iZW5lZml0cyAuc2VjdGlvbiAuYmVuZWZpdHNfX3dyYXBwZXIgLmJlbmVmaXQgLmJlbmVmaXRfX3RpdGxlIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnNlY3Rpb25fX2JlbmVmaXRzIC5zZWN0aW9uIC5iZW5lZml0c19fd3JhcHBlciAuYmVuZWZpdCAuYmVuZWZpdF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuXG4uc2VjdGlvbl9fYmVuZWZpdHMgLnNlY3Rpb24gLmJlbmVmaXRzX193cmFwcGVyIC5iZW5lZml0IC5iZW5lZml0X190ZXh0IHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTA4MHB4KSB7XG4gIC5zZWN0aW9uX19iZW5lZml0cyAuc2VjdGlvbiAuYmVuZWZpdHNfX3dyYXBwZXIgLmJlbmVmaXQgLmJlbmVmaXRfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxufVxuXG4uc2VjdGlvbl9fYWJvdXQge1xuICBiYWNrZ3JvdW5kOiAjYWVhMzk4OGM7XG4gIHBhZGRpbmc6IDY3cHggMTBweCA4MHB4IDEwcHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuc2VjdGlvbl9fYWJvdXQge1xuICAgIHBhZGRpbmc6IDQwcHggMTBweCA0MHB4IDEwcHg7XG4gIH1cbn1cblxuLnNlY3Rpb25fX2Fib3V0IC5zZWN0aW9uX193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWF4LWhlaWdodDogMzkycHg7XG4gIGdhcDogMzFweDtcbn1cblxuLnNlY3Rpb25fX2Fib3V0IC5zZWN0aW9uX193cmFwcGVyIGltZyB7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDE1cHggI2ZmZjtcbiAgd2lkdGg6IGNhbGMoXHIgMTUwcHggKyAoMzM5IC0gMTUwKSAqICgoMTAwdncgLSAzNzVweCkgL1xyICgxNDQwIC0gMzc1KSkpO1xuICBoZWlnaHQ6IGNhbGMoXHIgMTUwcHggKyAoMzUzIC0gMTUwKSAqICgoMTAwdncgLSAzNzVweCkgL1xyICgxNDQwIC0gMzc1KSkpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMzc1cHgpIHtcbiAgLnNlY3Rpb25fX2Fib3V0IC5zZWN0aW9uX193cmFwcGVyIGltZyB7XG4gICAgd2lkdGg6IDE1MHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNDQwcHgpIHtcbiAgLnNlY3Rpb25fX2Fib3V0IC5zZWN0aW9uX193cmFwcGVyIGltZyB7XG4gICAgd2lkdGg6IDMzOXB4O1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzNzVweCkge1xuICAuc2VjdGlvbl9fYWJvdXQgLnNlY3Rpb25fX3dyYXBwZXIgaW1nIHtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNDQwcHgpIHtcbiAgLnNlY3Rpb25fX2Fib3V0IC5zZWN0aW9uX193cmFwcGVyIGltZyB7XG4gICAgaGVpZ2h0OiAzNTNweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLnNlY3Rpb25fX2Fib3V0IC5zZWN0aW9uX193cmFwcGVyIGltZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc2VjdGlvbl9fYWJvdXQgLnNlY3Rpb25fX3dyYXBwZXIgLmFib3V0X19ibG9jayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGNvbG9yOiAjM0UzRTNFO1xufVxuXG4uc2VjdGlvbl9fYWJvdXQgLnNlY3Rpb25fX3dyYXBwZXIgLmFib3V0X19ibG9jayAuYWJvdXRfX3RpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgbGluZS1oZWlnaHQ6IDQ5cHg7XG4gIGZvbnQtc2l6ZTogY2FsYyhcciAxNnB4ICsgKDM2IC0gMTYpICogKCgxMDB2dyAtIDM3NXB4KSAvXHIgKDE0NDAgLSAzNzUpKSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzNzVweCkge1xuICAuc2VjdGlvbl9fYWJvdXQgLnNlY3Rpb25fX3dyYXBwZXIgLmFib3V0X19ibG9jayAuYWJvdXRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0NDBweCkge1xuICAuc2VjdGlvbl9fYWJvdXQgLnNlY3Rpb25fX3dyYXBwZXIgLmFib3V0X19ibG9jayAuYWJvdXRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gIH1cbn1cblxuLnNlY3Rpb25fX2Fib3V0IC5zZWN0aW9uX193cmFwcGVyIC5hYm91dF9fYmxvY2sgLmFib3V0X19maW8ge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjFweDtcbiAgZm9udC1zaXplOiBjYWxjKFxyIDEycHggKyAoMTggLSAxMikgKiAoKDEwMHZ3IC0gMzc1cHgpIC9cciAoMTQ0MCAtIDM3NSkpKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDM3NXB4KSB7XG4gIC5zZWN0aW9uX19hYm91dCAuc2VjdGlvbl9fd3JhcHBlciAuYWJvdXRfX2Jsb2NrIC5hYm91dF9fZmlvIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0NDBweCkge1xuICAuc2VjdGlvbl9fYWJvdXQgLnNlY3Rpb25fX3dyYXBwZXIgLmFib3V0X19ibG9jayAuYWJvdXRfX2ZpbyB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG59XG5cbi5zZWN0aW9uX19hYm91dCAuc2VjdGlvbl9fd3JhcHBlciAuYWJvdXRfX2Jsb2NrIC5hYm91dF9fcG9zaXRpb24ge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTlweDtcbiAgZm9udC1zaXplOiBjYWxjKFxyIDEycHggKyAoMTYgLSAxMikgKiAoKDEwMHZ3IC0gMzc1cHgpIC9cciAoMTQ0MCAtIDM3NSkpKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDM3NXB4KSB7XG4gIC5zZWN0aW9uX19hYm91dCAuc2VjdGlvbl9fd3JhcHBlciAuYWJvdXRfX2Jsb2NrIC5hYm91dF9fcG9zaXRpb24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTQ0MHB4KSB7XG4gIC5zZWN0aW9uX19hYm91dCAuc2VjdGlvbl9fd3JhcHBlciAuYWJvdXRfX2Jsb2NrIC5hYm91dF9fcG9zaXRpb24ge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuXG4uc2VjdGlvbl9fYWJvdXQgLnNlY3Rpb25fX3dyYXBwZXIgLmFib3V0X19ibG9jayAuYWJvdXRfX2NvbXBhbnkge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIGZvbnQtc2l6ZTogY2FsYyhcciAxMnB4ICsgKDE4IC0gMTIpICogKCgxMDB2dyAtIDM3NXB4KSAvXHIgKDE0NDAgLSAzNzUpKSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzNzVweCkge1xuICAuc2VjdGlvbl9fYWJvdXQgLnNlY3Rpb25fX3dyYXBwZXIgLmFib3V0X19ibG9jayAuYWJvdXRfX2NvbXBhbnkge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTQ0MHB4KSB7XG4gIC5zZWN0aW9uX19hYm91dCAuc2VjdGlvbl9fd3JhcHBlciAuYWJvdXRfX2Jsb2NrIC5hYm91dF9fY29tcGFueSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG59XG5cbi5jYXRhbG9nX19zZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNzQsIDE2MywgMTUyLCAwLjU1KTtcbiAgcGFkZGluZy1ib3R0b206IDEyNXB4O1xufVxuXG4uY2F0YWxvZ19fc2VjdGlvbiAuc2VjdGlvbl9fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAzM3B4O1xufVxuXG4uY2F0YWxvZ19fc2VjdGlvbiAuY3ViZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctbGVmdDogMTAlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzExcHgpIHtcbiAgLmNhdGFsb2dfX3NlY3Rpb24gLmN1YmUge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG4uY2F0YWxvZ19fc2VjdGlvbiAuY3ViZSAuY3ViZV9faXRlbXMge1xuICBtYXgtd2lkdGg6IDExNzBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDUwcHggMzBweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcxMXB4KSB7XG4gIC5jYXRhbG9nX19zZWN0aW9uIC5jdWJlIC5jdWJlX19pdGVtcyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuXG4uY2F0YWxvZ19fc2VjdGlvbiAuY3ViZSAuY3ViZV9faXRlbXMgLmN1YmVfX2xpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDMwMHB4O1xuICBtYXgtaGVpZ2h0OiAyNzBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgdHJhbnNpdGlvbjogLjNzIGVhc2U7XG59XG5cbi5jYXRhbG9nX19zZWN0aW9uIC5jdWJlIC5jdWJlX19pdGVtcyAuY3ViZV9fbGluazpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IDVweCAjOEU4MjgyO1xufVxuXG4uY2F0YWxvZ19fc2VjdGlvbiAuY3ViZSAuY3ViZV9faXRlbXMgLmN1YmVfX2xpbmsgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbn1cblxuLmNhdGFsb2dfX3NlY3Rpb24gLmN1YmUgLmN1YmVfX2l0ZW1zIC5jdWJlX19saW5rIC5jdWJlX190ZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAyNHB4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxNDIsIDEzMCwgMTMwLCAwLjIpIC00LjM3JSwgIzhFODI4MiAyNS40NiUsIHJnYmEoMTQyLCAxMzAsIDEzMCwgMC45ODMzNzcpIDY2LjA5JSwgcmdiYSgxNDIsIDEzMCwgMTMwLCAwLjIpIDEwMy42OSUpO1xufVxuXG4uY2F0YWxvZ19fc2VjdGlvbiAuY3ViZSAuc2VjdGlvbl9fdGl0bGUge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcxMXB4KSB7XG4gIC5jYXRhbG9nX19zZWN0aW9uIC5jdWJlIC5zZWN0aW9uX190aXRsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG59XG5cbi5jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAzMHB4O1xufVxuXG4uY29udGVudCAuY29udGVudF9fY2F0YWxvZyAuY2F0YWxvZ190aXRsZSB7XG4gIHRyYW5zaXRpb246IDAuM3MgZWFzZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwNDVweCkge1xuICAuY29udGVudCAuY29udGVudF9fY2F0YWxvZyAuY2F0YWxvZ190aXRsZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDkwZGVnKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMDVweDtcbiAgICBsZWZ0OiAtMjBweDtcbiAgfVxufVxuXG4uY29udGVudCAuY29udGVudF9fY2F0YWxvZyAuYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDMwcHggIWltcG9ydGFudDtcbiAgdG9wOiAxNTBweCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmNvbnRlbnQgLmNvbnRlbnRfX2NhdGFsb2cgLmFjdGl2ZSB7XG4gICAgdG9wOiAxMTFweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMSAxIDcwJTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwNDVweCkge1xuICAuY29udGVudCAuY29udGVudF9fbWFpbiB7XG4gICAgZmxleC1iYXNpczogODAlO1xuICB9XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5jYXRhbG9nX19pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAzMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLmNhdGFsb2dfX2l0ZW1zIC5jYXJkIHtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogY2FsYyhcciAxNTBweCArICgyNjAgLSAxNTApICogKCgxMDB2dyAtIDM3NXB4KSAvXHIgKDE0NDAgLSAzNzUpKSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzNzVweCkge1xuICAuY29udGVudCAuY29udGVudF9fbWFpbiAuY2F0YWxvZ19faXRlbXMgLmNhcmQge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTQ0MHB4KSB7XG4gIC5jb250ZW50IC5jb250ZW50X19tYWluIC5jYXRhbG9nX19pdGVtcyAuY2FyZCB7XG4gICAgd2lkdGg6IDI2MHB4O1xuICB9XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5jYXRhbG9nX19pdGVtcyAuY2FyZCAuY2FyZF9fY29udGVudCAuY2FyZF9fYnV0dG9uIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLmNhdGFsb2dfX2l0ZW1zIC5jYXJkIC5jYXJkX19jb250ZW50IC5jYXJkX19idXR0b24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICB9XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtZ3JvdzogMTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBwYWRkaW5nLWJvdHRvbTogNjFweDtcbn1cblxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLnBhZ2luYXRpb24gLnBhZ2VfX2xpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5wYWdpbmF0aW9uIC5wYWdlX19saXN0IC5wYWdlX19hcnJvdyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMzRTNFM0U7XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5wYWdpbmF0aW9uIC5wYWdlX19saXN0IC5wYWdlX19pdGVtIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4uY29udGVudCAuY29udGVudF9fbWFpbiAucGFnaW5hdGlvbiAucGFnZV9fbGlzdCAucGFnZV9faXRlbSAuYWN0aXZlIC5wYWdlX19udW1iZXIge1xuICBjb2xvcjogIzZGQTkyRTtcbn1cblxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLnBhZ2luYXRpb24gLnBhZ2VfX2xpc3QgLnBhZ2VfX2l0ZW0gLnBhZ2VfX251bWJlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICBjb2xvcjogIzNFM0UzRTtcbn1cblxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLnBhZ2luYXRpb24gLnBhZ2VfX2xpc3QgLnBhZ2VfX2l0ZW0gLnBhZ2VfX251bWJlciAuYWN0aXZlIHtcbiAgY29sb3I6ICM2RkE5MkU7XG59XG5cbi5jb250ZW50IHtcbiAgZ2FwOiAzMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5zbGlkZXJfYW5kX3ByaWNlIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0M3B4KSB7XG4gIC5jb250ZW50IC5jb250ZW50X19tYWluIC5zbGlkZXJfYW5kX3ByaWNlIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbn1cblxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLnNsaWRlcl9hbmRfcHJpY2UgLnNpbmdsZV9fc2xpZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY29udGVudCAuY29udGVudF9fbWFpbiAuc2xpZGVyX2FuZF9wcmljZSAuc2luZ2xlX19zbGlkZXIgLnNsaWRlcl9faW1nIHtcbiAgbWF4LXdpZHRoOiAzNzBweDtcbiAgaGVpZ2h0OiAzODVweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQxNHB4KSB7XG4gIC5jb250ZW50IC5jb250ZW50X19tYWluIC5zbGlkZXJfYW5kX3ByaWNlIC5zaW5nbGVfX3NsaWRlciAuc2xpZGVyX19pbWcge1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLnNsaWRlcl9hbmRfcHJpY2UgLnNpbmdsZV9fc2xpZGVyIC5zbGljay1zbGlkZSB7XG4gIG1heC13aWR0aDogMzcwcHg7XG4gIG1pbi1oZWlnaHQ6IDI5NnB4O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgbWFyZ2luLWxlZnQ6IDUwcHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MTRweCkge1xuICAuY29udGVudCAuY29udGVudF9fbWFpbiAuc2xpZGVyX2FuZF9wcmljZSAuc2luZ2xlX19zbGlkZXIgLnNsaWNrLXNsaWRlIHtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5zbGlkZXJfYW5kX3ByaWNlIC5zaW5nbGVfX3NsaWRlciAuc2xpY2stbGlzdCB7XG4gIG1heC13aWR0aDogMzcwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQxNHB4KSB7XG4gIC5jb250ZW50IC5jb250ZW50X19tYWluIC5zbGlkZXJfYW5kX3ByaWNlIC5zaW5nbGVfX3NsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICB9XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5zbGlkZXJfYW5kX3ByaWNlIC5zaW5nbGVfX3NsaWRlciAuc2xpY2stdHJhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY29udGVudCAuY29udGVudF9fbWFpbiAuc2xpZGVyX2FuZF9wcmljZSAuc2luZ2xlX19zbGlkZXIgLnNsaWNrLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LXNpemU6IDA7XG4gIHRvcDogNDUlO1xuICB6LWluZGV4OiAxMDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjVweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29udGVudCAuY29udGVudF9fbWFpbiAuc2xpZGVyX2FuZF9wcmljZSAuc2luZ2xlX19zbGlkZXIgLnNsaWNrLXByZXYge1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlIDBzO1xuICBsZWZ0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pbWcvaWNvbnMvbGVmdC1yb3cuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0NSUgNDUlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uY29udGVudCAuY29udGVudF9fbWFpbiAuc2xpZGVyX2FuZF9wcmljZSAuc2luZ2xlX19zbGlkZXIgLnNsaWNrLW5leHQge1xuICByaWdodDogMTBweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1nL2ljb25zL3JpZ2h0LXJvdy5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDU1JSA0NSU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5zbGlkZXJfYW5kX3ByaWNlIC5zaW5nbGVfX3NsaWRlciAuc2xpY2stZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDNweDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5zbGlkZXJfYW5kX3ByaWNlIC5zaW5nbGVfX3NsaWRlciAuc2xpY2stZG90cyBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBtYXJnaW46IDAgNXB4O1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiM2IzYjM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLnNsaWRlcl9hbmRfcHJpY2UgLnNpbmdsZV9fc2xpZGVyIC5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggM3B4ICMwMDA7XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5zbGlkZXJfYW5kX3ByaWNlIC5zaW5nbGVfX3NsaWRlciAuc2xpY2stZG90cyBsaSBidXR0b24ge1xuICBmb250LXNpemU6IDA7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLnNsaWRlcl9hbmRfcHJpY2UgLnByaWNlIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgbWFyZ2luLWxlZnQ6IDQ2cHg7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG4uY29udGVudCAuY29udGVudF9fbWFpbiAuc2xpZGVyX2FuZF9wcmljZSAucHJpY2UgLnByaWNlX19jb3VudCB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMjNweDtcbiAgY29sb3I6ICMzRTNFM0U7XG59XG5cbi5jb250ZW50IC5jb250ZW50X19tYWluIC5zbGlkZXJfYW5kX3ByaWNlIC5wcmljZSAucHJpY2VfX2J0biB7XG4gIGJhY2tncm91bmQ6ICM2RkE5MkU7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIHBhZGRpbmc6IDEwcHggNDBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLnNsaWRlcl9hbmRfcHJpY2UgLnByaWNlIC5wcmljZV9fYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzg5Y2IzZjtcbn1cblxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLmFib3V0X19ibG9jayAuYWJvdXRfX3RpdGxlLFxuLmNvbnRlbnQgLmNvbnRlbnRfX21haW4gLmFib3V0X19ibG9jayAuYWJvdXRfX21hdGVyaWFscyxcbi5jb250ZW50IC5jb250ZW50X19tYWluIC5hYm91dF9fYmxvY2sgLml0ZW1fX3RleHQsXG4uY29udGVudCAuY29udGVudF9fbWFpbiAuYWJvdXRfX2Jsb2NrIC5hYm91dF9fZWxlbWVudHMge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gIGNvbG9yOiAjM0UzRTNFO1xufVxuXG4uY29udGVudCAuY29udGVudF9fbWFpbiAuYWJvdXRfX2Jsb2NrIC5lbGVtZW50c19fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5oZWFkZXJfX25hdiB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEU4MjgyO1xufVxuXG4uaGVhZGVyX19uYXYgLnNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuaGVhZGVyX19uYXYgLnNlY3Rpb24ge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIH1cbn1cblxuLmhlYWRlcl9fbmF2IC5zZWN0aW9uIC5sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDk2cHg7XG4gIGhlaWdodDogNTVweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uaGVhZGVyX19uYXYgLnNlY3Rpb24gLmxvZ286aG92ZXIgYSB7XG4gIGNvbG9yOiAjY2NjY2NjO1xufVxuXG4uaGVhZGVyX19uYXYgLnNlY3Rpb24gLmxvZ286aG92ZXIgaW1nIHtcbiAgZmlsbDogI2NjY2NjYztcbn1cblxuLmhlYWRlcl9fbmF2IC5zZWN0aW9uIC5sb2dvIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmhlYWRlcl9fbmF2IC5zZWN0aW9uIC5sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5oZWFkZXJfX25hdiAuc2VjdGlvbiAubG9nbyBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmhlYWRlcl9fbmF2IC5zZWN0aW9uIC5sb2dvIHNwYW4ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG5cbi5oZWFkZXJfX25hdiAuc2VjdGlvbiAubmF2X19saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMDtcbiAgZ2FwOiAyM3B4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmhlYWRlcl9fbmF2IC5zZWN0aW9uIC5uYXZfX2xpc3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQxNHB4KSB7XG4gIC5oZWFkZXJfX25hdiAuc2VjdGlvbiAubmF2X19saXN0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxufVxuXG4uaGVhZGVyX19uYXYgLnNlY3Rpb24gLm5hdl9fbGlzdCAubGlzdF9faXRlbXMge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uaGVhZGVyX19uYXYgLnNlY3Rpb24gLm5hdl9fbGlzdCAubGlzdF9faXRlbXMgLml0ZW1zX19saW5rIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjNzIGVhc2U7XG59XG5cbi5oZWFkZXJfX25hdiAuc2VjdGlvbiAubmF2X19saXN0IC5saXN0X19pdGVtcyAuaXRlbXNfX2xpbms6aG92ZXIge1xuICBjb2xvcjogI2NjY2NjYztcbn1cblxuLmhlYWRlcl9fbmF2IC5zZWN0aW9uIC5uYXZfX2xpc3QgLmxpc3RfX2l0ZW1zIC5pdGVtc19fbGluay5hY3RpdmUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY29sb3I6ICNiZmJmYmY7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MTRweCkge1xuICAuaGVhZGVyX19uYXYgLnNlY3Rpb24gLm5hdl9fbGlzdCAubGlzdF9faXRlbXMgLml0ZW1zX19saW5rIHtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gIH1cbn1cblxuLmhlYWRlcl9fbmF2IC5zZWN0aW9uIC5waG9uZSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMjNweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjNzIGVhc2U7XG59XG5cbi5oZWFkZXJfX25hdiAuc2VjdGlvbiAucGhvbmU6aG92ZXIge1xuICBjb2xvcjogI2NjY2NjYztcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gIC5oZWFkZXJfX25hdiAuc2VjdGlvbiAucGhvbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmhlYWRlcl9fbmF2IC5uYXZfX21vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaGVhZGVyX19uYXYgLm5hdl9fbW9iaWxlLmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxMHB4O1xufVxuXG4uaGVhZGVyX19uYXYgLm5hdl9fbW9iaWxlLmFjdGl2ZSAubW9iaWxlX19idG46bnRoLW9mLXR5cGUoMSkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uaGVhZGVyX19uYXYgLm5hdl9fbW9iaWxlLmFjdGl2ZSAubW9iaWxlX19idG46bnRoLW9mLXR5cGUoMikge1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCUpIHJvdGF0ZSg0NWRlZyk7XG59XG5cbi5oZWFkZXJfX25hdiAubmF2X19tb2JpbGUuYWN0aXZlIC5tb2JpbGVfX2J0bjpudGgtb2YtdHlwZSgzKSB7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwJSkgcm90YXRlKC00NWRlZyk7XG59XG5cbi5oZWFkZXJfX25hdiAubmF2X19tb2JpbGUuYWN0aXZlIC5tb2JpbGVfX2Jsb2NrIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmhlYWRlcl9fbmF2IC5uYXZfX21vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLmhlYWRlcl9fbmF2IC5uYXZfX21vYmlsZSAubW9iaWxlX19idG4ge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICB6LWluZGV4OiAxMDtcbn1cblxuLmhlYWRlcl9fbmF2IC5uYXZfX21vYmlsZSAubW9iaWxlX19idG46bnRoLW9mLXR5cGUoMikge1xuICB0b3A6IGNhbGMoNTAlIC0gN3B4KTtcbn1cblxuLmhlYWRlcl9fbmF2IC5uYXZfX21vYmlsZSAubW9iaWxlX19idG46bnRoLW9mLXR5cGUoMykge1xuICB0b3A6IGNhbGMoNTAlICsgN3B4KTtcbn1cblxuLmhlYWRlcl9fbmF2IC5uYXZfX21vYmlsZSAubW9iaWxlX19ibG9jayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMTVweDtcbiAgYmFja2dyb3VuZDogIzhFODI4MjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNTBweDtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xufVxuXG4uaGVhZGVyX19uYXYgLm5hdl9fbW9iaWxlIC5tb2JpbGVfX2Jsb2NrIC5sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDE1MHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmhlYWRlcl9fbmF2IC5uYXZfX21vYmlsZSAubW9iaWxlX19ibG9jayAubG9nbyBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uaGVhZGVyX19uYXYgLm5hdl9fbW9iaWxlIC5tb2JpbGVfX2Jsb2NrIC5sb2dvIGEgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5oZWFkZXJfX25hdiAubmF2X19tb2JpbGUgLm1vYmlsZV9fYmxvY2sgLmxvZ28gYSBzcGFuIHtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBsZXR0ZXItc3BhY2luZzogNnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmhlYWRlcl9fbmF2IC5uYXZfX21vYmlsZSAubW9iaWxlX19ibG9jayAubmF2X19saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZ2FwOiAyMHB4O1xufVxuXG4uaGVhZGVyX19uYXYgLm5hdl9fbW9iaWxlIC5tb2JpbGVfX2Jsb2NrIC5uYXZfX2xpc3QgLml0ZW1zX19saW5rIHtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uaGVhZGVyX19uYXYgLm5hdl9fbW9iaWxlIC5tb2JpbGVfX2Jsb2NrIC5waG9uZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDI1cHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gIEJhc2ljIE1vZGFsIFN0eWxlc1xyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5tb2RhbCB7XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIGF2ZW5pciBuZXh0LCBhdmVuaXIsIGhlbHZldGljYSBuZXVlLCBoZWx2ZXRpY2EsIHVidW50dSwgcm9ib3RvLCBub3RvLCBzZWdvZSB1aSwgYXJpYWwsIHNhbnMtc2VyaWY7XG59XG5cbi5tb2RhbF9fb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgei1pbmRleDogMTA7XG59XG5cbi5tb2RhbF9fY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMzBweDtcbiAgbWF4LXdpZHRoOiA3NDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogNTAlO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQyLCAxMzAsIDEzMCwgMC4yNyk7XG4gIGJveC1zaGFkb3c6IC00cHggLTNweCA3cHggcmdiYSgwLCAwLCAwLCAwLjI1KSwgM3B4IDRweCA3cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbn1cblxuQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSB7XG4gIC5tb2RhbF9fY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgbWF4LWhlaWdodDogODB2aDtcbiAgfVxufVxuXG4ubW9kYWxfX2hlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSB7XG4gIC5tb2RhbF9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogaW5pdGlhbDtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIH1cbn1cblxuLm1vZGFsX190aXRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHB4O1xuICBsZWZ0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBjb2xvcjogIzAwNDQ5ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1vZGFsX19jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHB4O1xuICByaWdodDogMjBweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW46IDBweDtcbiAgcGFkZGluZzogMHB4O1xufVxuXG5Ac3VwcG9ydHMgKGRpc3BsYXk6IGZsZXgpIHtcbiAgLm1vZGFsX190aXRsZSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgfVxuICAubW9kYWxfX2Nsb3NlIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9XG59XG5cbi5tb2RhbF9faGVhZGVyIC5tb2RhbF9fY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI3MTVcIjtcbn1cblxuLm1vZGFsX19jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cblxuQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSB7XG4gIC5tb2RhbF9fY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cblxuLm1vZGFsX19idG4ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgcGFkZGluZy10b3A6IC41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICM2RkE5MkU7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICBtYXJnaW46IDA7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIC4yNXMgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMjVzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjI1cyBlYXNlLW91dCwgLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZTtcbn1cblxuLm1vZGFsX19idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODljYjNmO1xufVxuXG4ubW9kYWxfX2J0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDQ5ZTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQW5pbWF0aW9uIFN0eWxlXHJcbiAgKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5Aa2V5ZnJhbWVzIG1tZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG1tZmFkZU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBtbXNsaWRlSW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTUlKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbW1zbGlkZU91dCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMCUpO1xuICB9XG59XG5cbi5taWNyb21vZGFsLXNsaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1pY3JvbW9kYWwtc2xpZGUuaXMtb3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWljcm9tb2RhbC1zbGlkZVthcmlhLWhpZGRlbj1cImZhbHNlXCJdIC5tb2RhbF9fb3ZlcmxheSB7XG4gIGFuaW1hdGlvbjogbW1mYWRlSW4gMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbn1cblxuLm1pY3JvbW9kYWwtc2xpZGVbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSAubW9kYWxfX2NvbnRhaW5lciB7XG4gIGFuaW1hdGlvbjogbW1zbGlkZUluIDAuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG59XG5cbi5taWNyb21vZGFsLXNsaWRlW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSAubW9kYWxfX292ZXJsYXkge1xuICBhbmltYXRpb246IG1tZmFkZU91dCAwLjNzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xufVxuXG4ubWljcm9tb2RhbC1zbGlkZVthcmlhLWhpZGRlbj1cInRydWVcIl0gLm1vZGFsX19jb250YWluZXIge1xuICBhbmltYXRpb246IG1tc2xpZGVPdXQgMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbn1cblxuLm1pY3JvbW9kYWwtc2xpZGUgLm1vZGFsX19jb250YWluZXIsXG4ubWljcm9tb2RhbC1zbGlkZSAubW9kYWxfX292ZXJsYXkge1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIEN1c3RvbSBzdHlsZXMgZm9yIGluZGl2aWR1YWwgbW9kYWxzXHJcbiAgKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4ubW9kYWxfX2NvbnRhaW5lciBidXR0b24ge1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cblxuLm1vZGFsX19jb250YWluZXIgaDIubW9kYWxfX3RpdGxlIHtcbiAgY29sb3I6ICM1OTU5NTk7XG59XG5cbi5tb2RhbF9faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubW9kYWxfX3RpdGxlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgY29sb3I6ICMwMDQ0OWU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5tb2RhbF9fY2xvc2Uge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5tb2RhbF9fY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG5cbi5tb2RhbF9fYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgTW9iaWxlIGN1c3RvbSBzdHlsZXMgZm9yIGluZGl2aWR1YWwgbW9kYWxzXHJcbiAgKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0ODBweCkge1xuICAubW9kYWxfX2NvbnRhaW5lciB7XG4gICAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogOTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSB7XG4gICAgLm1vZGFsX19jb250YWluZXIge1xuICAgICAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xuICAgICAgbWluLXdpZHRoOiA5MCUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLm1vZGFsX19pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA0NnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0MiwgMTMwLCAxMzAsIDAuNTYpO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cbiIsbnVsbCwiLy8gQ29sb3JzIHZhcmlhYmxlc1xyXG4kY29sb3Itd2hpdGU6ICNmZmY7XHJcbiRjb2xvci1ibGFjazogIzAwMDtcclxuJGNvbG9yLXRpdGxlOiAjM0UzRTNFO1xyXG4kY29sb3Itc2xpZGVyLWJ1dHRvbjogIzZGQTkyRTtcclxuJGNvbG9yLWZvb3RlcjogIzhFODI4MjtcclxuXHJcbi8vIEJhc2UgZm9udCBzaXplXHJcbiRiYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcclxuXHJcbi8vIEJyZWFrcG9pbnRzIGZvciBpbmNsdWRlLW1lZGlhIG1peGluc1xyXG4kYnJlYWtwb2ludHM6IChcclxuICBwaG9uZVNtYWxsOiAzNzVweCxcclxuICBwaG9uZVJlZzogNDE0cHgsXHJcbiAgdGFibGV0U21hbGw6IDc2OHB4LFxyXG4gIHRhYmxldE1pZDogODAwcHgsXHJcbiAgdGFibGV0UmVnOiAxMDI0cHgsXHJcbiAgZGVza3RvcFNtYWxsOiAxMjgwcHgsXHJcbiAgZGVza3RvcE1pZDogMTM2NnB4LFxyXG4gIGRlc2t0b3BSZWc6IDE0NDBweCxcclxuICBkZXNrdG9wQmlnOiAxNjAwcHgsXHJcbiAgZGVza3RvcExhcmdlOiAxOTIwcHgsXHJcbik7XHJcbiIsIi5pY29uLW1vbm8ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBoZWlnaHQ6IDFlbTtcclxuICBmaWxsOiBjdXJyZW50Q29sb3I7XHJcbn1cclxuXHJcbi5pY29uLWZhY2Vib29rIHtcclxuICBmb250LXNpemU6KDE5LzEwKSoxcmVtO1xyXG4gIHdpZHRoOigxMC8xOSkqMWVtO1xyXG59XHJcbi5pY29uLXRlbGVncmFtIHtcclxuICBmb250LXNpemU6KDE4OS40Ny8xMCkqMXJlbTtcclxuICB3aWR0aDooMTg5LjQ3LzE4OS40NykqMWVtO1xyXG59XHJcbiIsIi5pY29uLW11bHRpIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgaGVpZ2h0OiAxZW07XHJcbn1cclxuXHJcbi5pY29uLWpzIHtcclxuICBmb250LXNpemU6KDMwOC8xMCkqMXJlbTtcclxuICB3aWR0aDooMjI1LzMwOCkqMWVtO1xyXG59XHJcbiIsIi8vIEZvb3RlciBzdHlsZXMgYmduXHJcbmZvb3RlciNmb290ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWZvb3RlcjtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICBtaW4taGVpZ2h0OiAzMTdweDtcclxuICAgIHBhZGRpbmctdG9wOiAxNHB4O1xyXG4gIFxyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgdHJhbnNpdGlvbjogMC4zcyBlYXNlO1xyXG4gIFxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogZGFya2VuKCRjb2xvci13aGl0ZSwgMjApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICAuc2VjdGlvbiB7XHJcbiAgICAgIC5mb290ZXJfX3RvcCB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGNvbG9yLXdoaXRlO1xyXG4gIFxyXG4gICAgICAgIC5sb2dvIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICB3aWR0aDogOTZweDtcclxuICAgICAgICAgIGhlaWdodDogNTVweDtcclxuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgXHJcbiAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICBcclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIC5waG9uZSB7XHJcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIC5mb290ZXJfX21pZGRsZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICBcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD02NzRweCcpIHtcclxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIC5mb290ZXJfX21lbnUge1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgZ2FwOiA1MHB4O1xyXG4gIFxyXG4gICAgICAgICAgLm1pZGRsZV9fbGlzdCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIFxyXG4gICAgICAgICAgICAubGlzdF9fdGl0bGUge1xyXG4gICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcclxuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMXB4O1xyXG4gIFxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTUzMnB4Jykge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgXHJcbiAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICBcclxuICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XHJcbiAgXHJcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTUzMnB4Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICBcclxuICAgICAgICAuYWRkcmVzcyB7XHJcbiAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuICBcclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTY3NHB4Jykge1xyXG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZVNtYWxsJykge1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIFxyXG4gICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICBtYXJnaW46IDNweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gIFxyXG4vLyBGb290ZXIgc3R5bGVzIGVuZFxyXG4iLCIvLyBJbmRleCBwYWdlIHN0eWxlcyBiZ25cclxuLnNlY3Rpb25fX2ZpcnN0IHtcclxuICBoZWlnaHQ6IDEwMHZoO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgaW1nIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAuZmlyc3RfX2Jsb2NrIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogODM1cHg7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuNDYpO1xyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDVweCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXRNaWQnKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5ibG9ja19fdGV4dCB7XHJcbiAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgICAuYmxvY2tfX3RpdGxlIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0TWlkJykge1xyXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYmxvY2tfX3RpdGxlLWltZyB7XHJcbiAgICAgICAgICB3aWR0aDogMTk3LjEycHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDcyLjIycHg7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxOXB4O1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0TWlkJykge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJsb2NrX190aXRsZS10ZXh0IHtcclxuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IDcxcHg7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogODJweDtcclxuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXRNaWQnKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNTBweDtcclxuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmJsb2NrX19zdWJ0aXRsZSB7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xyXG4gICAgICAgIG1heC13aWR0aDogNTUwcHg7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmVSZWcnKSB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm5hdiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xyXG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMzdweDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD01NTBweCcpIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZVJlZycpIHtcclxuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXZfX2xpc3Qge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBnYXA6IDIzcHg7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZVJlZycpIHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmxpc3RfX2l0ZW1zIHtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG5cclxuICAgICAgICAuaXRlbXNfX2xpbmsge1xyXG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZVJlZycpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gSW5kZXggcGFnZSBzdHlsZXMgZW5kXHJcbiIsIi5zZWN0aW9uX19zcGVjaWFsIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGdhcDogMzBweDtcclxuICBtYXJnaW4tdG9wOiA3MHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XHJcbiAgcGFkZGluZzogMCAxMHB4O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXRTbWFsbCcpIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLnNwZWNpYWxfX2l0ZW0ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXgtd2lkdGg6IDU2OHB4O1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0U21hbGwnKSB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA4MCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAuaXRlbV9faW1nIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgQGluY2x1ZGUgZ3B1XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIENTUyBMb2NrXHJcbi8vICRtaW4tc2l6ZTogbWluaW11bSBlbGVtZW50ICRwcm9wZXJ0eSBzaXplIGluICR1bml0IHNwZWNpZmllZFxyXG4vLyAkbWF4LXNpemU6IG1heGltdW0gZWxlbWVudCAkcHJvcGVydHkgc2l6ZSBpbiAkdW5pdCBzcGVjaWZpZWRcclxuLy8gJG1pbi13aWR0aDogdGhlIHNjcmVlbiB3aWR0aCBpbiAkdW5pdHMgd2hlcmUgeW91IHdhbnQgdG8gbG9jayBpbiB0aGUgJG1pbi1zaXplXHJcbi8vICRtYXgtd2lkdGg6IHRoZSBzY3JlZW4gd2lkdGggaW4gJHVuaXRzIHdoZXJlIHlvdSB3YW50IHRvIGxvY2sgaW4gdGhlICRtYXgtc2l6ZVxyXG4vLyAkcHJvcGVydHk6IHRoZSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIHNjYWxlL2xvY2tcclxuLy8gJHVuaXQ6IHRoZSB1bml0cyB3aGljaCBhbGwgbWVhc3VyZW1lbnRzIGFyZSB0YWtlbiBpblxyXG5AbWl4aW4gY3NzLWxvY2soXHJcbiAgJG1pbi1zaXplOiAxLFxyXG4gICRtYXgtc2l6ZTogMS40LFxyXG4gICRtaW4td2lkdGg6IDIwLFxyXG4gICRtYXgtd2lkdGg6IDEwMCxcclxuICAkcHJvcGVydHk6IGZvbnQtc2l6ZSxcclxuICAkdW5pdDogcmVtXHJcbikge1xyXG4gICN7JHByb3BlcnR5fTogY2FsYyhcclxuICAgICN7JG1pbi1zaXplfSN7JHVuaXR9ICsgKCN7JG1heC1zaXplfSAtICN7JG1pbi1zaXplfSkgKiAoKDEwMHZ3IC0gI3skbWluLXdpZHRofSN7JHVuaXR9KSAvXHJcbiAgICAgICAgICAoI3skbWF4LXdpZHRofSAtICN7JG1pbi13aWR0aH0pKVxyXG4gICk7XHJcblxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAjeyRtaW4td2lkdGh9I3skdW5pdH0pIHtcclxuICAgICN7JHByb3BlcnR5fTogI3skbWluLXNpemV9I3skdW5pdH07XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogI3skbWF4LXdpZHRofSN7JHVuaXR9KSB7XHJcbiAgICAjeyRwcm9wZXJ0eX06ICN7JG1heC1zaXplfSN7JHVuaXR9O1xyXG4gIH1cclxufVxyXG5cclxuLy8gc21vb3RoIGZvbnRcclxuQG1peGluIHNtb290aC1mb250IHtcclxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG59XHJcblxyXG4vLyB2ZXJ0aWNhbC1hbGlnbiBhdCBjZW50ZXJcclxuQG1peGluIHZjZW50ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDUwJTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuXHJcbi8vIGNlbnRlclxyXG5AbWl4aW4gY2VudGVyKCRheGlzKSB7XHJcbiAgQGlmICRheGlzID09IGJvdGgge1xyXG4gICAgQGluY2x1ZGUgdmNlbnRlcjtcclxuICB9IEBlbHNlIGlmICRheGlzID09IGgge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gIH0gQGVsc2UgaWYgJGF4aXMgPT0gdiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIGNsZWFyZml4XHJcbkBtaXhpbiBjbHIge1xyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gIH1cclxufVxyXG5cclxuLy8gdHJhbnNpdGlvblxyXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydHk6IGFsbCwgJGR1cmF0aW9uOiAwLjJzLCAkZWFzaW5nOiBlYXNlKSB7XHJcbiAgdHJhbnNpdGlvbjogJHByb3BlcnR5ICRkdXJhdGlvbiAkZWFzaW5nO1xyXG59XHJcblxyXG4vLyBpbWFnZXNcclxuQG1peGluIGltZyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogYXV0bztcclxufVxyXG5cclxuQG1peGluIGNvdmVyIHtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxufVxyXG5cclxuLy8gcGVyZm9ybWFuY2VcclxuQG1peGluIGdwdSB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxufVxyXG5cclxuLy8gb2w+bGkgY291bnRlclxyXG5AbWl4aW4gY291bnRlcigkdmFyLCAkc2VwKSB7XHJcbiAgY291bnRlci1yZXNldDogbGlzdCArICR2YXI7XHJcbiAgbGk6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IGNvdW50ZXIobGlzdCArICR2YXIpICRzZXA7XHJcbiAgICBjb3VudGVyLWluY3JlbWVudDogbGlzdCArICR2YXI7XHJcbiAgfVxyXG59XHJcblxyXG4vLyByZXNldCBidXR0b25zXHJcbkBtaXhpbiByZXNldGJ1dHRvbigkcGFkZGluZzogMCkge1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLy8gcmVzZXQgZmlyc3QtY2hpbGQvbGFzdC1jaGlsZCBtYXJnaW5zXHJcbkBtaXhpbiBtYXJnaW5jaGlsZHJlc2V0IHtcclxuICAmOmZpcnN0LWNoaWxkIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgfVxyXG4gICY6bGFzdC1jaGlsZCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLy8gcGFkZGluZ3MgZm9yIGNvbmF0aW5lcnNcclxuQG1peGluIGNvbnRhaW5lci1wYWQge1xyXG4gIHBhZGRpbmctbGVmdDogMTZweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xyXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldFNtYWxsJywgJzx0YWJsZXRSZWcnKSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDU4cHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1OHB4O1xyXG4gIH1cclxufVxyXG5cclxuLy8gbGltaXQgd2lkdGggZm9yIGNvbnRhaW5lcnNcclxuQG1peGluIGNvbnRhaW5lci1saW0oJHdpZHRoOiAxMjEycHgsICRtZWRpYTogJz49dGFibGV0UmVnJykge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpYSkge1xyXG4gICAgbWF4LXdpZHRoOiAkd2lkdGg7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbn1cclxuIiwiLnNlY29uZF9fc2xpZGVyIHtcclxuICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4MHB4O1xyXG59IiwiLnNlY3Rpb25fX2JlbmVmaXRzIHtcclxuICBtaW4taGVpZ2h0OiAyMjNweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItZm9vdGVyO1xyXG4gIHBhZGRpbmc6IDAgMTBweDtcclxuXHJcbiAgLnNlY3Rpb24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAuc2VjdGlvbl9fdGl0bGUge1xyXG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xyXG4gICAgfVxyXG5cclxuICAgIC5iZW5lZml0c19fd3JhcHBlciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGdhcDogMzdweDtcclxuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTkyMHB4Jykge1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0TWlkJykge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuYmVuZWZpdCB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBnYXA6IDE4cHg7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBtYXgtd2lkdGg6IDM3MHB4O1xyXG4gICAgICAgIGhlaWdodDogbWF4LWNvbnRlbnQ7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXdoaXRlO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgcGFkZGluZzogMTJweCAyMXB4IDEzcHggMTZweDtcclxuXHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDM2cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXRNaWQnKSB7XHJcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMTJweDtcclxuICAgICAgICAgIG1heC13aWR0aDogNzAlO1xyXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICBtYXgtd2lkdGg6IDY2cHg7XHJcbiAgICAgICAgICBtYXgtaGVpZ2h0OiA2NnB4O1xyXG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldFJlZycpIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MHB4O1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA1MHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJlbmVmaXRfX3RpdGxlIHtcclxuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjFweDtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0UmVnJykge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYmVuZWZpdF9fdGV4dCB7XHJcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTEwODBweCcpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuc2VjdGlvbl9fYWJvdXQge1xyXG4gIGJhY2tncm91bmQ6ICNhZWEzOTg4YztcclxuICBwYWRkaW5nOiA2N3B4IDEwcHggODBweCAxMHB4O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXRNaWQnKSB7XHJcbiAgICBwYWRkaW5nOiA0MHB4IDEwcHggNDBweCAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLnNlY3Rpb25fX3dyYXBwZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXgtaGVpZ2h0OiAzOTJweDtcclxuICAgIGdhcDogMzFweDtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxNXB4ICRjb2xvci13aGl0ZTtcclxuICAgICAgQGluY2x1ZGUgY3NzLWxvY2soMTUwLCAzMzksIDM3NSwgMTQ0MCwgd2lkdGgsIHB4KTtcclxuICAgICAgQGluY2x1ZGUgY3NzLWxvY2soMTUwLCAzNTMsIDM3NSwgMTQ0MCwgaGVpZ2h0LCBweCk7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD02NDBweCcpIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWJvdXRfX2Jsb2NrIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgY29sb3I6ICRjb2xvci10aXRsZTtcclxuXHJcbiAgICAgIC5hYm91dF9fdGl0bGUge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogNDlweDtcclxuICAgICAgICBAaW5jbHVkZSBjc3MtbG9jaygxNiwgMzYsIDM3NSwgMTQ0MCwgZm9udC1zaXplLCBweCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hYm91dF9fZmlvIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7XHJcbiAgICAgICAgQGluY2x1ZGUgY3NzLWxvY2soMTIsIDE4LCAzNzUsIDE0NDAsIGZvbnQtc2l6ZSwgcHgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuYWJvdXRfX3Bvc2l0aW9uIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7XHJcbiAgICAgICAgQGluY2x1ZGUgY3NzLWxvY2soMTIsIDE2LCAzNzUsIDE0NDAsIGZvbnQtc2l6ZSwgcHgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuYWJvdXRfX2NvbXBhbnkge1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMThweDtcclxuICAgICAgICBAaW5jbHVkZSBjc3MtbG9jaygxMiwgMTgsIDM3NSwgMTQ0MCwgZm9udC1zaXplLCBweCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmNhdGFsb2dfX3NlY3Rpb24ge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMTc0LCAxNjMsIDE1MiwgMC41NSk7XHJcbiAgcGFkZGluZy1ib3R0b206IDEyNXB4O1xyXG5cclxuICAuc2VjdGlvbl9fdGl0bGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMzNweDtcclxuICB9XHJcblxyXG4gIC5jdWJlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMCU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9NzExcHgnKSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIH1cclxuXHJcbiAgICAuY3ViZV9faXRlbXMge1xyXG4gICAgICBtYXgtd2lkdGg6IDExNzBweDtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICBnYXA6IDUwcHggMzBweDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTcxMXB4Jykge1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5jdWJlX19saW5rIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcclxuICAgICAgICBtYXgtaGVpZ2h0OiAyNzBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogLjNzIGVhc2U7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggNXB4ICRjb2xvci1mb290ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmN1YmVfX3RleHQge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDA7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICBAaW5jbHVkZSB2Y2VudGVyO1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxNDIsIDEzMCwgMTMwLCAwLjIpIC00LjM3JSwgIzhFODI4MiAyNS40NiUsIHJnYmEoMTQyLCAxMzAsIDEzMCwgMC45ODMzNzcpIDY2LjA5JSwgcmdiYSgxNDIsIDEzMCwgMTMwLCAwLjIpIDEwMy42OSUpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VjdGlvbl9fdGl0bGUge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9NzExcHgnKSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5jb250ZW50IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGdhcDogMzBweDtcclxuXHJcbiAgLmNvbnRlbnRfX2NhdGFsb2cge1xyXG4gICAgLmNhdGFsb2dfdGl0bGUge1xyXG4gICAgICB0cmFuc2l0aW9uOiAwLjNzIGVhc2U7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD0xMDQ1cHgnKSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDkwZGVnKTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAyMDVweDtcclxuICAgICAgICBsZWZ0OiAtMjBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hY3RpdmUge1xyXG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZykgIWltcG9ydGFudDtcclxuICAgICAgbGVmdDogMzBweCAhaW1wb3J0YW50O1xyXG4gICAgICB0b3A6IDE1MHB4ICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXRNaWQnKSB7XHJcbiAgICAgICAgdG9wOiAxMTFweCAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29udGVudF9fbWFpbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGZsZXg6IDEgMSA3MCU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9MTA0NXB4Jykge1xyXG4gICAgICBmbGV4LWJhc2lzOiA4MCU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNhdGFsb2dfX2l0ZW1zIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICBnYXA6IDMwcHg7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgICAgLmNhcmQge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBAaW5jbHVkZSBjc3MtbG9jaygxNTAsIDI2MCwgMzc1LCAxNDQwLCB3aWR0aCwgcHgpO1xyXG4gICAgICAgIC8vIEBpbmNsdWRlIG1lZGlhKCc8NjIwcHgnKSB7XHJcbiAgICAgICAgLy8gICAgIHdpZHRoOiA7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAuY2FyZF9fY29udGVudCB7XHJcbiAgICAgICAgICAuY2FyZF9fYnV0dG9uIHtcclxuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0U21hbGwnKSB7XHJcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMzBweDtcclxuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucGFnaW5hdGlvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDYxcHg7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTYyMHB4Jykge1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgLnBhZ2VfX2xpc3Qge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZ2FwOiAxMHB4O1xyXG5cclxuXHJcbiAgICAgICAgLnBhZ2VfX2Fycm93IHtcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucGFnZV9faXRlbSB7XHJcbiAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcblxyXG4gICAgICAgICAgLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIC5wYWdlX19udW1iZXIge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkY29sb3Itc2xpZGVyLWJ1dHRvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5wYWdlX19udW1iZXIge1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjFweDtcclxuICAgICAgICAgICAgY29sb3I6ICRjb2xvci10aXRsZTtcclxuXHJcbiAgICAgICAgICAgIC5hY3RpdmUge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkY29sb3Itc2xpZGVyLWJ1dHRvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuY29udGVudCB7XHJcbiAgZ2FwOiAzMHB4O1xyXG4gIHBhZGRpbmctbGVmdDogMTBweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG5cclxuICAuY29udGVudF9fbWFpbiB7XHJcbiAgICAuc2xpZGVyX2FuZF9wcmljZSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD02NDNweCcpIHtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zaW5nbGVfX3NsaWRlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAgIC5zbGlkZXJfX2ltZyB7XHJcbiAgICAgICAgICBtYXgtd2lkdGg6IDM3MHB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAzODVweDtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZVJlZycpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDI1MHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2xpY2stc2xpZGUge1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAzNzBweDtcclxuICAgICAgICAgIG1pbi1oZWlnaHQ6IDI5NnB4O1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogNTBweDtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZVJlZycpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDI1MHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2xpY2stbGlzdCB7XHJcbiAgICAgICAgICBtYXgtd2lkdGg6IDM3MHB4O1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lUmVnJykge1xyXG4gICAgICAgICAgICB3aWR0aDogMjUwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2xpY2stdHJhY2sge1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2xpY2stYXJyb3cge1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAwO1xyXG4gICAgICAgICAgdG9wOiA0NSU7XHJcbiAgICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgICAgIHdpZHRoOiAxMHB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2xpY2stcHJldiB7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlIDBzO1xyXG4gICAgICAgICAgbGVmdDogMTBweDtcclxuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1nL2ljb25zL2xlZnQtcm93LnN2ZycpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQ1JSA0NSU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNsaWNrLW5leHQge1xyXG4gICAgICAgICAgcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltZy9pY29ucy9yaWdodC1yb3cuc3ZnJyk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTUlIDQ1JTtcclxuICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2xpY2stZG90cyB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBwYWRkaW5nOiAzcHg7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNmZmYsIDMwKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG5cclxuICAgICAgICAgICAgJi5zbGljay1hY3RpdmUge1xyXG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggM3B4ICRjb2xvci1ibGFjaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDA7XHJcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcclxuICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAucHJpY2Uge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQ2cHg7XHJcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XHJcblxyXG4gICAgICAgIC5wcmljZV9fY291bnQge1xyXG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci10aXRsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wcmljZV9fYnRuIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1zbGlkZXItYnV0dG9uO1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICAgICAgICAgIHBhZGRpbmc6IDEwcHggNDBweDtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGNvbG9yLXNsaWRlci1idXR0b24sIDEwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWJvdXRfX2Jsb2NrIHtcclxuXHJcbiAgICAgIC5hYm91dF9fdGl0bGUsXHJcbiAgICAgIC5hYm91dF9fbWF0ZXJpYWxzLFxyXG4gICAgICAuaXRlbV9fdGV4dCxcclxuICAgICAgLmFib3V0X19lbGVtZW50cyB7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGl0bGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5lbGVtZW50c19fbGlzdCB7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuaGVhZGVyX19uYXYge1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWZvb3RlcjtcclxuXHJcbiAgLnNlY3Rpb24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXRNaWQnKSB7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmxvZ28ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICB3aWR0aDogOTZweDtcclxuICAgICAgaGVpZ2h0OiA1NXB4O1xyXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yLXdoaXRlLCAyMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgZmlsbDogZGFya2VuKCRjb2xvci13aGl0ZSwgMjApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldE1pZCcpIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzcGFuIHtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXZfX2xpc3Qge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBnYXA6IDIzcHg7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXRNaWQnKSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmVSZWcnKSB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5saXN0X19pdGVtcyB7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgICAgICAgLml0ZW1zX19saW5rIHtcclxuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGVhc2U7XHJcblxyXG4gICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yLXdoaXRlLCAyMCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgY29sb3I6IGRhcmtlbigkY29sb3Itd2hpdGUsIDI1KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZVJlZycpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5waG9uZSB7XHJcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMjNweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgIHRyYW5zaXRpb246IDAuM3MgZWFzZTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yLXdoaXRlLCAyMCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldE1pZCcpIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubmF2X19tb2JpbGUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIHRvcDogMTBweDtcclxuXHJcbiAgICAgIC5tb2JpbGVfX2J0bjpudGgtb2YtdHlwZSgxKSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm1vYmlsZV9fYnRuOm50aC1vZi10eXBlKDIpIHtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwJSkgcm90YXRlKDQ1ZGVnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm1vYmlsZV9fYnRuOm50aC1vZi10eXBlKDMpIHtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwJSkgcm90YXRlKC00NWRlZyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5tb2JpbGVfX2Jsb2NrIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXRNaWQnKSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC5tb2JpbGVfX2J0biB7XHJcbiAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICBoZWlnaHQ6IDJweDtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcclxuICAgICAgei1pbmRleDogMTA7XHJcblxyXG4gICAgICAmOm50aC1vZi10eXBlKDIpIHtcclxuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gN3B4KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XHJcbiAgICAgICAgdG9wOiBjYWxjKDUwJSArIDdweCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubW9iaWxlX19ibG9jayB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWZvb3RlcjtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xyXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGdhcDogNTBweDtcclxuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG5cclxuICAgICAgLmxvZ28ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgd2lkdGg6IDE1MHB4O1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiA2cHg7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAubmF2X19saXN0IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICBnYXA6IDIwcHg7XHJcblxyXG4gICAgICAgIC5pdGVtc19fbGluayB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5waG9uZSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNXB4O1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gIEJhc2ljIE1vZGFsIFN0eWxlc1xyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi5tb2RhbCB7XHJcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgYXZlbmlyIG5leHQsIGF2ZW5pciwgaGVsdmV0aWNhIG5ldWUsIGhlbHZldGljYSwgdWJ1bnR1LCByb2JvdG8sIG5vdG8sIHNlZ29lIHVpLCBhcmlhbCwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLm1vZGFsX19vdmVybGF5IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43NSk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHotaW5kZXg6IDEwO1xyXG59XHJcblxyXG4ubW9kYWxfX2NvbnRhaW5lciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBwYWRkaW5nOiAzMHB4O1xyXG4gIG1heC13aWR0aDogNzQwcHg7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0MiwgMTMwLCAxMzAsIDAuMjcpO1xyXG4gIGJveC1zaGFkb3c6IC00cHggLTNweCA3cHggcmdiYSgwLCAwLCAwLCAwLjI1KSwgM3B4IDRweCA3cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcclxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG59XHJcblxyXG5Ac3VwcG9ydHMgKGRpc3BsYXk6IGZsZXgpIHtcclxuXHJcbiAgLm1vZGFsX19jb250YWluZXIge1xyXG4gICAgaGVpZ2h0OiBpbml0aWFsO1xyXG4gICAgbWF4LWhlaWdodDogODB2aDtcclxuICB9XHJcblxyXG59XHJcblxyXG4ubW9kYWxfX2hlYWRlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGhlaWdodDogMzBweDtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG5Ac3VwcG9ydHMgKGRpc3BsYXk6IGZsZXgpIHtcclxuXHJcbiAgLm1vZGFsX19oZWFkZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBoZWlnaHQ6IGluaXRpYWw7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLm1vZGFsX190aXRsZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMjBweDtcclxuICBsZWZ0OiAyMHB4O1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICBsaW5lLWhlaWdodDogMS4yNTtcclxuICBjb2xvcjogIzAwNDQ5ZTtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG4ubW9kYWxfX2Nsb3NlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAyMHB4O1xyXG4gIHJpZ2h0OiAyMHB4O1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgbWFyZ2luOiAwcHg7XHJcbiAgcGFkZGluZzogMHB4O1xyXG59XHJcblxyXG5Ac3VwcG9ydHMgKGRpc3BsYXk6IGZsZXgpIHtcclxuXHJcbiAgLm1vZGFsX190aXRsZSB7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gIH1cclxuXHJcbiAgLm1vZGFsX19jbG9zZSB7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5tb2RhbF9faGVhZGVyIC5tb2RhbF9fY2xvc2U6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcMjcxNVwiO1xyXG59XHJcblxyXG4ubW9kYWxfX2NvbnRlbnQge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7XHJcbn1cclxuXHJcbkBzdXBwb3J0cyAoZGlzcGxheTogZmxleCkge1xyXG5cclxuICAubW9kYWxfX2NvbnRlbnQge1xyXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5tb2RhbF9fYnRuIHtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgcGFkZGluZy10b3A6IC41cmVtO1xyXG4gIHBhZGRpbmctYm90dG9tOiAuNXJlbTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2xpZGVyLWJ1dHRvbjtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcclxuICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbiAgYm9yZGVyLXdpZHRoOiAwO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICBsaW5lLWhlaWdodDogMjFweDtcclxuICBtYXJnaW46IDA7XHJcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcclxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XHJcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBlYXNlLW91dDtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjI1cyBlYXNlLW91dDtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjI1cyBlYXNlLW91dCwgLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBlYXNlLW91dDtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLXNsaWRlci1idXR0b24sIDEwKTtcclxuICB9XHJcbn1cclxuXHJcbi5tb2RhbF9fYnRuLXByaW1hcnkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ0OWU7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQW5pbWF0aW9uIFN0eWxlXHJcbiAgKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5Aa2V5ZnJhbWVzIG1tZmFkZUluIHtcclxuICBmcm9tIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICB0byB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBtbWZhZGVPdXQge1xyXG4gIGZyb20ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcblxyXG4gIHRvIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIG1tc2xpZGVJbiB7XHJcbiAgZnJvbSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTUlKTtcclxuICB9XHJcblxyXG4gIHRvIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbW1zbGlkZU91dCB7XHJcbiAgZnJvbSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgfVxyXG5cclxuICB0byB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwJSk7XHJcbiAgfVxyXG59XHJcblxyXG4ubWljcm9tb2RhbC1zbGlkZSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLm1pY3JvbW9kYWwtc2xpZGUuaXMtb3BlbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5taWNyb21vZGFsLXNsaWRlW2FyaWEtaGlkZGVuPVwiZmFsc2VcIl0gLm1vZGFsX19vdmVybGF5IHtcclxuICBhbmltYXRpb246IG1tZmFkZUluIC4zcyBjdWJpYy1iZXppZXIoMC4wLCAwLjAsIDAuMiwgMSk7XHJcbn1cclxuXHJcbi5taWNyb21vZGFsLXNsaWRlW2FyaWEtaGlkZGVuPVwiZmFsc2VcIl0gLm1vZGFsX19jb250YWluZXIge1xyXG4gIGFuaW1hdGlvbjogbW1zbGlkZUluIC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgLjIsIDEpO1xyXG59XHJcblxyXG4ubWljcm9tb2RhbC1zbGlkZVthcmlhLWhpZGRlbj1cInRydWVcIl0gLm1vZGFsX19vdmVybGF5IHtcclxuICBhbmltYXRpb246IG1tZmFkZU91dCAuM3MgY3ViaWMtYmV6aWVyKDAuMCwgMC4wLCAwLjIsIDEpO1xyXG59XHJcblxyXG4ubWljcm9tb2RhbC1zbGlkZVthcmlhLWhpZGRlbj1cInRydWVcIl0gLm1vZGFsX19jb250YWluZXIge1xyXG4gIGFuaW1hdGlvbjogbW1zbGlkZU91dCAuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIC4yLCAxKTtcclxufVxyXG5cclxuLm1pY3JvbW9kYWwtc2xpZGUgLm1vZGFsX19jb250YWluZXIsXHJcbi5taWNyb21vZGFsLXNsaWRlIC5tb2RhbF9fb3ZlcmxheSB7XHJcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDdXN0b20gc3R5bGVzIGZvciBpbmRpdmlkdWFsIG1vZGFsc1xyXG4gICoqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuLm1vZGFsX19jb250YWluZXIgYnV0dG9uIHtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubW9kYWxfX2NvbnRhaW5lciBoMi5tb2RhbF9fdGl0bGUge1xyXG4gIGNvbG9yOiAjNTk1OTU5O1xyXG59XHJcblxyXG4ubW9kYWxfX2hlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLm1vZGFsX190aXRsZSB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xyXG4gIGNvbG9yOiAjMDA0NDllO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbi5tb2RhbF9fY2xvc2Uge1xyXG4gIGZvbnQtc2l6ZTogMjRweDtcclxufVxyXG5cclxuLm1vZGFsX19jb250ZW50IHtcclxuICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7XHJcbn1cclxuXHJcbi5tb2RhbF9fYnRuIHtcclxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBNb2JpbGUgY3VzdG9tIHN0eWxlcyBmb3IgaW5kaXZpZHVhbCBtb2RhbHNcclxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Utd2lkdGggOiAzMjBweCkgYW5kIChtYXgtZGV2aWNlLXdpZHRoIDogNDgwcHgpIHtcclxuXHJcbiAgLm1vZGFsX19jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xyXG4gICAgbWluLXdpZHRoOiA5MCUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZmxleCkge1xyXG5cclxuICAgIC5tb2RhbF9fY29udGFpbmVyIHtcclxuICAgICAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xyXG4gICAgICBtaW4td2lkdGg6IDkwJSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG4ubW9kYWxfX2lucHV0IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtaW4taGVpZ2h0OiA0NnB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQyLCAxMzAsIDEzMCwgMC41Nik7XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcclxuICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbn1cclxuXHJcbmxhYmVsIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXHJcbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcclxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXHJcbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XHJcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcclxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcclxuLy9cclxuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3NcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40LjlcclxuLy9cclxuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXHJcbi8vXHJcbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxyXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXHJcbi8vXHJcbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcclxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XHJcbi8vL1xyXG4kYnJlYWtwb2ludHM6IChcclxuICAncGhvbmUnOiAzMjBweCxcclxuICAndGFibGV0JzogNzY4cHgsXHJcbiAgJ2Rlc2t0b3AnOiAxMDI0cHgsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuICAnc2NyZWVuJzogJ3NjcmVlbicsXHJcbiAgJ3ByaW50JzogJ3ByaW50JyxcclxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdyZXRpbmEyeCc6XHJcbiAgICAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxyXG4gICdyZXRpbmEzeCc6XHJcbiAgICAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknLFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcbiAgJ3B4JzogMSxcclxuICAnZW0nOiAwLjAxLFxyXG4gICdyZW0nOiAwLjEsXHJcbiAgJyc6IDAsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xyXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3JcclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXHJcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gICAuZm9vIHtcclxuLy8vICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XHJcblxyXG4vLy8vXHJcbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcbi8vL1xyXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcclxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXHJcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xyXG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiAkbWVzc2FnZTtcclxuICAgICRfOiBub29wKCk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcclxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxyXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxyXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQG1peGluIGxvZygkbWVzc2FnZSkge1xyXG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuICB9XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xyXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cclxuLy8vXHJcbkBmdW5jdGlvbiBub29wKCkge1xyXG59XHJcblxyXG4vLy9cclxuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xyXG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xyXG5cclxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcclxuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpXHJcbiAgICAgIHtcclxuICAgICAgICBAcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuICAgICAgQHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gUGFyc2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcbi8vL1xyXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XHJcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XHJcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcclxuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcclxuXHJcbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XHJcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcclxuICB9XHJcblxyXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XHJcblxyXG4gIEBpZiBub3QgJGludGVydmFsIHtcclxuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuICAgIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XHJcbiAgfVxyXG5cclxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XHJcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcclxuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xyXG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XHJcbiAgfVxyXG5cclxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcclxuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHJcbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxyXG4vLy9cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcclxuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XHJcbiAgICBAcmV0dXJuICgpO1xyXG4gIH1cclxuXHJcbiAgJHJlc3VsdDogKCk7XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcclxuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG4vLy9cclxuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfVxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcclxuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcclxuICAgIEByZXR1cm4gJHZhbHVlO1xyXG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcclxuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XHJcbiAgfVxyXG5cclxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcclxuICAkcmVzdWx0OiAwO1xyXG4gICRkaWdpdHM6IDA7XHJcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xyXG4gICRudW1iZXJzOiAoXHJcbiAgICAnMCc6IDAsXHJcbiAgICAnMSc6IDEsXHJcbiAgICAnMic6IDIsXHJcbiAgICAnMyc6IDMsXHJcbiAgICAnNCc6IDQsXHJcbiAgICAnNSc6IDUsXHJcbiAgICAnNic6IDYsXHJcbiAgICAnNyc6IDcsXHJcbiAgICAnOCc6IDgsXHJcbiAgICAnOSc6IDksXHJcbiAgKTtcclxuXHJcbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXHJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xyXG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcclxuICB9XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcclxuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XHJcblxyXG4gICAgQGlmIG5vdChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XHJcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XHJcbiAgICAgICRkaWdpdHM6IDE7XHJcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XHJcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcclxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XHJcbiAgJHVuaXRzOiAoXHJcbiAgICAncHgnOiAxcHgsXHJcbiAgICAnY20nOiAxY20sXHJcbiAgICAnbW0nOiAxbW0sXHJcbiAgICAnJSc6IDElLFxyXG4gICAgJ2NoJzogMWNoLFxyXG4gICAgJ3BjJzogMXBjLFxyXG4gICAgJ2luJzogMWluLFxyXG4gICAgJ2VtJzogMWVtLFxyXG4gICAgJ3JlbSc6IDFyZW0sXHJcbiAgICAncHQnOiAxcHQsXHJcbiAgICAnZXgnOiAxZXgsXHJcbiAgICAndncnOiAxdncsXHJcbiAgICAndmgnOiAxdmgsXHJcbiAgICAndm1pbic6IDF2bWluLFxyXG4gICAgJ3ZtYXgnOiAxdm1heCxcclxuICApO1xyXG5cclxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xyXG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XHJcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xyXG5cclxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcclxuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcclxuXHJcbiAgQGNvbnRlbnQ7XHJcblxyXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcclxuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcbi8vL1xyXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XHJcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxyXG4gICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpXHJcbiAge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XHJcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XHJcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKSAuLi4pIHtcclxuICAgICAgICBAY29udGVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */
