/*!************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/resolve-url-loader/index.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./assets/styles/investigator.scss ***!
  \************************************************************************************************************************************************************************************************************************************************/
/*
*/
.accordion__head {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  margin-bottom: 0;
  font-weight: bold;
  align-items: center;
}

.accordion__head-icon img {
  height: 0.5em;
}

.accordion__body {
  opacity: 0;
  overflow: hidden;
}

.accordion--open .accordion__head {
  margin-bottom: 0.5em;
}
.accordion--open .accordion__body {
  opacity: 1;
}
.accordion--open .accordion__head-icon {
  transform: rotateX(180deg);
}

@media screen and (prefers-reduced-motion: no-preference) {
  .accordion--animate .accordion__head {
    transition: margin-bottom 0.3s ease-in-out;
  }
  .accordion--animate .accordion__body {
    transition: height 0.3s ease-in-out, opacity 0.3s ease-in-out;
  }
  .accordion--animate .accordion__head-icon {
    transition: transform 0.3s ease-in-out;
  }
}
:root {
  --button-bg: var(--light);
  --button-border: var(--light);
  --button-color: var(--body-color);
  --button-bg-hover: var(--dark);
  --button-border-hover: var(--dark);
  --button-color-hover: var(--white);
  --button-primary-bg: var(--color-primary);
  --button-primary-border: var(--color-primary);
  --button-primary-color: var(--white);
  --button-primary-bg-hover: var(--color-primary-light);
  --button-primary-border-hover: var(--color-primary-light);
  --button-primary-color-hover: var(--white);
  --button-secondary-bg: var(--color-secondary);
  --button-secondary-border: var(--color-secondary);
  --button-secondary-color: var(--white);
  --button-secondary-bg-hover: var(--color-secondary-dark);
  --button-secondary-border-hover: var(--color-secondary-dark);
  --button-secondary-color-hover: var(--white);
  --button-orange-bg: var(--color-orange);
  --button-orange-border: var(--color-orange);
  --button-orange-color: var(--body-color);
  --button-orange-bg-hover: var(--color-orange-dark);
  --button-orange-border-hover: var(--color-orange-dark);
  --button-orange-color-hover: var(--white);
  --button-green-bg: var(--color-green);
  --button-green-border: var(--color-green);
  --button-green-color: var(--white);
  --button-green-bg-hover: var(--color-green-dark);
  --button-green-border-hover: var(--color-green-dark);
  --button-green-color-hover: var(--white);
  --button-red-bg: var(--color-red);
  --button-red-border: var(--color-red);
  --button-red-color: var(--white);
  --button-red-bg-hover: var(--color-red-dark);
  --button-red-border-hover: var(--color-red-dark);
  --button-red-color-hover: var(--white);
}

.button {
  display: inline-block;
  padding: 0.5rem 0.75rem;
  text-transform: uppercase;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1rem;
  background-color: var(--button-bg);
  border-width: 2px;
  border-style: solid;
  border-color: var(--button-border);
  color: var(--button-color);
  border-radius: 0.25rem;
  cursor: pointer;
  transition: color 0.5s ease, background-color 0.5s ease, border-color 0.5s ease;
  text-decoration: none;
}
.button:hover {
  background-color: var(--button-bg-hover);
  border-color: var(--button-border-hover);
  color: var(--button-color-hover);
}

.button--large {
  line-height: 1.5;
  padding: 10px 15px;
}

.button--small {
  line-height: 1;
  padding: 5px 10px;
}

.button--primary {
  --button-bg: var(--button-primary-bg);
  --button-border: var(--button-primary-border);
  --button-color: var(--button-primary-color);
  --button-bg-hover: var(--button-primary-bg-hover);
  --button-border-hover: var(--button-primary-border-hover);
  --button-color-hover: var(--button-primary-color-hover);
}

.button--secondary {
  --button-bg: var(--button-secondary-bg);
  --button-border: var(--button-secondary-border);
  --button-color: var(--button-secondary-color);
  --button-bg-hover: var(--button-secondary-bg-hover);
  --button-border-hover: var(--button-secondary-border-hover);
  --button-color-hover: var(--button-secondary-color-hover);
}

.button--orange {
  --button-bg: var(--button-orange-bg);
  --button-border: var(--button-orange-border);
  --button-color: var(--button-orange-color);
  --button-bg-hover: var(--button-orange-bg-hover);
  --button-border-hover: var(--button-orange-border-hover);
  --button-color-hover: var(--button-orange-color-hover);
}

.button--green {
  --button-bg: var(--button-green-bg);
  --button-border: var(--button-green-border);
  --button-color: var(--button-green-color);
  --button-bg-hover: var(--button-green-bg-hover);
  --button-border-hover: var(--button-green-border-hover);
  --button-color-hover: var(--button-green-color-hover);
}

.button--red {
  --button-bg: var(--button-red-bg);
  --button-border: var(--button-red-border);
  --button-color: var(--button-red-color);
  --button-bg-hover: var(--button-red-bg-hover);
  --button-border-hover: var(--button-red-border-hover);
  --button-color-hover: var(--button-red-color-hover);
}

.button--outline {
  --button-bg: var(--body-bg);
  --button-color: var(--button-border);
}

.button-group {
  display: flex;
}
.button-group .button {
  border-radius: 0;
}
.button-group .button:first-child {
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}
.button-group .button:last-child {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}

.custom-roller {
  position: fixed;
  width: auto;
  z-index: 10;
}
.custom-roller.position-bottom_right {
  bottom: 2rem;
  right: 2rem;
}
.custom-roller.position-bottom_right .custom-roller__box {
  bottom: 0;
  right: 0;
  transform-origin: bottom right;
}
.custom-roller.position-bottom_right .custom-roller__action {
  justify-content: flex-start;
}
.custom-roller.position-bottom_left {
  bottom: 2rem;
  left: 2rem;
}
.custom-roller.position-bottom_left .custom-roller__box {
  bottom: 0;
  left: 0;
  transform-origin: bottom left;
}
.custom-roller.position-bottom_left .custom-roller__action {
  justify-content: flex-end;
}
.custom-roller.position-top_right {
  top: calc(2rem + 66px);
  right: 2rem;
}
.custom-roller.position-top_right .custom-roller__box {
  top: 0;
  right: 0;
  transform-origin: top right;
}
.custom-roller.position-top_right .custom-roller__buttons {
  padding-right: 2rem;
}
.custom-roller.position-top_right .custom-roller__action {
  justify-content: flex-start;
}
.custom-roller.position-top_left {
  top: calc(2rem + 66px);
  left: 2rem;
}
.custom-roller.position-top_left .custom-roller__box {
  top: 0;
  left: 0;
  transform-origin: top left;
}
.custom-roller.position-top_left .custom-roller__buttons {
  padding-left: 2rem;
}
.custom-roller.position-top_left .custom-roller__action {
  justify-content: flex-end;
}

.custom-roller__toggle {
  z-index: 10;
}

.custom-roller__box {
  position: absolute;
  background-color: var(--body-bg);
  max-width: calc(100vw - 4rem);
  max-height: calc(100vh - 4rem);
  border: 2px solid var(--secondary);
  padding: 1rem 1.5rem;
  border-radius: 30px;
  transform: scale(0);
  opacity: 0;
  transition: all 0.5s ease;
  width: max-content;
}

