@charset "UTF-8";
/*------------------------------------*\
  reset
\*------------------------------------*/
*,
*:before,
*:after {
  box-sizing: border-box;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption,
th,
td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle;
}

q,
blockquote {
  quotes: none;
}

q:before,
q:after,
blockquote:before,
blockquote:after {
  content: "";
  content: none;
}

a img {
  border: none;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary {
  display: block;
}

button,
input {
  line-height: normal;
}

button,
input,
select,
textarea {
  font-size: 100%;
  margin: 0;
  vertical-align: baseline;
  *vertical-align: middle;
}

button,
input[type=button],
input[type=reset],
input[type=submit] {
  cursor: pointer;
  *overflow: visible;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

textarea {
  overflow: auto;
  vertical-align: top;
  resize: vertical;
}

a {
  text-decoration: none;
  color: inherit;
}

/* reset safari input styles */
input:not([type=radio]):not([type=checkbox]) {
  -webkit-appearance: none;
  border-radius: 0;
}

button {
  all: unset;
  display: inline-block;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
}

@font-face {
  font-family: "Univers Next Pro";
  src: url("fonts/univers-next-pro-regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "Univers Next Pro";
  src: url("fonts/univers-next-pro-italic.otf") format("opentype");
  font-weight: normal;
  font-style: italic;
}
@font-face {
  font-family: "Correspondance";
  src: url("fonts/correspondance.otf") format("opentype");
  font-weight: bold;
  font-style: normal;
}
:root {
  --fg-b: #ff0000;
  --vh: 100vh;
  --top: 3.25rem;
}

.ts, body {
  font-size: 1rem;
  line-height: 1.25;
}

.ts-italic, .body i,
.body em {
  font-style: italic;
}

.ts-link {
  text-decoration: underline;
}
@media (hover: hover) {
  .ts-link:hover {
    text-decoration: none;
  }
}

.ts-body-link, .body a {
  text-decoration: underline;
}
@media (hover: hover) {
  .ts-body-link:hover, .body a:hover {
    text-decoration: none;
  }
}

.body h1,
.body h2,
.body h3,
.body h4,
.body h5,
.body h6 {
  font-size: 75%;
  line-height: 100%;
  position: relative;
  top: -0.25em;
}
.body h1:not(:first-child),
.body h2:not(:first-child),
.body h3:not(:first-child),
.body h4:not(:first-child),
.body h5:not(:first-child),
.body h6:not(:first-child) {
  margin-top: 1.25rem;
}
.body h1:first-child,
.body h2:first-child,
.body h3:first-child,
.body h4:first-child,
.body h5:first-child,
.body h6:first-child {
  margin-top: calc(0.5rem/ 2);
}
.body h1:not(:last-child),
.body h2:not(:last-child),
.body h3:not(:last-child),
.body h4:not(:last-child),
.body h5:not(:last-child),
.body h6:not(:last-child) {
  margin-bottom: calc(0.5rem/ 2);
}
.body hr:not(:last-child),
.body p:not(:last-child),
.body ul:not(:last-child),
.body ol:not(:last-child),
.body pre:not(:last-child),
.body blockquote:not(:last-child) {
  margin-bottom: 0.75rem;
}
.body figure:not(:last-child),
.body .embed-container:not(:last-child) {
  margin-bottom: 2rem;
}
.body p {
  max-width: 75ch;
}
.body ul,
.body ol {
  list-style-position: inside;
}
.body hr {
  border: none;
  height: 1px;
  background-color: #000;
}
.body figcaption {
  margin-top: 0.5rem;
}

.body--indent p:not(:last-child) {
  margin-bottom: 0;
}
.body--indent p + p {
  text-indent: 2ch;
}

sup {
  font-size: 75%;
  line-height: 100%;
  position: relative;
  top: -0.25em;
}

.project__preview-image, .project__row, .selects, .sorts {
  display: grid;
}
@media (min-width: 896px) {
  .project__preview-image, .project__row, .selects, .sorts {
    grid-template-columns: 3fr 1.5fr 1.5fr 2fr 1.5fr 1.5fr 1fr;
  }
}

.project__text.active, .page__inner--duo {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 1.25rem;
}
@media (min-width: 896px) {
  .project__text.active, .page__inner--duo {
    row-gap: none;
    grid-template-columns: 16fr 8fr;
  }
}

.header__row {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 0.75rem;
}
@media (min-width: 896px) {
  .header__row {
    row-gap: none;
    grid-template-columns: 4fr 12fr;
  }
}

.page__inner--trio {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 1.25rem;
}
@media (min-width: 896px) {
  .page__inner--trio {
    row-gap: 0;
    grid-template-columns: 6fr 3.5fr 2.5fr;
  }
}

.page__inner--quatro {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 1.25rem;
}
@media (min-width: 896px) {
  .page__inner--quatro {
    row-gap: none;
    grid-template-columns: 6fr 4fr 3fr 3fr;
  }
}
@media (min-width: 1280px) {
  .page__inner--quatro {
    grid-template-columns: 8fr 4fr 3fr 3fr;
  }
}
@media (min-width: 1440px) {
  .page__inner--quatro {
    grid-template-columns: 6fr 4fr 4fr 4fr;
  }
}

/*------------------------------------*\
  medias
\*------------------------------------*/
img,
video,
object {
  max-width: 100%;
  height: auto;
}

img {
  display: block;
}

img.image-lazy {
  width: 100%;
}
img.image-lazy:not(.lazyloaded) {
  opacity: 0;
  transition: 0.25s opacity;
}
img.image-lazy.lazyloaded {
  opacity: 1;
  transition: 0.25s opacity;
}

.embed-container {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%;
}

.embed-container iframe,
.embed-container object,
.embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.header {
  width: 100%;
  position: fixed;
  z-index: 10;
  top: 0;
  left: 0;
  background: #fff;
  padding: 0 0.75rem;
}
@media (min-width: 896px) {
  .header {
    padding: 0 2rem;
  }
}
.header__row {
  gap: 0.75rem;
  padding-top: 1.25rem;
  padding-bottom: 0.75rem;
}
@media (min-width: 896px) {
  .header__row {
    gap: 0;
  }
}
.header__col--menu {
  display: none;
  margin-left: 3rem;
}
.header__col--menu.active {
  display: block;
}
@media (min-width: 896px) {
  .header__col--menu {
    margin-left: 0;
    display: grid;
    grid-template-columns: 3fr 3.5fr 2.5fr;
  }
}
@media (max-width: 895px) {
  .header__col--menu > *:not(:last-child) {
    margin-bottom: 0.25rem;
  }
}
.header__col--topbar {
  position: relative;
  display: flex;
  margin-left: 3rem;
}
.header__title {
  font-family: "Correspondance", "Univers Next Pro", "Univers", sans-serif;
  font-weight: bold;
}
.header__title > a {
  display: inline-block;
}
.header__open-btn {
  height: 2rem;
  width: 2rem;
  position: absolute;
  top: -0.5rem;
  right: 0;
}
.header__open-btn .el-a,
.header__open-btn .el-b {
  position: absolute;
  left: 0;
  width: 100%;
  border-top: 1px solid #000;
  transform-origin: 50% 50%;
  transition: 0.1s;
  transition-property: transform;
}
.header__open-btn .el-a {
  top: 37.5%;
}
.header__open-btn .el-b {
  top: 62.5%;
}
.header__open-btn.active .el-a {
  top: 50%;
  transform: rotate(45deg);
}
.header__open-btn.active .el-b {
  top: 50%;
  transform: rotate(-45deg);
}
@media (min-width: 896px) {
  .header__open-btn {
    display: none;
  }
}
.header__open-btn.active {
  display: block;
}
@media (min-width: 896px) {
  .header__open-btn.active {
    display: none;
  }
}
.header .filters__open-btn {
  position: relative;
  display: none;
  width: auto;
  margin-right: auto;
}
@media (min-width: 896px) {
  .header .filters__open-btn {
    display: flex;
  }
}
.header .filters__open-btn .filters__reset-btn {
  display: none;
  color: var(--fg-b);
}
.header .filters__open-btn .sorts-m__open-btn {
  position: absolute;
  left: -1rem;
}
.header .filters__open-btn.active .filters__reset-btn {
  display: inline-block;
  position: absolute;
  left: -1rem;
}
.header .filters__open-btn.active .sorts-m__open-btn {
  display: none;
}
.header .filters-btn--label {
  color: var(--fg-b);
}

.nav__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
@media (min-width: 896px) {
  .nav__list {
    flex-direction: row;
    gap: 0.5rem;
  }
}
.nav__item > a {
  display: inline-block;
  white-space: nowrap;
}
.nav__item > a.active {
  font-style: italic;
}

.search {
  width: 100%;
  position: relative;
}
@media (min-width: 896px) {
  .search {
    padding-right: 1.25rem;
  }
}
.search__reset-btn {
  position: absolute;
  left: -1rem;
  top: 0;
  display: none;
}
.search__reset-btn.active {
  display: block;
}
.search__input {
  background: transparent;
  border: none;
  color: #000;
  padding: 0;
  display: block;
  width: 100%;
  font-family: inherit;
  line-height: inherit;
  border-bottom: 1px solid transparent;
  margin-bottom: -1px;
}
.search__input::-moz-placeholder {
  opacity: 1;
  color: #000;
}
.search__input::placeholder {
  opacity: 1;
  color: #000;
}
.search__input:focus {
  outline: none;
  border-bottom: 1px solid #000;
}
.search__input:focus::-moz-placeholder {
  opacity: 0;
}
.search__input:focus::placeholder {
  opacity: 0;
}

.page {
  position: relative;
  display: none;
  margin-left: 3rem;
  border-bottom: 1px solid #000;
}
.page.active {
  display: block;
}
.page__close-btn {
  height: 2rem;
  width: 2rem;
  position: relative;
  position: absolute;
  left: -3rem;
  top: 0;
}
.page__close-btn .el-a,
.page__close-btn .el-b {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  border-top: 1px solid #000;
  transform-origin: center;
}
.page__close-btn .el-a {
  transform: translate(-50%, -50%) rotate(45deg);
}
.page__close-btn .el-b {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.page__inner {
  padding-top: 0.5rem;
  padding-bottom: 1.25rem;
  margin-left: -3rem;
}
.page__tabs {
  display: flex;
  padding-top: 0.125rem;
  overflow-x: auto;
  border-bottom: 1px solid #000;
}
.page__tab {
  list-style: none;
}
.page__tab.active button {
  font-style: italic;
}
.page__tab:not(:last-child) button:after {
  content: ", ";
  font-style: normal;
}
.page__tab-content {
  display: none;
}
@media (min-width: 896px) {
  .page__tab-content {
    padding-right: 1.25rem;
  }
}
.page__tab-content.active {
  display: block;
}
@media (min-width: 896px) {
  .page__body {
    padding-right: 1.25rem;
  }
}
.page__col {
  margin-left: 3rem;
}
@media (min-width: 896px) {
  .page__col.sm {
    margin-left: 0;
  }
}
.page__col.sm .body h3 {
  font-size: 0.75rem;
}

.list {
  list-style: none;
}

.filters {
  position: sticky;
  z-index: 10;
  top: var(--top);
  background: #fff;
}

.is_filters__open .filters {
  z-index: 9;
}

@media (min-width: 896px) {
  .filters-m {
    display: none;
  }
}
.filters-m__open-btn {
  position: relative;
  width: 100%;
  margin-right: auto;
  cursor: pointer;
  display: flex;
  border-bottom: 1px solid transparent;
}
.filters-m__open-btn .filters__reset-btn {
  display: none;
  color: var(--fg-b);
}
.filters-m__open-btn .sorts-m__open-btn {
  position: absolute;
  left: -1rem;
  stroke: var(--fg-b);
}
.filters-m__open-btn.active {
  border-bottom: 1px solid #000;
  padding-bottom: calc(0.25rem - 1px);
}
.filters-m__open-btn.active .filters__reset-btn {
  display: inline-block;
  position: absolute;
  left: -1rem;
}
.filters-m__open-btn.active .sorts-m__open-btn {
  display: none;
}

.sorts-m {
  list-style: none;
  display: none;
  border-bottom: 1px solid #000;
  max-height: 66vh;
  max-height: calc(var(--vh, 1vh) * 66);
  overflow-y: auto;
}
.sorts-m.active {
  display: block;
}
.sorts-m__col {
  display: flex;
  align-items: flex-start;
  padding-top: 0.125rem;
  margin-bottom: 0.5rem;
}
.sorts-m__col:not(:first-child) {
  border-top: 1px solid #000;
}
.sorts-m__text {
  width: 12ch;
}
@media (min-width: 480px) {
  .sorts-m__text {
    width: 15ch;
  }
}
.sorts-m__open-btn {
  top: 1px;
  height: 0.875rem;
  width: 0.625rem;
  cursor: pointer;
}
.sorts-m__open-btn line {
  stroke: var(--fg-b);
  stroke-width: 1.05;
}

.selects-m__open-btn {
  display: flex;
  align-items: flex-start;
}
.selects-m__log-row {
  cursor: pointer;
  border-bottom: 1px solid #000;
  margin-left: 3rem;
  padding-top: 0.125rem;
  display: none;
  color: var(--fg-b);
}
.selects-m__log-row.active {
  display: block;
}
.selects-m__log-row.empty, .selects-m__log-row.active.empty {
  display: none;
}
@media (min-width: 896px) {
  .selects-m__log-row {
    display: none;
  }
}
.selects-m__log-text {
  display: inline-block;
}
.selects-m__close-btn {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  height: 1rem;
  width: 1rem;
  cursor: pointer;
  display: none;
}
.selects-m__close-btn line {
  stroke: #000;
  stroke-width: 1.05;
}

.select-m__list {
  list-style: none;
  flex-direction: column;
  align-items: flex-start;
  display: flex;
  flex: 1;
}
.select-m__item {
  display: inline-block;
  cursor: pointer;
  position: relative;
}
.select-m__item.active {
  color: var(--fg-b);
}

.search-m__log-row {
  cursor: pointer;
  border-bottom: 1px solid #000;
  margin-left: 3rem;
  padding-top: 0.125rem;
  display: none;
}
.search-m__log-row.active {
  display: block;
}
.search-m__log-row.empty, .search-m__log-row.active.empty {
  display: none;
}
@media (min-width: 896px) {
  .search-m__log-row {
    display: none;
  }
}
.search-m__log-text {
  display: inline-block;
}

.sorts {
  list-style: none;
}
.sorts__col {
  padding-top: 0.125rem;
  display: flex;
  align-items: flex-start;
  font-style: italic;
}
.sorts__col:not(.sorts__number):not(.sorts__selected) {
  padding-right: 0.5rem;
  border-bottom: 1px solid #000;
}
.sorts__col .selected__sort.active:after {
  font-style: normal;
  content: " ✕";
}
.sorts__number {
  position: absolute;
  top: 0;
  left: 0;
}
.sorts__selected {
  position: absolute;
  top: 0;
  left: 2rem;
}
.sorts__name {
  margin-left: 3rem;
}
.sorts__location, .sorts__type, .sorts__procedure, .sorts__status, .sorts__year, .sorts__size {
  display: none;
}
@media (min-width: 896px) {
  .sorts__location, .sorts__type, .sorts__procedure, .sorts__status, .sorts__year, .sorts__size {
    display: flex;
  }
}
.sorts__location:after, .sorts__type:after {
  content: "";
}
.sorts__open-btn {
  display: inline-block;
  top: 1px;
  height: 0.875rem;
  width: 0.625rem;
  margin-left: 0.125rem;
}
.sorts__open-btn line {
  stroke-width: 1.05;
}

.selects {
  list-style: none;
  position: relative;
}
@media (max-width: 895px) {
  .selects {
    display: none;
  }
}
.selects__reset-btn {
  display: none;
  padding-top: 0.125rem;
  padding-bottom: 1px;
}
.selects__reset-btn.active {
  color: var(--fg-b);
  display: inline-block;
}
.selects__col {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.selects__col:not(.selects__number):not(.selects__selected) {
  padding-right: 0.5rem;
  border-bottom: 1px solid #000;
}
.selects__col:first-child {
  margin-left: 3rem;
}
.selects.empty {
  display: none;
}
.selects.active .selects__close-btn {
  display: block;
}
.selects:not(.active) .select__loadmore,
.selects:not(.active) .select__item:not(.active) {
  display: none;
}

.select__list {
  overflow: hidden;
  list-style: none;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.select__list .hidden {
  display: none;
}
.select__item, .select__loadmore {
  width: 100%;
}
.select__item button, .select__loadmore button {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  display: inline-block;
  padding-top: 0.125rem;
  padding-bottom: 1px;
  width: 100%;
}
.select__item.active, .select__loadmore.active {
  color: var(--fg-b);
}
.select__loadmore {
  margin-top: -2px;
}
.select__loadmore button {
  padding-top: 0.125rem;
}

.select__list.full .select__item,
.select__list.full .select-m__item,
.select__list.full .select__item:nth-of-type(1n + 5):not(.active),
.select__list.full .select-m__item:nth-of-type(1n + 5):not(.active),
.select-m__list.full .select__item,
.select-m__list.full .select-m__item,
.select-m__list.full .select__item:nth-of-type(1n + 5):not(.active),
.select-m__list.full .select-m__item:nth-of-type(1n + 5):not(.active) {
  display: block;
}
.select__list.full .select__loadmore,
.select-m__list.full .select__loadmore {
  display: none;
}

.select__item:nth-of-type(1n + 5):not(.active),
.select-m__item:nth-of-type(1n + 5):not(.active) {
  display: none;
}

.project__row {
  position: relative;
}
@media (hover: hover) {
  .project__row:hover .project__col:not(.project__number):not(.project__selected) {
    border-color: #000;
  }
}
.project__name {
  display: flex;
  align-items: center;
  margin-left: 3rem;
}
.project__number {
  position: absolute;
  top: 0;
  left: 0;
}
.project__selected {
  position: absolute;
  top: 0;
  left: 2rem;
}
.project__name-btn {
  display: inline;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  height: 100%;
}
.project__name-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.project__col {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  padding-top: 0.125rem;
}
.project__col:not(.project__number):not(.project__selected) {
  padding-right: 0.5rem;
  border-bottom: 1px solid #fff;
}
.project__detail {
  position: relative;
  display: none;
}
.project__close-btn {
  height: 2rem;
  width: 2rem;
  position: relative;
  position: absolute;
  top: 0;
  left: 0;
}
.project__close-btn .el-a,
.project__close-btn .el-b {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  border-top: 1px solid #000;
  transform-origin: center;
}
.project__close-btn .el-a {
  transform: translate(-50%, -50%) rotate(45deg);
}
.project__close-btn .el-b {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.project__text {
  display: none;
  padding-top: 0.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid;
  border-color: #000;
}
@media (min-width: 896px) {
  .project__body {
    padding-right: 2rem;
  }
}
.project__body, .project__images, .project__thumbs {
  margin-left: 3rem;
}
.project__infos {
  flex: 4;
  list-style: none;
}
@media (min-width: 896px) {
  .project__infos {
    padding-right: 1.25rem;
  }
}
.project__infos h3,
.project__infos sup {
  font-weight: normal;
  font-size: 75%;
  line-height: 100%;
  position: relative;
  top: -0.25em;
}
@media (min-width: 896px) {
  .project__mobile_infos {
    display: none;
  }
}
.project__text-btn {
  display: none;
}
.project__text-btn sup {
  font-style: normal;
  font-size: 75%;
  line-height: 100%;
  position: relative;
  top: -0.25em;
}
.project__images__close-btn {
  height: 2rem;
  width: 2rem;
  position: relative;
  z-index: 1002;
  display: none;
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
}
.project__images__close-btn .el-a,
.project__images__close-btn .el-b {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  border-top: 1px solid #000;
  transform-origin: center;
}
.project__images__close-btn .el-a {
  transform: translate(-50%, -50%) rotate(45deg);
}
.project__images__close-btn .el-b {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.project__images__close-btn:before, .project__images__close-btn:after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  width: 100%;
  border-top: 1px solid #fff;
  box-shadow: 0 1px #fff;
}
.project__images__close-btn:before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.project__images__close-btn:after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.project__video {
  border-bottom: 1px solid;
  border-color: #000;
  display: none;
}
.project__video.active {
  display: block;
}
.project__video video {
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: 0% 0%;
     object-position: 0% 0%;
  width: 100%;
  display: block;
  max-height: calc(100vw - 2.5rem - 3rem);
}
@media (min-width: 896px) {
  .project__video video {
    max-height: calc(100vh - 9rem - 1.625rem - 6px);
    max-height: calc(calc(var(--vh, 1vh) * 100) - 9rem - 1.625rem - 6px);
  }
}
.project__video video[poster] {
  height: 100%;
}
.project__image {
  border-bottom: 1px solid;
  border-color: #000;
  display: none;
}
.project__image.active {
  display: block;
}
.project__image img {
  display: block;
  max-height: calc(100vw - 2.5rem - 3rem);
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: 0% 0%;
     object-position: 0% 0%;
}
@media (min-width: 896px) {
  .project__image img {
    cursor: zoom-in;
    max-height: calc(100vh - 9rem - 1.625rem - 6px);
    max-height: calc(calc(var(--vh, 1vh) * 100) - 9rem - 1.625rem - 6px);
  }
}
.project__image.zoomed {
  position: relative;
  max-height: calc(100vw - 2.5rem - 3rem);
  overflow: hidden;
}
@media (min-width: 896px) {
  .project__image.zoomed {
    max-height: calc(100vh - 9rem - 1.625rem - 6px);
    max-height: calc(calc(var(--vh, 1vh) * 100) - 9rem - 1.625rem - 6px);
  }
}
.project__image.zoomed img {
  position: absolute;
  cursor: grab;
  max-width: unset;
  max-height: unset;
  -o-object-fit: initial;
     object-fit: initial;
  -o-object-position: initial;
     object-position: initial;
}
.project__thumbs {
  width: calc(100% - 3rem);
  overflow-x: auto;
  border-bottom: 1px solid;
  border-color: #000;
  height: 3rem;
  display: flex;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.project__thumbs::-webkit-scrollbar {
  display: none;
}
.project__thumb {
  height: 100%;
  flex-shrink: 0;
  border-left: 1px solid #fff;
  border-right: 1px solid #fff;
}
.project__thumb img {
  width: auto;
  height: 100%;
}
.project__thumb:not(:last-child) {
  margin-right: 0.75rem;
}
.project__thumb.active {
  border-left-color: #000;
  border-right-color: #000;
  background-color: white !important;
  pointer-events: none;
}
.project__thumb.plan {
  background-color: black;
}
.project__thumb.plan img {
  filter: grayscale(100%);
  opacity: 0.94;
}
.project.active .project__row {
  font-style: italic;
}
.project.active .project__text-btn {
  display: inline;
}
.project.active .project__detail, .project.active .project__close-btn {
  display: block;
}
.project.active .project__col {
  padding-left: 1px;
}
.project.active .project__col:not(.project__number):not(.project__selected) {
  border-bottom: 1px solid;
  border-color: #000;
}
.project:not(.active) .project__image {
  display: none;
}
.project.hidden, .project.not-selected-hidden {
  display: none;
}
.project__location, .project__type, .project__procedure, .project__status, .project__year, .project__size {
  display: none;
}
@media (min-width: 896px) {
  .project__location, .project__type, .project__procedure, .project__status, .project__year, .project__size {
    display: block;
  }
}

.project__row {
  position: relative;
}

.project__preview-image {
  pointer-events: none;
  z-index: 9;
  display: none;
  position: absolute;
  left: 3rem;
  width: calc(100% - 3rem);
}
.project__preview-image img {
  height: 50vh;
  height: calc(var(--vh, 1vh) * 50);
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: 0 0;
     object-position: 0 0;
}

.project__preview-image.active-top {
  display: block;
  bottom: calc(1.25rem + 0.125rem + 2px);
}
.project__preview-image.active-top img {
  -o-object-position: 0 100%;
     object-position: 0 100%;
}

.project__preview-image.active-bottom {
  display: block;
  top: 100%;
}

.wrapper--home .header__row {
  border-bottom: 1px solid #000;
}

.wrapper--home .main {
  display: grid;
  overflow-x: hidden;
  border-bottom: 1px solid #000;
}
@media (min-width: 896px) {
  .wrapper--home .main {
    gap: 1px;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: calc((100vw - 4rem) / 4);
  }
}
@media (min-width: 1280px) {
  .wrapper--home .main {
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: calc((100vw - 4rem) / 6);
  }
}

.wrapper--home .block {
  position: relative;
  aspect-ratio: 4/3;
  border-top: 1px solid #000;
}
@media (min-width: 896px) {
  .wrapper--home .block {
    aspect-ratio: auto;
    border-top: none;
    outline: 1px solid #000;
  }
}
.wrapper--home .block__header {
  display: grid;
  grid-template-columns: 3.5rem 1fr;
}
.wrapper--home .block__number {
  padding: 0.5rem 0 0.5rem 0.5rem;
}
.wrapper--home .block__title {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  padding: 0.5rem 1rem 0.5rem 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wrapper--home .block__open-btn {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.wrapper--home .block__figure {
  height: calc(100% - 2.25rem);
}
.wrapper--home .block__img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: top left;
     object-position: top left;
  padding-left: 3.5rem;
  padding-bottom: 1.5rem;
}
.wrapper--home .block__content {
  display: none;
  grid-template-columns: 3.5rem 1fr;
  height: calc(100% - 2.25rem);
}
.wrapper--home .block__description {
  overflow-y: auto;
  width: 100%;
  max-height: 100%;
  padding: 0.25rem 1rem 0.5rem 0;
}
.wrapper--home .block__close-btn {
  height: 2rem;
  width: 2rem;
  position: relative;
  margin-left: 0.5rem;
}
.wrapper--home .block__close-btn .el-a,
.wrapper--home .block__close-btn .el-b {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  border-top: 1px solid #000;
  transform-origin: center;
}
.wrapper--home .block__close-btn .el-a {
  transform: translate(-50%, -50%) rotate(45deg);
}
.wrapper--home .block__close-btn .el-b {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.wrapper--home .block.active .block__figure,
.wrapper--home .block.active .block__open-btn {
  display: none;
}
.wrapper--home .block.active .block__content {
  display: grid;
}
@media (min-width: 896px) {
  .wrapper--home .block--sm {
    grid-row: span 1/span 1;
    grid-column: span 1/span 1;
  }
}
@media (min-width: 896px) {
  .wrapper--home .block--md {
    grid-row: span 1/span 1;
    grid-column: span 2/span 2;
  }
}
@media (min-width: 896px) {
  .wrapper--home .block--lg {
    grid-row: span 2/span 2;
    grid-column: span 2/span 2;
  }
}
@media (min-width: 896px) {
  .wrapper--home .block--xl {
    grid-row: span 3/span 3;
    grid-column: span 2/span 2;
  }
}
.wrapper--home .block--left .block__number {
  padding-left: 0;
}
.wrapper--home .block--left .block__close-btn {
  margin-left: 0;
}
.wrapper--home .block--left .block__header,
.wrapper--home .block--left .block__content {
  grid-template-columns: 3rem 1fr;
}
.wrapper--home .block--left .block__img {
  padding-left: 3rem;
}

html {
  font-size: 16px;
}

body {
  overflow-x: hidden;
  color: #000;
  background-color: #fff;
  font-family: "Univers Next Pro", "Univers", sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.overflow-hidden {
  overflow-y: hidden !important;
}

.wrapper {
  padding: 0 0.75rem 0.75rem 0.75rem;
}
@media (min-width: 896px) {
  .wrapper {
    padding: 0 2rem 2rem 2rem;
  }
}

.main {
  margin-top: var(--top);
}

.debug-grid {
  display: none;
  z-index: 9999;
  pointer-events: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  grid-template-columns: repeat(4, 1fr);
  padding: 0 2rem;
}
.debug-grid__col {
  border-left: 4px dashed #00f;
  height: 100%;
  margin-left: -2px;
}
.debug-grid__col:first-child {
  position: absolute;
  left: 5rem;
  top: 0;
  bottom: 0;
}
.debug-grid__col:last-child {
  border-right: 4px dashed #00f;
  margin-right: -2px;
}

body.debug .debug-grid {
  display: grid;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmVlbi5jc3MiLCJ1dGlscy9fcmVzZXQuc2NzcyIsInV0aWxzL19mb250cy5zY3NzIiwidXRpbHMvX3ZhcmlhYmxlcy5zY3NzIiwidXRpbHMvX2luY2x1ZGUtbWVkaWEuc2NzcyIsInV0aWxzL19tZWRpYXMuc2NzcyIsImNvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwiY29tcG9uZW50cy9fcGFnZS5zY3NzIiwiY29tcG9uZW50cy9fZmlsdGVycy5zY3NzIiwiY29tcG9uZW50cy9fZmlsdGVycy1tLnNjc3MiLCJjb21wb25lbnRzL19zb3J0cy5zY3NzIiwiY29tcG9uZW50cy9fc2VsZWN0cy5zY3NzIiwiY29tcG9uZW50cy9fcHJvamVjdC5zY3NzIiwidGVtcGxhdGVzL19ob21lLnNjc3MiLCJzY3JlZW4uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7O3VDQUFBO0FBSUE7OztFQUdJLHNCQUFBO0FEQ0o7O0FDRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWlGSSxTQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLHdCQUFBO0FEQ0o7O0FDRUE7RUFDSSx5QkFBQTtFQUNBLGlCQUFBO0FEQ0o7O0FDRUE7OztFQUdJLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxzQkFBQTtBRENKOztBQ0VBOztFQUVJLFlBQUE7QURDSjs7QUNFQTs7OztFQUlJLFdBQUE7RUFDQSxhQUFBO0FEQ0o7O0FDRUE7RUFDSSxZQUFBO0FEQ0o7O0FDRUE7Ozs7Ozs7Ozs7OztFQVlJLGNBQUE7QURDSjs7QUNFQTs7RUFFSSxtQkFBQTtBRENKOztBQ0VBOzs7O0VBSUksZUFBQTtFQUNBLFNBQUE7RUFDQSx3QkFBQTtHQUNBLHNCQUFBO0FEQ0o7O0FDRUE7Ozs7RUFJSSxlQUFBO0dBQ0EsaUJBQUE7QURDSjs7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QUFDRjtBSWg1QlE7RVNwZEo7SUFFUSx1QkFBQTtJQUNBLDBCQUFBO0ViczJDVjtBQUNGO0FhbjJDUTtFQUNJLGVBQUE7QWJxMkNaO0FhbjJDUTtFQUNJLGNBQUE7QWJxMkNaO0FhbjJDUTs7RUFFSSwrQkFBQTtBYnEyQ1o7QWFuMkNRO0VBQ0ksa0JBQUE7QWJxMkNaOztBY2o5Q0E7RUFDSSxlQUFBO0FkbzlDSjs7QWMzOENBO0VBQ0ksa0JBQUE7RUFFQSxXWGZDO0VXZ0JELHNCWGZDO0VXZ0JELHNEWEVNO0VXRE4sa0NBQUE7RUFDQSxtQ0FBQTtFQUNBLGtDQUFBO0FkNjhDSjtBYzU4Q0k7RUFDSSw2QkFBQTtBZDg4Q1I7O0FjMThDQTtFQUNJLGtDQUFBO0FkNjhDSjtBSXg3QlE7RVV0aEJSO0lBR1EseUJBQUE7RWQrOENOO0FBQ0Y7O0FjNThDQTtFQUNJLHNCQUFBO0FkKzhDSjs7QWM1OENBO0VBQ0ksYUFBQTtFQUNBLGFBQUE7RUFDQSxvQkFBQTtFQUNBLGVBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EscUNBQUE7RUFDQSxlQUFBO0FkKzhDSjtBYzk4Q0k7RUFDSSw0QkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtBZGc5Q1I7QWM5OENJO0VBQ0ksa0JBQUE7RUFDQSxVQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7QWRnOUNSO0FjOThDSTtFQUNJLDZCQUFBO0VBQ0Esa0JBQUE7QWRnOUNSOztBYzU4Q0E7RUFDSSxhQUFBO0FkKzhDSiIsImZpbGUiOiJzY3JlZW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgcmVzZXRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaHRtbCxcbmJvZHksXG5kaXYsXG5zcGFuLFxuYXBwbGV0LFxub2JqZWN0LFxuaWZyYW1lLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucCxcbmJsb2NrcXVvdGUsXG5wcmUsXG5hLFxuYWJicixcbmFjcm9ueW0sXG5hZGRyZXNzLFxuYmlnLFxuY2l0ZSxcbmNvZGUsXG5kZWwsXG5kZm4sXG5lbSxcbmltZyxcbmlucyxcbmtiZCxcbnEsXG5zLFxuc2FtcCxcbnNtYWxsLFxuc3RyaWtlLFxuc3Ryb25nLFxuc3ViLFxuc3VwLFxudHQsXG52YXIsXG5iLFxudSxcbmksXG5jZW50ZXIsXG5kbCxcbmR0LFxuZGQsXG5vbCxcbnVsLFxubGksXG5maWVsZHNldCxcbmZvcm0sXG5sYWJlbCxcbmxlZ2VuZCxcbnRhYmxlLFxuY2FwdGlvbixcbnRib2R5LFxudGZvb3QsXG50aGVhZCxcbnRyLFxudGgsXG50ZCxcbmFydGljbGUsXG5hc2lkZSxcbmNhbnZhcyxcbmRldGFpbHMsXG5lbWJlZCxcbmZpZ3VyZSxcbmZpZ2NhcHRpb24sXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tZW51LFxubmF2LFxub3V0cHV0LFxucnVieSxcbnNlY3Rpb24sXG5zdW1tYXJ5LFxudGltZSxcbm1hcmssXG5hdWRpbyxcbnZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG5jYXB0aW9uLFxudGgsXG50ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbnEsXG5ibG9ja3F1b3RlIHtcbiAgcXVvdGVzOiBub25lO1xufVxuXG5xOmJlZm9yZSxcbnE6YWZ0ZXIsXG5ibG9ja3F1b3RlOmJlZm9yZSxcbmJsb2NrcXVvdGU6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBjb250ZW50OiBub25lO1xufVxuXG5hIGltZyB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgKnZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmJ1dHRvbixcbmlucHV0W3R5cGU9YnV0dG9uXSxcbmlucHV0W3R5cGU9cmVzZXRdLFxuaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAqb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLyogcmVzZXQgc2FmYXJpIGlucHV0IHN0eWxlcyAqL1xuaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSkge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuYnV0dG9uIHtcbiAgYWxsOiB1bnNldDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlVuaXZlcnMgTmV4dCBQcm9cIjtcbiAgc3JjOiB1cmwoXCJmb250cy91bml2ZXJzLW5leHQtcHJvLXJlZ3VsYXIudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiVW5pdmVycyBOZXh0IFByb1wiO1xuICBzcmM6IHVybChcImZvbnRzL3VuaXZlcnMtbmV4dC1wcm8taXRhbGljLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNvcnJlc3BvbmRhbmNlXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvY29ycmVzcG9uZGFuY2Uub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuOnJvb3Qge1xuICAtLWZnLWI6ICNmZjAwMDA7XG4gIC0tdmg6IDEwMHZoO1xuICAtLXRvcDogMy4yNXJlbTtcbn1cblxuLnRzLCBib2R5IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbn1cblxuLnRzLWl0YWxpYywgLmJvZHkgaSxcbi5ib2R5IGVtIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4udHMtbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLnRzLWxpbms6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4udHMtYm9keS1saW5rLCAuYm9keSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAudHMtYm9keS1saW5rOmhvdmVyLCAuYm9keSBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cblxuLmJvZHkgaDEsXG4uYm9keSBoMixcbi5ib2R5IGgzLFxuLmJvZHkgaDQsXG4uYm9keSBoNSxcbi5ib2R5IGg2IHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTAuMjVlbTtcbn1cbi5ib2R5IGgxOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJvZHkgaDI6bm90KDpmaXJzdC1jaGlsZCksXG4uYm9keSBoMzpub3QoOmZpcnN0LWNoaWxkKSxcbi5ib2R5IGg0Om5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJvZHkgaDU6bm90KDpmaXJzdC1jaGlsZCksXG4uYm9keSBoNjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG59XG4uYm9keSBoMTpmaXJzdC1jaGlsZCxcbi5ib2R5IGgyOmZpcnN0LWNoaWxkLFxuLmJvZHkgaDM6Zmlyc3QtY2hpbGQsXG4uYm9keSBoNDpmaXJzdC1jaGlsZCxcbi5ib2R5IGg1OmZpcnN0LWNoaWxkLFxuLmJvZHkgaDY6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiBjYWxjKDAuNXJlbS8gMik7XG59XG4uYm9keSBoMTpub3QoOmxhc3QtY2hpbGQpLFxuLmJvZHkgaDI6bm90KDpsYXN0LWNoaWxkKSxcbi5ib2R5IGgzOm5vdCg6bGFzdC1jaGlsZCksXG4uYm9keSBoNDpub3QoOmxhc3QtY2hpbGQpLFxuLmJvZHkgaDU6bm90KDpsYXN0LWNoaWxkKSxcbi5ib2R5IGg2Om5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKDAuNXJlbS8gMik7XG59XG4uYm9keSBocjpub3QoOmxhc3QtY2hpbGQpLFxuLmJvZHkgcDpub3QoOmxhc3QtY2hpbGQpLFxuLmJvZHkgdWw6bm90KDpsYXN0LWNoaWxkKSxcbi5ib2R5IG9sOm5vdCg6bGFzdC1jaGlsZCksXG4uYm9keSBwcmU6bm90KDpsYXN0LWNoaWxkKSxcbi5ib2R5IGJsb2NrcXVvdGU6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG4uYm9keSBmaWd1cmU6bm90KDpsYXN0LWNoaWxkKSxcbi5ib2R5IC5lbWJlZC1jb250YWluZXI6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG4uYm9keSBwIHtcbiAgbWF4LXdpZHRoOiA3NWNoO1xufVxuLmJvZHkgdWwsXG4uYm9keSBvbCB7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbn1cbi5ib2R5IGhyIHtcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbi5ib2R5IGZpZ2NhcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbi5ib2R5LS1pbmRlbnQgcDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5ib2R5LS1pbmRlbnQgcCArIHAge1xuICB0ZXh0LWluZGVudDogMmNoO1xufVxuXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMC4yNWVtO1xufVxuXG4ucHJvamVjdF9fcHJldmlldy1pbWFnZSwgLnByb2plY3RfX3JvdywgLnNlbGVjdHMsIC5zb3J0cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLnByb2plY3RfX3ByZXZpZXctaW1hZ2UsIC5wcm9qZWN0X19yb3csIC5zZWxlY3RzLCAuc29ydHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogM2ZyIDEuNWZyIDEuNWZyIDJmciAxLjVmciAxLjVmciAxZnI7XG4gIH1cbn1cblxuLnByb2plY3RfX3RleHQuYWN0aXZlLCAucGFnZV9faW5uZXItLWR1byB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICByb3ctZ2FwOiAxLjI1cmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC5wcm9qZWN0X190ZXh0LmFjdGl2ZSwgLnBhZ2VfX2lubmVyLS1kdW8ge1xuICAgIHJvdy1nYXA6IG5vbmU7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxNmZyIDhmcjtcbiAgfVxufVxuXG4uaGVhZGVyX19yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgcm93LWdhcDogMC43NXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAuaGVhZGVyX19yb3cge1xuICAgIHJvdy1nYXA6IG5vbmU7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0ZnIgMTJmcjtcbiAgfVxufVxuXG4ucGFnZV9faW5uZXItLXRyaW8ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgcm93LWdhcDogMS4yNXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAucGFnZV9faW5uZXItLXRyaW8ge1xuICAgIHJvdy1nYXA6IDA7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA2ZnIgMy41ZnIgMi41ZnI7XG4gIH1cbn1cblxuLnBhZ2VfX2lubmVyLS1xdWF0cm8ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgcm93LWdhcDogMS4yNXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAucGFnZV9faW5uZXItLXF1YXRybyB7XG4gICAgcm93LWdhcDogbm9uZTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDZmciA0ZnIgM2ZyIDNmcjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAucGFnZV9faW5uZXItLXF1YXRybyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4ZnIgNGZyIDNmciAzZnI7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNDQwcHgpIHtcbiAgLnBhZ2VfX2lubmVyLS1xdWF0cm8ge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNmZyIDRmciA0ZnIgNGZyO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIG1lZGlhc1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmltZyxcbnZpZGVvLFxub2JqZWN0IHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5pbWcuaW1hZ2UtbGF6eSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuaW1nLmltYWdlLWxhenk6bm90KC5sYXp5bG9hZGVkKSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IDAuMjVzIG9wYWNpdHk7XG59XG5pbWcuaW1hZ2UtbGF6eS5sYXp5bG9hZGVkIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogMC4yNXMgb3BhY2l0eTtcbn1cblxuLmVtYmVkLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5lbWJlZC1jb250YWluZXIgaWZyYW1lLFxuLmVtYmVkLWNvbnRhaW5lciBvYmplY3QsXG4uZW1iZWQtY29udGFpbmVyIGVtYmVkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nOiAwIDAuNzVyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLmhlYWRlciB7XG4gICAgcGFkZGluZzogMCAycmVtO1xuICB9XG59XG4uaGVhZGVyX19yb3cge1xuICBnYXA6IDAuNzVyZW07XG4gIHBhZGRpbmctdG9wOiAxLjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAuaGVhZGVyX19yb3cge1xuICAgIGdhcDogMDtcbiAgfVxufVxuLmhlYWRlcl9fY29sLS1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG59XG4uaGVhZGVyX19jb2wtLW1lbnUuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLmhlYWRlcl9fY29sLS1tZW51IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogM2ZyIDMuNWZyIDIuNWZyO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogODk1cHgpIHtcbiAgLmhlYWRlcl9fY29sLS1tZW51ID4gKjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICB9XG59XG4uaGVhZGVyX19jb2wtLXRvcGJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG59XG4uaGVhZGVyX190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNvcnJlc3BvbmRhbmNlXCIsIFwiVW5pdmVycyBOZXh0IFByb1wiLCBcIlVuaXZlcnNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uaGVhZGVyX190aXRsZSA+IGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uaGVhZGVyX19vcGVuLWJ0biB7XG4gIGhlaWdodDogMnJlbTtcbiAgd2lkdGg6IDJyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMC41cmVtO1xuICByaWdodDogMDtcbn1cbi5oZWFkZXJfX29wZW4tYnRuIC5lbC1hLFxuLmhlYWRlcl9fb3Blbi1idG4gLmVsLWIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgdHJhbnNpdGlvbjogMC4xcztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xufVxuLmhlYWRlcl9fb3Blbi1idG4gLmVsLWEge1xuICB0b3A6IDM3LjUlO1xufVxuLmhlYWRlcl9fb3Blbi1idG4gLmVsLWIge1xuICB0b3A6IDYyLjUlO1xufVxuLmhlYWRlcl9fb3Blbi1idG4uYWN0aXZlIC5lbC1hIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cbi5oZWFkZXJfX29wZW4tYnRuLmFjdGl2ZSAuZWwtYiB7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC5oZWFkZXJfX29wZW4tYnRuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uaGVhZGVyX19vcGVuLWJ0bi5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAuaGVhZGVyX19vcGVuLWJ0bi5hY3RpdmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5oZWFkZXIgLmZpbHRlcnNfX29wZW4tYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC5oZWFkZXIgLmZpbHRlcnNfX29wZW4tYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG4uaGVhZGVyIC5maWx0ZXJzX19vcGVuLWJ0biAuZmlsdGVyc19fcmVzZXQtYnRuIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgY29sb3I6IHZhcigtLWZnLWIpO1xufVxuLmhlYWRlciAuZmlsdGVyc19fb3Blbi1idG4gLnNvcnRzLW1fX29wZW4tYnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMXJlbTtcbn1cbi5oZWFkZXIgLmZpbHRlcnNfX29wZW4tYnRuLmFjdGl2ZSAuZmlsdGVyc19fcmVzZXQtYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xcmVtO1xufVxuLmhlYWRlciAuZmlsdGVyc19fb3Blbi1idG4uYWN0aXZlIC5zb3J0cy1tX19vcGVuLWJ0biB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uaGVhZGVyIC5maWx0ZXJzLWJ0bi0tbGFiZWwge1xuICBjb2xvcjogdmFyKC0tZmctYik7XG59XG5cbi5uYXZfX2xpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMjVyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLm5hdl9fbGlzdCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IDAuNXJlbTtcbiAgfVxufVxuLm5hdl9faXRlbSA+IGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubmF2X19pdGVtID4gYS5hY3RpdmUge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5zZWFyY2gge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC5zZWFyY2gge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gIH1cbn1cbi5zZWFyY2hfX3Jlc2V0LWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTFyZW07XG4gIHRvcDogMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zZWFyY2hfX3Jlc2V0LWJ0bi5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5zZWFyY2hfX2lucHV0IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICMwMDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG59XG4uc2VhcmNoX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogIzAwMDtcbn1cbi5zZWFyY2hfX2lucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDA7XG59XG4uc2VhcmNoX19pbnB1dDpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAwO1xufVxuXG4ucGFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwO1xufVxuLnBhZ2UuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucGFnZV9fY2xvc2UtYnRuIHtcbiAgaGVpZ2h0OiAycmVtO1xuICB3aWR0aDogMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0zcmVtO1xuICB0b3A6IDA7XG59XG4ucGFnZV9fY2xvc2UtYnRuIC5lbC1hLFxuLnBhZ2VfX2Nsb3NlLWJ0biAuZWwtYiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG4ucGFnZV9fY2xvc2UtYnRuIC5lbC1hIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbn1cbi5wYWdlX19jbG9zZS1idG4gLmVsLWIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbn1cbi5wYWdlX19pbm5lciB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtO1xuICBtYXJnaW4tbGVmdDogLTNyZW07XG59XG4ucGFnZV9fdGFicyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDA7XG59XG4ucGFnZV9fdGFiIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5wYWdlX190YWIuYWN0aXZlIGJ1dHRvbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5wYWdlX190YWI6bm90KDpsYXN0LWNoaWxkKSBidXR0b246YWZ0ZXIge1xuICBjb250ZW50OiBcIizCoFwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4ucGFnZV9fdGFiLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC5wYWdlX190YWItY29udGVudCB7XG4gICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgfVxufVxuLnBhZ2VfX3RhYi1jb250ZW50LmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC5wYWdlX19ib2R5IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICB9XG59XG4ucGFnZV9fY29sIHtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLnBhZ2VfX2NvbC5zbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cbi5wYWdlX19jb2wuc20gLmJvZHkgaDMge1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmZpbHRlcnMge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB6LWluZGV4OiAxMDtcbiAgdG9wOiB2YXIoLS10b3ApO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4uaXNfZmlsdGVyc19fb3BlbiAuZmlsdGVycyB7XG4gIHotaW5kZXg6IDk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAuZmlsdGVycy1tIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uZmlsdGVycy1tX19vcGVuLWJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uZmlsdGVycy1tX19vcGVuLWJ0biAuZmlsdGVyc19fcmVzZXQtYnRuIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgY29sb3I6IHZhcigtLWZnLWIpO1xufVxuLmZpbHRlcnMtbV9fb3Blbi1idG4gLnNvcnRzLW1fX29wZW4tYnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMXJlbTtcbiAgc3Ryb2tlOiB2YXIoLS1mZy1iKTtcbn1cbi5maWx0ZXJzLW1fX29wZW4tYnRuLmFjdGl2ZSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygwLjI1cmVtIC0gMXB4KTtcbn1cbi5maWx0ZXJzLW1fX29wZW4tYnRuLmFjdGl2ZSAuZmlsdGVyc19fcmVzZXQtYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xcmVtO1xufVxuLmZpbHRlcnMtbV9fb3Blbi1idG4uYWN0aXZlIC5zb3J0cy1tX19vcGVuLWJ0biB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zb3J0cy1tIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDA7XG4gIG1heC1oZWlnaHQ6IDY2dmg7XG4gIG1heC1oZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiA2Nik7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4uc29ydHMtbS5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5zb3J0cy1tX19jb2wge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcGFkZGluZy10b3A6IDAuMTI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG4uc29ydHMtbV9fY29sOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7XG59XG4uc29ydHMtbV9fdGV4dCB7XG4gIHdpZHRoOiAxMmNoO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5zb3J0cy1tX190ZXh0IHtcbiAgICB3aWR0aDogMTVjaDtcbiAgfVxufVxuLnNvcnRzLW1fX29wZW4tYnRuIHtcbiAgdG9wOiAxcHg7XG4gIGhlaWdodDogMC44NzVyZW07XG4gIHdpZHRoOiAwLjYyNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNvcnRzLW1fX29wZW4tYnRuIGxpbmUge1xuICBzdHJva2U6IHZhcigtLWZnLWIpO1xuICBzdHJva2Utd2lkdGg6IDEuMDU7XG59XG5cbi5zZWxlY3RzLW1fX29wZW4tYnRuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uc2VsZWN0cy1tX19sb2ctcm93IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbiAgZGlzcGxheTogbm9uZTtcbiAgY29sb3I6IHZhcigtLWZnLWIpO1xufVxuLnNlbGVjdHMtbV9fbG9nLXJvdy5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5zZWxlY3RzLW1fX2xvZy1yb3cuZW1wdHksIC5zZWxlY3RzLW1fX2xvZy1yb3cuYWN0aXZlLmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAuc2VsZWN0cy1tX19sb2ctcm93IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uc2VsZWN0cy1tX19sb2ctdGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5zZWxlY3RzLW1fX2Nsb3NlLWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxcmVtO1xuICB3aWR0aDogMXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBub25lO1xufVxuLnNlbGVjdHMtbV9fY2xvc2UtYnRuIGxpbmUge1xuICBzdHJva2U6ICMwMDA7XG4gIHN0cm9rZS13aWR0aDogMS4wNTtcbn1cblxuLnNlbGVjdC1tX19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDE7XG59XG4uc2VsZWN0LW1fX2l0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnNlbGVjdC1tX19pdGVtLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1mZy1iKTtcbn1cblxuLnNlYXJjaC1tX19sb2ctcm93IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zZWFyY2gtbV9fbG9nLXJvdy5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5zZWFyY2gtbV9fbG9nLXJvdy5lbXB0eSwgLnNlYXJjaC1tX19sb2ctcm93LmFjdGl2ZS5lbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLnNlYXJjaC1tX19sb2ctcm93IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uc2VhcmNoLW1fX2xvZy10ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uc29ydHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLnNvcnRzX19jb2wge1xuICBwYWRkaW5nLXRvcDogMC4xMjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4uc29ydHNfX2NvbDpub3QoLnNvcnRzX19udW1iZXIpOm5vdCguc29ydHNfX3NlbGVjdGVkKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDA7XG59XG4uc29ydHNfX2NvbCAuc2VsZWN0ZWRfX3NvcnQuYWN0aXZlOmFmdGVyIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBjb250ZW50OiBcIsKg4pyVXCI7XG59XG4uc29ydHNfX251bWJlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuLnNvcnRzX19zZWxlY3RlZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAycmVtO1xufVxuLnNvcnRzX19uYW1lIHtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG59XG4uc29ydHNfX2xvY2F0aW9uLCAuc29ydHNfX3R5cGUsIC5zb3J0c19fcHJvY2VkdXJlLCAuc29ydHNfX3N0YXR1cywgLnNvcnRzX195ZWFyLCAuc29ydHNfX3NpemUge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC5zb3J0c19fbG9jYXRpb24sIC5zb3J0c19fdHlwZSwgLnNvcnRzX19wcm9jZWR1cmUsIC5zb3J0c19fc3RhdHVzLCAuc29ydHNfX3llYXIsIC5zb3J0c19fc2l6ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuLnNvcnRzX19sb2NhdGlvbjphZnRlciwgLnNvcnRzX190eXBlOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbn1cbi5zb3J0c19fb3Blbi1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRvcDogMXB4O1xuICBoZWlnaHQ6IDAuODc1cmVtO1xuICB3aWR0aDogMC42MjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjEyNXJlbTtcbn1cbi5zb3J0c19fb3Blbi1idG4gbGluZSB7XG4gIHN0cm9rZS13aWR0aDogMS4wNTtcbn1cblxuLnNlbGVjdHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogODk1cHgpIHtcbiAgLnNlbGVjdHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5zZWxlY3RzX19yZXNldC1idG4ge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nLXRvcDogMC4xMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcHg7XG59XG4uc2VsZWN0c19fcmVzZXQtYnRuLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1mZy1iKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnNlbGVjdHNfX2NvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5zZWxlY3RzX19jb2w6bm90KC5zZWxlY3RzX19udW1iZXIpOm5vdCguc2VsZWN0c19fc2VsZWN0ZWQpIHtcbiAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcbn1cbi5zZWxlY3RzX19jb2w6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogM3JlbTtcbn1cbi5zZWxlY3RzLmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zZWxlY3RzLmFjdGl2ZSAuc2VsZWN0c19fY2xvc2UtYnRuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uc2VsZWN0czpub3QoLmFjdGl2ZSkgLnNlbGVjdF9fbG9hZG1vcmUsXG4uc2VsZWN0czpub3QoLmFjdGl2ZSkgLnNlbGVjdF9faXRlbTpub3QoLmFjdGl2ZSkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2VsZWN0X19saXN0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uc2VsZWN0X19saXN0IC5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnNlbGVjdF9faXRlbSwgLnNlbGVjdF9fbG9hZG1vcmUge1xuICB3aWR0aDogMTAwJTtcbn1cbi5zZWxlY3RfX2l0ZW0gYnV0dG9uLCAuc2VsZWN0X19sb2FkbW9yZSBidXR0b24ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLXRvcDogMC4xMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnNlbGVjdF9faXRlbS5hY3RpdmUsIC5zZWxlY3RfX2xvYWRtb3JlLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1mZy1iKTtcbn1cbi5zZWxlY3RfX2xvYWRtb3JlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5zZWxlY3RfX2xvYWRtb3JlIGJ1dHRvbiB7XG4gIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbn1cblxuLnNlbGVjdF9fbGlzdC5mdWxsIC5zZWxlY3RfX2l0ZW0sXG4uc2VsZWN0X19saXN0LmZ1bGwgLnNlbGVjdC1tX19pdGVtLFxuLnNlbGVjdF9fbGlzdC5mdWxsIC5zZWxlY3RfX2l0ZW06bnRoLW9mLXR5cGUoMW4gKyA1KTpub3QoLmFjdGl2ZSksXG4uc2VsZWN0X19saXN0LmZ1bGwgLnNlbGVjdC1tX19pdGVtOm50aC1vZi10eXBlKDFuICsgNSk6bm90KC5hY3RpdmUpLFxuLnNlbGVjdC1tX19saXN0LmZ1bGwgLnNlbGVjdF9faXRlbSxcbi5zZWxlY3QtbV9fbGlzdC5mdWxsIC5zZWxlY3QtbV9faXRlbSxcbi5zZWxlY3QtbV9fbGlzdC5mdWxsIC5zZWxlY3RfX2l0ZW06bnRoLW9mLXR5cGUoMW4gKyA1KTpub3QoLmFjdGl2ZSksXG4uc2VsZWN0LW1fX2xpc3QuZnVsbCAuc2VsZWN0LW1fX2l0ZW06bnRoLW9mLXR5cGUoMW4gKyA1KTpub3QoLmFjdGl2ZSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5zZWxlY3RfX2xpc3QuZnVsbCAuc2VsZWN0X19sb2FkbW9yZSxcbi5zZWxlY3QtbV9fbGlzdC5mdWxsIC5zZWxlY3RfX2xvYWRtb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnNlbGVjdF9faXRlbTpudGgtb2YtdHlwZSgxbiArIDUpOm5vdCguYWN0aXZlKSxcbi5zZWxlY3QtbV9faXRlbTpudGgtb2YtdHlwZSgxbiArIDUpOm5vdCguYWN0aXZlKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wcm9qZWN0X19yb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAucHJvamVjdF9fcm93OmhvdmVyIC5wcm9qZWN0X19jb2w6bm90KC5wcm9qZWN0X19udW1iZXIpOm5vdCgucHJvamVjdF9fc2VsZWN0ZWQpIHtcbiAgICBib3JkZXItY29sb3I6ICMwMDA7XG4gIH1cbn1cbi5wcm9qZWN0X19uYW1lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG59XG4ucHJvamVjdF9fbnVtYmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG4ucHJvamVjdF9fc2VsZWN0ZWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMnJlbTtcbn1cbi5wcm9qZWN0X19uYW1lLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5wcm9qZWN0X19uYW1lLWJ0bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG59XG4ucHJvamVjdF9fY29sIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbn1cbi5wcm9qZWN0X19jb2w6bm90KC5wcm9qZWN0X19udW1iZXIpOm5vdCgucHJvamVjdF9fc2VsZWN0ZWQpIHtcbiAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjtcbn1cbi5wcm9qZWN0X19kZXRhaWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucHJvamVjdF9fY2xvc2UtYnRuIHtcbiAgaGVpZ2h0OiAycmVtO1xuICB3aWR0aDogMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cbi5wcm9qZWN0X19jbG9zZS1idG4gLmVsLWEsXG4ucHJvamVjdF9fY2xvc2UtYnRuIC5lbC1iIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cbi5wcm9qZWN0X19jbG9zZS1idG4gLmVsLWEge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoNDVkZWcpO1xufVxuLnByb2plY3RfX2Nsb3NlLWJ0biAuZWwtYiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xufVxuLnByb2plY3RfX3RleHQge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICMwMDA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLnByb2plY3RfX2JvZHkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gIH1cbn1cbi5wcm9qZWN0X19ib2R5LCAucHJvamVjdF9faW1hZ2VzLCAucHJvamVjdF9fdGh1bWJzIHtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG59XG4ucHJvamVjdF9faW5mb3Mge1xuICBmbGV4OiA0O1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC5wcm9qZWN0X19pbmZvcyB7XG4gICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgfVxufVxuLnByb2plY3RfX2luZm9zIGgzLFxuLnByb2plY3RfX2luZm9zIHN1cCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0wLjI1ZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLnByb2plY3RfX21vYmlsZV9pbmZvcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnByb2plY3RfX3RleHQtYnRuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wcm9qZWN0X190ZXh0LWJ0biBzdXAge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0wLjI1ZW07XG59XG4ucHJvamVjdF9faW1hZ2VzX19jbG9zZS1idG4ge1xuICBoZWlnaHQ6IDJyZW07XG4gIHdpZHRoOiAycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwMDI7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjc1cmVtO1xuICByaWdodDogMC43NXJlbTtcbn1cbi5wcm9qZWN0X19pbWFnZXNfX2Nsb3NlLWJ0biAuZWwtYSxcbi5wcm9qZWN0X19pbWFnZXNfX2Nsb3NlLWJ0biAuZWwtYiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG4ucHJvamVjdF9faW1hZ2VzX19jbG9zZS1idG4gLmVsLWEge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoNDVkZWcpO1xufVxuLnByb2plY3RfX2ltYWdlc19fY2xvc2UtYnRuIC5lbC1iIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC00NWRlZyk7XG59XG4ucHJvamVjdF9faW1hZ2VzX19jbG9zZS1idG46YmVmb3JlLCAucHJvamVjdF9faW1hZ2VzX19jbG9zZS1idG46YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMXB4ICNmZmY7XG59XG4ucHJvamVjdF9faW1hZ2VzX19jbG9zZS1idG46YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbn1cbi5wcm9qZWN0X19pbWFnZXNfX2Nsb3NlLWJ0bjphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xufVxuLnByb2plY3RfX3ZpZGVvIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICMwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucHJvamVjdF9fdmlkZW8uYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucHJvamVjdF9fdmlkZW8gdmlkZW8ge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG9iamVjdC1wb3NpdGlvbjogMCUgMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2dyAtIDIuNXJlbSAtIDNyZW0pO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC5wcm9qZWN0X192aWRlbyB2aWRlbyB7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDlyZW0gLSAxLjYyNXJlbSAtIDZweCk7XG4gICAgbWF4LWhlaWdodDogY2FsYyhjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKSAtIDlyZW0gLSAxLjYyNXJlbSAtIDZweCk7XG4gIH1cbn1cbi5wcm9qZWN0X192aWRlbyB2aWRlb1twb3N0ZXJdIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnByb2plY3RfX2ltYWdlIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICMwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucHJvamVjdF9faW1hZ2UuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucHJvamVjdF9faW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdncgLSAyLjVyZW0gLSAzcmVtKTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgb2JqZWN0LXBvc2l0aW9uOiAwJSAwJTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAucHJvamVjdF9faW1hZ2UgaW1nIHtcbiAgICBjdXJzb3I6IHpvb20taW47XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDlyZW0gLSAxLjYyNXJlbSAtIDZweCk7XG4gICAgbWF4LWhlaWdodDogY2FsYyhjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKSAtIDlyZW0gLSAxLjYyNXJlbSAtIDZweCk7XG4gIH1cbn1cbi5wcm9qZWN0X19pbWFnZS56b29tZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdncgLSAyLjVyZW0gLSAzcmVtKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAucHJvamVjdF9faW1hZ2Uuem9vbWVkIHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gOXJlbSAtIDEuNjI1cmVtIC0gNnB4KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApIC0gOXJlbSAtIDEuNjI1cmVtIC0gNnB4KTtcbiAgfVxufVxuLnByb2plY3RfX2ltYWdlLnpvb21lZCBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogZ3JhYjtcbiAgbWF4LXdpZHRoOiB1bnNldDtcbiAgbWF4LWhlaWdodDogdW5zZXQ7XG4gIG9iamVjdC1maXQ6IGluaXRpYWw7XG4gIG9iamVjdC1wb3NpdGlvbjogaW5pdGlhbDtcbn1cbi5wcm9qZWN0X190aHVtYnMge1xuICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICBoZWlnaHQ6IDNyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xufVxuLnByb2plY3RfX3RodW1iczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnByb2plY3RfX3RodW1iIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZmZmO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZmZmO1xufVxuLnByb2plY3RfX3RodW1iIGltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucHJvamVjdF9fdGh1bWI6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbn1cbi5wcm9qZWN0X190aHVtYi5hY3RpdmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5wcm9qZWN0X190aHVtYi5wbGFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4ucHJvamVjdF9fdGh1bWIucGxhbiBpbWcge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgb3BhY2l0eTogMC45NDtcbn1cbi5wcm9qZWN0LmFjdGl2ZSAucHJvamVjdF9fcm93IHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLnByb2plY3QuYWN0aXZlIC5wcm9qZWN0X190ZXh0LWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5wcm9qZWN0LmFjdGl2ZSAucHJvamVjdF9fZGV0YWlsLCAucHJvamVjdC5hY3RpdmUgLnByb2plY3RfX2Nsb3NlLWJ0biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnByb2plY3QuYWN0aXZlIC5wcm9qZWN0X19jb2wge1xuICBwYWRkaW5nLWxlZnQ6IDFweDtcbn1cbi5wcm9qZWN0LmFjdGl2ZSAucHJvamVjdF9fY29sOm5vdCgucHJvamVjdF9fbnVtYmVyKTpub3QoLnByb2plY3RfX3NlbGVjdGVkKSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xufVxuLnByb2plY3Q6bm90KC5hY3RpdmUpIC5wcm9qZWN0X19pbWFnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucHJvamVjdC5oaWRkZW4sIC5wcm9qZWN0Lm5vdC1zZWxlY3RlZC1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnByb2plY3RfX2xvY2F0aW9uLCAucHJvamVjdF9fdHlwZSwgLnByb2plY3RfX3Byb2NlZHVyZSwgLnByb2plY3RfX3N0YXR1cywgLnByb2plY3RfX3llYXIsIC5wcm9qZWN0X19zaXplIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAucHJvamVjdF9fbG9jYXRpb24sIC5wcm9qZWN0X190eXBlLCAucHJvamVjdF9fcHJvY2VkdXJlLCAucHJvamVjdF9fc3RhdHVzLCAucHJvamVjdF9feWVhciwgLnByb2plY3RfX3NpemUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5wcm9qZWN0X19yb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wcm9qZWN0X19wcmV2aWV3LWltYWdlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDk7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogM3JlbTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pO1xufVxuLnByb2plY3RfX3ByZXZpZXctaW1hZ2UgaW1nIHtcbiAgaGVpZ2h0OiA1MHZoO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiA1MCk7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG9iamVjdC1wb3NpdGlvbjogMCAwO1xufVxuXG4ucHJvamVjdF9fcHJldmlldy1pbWFnZS5hY3RpdmUtdG9wIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvdHRvbTogY2FsYygxLjI1cmVtICsgMC4xMjVyZW0gKyAycHgpO1xufVxuLnByb2plY3RfX3ByZXZpZXctaW1hZ2UuYWN0aXZlLXRvcCBpbWcge1xuICBvYmplY3QtcG9zaXRpb246IDAgMTAwJTtcbn1cblxuLnByb2plY3RfX3ByZXZpZXctaW1hZ2UuYWN0aXZlLWJvdHRvbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDEwMCU7XG59XG5cbi53cmFwcGVyLS1ob21lIC5oZWFkZXJfX3JvdyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwO1xufVxuXG4ud3JhcHBlci0taG9tZSAubWFpbiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLndyYXBwZXItLWhvbWUgLm1haW4ge1xuICAgIGdhcDogMXB4O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ3JpZC1hdXRvLXJvd3M6IGNhbGMoKDEwMHZ3IC0gNHJlbSkgLyA0KTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAud3JhcHBlci0taG9tZSAubWFpbiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICBncmlkLWF1dG8tcm93czogY2FsYygoMTAwdncgLSA0cmVtKSAvIDYpO1xuICB9XG59XG5cbi53cmFwcGVyLS1ob21lIC5ibG9jayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYXNwZWN0LXJhdGlvOiA0LzM7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC53cmFwcGVyLS1ob21lIC5ibG9jayB7XG4gICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkICMwMDA7XG4gIH1cbn1cbi53cmFwcGVyLS1ob21lIC5ibG9ja19faGVhZGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzLjVyZW0gMWZyO1xufVxuLndyYXBwZXItLWhvbWUgLmJsb2NrX19udW1iZXIge1xuICBwYWRkaW5nOiAwLjVyZW0gMCAwLjVyZW0gMC41cmVtO1xufVxuLndyYXBwZXItLWhvbWUgLmJsb2NrX190aXRsZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ud3JhcHBlci0taG9tZSAuYmxvY2tfX29wZW4tYnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG59XG4ud3JhcHBlci0taG9tZSAuYmxvY2tfX2ZpZ3VyZSB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMi4yNXJlbSk7XG59XG4ud3JhcHBlci0taG9tZSAuYmxvY2tfX2ltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG9iamVjdC1wb3NpdGlvbjogdG9wIGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMy41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xufVxuLndyYXBwZXItLWhvbWUgLmJsb2NrX19jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzLjVyZW0gMWZyO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIuMjVyZW0pO1xufVxuLndyYXBwZXItLWhvbWUgLmJsb2NrX19kZXNjcmlwdGlvbiB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwLjI1cmVtIDFyZW0gMC41cmVtIDA7XG59XG4ud3JhcHBlci0taG9tZSAuYmxvY2tfX2Nsb3NlLWJ0biB7XG4gIGhlaWdodDogMnJlbTtcbiAgd2lkdGg6IDJyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cbi53cmFwcGVyLS1ob21lIC5ibG9ja19fY2xvc2UtYnRuIC5lbC1hLFxuLndyYXBwZXItLWhvbWUgLmJsb2NrX19jbG9zZS1idG4gLmVsLWIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuLndyYXBwZXItLWhvbWUgLmJsb2NrX19jbG9zZS1idG4gLmVsLWEge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoNDVkZWcpO1xufVxuLndyYXBwZXItLWhvbWUgLmJsb2NrX19jbG9zZS1idG4gLmVsLWIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbn1cbi53cmFwcGVyLS1ob21lIC5ibG9jay5hY3RpdmUgLmJsb2NrX19maWd1cmUsXG4ud3JhcHBlci0taG9tZSAuYmxvY2suYWN0aXZlIC5ibG9ja19fb3Blbi1idG4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndyYXBwZXItLWhvbWUgLmJsb2NrLmFjdGl2ZSAuYmxvY2tfX2NvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC53cmFwcGVyLS1ob21lIC5ibG9jay0tc20ge1xuICAgIGdyaWQtcm93OiBzcGFuIDEvc3BhbiAxO1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDEvc3BhbiAxO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLndyYXBwZXItLWhvbWUgLmJsb2NrLS1tZCB7XG4gICAgZ3JpZC1yb3c6IHNwYW4gMS9zcGFuIDE7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMi9zcGFuIDI7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4OTZweCkge1xuICAud3JhcHBlci0taG9tZSAuYmxvY2stLWxnIHtcbiAgICBncmlkLXJvdzogc3BhbiAyL3NwYW4gMjtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAyL3NwYW4gMjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDg5NnB4KSB7XG4gIC53cmFwcGVyLS1ob21lIC5ibG9jay0teGwge1xuICAgIGdyaWQtcm93OiBzcGFuIDMvc3BhbiAzO1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDIvc3BhbiAyO1xuICB9XG59XG4ud3JhcHBlci0taG9tZSAuYmxvY2stLWxlZnQgLmJsb2NrX19udW1iZXIge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4ud3JhcHBlci0taG9tZSAuYmxvY2stLWxlZnQgLmJsb2NrX19jbG9zZS1idG4ge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi53cmFwcGVyLS1ob21lIC5ibG9jay0tbGVmdCAuYmxvY2tfX2hlYWRlcixcbi53cmFwcGVyLS1ob21lIC5ibG9jay0tbGVmdCAuYmxvY2tfX2NvbnRlbnQge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDNyZW0gMWZyO1xufVxuLndyYXBwZXItLWhvbWUgLmJsb2NrLS1sZWZ0IC5ibG9ja19faW1nIHtcbiAgcGFkZGluZy1sZWZ0OiAzcmVtO1xufVxuXG5odG1sIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG5ib2R5IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBjb2xvcjogIzAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IFwiVW5pdmVycyBOZXh0IFByb1wiLCBcIlVuaXZlcnNcIiwgc2Fucy1zZXJpZjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5ib2R5Lm92ZXJmbG93LWhpZGRlbiB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4ud3JhcHBlciB7XG4gIHBhZGRpbmc6IDAgMC43NXJlbSAwLjc1cmVtIDAuNzVyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODk2cHgpIHtcbiAgLndyYXBwZXIge1xuICAgIHBhZGRpbmc6IDAgMnJlbSAycmVtIDJyZW07XG4gIH1cbn1cblxuLm1haW4ge1xuICBtYXJnaW4tdG9wOiB2YXIoLS10b3ApO1xufVxuXG4uZGVidWctZ3JpZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgcGFkZGluZzogMCAycmVtO1xufVxuLmRlYnVnLWdyaWRfX2NvbCB7XG4gIGJvcmRlci1sZWZ0OiA0cHggZGFzaGVkICMwMGY7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG59XG4uZGVidWctZ3JpZF9fY29sOmZpcnN0LWNoaWxkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1cmVtO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbn1cbi5kZWJ1Zy1ncmlkX19jb2w6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogNHB4IGRhc2hlZCAjMDBmO1xuICBtYXJnaW4tcmlnaHQ6IC0ycHg7XG59XG5cbmJvZHkuZGVidWcgLmRlYnVnLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIHJlc2V0XG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sLFxuYm9keSxcbmRpdixcbnNwYW4sXG5hcHBsZXQsXG5vYmplY3QsXG5pZnJhbWUsXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wLFxuYmxvY2txdW90ZSxcbnByZSxcbmEsXG5hYmJyLFxuYWNyb255bSxcbmFkZHJlc3MsXG5iaWcsXG5jaXRlLFxuY29kZSxcbmRlbCxcbmRmbixcbmVtLFxuaW1nLFxuaW5zLFxua2JkLFxucSxcbnMsXG5zYW1wLFxuc21hbGwsXG5zdHJpa2UsXG5zdHJvbmcsXG5zdWIsXG5zdXAsXG50dCxcbnZhcixcbmIsXG51LFxuaSxcbmNlbnRlcixcbmRsLFxuZHQsXG5kZCxcbm9sLFxudWwsXG5saSxcbmZpZWxkc2V0LFxuZm9ybSxcbmxhYmVsLFxubGVnZW5kLFxudGFibGUsXG5jYXB0aW9uLFxudGJvZHksXG50Zm9vdCxcbnRoZWFkLFxudHIsXG50aCxcbnRkLFxuYXJ0aWNsZSxcbmFzaWRlLFxuY2FudmFzLFxuZGV0YWlscyxcbmVtYmVkLFxuZmlndXJlLFxuZmlnY2FwdGlvbixcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1lbnUsXG5uYXYsXG5vdXRwdXQsXG5ydWJ5LFxuc2VjdGlvbixcbnN1bW1hcnksXG50aW1lLFxubWFyayxcbmF1ZGlvLFxudmlkZW8ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG5jYXB0aW9uLFxudGgsXG50ZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbnEsXG5ibG9ja3F1b3RlIHtcbiAgICBxdW90ZXM6IG5vbmU7XG59XG5cbnE6YmVmb3JlLFxucTphZnRlcixcbmJsb2NrcXVvdGU6YmVmb3JlLFxuYmxvY2txdW90ZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgY29udGVudDogbm9uZTtcbn1cblxuYSBpbWcge1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgKnZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmJ1dHRvbixcbmlucHV0W3R5cGU9J2J1dHRvbiddLFxuaW5wdXRbdHlwZT0ncmVzZXQnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgKm92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbnRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLyogcmVzZXQgc2FmYXJpIGlucHV0IHN0eWxlcyAqL1xuXG5pbnB1dDpub3QoW3R5cGU9J3JhZGlvJ10pOm5vdChbdHlwZT0nY2hlY2tib3gnXSkge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuYnV0dG9uIHtcbiAgICBhbGw6IHVuc2V0O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cbiIsIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnVW5pdmVycyBOZXh0IFBybyc7XG4gICAgc3JjOiB1cmwoJ2ZvbnRzL3VuaXZlcnMtbmV4dC1wcm8tcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnVW5pdmVycyBOZXh0IFBybyc7XG4gICAgc3JjOiB1cmwoJ2ZvbnRzL3VuaXZlcnMtbmV4dC1wcm8taXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdDb3JyZXNwb25kYW5jZSc7XG4gICAgc3JjOiB1cmwoJ2ZvbnRzL2NvcnJlc3BvbmRhbmNlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4iLCIvLyAxLiBCcmVha3BvaW50c1xuJGJyZWFrcG9pbnRzOiAoXG4gICAgeHhzOiAzMjBweCxcbiAgICB4czogNDgwcHgsXG4gICAgc206IDc2OHB4LFxuICAgIG1kOiA4OTZweCxcbiAgICBsZzogMTI4MHB4LFxuICAgIHhsOiAxNDQwcHgsXG4gICAgeHhsOiAxOTIwcHgsXG4pO1xuXG4vLyAyLiBDb2xvcnNcbiRmZzogIzAwMDtcbiRiZzogI2ZmZjtcbiRiZDogIzAwMDtcblxuOnJvb3Qge1xuICAgIC0tZmctYjogI2ZmMDAwMDtcbiAgICAtLXZoOiAxMDB2aDtcbiAgICAtLXRvcDogMy4yNXJlbTtcbn1cblxuLy8gMy4gU3BhY2luZ1xuJHNwOiAxcmVtOyAvLyAxNlxuJHNwLXhzOiAkc3AgKiAwLjU7IC8vIDhcbiRzcC1zbTogJHNwICogMC43NTsgLy8gMTJcbiRzcC1tZDogJHNwICogMS4yNTsgLy8gMjRcbiRzcC1sZzogJHNwICogMjsgLy8gMzJcbiRzcC14bDogJHNwICogMzsgLy8gNjRcblxuLy8gNC4gRm9udHNcbiRmZi1ib2R5OiAnVW5pdmVycyBOZXh0IFBybycsICdVbml2ZXJzJywgc2Fucy1zZXJpZjtcbiRmZi1sb2dvOiAnQ29ycmVzcG9uZGFuY2UnLCAnVW5pdmVycyBOZXh0IFBybycsICdVbml2ZXJzJywgc2Fucy1zZXJpZjtcbiRmczogMXJlbTsgLy8gMTZcbiRmcy14czogJGZzICogMC41OyAvLyA4XG4kZnMtc206ICRmcyAqIDAuNzU7IC8vIDEyXG4kZnMtbWQ6ICRmcyAqIDEuNTsgLy8gMjRcbiRmcy1sZzogJGZzICogMjsgLy8gMzJcbiRmcy14bDogJGZzICogNDsgLy8gMzJcbiRsaDogMS4yNTtcbiRsaC1tZDogMS4yO1xuJGxoLWxnOiAxLjE7XG5cbi8vIDUuIFRleHQgc3R5bGVzXG4udHMge1xuICAgIGZvbnQtc2l6ZTogJGZzO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGg7XG59XG5cbi50cy1pdGFsaWMge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLnRzLWxpbmsge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICY6aG92ZXIge1xuICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udHMtYm9keS1saW5rIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gNi4gQm9keVxuLmJvZHkge1xuICAgIGgxLFxuICAgIGgyLFxuICAgIGgzLFxuICAgIGg0LFxuICAgIGg1LFxuICAgIGg2IHtcbiAgICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTAuMjVlbTtcbiAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc3AtbWQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKCN7JHNwLXhzfS8gMik7XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGMoI3skc3AteHN9LyAyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBocixcbiAgICBwLFxuICAgIHVsLFxuICAgIG9sLFxuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcC1zbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmaWd1cmUsXG4gICAgLmVtYmVkLWNvbnRhaW5lciB7XG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3AtbGc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcCB7XG4gICAgICAgIG1heC13aWR0aDogNzVjaDtcbiAgICB9XG4gICAgdWwsXG4gICAgb2wge1xuICAgICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gICAgfVxuICAgIGEge1xuICAgICAgICBAZXh0ZW5kIC50cy1ib2R5LWxpbms7XG4gICAgfVxuICAgIGksXG4gICAgZW0ge1xuICAgICAgICBAZXh0ZW5kIC50cy1pdGFsaWM7XG4gICAgfVxuICAgIGhyIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJkO1xuICAgIH1cbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHNwLXhzO1xuICAgIH1cbn1cblxuLmJvZHktLWluZGVudCB7XG4gICAgcCB7XG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHAgKyBwIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDJjaDtcbiAgICB9XG59XG5cbnN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTAuMjVlbTtcbn1cblxuJWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IC8vMVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICAvLyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJyZW0gMXJlbSA2ZnIgM2ZyIDNmciA0ZnIgMy41ZnIgMi41ZnIgMmZyO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDNmciAxLjVmciAxLjVmciAyZnIgMS41ZnIgMS41ZnIgMWZyO1xuICAgIH1cbn1cblxuJWdyaWQtYiB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICByb3ctZ2FwOiAkc3AtbWQ7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgIHJvdy1nYXA6IG5vbmU7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTZmciA4ZnI7IC8vMTZcbiAgICB9XG59XG5cbiVncmlkLWhlYWRlciB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICByb3ctZ2FwOiAkc3Atc207XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgIHJvdy1nYXA6IG5vbmU7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNGZyIDEyZnI7IC8vMTZcbiAgICB9XG59XG5cbiVncmlkLWMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgcm93LWdhcDogJHNwLW1kO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICByb3ctZ2FwOiAwO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDZmciAzLjVmciAyLjVmcjsgLy8xNlxuICAgIH1cbn1cblxuJWdyaWQtZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICByb3ctZ2FwOiAkc3AtbWQ7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgIHJvdy1nYXA6IG5vbmU7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNmZyIDRmciAzZnIgM2ZyOyAvLzE2XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDhmciA0ZnIgM2ZyIDNmcjsgLy8xOFxuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA2ZnIgNGZyIDRmciA0ZnI7IC8vMThcbiAgICB9XG59XG5cbkBtaXhpbiBjbG9zZS1idG4oJGJ0bi13aWR0aCwgJGJ0bi1oZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRidG4taGVpZ2h0O1xuICAgIHdpZHRoOiAkYnRuLXdpZHRoO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuZWwtYSxcbiAgICAuZWwtYiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmQ7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB9XG4gICAgLmVsLWEge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgIH1cbiAgICAuZWwtYiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxuLy9cbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAgICdwaG9uZSc6IDMyMHB4LFxuICAgICd0YWJsZXQnOiA3NjhweCxcbiAgICAnZGVza3RvcCc6IDEwMjRweCxcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAgICdwcmludCc6ICdwcmludCcsXG4gICAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAgICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KScsXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgICAncHgnOiAxLFxuICAgICdlbSc6IDAuMDEsXG4gICAgJ3JlbSc6IDAuMSxcbiAgICAnJzogMCxcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gICAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICAgICAgQGVycm9yICRtZXNzYWdlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAgICAgJF86IG5vb3AoKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gICAgQGlmIGltLWxvZygkbWVzc2FnZSkge1xuICAgIH1cbn1cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge1xufVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICAgIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgICAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAgICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgICAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvciAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICAgICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICAgICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAgICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAgICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAgICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gICAgfVxuXG4gICAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gICAgfVxuXG4gICAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICAgIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAgICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgICAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgICAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAgICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAgICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gICAgfVxuXG4gICAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgICB9XG5cbiAgICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gICAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gICAgfVxuXG4gICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gICAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgICAgICBAcmV0dXJuICgpO1xuICAgIH1cblxuICAgICRyZXN1bHQ6ICgpO1xuXG4gICAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICAgQHJldHVybiAkdmFsdWU7XG4gICAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICAgIH1cblxuICAgICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAgICRyZXN1bHQ6IDA7XG4gICAgJGRpZ2l0czogMDtcbiAgICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICAgJG51bWJlcnM6IChcbiAgICAgICAgJzAnOiAwLFxuICAgICAgICAnMSc6IDEsXG4gICAgICAgICcyJzogMixcbiAgICAgICAgJzMnOiAzLFxuICAgICAgICAnNCc6IDQsXG4gICAgICAgICc1JzogNSxcbiAgICAgICAgJzYnOiA2LFxuICAgICAgICAnNyc6IDcsXG4gICAgICAgICc4JzogOCxcbiAgICAgICAgJzknOiA5LFxuICAgICk7XG5cbiAgICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgICAgIEBpZiBub3QoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgICAgICAgJGRpZ2l0czogMTtcbiAgICAgICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgICAkdW5pdHM6IChcbiAgICAgICAgJ3B4JzogMXB4LFxuICAgICAgICAnY20nOiAxY20sXG4gICAgICAgICdtbSc6IDFtbSxcbiAgICAgICAgJyUnOiAxJSxcbiAgICAgICAgJ2NoJzogMWNoLFxuICAgICAgICAncGMnOiAxcGMsXG4gICAgICAgICdpbic6IDFpbixcbiAgICAgICAgJ2VtJzogMWVtLFxuICAgICAgICAncmVtJzogMXJlbSxcbiAgICAgICAgJ3B0JzogMXB0LFxuICAgICAgICAnZXgnOiAxZXgsXG4gICAgICAgICd2dyc6IDF2dyxcbiAgICAgICAgJ3ZoJzogMXZoLFxuICAgICAgICAndm1pbic6IDF2bWluLFxuICAgICAgICAndm1heCc6IDF2bWF4LFxuICAgICk7XG5cbiAgICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gICAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAgICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICAgIEBjb250ZW50O1xuXG4gICAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAgICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAgICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICAgIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3IgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIG1lZGlhc1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuaW1nLFxudmlkZW8sXG5vYmplY3Qge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbmltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbmltZy5pbWFnZS1sYXp5IHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6bm90KC5sYXp5bG9hZGVkKSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMjVzIG9wYWNpdHk7XG4gICAgfVxuXG4gICAgJi5sYXp5bG9hZGVkIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4yNXMgb3BhY2l0eTtcbiAgICB9XG59XG5cbi5lbWJlZC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmVtYmVkLWNvbnRhaW5lciBpZnJhbWUsXG4uZW1iZWQtY29udGFpbmVyIG9iamVjdCxcbi5lbWJlZC1jb250YWluZXIgZW1iZWQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4iLCIuaGVhZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIHBhZGRpbmc6IDAgJHNwLXNtO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICBwYWRkaW5nOiAwICRzcC1sZztcbiAgICB9XG4gICAgJl9fcm93IHtcbiAgICAgICAgQGV4dGVuZCAlZ3JpZC1oZWFkZXI7XG4gICAgICAgIGdhcDogJHNwLXNtO1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNwLW1kO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNwLXNtO1xuICAgICAgICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJnO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcbiAgICAgICAgICAgIGdhcDogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19jb2wtLW1lbnUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBtYXJnaW4tbGVmdDogM3JlbTtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDNmciAzLjVmciAyLjVmcjtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICAgICAgPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fY29sLS10b3BiYXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICAgIH1cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZmYtbG9nbztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19vcGVuLWJ0biB7XG4gICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMC41cmVtO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgLmVsLWEsXG4gICAgICAgIC5lbC1iIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4xcztcbiAgICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgICAgICAgfVxuICAgICAgICAuZWwtYSB7XG4gICAgICAgICAgICB0b3A6IDM3LjUlO1xuICAgICAgICB9XG4gICAgICAgIC5lbC1iIHtcbiAgICAgICAgICAgIHRvcDogNjIuNSU7XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgLmVsLWEge1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5lbC1iIHtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZpbHRlcnNfX29wZW4tYnRuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICAgICAgLmZpbHRlcnNfX3Jlc2V0LWJ0biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWZnLWIpO1xuICAgICAgICB9XG4gICAgICAgIC5zb3J0cy1tX19vcGVuLWJ0biB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAtMXJlbTtcbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAuZmlsdGVyc19fcmVzZXQtYnRuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0xcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnNvcnRzLW1fX29wZW4tYnRuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5maWx0ZXJzLWJ0bi0tbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tZmctYik7XG4gICAgfVxufVxuXG4ubmF2IHtcbiAgICAmX19saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjI1cmVtO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19pdGVtID4gYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gICAgJl9faXRlbSA+IGEuYWN0aXZlIHtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cbn1cblxuLnNlYXJjaCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc3AtbWQ7XG4gICAgfVxuICAgICZfX3Jlc2V0LWJ0biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTFyZW07XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9faW5wdXQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogJGZnO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgY29sb3I6ICRmZztcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJkO1xuICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIucGFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRiZDtcbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAmX19jbG9zZS1idG4ge1xuICAgICAgICBAaW5jbHVkZSBjbG9zZS1idG4oMnJlbSwgMnJlbSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTNyZW07XG4gICAgICAgIHRvcDogMDtcbiAgICB9XG4gICAgJl9faW5uZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNwLXhzO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNwLW1kO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTNyZW07XG4gICAgICAgICYtLWR1byB7XG4gICAgICAgICAgICBAZXh0ZW5kICVncmlkLWI7XG4gICAgICAgIH1cbiAgICAgICAgJi0tdHJpbyB7XG4gICAgICAgICAgICBAZXh0ZW5kICVncmlkLWM7XG4gICAgICAgIH1cbiAgICAgICAgJi0tcXVhdHJvIHtcbiAgICAgICAgICAgIEBleHRlbmQgJWdyaWQtZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX190YWJzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZy10b3A6IDAuMTI1cmVtO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJkO1xuICAgIH1cbiAgICAmX190YWIge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAmLmFjdGl2ZSBidXR0b24ge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSBidXR0b246YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyxcXDAwYTAnO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX3RhYi1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc3AtbWQ7XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fYm9keSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNwLW1kO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2NvbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICAgIH1cbiAgICAmX19jb2wuc20ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2NvbC5zbSAuYm9keSB7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZzLXNtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5maWx0ZXJzIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHRvcDogdmFyKC0tdG9wKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmc7XG59XG5cbi5pc19maWx0ZXJzX19vcGVuIC5maWx0ZXJzIHtcbiAgICB6LWluZGV4OiA5O1xufVxuIiwiLmZpbHRlcnMtbSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgICZfX29wZW4tYnRuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgLmZpbHRlcnNfX3Jlc2V0LWJ0biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWZnLWIpO1xuICAgICAgICB9XG4gICAgICAgIC5zb3J0cy1tX19vcGVuLWJ0biB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAtMXJlbTtcbiAgICAgICAgICAgIHN0cm9rZTogdmFyKC0tZmctYik7XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRiZDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDAuMjVyZW0gLSAxcHgpO1xuICAgICAgICAgICAgLmZpbHRlcnNfX3Jlc2V0LWJ0biB7XG4gICAgICAgICAgICAgICAgLy8gSGlkZSBtb2JpbGVidXR0b25cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0xcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnNvcnRzLW1fX29wZW4tYnRuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc29ydHMtbSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmQ7XG4gICAgbWF4LWhlaWdodDogNjZ2aDtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogNjYpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgJi5hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJl9fY29sIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIC8vIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6IDAuMTI1cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRiZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX190ZXh0IHtcbiAgICAgICAgd2lkdGg6IDEyY2g7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXhzJykge1xuICAgICAgICAgICAgd2lkdGg6IDE1Y2g7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fb3Blbi1idG4ge1xuICAgICAgICAvLyBtYXJnaW4tbGVmdDogMC4xMjVyZW07XG4gICAgICAgIHRvcDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDAuODc1cmVtO1xuICAgICAgICB3aWR0aDogMC42MjVyZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbGluZSB7XG4gICAgICAgICAgICBzdHJva2U6IHZhcigtLWZnLWIpO1xuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoOiAxLjA1O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VsZWN0cy1tIHtcbiAgICAmX19vcGVuLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICAmX19sb2ctcm93IHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGZnO1xuICAgICAgICBtYXJnaW4tbGVmdDogM3JlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDAuMTI1cmVtO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBjb2xvcjogdmFyKC0tZmctYik7XG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICAgICYuZW1wdHksXG4gICAgICAgICYuYWN0aXZlLmVtcHR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2xvZy10ZXh0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAmX19jbG9zZS1idG4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbGluZSB7XG4gICAgICAgICAgICBzdHJva2U6ICRmZztcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aDogMS4wNTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNlbGVjdC1tIHtcbiAgICAmX19saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxuICAgICZfX2l0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZmctYik7XG4gICAgICAgICAgICAvLyAmOmJlZm9yZSB7XG4gICAgICAgICAgICAvLyAgICAgY29udGVudDogXCJcXDAwYTDinJVcIjtcbiAgICAgICAgICAgIC8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAvLyAgICAgbGVmdDogLTIycHg7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWFyY2gtbSB7XG4gICAgJl9fbG9nLXJvdyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRmZztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgJi5lbXB0eSxcbiAgICAgICAgJi5hY3RpdmUuZW1wdHkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fbG9nLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuIiwiLnNvcnRzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIEBleHRlbmQgJWdyaWQ7XG4gICAgJl9fY29sIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDAuMTI1cmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAmOm5vdCguc29ydHNfX251bWJlcik6bm90KC5zb3J0c19fc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzcC14cztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmQ7XG4gICAgICAgIH1cbiAgICAgICAgLnNlbGVjdGVkX19zb3J0IHtcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFwwMGEw4pyVJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fbnVtYmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICAgICZfX3NlbGVjdGVkIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDJyZW07XG4gICAgfVxuICAgICZfX25hbWUge1xuICAgICAgICBtYXJnaW4tbGVmdDogM3JlbTtcbiAgICB9XG4gICAgJl9fbG9jYXRpb24sXG4gICAgJl9fdHlwZSxcbiAgICAmX19wcm9jZWR1cmUsXG4gICAgJl9fc3RhdHVzLFxuICAgICZfX3llYXIsXG4gICAgJl9fc2l6ZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19sb2NhdGlvbixcbiAgICAmX190eXBlIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19vcGVuLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgIGhlaWdodDogMC44NzVyZW07XG4gICAgICAgIHdpZHRoOiAwLjYyNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMTI1cmVtO1xuICAgICAgICBsaW5lIHtcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aDogMS4wNTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5zZWxlY3RzIHtcbiAgICBAZXh0ZW5kICVncmlkO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgICZfX3Jlc2V0LWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFweDtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWZnLWIpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2NvbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgJjpub3QoLnNlbGVjdHNfX251bWJlcik6bm90KC5zZWxlY3RzX19zZWxlY3RlZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNwLXhzO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRiZDtcbiAgICAgICAgfVxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgICYuZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIC5zZWxlY3RzX19jbG9zZS1idG4ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJjpub3QoLmFjdGl2ZSkge1xuICAgICAgICAuc2VsZWN0X19sb2FkbW9yZSxcbiAgICAgICAgLnNlbGVjdF9faXRlbTpub3QoLmFjdGl2ZSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNlbGVjdCB7XG4gICAgJl9fbGlzdCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAuaGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9faXRlbSxcbiAgICAmX19sb2FkbW9yZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZmctYik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fbG9hZG1vcmUge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMTI1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VsZWN0X19saXN0LmZ1bGwsXG4uc2VsZWN0LW1fX2xpc3QuZnVsbCB7XG4gICAgLnNlbGVjdF9faXRlbSxcbiAgICAuc2VsZWN0LW1fX2l0ZW0sXG4gICAgLnNlbGVjdF9faXRlbTpudGgtb2YtdHlwZSgxbiArIDUpOm5vdCguYWN0aXZlKSxcbiAgICAuc2VsZWN0LW1fX2l0ZW06bnRoLW9mLXR5cGUoMW4gKyA1KTpub3QoLmFjdGl2ZSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLnNlbGVjdF9fbG9hZG1vcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnNlbGVjdF9faXRlbTpudGgtb2YtdHlwZSgxbiArIDUpOm5vdCguYWN0aXZlKSxcbi5zZWxlY3QtbV9faXRlbTpudGgtb2YtdHlwZSgxbiArIDUpOm5vdCguYWN0aXZlKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi5wcm9qZWN0IHtcbiAgICAmX19yb3cge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBleHRlbmQgJWdyaWQ7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAucHJvamVjdF9fY29sOm5vdCgucHJvamVjdF9fbnVtYmVyKTpub3QoLnByb2plY3RfX3NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19uYW1lIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gICAgfVxuICAgICZfX251bWJlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgICAmX19zZWxlY3RlZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAycmVtO1xuICAgIH1cbiAgICAmX19uYW1lLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgJl9fbmFtZS1idG46OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gICAgJl9fY29sIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbiAgICAgICAgJjpub3QoLnByb2plY3RfX251bWJlcik6bm90KC5wcm9qZWN0X19zZWxlY3RlZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNwLXhzO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRiZztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19kZXRhaWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgICZfX2Nsb3NlLWJ0biB7XG4gICAgICAgIEBpbmNsdWRlIGNsb3NlLWJ0bigycmVtLCAycmVtKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICAgICZfX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNwLXhzO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNwLW1kO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJkO1xuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBAZXh0ZW5kICVncmlkLWI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fYm9keSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNwLWxnO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2JvZHksXG4gICAgJl9faW1hZ2VzLFxuICAgICZfX3RodW1icyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICAgIH1cbiAgICAmX19pbmZvcyB7XG4gICAgICAgIGZsZXg6IDQ7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNwLW1kO1xuICAgICAgICB9XG4gICAgICAgIGgzLFxuICAgICAgICBzdXAge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IC0wLjI1ZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fbW9iaWxlX2luZm9zIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX3RleHQtYnRuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgc3VwIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IC0wLjI1ZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9faW1hZ2VzX19jbG9zZS1idG4ge1xuICAgICAgICBAaW5jbHVkZSBjbG9zZS1idG4oMnJlbSwgMnJlbSk7XG4gICAgICAgIHotaW5kZXg6IDEwMDI7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwLjc1cmVtO1xuICAgICAgICByaWdodDogMC43NXJlbTtcbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJnO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggJGJnO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX192aWRlbyB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmQ7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICAgIHZpZGVvIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IDAlIDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdncgLSAjeyRzcC1tZCAqIDJ9IC0gM3JlbSk7IC8vIGltYWdlIHdpZHRoO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDlyZW0gLSAxLjYyNXJlbSAtIDZweCk7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYyhjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKSAtIDlyZW0gLSAxLjYyNXJlbSAtIDZweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmlkZW9bcG9zdGVyXSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJkO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZ3IC0gI3skc3AtbWQgKiAyfSAtIDNyZW0pOyAvLyBpbWFnZSB3aWR0aDtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IDAlIDAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiB6b29tLWluO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA5cmVtIC0gMS42MjVyZW0gLSA2cHgpO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoY2FsYyh2YXIoLS12aCwgMXZoKSAqIDEwMCkgLSA5cmVtIC0gMS42MjVyZW0gLSA2cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZfX2ltYWdlLnpvb21lZCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2dyAtICN7JHNwLW1kICogMn0gLSAzcmVtKTsgLy8gaW1hZ2Ugd2lkdGg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDlyZW0gLSAxLjYyNXJlbSAtIDZweCk7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApIC0gOXJlbSAtIDEuNjI1cmVtIC0gNnB4KTtcbiAgICAgICAgfVxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogaW5pdGlhbDtcbiAgICAgICAgICAgIG9iamVjdC1wb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX190aHVtYnMge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmQ7XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fdGh1bWIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRiZztcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJnO1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHNwLXNtO1xuICAgICAgICB9XG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkZmc7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRmZztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmLnBsYW4ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuOTQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5hY3RpdmUge1xuICAgICAgICAucHJvamVjdCB7XG4gICAgICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZfX3RleHQtYnRuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmX19kZXRhaWwsXG4gICAgICAgICAgICAmX19jbG9zZS1idG4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgICAgICAgICAgICAgICAmOm5vdCgucHJvamVjdF9fbnVtYmVyKTpub3QoLnByb2plY3RfX3NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICY6bm90KC5hY3RpdmUpIHtcbiAgICAgICAgLnByb2plY3RfX2ltYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5oaWRkZW4sXG4gICAgJi5ub3Qtc2VsZWN0ZWQtaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJl9fbG9jYXRpb24sXG4gICAgJl9fdHlwZSxcbiAgICAmX19wcm9jZWR1cmUsXG4gICAgJl9fc3RhdHVzLFxuICAgICZfX3llYXIsXG4gICAgJl9fc2l6ZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wcm9qZWN0X19yb3cge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnByb2plY3RfX3ByZXZpZXctaW1hZ2Uge1xuICAgIEBleHRlbmQgJWdyaWQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogOTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAzcmVtO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtKTtcbiAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IDUwdmg7XG4gICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS12aCwgMXZoKSAqIDUwKTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiAwIDA7XG4gICAgfVxufVxuXG4ucHJvamVjdF9fcHJldmlldy1pbWFnZS5hY3RpdmUtdG9wIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3R0b206IGNhbGMoI3skbGggKiAkZnN9ICsgMC4xMjVyZW0gKyAycHgpO1xuICAgIGltZyB7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogMCAxMDAlO1xuICAgIH1cbn1cblxuLnByb2plY3RfX3ByZXZpZXctaW1hZ2UuYWN0aXZlLWJvdHRvbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiAxMDAlO1xufVxuIiwiLndyYXBwZXItLWhvbWUgLmhlYWRlcl9fcm93IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcbn1cblxuLndyYXBwZXItLWhvbWUgLm1haW4ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgLy8gZ2FwOiAxLjVyZW07XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICBnYXA6IDFweDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgICAgZ3JpZC1hdXRvLXJvd3M6IGNhbGMoKDEwMHZ3IC0gNHJlbSkgLyA0KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gICAgICAgIGdyaWQtYXV0by1yb3dzOiBjYWxjKCgxMDB2dyAtIDRyZW0pIC8gNik7XG4gICAgfVxufVxuXG4ud3JhcHBlci0taG9tZSAuYmxvY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhc3BlY3QtcmF0aW86IDQvMztcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgIzAwMDtcbiAgICB9XG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzLjVyZW0gMWZyO1xuICAgIH1cbiAgICAmX19udW1iZXIge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMCAwLjVyZW0gMC41cmVtO1xuICAgIH1cbiAgICAmX190aXRsZSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgICZfX29wZW4tYnRuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMi4yNXJlbSk7XG4gICAgfVxuICAgICZfX2ltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogdG9wIGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMy41cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICAgIH1cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzLjVyZW0gMWZyO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIuMjVyZW0pO1xuICAgIH1cbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDFyZW0gMC41cmVtIDA7XG4gICAgfVxuICAgICZfX2Nsb3NlLWJ0biB7XG4gICAgICAgIEBpbmNsdWRlIGNsb3NlLWJ0bigycmVtLCAycmVtKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICB9XG4gICAgJi5hY3RpdmUge1xuICAgICAgICAuYmxvY2tfX2ZpZ3VyZSxcbiAgICAgICAgLmJsb2NrX19vcGVuLWJ0biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5ibG9ja19fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLXNtIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgICAgICBncmlkLXJvdzogc3BhbiAxIC8gc3BhbiAxO1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMSAvIHNwYW4gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLS1tZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICAgICAgZ3JpZC1yb3c6IHNwYW4gMSAvIHNwYW4gMTtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDIgLyBzcGFuIDI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi0tbGcge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcbiAgICAgICAgICAgIGdyaWQtcm93OiBzcGFuIDIgLyBzcGFuIDI7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAyIC8gc3BhbiAyO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLXhsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XG4gICAgICAgICAgICBncmlkLXJvdzogc3BhbiAzIC8gc3BhbiAzO1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMiAvIHNwYW4gMjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLS1sZWZ0IHtcbiAgICAgICAgLmJsb2NrX19udW1iZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgIC5ibG9ja19fY2xvc2UtYnRuIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgIC5ibG9ja19faGVhZGVyLFxuICAgICAgICAuYmxvY2tfX2NvbnRlbnQge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzcmVtIDFmcjtcbiAgICAgICAgfVxuICAgICAgICAuYmxvY2tfX2ltZyB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd1dGlscy9fcmVzZXQnO1xuQGltcG9ydCAndXRpbHMvX2ZvbnRzJztcbkBpbXBvcnQgJ3V0aWxzL19pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL192YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvX21lZGlhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL19oZWFkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9fcGFnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL19maWx0ZXJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX2ZpbHRlcnMtbSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL19zb3J0cyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL19zZWxlY3RzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3Byb2plY3QnO1xuQGltcG9ydCAndGVtcGxhdGVzL19ob21lJztcblxuaHRtbCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIC8vIEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xuICAgIC8vICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgLy8gfVxuICAgIC8vIEBpbmNsdWRlIG1lZGlhKCc+PXh4bCcpIHtcbiAgICAvLyAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgIC8vIH1cbn1cblxuYm9keSB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIEBleHRlbmQgLnRzO1xuICAgIGNvbG9yOiAkZmc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGZvbnQtZmFtaWx5OiAkZmYtYm9keTtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgJi5vdmVyZmxvdy1oaWRkZW4ge1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi53cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwICRzcC1zbSAkc3Atc20gJHNwLXNtO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xuICAgICAgICBwYWRkaW5nOiAwICRzcC1sZyAkc3AtbGcgJHNwLWxnO1xuICAgIH1cbn1cblxuLm1haW4ge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXRvcCk7XG59XG5cbi5kZWJ1Zy1ncmlkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgICAmX19jb2wge1xuICAgICAgICBib3JkZXItbGVmdDogNHB4IGRhc2hlZCAjMDBmO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIH1cbiAgICAmX19jb2w6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDVyZW07XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgICAmX19jb2w6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogNHB4IGRhc2hlZCAjMDBmO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0ycHg7XG4gICAgfVxufVxuXG5ib2R5LmRlYnVnIC5kZWJ1Zy1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xufVxuIl19 */
