search-element {
  display: block;
  position: relative;
  padding: 0 0 var(--spacer1) 0;
  box-shadow: initial !important;
}
search-element.loading .search-results-container {
  opacity: 0.3;
  pointer-events: none;
}
search-element.layout-content-right-sidebar {
  grid-gap: 0 var(--gutter1);
}
search-element .ui {
  grid-column: 1/-1;
  padding-top: var(--gutter1);
  padding-bottom: var(--gutter1);
  margin-top: var(--gutter1-);
  grid-gap: 0;
  z-index: 3;
  background-color: var(--background-colour, white);
  border-bottom: 1px solid transparent;
  transition: border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), padding var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .ui:before {
  content: "";
  background-color: inherit;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 100%;
  transform: translateX(var(--translateX, -50%));
  border-bottom: inherit;
  height: calc(100% + 1px);
  width: 100%;
}
search-element .ui .search-types, search-element .ui .search-input, search-element .ui .search-keywords {
  grid-column: 1/-1;
}
search-element .ui .search-keywords .button, search-element .ui .search-controls .button {
  --border-radius:6px;
}
search-element .ui .search-keywords {
  grid-row: 3;
  grid-column: 1/span 2;
  margin-top: var(--gap);
}
search-element .ui .search-controls {
  padding-right: 0 !important;
  margin-top: var(--gap);
  display: grid;
  grid-gap: calc(var(--gap) * 0.5);
  grid-auto-flow: column;
  justify-content: flex-end;
}
search-element .ui.stuck {
  border-bottom-color: var(--border-colours, #dcdcdc);
}
search-element:not(.show-filters) > .left {
  grid-column: 1/-1 !important;
}
search-element:not(.show-filters) > .right {
  grid-column: 1/-1 !important;
}
search-element:not(.show-filters) .search-categories {
  display: none;
}
@media (min-width: 1121px) {
  search-element:not(.show-filters) .search-categories {
    grid-template-columns: repeat(auto-fill, minmax(600px, 1fr));
  }
}
search-element .search-types {
  display: grid;
  position: relative;
  margin-top: calc(var(--gap) * -1);
  grid-gap: var(--gutter1);
  justify-content: start;
}
search-element .search-types button {
  position: relative;
  grid-row: 1;
  text-transform: uppercase;
  font-size: 1em;
  font-weight: bold;
  color: #131f6b;
  padding: var(--gap) 0;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-types button::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  transition: transform var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  height: 6px;
  width: 100%;
  background-color: var(--secondary, #df3035);
  display: block;
  pointer-events: none;
  transform: scaleY(0);
  transform-origin: 50% 100%;
}
@media (hover: hover) {
  search-element .search-types button:hover {
    color: #df3035;
  }
  search-element .search-types button:hover::after {
    transform: scaleY(0.5);
  }
}
search-element .search-types button.current {
  color: #131f6b;
}
search-element .search-types button.current::after {
  transform: scaleY(1);
}
search-element .search-input {
  --search-input-padding: var(--gutter1);
  --search-icon-size: 26px;
  --search-input-padding-left: calc(var(--search-input-padding) * 2 + var(--search-icon-size));
  --search-input-padding-right: var(--search-input-padding-left);
  display: block;
  position: relative;
}
search-element .search-input input[type=search] {
  --font-colour: #6a6a6a;
  --background-colour: #FFFFFF;
  --border-radius: var(--border-radius, 6px);
  --border-colour: var(--font-colour);
  --border: 1px solid var(--border-colour);
  --padding: var(--gap) var(--gap);
  border-radius: var(--border-radius, 6px);
  background-color: var(--background-colour);
  border: var(--border);
  padding: var(--padding);
  font-size: 0.875em;
  color: var(--font-colour);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding: var(--search-input-padding) var(--search-input-padding-right) var(--search-input-padding) var(--search-input-padding-left);
  width: 100%;
  border-radius: 6px;
  font-size: 1.25em;
  border: 1px solid var(--border-colours, #dcdcdc);
  transition: padding var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-input input[type=search]::-moz-placeholder {
  -moz-transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-input input[type=search]::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-input input[type=search]:focus {
  outline-color: #131f6b;
}
search-element .search-input input[type=search]:focus::-moz-placeholder {
  color: transparent;
}
search-element .search-input input[type=search]:focus::placeholder {
  color: transparent;
}
search-element .search-input input[type=search].autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
search-element .search-input input[type=search][value=""] ~ svg.search {
  color: #969695;
}
search-element .search-input input[type=search][value=""] ~ button.close {
  pointer-events: none;
  opacity: 0;
  transform: translateY(-50%) scale(0.8) rotate(0deg);
}
search-element .search-input svg.search {
  width: var(--search-icon-size);
  height: var(--search-icon-size);
  position: absolute;
  top: 50%;
  color: #df3035;
  left: calc(var(--search-input-padding) * 1);
  transform: translateY(-50%);
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), left var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-input button.close {
  width: var(--search-icon-size);
  height: var(--search-icon-size);
  position: absolute;
  top: 50%;
  color: #df3035;
  right: calc(var(--search-input-padding) * 1);
  transform: translateY(-50%) scale(1) rotate(0deg);
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55), right var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  search-element .search-input button.close:hover {
    color: #131f6b;
    transform: translateY(-50%) scale(1.06) rotate(90deg);
  }
}
search-element .search-keywords {
  position: relative;
  overflow: hidden;
}
search-element .search-keywords > div {
  display: grid;
  grid-gap: calc(var(--gap) * 0.5);
  justify-content: start;
}
search-element .search-keywords .button {
  grid-row: 1;
  width: -moz-fit-content;
  width: fit-content;
}
search-element .search-keywords .button.outline {
  text-transform: initial;
  white-space: nowrap;
  --background-colour: white;
}
@media (hover: hover) {
  search-element .search-keywords .button.outline:not(:hover) {
    --font-colour: #969695;
    --border-colour: var(--border-colours, #dcdcdc);
  }
  search-element .search-keywords .button.outline:hover {
    --hover-font-colour: #df3035;
    --hover-border-colour: #df3035;
    --hover-background-colour: #FFFFFF;
  }
}
search-element .search-keywords .button.outline.active {
  --font-colour: #FFFFFF !important;
  --border-colour: #df3035 !important;
  --background-colour: #df3035 !important;
}
@media (hover: hover) {
  search-element .search-keywords .button.outline.active:hover {
    --hover-font-colour: #FFFFFF !important;
    --hover-border-colour: #df3035 !important;
    --hover-background-colour: #df3035 !important;
  }
}
search-element .search-keywords .button.outline.active.active {
  --hover-font-colour: #FFFFFF !important;
  --hover-border-colour: #df3035 !important;
  --hover-background-colour: #df3035 !important;
}
@media (max-width: 1680px) {
  search-element .search-keywords {
    min-width: calc(100% + var(--gutter2));
    left: var(--gutter1-);
  }
  search-element .search-keywords > div {
    padding-left: var(--gutter1);
    padding-right: var(--gutter1);
  }
  search-element .search-keywords > div .button:last-of-type {
    margin-right: var(--gutter1);
  }
}
search-element .search-results-container {
  display: block;
  margin-top: var(--gutter1);
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-results-container > .heading {
  display: none;
}
search-element .search-results-container .no-results {
  padding: var(--gutter1);
  border-radius: var(--border-radius, 6px);
  max-width: 900px;
  border: 1px dashed #dcdcdc;
}
search-element .search-results-container .results {
  display: grid;
  grid-gap: var(--gutter0);
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
}
search-element.list-style-rows .search-results-container .results {
  grid-template-columns: 1fr;
}
search-element.list-style-rows .search-results-container .results .result a {
  padding: var(--gutter0);
}

search-element .search-results-container .result {
  display: block;
}
search-element .search-results-container .result a {
  display: flex;
  text-decoration: none;
  flex-direction: column;
  border-radius: 6px;
  height: 100%;
  border: 1px solid var(--border-colours, #dcdcdc);
  padding: var(--gutter1);
  transition: border var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
@media (hover: hover) {
  search-element .search-results-container .result a:hover {
    border-color: #df3035 !important;
  }
}
search-element .search-results-container .result a:active {
  border-color: #292b68 !important;
  transform: scale(0.98);
}
search-element .search-results-container .result a:visited div {
  color: #292b68;
}
search-element .search-results-container .result a .heading {
  font-size: 1em;
}
search-element .search-results-container .result a div {
  font-size: 0.875em;
}
search-element:not(.show-highlights) .search-results-container .result mark {
  background-color: initial;
  color: inherit;
  border-radius: initial;
  padding: initial;
  transition: initial;
}

search-element .search-results-container .result a .image {
  height: 100px;
  order: -1;
  border-top-left-radius: calc(var(--border-radius, 6px) - 1px);
  border-top-right-radius: calc(var(--border-radius, 6px) - 1px);
  margin: var(--gutter1-) var(--gutter1-) var(--gutter1) var(--gutter1-);
}
search-element .search-results-container .result a[data-type]::after {
  content: attr(data-type);
  padding: 4px 8px;
  background-color: #f4f4f4;
  border: 1px solid #dcdcdc;
  font-size: 0.625em;
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
  border-radius: 4px;
  margin-top: calc(var(--gap) * 0.5);
  border-left: 4px solid var(--tag-colour, #969695);
}
search-element .search-results-container .result a[data-type="Metal Glossary"]::after {
  --tag-colour: #131f6b;
}
search-element .search-results-container .result a[data-type=Datasheet]::after {
  --tag-colour: #df3035;
}
search-element .search-results-container .result a[data-type=News]::after {
  --tag-colour: #50bc08;
}
search-element .button.search-highlight-toggle {
  --padding:6px !important;
  --background-colour: white;
  --border-colour: #0095ff;
  --font-colour:#0095ff;
}
search-element .button.search-highlight-toggle svg {
  margin: 0 !important;
  width: 1.44em;
}
search-element .button.search-categories-toggle, search-element .button.search-clear-filters {
  text-transform: initial;
  white-space: nowrap;
}
@media (hover: hover) {
  search-element .button.search-clear-filters:hover {
    --stroke:#df3035;
  }
}
search-element .button.search-list-style-toggle {
  --padding:6px !important;
  display: flex;
}
search-element .button.search-list-style-toggle svg {
  margin: 0 !important;
  opacity: 0;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .button.search-list-style-toggle svg + svg {
  position: absolute;
}
search-element.show-highlights .button.search-highlight-toggle {
  --background-colour: #0095ff;
  --font-colour:white;
}
search-element:not(.showing-highlight-markers) .button.search-highlight-toggle {
  display: none;
}
search-element:not(.filters-active) .button.search-clear-filters {
  display: none;
}
search-element.list-style-rows .button.search-list-style-toggle svg.list-grid {
  opacity: 1;
}
search-element.list-style-grid .button.search-list-style-toggle svg.list-rows {
  opacity: 1;
}
search-element .search-categories {
  --gap: 8px;
  --heading-height: 43px;
  margin-top: var(--gutter1);
  display: grid;
  position: relative;
  border-radius: var(--border-radius, 6px);
  border: 1px solid var(--border-colours, #dcdcdc);
  padding: 0 0 var(--gutter1) 0 !important;
  background: #f4f4f4;
  height: -moz-fit-content;
  height: fit-content;
  flex-direction: column;
}
search-element.sticky-filter .search-categories {
  position: sticky;
  top: calc(var(--search-ui-height) + var(--gutter1));
  height: calc(100vh - var(--search-ui-height) - var(--gutter3));
  overflow: hidden;
  overflow-y: auto;
  display: flex;
}
search-element.sticky-filter .search-categories::before, search-element.sticky-filter .search-categories::after {
  content: initial;
}
search-element.sticky-filter .search-categories summary {
  background-color: #f4f4f4;
  top: 0;
}

search-element.no-results .search-categories {
  opacity: 0;
}
search-element.no-results .search-controls .button:not(.search-clear-filters) {
  display: none;
}
search-element.no-results .search-controls .search-clear-filters::before {
  content: "";
  position: absolute;
  top: 0%;
  left: 0%;
  width: 100%;
  height: 100%;
  border-radius: var(--border-radius, 6px);
  border: 1px solid #df3035;
  animation-name: flash;
  animation-duration: 1s;
  animation-iteration-count: infinite;
}
@keyframes flash {
  0% {
    transform: scale(1);
    opacity: 0.8;
  }
  100% {
    transform: scale(1.2, 1.8);
    opacity: 0;
  }
}

search-element .search-categories::after, search-element .search-categories::before {
  content: "";
  position: sticky;
  grid-row: 1;
  grid-column: 1/-1;
  margin-left: -1px;
  margin-top: -1px;
  width: calc(100% + 2px);
  height: var(--heading-height);
}
search-element .search-categories::after {
  top: calc(var(--search-ui-height) + var(--gutter1));
  background: inherit;
  border: 1px solid var(--border-colours, #dcdcdc);
  border-bottom: 1px dashed var(--border-colours, #dcdcdc);
  border-top-left-radius: var(--border-radius, 6px);
  border-top-right-radius: var(--border-radius, 6px);
  box-shadow: 0px -4px white;
}
search-element .search-categories::before {
  top: calc(var(--search-ui-height) - var(--heading-height) + var(--gutter1));
  margin-top: calc(-1 * var(--heading-height) - 1px);
  background: white;
  z-index: 2;
}
search-element .search-categories h4 {
  display: none;
  position: absolute;
  bottom: 100%;
  margin-bottom: var(--gutter1);
  font-size: 2em;
  line-height: 1.3;
}
search-element:not(.show-filters) .search-categories {
  margin-top: calc(var(--spacer1) + var(--gutter1));
}
search-element:not(.show-filters) .search-categories h4 {
  display: block;
}
search-element:not(.show-filters) .search-categories details {
  border-bottom: initial !important;
}
search-element:not(.show-filters) .search-categories summary {
  pointer-events: none;
}
search-element:not(.show-filters) .search-categories summary svg {
  display: none !important;
}

@media (max-width: 1120px) {
  search-element .search-categories {
    margin-top: calc(var(--spacer1) + var(--gutter1));
  }
  search-element .search-categories h4 {
    display: block;
  }
  search-element .search-categories details {
    border-bottom: initial !important;
  }
  search-element .search-categories summary {
    pointer-events: none;
  }
  search-element .search-categories summary svg {
    display: none !important;
  }
}
search-element .search-categories details:not([hidden]) .content {
  display: flex;
}
search-element .search-categories details:not([open]) summary {
  padding-bottom: calc(var(--gap) * 0.5);
}
search-element .search-categories details:not([open]) summary svg.plus {
  display: block;
}
search-element .search-categories details:not([open]) summary svg.minus {
  display: none;
}
search-element .search-categories details:not(:last-of-type) {
  border-bottom: 1px dashed #dcdcdc;
}
search-element .search-categories details summary {
  font-size: 1.0625em;
  line-height: 1.6;
  display: flex;
  align-items: center;
  position: sticky;
  top: calc(var(--search-ui-height) + var(--gutter1));
  box-sizing: border-box;
  z-index: 1;
  color: #131f6b;
  height: var(--heading-height);
  text-transform: uppercase;
  font-weight: bold;
  justify-content: space-between;
  padding: var(--gap) var(--gutter1);
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-categories details summary svg {
  width: 10px;
  height: 10px;
  stroke: #969695;
  stroke-width: 1.6em;
  transition: stroke var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-categories details summary svg.plus {
  display: none;
}
search-element .search-categories details summary svg.minus {
  display: block;
}
@media (hover: hover) {
  search-element .search-categories details summary:hover {
    cursor: pointer;
    color: #df3035;
  }
  search-element .search-categories details summary:hover svg {
    stroke: #df3035;
  }
}
search-element .search-categories details .content {
  flex-wrap: wrap;
  position: relative;
  margin-left: calc(-1 * (calc(var(--gap) * 0.5) / 2));
  margin-top: calc(-1 * (calc(var(--gap) * 0.5) / 2));
  padding: 0 var(--gutter1) calc(var(--gap) * 2) var(--gutter1);
}
search-element .search-categories details li {
  display: flex;
  margin: calc(calc(var(--gap) * 0.5) / 2);
}
search-element .search-categories details li[data-count="0"] {
  display: none;
}
search-element .search-categories details li input[type=checkbox] {
  display: none;
}
search-element .search-categories details li input[type=checkbox] ~ label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: calc(var(--gap) * 0.5) var(--gap);
  min-width: 9ch;
  font-size: 0.8125em;
  border-radius: 6px;
  border: 1px solid #dcdcdc;
  background-color: white;
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  search-element .search-categories details li input[type=checkbox] ~ label:hover {
    cursor: pointer;
    border-color: #df3035;
  }
}
search-element .search-categories details li input[type=checkbox]:checked ~ label {
  background-color: #df3035;
  color: white;
  border-color: #df3035;
}
search-element .search-categories details li input[type=checkbox]:checked ~ label span.count {
  background-color: rgba(255, 255, 255, 0.3);
}
search-element .search-categories details li span.count {
  display: inline-flex;
  place-items: center;
  place-content: center;
  border-top-right-radius: 5px;
  border-bottom-right-radius: 5px;
  background-color: #f4f4f4;
  padding: calc(var(--gap) * 0.5);
  margin-right: calc(var(--gap) * -1);
  margin-top: calc(var(--gap) * -1);
  margin-bottom: calc(var(--gap) * -1);
  margin-left: var(--gap);
  height: 100%;
  min-width: 3ch;
  font-size: 0.75em;
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (max-width: 1120px) {
  search-element .button.search-list-style-toggle {
    display: none;
  }
  search-element.list-style-rows .search-results-container .results .result a {
    padding: var(--gutter1);
  }
  search-element .search-keywords {
    display: none;
  }
  search-element .ui .search-controls {
    position: fixed;
    bottom: 0;
    left: 0;
    padding: calc(var(--gap) * 0.5) var(--gutter1) var(--gap) var(--gutter1) !important;
    border-top: 1px solid var(--border-colours, #dcdcdc);
    margin: 0;
    width: 100vw;
    background-color: white;
  }
  :root[data-browser*=chrome][data-device*=phone] search-element .ui .search-controls {
    padding: calc(var(--gap) * 0.5) var(--gutter1) calc(var(--gap) + 4px) var(--gutter1) !important;
  }
  search-element .search-categories {
    padding-top: var(--gutter1) !important;
  }
  search-element .search-categories details summary {
    top: var(--search-ui-height);
    background: #f4f4f4;
  }
  search-element .search-categories::before, search-element .search-categories::after {
    content: initial;
  }
}
search-element.grey {
  --background-colour: #f4f4f4;
  --border-colours: #f4f4f4;
  background-color: #f4f4f4;
}
search-element.grey:before {
  content: "";
  background-color: inherit;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 100%;
  transform: translateX(var(--translateX, -50%));
}
search-element.grey .ui:not(.stuck) {
  padding-top: var(--spacer0);
  padding-bottom: var(--spacer0);
}
search-element.grey .ui::before {
  border-bottom-color: #dcdcdc;
}
search-element.grey .search-results-container, search-element.grey .search-categories {
  margin-top: var(--spacer0);
}
search-element.grey .results .result a, search-element.grey .search-categories {
  background-color: white;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc2VhcmNoLnNjc3MiLCJjb21wb25lbnRzL3NlYXJjaC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvaGVscGVycy9fYnJlYWsuc2NzcyIsIl92YXJpYWJsZXMvY29sb3Vycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9faG92ZXIuc2NzcyIsIl9lbGVtZW50cy9mb3JtLnNjc3MiLCJfdmFyaWFibGVzL3VuaXRzLnNjc3MiLCJfZWxlbWVudHMvbWFyay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvYW5pbWF0aW9uL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9faGVhZGluZ3Muc2NzcyIsIl92YXJpYWJsZXMvdHJhbnNpdGlvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BO0VBRUUsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsNkJBQUE7RUFDQSw4QkFBQTtBQ05GO0FEU0k7RUFDRSxZQUFBO0VBQ0Esb0JBQUE7QUNQTjtBRFdFO0VBQ0UsMEJBQUE7QUNUSjtBRFlFO0VBQ0UsaUJBQUE7RUFDQSwyQkUwR087RUZ6R1AsOEJFeUdPO0VGeEdQLDJCRXdHbUM7RUZ2R25DLFdBQUE7RUFDQSxVQUFBO0VBQ0EsaURBQUE7RUFDQSxvQ0FBQTtFQUNBLHFRQUFBO0FDVko7QUVoQkU7RUFDRSxXQUFBO0VBQ0YseUJBQUE7RUFDQSxXQUFBO0VDYUEsa0JBQUE7RUFTRSxNQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsOENBQUE7RUpBRSxzQkFBQTtFQUNBLHdCQUFBO0VBQ0EsV0FBQTtBQ0ROO0FER0k7RUFDRSxpQkFBQTtBQ0ROO0FESU07RUFBVSxtQkFBQTtBQ0RoQjtBRElJO0VBQ0UsV0FBQTtFQUNBLHFCQUFBO0VBQ0Esc0JFQ0U7QURIUjtBRE1JO0VBQ0UsMkJBQUE7RUFDQSxzQkVMRTtFRk1GLGFBQUE7RUFDQSxnQ0VSRTtFRlNGLHNCQUFBO0VBQ0EseUJBQUE7QUNKTjtBRE1JO0VBQ0UsbURBQUE7QUNKTjtBRGlCSTtFQUFVLDRCQUFBO0FDZGQ7QURlSTtFQUFXLDRCQUFBO0FDWmY7QURhSTtFQUNFLGFBQUE7QUNYTjtBSS9ERTtFTHlFRTtJQUUrQiw0REFBQTtFQ1JqQztBQUNGO0FEV0U7RUFDRSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQ0VwQ3VCO0VGcUN2Qix3QkU0Q087RUYzQ1Asc0JBQUE7QUNUSjtBRFVJO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxjTTlFQztFTitFRCxxQkFBQTtFQUNBLG1JQUFBO0FDUk47QURVTTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFFQSxPQUFBO0VBQ0EsdUlBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUVBLDJDTXBFSTtFTnFFSixjQUFBO0VBQ0Esb0JBQUE7RUFDQSxvQkFBQTtFQUNBLDBCQUFBO0FDVlI7QU1uR0U7RUFDRTtJUGdISSxjTTlGRjtFTG9GSjtFRFdNO0lBQ0Usc0JBQUE7RUNUUjtBQUNGO0FEV007RUFDRSxjTTFHRDtBTGlHUDtBRFVRO0VBQ0Usb0JBQUE7QUNSVjtBRGdCRTtFQUVFLHNDQUFBO0VBQ0Esd0JBQUE7RUFDQSw0RkFBQTtFQUNBLDhEQUFBO0VBRUEsY0FBQTtFQUNBLGtCQUFBO0FDaEJKO0FPekVFO0VBL0NBLHNCQUFBO0VBQ0EsNEJBQUE7RUFDQSwwQ0FBQTtFQUNBLG1DQUFBO0VBQ0Esd0NBQUE7RUFDQSxnQ0FBQTtFQUVBLHdDQ2tDZTtFRGpDZiwwQ0FBQTtFQUNBLHFCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBRUEsd0JBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VSMkhJLG1JQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnREFBQTtFQUNBLHFJQUFBO0FDRE47QU83SEU7RUFDRSx3SUFBQTtFQUFBLG1JQUFBO0FQK0hKO0FPaElFO0VBQ0UsbUlBQUE7QVArSEo7QU83SEU7RUFJRSxzQkZiRztBTHlJUDtBTy9ISTtFQUNFLGtCQUFBO0FQaUlOO0FPbElJO0VBQ0Usa0JBQUE7QVBpSU47QU83SEU7RUFDRSw2QkFBQTtFQUNBLDRCQUFBO0FQK0hKO0FEVlE7RUFBZSxjTS9IaEI7QUw0SVA7QURaUTtFQUFpQixvQkFBQTtFQUFzQixVQUFBO0VBQVksbURBQUE7QUNpQjNEO0FEYkk7RUFDRSw4QkFBQTtFQUNBLCtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0EsY00xSUE7RU4ySUEsMkNBQUE7RUFDQSwyQkFBQTtFQUNBLDJQQUFBO0FDZU47QURaSTtFQUNFLDhCQUFBO0VBQ0EsK0JBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxjTXJKQTtFTnNKQSw0Q0FBQTtFQUNBLGlEQUFBO0VBQ0EsOGFBQUE7QUNjTjtBTXpMRTtFQUNFO0lQNEtJLGNNaEtEO0lOaUtDLHFEQUFBO0VDZ0JOO0FBQ0Y7QURWRTtFQUVFLGtCQUFBO0VBQ0EsZ0JBQUE7QUNXSjtBRFZJO0VBQ0UsYUFBQTtFQUNBLGdDRTlJRTtFRitJRixzQkFBQTtBQ1lOO0FEVkk7RUFDRSxXQUFBO0VBQ0EsdUJBQUE7RUFBQSxrQkFBQTtBQ1lOO0FEVkk7RUFDRSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsMEJBQUE7QUNZTjtBRFhNO0VBQ0U7SUFDRSxzQkFBQTtJQUNBLCtDQUFBO0VDYVI7RURYTTtJQUNFLDRCQUFBO0lBQ0EsOEJBQUE7SUFDQSxrQ0FBQTtFQ2FSO0FBQ0Y7QURYTTtFQUVFLGlDQUFBO0VBQ0EsbUNBQUE7RUFDQSx1Q0FBQTtBQ1lSO0FNak9FO0VBQ0U7SVBzTk0sdUNBQUE7SUFDQSx5Q0FBQTtJQUNBLDZDQUFBO0VDY1I7QUFDRjtBTWpPSTtFUGdOTSx1Q0FBQTtFQUNBLHlDQUFBO0VBQ0EsNkNBQUE7QUNvQlY7QUl2T0U7RUwrS0E7SUF5Q0ksc0NBQUE7SUFDQSxxQkVoR2lDO0VEbUhyQztFRGxCSTtJQUNFLDRCRWxHRztJRm1HSCw2QkVuR0c7RUR1SFQ7RURuQk07SUFDRSw0QkVyR0M7RUQwSFQ7QUFDRjtBRGRFO0VBRUUsY0FBQTtFQUNBLDBCRWhITztFRmtIUCxxSUFBQTtBQ2NKO0FEWkk7RUFBYSxhQUFBO0FDZWpCO0FEYkk7RUFDRSx1QkV2SEs7RUZ3SEwsd0NTN01XO0VUOE1YLGdCQUFBO0VBQ0EsMEJBQUE7QUNlTjtBRFpJO0VBQ0UsYUFBQTtFQUNBLHdCRWhJSztFRmlJTCw0REFBQTtBQ2NOO0FEYmU7RUFDUCwwQkFBQTtBQ2VSO0FEZFE7RUFDRSx1QkVySUM7QURxSlg7O0FEVkk7RUFDRSxjQUFBO0FDYU47QURaTTtFQUNFLGFBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsZ0RBQUE7RUFDQSx1QkVuSkc7RUZvSkgsc1RBQUE7QUNjUjtBTWpTRTtFQUNFO0lQcVJNLGdDQUFBO0VDZVI7QUFDRjtBRGRRO0VBQ0UsZ0NBQUE7RUFDQSxzQkFBQTtBQ2dCVjtBRFpVO0VBQU0sY01oUlI7QUwrUlI7QURWUTtFQUNFLGNBQUE7QUNZVjtBRFZRO0VBQ0Usa0JBQUE7QUNZVjtBRFZpQjtFVW5TZix5QkFBQTtFQUNBLGNBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7QVRnVEY7O0FEZFE7RUFDRSxhQUFBO0VBRUEsU0FBQTtFQUNBLDZEQUFBO0VBQ0EsOERBQUE7RUFDQSxzRUFBQTtBQ2dCVjtBRGJVO0VBQ0Usd0JBQUE7RUFDQSxnQkFBQTtFQUNBLHlCTWxTSjtFTm1TSSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSx1QkFBQTtFQUFBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQ0VqUko7RUZrUkksaURBQUE7QUNlWjtBRFpRO0VBQXVDLHFCQUFBO0FDZS9DO0FEZFE7RUFBa0MscUJBQUE7QUNpQjFDO0FEaEJRO0VBQTZCLHFCQUFBO0FDbUJyQztBRFJJO0VBQ0Usd0JBQUE7RUFDQSwwQkFBQTtFQUNBLHdCQUFBO0VBQ0EscUJBQUE7QUNVTjtBRFRNO0VBQU0sb0JBQUE7RUFBcUIsYUFBQTtBQ2FqQztBRFZJO0VBQ0UsdUJBQUE7RUFDQSxtQkFBQTtBQ1lOO0FNcldFO0VBQ0U7SVA2VkksZ0JBQUE7RUNXTjtBQUNGO0FEUkk7RUFDRSx3QkFBQTtFQUNBLGFBQUE7QUNVTjtBRFRNO0VBQ0Usb0JBQUE7RUFDQSxVQUFBO0VBQ0EscUlBQUE7QUNXUjtBRFZRO0VBQVEsa0JBQUE7QUNhaEI7QURSRTtFQUNFLDRCQUFBO0VBQ0EsbUJBQUE7QUNVSjtBRFJFO0VBQ0UsYUFBQTtBQ1VKO0FEUkU7RUFDRSxhQUFBO0FDVUo7QURQSTtFQUFnQixVQUFBO0FDVXBCO0FEUEk7RUFBZ0IsVUFBQTtBQ1VwQjtBRExFO0VBeUNFLFVBQUE7RUFDQSxzQkFBQTtFQUVBLDBCRTlTTztFRitTUCxhQUFBO0VBRUEsa0JBQUE7RUFDQSx3Q1N2WWE7RVR3WWIsZ0RBQUE7RUFFQSx3Q0FBQTtFQUNBLG1CTS9aSTtFTmdhSix3QkFBQTtFQUFBLG1CQUFBO0VBQ0Esc0JBQUE7QUNwQ0o7QURoQmE7RUFDUCxnQkFBQTtFQUNBLG1EQUFBO0VBQ0EsOERBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtBQ2tCTjtBRGhCTTtFQUFzQixnQkFBQTtBQ21CNUI7QURoQk07RUFBVSx5Qk14WFI7RU53WGlDLE1BQUE7QUNvQnpDOztBRGhCTTtFQUFxQixVQUFBO0FDb0IzQjtBRG5CTTtFQUFzRCxhQUFBO0FDc0I1RDtBRHJCTTtFQUVFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSx3Q1NsWFM7RVRtWFQseUJBQUE7RUFNQSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsbUNBQUE7QUNpQlI7QVV6Ykk7RVhrYU07SUFBSyxtQkFBQTtJQUFvQixZQUFBO0VDNEJqQztFRDNCUTtJQUFPLDBCQUFBO0lBQTJCLFVBQUE7RUMrQjFDO0FBQ0Y7O0FEUEk7RUFDRSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSw2QkFBQTtBQ1VOO0FEUEk7RUFDRSxtREFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0RBQUE7RUFFQSx3REFBQTtFQUNBLGlEU2hhVztFVGlhWCxrRFNqYVc7RVRrYVgsMEJBQUE7QUNRTjtBRE5JO0VBQ0UsMkVBQUE7RUFDQSxrREFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtBQ1FOO0FETEk7RUFDRSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsNkJFMVZLO0VVWVQsY0FBQTtFQVdJLGdCQTNGYztBWHVhcEI7QURMYTtFQUNQLGlEQUFBO0FDT047QUROTTtFQUFLLGNBQUE7QUNTWDtBRFJNO0VBQVUsaUNBQUE7QUNXaEI7QURWTTtFQUFVLG9CQUFBO0FDYWhCO0FEYnNDO0VBQU0sd0JBQUE7QUNnQjVDOztBSTNlRTtFTDJYQTtJQW1HSSxpREFBQTtFQ2tCSjtFRGpCSTtJQUFLLGNBQUE7RUNvQlQ7RURuQkk7SUFBVSxpQ0FBQTtFQ3NCZDtFRHJCSTtJQUFVLG9CQUFBO0VDd0JkO0VEeEJvQztJQUFNLHdCQUFBO0VDMkIxQztBQUNGO0FEeEJNO0VBQTJCLGFBQUE7QUMyQmpDO0FEMUJNO0VBQ0Usc0NFaGNBO0FENGRSO0FEM0JRO0VBQVcsY0FBQTtBQzhCbkI7QUQ3QlE7RUFBWSxhQUFBO0FDZ0NwQjtBRDlCTTtFQUF1QixpQ0FBQTtBQ2lDN0I7QUQvQk07RVloVUosbUJBQUE7RUFXSSxnQkF6SGM7RVpnYlosYUFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtREFBQTtFQUVBLHNCQUFBO0VBQ0EsVUFBQTtFQUNBLGNNL2VEO0VOZ2ZDLDZCQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtFQUNBLDhCQUFBO0VBRUEsa0NBQUE7RUFDQSxtSUFBQTtBQ2dDUjtBRC9CUTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZU1uZkg7RU5vZkcsbUJBQUE7RUFDQSxvSUFBQTtBQ2lDVjtBRGhDVTtFQUFTLGFBQUE7QUNtQ25CO0FEbENVO0VBQVUsY0FBQTtBQ3FDcEI7QU1oakJFO0VBQ0U7SVA2Z0JNLGVBQUE7SUFDQSxjTTVmSjtFTGtpQko7RURyQ1E7SUFDRSxlTTlmTjtFTHFpQko7QUFDRjtBRG5DTTtFQUNFLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG9EQUFBO0VBQ0EsbURBQUE7RUFDQSw2REFBQTtBQ3FDUjtBRGpDTTtFQUNFLGFBQUE7RUFFQSx3Q0FBQTtBQ2tDUjtBRGpDUTtFQUNFLGFBQUE7QUNtQ1Y7QURqQ1E7RUFDRSxhQUFBO0FDbUNWO0FEbENVO0VBRUUsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsOEJBQUE7RUFDQSwwQ0FBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSx1QkFBQTtFQUNBLDZIYTlpQkU7QVppbEJkO0FNdGxCRTtFQUNFO0lQb2pCVSxlQUFBO0lBQ0EscUJNbmlCUjtFTHdrQko7QUFDRjtBRG5DVTtFQUNFLHlCTXZpQk47RU53aUJNLFlBQUE7RUFDQSxxQk16aUJOO0FMOGtCTjtBRHBDWTtFQUNFLDBDQUFBO0FDc0NkO0FEakNRO0VBQ0Usb0JBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EsNEJBQUE7RUFDQSwrQkFBQTtFQUNBLHlCTW5qQkY7RU5vakJFLCtCRTdoQkY7RUY4aEJFLG1DRTdoQmlCO0VGOGhCakIsaUNFOWhCaUI7RUYraEJqQixvQ0UvaEJpQjtFRmdpQmpCLHVCRWhpQkY7RUZpaUJFLFlBQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSw2SGE3a0JJO0FaZ25CZDtBSS9tQkU7RUxxbEJFO0lBQ0UsYUFBQTtFQzZCSjtFRDNCRTtJQUNFLHVCRWhlSztFRDZmVDtFRDNCRTtJQUFtQixhQUFBO0VDOEJyQjtFRDdCRTtJQUNFLGVBQUE7SUFDQSxTQUFBO0lBQ0EsT0FBQTtJQUNBLG1GQUFBO0lBQ0Esb0RBQUE7SUFDQSxTQUFBO0lBQ0EsWUFBQTtJQUNBLHVCQUFBO0VDK0JKO0VEOUJhO0lBQ1AsK0ZBQUE7RUNnQ047RUQ3QkU7SUFDRSxzQ0FBQTtFQytCSjtFRDlCSTtJQUFrQiw0QkFBQTtJQUE2QixtQk0zbEI3QztFTDZuQk47RURqQ0k7SUFBc0IsZ0JBQUE7RUNvQzFCO0FBQ0Y7QURoQ0U7RUFDRSw0QkFBQTtFQUNBLHlCQUFBO0VBQ0EseUJNcG1CSTtBTHNvQlI7QUUxcEJFO0VBQ0UsV0FBQTtFQUNGLHlCQUFBO0VBQ0EsV0FBQTtFQ2FBLGtCQUFBO0VBU0UsTUFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLDhDQUFBO0FId29CSjtBRDFDTTtFQUFnQiwyQkUxaEJYO0VGMGhCaUMsOEJFMWhCakM7QUR3a0JYO0FEN0NNO0VBQ0UsNEJNeG1CQTtBTHVwQlI7QUQ1Q0k7RUFDRSwwQkVoaUJLO0FEOGtCWDtBRDVDSTtFQUNFLHVCQUFBO0FDOENOIiwiZmlsZSI6ImNvbXBvbmVudHMvc2VhcmNoLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZWFyY2hcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5zZWFyY2gtZWxlbWVudCB7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICBwYWRkaW5nOjAgMCAkc3BhY2VyIDA7IFxuICBib3gtc2hhZG93OmluaXRpYWwgIWltcG9ydGFudDsgXG4gIFxuICAmLmxvYWRpbmcge1xuICAgIC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIge1xuICAgICAgb3BhY2l0eTowLjM7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIge1xuICAgIGdyaWQtZ2FwOjAgJGd1dHRlcjtcbiAgfVxuXG4gIC51aSB7XG4gICAgZ3JpZC1jb2x1bW46MSAvIC0xO1xuICAgIHBhZGRpbmctdG9wOiRndXR0ZXI7XG4gICAgcGFkZGluZy1ib3R0b206JGd1dHRlcjtcbiAgICBtYXJnaW4tdG9wOiRndXR0ZXItO1xuICAgIGdyaWQtZ2FwOjA7IFxuICAgIHotaW5kZXg6MztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQtY29sb3VyLCAje3doaXRlfSk7XG4gICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uLCBwYWRkaW5nICR0cmFuc2l0aW9uO1xuXG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1ibG93b3V0IHtcbiAgICAgIGJvcmRlci1ib3R0b206aW5oZXJpdDtcbiAgICAgIGhlaWdodDpjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5zZWFyY2gtdHlwZXMsIC5zZWFyY2gtaW5wdXQsIC5zZWFyY2gta2V5d29yZHMge1xuICAgICAgZ3JpZC1jb2x1bW46MSAvIC0xO1xuICAgIH1cbiAgICAuc2VhcmNoLWtleXdvcmRzLCAuc2VhcmNoLWNvbnRyb2xzIHtcbiAgICAgIC5idXR0b24geyAtLWJvcmRlci1yYWRpdXM6NnB4OyB9XG4gICAgfVxuXG4gICAgLnNlYXJjaC1rZXl3b3JkcyB7XG4gICAgICBncmlkLXJvdzozOyBcbiAgICAgIGdyaWQtY29sdW1uOjEgLyBzcGFuIDI7XG4gICAgICBtYXJnaW4tdG9wOiRnYXA7IFxuXG4gICAgfVxuXG4gICAgLnNlYXJjaC1jb250cm9scyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tdG9wOiRnYXA7IFxuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtZ2FwOiRnYXAwO1xuICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjsgXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgICAmLnN0dWNrIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tYm9yZGVyLWNvbG91cnMsICN7JGdyZXk0fSk7XG4gICAgICAvLyAuc2VhcmNoLWlucHV0IHtcbiAgICAgIC8vICAgLS1zZWFyY2gtaW5wdXQtcGFkZGluZzojeyRndXR0ZXIwfTtcbiAgICAgIC8vICAgLS1zZWFyY2gtaW5wdXQtcGFkZGluZy1sZWZ0IDogY2FsYyh2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZykgKiAyICsgdmFyKC0tc2VhcmNoLWljb24tc2l6ZSkpO1xuICAgICAgLy8gfVxuICAgICAgfiAuc2VhcmNoLWNhdGVnb3JpZXMge1xuICAgXG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICAmOm5vdCguc2hvdy1maWx0ZXJzKSB7XG4gICAgPiAubGVmdCB7IGdyaWQtY29sdW1uOiAxIC8gLTEgIWltcG9ydGFudDt9XG4gICAgPiAucmlnaHQgeyBncmlkLWNvbHVtbjogMSAvIC0xICFpbXBvcnRhbnQ7fVxuICAgIC5zZWFyY2gtY2F0ZWdvcmllcyB7IFxuICAgICAgZGlzcGxheTpub25lOyBcbiAgICAgIEBpbmNsdWRlIGJyZWFrLW91dChtZWRpdW0pIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoNjAwcHgsIDFmcikpOyB9XG4gICAgfVxuICB9XG5cbiAgLnNlYXJjaC10eXBlcyB7XG4gICAgZGlzcGxheTpncmlkO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiRnYXAtO1xuICAgIGdyaWQtZ2FwOiRndXR0ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICBidXR0b24ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZ3JpZC1yb3c6MTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6Zm9udC1zaXplKDE2KTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6JGJsdWU7XG4gICAgICBwYWRkaW5nOiRnYXAgMDtcbiAgICAgIHRyYW5zaXRpb246Y29sb3IgJHRyYW5zaXRpb247XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDonJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206MDtcbiAgICAgICAgLy8gbGVmdDokZ3V0dGVyMDsgXG4gICAgICAgIGxlZnQ6MDtcbiAgICAgICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgICAgIGhlaWdodDo2cHg7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIC8vIHdpZHRoOmNhbGMoMTAwJSAtIGNhbGMoI3skZ3V0dGVyfSkpOyBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06c2NhbGVZKDApO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICBjb2xvcjokcmVkO1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOnNjYWxlWSgwLjUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmN1cnJlbnQge1xuICAgICAgICBjb2xvcjokYmx1ZTtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTpzY2FsZVkoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJbnB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBcbiAgLnNlYXJjaC1pbnB1dCB7XG5cbiAgICAtLXNlYXJjaC1pbnB1dC1wYWRkaW5nIDogI3skZ3V0dGVyfTtcbiAgICAtLXNlYXJjaC1pY29uLXNpemUgOiAyNnB4O1xuICAgIC0tc2VhcmNoLWlucHV0LXBhZGRpbmctbGVmdCA6IGNhbGModmFyKC0tc2VhcmNoLWlucHV0LXBhZGRpbmcpICogMiArIHZhcigtLXNlYXJjaC1pY29uLXNpemUpKTtcbiAgICAtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLXJpZ2h0IDogdmFyKC0tc2VhcmNoLWlucHV0LXBhZGRpbmctbGVmdCk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBmb3JtLWlucHV0KCdzZWFyY2gnKSB7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZykgdmFyKC0tc2VhcmNoLWlucHV0LXBhZGRpbmctcmlnaHQpIHZhcigtLXNlYXJjaC1pbnB1dC1wYWRkaW5nKSB2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZy1sZWZ0KTtcbiAgICAgIHdpZHRoOjEwMCU7IFxuICAgICAgYm9yZGVyLXJhZGl1czo2cHg7IFxuICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgyMCk7XG4gICAgICBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXJzLCAjeyRncmV5NH0pO1xuICAgICAgdHJhbnNpdGlvbjogcGFkZGluZyAkdHJhbnNpdGlvbjtcbiAgICAgICZbdmFsdWU9XCJcIl0ge1xuICAgICAgICB+IHN2Zy5zZWFyY2ggeyBjb2xvcjokZ3JleTsgfVxuICAgICAgICB+IGJ1dHRvbi5jbG9zZSB7IHBvaW50ZXItZXZlbnRzOiBub25lOyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwLjgpIHJvdGF0ZSgwZGVnKTsgfVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBzdmcuc2VhcmNoIHtcbiAgICAgIHdpZHRoOnZhcigtLXNlYXJjaC1pY29uLXNpemUpOyBcbiAgICAgIGhlaWdodDp2YXIoLS1zZWFyY2gtaWNvbi1zaXplKTsgXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6NTAlO1xuICAgICAgY29sb3I6JHJlZDtcbiAgICAgIGxlZnQ6Y2FsYyh2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZykgKiAxKTsgXG4gICAgICB0cmFuc2Zvcm0gOnRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbiwgbGVmdCAkdHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICBidXR0b24uY2xvc2Uge1xuICAgICAgd2lkdGg6dmFyKC0tc2VhcmNoLWljb24tc2l6ZSk7IFxuICAgICAgaGVpZ2h0OnZhcigtLXNlYXJjaC1pY29uLXNpemUpOyBcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDo1MCU7XG4gICAgICBjb2xvcjokcmVkO1xuICAgICAgcmlnaHQ6Y2FsYyh2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZykgKiAxKTsgXG4gICAgICB0cmFuc2Zvcm0gOnRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMSkgcm90YXRlKDBkZWcpO1xuICAgICAgdHJhbnNpdGlvbjpvcGFjaXR5ICR0cmFuc2l0aW9uLGNvbG9yICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1pbi1vdXQtYmFjaywgcmlnaHQgJHRyYW5zaXRpb247XG4gICAgICBAaW5jbHVkZSBob3ZlcigpIHtcbiAgICAgICAgY29sb3I6JGJsdWU7IFxuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLjA2KSByb3RhdGUoOTBkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEtleXdvcmRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC5zZWFyY2gta2V5d29yZHMge1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICA+IGRpdiB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6JGdhcDA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgIGdyaWQtcm93OiAxOyBcbiAgICAgIHdpZHRoOmZpdC1jb250ZW50OyBcbiAgICB9XG4gICAgLmJ1dHRvbi5vdXRsaW5lIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgJjpub3QoOmhvdmVyKSB7XG4gICAgICAgICAgLS1mb250LWNvbG91cjogI3skZ3JleX07XG4gICAgICAgICAgLS1ib3JkZXItY29sb3VyOiAje3ZhcigtLWJvcmRlci1jb2xvdXJzLCAjeyRncmV5NH0pfTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjeyRyZWR9O1xuICAgICAgICAgIC0taG92ZXItYm9yZGVyLWNvbG91cjogI3skcmVkfTtcbiAgICAgICAgICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgLy8gcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIC0tZm9udC1jb2xvdXI6ICN7JHdoaXRlfSAhaW1wb3J0YW50O1xuICAgICAgICAtLWJvcmRlci1jb2xvdXI6ICN7JHJlZH0gIWltcG9ydGFudDtcbiAgICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skcmVkfSAhaW1wb3J0YW50O1xuICAgICAgICBAaW5jbHVkZSBob3ZlcignLmFjdGl2ZScpIHtcbiAgICAgICAgICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX0gIWltcG9ydGFudDtcbiAgICAgICAgICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6ICN7JHJlZH0gIWltcG9ydGFudDtcbiAgICAgICAgICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjeyRyZWR9ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWstaW4obWF4KSB7XG4gICAgICBtaW4td2lkdGg6IGNhbGMoMTAwJSArICN7JGd1dHRlcjJ9KTtcbiAgICAgIGxlZnQ6JGd1dHRlci07XG4gICAgICA+IGRpdiB7IFxuICAgICAgICBwYWRkaW5nLWxlZnQ6JGd1dHRlcjtcbiAgICAgICAgcGFkZGluZy1yaWdodDokZ3V0dGVyO1xuICAgICAgICAuYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiRndXR0ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXN1bHRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIHtcblxuICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgbWFyZ2luLXRvcDokZ3V0dGVyO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcblxuICAgID4gLmhlYWRpbmcgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAubm8tcmVzdWx0cyB7XG4gICAgICBwYWRkaW5nOiRndXR0ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiRib3JkZXItcmFkaXVzO1xuICAgICAgbWF4LXdpZHRoOjkwMHB4OyBcbiAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAkZ3JleTQ7XG4gICAgfVxuXG4gICAgLnJlc3VsdHMge1xuICAgICAgZGlzcGxheTpncmlkO1xuICAgICAgZ3JpZC1nYXA6JGd1dHRlcjA7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNTBweCwgMWZyKSk7XG4gICAgICBAYXQtcm9vdCBzZWFyY2gtZWxlbWVudC5saXN0LXN0eWxlLXJvd3MgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0cyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICAucmVzdWx0IGEgeyBcbiAgICAgICAgICBwYWRkaW5nIDogJGd1dHRlcjA7IFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAucmVzdWx0IHtcbiAgICAgIGRpc3BsYXk6YmxvY2s7IFxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6ZmxleDsgXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czo2cHg7IFxuICAgICAgICBoZWlnaHQ6MTAwJTsgXG4gICAgICAgIGJvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cnMsICN7JGdyZXk0fSk7XG4gICAgICAgIHBhZGRpbmc6JGd1dHRlcjsgXG4gICAgICAgIHRyYW5zaXRpb246Ym9yZGVyICR0cmFuc2l0aW9uLCBvcGFjaXR5ICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1pbi1vdXQtYmFjaztcbiAgICBcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgIGJvcmRlci1jb2xvciA6ICN7JHJlZH0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDogI3skYmx1ZTJ9ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbiAgICAgICAgfVxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgIC8vIGJvcmRlci1jb2xvciA6ICN7JGdyZXl9O1xuICAgICAgICAgIGRpdiB7IGNvbG9yOiRibHVlMjsgfVxuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIC8vIGJhY2tncm91bmQ6IHJlZDtcbiAgICAgICAgfVxuICAgICAgICAuaGVhZGluZyB7XG4gICAgICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxNik7XG4gICAgICAgIH1cbiAgICAgICAgZGl2IHtcbiAgICAgICAgICBmb250LXNpemU6Zm9udC1zaXplKDE0KTtcbiAgICAgICAgfVxuICAgICAgICBAYXQtcm9vdCBzZWFyY2gtZWxlbWVudDpub3QoLnNob3ctaGlnaGxpZ2h0cykgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IG1hcmsge1xuICAgICAgICAgIEBpbmNsdWRlIG1hcmstcmVzZXQoKTtcbiAgICAgICAgfVxuICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgIGhlaWdodDoxMDBweDsgXG4gICAgICAgICAgLy8gd2lkdGg6IDEwMCU7IFxuICAgICAgICAgIG9yZGVyOi0xO1xuICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6Y2FsYygjeyRib3JkZXItcmFkaXVzfSAtIDFweCk7XG4gICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6Y2FsYygjeyRib3JkZXItcmFkaXVzfSAtIDFweCk7XG4gICAgICAgICAgbWFyZ2luOiRndXR0ZXItICRndXR0ZXItICRndXR0ZXIgJGd1dHRlci07IFxuICAgICAgICB9XG4gICAgICAgICZbZGF0YS10eXBlXSB7XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDphdHRyKGRhdGEtdHlwZSk7XG4gICAgICAgICAgICBwYWRkaW5nOjRweCA4cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRncmV5MztcbiAgICAgICAgICAgIGJvcmRlcjoxcHggc29saWQgJGdyZXk0OyAgXG4gICAgICAgICAgICBmb250LXNpemU6Zm9udC1zaXplKDEwKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6JGdhcDA7IFxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6NHB4IHNvbGlkIHZhcigtLXRhZy1jb2xvdXIsICRncmV5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJltkYXRhLXR5cGU9XCJNZXRhbCBHbG9zc2FyeVwiXTo6YWZ0ZXIgeyAtLXRhZy1jb2xvdXIgOiAjeyRibHVlfTsgfVxuICAgICAgICAmW2RhdGEtdHlwZT1cIkRhdGFzaGVldFwiXTo6YWZ0ZXIgeyAtLXRhZy1jb2xvdXIgOiAjeyRyZWR9OyB9XG4gICAgICAgICZbZGF0YS10eXBlPVwiTmV3c1wiXTo6YWZ0ZXIgeyAtLXRhZy1jb2xvdXIgOiAjeyRncmVlbn07IH1cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgLy8gVUkgQnV0dG9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLmJ1dHRvbiB7XG5cbiAgICAmLnNlYXJjaC1oaWdobGlnaHQtdG9nZ2xlIHtcbiAgICAgIC0tcGFkZGluZzo2cHggIWltcG9ydGFudDtcbiAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7d2hpdGV9O1xuICAgICAgLS1ib3JkZXItY29sb3VyOiAjeyRjb2xvdXItbWFya307XG4gICAgICAtLWZvbnQtY29sb3VyOiN7JGNvbG91ci1tYXJrfTtcbiAgICAgIHN2ZyB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHdpZHRoOjEuNDRlbTsgfVxuICAgIH1cblxuICAgICYuc2VhcmNoLWNhdGVnb3JpZXMtdG9nZ2xlLCAmLnNlYXJjaC1jbGVhci1maWx0ZXJzIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmLnNlYXJjaC1jbGVhci1maWx0ZXJzIHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgLS1zdHJva2U6I3skcmVkfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNlYXJjaC1saXN0LXN0eWxlLXRvZ2dsZSB7XG4gICAgICAtLXBhZGRpbmc6NnB4ICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICBzdmcgeyBcbiAgICAgICAgbWFyZ2luOjAgIWltcG9ydGFudDsgXG4gICAgICAgIG9wYWNpdHk6MDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICAgKyBzdmcgeyBwb3NpdGlvbjogYWJzb2x1dGU7fVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuc2hvdy1oaWdobGlnaHRzIC5idXR0b24uc2VhcmNoLWhpZ2hsaWdodC10b2dnbGUge1xuICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JGNvbG91ci1tYXJrfTsgXG4gICAgLS1mb250LWNvbG91cjoje3doaXRlfTtcbiAgfVxuICAmOm5vdCguc2hvd2luZy1oaWdobGlnaHQtbWFya2VycykgLmJ1dHRvbi5zZWFyY2gtaGlnaGxpZ2h0LXRvZ2dsZSB7XG4gICAgZGlzcGxheTpub25lO1xuICB9XG4gICY6bm90KC5maWx0ZXJzLWFjdGl2ZSkgLmJ1dHRvbi5zZWFyY2gtY2xlYXItZmlsdGVycyB7XG4gICAgZGlzcGxheTpub25lO1xuICB9XG4gICYubGlzdC1zdHlsZS1yb3dzIC5idXR0b24uc2VhcmNoLWxpc3Qtc3R5bGUtdG9nZ2xlIHtcbiAgICBzdmcubGlzdC1ncmlkIHsgb3BhY2l0eToxOyB9XG4gIH1cbiAgJi5saXN0LXN0eWxlLWdyaWQgLmJ1dHRvbi5zZWFyY2gtbGlzdC1zdHlsZS10b2dnbGUge1xuICAgIHN2Zy5saXN0LXJvd3MgeyBvcGFjaXR5OjE7IH1cbiAgfVxuXG4gIC8vIENhdGVnb3JpZXMgRmlsdGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC5zZWFyY2gtY2F0ZWdvcmllcyB7XG5cbiAgICBAYXQtcm9vdCBzZWFyY2gtZWxlbWVudC5zdGlja3ktZmlsdGVyIC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gICAgICBwb3NpdGlvbjpzdGlja3k7XG4gICAgICB0b3A6Y2FsYyh2YXIoLS1zZWFyY2gtdWktaGVpZ2h0KSArICN7JGd1dHRlcn0pO1xuICAgICAgaGVpZ2h0OmNhbGMoMTAwdmggLSB2YXIoLS1zZWFyY2gtdWktaGVpZ2h0KSAtICN7JGd1dHRlcjN9KTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgLy8gJjo6YmVmb3JlLCAmOjphZnRlciB7IG9wYWNpdHk6MDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIgeyBjb250ZW50OmluaXRpYWw7IH1cbiAgICAgIC8vICY6OmJlZm9yZSB7Y29udGVudDppbml0aWFsOyB9XG4gICAgICAvLyAmOjphZnRlciB7IHRvcDotMXB4OyB9XG4gICAgICBzdW1tYXJ5IHsgYmFja2dyb3VuZC1jb2xvcjokZ3JleTM7IHRvcDowOyB9XG4gICAgfVxuXG4gICAgQGF0LXJvb3Qgc2VhcmNoLWVsZW1lbnQubm8tcmVzdWx0cyB7XG4gICAgICAuc2VhcmNoLWNhdGVnb3JpZXMgeyBvcGFjaXR5OjA7IH1cbiAgICAgIC5zZWFyY2gtY29udHJvbHMgLmJ1dHRvbjpub3QoLnNlYXJjaC1jbGVhci1maWx0ZXJzKSB7IGRpc3BsYXk6bm9uZTsgfVxuICAgICAgLnNlYXJjaC1jb250cm9scyAuc2VhcmNoLWNsZWFyLWZpbHRlcnM6OmJlZm9yZSB7XG5cbiAgICAgICAgY29udGVudDpcIlwiO1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTsgXG4gICAgICAgIHRvcDowJTtcbiAgICAgICAgbGVmdDowJTtcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgaGVpZ2h0OjEwMCU7IFxuICAgICAgICBib3JkZXItcmFkaXVzOiRib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXI6MXB4IHNvbGlkICRyZWQ7IFxuICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24ta2V5ZnJhbWVzKGZsYXNoKSB7XG4gICAgICAgICAgMCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IG9wYWNpdHk6MC44OyB9XG4gICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxLjIsIDEuOCk7IG9wYWNpdHk6MDsgfVxuICAgICAgICB9XG5cbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcblxuICAgICAgfVxuICAgIH1cblxuICAgIC0tZ2FwIDogOHB4O1xuICAgIC0taGVhZGluZy1oZWlnaHQgOiA0M3B4OyAvLyBUaGlzIGhhcyB0byBiZSBmaXhlZCB0byBhbGxvdyBmb3IgdGhlIGZha2Ugc3RpY2t5IGJhcnMgdG8gZnVuY3Rpb24gY29ycmVjdGx5XG5cbiAgICBtYXJnaW4tdG9wOiRndXR0ZXI7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICAvLyBncmlkLWdhcDokZ2FwO1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cnMsICN7JGdyZXk0fSk7XG4gICAgLy8gcGFkZGluZzokZ3V0dGVyIDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOjAgMCAkZ3V0dGVyIDAgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiRncmV5MztcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmOjphZnRlciwgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICBncmlkLXJvdzoxOyAgICAgXG4gICAgICBncmlkLWNvbHVtbjoxIC8gLTE7XG4gICAgICBtYXJnaW4tbGVmdDotMXB4O1xuICAgICAgbWFyZ2luLXRvcDotMXB4O1xuICAgICAgd2lkdGg6Y2FsYygxMDAlICsgMnB4KTtcbiAgICAgIGhlaWdodDp2YXIoLS1oZWFkaW5nLWhlaWdodCk7XG5cbiAgICB9XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgdG9wOmNhbGModmFyKC0tc2VhcmNoLXVpLWhlaWdodCkgKyAjeyRndXR0ZXJ9KTtcbiAgICAgIGJhY2tncm91bmQ6aW5oZXJpdDtcbiAgICAgIGJvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cnMsICN7JGdyZXk0fSk7XG4gICAgICAvLyBib3JkZXItYm90dG9tOm5vbmU7XG4gICAgICBib3JkZXItYm90dG9tOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG91cnMsICN7JGdyZXk0fSk7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgIGJveC1zaGFkb3c6IDBweCAtNHB4IHdoaXRlO1xuICAgIH1cbiAgICAmOjpiZWZvcmUge1xuICAgICAgdG9wOmNhbGModmFyKC0tc2VhcmNoLXVpLWhlaWdodCkgLSB2YXIoLS1oZWFkaW5nLWhlaWdodCkgKyAjeyRndXR0ZXJ9KTtcbiAgICAgIG1hcmdpbi10b3A6Y2FsYygoLTEgKiB2YXIoLS1oZWFkaW5nLWhlaWdodCkpIC0gMXB4KTtcbiAgICAgIGJhY2tncm91bmQ6d2hpdGU7XG4gICAgICB6LWluZGV4OjI7XG4gICAgfVxuXG4gICAgaDQgeyBcbiAgICAgIGRpc3BsYXk6bm9uZTsgXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiRndXR0ZXI7IFxuICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMjtcbiAgICB9XG5cbiAgICBAYXQtcm9vdCBzZWFyY2gtZWxlbWVudDpub3QoLnNob3ctZmlsdGVycykgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgICAgIG1hcmdpbi10b3A6Y2FsYygjeyRzcGFjZXJ9ICsgI3skZ3V0dGVyfSk7XG4gICAgICBoNCB7IGRpc3BsYXk6YmxvY2s7IH1cbiAgICAgIGRldGFpbHMgeyBib3JkZXItYm90dG9tOmluaXRpYWwgIWltcG9ydGFudDsgfVxuICAgICAgc3VtbWFyeSB7IHBvaW50ZXItZXZlbnRzOiBub25lOyBzdmcgeyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfX1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWstaW4obWVkaXVtKSB7XG4gICAgICBtYXJnaW4tdG9wOmNhbGMoI3skc3BhY2VyfSArICN7JGd1dHRlcn0pO1xuICAgICAgaDQgeyBkaXNwbGF5OmJsb2NrOyB9XG4gICAgICBkZXRhaWxzIHsgYm9yZGVyLWJvdHRvbTppbml0aWFsICFpbXBvcnRhbnQ7IH1cbiAgICAgIHN1bW1hcnkgeyBwb2ludGVyLWV2ZW50czogbm9uZTsgc3ZnIHsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH19XG4gICAgfVxuXG4gICAgZGV0YWlscyB7XG4gICAgICAmOm5vdChbaGlkZGVuXSkgLmNvbnRlbnQgeyBkaXNwbGF5OmZsZXg7IH1cbiAgICAgICY6bm90KFtvcGVuXSkgc3VtbWFyeSB7IFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTokZ2FwMDsgXG4gICAgICAgIHN2Zy5wbHVzIHsgZGlzcGxheTpibG9jazsgfVxuICAgICAgICBzdmcubWludXMgeyBkaXNwbGF5Om5vbmU7IH1cbiAgICAgIH1cbiAgICAgICY6bm90KDpsYXN0LW9mLXR5cGUpIHsgYm9yZGVyLWJvdHRvbToxcHggZGFzaGVkICRncmV5NDsgfVxuICAgICAgXG4gICAgICBzdW1tYXJ5IHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1oNDtcbiAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyBcbiAgICAgICAgcG9zaXRpb246c3RpY2t5OyBcbiAgICAgICAgdG9wOmNhbGModmFyKC0tc2VhcmNoLXVpLWhlaWdodCkgKyAjeyRndXR0ZXJ9KTsgXG4gICAgICAgIC8vIGJhY2tncm91bmQ6JGdyZXkzO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB6LWluZGV4OjE7XG4gICAgICAgIGNvbG9yOiRibHVlOyBcbiAgICAgICAgaGVpZ2h0OnZhcigtLWhlYWRpbmctaGVpZ2h0KTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgLy8gYm9yZGVyOjFweCBkYXNoZWQgcmVkO1xuICAgICAgICBwYWRkaW5nOiRnYXAgJGd1dHRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgd2lkdGg6MTBweDsgXG4gICAgICAgICAgaGVpZ2h0OjEwcHg7XG4gICAgICAgICAgc3Ryb2tlOiRncmV5OyBcbiAgICAgICAgICBzdHJva2Utd2lkdGg6MS42ZW07XG4gICAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlICR0cmFuc2l0aW9uO1xuICAgICAgICAgICYucGx1cyB7IGRpc3BsYXk6bm9uZTsgfVxuICAgICAgICAgICYubWludXMgeyBkaXNwbGF5OmJsb2NrOyB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgIGN1cnNvcjpwb2ludGVyO1xuICAgICAgICAgIGNvbG9yOiRyZWQ7IFxuICAgICAgICAgIHN2ZyB7IFxuICAgICAgICAgICAgc3Ryb2tlOiRyZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50IHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6Y2FsYygtMSAqICgjeyRnYXAwfSAvIDIpKTtcbiAgICAgICAgbWFyZ2luLXRvcDpjYWxjKC0xICogKCN7JGdhcDB9IC8gMikpO1xuICAgICAgICBwYWRkaW5nOjAgJGd1dHRlciAkZ2FwMiAkZ3V0dGVyO1xuICAgICAgfVxuXG5cbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICAvLyAmLmNoaWxkIGlucHV0IH4gbGFiZWwgeyBiYWNrZ3JvdW5kLWNvbG9yOiRncmVlbiAhaW1wb3J0YW50O31cbiAgICAgICAgbWFyZ2luOmNhbGMoI3skZ2FwMH0gLyAyKTtcbiAgICAgICAgJltkYXRhLWNvdW50PVwiMFwiXSB7IFxuICAgICAgICAgIGRpc3BsYXk6bm9uZTsgXG4gICAgICAgIH1cbiAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgICAgfiBsYWJlbCB7XG4gICAgICAgICAgICAvLyBwYWRkaW5nOiRnYXAwICRnYXA7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgcGFkZGluZzokZ2FwMCAkZ2FwO1xuICAgICAgICAgICAgbWluLXdpZHRoOjljaDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTMpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTQ7ICAgXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6JHJlZDsgXG4gICAgICAgICAgICB9ICAgICAgICBcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpjaGVja2VkIH4gbGFiZWwge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjokcmVkO1xuICAgICAgICAgICAgY29sb3I6d2hpdGU7IFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiRyZWQ7XG4gICAgICAgICAgICBzcGFuLmNvdW50IHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh3aGl0ZSwgMC4zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuLmNvdW50IHtcbiAgICAgICAgICBkaXNwbGF5OmlubGluZS1mbGV4O1xuICAgICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjVweDtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo1cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXkzO1xuICAgICAgICAgIHBhZGRpbmc6JGdhcDA7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiRnYXAtO1xuICAgICAgICAgIG1hcmdpbi10b3A6JGdhcC07XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTokZ2FwLTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDokZ2FwO1xuICAgICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICAgIG1pbi13aWR0aDozY2g7XG4gICAgICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxMik7XG4gICAgICAgICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG5cbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstaW4obWVkaXVtKSB7IFxuICAgIC5idXR0b24uc2VhcmNoLWxpc3Qtc3R5bGUtdG9nZ2xlIHtcbiAgICAgIGRpc3BsYXk6bm9uZTsgXG4gICAgfVxuICAgICYubGlzdC1zdHlsZS1yb3dzIC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdHMgIC5yZXN1bHQgYSB7IFxuICAgICAgcGFkZGluZyA6ICRndXR0ZXI7IFxuICAgIH1cbiAgICAuc2VhcmNoLWtleXdvcmRzIHsgZGlzcGxheTpub25lOyB9XG4gICAgLnVpIC5zZWFyY2gtY29udHJvbHMge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgYm90dG9tOjA7IFxuICAgICAgbGVmdDowOyBcbiAgICAgIHBhZGRpbmc6JGdhcDAgJGd1dHRlciAkZ2FwICRndXR0ZXIgIWltcG9ydGFudDsgXG4gICAgICBib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VycywgI3skZ3JleTR9KTtcbiAgICAgIG1hcmdpbjowOyBcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgQGF0LXJvb3QgOnJvb3RbZGF0YS1icm93c2VyKj1cImNocm9tZVwiXVtkYXRhLWRldmljZSo9XCJwaG9uZVwiXSAmIHtcbiAgICAgICAgcGFkZGluZzokZ2FwMCAkZ3V0dGVyIGNhbGMoI3skZ2FwfSArIDRweCkgJGd1dHRlciAhaW1wb3J0YW50OyBcbiAgICAgIH1cbiAgICB9XG4gICAgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgICAgIHBhZGRpbmctdG9wOiRndXR0ZXIgIWltcG9ydGFudDtcbiAgICAgIGRldGFpbHMgc3VtbWFyeSB7IHRvcDp2YXIoLS1zZWFyY2gtdWktaGVpZ2h0KTsgYmFja2dyb3VuZDokZ3JleTM7IH1cbiAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIgeyBjb250ZW50OmluaXRpYWw7IH1cbiAgICB9XG4gIH1cblxuXG4gICYuZ3JleSB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7JGdyZXkzfTtcbiAgICAtLWJvcmRlci1jb2xvdXJzIDogI3skZ3JleTN9O1xuICAgIGJhY2tncm91bmQtY29sb3I6JGdyZXkzO1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtYmxvd291dDtcbiAgICAudWkge1xuICAgICAgJjpub3QoLnN0dWNrKSB7IHBhZGRpbmctdG9wOiRzcGFjZXIwOyBwYWRkaW5nLWJvdHRvbTokc3BhY2VyMDsgfVxuICAgICAgJjo6YmVmb3JlIHsgXG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6JGdyZXk0O1xuICAgICAgfVxuICAgIH1cbiAgICAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyLCAuc2VhcmNoLWNhdGVnb3JpZXMge1xuICAgICAgbWFyZ2luLXRvcDokc3BhY2VyMDtcbiAgICB9XG4gICAgLnJlc3VsdHMgLnJlc3VsdCBhLCAuc2VhcmNoLWNhdGVnb3JpZXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG4gIFxuICAmLmxvYWRpbmcge1xuICAgIC5yZXN1bHQgYTpub3QoLmxvYWRpbmcpIHtcbiAgICAgIC8vIG9wYWNpdHk6IDAuMTtcbiAgICAgIC8vIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgLy8gdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbiAgICB9XG4gIH1cblxuXG59Iiwic2VhcmNoLWVsZW1lbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDAgdmFyKC0tc3BhY2VyMSkgMDtcbiAgYm94LXNoYWRvdzogaW5pdGlhbCAhaW1wb3J0YW50O1xufVxuc2VhcmNoLWVsZW1lbnQubG9hZGluZyAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIHtcbiAgb3BhY2l0eTogMC4zO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbnNlYXJjaC1lbGVtZW50LmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIge1xuICBncmlkLWdhcDogMCB2YXIoLS1ndXR0ZXIxKTtcbn1cbnNlYXJjaC1lbGVtZW50IC51aSB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tZ3V0dGVyMSk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1ndXR0ZXIxKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMS0pO1xuICBncmlkLWdhcDogMDtcbiAgei1pbmRleDogMztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsIHdoaXRlKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHBhZGRpbmcgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5zZWFyY2gtZWxlbWVudCAudWk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgei1pbmRleDogLTE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tdHJhbnNsYXRlWCwgLTUwJSkpO1xuICBib3JkZXItYm90dG9tOiBpbmhlcml0O1xuICBoZWlnaHQ6IGNhbGMoMTAwJSArIDFweCk7XG4gIHdpZHRoOiAxMDAlO1xufVxuc2VhcmNoLWVsZW1lbnQgLnVpIC5zZWFyY2gtdHlwZXMsIHNlYXJjaC1lbGVtZW50IC51aSAuc2VhcmNoLWlucHV0LCBzZWFyY2gtZWxlbWVudCAudWkgLnNlYXJjaC1rZXl3b3JkcyB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xufVxuc2VhcmNoLWVsZW1lbnQgLnVpIC5zZWFyY2gta2V5d29yZHMgLmJ1dHRvbiwgc2VhcmNoLWVsZW1lbnQgLnVpIC5zZWFyY2gtY29udHJvbHMgLmJ1dHRvbiB7XG4gIC0tYm9yZGVyLXJhZGl1czo2cHg7XG59XG5zZWFyY2gtZWxlbWVudCAudWkgLnNlYXJjaC1rZXl3b3JkcyB7XG4gIGdyaWQtcm93OiAzO1xuICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5zZWFyY2gtZWxlbWVudCAudWkgLnNlYXJjaC1jb250cm9scyB7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5zZWFyY2gtZWxlbWVudCAudWkuc3R1Y2sge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VycywgI2RjZGNkYyk7XG59XG5zZWFyY2gtZWxlbWVudDpub3QoLnNob3ctZmlsdGVycykgPiAubGVmdCB7XG4gIGdyaWQtY29sdW1uOiAxLy0xICFpbXBvcnRhbnQ7XG59XG5zZWFyY2gtZWxlbWVudDpub3QoLnNob3ctZmlsdGVycykgPiAucmlnaHQge1xuICBncmlkLWNvbHVtbjogMS8tMSAhaW1wb3J0YW50O1xufVxuc2VhcmNoLWVsZW1lbnQ6bm90KC5zaG93LWZpbHRlcnMpIC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTEyMXB4KSB7XG4gIHNlYXJjaC1lbGVtZW50Om5vdCguc2hvdy1maWx0ZXJzKSAuc2VhcmNoLWNhdGVnb3JpZXMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDYwMHB4LCAxZnIpKTtcbiAgfVxufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC10eXBlcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1nYXApICogLTEpO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXR5cGVzIGJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ3JpZC1yb3c6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMxMzFmNmI7XG4gIHBhZGRpbmc6IHZhcigtLWdhcCkgMDtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXR5cGVzIGJ1dHRvbjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBoZWlnaHQ6IDZweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC10eXBlcyBidXR0b246aG92ZXIge1xuICAgIGNvbG9yOiAjZGYzMDM1O1xuICB9XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtdHlwZXMgYnV0dG9uOmhvdmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMC41KTtcbiAgfVxufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC10eXBlcyBidXR0b24uY3VycmVudCB7XG4gIGNvbG9yOiAjMTMxZjZiO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC10eXBlcyBidXR0b24uY3VycmVudDo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtaW5wdXQge1xuICAtLXNlYXJjaC1pbnB1dC1wYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbiAgLS1zZWFyY2gtaWNvbi1zaXplOiAyNnB4O1xuICAtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tc2VhcmNoLWlucHV0LXBhZGRpbmcpICogMiArIHZhcigtLXNlYXJjaC1pY29uLXNpemUpKTtcbiAgLS1zZWFyY2gtaW5wdXQtcGFkZGluZy1yaWdodDogdmFyKC0tc2VhcmNoLWlucHV0LXBhZGRpbmctbGVmdCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWlucHV0IGlucHV0W3R5cGU9c2VhcmNoXSB7XG4gIC0tZm9udC1jb2xvdXI6ICM2YTZhNmE7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgLS1ib3JkZXItY29sb3VyOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC0tYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tcGFkZGluZzogdmFyKC0tZ2FwKSB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNlYXJjaC1pbnB1dC1wYWRkaW5nKSB2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZy1yaWdodCkgdmFyKC0tc2VhcmNoLWlucHV0LXBhZGRpbmcpIHZhcigtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLWxlZnQpO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBmb250LXNpemU6IDEuMjVlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cnMsICNkY2RjZGMpO1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1pbnB1dCBpbnB1dFt0eXBlPXNlYXJjaF06OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWlucHV0IGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICMxMzFmNmI7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWlucHV0IGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWlucHV0IGlucHV0W3R5cGU9c2VhcmNoXS5hdXRvY29tcGxldGU6bm90KFt2YWx1ZT1cIlwiXSk6Zm9jdXMge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtaW5wdXQgaW5wdXRbdHlwZT1zZWFyY2hdW3ZhbHVlPVwiXCJdIH4gc3ZnLnNlYXJjaCB7XG4gIGNvbG9yOiAjOTY5Njk1O1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1pbnB1dCBpbnB1dFt0eXBlPXNlYXJjaF1bdmFsdWU9XCJcIl0gfiBidXR0b24uY2xvc2Uge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDAuOCkgcm90YXRlKDBkZWcpO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1pbnB1dCBzdmcuc2VhcmNoIHtcbiAgd2lkdGg6IHZhcigtLXNlYXJjaC1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNlYXJjaC1pY29uLXNpemUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBjb2xvcjogI2RmMzAzNTtcbiAgbGVmdDogY2FsYyh2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZykgKiAxKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgbGVmdCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtaW5wdXQgYnV0dG9uLmNsb3NlIHtcbiAgd2lkdGg6IHZhcigtLXNlYXJjaC1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNlYXJjaC1pY29uLXNpemUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBjb2xvcjogI2RmMzAzNTtcbiAgcmlnaHQ6IGNhbGModmFyKC0tc2VhcmNoLWlucHV0LXBhZGRpbmcpICogMSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxKSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KSwgcmlnaHQgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWlucHV0IGJ1dHRvbi5jbG9zZTpob3ZlciB7XG4gICAgY29sb3I6ICMxMzFmNmI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEuMDYpIHJvdGF0ZSg5MGRlZyk7XG4gIH1cbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gta2V5d29yZHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzID4gZGl2IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzIC5idXR0b24ge1xuICBncmlkLXJvdzogMTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1rZXl3b3JkcyAuYnV0dG9uLm91dGxpbmUge1xuICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzIC5idXR0b24ub3V0bGluZTpub3QoOmhvdmVyKSB7XG4gICAgLS1mb250LWNvbG91cjogIzk2OTY5NTtcbiAgICAtLWJvcmRlci1jb2xvdXI6IHZhcigtLWJvcmRlci1jb2xvdXJzLCAjZGNkY2RjKTtcbiAgfVxuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzIC5idXR0b24ub3V0bGluZTpob3ZlciB7XG4gICAgLS1ob3Zlci1mb250LWNvbG91cjogI2RmMzAzNTtcbiAgICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6ICNkZjMwMzU7XG4gICAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgfVxufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1rZXl3b3JkcyAuYnV0dG9uLm91dGxpbmUuYWN0aXZlIHtcbiAgLS1mb250LWNvbG91cjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICAtLWJvcmRlci1jb2xvdXI6ICNkZjMwMzUgIWltcG9ydGFudDtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI2RmMzAzNSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1rZXl3b3JkcyAuYnV0dG9uLm91dGxpbmUuYWN0aXZlOmhvdmVyIHtcbiAgICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gICAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiAjZGYzMDM1ICFpbXBvcnRhbnQ7XG4gICAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI2RmMzAzNSAhaW1wb3J0YW50O1xuICB9XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzIC5idXR0b24ub3V0bGluZS5hY3RpdmUuYWN0aXZlIHtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6ICNkZjMwMzUgIWltcG9ydGFudDtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI2RmMzAzNSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2ODBweCkge1xuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzIHtcbiAgICBtaW4td2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWd1dHRlcjIpKTtcbiAgICBsZWZ0OiB2YXIoLS1ndXR0ZXIxLSk7XG4gIH1cbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1rZXl3b3JkcyA+IGRpdiB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgfVxuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzID4gZGl2IC5idXR0b246bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB9XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjEpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciA+IC5oZWFkaW5nIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLm5vLXJlc3VsdHMge1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgbWF4LXdpZHRoOiA5MDBweDtcbiAgYm9yZGVyOiAxcHggZGFzaGVkICNkY2RjZGM7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjApO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNTBweCwgMWZyKSk7XG59XG5zZWFyY2gtZWxlbWVudC5saXN0LXN0eWxlLXJvd3MgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0cyB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuc2VhcmNoLWVsZW1lbnQubGlzdC1zdHlsZS1yb3dzIC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdHMgLnJlc3VsdCBhIHtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMCk7XG59XG5cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VycywgI2RjZGNkYyk7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICB0cmFuc2l0aW9uOiBib3JkZXIgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjY4LCAtMC41NSwgMC4yNjUsIDEuNTUpO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IGE6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogI2RmMzAzNSAhaW1wb3J0YW50O1xuICB9XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHQgYTphY3RpdmUge1xuICBib3JkZXItY29sb3I6ICMyOTJiNjggIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdCBhOnZpc2l0ZWQgZGl2IHtcbiAgY29sb3I6ICMyOTJiNjg7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHQgYSAuaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IGEgZGl2IHtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xufVxuc2VhcmNoLWVsZW1lbnQ6bm90KC5zaG93LWhpZ2hsaWdodHMpIC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdCBtYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1yYWRpdXM6IGluaXRpYWw7XG4gIHBhZGRpbmc6IGluaXRpYWw7XG4gIHRyYW5zaXRpb246IGluaXRpYWw7XG59XG5cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdCBhIC5pbWFnZSB7XG4gIGhlaWdodDogMTAwcHg7XG4gIG9yZGVyOiAtMTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYyh2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpIC0gMXB4KTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KSAtIDFweCk7XG4gIG1hcmdpbjogdmFyKC0tZ3V0dGVyMS0pIHZhcigtLWd1dHRlcjEtKSB2YXIoLS1ndXR0ZXIxKSB2YXIoLS1ndXR0ZXIxLSk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHQgYVtkYXRhLXR5cGVdOjphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10eXBlKTtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgZm9udC1zaXplOiAwLjYyNWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXRhZy1jb2xvdXIsICM5Njk2OTUpO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IGFbZGF0YS10eXBlPVwiTWV0YWwgR2xvc3NhcnlcIl06OmFmdGVyIHtcbiAgLS10YWctY29sb3VyOiAjMTMxZjZiO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IGFbZGF0YS10eXBlPURhdGFzaGVldF06OmFmdGVyIHtcbiAgLS10YWctY29sb3VyOiAjZGYzMDM1O1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IGFbZGF0YS10eXBlPU5ld3NdOjphZnRlciB7XG4gIC0tdGFnLWNvbG91cjogIzUwYmMwODtcbn1cbnNlYXJjaC1lbGVtZW50IC5idXR0b24uc2VhcmNoLWhpZ2hsaWdodC10b2dnbGUge1xuICAtLXBhZGRpbmc6NnB4ICFpbXBvcnRhbnQ7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWJvcmRlci1jb2xvdXI6ICMwMDk1ZmY7XG4gIC0tZm9udC1jb2xvdXI6IzAwOTVmZjtcbn1cbnNlYXJjaC1lbGVtZW50IC5idXR0b24uc2VhcmNoLWhpZ2hsaWdodC10b2dnbGUgc3ZnIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxLjQ0ZW07XG59XG5zZWFyY2gtZWxlbWVudCAuYnV0dG9uLnNlYXJjaC1jYXRlZ29yaWVzLXRvZ2dsZSwgc2VhcmNoLWVsZW1lbnQgLmJ1dHRvbi5zZWFyY2gtY2xlYXItZmlsdGVycyB7XG4gIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgc2VhcmNoLWVsZW1lbnQgLmJ1dHRvbi5zZWFyY2gtY2xlYXItZmlsdGVyczpob3ZlciB7XG4gICAgLS1zdHJva2U6I2RmMzAzNTtcbiAgfVxufVxuc2VhcmNoLWVsZW1lbnQgLmJ1dHRvbi5zZWFyY2gtbGlzdC1zdHlsZS10b2dnbGUge1xuICAtLXBhZGRpbmc6NnB4ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5zZWFyY2gtZWxlbWVudCAuYnV0dG9uLnNlYXJjaC1saXN0LXN0eWxlLXRvZ2dsZSBzdmcge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbnNlYXJjaC1lbGVtZW50IC5idXR0b24uc2VhcmNoLWxpc3Qtc3R5bGUtdG9nZ2xlIHN2ZyArIHN2ZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbnNlYXJjaC1lbGVtZW50LnNob3ctaGlnaGxpZ2h0cyAuYnV0dG9uLnNlYXJjaC1oaWdobGlnaHQtdG9nZ2xlIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogIzAwOTVmZjtcbiAgLS1mb250LWNvbG91cjp3aGl0ZTtcbn1cbnNlYXJjaC1lbGVtZW50Om5vdCguc2hvd2luZy1oaWdobGlnaHQtbWFya2VycykgLmJ1dHRvbi5zZWFyY2gtaGlnaGxpZ2h0LXRvZ2dsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5zZWFyY2gtZWxlbWVudDpub3QoLmZpbHRlcnMtYWN0aXZlKSAuYnV0dG9uLnNlYXJjaC1jbGVhci1maWx0ZXJzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnNlYXJjaC1lbGVtZW50Lmxpc3Qtc3R5bGUtcm93cyAuYnV0dG9uLnNlYXJjaC1saXN0LXN0eWxlLXRvZ2dsZSBzdmcubGlzdC1ncmlkIHtcbiAgb3BhY2l0eTogMTtcbn1cbnNlYXJjaC1lbGVtZW50Lmxpc3Qtc3R5bGUtZ3JpZCAuYnV0dG9uLnNlYXJjaC1saXN0LXN0eWxlLXRvZ2dsZSBzdmcubGlzdC1yb3dzIHtcbiAgb3BhY2l0eTogMTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gIC0tZ2FwOiA4cHg7XG4gIC0taGVhZGluZy1oZWlnaHQ6IDQzcHg7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjEpO1xuICBkaXNwbGF5OiBncmlkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXJzLCAjZGNkY2RjKTtcbiAgcGFkZGluZzogMCAwIHZhcigtLWd1dHRlcjEpIDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbnNlYXJjaC1lbGVtZW50LnN0aWNreS1maWx0ZXIgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiBjYWxjKHZhcigtLXNlYXJjaC11aS1oZWlnaHQpICsgdmFyKC0tZ3V0dGVyMSkpO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1zZWFyY2gtdWktaGVpZ2h0KSAtIHZhcigtLWd1dHRlcjMpKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbn1cbnNlYXJjaC1lbGVtZW50LnN0aWNreS1maWx0ZXIgLnNlYXJjaC1jYXRlZ29yaWVzOjpiZWZvcmUsIHNlYXJjaC1lbGVtZW50LnN0aWNreS1maWx0ZXIgLnNlYXJjaC1jYXRlZ29yaWVzOjphZnRlciB7XG4gIGNvbnRlbnQ6IGluaXRpYWw7XG59XG5zZWFyY2gtZWxlbWVudC5zdGlja3ktZmlsdGVyIC5zZWFyY2gtY2F0ZWdvcmllcyBzdW1tYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgdG9wOiAwO1xufVxuXG5zZWFyY2gtZWxlbWVudC5uby1yZXN1bHRzIC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gIG9wYWNpdHk6IDA7XG59XG5zZWFyY2gtZWxlbWVudC5uby1yZXN1bHRzIC5zZWFyY2gtY29udHJvbHMgLmJ1dHRvbjpub3QoLnNlYXJjaC1jbGVhci1maWx0ZXJzKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5zZWFyY2gtZWxlbWVudC5uby1yZXN1bHRzIC5zZWFyY2gtY29udHJvbHMgLnNlYXJjaC1jbGVhci1maWx0ZXJzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGYzMDM1O1xuICBhbmltYXRpb24tbmFtZTogZmxhc2g7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBmbGFzaCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMiwgMS44KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllczo6YWZ0ZXIsIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgZ3JpZC1yb3c6IDE7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG4gIGhlaWdodDogdmFyKC0taGVhZGluZy1oZWlnaHQpO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzOjphZnRlciB7XG4gIHRvcDogY2FsYyh2YXIoLS1zZWFyY2gtdWktaGVpZ2h0KSArIHZhcigtLWd1dHRlcjEpKTtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cnMsICNkY2RjZGMpO1xuICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHZhcigtLWJvcmRlci1jb2xvdXJzLCAjZGNkY2RjKTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJveC1zaGFkb3c6IDBweCAtNHB4IHdoaXRlO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzOjpiZWZvcmUge1xuICB0b3A6IGNhbGModmFyKC0tc2VhcmNoLXVpLWhlaWdodCkgLSB2YXIoLS1oZWFkaW5nLWhlaWdodCkgKyB2YXIoLS1ndXR0ZXIxKSk7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1oZWFkaW5nLWhlaWdodCkgLSAxcHgpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgei1pbmRleDogMjtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBoNCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXIxKTtcbiAgZm9udC1zaXplOiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5zZWFyY2gtZWxlbWVudDpub3QoLnNob3ctZmlsdGVycykgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zcGFjZXIxKSArIHZhcigtLWd1dHRlcjEpKTtcbn1cbnNlYXJjaC1lbGVtZW50Om5vdCguc2hvdy1maWx0ZXJzKSAuc2VhcmNoLWNhdGVnb3JpZXMgaDQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbnNlYXJjaC1lbGVtZW50Om5vdCguc2hvdy1maWx0ZXJzKSAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyB7XG4gIGJvcmRlci1ib3R0b206IGluaXRpYWwgIWltcG9ydGFudDtcbn1cbnNlYXJjaC1lbGVtZW50Om5vdCguc2hvdy1maWx0ZXJzKSAuc2VhcmNoLWNhdGVnb3JpZXMgc3VtbWFyeSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuc2VhcmNoLWVsZW1lbnQ6bm90KC5zaG93LWZpbHRlcnMpIC5zZWFyY2gtY2F0ZWdvcmllcyBzdW1tYXJ5IHN2ZyB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExMjBweCkge1xuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMge1xuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc3BhY2VyMSkgKyB2YXIoLS1ndXR0ZXIxKSk7XG4gIH1cbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGg0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyB7XG4gICAgYm9yZGVyLWJvdHRvbTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICB9XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBzdW1tYXJ5IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgc3VtbWFyeSBzdmcge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGRldGFpbHM6bm90KFtoaWRkZW5dKSAuY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlsczpub3QoW29wZW5dKSBzdW1tYXJ5IHtcbiAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlsczpub3QoW29wZW5dKSBzdW1tYXJ5IHN2Zy5wbHVzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlsczpub3QoW29wZW5dKSBzdW1tYXJ5IHN2Zy5taW51cyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlsczpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICNkY2RjZGM7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBzdW1tYXJ5IHtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiBjYWxjKHZhcigtLXNlYXJjaC11aS1oZWlnaHQpICsgdmFyKC0tZ3V0dGVyMSkpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB6LWluZGV4OiAxO1xuICBjb2xvcjogIzEzMWY2YjtcbiAgaGVpZ2h0OiB2YXIoLS1oZWFkaW5nLWhlaWdodCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IHZhcigtLWdhcCkgdmFyKC0tZ3V0dGVyMSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGRldGFpbHMgc3VtbWFyeSBzdmcge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBzdHJva2U6ICM5Njk2OTU7XG4gIHN0cm9rZS13aWR0aDogMS42ZW07XG4gIHRyYW5zaXRpb246IHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIHN1bW1hcnkgc3ZnLnBsdXMge1xuICBkaXNwbGF5OiBub25lO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGRldGFpbHMgc3VtbWFyeSBzdmcubWludXMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIHN1bW1hcnk6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogI2RmMzAzNTtcbiAgfVxuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBzdW1tYXJ5OmhvdmVyIHN2ZyB7XG4gICAgc3Ryb2tlOiAjZGYzMDM1O1xuICB9XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyAuY29udGVudCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIChjYWxjKHZhcigtLWdhcCkgKiAwLjUpIC8gMikpO1xuICBtYXJnaW4tdG9wOiBjYWxjKC0xICogKGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgLyAyKSk7XG4gIHBhZGRpbmc6IDAgdmFyKC0tZ3V0dGVyMSkgY2FsYyh2YXIoLS1nYXApICogMikgdmFyKC0tZ3V0dGVyMSk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBsaSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogY2FsYyhjYWxjKHZhcigtLWdhcCkgKiAwLjUpIC8gMik7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBsaVtkYXRhLWNvdW50PVwiMFwiXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBsaSBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBsaSBpbnB1dFt0eXBlPWNoZWNrYm94XSB+IGxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG4gIG1pbi13aWR0aDogOWNoO1xuICBmb250LXNpemU6IDAuODEyNWVtO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIGxpIGlucHV0W3R5cGU9Y2hlY2tib3hdIH4gbGFiZWw6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItY29sb3I6ICNkZjMwMzU7XG4gIH1cbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIGxpIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgfiBsYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZjMwMzU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWNvbG9yOiAjZGYzMDM1O1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGRldGFpbHMgbGkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCB+IGxhYmVsIHNwYW4uY291bnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBsaSBzcGFuLmNvdW50IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWdhcCkgKiAtMSk7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogLTEpO1xuICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwKTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4td2lkdGg6IDNjaDtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDExMjBweCkge1xuICBzZWFyY2gtZWxlbWVudCAuYnV0dG9uLnNlYXJjaC1saXN0LXN0eWxlLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBzZWFyY2gtZWxlbWVudC5saXN0LXN0eWxlLXJvd3MgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0cyAucmVzdWx0IGEge1xuICAgIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICB9XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gta2V5d29yZHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgc2VhcmNoLWVsZW1lbnQgLnVpIC5zZWFyY2gtY29udHJvbHMge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWd1dHRlcjEpIHZhcigtLWdhcCkgdmFyKC0tZ3V0dGVyMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cnMsICNkY2RjZGMpO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cbiAgOnJvb3RbZGF0YS1icm93c2VyKj1jaHJvbWVdW2RhdGEtZGV2aWNlKj1waG9uZV0gc2VhcmNoLWVsZW1lbnQgLnVpIC5zZWFyY2gtY29udHJvbHMge1xuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ3V0dGVyMSkgY2FsYyh2YXIoLS1nYXApICsgNHB4KSB2YXIoLS1ndXR0ZXIxKSAhaW1wb3J0YW50O1xuICB9XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWd1dHRlcjEpICFpbXBvcnRhbnQ7XG4gIH1cbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGRldGFpbHMgc3VtbWFyeSB7XG4gICAgdG9wOiB2YXIoLS1zZWFyY2gtdWktaGVpZ2h0KTtcbiAgICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xuICB9XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllczo6YmVmb3JlLCBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXM6OmFmdGVyIHtcbiAgICBjb250ZW50OiBpbml0aWFsO1xuICB9XG59XG5zZWFyY2gtZWxlbWVudC5ncmV5IHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI2Y0ZjRmNDtcbiAgLS1ib3JkZXItY29sb3VyczogI2Y0ZjRmNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbn1cbnNlYXJjaC1lbGVtZW50LmdyZXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgei1pbmRleDogLTE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tdHJhbnNsYXRlWCwgLTUwJSkpO1xufVxuc2VhcmNoLWVsZW1lbnQuZ3JleSAudWk6bm90KC5zdHVjaykge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMCk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cbnNlYXJjaC1lbGVtZW50LmdyZXkgLnVpOjpiZWZvcmUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZGNkY2RjO1xufVxuc2VhcmNoLWVsZW1lbnQuZ3JleSAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyLCBzZWFyY2gtZWxlbWVudC5ncmV5IC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjApO1xufVxuc2VhcmNoLWVsZW1lbnQuZ3JleSAucmVzdWx0cyAucmVzdWx0IGEsIHNlYXJjaC1lbGVtZW50LmdyZXkgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFVuaXRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwic2FzczptYXRoXCI7XG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1ldGEnO1xuXG4vLyBUaGlzIHVuaXRzIGNyZWF0b3Igd2lsbCByZW5kZXIgc2l4IHBvc2l0aXZlIGFuZCBzaXggbmVnYXRpdmUgc2FzcyB2YXJpYWJsZXMgZm9yIFxuLy8gZ2Fwcywgc3BhY2VycywgYW5kIGd1dHRlcnMgcmVsYXRpdmUgdG8gdGhlIGJhc2V2IHZhbHVlcyBkZWZpbmVkIGJlbG93LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJhc2UgVmFsdWVzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEBzZWUgaHR0cHM6Ly9jb2RlcGVuLmlvL21hcmtub3R0b24vcGVuL0V4UGJOR2VcblxuLy8gVGhlc2UgdGhyZWUgdmFsdWVzIHdpbGwgYWN0IGEgY29uc3RhbnQgYmFzZWxpbmUgZm9yIGFsbCBmb2xsb3dpbmcgdW5pdCBkZWxjYXJhdGlvbnMuXG5cbi8vIEdhcHMgbXVzdCB1c2UgYW4gYWJzb2x1dGUgYW5kIHN0YXRpYyAncHgnIHVuaXQuIEl0IHNob3VsZCBub3QgYmUgcmVsYXRpdmUgdG8gYW55XG4vLyBwYXJlbnQgY29udGFpbmVyIGFuZCBpcyBub3QgaW50ZW5kZWQgZm9yIGZvbnQgc2l6ZXMsIHNvIHlvdSBzaG91bGQgbm90IHVzZSAncmVtJyBvciAnZW0nLiBcbiRnYXAgOiAxNnB4ICFkZWZhdWx0O1xuJGJhc2UtZ2FwIDogJGdhcDtcblxuLy8gU3BhY2VycyBtdXN0IHVzZSBhICd2aCcgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgaGVpZ2h0LXdpc2UuXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb24gYSBjb21wb25lbnQgbGV2ZWwuXG4kc3BhY2VyIDogNHZoICFkZWZhdWx0OyBcbiRiYXNlLXNwYWNlciA6ICRzcGFjZXI7IFxuXG4vLyBHdXR0ZXJzIG11c3QgdXNlIGEgJ3Z3JyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCB3aWR0aC13aXNlLiBcbi8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvciBtYXJnaW4gb24gYSBwYXJlbnQgbGV2ZWwuXG4vLyBBcyBhIHN1Z2dlc3Rpb24sIHRoaXMgZ3V0dGVyIGNvbnN0YW50IHNob3VsZCBiZSBoYWxmIHRoZSBzaXplIG9mIHRoZSBzcGFjZXIgdmFsdWUuXG4kZ3V0dGVyIDogM3Z3ICFkZWZhdWx0O1xuJGJhc2UtZ3V0dGVyIDogJGd1dHRlcjsgXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBc2JvbHV0ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEdhcHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHYXBzIGFyZSBhbiBhYnNvbHV0ZSB1bml0IChweCkgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBpbmRpdmlkdWFsIGVsZW1lbnRzIHdpdGhpbiBhIGNvbXBvbmVudGVkLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgc3BhY2luZyBhbW9uZ3N0IGJsb2NrLCBpbmxpbmUsIHRhYmxlIGFuZCBncm91cCBodG1sIGVsZW1lbnRzLlxuXG5AZnVuY3Rpb24gZ2FwKCRhbW91bnQgOiAxKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMSApIHsgXG4gICAgQHJldHVybiB2YXIoLS1nYXApOyBcbiAgfSBAZWxzZSB7IFxuICAgIEByZXR1cm4gY2FsYyh2YXIoLS1nYXApICogI3skYW1vdW50fSk7IFxuICB9XG59XG5cbiRnYXAwIDogZ2FwKDAuNSk7ICRnYXAwLSA6IGdhcCgtMC41KTtcbiRnYXAgIDogZ2FwKDEpOyAgICRnYXAtICA6IGdhcCgtMSk7XG4kZ2FwMiA6IGdhcCgyKTsgICAkZ2FwMi0gOiBnYXAoLTIpO1xuJGdhcDMgOiBnYXAoMyk7ICAgJGdhcDMtIDogZ2FwKC0zKTtcbiRnYXA0IDogZ2FwKDQpOyAgICRnYXA0LSA6IGdhcCgtNCk7XG4kZ2FwNSA6IGdhcCg1KTsgICAkZ2FwNS0gOiBnYXAoLTUpO1xuJGdhcDYgOiBnYXAoNik7ICAgJGdhcDYtIDogZ2FwKC02KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJlbGF0aXZlIFVuaXRzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGZ1bmN0aW9uIF9keW5hbWljLXVuaXQoJGN1c3RvbS1wcm9wZXJ0eSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuXG4gIC8vIENhbGMgTWV0aG9kXG4gICRyZXN1bHQgOiBjYWxjKCgjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSkgKyAje2lmKCRtaW4gPT0gMCwgMHB4LCAkbWluKX0pO1xuICBcbiAgLy8gQ2xhbXAgTWV0aG9kXG4gIEBpZiAoICR1c2UtY2xhbXAgKSB7XG4gICAgQGlmICggJGFtb3VudCA9PSAwICkge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7bWF0aC5kaXYoJG1pbiwgMil9LCAjeyRjdXN0b20tcHJvcGVydHl9ICogMC41LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIGlmICggJGFtb3VudCA9PSAxICkge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7JG1pbn0sICN7JGN1c3RvbS1wcm9wZXJ0eX0sICN7JG1heH0pO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7JG1pbn0sICN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAjeyRhbW91bnR9LCAjeyRtYXh9KTtcbiAgICB9XG4gIH0gXG5cbiAgQGlmICggJHVzZS1uZWdhdGl2ZSApIHtcbiAgICAkcmVzdWx0IDogY2FsYygtMSAqICN7JHJlc3VsdH0pO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xuXG59IFxuXG4vLyBTcGFjZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3BhY2VycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCBoZWlnaHQgKHZoKSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBjb21wb25lbnRlZCBsZXZlbC5cbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgdG9wIGFuZCBib3R0b20gc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBTcGFjZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRzcGFjZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2aCBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBzcGFjZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tc3BhY2VyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRzcGFjZXIwIDogdmFyKC0tc3BhY2VyMCk7ICRzcGFjZXIwLSA6IHZhcigtLXNwYWNlcjAtKTtcbiRzcGFjZXIgIDogdmFyKC0tc3BhY2VyMSk7ICRzcGFjZXItICA6IHZhcigtLXNwYWNlcjEtKTtcbiRzcGFjZXIyIDogdmFyKC0tc3BhY2VyMik7ICRzcGFjZXIyLSA6IHZhcigtLXNwYWNlcjItKTtcbiRzcGFjZXIzIDogdmFyKC0tc3BhY2VyMyk7ICRzcGFjZXIzLSA6IHZhcigtLXNwYWNlcjMtKTtcbiRzcGFjZXI0IDogdmFyKC0tc3BhY2VyNCk7ICRzcGFjZXI0LSA6IHZhcigtLXNwYWNlcjQtKTtcbiRzcGFjZXI1IDogdmFyKC0tc3BhY2VyNSk7ICRzcGFjZXI1LSA6IHZhcigtLXNwYWNlcjUtKTtcbiRzcGFjZXI2IDogdmFyKC0tc3BhY2VyNik7ICRzcGFjZXI2LSA6IHZhcigtLXNwYWNlcjYtKTtcblxuLy8gR3V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEd1dHRlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgd2lkdGggKHZ3KSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBwYXJlbnQgbGV2ZWw7XG4vLyBmb3IgZXhhbXBsZSwgYSB3cmFwcGVyIGNvbnRhaW5lciBvciBib2R5IHdpdGggbmVzdGVkIGNvbXBvbmVudHMuIFxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBsZWZ0IGFuZCByaWdodCBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbi8vIEd1dHRlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJGd1dHRlciAqIHgpICsgJGdhcGAuIFxuLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZ3IHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcblxuQGZ1bmN0aW9uIGd1dHRlcigkYW1vdW50IDogMSwgJG1pbiA6ICRiYXNlLWdhcCwgJG1heCA6IG51bGwsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcbiAgQGlmICggJGFtb3VudCA9PSAwKSB7ICRhbW91bnQgOiAwLjU7ICRtaW4gOiBtYXRoLmRpdigkbWluLCAyKTsgfVxuICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1heCkgPT0gJ251bGwnICkgeyBcbiAgICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1pbikgPT0gJ3N0cmluZycgYW5kIHN0cmluZy5pbmRleCgkbWluLCAndmFyJykgKSB7XG4gICAgICAkbWF4IDogY2FsYygjeyRtaW59ICogI3skYW1vdW50ICsgMX0pOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtYXggOiAjeyRtaW4gKiAoJGFtb3VudCArIDEpfTsgXG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2R5bmFtaWMtdW5pdCh2YXIoLS1ndXR0ZXIpLCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlLCAkdXNlLWNsYW1wKTtcbn1cblxuJGd1dHRlcjAgOiB2YXIoLS1ndXR0ZXIwKTsgJGd1dHRlcjAtIDogdmFyKC0tZ3V0dGVyMC0pO1xuJGd1dHRlciAgOiB2YXIoLS1ndXR0ZXIxKTsgJGd1dHRlci0gIDogdmFyKC0tZ3V0dGVyMS0pO1xuJGd1dHRlcjIgOiB2YXIoLS1ndXR0ZXIyKTsgJGd1dHRlcjItIDogdmFyKC0tZ3V0dGVyMi0pO1xuJGd1dHRlcjMgOiB2YXIoLS1ndXR0ZXIzKTsgJGd1dHRlcjMtIDogdmFyKC0tZ3V0dGVyMy0pO1xuJGd1dHRlcjQgOiB2YXIoLS1ndXR0ZXI0KTsgJGd1dHRlcjQtIDogdmFyKC0tZ3V0dGVyNC0pO1xuJGd1dHRlcjUgOiB2YXIoLS1ndXR0ZXI1KTsgJGd1dHRlcjUtIDogdmFyKC0tZ3V0dGVyNS0pO1xuJGd1dHRlcjYgOiB2YXIoLS1ndXR0ZXI2KTsgJGd1dHRlcjYtIDogdmFyKC0tZ3V0dGVyNi0pO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCYWNrZ3JvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNiYWNrZ3JvdW5kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdwb3NpdGlvbic7XG5cbkBtaXhpbiBibG93b3V0KCRwc3VkbyA6IGJlZm9yZSkge1xuICAmOiN7JHBzdWRvfSB7XG4gICAgY29udGVudDpcIlwiO1xuXHRcdGJhY2tncm91bmQtY29sb3I6aW5oZXJpdDsgXG5cdFx0ei1pbmRleDotMTsgXG4gICAgQGluY2x1ZGUgcG9zaXRpb24uYmxvd291dDsgXG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIFBvc2l0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcG9zaXRpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJy4uL2hlbHBlcnMvYnJlYWsnO1xuXG5AbWl4aW4gZXhwYW5kZWQge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTsgXG5cdHRvcDowOyBcblx0bGVmdDowOyBcblx0d2lkdGg6MTAwJTtcblx0aGVpZ2h0OjEwMCU7IFxufVxuXG5AbWl4aW4gY2VudHJlIHtcbiAgcG9zaXRpb246YWJzb2x1dGU7IFxuXHR0b3A6NTAlOyBcblx0bGVmdDo1MCU7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IFxufVxuXG5AbWl4aW4gYmxvd291dCgkaG9yaXpvbnRhbCA6IHRydWUsICR2ZXJ0aWNhbCA6IGZhbHNlKSB7XG4gIFxuICBwb3NpdGlvbjphYnNvbHV0ZTtcblxuICBAaWYgJGhvcml6b250YWwgYW5kICR2ZXJ0aWNhbCB7XG4gICAgdG9wICAgICAgIDogNTAlOyBcbiAgICBsZWZ0ICAgICAgOiA1MCU7IFxuICAgIHdpZHRoICAgICA6IDEwMHZ3O1xuICAgIGhlaWdodCAgICA6IDEwMHZoOyBcbiAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGUodmFyKC0tdHJhbnNsYXRlWCwgLTUwJSksIHZhcigtLXRyYW5zbGF0ZVksIC01MCUpKTtcbiAgfSBAZWxzZSBpZiAkaG9yaXpvbnRhbCAge1xuICAgIHRvcCAgICAgICA6IDA7IFxuICAgIGxlZnQgICAgICA6IDUwJTsgXG4gICAgd2lkdGggICAgIDogMTAwdnc7XG4gICAgaGVpZ2h0ICAgIDogMTAwJTsgXG4gICAgdHJhbnNmb3JtIDogdHJhbnNsYXRlWCh2YXIoLS10cmFuc2xhdGVYLCAtNTAlKSk7XG4gIH0gQGVsc2UgaWYgJHZlcnRpY2FsICB7XG4gICAgdG9wICAgICAgIDogNTAlOyBcbiAgICBsZWZ0ICAgICAgOiAwOyBcbiAgICB3aWR0aCAgICAgOiAxMDAlO1xuICAgIGhlaWdodCAgICA6IDEwMHZoOyBcbiAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVZKHZhcigtLXRyYW5zbGF0ZVksIC01MCUpKTtcbiAgfVxuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCcmVhayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JyZWFrXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gb3V0KCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiN7JGJyZWFrcG9pbnQgKyAxfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbigkYnJlYWtwb2ludCkge1xuICBAbWVkaWEgKG1heC13aWR0aDojeyRicmVha3BvaW50fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBiZXR3ZWVuKCRtaW4sICRtYXgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skbWlufSkgYW5kIChtYXgtd2lkdGg6I3skbWF4fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG91cnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBFeHBsaWNpdCBDb2xvdXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gRXhwbGljaXQgY29sb3VycyBhcmUgYSB3aGF0IHRoZXkgYXJlLiBHcmVlbiBpcyBncmVlbiwgYmx1ZSBpcyBibHVlLi4uIG5vIG9ic2N1cml0eS5cbi8vLyBXZSBzdWZmaXggbnVtYmVycyB0byBkZWZpbmUgdmFyaWF0aW9ucyBvZiBjb2xvdXJzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgb2Ygc2hhZGUuXG4vLy8gRXhhbXBsZTogZ3JlZW4xLCBncmVlbjIsIGdyZWVuMywgZ3JlZW40LiBUaGlzIGlzIHNvIHdlIGNhbiBpbW1pZGlhdGVseSBzZWUgaG93XG4vLy8gbWFueSBvcHRpb25zIHdlIGhhdmUgZm9yIGEgc2luZ2xlIGNvbG91ciBhdCBhIGdsYW5jZS4gSWYgeW91IHNlZSAkZ3JlZW40LCB5b3Uga25vdyB0aGlzXG4vLy8gcHJvamVjdCBpcyB1c2luZyBmb3VyIHZhcmlhdGlvbnMgb2YgZ3JlZW4uIFRoaXMgaXMgYWxzbyBvZnRlbiB1c2VmdWwgYmVjYXVzZSBtYW55IGRldmVsb3BtZW50XG4vLy8gdG9vbHMgd2lsbCBhdXRvLXN1Z2dlc3QgY29sb3VycyB3aXRoIGFjdHVhbCBleGFtcGxlcyBvZiB0aGUgY29sb3VyLlxuLy8vIFRoZSBQYWxsZXRlcyBtb2R1bGUgKGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlKSB3aWxsIG91dHB1dCBzaGFkZWQgbmFtZWQgdmFyaWF0aW9ucyxcbi8vLy8gPGNvbG91cj4tZGFyayBhbmQgPGNvbG91cj4tbGlnaHQuIElmIHlvdSBuZWVkIGFkZGl0aW9uYWwgc2hhZGVzIHBsZWFzZSByZWZyYWltIGZyb20gZ29pbmcgZG93blxuLy8vIHRoZSAnbGlnaHRlcicsICdsaWdodGVzdCcsICdkYXJrZXInLCAnZGFya2VzdCcgY29udmVudGlvbi4gVGhlc2UgYXJlIG5vdCBwYXJ0aWN1YXJseSBsZWdpYWJsZVxuLy8vIGFuZCB0aGV5IGFyZSBsaW1pdGVkIGJ5IGhvdyBjcmVhdGl2ZSAoY29uZnVzaW5nKSB5b3VyIHdvcmRpbmcgY2FuIGJlLlxuLy8vIEl0IGlzIGJldHRlciB0byBkZWZpbmUgYSBuZXcgZXhwbGNpdCBjb2xvdXIgZW50aXJlbHkuXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL3doYXQtZG8teW91LW5hbWUtY29sb3ItdmFyaWFibGVzL1xuXG4kYmx1ZTogIzEzMWY2YjsgLy8gUHJpbWFyeVxuJGJsdWUyOiAjMjkyYjY4OyAvLyBOYWtlZCBMaW5rXG4kYmx1ZTM6ICMzZDNmN2Y7IC8vIExpZ250IEdyYWRpZW50XG4kYmx1ZTQ6ICMxMDEyNGQ7IC8vIERhcmsgR3JhZGllbnRcbiRibHVlNTogIzAwOTVmZjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyXG4vLyAkcmVkICAgIDogI0UwM0E0MDsgLy8gU2Vjb25kYXJ5XG4kcmVkOiAjZGYzMDM1OyAvLyBTZWNvbmRhcnkgLSBUaGlzIHBhc3NlcyB0aGUgY29udHJhc3QgcmF0aW8gYWNjZXNzaWJpbGl0eSB0ZXN0IGluIEdvb2dsZXMgTGlnaHRob3VzZVxuJGdyZXk6ICM5Njk2OTU7XG4kZ3JleTI6ICM2YTZhNmE7IC8vIEZvbnRcbiRncmV5MzogI2Y0ZjRmNDsgLy8gTGlnaHRlciBHcmV5IEJhY2tncm91bmRcbiRncmV5NDogI2RjZGNkYztcbiRncmV5NTogI2IxYjFiMTsgLy8gU3BhY2VycyA8aHI+XG4kZ3JleTY6ICMzMzMyMzY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlclxuJGdyZWVuOiAjNTBiYzA4O1xuJGdyZWVuMjogIzc2YmIyODsgLy8gRVNHIGdyZWVuXG4keWVsbG93OiAjZjZmNGRiOyAvLyBEaXNjbGFpbWVyIEJhY2tncm91bmRcbiR5ZWxsb3cyOiAjZmNiMDAyO1xuJG9yYW5nZTogI2ZmNmEwMDtcbiRvcmFuZ2UyOiAjZGE4YjBmO1xuJGJsYWNrOiAjMWUxYzFjO1xuXG4kbWFyazogJGJsdWU1OyAvLyBiYWNrZ3JvdW5kIGNvbG91ciBmb3IgPG1hcms+IHRhZ3NcblxuJHByaW1hcnk6IHZhcigtLXByaW1hcnksICN7JGJsdWV9KTtcbiRzZWNvbmRhcnk6IHZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG5cbi8vLyBQYWxldHRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gQnkgbG9hZGluZyBjb25maWd1cmF0aW9ucyBpbnRvIHRoaXMgJ3BhbGxldGUnIG1vZHVsZSwgd2Ugd2lsbCBiZSBhYmxlXG4vLy8gdG8gZGVjbGFyZSB2YXJpYW50cyBvZiBhIGZldyBjb21tb24gY29sb3Vycy4gWW91IGNhbiBhbHNvIGFkanVzdCB0aGUgbGlnaHRuZXNzXG4vLy8gb3IgZGFya25lc3Mgb2YgZWFjaCB2YXJpYW50IGJ5IHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IHByaXZhdGUgcnVsZXMuXG4vLy8gUGFsZXR0ZSB3aWxsIGFsc28gZXhwb3NlIHBvcHVsYXIgc29jaWFsIG1lZGlhIGNvbG91cnMgYW5kIHRoZSBZZWxsbyBicmFuZCBjb2xvdXIuXG4vLy8gQHNlZSBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9hdC1ydWxlcy9mb3J3YXJkI2NvbmZpZ3VyaW5nLW1vZHVsZXNcbi8vLyBAb3V0cHV0ICRncmVlbiA6ICMwMjkyOUE7ICRncmVlbi1kYXJrIDogIzI1NjU2OTsgJGdyZWVuLWxpZ2h0OiAjMDRiOWM0O1xuXG5AZm9yd2FyZCAnY3JlYXRlL3BhbGV0dGUnIHdpdGggKFxuICAkYmx1ZTogJGJsdWUsXG4gICRyZWQ6ICRyZWQsXG4gICRncmV5OiAkZ3JleSxcbiAgJHllbGxvdzogJHllbGxvdyxcbiAgJG9yYW5nZTogJG9yYW5nZSxcbiAgJGdyZWVuOiAkZ3JlZW4sXG4gICRibGFjazogJGJsYWNrXG4pO1xuXG4kbWFwOiAoXG4gIGJsdWU6ICRibHVlLFxuICByZWQ6ICRyZWQsXG4gIGdyZXk6ICRncmV5MyxcbiAgeWVsbG93OiAkeWVsbG93LFxuICBvcmFuZ2U6ICRvcmFuZ2UsXG4gIGdyZWVuOiAkZ3JlZW4sXG4gIGJsYWNrOiAkYmxhY2ssXG4pO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBIb3ZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2hvdmVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gaG92ZXIoJHNlbGVjdG9yIDogbnVsbCkge1xuICBAbWVkaWEgKCBob3ZlciA6IGhvdmVyICkge1xuICAgICY6aG92ZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRzZWxlY3RvciB7XG4gICAgJiN7JHNlbGVjdG9yfSB7IFxuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbn0iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5AdXNlIFwiZm9udFwiO1xuXG5AbWl4aW4gX2Jhc2Utc3R5bGluZyB7XG4gIFxuICAtLWZvbnQtY29sb3VyIDogI3skZm9udC1jb2xvdXJ9O1xuICAtLWJhY2tncm91bmQtY29sb3VyIDogI3skd2hpdGV9O1xuICAtLWJvcmRlci1yYWRpdXMgOiAjeyRib3JkZXItcmFkaXVzfTtcbiAgLS1ib3JkZXItY29sb3VyIDogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlciA6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nIDogI3skZ2FwfSAjeyRnYXB9O1xuXG4gIGJvcmRlci1yYWRpdXM6JGJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6dmFyKC0tYm9yZGVyKTsgXG4gIHBhZGRpbmc6dmFyKC0tcGFkZGluZyk7IFxuICBmb250LXNpemU6Zm9udC5zaXplKDE0KTsgXG4gIGNvbG9yOnZhciggLS1mb250LWNvbG91cik7XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICB9XG4gICY6Zm9jdXMge1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOnRyYW5zcGFyZW50O1xuICAgIH1cbiAgICBvdXRsaW5lLWNvbG9yIDogJGJsdWU7IFxuICB9XG4gICYuYXV0b2NvbXBsZXRlOm5vdChbdmFsdWU9XCJcIl0pOmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG59XG5cbkBtaXhpbiBhbGwtaW5wdXRzKCkge1xuICBpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW5wdXQoJHR5cGU6bnVsbCkge1xuXG4gICRzZWxlY3RvciA6ICdpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSk6bm90KFt0eXBlPVwicmFkaW9cIl0pJztcblxuICBAaWYgdHlwZS1vZigkdHlwZSkgIT0gJ251bGwnIHtcbiAgICAkc2VsZWN0b3IgOiAnaW5wdXRbdHlwZT1cIiN7JHR5cGV9XCJdJztcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgIF9iYXNlLXN0eWxpbmc7IFxuICAgIEBjb250ZW50O1xuICB9XG5cbn1cblxuQG1peGluIHNlbGVjdCgkc3Ryb2tlIDogJGJsYWNrKSB7XG5cbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpjYWxjKDEwMCUgLSAjeyRnYXB9KSBjZW50ZXI7IFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdcIitjb2xvdXIuZW5jb2RlKCRzdHJva2UpK1wiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDL3N2ZyUzRVwiKTsgICAgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufVxuXG5AbWl4aW4gY2hlY2tib3goKSB7XG5cbn1cblxuQG1peGluIHRleHRhcmVhKCkge1xuXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIEBzZWUgaHR0cHM6Ly9jb2RlcGVuLmlvL21hcmtub3R0b24vcGVuL0V4UGJOR2Vcbi8vLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJrbm90dG9uL2RvZ2dpc3R5bGUvYmxvYi9tYXN0ZXIvbGlicmFyeS9zcmMvY3JlYXRlL191bml0cy5zY3NzXG5cbi8vLyBUaGlzIHVuaXRzIGNyZWF0b3Igd2lsbCByZW5kZXIgc2l4IHBvc2l0aXZlIGFuZCBzaXggbmVnYXRpdmUgc2FzcyB2YXJpYWJsZXMgZm9yIFxuLy8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHZhbHVlcyBkZWZpbmVkIGJlbG93LiBcblxuQGZvcndhcmQgJ2NyZWF0ZS91bml0cycgd2l0aCAoXG5cbiAgLy8vIEdhcHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vLyBHYXBzIGFyZSBhbiBhYnNvbHV0ZSB1bml0IChweCkgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBpbmRpdmlkdWFsIGVsZW1lbnRzIHdpdGhpbiBhIGNvbXBvbmVudGVkLiBcbiAgLy8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgc3BhY2luZyBhbW9uZ3N0IGJsb2NrLCBpbmxpbmUsIHRhYmxlIGFuZCBncm91cCBodG1sIGVsZW1lbnRzLlxuICAvLy8gR2FwcyBtdXN0IHVzZSBhbiBhYnNvbHV0ZSBhbmQgc3RhdGljICdweCcgdW5pdC4gSXQgc2hvdWxkIG5vdCBiZSByZWxhdGl2ZSB0byBhbnlcbiAgLy8vIHBhcmVudCBjb250YWluZXIgYW5kIGlzIG5vdCBpbnRlbmRlZCBmb3IgZm9udCBzaXplcywgc28geW91IHNob3VsZCBub3QgdXNlICdyZW0nIG9yICdlbScuIFxuICAvLy8gQHJlc3VsdCA6ICRnYXAwLCAkZ2FwLCAkZ2FwMiwgJGdhcDMsICRnYXA0LCAkZ2FwNSAsICRnYXA2LCAkZ2FwMC0sICRnYXAtLCAkZ2FwMi0sICRnYXAzLSwgJGdhcDQtLCAkZ2FwNS0gYW5kICRnYXA2LVxuICBcbiAgJGdhcCA6IDE2cHgsXG5cbiAgLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BhY2VycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCBoZWlnaHQgKHZoKSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBjb21wb25lbnRlZCBsZXZlbC5cbiAgLy8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgdG9wIGFuZCBib3R0b20gc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4gIC8vLyBTcGFjZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRzcGFjZXIgKiB4KSArICRnYXBgLiBcbiAgLy8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2aCBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG4gIC8vLyBTcGFjZXJzIG11c3QgdXNlIGEgJ3ZoJyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCBoZWlnaHQtd2lzZS5cbiAgLy8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBvbiBhIGNvbXBvbmVudCBsZXZlbC5cbiAgLy8vIEByZXN1bHQgOiAkc3BhY2VyMCwgJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlcjQsICRzcGFjZXI1LCAkc3BhY2VyNiwgJHNwYWNlcjAtLCAkc3BhY2VyLSwgJHNwYWNlci0sICRzcGFjZXItLCAkc3BhY2VyNC0sICRzcGFjZXI1LSBhbmQgJHNwYWNlcjYtXG4gIFxuICAkc3BhY2VyIDogNHZoLCBcblxuICAvLyBHdXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuICAvLyBmb3IgZXhhbXBsZSwgYSB3cmFwcGVyIGNvbnRhaW5lciBvciBib2R5IHdpdGggbmVzdGVkIGNvbXBvbmVudHMuIFxuICAvLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IGxlZnQgYW5kIHJpZ2h0IHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuICAvLy8gR3V0dGVycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkZ3V0dGVyICogeCkgKyAkZ2FwYC4gXG4gIC8vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdncgc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuICAvLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4gIC8vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuICAvLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuICAvLy8gQHJlc3VsdCA6ICRndXR0ZXIwLCAkZ3V0dGVyLCAkZ3V0dGVyMiwgJGd1dHRlcjMsICRndXR0ZXI0LCAkZ3V0dGVyNSwgJGd1dHRlcjYsICRndXR0ZXIwLSwgJGd1dHRlci0sICRndXR0ZXIyLSwgJGd1dHRlcjMtLCAkZ3V0dGVyNC0sICRndXR0ZXI1LSBhbmQgJGd1dHRlcjYtXG4gIFxuICAkZ3V0dGVyIDogM3Z3LCBcblxuKTtcblxuJGJvcmRlci1yYWRpdXMgOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuJHNpZGViYXItd2lkdGggOiA1MDBweDsiLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuXG5AbWl4aW4gbWFyaygpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cnMtbWFyaztcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKCN7JGJvcmRlci1yYWRpdXN9IC8gMik7XG4gIHBhZGRpbmc6MCA1cHg7XG4gIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uO1xufVxuXG5AbWl4aW4gbWFyay1yZXNldCgpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1yYWRpdXM6IGluaXRpYWw7XG4gIHBhZGRpbmc6aW5pdGlhbDtcbiAgdHJhbnNpdGlvbjogaW5pdGlhbDtcbn0iLCJAbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0geyBAY29udGVudDsgfVxuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGVhZGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnLi9jb2xsZWN0aW9ucy9mb250JztcbkB1c2UgJy4vbW9kdWxlcy91bml0JztcblxuLy8gRGVmYXVsdCBIZWFkaW5nIFZhbHVlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxIDogKFxuICAnZm9udC1zaXplJyAgIDogMy4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4xXG4pICFkZWZhdWx0O1xuXG4kaDIgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjVyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjNcbikgIWRlZmF1bHQ7XG5cbiRoMyA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg0IDogKFxuICAnZm9udC1zaXplJyAgIDogMi4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDUgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjhyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuNnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGJhc2UgOiA2Mi41ICFkZWZhdWx0O1xuJHNjYWxlciA6IDEuNXZ3ICFkZWZhdWx0O1xuJGVuYWJsZS1jcm9wcGluZyA6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWxsYmFjayBMaW5lLWhlaWdodHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMSA6IG1hcC5zZXQoJGgxLCAnbGluZS1oZWlnaHQnLCAxLjEpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMiA6IG1hcC5zZXQoJGgyLCAnbGluZS1oZWlnaHQnLCAxLjMpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMywgXCJsaW5lLWhlaWdodFwiKSB7ICRoMyA6IG1hcC5zZXQoJGgzLCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNCwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNCA6IG1hcC5zZXQoJGg0LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNSA6IG1hcC5zZXQoJGg1LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNiA6IG1hcC5zZXQoJGg2LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5cbi8vIERlZmluZSB0aGUgdmFyaWFibGVzIHNvIHRoZXkgYXJlIHN0aWxsIGFjY2VzaWJsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMS1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDEsICdmb250LXNpemUnKTtcbiRoMS1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDEsICdsaW5lLWhlaWdodCcpO1xuJGgxLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDEsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgxLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDEsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMSwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDItZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgyLCAnZm9udC1zaXplJyk7XG4kaDItbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgyLCAnbGluZS1oZWlnaHQnKTtcbiRoMi1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgyLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMi1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDIsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGgzLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMywgJ2ZvbnQtc2l6ZScpO1xuJGgzLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMywgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDMtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMywgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDMtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgzLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNC1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDQsICdmb250LXNpemUnKTtcbiRoNC1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDQsICdsaW5lLWhlaWdodCcpO1xuJGg0LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDQsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg0LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDQsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNCwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDUtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg1LCAnZm9udC1zaXplJyk7XG4kaDUtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg1LCAnbGluZS1oZWlnaHQnKTtcbiRoNS1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg1LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNS1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDUsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg2LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNiwgJ2ZvbnQtc2l6ZScpO1xuJGg2LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDYtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNiwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDYtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg2LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbi8vIEhhbmRsZXMgQ3JvcHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRfaDEtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgxLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2gyLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMiwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oMy1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDMsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDQtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg0LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g1LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNSwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNi1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDYsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcblxuJF9oMS1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDEsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDItY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDIsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgyLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2gzLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMywgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNC1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDQsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDUtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDUsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg1LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g2LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuXG5cbi8vIE1peGlucyBmb3IgZWFjaCBoZWFkaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBfc2V0LWNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcCkge1xuXG4gIEBpZiAobWV0YS50eXBlLW9mKCRjcm9wKSA9PSAnbWFwJykge1xuXG4gICAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAgICRsaW5lLWhlaWdodCA6IHVuaXQuc3RyaXAoJGxpbmUtaGVpZ2h0KTtcbiAgICAkdG9wICAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkY3JvcCwgXCJ0b3BcIiksIHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJ0b3BcIikpLCAwKTtcbiAgICAkYm90dG9tICAgICAgOiBpZihtYXAuaGFzLWtleSgkY3JvcCwgXCJib3R0b21cIiksIHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJib3R0b21cIikpLCAwKTtcblxuICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICR0b3AsICRib3R0b20pO1xuXG4gIH1cblxufVxuXG5AbWl4aW4gaDEoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDEtZm9udC1zaXplLW1pbiBhbmQgJGgxLWZvbnQtc2l6ZS1taW4gPCAkaDEtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMS1mb250LXNpemUtbWluKX0sICN7JGgxLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMS1mb250LXNpemUsICRoMS1saW5lLWhlaWdodCwgJF9oMS1jcm9wLXRvcCwgJF9oMS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgxLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMi1mb250LXNpemUtbWluIGFuZCAkaDItZm9udC1zaXplLW1pbiA8ICRoMi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZS1taW4pfSwgI3skaDItc2NhbGVyfSwgI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgyLWZvbnQtc2l6ZSwgJGgyLWxpbmUtaGVpZ2h0LCAkX2gyLWNyb3AtdG9wLCAkX2gyLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDItbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoMygkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMy1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMy1mb250LXNpemUtbWluIGFuZCAkaDMtZm9udC1zaXplLW1pbiA8ICRoMy1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZS1taW4pfSwgI3skaDMtc2NhbGVyfSwgI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgzLWZvbnQtc2l6ZSwgJGgzLWxpbmUtaGVpZ2h0LCAkX2gzLWNyb3AtdG9wLCAkX2gzLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDMtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNCgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNC1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNC1mb250LXNpemUtbWluIGFuZCAkaDQtZm9udC1zaXplLW1pbiA8ICRoNC1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZS1taW4pfSwgI3skaDQtc2NhbGVyfSwgI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg0LWZvbnQtc2l6ZSwgJGg0LWxpbmUtaGVpZ2h0LCAkX2g0LWNyb3AtdG9wLCAkX2g0LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDQtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNS1mb250LXNpemUtbWluIGFuZCAkaDUtZm9udC1zaXplLW1pbiA8ICRoNS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZS1taW4pfSwgI3skaDUtc2NhbGVyfSwgI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg1LWZvbnQtc2l6ZSwgJGg1LWxpbmUtaGVpZ2h0LCAkX2g1LWNyb3AtdG9wLCAkX2g1LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDUtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNi1mb250LXNpemUtbWluIGFuZCAkaDYtZm9udC1zaXplLW1pbiA8ICRoNi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZS1taW4pfSwgI3skaDYtc2NhbGVyfSwgI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AyKCRoNi1mb250LXNpemUsICRoNi1saW5lLWhlaWdodCwgJF9oNi1jcm9wLXRvcCwgJF9oNi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg2LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBUcmFuc2l0aW9uc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcImhlbHBlcnMvZWFzZVwiO1xuXG4kZHVyYXRpb24gOiAwLjJzO1xuJGVhc2UgICAgIDogZWFzZS4kaW4tb3V0O1xuJGRlbGF5ICAgIDogbnVsbDtcblxuJHRyYW5zaXRpb24gOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAkZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgJGVhc2UpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICRkZWxheSk7Il19 */