.custom-roller--open .custom-roller__box {
  transform: scale(1);
  opacity: 1;
}

.custom-roller__button {
  position: relative;
}
.custom-roller__button .count {
  display: none;
  position: absolute;
  bottom: 0;
  right: 0;
  transform: translate(50%, 50%);
  background-color: var(--primary);
  color: var(--white);
  padding: 0.25rem;
  border-radius: 50%;
}
.custom-roller__button.active .count {
  display: block;
}

#roll-config {
  position: fixed;
  border: 5px solid var(--secondary);
  border-radius: 1.5rem;
  background-color: var(--body-bg);
  padding: 0.5rem;
  bottom: 1rem;
  width: fit-content;
  height: fit-content;
  transform-origin: top left;
  z-index: 1;
  opacity: 0;
  pointer-events: none;
}
#roll-config.visible {
  opacity: 1;
  transition: opacity 0.2s ease;
  pointer-events: initial;
}

.roll-config__close {
  top: -5px;
  right: -5px;
}

.roll-config svg {
  pointer-events: none;
}

.history-popup {
  position: fixed;
  top: calc(67px + 3rem - 100px);
  left: 50%;
  height: 100%;
  max-height: calc(100vh - 67px - 3rem - 3rem);
  display: flex;
  flex-direction: column;
  border-width: 10px;
  border-style: solid;
  border-color: var(--secondary);
  border-radius: 1.5rem;
  background-color: var(--body-bg);
  opacity: 0;
  z-index: 1;
  transition: opacity 0.5s ease, top 0.5s ease;
  pointer-events: none;
  box-shadow: 0 3px 6px -1px rgba(0, 0, 0, 0.12), 0 10px 36px -4px rgba(77, 96, 232, 0.3);
  transform: translateX(-50%);
}
.history-popup.history--open {
  top: calc(67px + 3rem);
  opacity: 1;
  pointer-events: all;
}
.history-popup .history__log {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  padding: 1rem;
  max-height: unset;
}

.history__log {
  overflow-y: auto;
  max-height: 1000px;
}

.history__close {
  top: -10px;
  right: -10px;
}

.history__item {
  display: grid;
  grid-template-columns: 1fr max-content max-content;
  grid-template-rows: repeat(2, max-content);
  gap: 1rem 1rem;
}

.history__item--success {
  background-color: var(--color-success-background);
  color: var(--color-success);
}

.history__item--failure {
  background-color: var(--color-danger-background);
  color: var(--color-danger);
}

.history__item-title {
  grid-area: 1/1/2/4;
}

.history__item-roll {
  grid-area: 2/1/3/2;
}

.history__item-check {
  grid-area: 2/2/3/3;
}

.history__item-rolled {
  grid-area: 2/3/3/4;
}

.history__item-custom {
  grid-area: 2/1/3/3;
}

.history__item-sum {
  grid-area: 2/3/3/4;
}

:root {
  --table-columns: 1;
}

#sheet {
  transition: opacity 0.3s ease;
  opacity: 1;
}
#sheet.rolling {
  opacity: 0.8;
}
#sheet.updated {
  opacity: 0.5;
}

#investigator {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(3, max-content);
  gap: 1rem 1rem;
  grid-template-areas: "image" "general" "attributes";
}

#general {
  grid-area: general;
  display: grid;
  grid-template-columns: max-content 1fr;
  grid-template-rows: repeat(7, 1fr);
  gap: 1rem 1rem;
}

#image {
  grid-area: image;
}

#attributes {
  grid-area: attributes;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(13, max-content);
  gap: 1rem 1rem;
  grid-template-areas: "str dex" "pow con" "app edu" "siz int" "mov sta" "hp mp" "luck luck" "unconscious dying" "wounded delirious" "insane insane" "threshold threshold" "cash cash" "deposit deposit";
}

#str {
  grid-area: str;
}

#dex {
  grid-area: dex;
}

#pow {
  grid-area: pow;
}

#con {
  grid-area: con;
}

#app {
  grid-area: app;
}

#edu {
  grid-area: edu;
}

#siz {
  grid-area: siz;
}

#int {
  grid-area: int;
}

#mov {
  grid-area: mov;
}

#sta {
  grid-area: sta;
}

#hp {
  grid-area: hp;
}

#mp {
  grid-area: mp;
}

#luck {
  grid-area: luck;
}

#dying {
  grid-area: dying;
}

#unconscious {
  grid-area: unconscious;
}

#wounded {
  grid-area: wounded;
}

#delirious {
  grid-area: delirious;
}

#insane {
  grid-area: insane;
}

#threshold {
  grid-area: threshold;
}

#cash {
  grid-area: cash;
}

#deposit {
  grid-area: deposit;
}

#skills {
  --skill-rows: calc(1 + var(--skills-count) / var(--table-columns));
  display: grid;
  grid-gap: 1rem 1rem;
  grid-auto-flow: column;
  grid-template-columns: repeat(var(--table-columns), 1fr);
  grid-template-rows: repeat(var(--skill-rows), max-content);
}

#fight {
  display: grid;
  grid-template-columns: minmax(4fr, max-content) 1fr;
  grid-template-rows: max-content;
  gap: 1rem 1rem;
}

#weapons {
  grid-area: 1/1/2/var(--table-columns);
  display: grid;
  grid-gap: 1rem 1rem;
  grid-template-columns: 100px repeat(var(--weapons-count), 1fr);
  grid-template-rows: repeat(2, 1fr) repeat(6, max-content);
  grid-auto-flow: column;
}

#physical {
  grid-area: 1/var(--table-columns)/2/calc(var(--table-columns) + 1);
}

@media (min-width: 448px) {
  :root {
    --table-columns: 2;
  }
}
@media (min-width: 576px) {
  :root {
    --table-columns: 3;
  }
  #investigator {
    grid-template-columns: minmax(50px, 300px) 1fr;
    grid-template-rows: max-content 1fr;
    grid-template-areas: "image general" "attributes attributes";
  }
  #attributes {
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(8, max-content);
    grid-template-areas: "str str dex dex pow pow" "con con app app edu edu" "siz siz int int mov mov" "sta sta sta hp hp hp" "mp mp mp luck luck luck" "unconscious unconscious dying dying wounded wounded" "delirious delirious insane insane wounded wounded" "threshold threshold cash cash deposit deposit";
  }
}
@media (min-width: 992px) {
  :root {
    --table-columns: 5;
  }
  #investigator {
    grid-template-columns: minmax(100px, 300px) max-content 1fr;
    grid-template-rows: max-content;
    grid-template-areas: "image general attributes";
    gap: 1rem 1rem;
  }
  #attributes {
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(10, max-content);
    grid-template-areas: "str str dex dex pow pow" "con con app app edu edu" "siz siz int int mov mov" "sta sta sta hp hp hp" "mp mp mp luck luck luck" "unconscious unconscious unconscious dying dying dying" "wounded wounded wounded delirious delirious delirious" "insane insane insane . . ." "threshold threshold threshold cash cash cash" "deposit deposit deposit . . .";
  }
}
@media (min-width: 1200px) {
  #attributes {
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(8, max-content);
    grid-template-areas: "str str dex dex pow pow" "con con app app edu edu" "siz siz int int mov mov" "sta sta sta hp hp hp" "mp mp mp luck luck luck" "unconscious unconscious dying dying wounded wounded" "delirious delirious insane insane wounded wounded" "threshold threshold cash cash deposit deposit";
  }
}
.edit {
  display: none;
}

.editing .display {
  display: none;
}
.editing .edit {
  display: block;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52ZXN0aWdhdG9yLmNzcyIsIm1hcHBpbmdzIjoiOzs7QUEyRkE7Q0FBQTtBQzNGQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQ0dGOztBREFBO0VBQ0U7QUNHRjs7QURBQTtFQUNFO0VBQ0E7QUNHRjs7QURDRTtFQUNFO0FDRUo7QURBRTtFQUNFO0FDRUo7QURDRTtFQUNFO0FDQ0o7O0FER0E7RUFFSTtJQUNFO0VDREo7RURJRTtJQUNFO0VDRko7RURLRTtJQUNFO0VDSEo7QUFDRjtBQ3hDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRHFDRjs7QUNsQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7QURtQ0Y7QUNqQ0U7RUFDRTtFQUNBO0VBQ0E7QURtQ0o7O0FDL0JBO0VBQ0U7RUFDQTtBRGtDRjs7QUMvQkE7RUFDRTtFQUNBO0FEa0NGOztBQy9CQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRGtDRjs7QUMvQkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QURrQ0Y7O0FDL0JBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FEa0NGOztBQy9CQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRGtDRjs7QUMvQkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QURrQ0Y7O0FDL0JBO0VBQ0U7RUFDQTtBRGtDRjs7QUMvQkE7RUFDRTtBRGtDRjtBQ2hDRTtFQUNFO0FEa0NKO0FDaENJO0VBQ0U7RUFDQTtBRGtDTjtBQy9CSTtFQUNFO0VBQ0E7QURpQ047O0FFaExBO0VBQ0U7RUFDQTtFQUNBO0FGbUxGO0FFakxFO0VBQ0U7RUFDQTtBRm1MSjtBRWpMSTtFQUNFO0VBQ0E7RUFDQTtBRm1MTjtBRWhMSTtFQUNFO0FGa0xOO0FFOUtFO0VBQ0U7RUFDQTtBRmdMSjtBRTlLSTtFQUNFO0VBQ0E7RUFDQTtBRmdMTjtBRTdLSTtFQUNFO0FGK0tOO0FFM0tFO0VBQ0U7RUFDQTtBRjZLSjtBRTNLSTtFQUNFO0VBQ0E7RUFDQTtBRjZLTjtBRTFLSTtFQUNFO0FGNEtOO0FFektJO0VBQ0U7QUYyS047QUV2S0U7RUFDRTtFQUNBO0FGeUtKO0FFdktJO0VBQ0U7RUFDQTtFQUNBO0FGeUtOO0FFdEtJO0VBQ0U7QUZ3S047QUVyS0k7RUFDRTtBRnVLTjs7QUVsS0E7RUFDRTtBRnFLRjs7QUVsS0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FGcUtGOztBRWpLRTtFQUNFO0VBQ0E7QUZvS0o7O0FFaEtBO0VBQ0U7QUZtS0Y7QUVqS0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUZtS0o7QUUvSkk7RUFDRTtBRmlLTjs7QUdyUkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUh3UkY7QUd0UkU7RUFDRTtFQUNBO0VBQ0E7QUh3Uko7O0FHcFJBO0VBQ0U7RUFDQTtBSHVSRjs7QUduUkU7RUFDRTtBSHNSSjs7QUlsVEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUpxVEY7QUluVEU7RUFDRTtFQUNBO0VBQ0E7QUpxVEo7QUlsVEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FKb1RKOztBSWhUQTtFQUNFO0VBQ0E7QUptVEY7O0FJaFRBO0VBQ0U7RUFDQTtBSm1URjs7QUloVEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBSm1URjs7QUloVEE7RUFDRTtFQUNBO0FKbVRGOztBSWhUQTtFQUNFO0VBQ0E7QUptVEY7O0FJaFRBO0VBQ0U7QUptVEY7O0FJaFRBO0VBQ0U7QUptVEY7O0FJaFRBO0VBQ0U7QUptVEY7O0FJaFRBO0VBQ0U7QUptVEY7O0FJaFRBO0VBQ0U7QUptVEY7O0FJaFRBO0VBQ0U7QUptVEY7O0FBOVhBO0VBQ0U7QUFpWUY7O0FBOVhBO0VBQ0U7RUFDQTtBQWlZRjtBQS9YRTtFQUNFO0FBaVlKO0FBOVhFO0VBQ0U7QUFnWUo7O0FBNVhBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQSxtREFDRTtBQThYSjs7QUF6WEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNFhGOztBQXpYQTtFQUNFO0FBNFhGOztBQXpYQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxzTUFDRTtBQTJYSjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtBQStXRjs7QUE1V0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUErV0Y7O0FBNVdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUErV0Y7O0FBNVdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBK1dGOztBQTVXQTtFQUNFO0FBK1dGOztBS3BlSTtFTHlIRjtJQUNFO0VBK1dGO0FBQ0Y7QUsxZUk7RUwrSEY7SUFDRTtFQThXRjtFQTNXQTtJQUNFO0lBQ0E7SUFDQSw0REFDQTtFQTRXRjtFQXhXQTtJQUNFO0lBQ0E7SUFDQSw2U0FDRTtFQXlXSjtBQUNGO0FLemZJO0VMMkpGO0lBQ0U7RUFpV0Y7RUEvVkE7SUFDRTtJQUNBO0lBQ0E7SUFDQTtFQWlXRjtFQTlWQTtJQUNFO0lBQ0E7SUFDQSwrV0FDRTtFQStWSjtBQUNGO0FLemdCSTtFTHNMRjtJQUNFO0lBQ0E7SUFDQSw2U0FDRTtFQXFWSjtBQUNGO0FBM1VBO0VBQ0U7QUE2VUY7O0FBelVFO0VBQ0U7QUE0VUo7QUF6VUU7RUFDRTtBQTJVSixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9hcHAvX292ZXJyaWRlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9ibG9jay9fYWNjb3JkaW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9pbnZlc3RpZ2F0b3Iuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2Jsb2NrL19idXR0b24uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2Jsb2NrL19jdXN0b20tcm9sbGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9ibG9jay9fcm9sbC1jb25maWcuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2Jsb2NrL19oaXN0b3J5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIkcHJpbWFyeTogICAjMGU0ODVjO1xuJHNlY29uZGFyeTogIzM1YjllOTtcbiRvcmFuZ2U6ICAgICNmZDdlMTQ7XG4kcmVkOiAgICAgICAjZGMzNTQ1O1xuJHllbGxvdzogICAgI2ZmYzEwNztcbiRncmVlbjogICAgICMxOTg3NTQ7XG4kY3lhbjogICAgICAjMGRjYWYwO1xuXG4kd2hpdGU6ICAgICNmZmY7XG4kZ3JheS0xMDA6ICNmOGY5ZmM7XG4kZ3JheS0yMDA6ICNmMWYzZjk7XG4kZ3JheS0zMDA6ICNkZWUzZWQ7XG4kZ3JheS00MDA6ICNjMmM5ZDY7XG4kZ3JheS01MDA6ICM4Zjk2YTM7XG4kZ3JheS02MDA6ICM1ZTYzNmU7XG4kZ3JheS03MDA6ICMyZjMyMzc7XG4kZ3JheS04MDA6ICMxZDFlMjA7XG4kZ3JheS05MDA6ICMxMTEyMTM7XG4kYmxhY2s6ICAgICMwMDA7XG5cbiRsaWdodDogICAgICRncmF5LTQwMDtcbiRkYXJrOiAgICAgICRncmF5LTcwMDtcbiRncmF5OiAgICAgICRncmF5LTkwMDtcblxuJHN1Y2Nlc3M6ICAgJGdyZWVuO1xuJGluZm86ICAgICAgJGN5YW47XG4kd2FybmluZzogICAkeWVsbG93O1xuJGRhbmdlcjogICAgJHJlZDtcblxuJGJvZHktY29sb3I6ICMxMTEyMTM7XG5cbiRjb2xvcnM6IChcbiAgXCJncmVlblwiOiAgICAgICRncmVlbixcbiAgXCJjeWFuXCI6ICAgICAgICRjeWFuLFxuICBcInllbGxvd1wiOiAgICAgJHllbGxvdyxcbiAgXCJyZWRcIjogICAgICAgICRyZWQsXG4pO1xuXG4kdGhlbWUtY29sb3JzOiAoXG4gIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcbiAgXCJzZWNvbmRhcnlcIjogICRzZWNvbmRhcnksXG4gIFwib3JhbmdlXCI6ICAgICAkb3JhbmdlLFxuICBcInN1Y2Nlc3NcIjogICAgJHN1Y2Nlc3MsXG4gIFwiaW5mb1wiOiAgICAgICAkaW5mbyxcbiAgXCJ3YXJuaW5nXCI6ICAgICR3YXJuaW5nLFxuICBcImRhbmdlclwiOiAgICAgJGRhbmdlcixcbiAgXCJ3aGl0ZVwiOiAgICAgICR3aGl0ZSxcbiAgXCJsaWdodFwiOiAgICAgICRsaWdodCxcbiAgXCJkYXJrXCI6ICAgICAgICRkYXJrLFxuICBcImJsYWNrXCI6ICAgICAgJGJsYWNrLFxuKTtcblxuJGJvZHktYmc6ICRncmF5LTEwMDtcblxuJGZvbnQtc2l6ZS1iYXNlOiAxcmVtOyAvLyAxNHB4O1xuJGZvbnQtc2l6ZS1sZzogMS4xMjVyZW07IC8vIDE2cHg7XG4kZm9udC1zaXplLXNtOiAwLjg3NXJlbTsgLy8gMTNweDtcblxuJGdyaWQtYnJlYWtwb2ludHM6IChcbiAgeHhzOiAwLFxuICB4czogNDQ4cHgsXG4gIHNtOiA1NzZweCxcbiAgbWQ6IDc2OHB4LFxuICBsZzogOTkycHgsXG4gIHhsOiAxMjAwcHgsXG4gIHh4bDogMTUwMHB4XG4pO1xuXG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcbiAgeHhzOiA0MzBweCxcbiAgeHM6IDQ0MHB4LFxuICBzbTogNTQwcHgsXG4gIG1kOiA3MjBweCxcbiAgbGc6IDk2MHB4LFxuICB4bDogMTE0MHB4LFxuICB4eGw6IDE0NDBweFxuKTtcblxuJHByZWZpeDogJyc7XG4kaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuJGhlYWRpbmdzLWZvbnQtd2VpZ2h0OiA3MDA7XG5cbiRtYl9tb2R1bGVfY3Jvc3M6ICcubW0tb2NkLW9wZW5lZCAubWJ1cmdlcic7XG4kbWJfbW9kdWxlX3NxdWVlemVfY3Jvc3M6ICcubW0tb2NkLW9wZW5lZCAubWJ1cmdlci0tc3F1ZWV6ZSc7XG4kbWJfYW5pbWF0ZV90aW1lb3V0OiAwO1xuXG4kaW5wdXQtYmc6ICAgICAgICAgICAgdmFyKC0taW5wdXQtYmcpO1xuJGlucHV0LWNvbG9yOiAgICAgICAgIHZhcigtLWlucHV0LWNvbG9yKTtcbiRpbnB1dC1ib3JkZXItY29sb3I6ICB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpO1xuJGZvcm0tY2hlY2staW5wdXQtYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTtcblxuLypcbiovXG4kY2FyZC1iZzogICAgICAgICAgICAgdmFyKC0tYm9keS1iZyk7XG4kY2FyZC1jb2xvcjogICAgICAgICAgdmFyKC0tYm9keS1jb2xvcik7XG4kY2FyZC1ib3JkZXItY29sb3I6ICAgdmFyKC0tZ3JheS00MDApO1xuJGNhcmQtY2FwLWJnOiAgICAgICAgIHZhcigtLWNvbG9yLXByaW1hcnkpO1xuJGNhcmQtY2FwLWNvbG9yOiAgICAgIHZhcigtLXdoaXRlKTtcblxuJGxpbmstZGVjb3JhdGlvbjogICAgIG5vbmU7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiBub25lO1xuXG4kbW9kYWwtY29udGVudC1iZzogICAgdmFyKC0tYm9keS1iZyk7XG5cbiR6aW5kZXgtc3RpY2t5OiAxMDAgIWRlZmF1bHQ7IiwiLmFjY29yZGlvbl9faGVhZCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmFjY29yZGlvbl9faGVhZC1pY29uIGltZyB7XG4gIGhlaWdodDogY2FsYyguNWVtKTtcbn1cblxuLmFjY29yZGlvbl9fYm9keSB7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hY2NvcmRpb24tLW9wZW4ge1xuICAuYWNjb3JkaW9uX19oZWFkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICB9XG4gIC5hY2NvcmRpb25fX2JvZHkge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAuYWNjb3JkaW9uX19oZWFkLWljb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gIC5hY2NvcmRpb24tLWFuaW1hdGUge1xuICAgIC5hY2NvcmRpb25fX2hlYWQge1xuICAgICAgdHJhbnNpdGlvbjogbWFyZ2luLWJvdHRvbSAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgIC5hY2NvcmRpb25fX2JvZHkge1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgZWFzZS1pbi1vdXQsIG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAuYWNjb3JkaW9uX19oZWFkLWljb24ge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgfVxuICB9XG59IiwiQGltcG9ydCBcInBhZ2VcIjtcblxuQGltcG9ydCBcImJsb2NrL2FjY29yZGlvblwiO1xuQGltcG9ydCBcImJsb2NrL2J1dHRvblwiO1xuQGltcG9ydCBcImJsb2NrL2N1c3RvbS1yb2xsZXJcIjtcbkBpbXBvcnQgXCJibG9jay9yb2xsLWNvbmZpZ1wiO1xuQGltcG9ydCBcImJsb2NrL2hpc3RvcnlcIjtcblxuOnJvb3Qge1xuICAtLXRhYmxlLWNvbHVtbnM6IDE7XG59XG5cbiNzaGVldCB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICBvcGFjaXR5OiAxO1xuXG4gICYucm9sbGluZyB7XG4gICAgb3BhY2l0eTogLjg7XG4gIH1cblxuICAmLnVwZGF0ZWQge1xuICAgIG9wYWNpdHk6IC41O1xuICB9XG59XG5cbiNpbnZlc3RpZ2F0b3Ige1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMywgbWF4LWNvbnRlbnQpO1xuICBnYXA6IDFyZW0gMXJlbTtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcImltYWdlXCJcbiAgICBcImdlbmVyYWxcIlxuICAgIFwiYXR0cmlidXRlc1wiO1xufVxuXG4jZ2VuZXJhbCB7XG4gIGdyaWQtYXJlYTogZ2VuZXJhbDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtYXgtY29udGVudCAxZnI7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDcsIDFmcik7XG4gIGdhcDogMXJlbSAxcmVtO1xufVxuXG4jaW1hZ2Uge1xuICBncmlkLWFyZWE6IGltYWdlO1xufVxuXG4jYXR0cmlidXRlcyB7XG4gIGdyaWQtYXJlYTogYXR0cmlidXRlcztcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMTMsIG1heC1jb250ZW50KTtcbiAgZ2FwOiAxcmVtIDFyZW07XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJzdHIgZGV4XCJcbiAgICBcInBvdyBjb25cIlxuICAgIFwiYXBwIGVkdVwiXG4gICAgXCJzaXogaW50XCJcbiAgICBcIm1vdiBzdGFcIlxuICAgIFwiaHAgbXBcIlxuICAgIFwibHVjayBsdWNrXCJcbiAgICBcInVuY29uc2Npb3VzIGR5aW5nXCJcbiAgICBcIndvdW5kZWQgZGVsaXJpb3VzXCJcbiAgICBcImluc2FuZSBpbnNhbmVcIlxuICAgIFwidGhyZXNob2xkIHRocmVzaG9sZFwiXG4gICAgXCJjYXNoIGNhc2hcIlxuICAgIFwiZGVwb3NpdCBkZXBvc2l0XCI7XG59XG5cbiNzdHIge1xuICBncmlkLWFyZWE6IHN0cjtcbn1cblxuI2RleCB7XG4gIGdyaWQtYXJlYTogZGV4O1xufVxuXG4jcG93IHtcbiAgZ3JpZC1hcmVhOiBwb3c7XG59XG5cbiNjb24ge1xuICBncmlkLWFyZWE6IGNvbjtcbn1cblxuI2FwcCB7XG4gIGdyaWQtYXJlYTogYXBwO1xufVxuXG4jZWR1IHtcbiAgZ3JpZC1hcmVhOiBlZHU7XG59XG5cbiNzaXoge1xuICBncmlkLWFyZWE6IHNpejtcbn1cblxuI2ludCB7XG4gIGdyaWQtYXJlYTogaW50O1xufVxuXG4jbW92IHtcbiAgZ3JpZC1hcmVhOiBtb3Y7XG59XG5cbiNzdGEge1xuICBncmlkLWFyZWE6IHN0YTtcbn1cblxuI2hwIHtcbiAgZ3JpZC1hcmVhOiBocDtcbn1cblxuI21wIHtcbiAgZ3JpZC1hcmVhOiBtcDtcbn1cblxuI2x1Y2sge1xuICBncmlkLWFyZWE6IGx1Y2s7XG59XG5cbiNkeWluZyB7XG4gIGdyaWQtYXJlYTogZHlpbmc7XG59XG5cbiN1bmNvbnNjaW91cyB7XG4gIGdyaWQtYXJlYTogdW5jb25zY2lvdXM7XG59XG5cbiN3b3VuZGVkIHtcbiAgZ3JpZC1hcmVhOiB3b3VuZGVkO1xufVxuXG4jZGVsaXJpb3VzIHtcbiAgZ3JpZC1hcmVhOiBkZWxpcmlvdXM7XG59XG5cbiNpbnNhbmUge1xuICBncmlkLWFyZWE6IGluc2FuZTtcbn1cblxuI3RocmVzaG9sZCB7XG4gIGdyaWQtYXJlYTogdGhyZXNob2xkO1xufVxuXG4jY2FzaCB7XG4gIGdyaWQtYXJlYTogY2FzaDtcbn1cblxuI2RlcG9zaXQge1xuICBncmlkLWFyZWE6IGRlcG9zaXQ7XG59XG5cbiNza2lsbHMge1xuICAtLXNraWxsLXJvd3M6IGNhbGMoMSArIHZhcigtLXNraWxscy1jb3VudCkgLyB2YXIoLS10YWJsZS1jb2x1bW5zKSk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiAxcmVtIDFyZW07XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLXRhYmxlLWNvbHVtbnMpLCAxZnIpO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCh2YXIoLS1za2lsbC1yb3dzKSwgbWF4LWNvbnRlbnQpO1xufVxuXG4jZmlnaHQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg0ZnIsIG1heC1jb250ZW50KSAxZnI7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogbWF4LWNvbnRlbnQ7XG4gIGdhcDogMXJlbSAxcmVtO1xufVxuXG4jd2VhcG9ucyB7XG4gIGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gdmFyKC0tdGFibGUtY29sdW1ucyk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiAxcmVtIDFyZW07XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwcHggcmVwZWF0KHZhcigtLXdlYXBvbnMtY291bnQpLCAxZnIpO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgyLCAxZnIpIHJlcGVhdCg2LCBtYXgtY29udGVudCk7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG59XG5cbiNwaHlzaWNhbCB7XG4gIGdyaWQtYXJlYTogMSAvIHZhcigtLXRhYmxlLWNvbHVtbnMpIC8gMiAvIGNhbGModmFyKC0tdGFibGUtY29sdW1ucykgKyAxKTtcbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4cykge1xuICA6cm9vdCB7XG4gICAgLS10YWJsZS1jb2x1bW5zOiAyO1xuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgOnJvb3Qge1xuICAgIC0tdGFibGUtY29sdW1uczogMztcbiAgfVxuXG4gICNpbnZlc3RpZ2F0b3Ige1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDUwcHgsIDMwMHB4KSAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtYXgtY29udGVudCAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcImltYWdlIGdlbmVyYWxcIlxuICAgIFwiYXR0cmlidXRlcyBhdHRyaWJ1dGVzXCI7XG4gIH1cblxuICAjYXR0cmlidXRlcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgMWZyKTtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCg4LCBtYXgtY29udGVudCk7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgIFwic3RyIHN0ciBkZXggZGV4IHBvdyBwb3dcIlxuICAgICAgXCJjb24gY29uIGFwcCBhcHAgZWR1IGVkdVwiXG4gICAgICBcInNpeiBzaXogaW50IGludCBtb3YgbW92XCJcbiAgICAgIFwic3RhIHN0YSBzdGEgaHAgaHAgaHBcIlxuICAgICAgXCJtcCBtcCBtcCBsdWNrIGx1Y2sgbHVja1wiXG4gICAgICBcInVuY29uc2Npb3VzIHVuY29uc2Npb3VzIGR5aW5nIGR5aW5nIHdvdW5kZWQgd291bmRlZFwiXG4gICAgICBcImRlbGlyaW91cyBkZWxpcmlvdXMgaW5zYW5lIGluc2FuZSB3b3VuZGVkIHdvdW5kZWRcIlxuICAgICAgXCJ0aHJlc2hvbGQgdGhyZXNob2xkIGNhc2ggY2FzaCBkZXBvc2l0IGRlcG9zaXRcIjtcbiAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gIDpyb290IHtcbiAgICAtLXRhYmxlLWNvbHVtbnM6IDU7XG4gIH1cbiAgI2ludmVzdGlnYXRvciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMTAwcHgsIDMwMHB4KSBtYXgtY29udGVudCAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtYXgtY29udGVudDtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcImltYWdlIGdlbmVyYWwgYXR0cmlidXRlc1wiO1xuICAgIGdhcDogMXJlbSAxcmVtO1xuICB9XG5cbiAgI2F0dHJpYnV0ZXMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIDFmcik7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMTAsIG1heC1jb250ZW50KTtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgICAgXCJzdHIgc3RyIGRleCBkZXggcG93IHBvd1wiXG4gICAgICBcImNvbiBjb24gYXBwIGFwcCBlZHUgZWR1XCJcbiAgICAgIFwic2l6IHNpeiBpbnQgaW50IG1vdiBtb3ZcIlxuICAgICAgXCJzdGEgc3RhIHN0YSBocCBocCBocFwiXG4gICAgICBcIm1wIG1wIG1wIGx1Y2sgbHVjayBsdWNrXCJcbiAgICAgIFwidW5jb25zY2lvdXMgdW5jb25zY2lvdXMgdW5jb25zY2lvdXMgZHlpbmcgZHlpbmcgZHlpbmdcIlxuICAgICAgXCJ3b3VuZGVkIHdvdW5kZWQgd291bmRlZCBkZWxpcmlvdXMgZGVsaXJpb3VzIGRlbGlyaW91c1wiXG4gICAgICBcImluc2FuZSBpbnNhbmUgaW5zYW5lIC4gLiAuXCJcbiAgICAgIFwidGhyZXNob2xkIHRocmVzaG9sZCB0aHJlc2hvbGQgY2FzaCBjYXNoIGNhc2hcIlxuICAgICAgXCJkZXBvc2l0IGRlcG9zaXQgZGVwb3NpdCAuIC4gLlwiO1xuICB9XG59XG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHhsKSB7XG4gICNhdHRyaWJ1dGVzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCAxZnIpO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDgsIG1heC1jb250ZW50KTtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgICAgXCJzdHIgc3RyIGRleCBkZXggcG93IHBvd1wiXG4gICAgICBcImNvbiBjb24gYXBwIGFwcCBlZHUgZWR1XCJcbiAgICAgIFwic2l6IHNpeiBpbnQgaW50IG1vdiBtb3ZcIlxuICAgICAgXCJzdGEgc3RhIHN0YSBocCBocCBocFwiXG4gICAgICBcIm1wIG1wIG1wIGx1Y2sgbHVjayBsdWNrXCJcbiAgICAgIFwidW5jb25zY2lvdXMgdW5jb25zY2lvdXMgZHlpbmcgZHlpbmcgd291bmRlZCB3b3VuZGVkXCJcbiAgICAgIFwiZGVsaXJpb3VzIGRlbGlyaW91cyBpbnNhbmUgaW5zYW5lIHdvdW5kZWQgd291bmRlZFwiXG4gICAgICBcInRocmVzaG9sZCB0aHJlc2hvbGQgY2FzaCBjYXNoIGRlcG9zaXQgZGVwb3NpdFwiO1xuICB9XG59XG5cbi5lZGl0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmVkaXRpbmcge1xuICAuZGlzcGxheSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5lZGl0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufSIsIjpyb290IHtcbiAgLS1idXR0b24tYmc6IHZhcigtLWxpZ2h0KTtcbiAgLS1idXR0b24tYm9yZGVyOiB2YXIoLS1saWdodCk7XG4gIC0tYnV0dG9uLWNvbG9yOiB2YXIoLS1ib2R5LWNvbG9yKTtcbiAgLS1idXR0b24tYmctaG92ZXI6IHZhcigtLWRhcmspO1xuICAtLWJ1dHRvbi1ib3JkZXItaG92ZXI6IHZhcigtLWRhcmspO1xuICAtLWJ1dHRvbi1jb2xvci1ob3ZlcjogdmFyKC0td2hpdGUpO1xuXG4gIC0tYnV0dG9uLXByaW1hcnktYmc6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICAtLWJ1dHRvbi1wcmltYXJ5LWJvcmRlcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIC0tYnV0dG9uLXByaW1hcnktY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgLS1idXR0b24tcHJpbWFyeS1iZy1ob3ZlcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XG4gIC0tYnV0dG9uLXByaW1hcnktYm9yZGVyLWhvdmVyOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcbiAgLS1idXR0b24tcHJpbWFyeS1jb2xvci1ob3ZlcjogdmFyKC0td2hpdGUpO1xuXG4gIC0tYnV0dG9uLXNlY29uZGFyeS1iZzogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgLS1idXR0b24tc2Vjb25kYXJ5LWJvcmRlcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgLS1idXR0b24tc2Vjb25kYXJ5LWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIC0tYnV0dG9uLXNlY29uZGFyeS1iZy1ob3ZlcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5LWRhcmspO1xuICAtLWJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWhvdmVyOiB2YXIoLS1jb2xvci1zZWNvbmRhcnktZGFyayk7XG4gIC0tYnV0dG9uLXNlY29uZGFyeS1jb2xvci1ob3ZlcjogdmFyKC0td2hpdGUpO1xuXG4gIC0tYnV0dG9uLW9yYW5nZS1iZzogdmFyKC0tY29sb3Itb3JhbmdlKTtcbiAgLS1idXR0b24tb3JhbmdlLWJvcmRlcjogdmFyKC0tY29sb3Itb3JhbmdlKTtcbiAgLS1idXR0b24tb3JhbmdlLWNvbG9yOiB2YXIoLS1ib2R5LWNvbG9yKTtcbiAgLS1idXR0b24tb3JhbmdlLWJnLWhvdmVyOiB2YXIoLS1jb2xvci1vcmFuZ2UtZGFyayk7XG4gIC0tYnV0dG9uLW9yYW5nZS1ib3JkZXItaG92ZXI6IHZhcigtLWNvbG9yLW9yYW5nZS1kYXJrKTtcbiAgLS1idXR0b24tb3JhbmdlLWNvbG9yLWhvdmVyOiB2YXIoLS13aGl0ZSk7XG5cbiAgLS1idXR0b24tZ3JlZW4tYmc6IHZhcigtLWNvbG9yLWdyZWVuKTtcbiAgLS1idXR0b24tZ3JlZW4tYm9yZGVyOiB2YXIoLS1jb2xvci1ncmVlbik7XG4gIC0tYnV0dG9uLWdyZWVuLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIC0tYnV0dG9uLWdyZWVuLWJnLWhvdmVyOiB2YXIoLS1jb2xvci1ncmVlbi1kYXJrKTtcbiAgLS1idXR0b24tZ3JlZW4tYm9yZGVyLWhvdmVyOiB2YXIoLS1jb2xvci1ncmVlbi1kYXJrKTtcbiAgLS1idXR0b24tZ3JlZW4tY29sb3ItaG92ZXI6IHZhcigtLXdoaXRlKTtcblxuICAtLWJ1dHRvbi1yZWQtYmc6IHZhcigtLWNvbG9yLXJlZCk7XG4gIC0tYnV0dG9uLXJlZC1ib3JkZXI6IHZhcigtLWNvbG9yLXJlZCk7XG4gIC0tYnV0dG9uLXJlZC1jb2xvcjogdmFyKC0td2hpdGUpO1xuICAtLWJ1dHRvbi1yZWQtYmctaG92ZXI6IHZhcigtLWNvbG9yLXJlZC1kYXJrKTtcbiAgLS1idXR0b24tcmVkLWJvcmRlci1ob3ZlcjogdmFyKC0tY29sb3ItcmVkLWRhcmspO1xuICAtLWJ1dHRvbi1yZWQtY29sb3ItaG92ZXI6IHZhcigtLXdoaXRlKTtcbn1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogLjVyZW0gLjc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWJnKTtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjVzIGVhc2UsXG4gIGJhY2tncm91bmQtY29sb3IgLjVzIGVhc2UsXG4gIGJvcmRlci1jb2xvciAuNXMgZWFzZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1iZy1ob3Zlcik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tYm9yZGVyLWhvdmVyKTtcbiAgICBjb2xvcjogdmFyKC0tYnV0dG9uLWNvbG9yLWhvdmVyKTtcbiAgfVxufVxuXG4uYnV0dG9uLS1sYXJnZSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbn1cblxuLmJ1dHRvbi0tc21hbGwge1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG59XG5cbi5idXR0b24tLXByaW1hcnkge1xuICAtLWJ1dHRvbi1iZzogdmFyKC0tYnV0dG9uLXByaW1hcnktYmcpO1xuICAtLWJ1dHRvbi1ib3JkZXI6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWJvcmRlcik7XG4gIC0tYnV0dG9uLWNvbG9yOiB2YXIoLS1idXR0b24tcHJpbWFyeS1jb2xvcik7XG4gIC0tYnV0dG9uLWJnLWhvdmVyOiB2YXIoLS1idXR0b24tcHJpbWFyeS1iZy1ob3Zlcik7XG4gIC0tYnV0dG9uLWJvcmRlci1ob3ZlcjogdmFyKC0tYnV0dG9uLXByaW1hcnktYm9yZGVyLWhvdmVyKTtcbiAgLS1idXR0b24tY29sb3ItaG92ZXI6IHZhcigtLWJ1dHRvbi1wcmltYXJ5LWNvbG9yLWhvdmVyKTtcbn1cblxuLmJ1dHRvbi0tc2Vjb25kYXJ5IHtcbiAgLS1idXR0b24tYmc6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYmcpO1xuICAtLWJ1dHRvbi1ib3JkZXI6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyKTtcbiAgLS1idXR0b24tY29sb3I6IHZhcigtLWJ1dHRvbi1zZWNvbmRhcnktY29sb3IpO1xuICAtLWJ1dHRvbi1iZy1ob3ZlcjogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS1iZy1ob3Zlcik7XG4gIC0tYnV0dG9uLWJvcmRlci1ob3ZlcjogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS1ib3JkZXItaG92ZXIpO1xuICAtLWJ1dHRvbi1jb2xvci1ob3ZlcjogdmFyKC0tYnV0dG9uLXNlY29uZGFyeS1jb2xvci1ob3Zlcik7XG59XG5cbi5idXR0b24tLW9yYW5nZSB7XG4gIC0tYnV0dG9uLWJnOiB2YXIoLS1idXR0b24tb3JhbmdlLWJnKTtcbiAgLS1idXR0b24tYm9yZGVyOiB2YXIoLS1idXR0b24tb3JhbmdlLWJvcmRlcik7XG4gIC0tYnV0dG9uLWNvbG9yOiB2YXIoLS1idXR0b24tb3JhbmdlLWNvbG9yKTtcbiAgLS1idXR0b24tYmctaG92ZXI6IHZhcigtLWJ1dHRvbi1vcmFuZ2UtYmctaG92ZXIpO1xuICAtLWJ1dHRvbi1ib3JkZXItaG92ZXI6IHZhcigtLWJ1dHRvbi1vcmFuZ2UtYm9yZGVyLWhvdmVyKTtcbiAgLS1idXR0b24tY29sb3ItaG92ZXI6IHZhcigtLWJ1dHRvbi1vcmFuZ2UtY29sb3ItaG92ZXIpO1xufVxuXG4uYnV0dG9uLS1ncmVlbiB7XG4gIC0tYnV0dG9uLWJnOiB2YXIoLS1idXR0b24tZ3JlZW4tYmcpO1xuICAtLWJ1dHRvbi1ib3JkZXI6IHZhcigtLWJ1dHRvbi1ncmVlbi1ib3JkZXIpO1xuICAtLWJ1dHRvbi1jb2xvcjogdmFyKC0tYnV0dG9uLWdyZWVuLWNvbG9yKTtcbiAgLS1idXR0b24tYmctaG92ZXI6IHZhcigtLWJ1dHRvbi1ncmVlbi1iZy1ob3Zlcik7XG4gIC0tYnV0dG9uLWJvcmRlci1ob3ZlcjogdmFyKC0tYnV0dG9uLWdyZWVuLWJvcmRlci1ob3Zlcik7XG4gIC0tYnV0dG9uLWNvbG9yLWhvdmVyOiB2YXIoLS1idXR0b24tZ3JlZW4tY29sb3ItaG92ZXIpO1xufVxuXG4uYnV0dG9uLS1yZWQge1xuICAtLWJ1dHRvbi1iZzogdmFyKC0tYnV0dG9uLXJlZC1iZyk7XG4gIC0tYnV0dG9uLWJvcmRlcjogdmFyKC0tYnV0dG9uLXJlZC1ib3JkZXIpO1xuICAtLWJ1dHRvbi1jb2xvcjogdmFyKC0tYnV0dG9uLXJlZC1jb2xvcik7XG4gIC0tYnV0dG9uLWJnLWhvdmVyOiB2YXIoLS1idXR0b24tcmVkLWJnLWhvdmVyKTtcbiAgLS1idXR0b24tYm9yZGVyLWhvdmVyOiB2YXIoLS1idXR0b24tcmVkLWJvcmRlci1ob3Zlcik7XG4gIC0tYnV0dG9uLWNvbG9yLWhvdmVyOiB2YXIoLS1idXR0b24tcmVkLWNvbG9yLWhvdmVyKTtcbn1cblxuLmJ1dHRvbi0tb3V0bGluZSB7XG4gIC0tYnV0dG9uLWJnOiB2YXIoLS1ib2R5LWJnKTtcbiAgLS1idXR0b24tY29sb3I6IHZhcigtLWJ1dHRvbi1ib3JkZXIpO1xufVxuXG4uYnV0dG9uLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcblxuICAuYnV0dG9uIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAuMjVyZW07XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAuMjVyZW07XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAuMjVyZW07XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogLjI1cmVtO1xuICAgIH1cbiAgfVxufSIsIi5jdXN0b20tcm9sbGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogYXV0bztcbiAgei1pbmRleDogMTA7XG5cbiAgJi5wb3NpdGlvbi1ib3R0b21fcmlnaHQge1xuICAgIGJvdHRvbTogMnJlbTtcbiAgICByaWdodDogMnJlbTtcblxuICAgIC5jdXN0b20tcm9sbGVyX19ib3gge1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gcmlnaHQ7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1yb2xsZXJfX2FjdGlvbiB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgJi5wb3NpdGlvbi1ib3R0b21fbGVmdCB7XG4gICAgYm90dG9tOiAycmVtO1xuICAgIGxlZnQ6IDJyZW07XG5cbiAgICAuY3VzdG9tLXJvbGxlcl9fYm94IHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcbiAgICB9XG5cbiAgICAuY3VzdG9tLXJvbGxlcl9fYWN0aW9uIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuICB9XG5cbiAgJi5wb3NpdGlvbi10b3BfcmlnaHQge1xuICAgIHRvcDogY2FsYygycmVtICsgNjZweCk7IC8vIDY2cHggYmVjYXVzZSBoZWFkZXIgaGVpZ2h0XG4gICAgcmlnaHQ6IDJyZW07XG5cbiAgICAuY3VzdG9tLXJvbGxlcl9fYm94IHtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0O1xuICAgIH1cblxuICAgIC5jdXN0b20tcm9sbGVyX19idXR0b25zIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgfVxuXG4gICAgLmN1c3RvbS1yb2xsZXJfX2FjdGlvbiB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgJi5wb3NpdGlvbi10b3BfbGVmdCB7XG4gICAgdG9wOiBjYWxjKDJyZW0gKyA2NnB4KTsgLy8gNjZweCBiZWNhdXNlIGhlYWRlciBoZWlnaHRcbiAgICBsZWZ0OiAycmVtO1xuXG4gICAgLmN1c3RvbS1yb2xsZXJfX2JveCB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1yb2xsZXJfX2J1dHRvbnMge1xuICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgIH1cblxuICAgIC5jdXN0b20tcm9sbGVyX19hY3Rpb24ge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cbn1cblxuLmN1c3RvbS1yb2xsZXJfX3RvZ2dsZSB7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4uY3VzdG9tLXJvbGxlcl9fYm94IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib2R5LWJnKTtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gNHJlbSk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0cmVtKTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5KTtcbiAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZTtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xufVxuXG4uY3VzdG9tLXJvbGxlci0tb3BlbiB7XG4gIC5jdXN0b20tcm9sbGVyX19ib3gge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uY3VzdG9tLXJvbGxlcl9fYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5jb3VudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgNTAlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICAgIHBhZGRpbmc6IC4yNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cblxuICAmLmFjdGl2ZSB7XG4gICAgLmNvdW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufSIsIiNyb2xsLWNvbmZpZyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm9yZGVyOiA1cHggc29saWQgdmFyKC0tc2Vjb25kYXJ5KTtcbiAgYm9yZGVyLXJhZGl1czogMS41cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib2R5LWJnKTtcbiAgcGFkZGluZzogLjVyZW07XG4gIGJvdHRvbTogMXJlbTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgei1pbmRleDogMTtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgJi52aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzIGVhc2U7XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG4gIH1cbn1cblxuLnJvbGwtY29uZmlnX19jbG9zZSB7XG4gIHRvcDogLTVweDtcbiAgcmlnaHQ6IC01cHg7XG59XG5cbi5yb2xsLWNvbmZpZyB7XG4gIHN2ZyB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn0iLCIuaGlzdG9yeS1wb3B1cCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiBjYWxjKDY3cHggKyAzcmVtIC0gMTAwcHgpO1xuICBsZWZ0OiA1MCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDY3cHggLSAzcmVtIC0gM3JlbSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJvcmRlci13aWR0aDogMTBweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xuICBib3JkZXItcmFkaXVzOiAxLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJvZHktYmcpO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cyBlYXNlLCB0b3AgLjVzIGVhc2U7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBib3gtc2hhZG93OiAwIDNweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDEwcHggMzZweCAtNHB4IHJnYmEoNzcsIDk2LCAyMzIsIDAuMyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAmLmhpc3RvcnktLW9wZW4ge1xuICAgIHRvcDogY2FsYyg2N3B4ICsgM3JlbSk7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9XG5cbiAgLmhpc3RvcnlfX2xvZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIG1heC1oZWlnaHQ6IHVuc2V0O1xuICB9XG59XG5cbi5oaXN0b3J5X19sb2cge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHB4ICogMTApO1xufVxuXG4uaGlzdG9yeV9fY2xvc2Uge1xuICB0b3A6IC0xMHB4O1xuICByaWdodDogLTEwcHg7XG59XG5cbi5oaXN0b3J5X19pdGVtIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgbWF4LWNvbnRlbnQgbWF4LWNvbnRlbnQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDIsIG1heC1jb250ZW50KTtcbiAgZ2FwOiAxcmVtIDFyZW07XG59XG5cbi5oaXN0b3J5X19pdGVtLS1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcy1iYWNrZ3JvdW5kKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xufVxuXG4uaGlzdG9yeV9faXRlbS0tZmFpbHVyZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWRhbmdlci1iYWNrZ3JvdW5kKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWRhbmdlcik7XG59XG5cbi5oaXN0b3J5X19pdGVtLXRpdGxlIHtcbiAgZ3JpZC1hcmVhOiAxIC8gMSAvIDIgLyA0O1xufVxuXG4uaGlzdG9yeV9faXRlbS1yb2xsIHtcbiAgZ3JpZC1hcmVhOiAyIC8gMSAvIDMgLyAyO1xufVxuXG4uaGlzdG9yeV9faXRlbS1jaGVjayB7XG4gIGdyaWQtYXJlYTogMiAvIDIgLyAzIC8gMztcbn1cblxuLmhpc3RvcnlfX2l0ZW0tcm9sbGVkIHtcbiAgZ3JpZC1hcmVhOiAyIC8gMyAvIDMgLyA0O1xufVxuXG4uaGlzdG9yeV9faXRlbS1jdXN0b20ge1xuICBncmlkLWFyZWE6IDIgLyAxIC8gMyAvIDM7XG59XG5cbi5oaXN0b3J5X19pdGVtLXN1bSB7XG4gIGdyaWQtYXJlYTogMiAvIDMgLyAzIC8gNDtcbn0iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCB4eGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAaWYgbm90ICRuIHtcbiAgICBAZXJyb3IgXCJicmVha3BvaW50IGAjeyRuYW1lfWAgbm90IGZvdW5kIGluIGAjeyRicmVha3BvaW50c31gXCI7XG4gIH1cbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJG1heCAtIC4wMiwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiAgYnJlYWtwb2ludC1tYXgoJG5leHQsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuZXh0LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/