
@import url("https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap");
.toggle-switch-container {
  --toggle-light: #f8f9fa;
  --toggle-dark: #212529;
  --toggle-sun: #ffd43b;
  --toggle-sky: #4dabf7;
  --toggle-width: 32px;
  --toggle-height: 16px;
  --toggle-padding: 2px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.toggle-switch-container .toggle-switch {
  position: relative;
  width: var(--toggle-width);
  height: var(--toggle-height);
}
.toggle-switch-container .toggle-label {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: var(--toggle-dark);
  border-radius: calc(var(--toggle-height) / 2);
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.toggle-switch-container .toggle-label:hover {
  opacity: 0.9;
}
.toggle-switch-container .toggle-input {
  position: absolute;
  display: none;
}
.toggle-switch-container .toggle-input:checked ~ .slider {
  background-color: var(--toggle-sky);
}
.toggle-switch-container .toggle-input:checked ~ .slider::before {
  transform: translateX(calc(var(--toggle-width) - var(--toggle-height) + var(--toggle-padding)));
  background-color: var(--toggle-sun);
  box-shadow: 0 0 2px var(--toggle-sun), 0 0 5px var(--toggle-sun), inset 0 0 0 2px var(--toggle-sun);
}
.toggle-switch-container .slider {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: calc(var(--toggle-height) / 2);
  transition: all 0.3s ease;
}
.toggle-switch-container .slider::before {
  content: "";
  position: absolute;
  top: var(--toggle-padding);
  left: var(--toggle-padding);
  width: calc(var(--toggle-height) - var(--toggle-padding) * 2);
  height: calc(var(--toggle-height) - var(--toggle-padding) * 2);
  border-radius: 50%;
  background-color: var(--toggle-dark);
  box-shadow: inset 5px -2px 0px 0px var(--toggle-light);
  transition: all 0.3s ease;
}

.turbo-progress-bar {
  background-color: var(--interaction, #41e7f3) !important;
  height: 4px !important;
  box-shadow: 0 0 8px var(--interaction, #41e7f3);
}

#navigation-loader {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  transition: opacity 120ms ease-in;
}

#navigation-loader[data-active=true] {
  pointer-events: auto;
  opacity: 1;
}

.navigation-loader__backdrop {
  position: absolute;
  inset: 0;
  background: var(--background-colour, #eff1f5);
  opacity: 0.72;
  backdrop-filter: blur(2px);
}

.navigation-loader__content {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 24px 32px;
  border-radius: 12px;
  background: var(--card-colour, #E6E9EF);
  border: 1px solid var(--border-colour, #dce0e8);
  box-shadow: var(--box-shadow, 0px 0px 10px rgba(156, 160, 176, 0.3));
}

.navigation-loader__spinner {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 3px solid color-mix(in srgb, var(--interaction, #41e7f3) 25%, transparent);
  border-top-color: var(--interaction, #41e7f3);
  animation: navigation-loader-spin 0.8s linear infinite;
}

.navigation-loader__label {
  margin: 0;
  color: var(--text-colour, #4c4f69);
  font-size: 1rem;
}

@keyframes navigation-loader-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .navigation-loader__spinner {
    animation-duration: 2s;
  }
  #navigation-loader {
    transition: none;
  }
}
.dashboard-hero-box {
  min-height: 200px;
}

.dashboard-hero-widgets {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
  flex-shrink: 0;
}
@media (max-width: 767.98px) {
  .dashboard-hero-widgets {
    width: 100%;
    align-items: stretch;
  }
}

.hero-widgets-edit {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  opacity: 0.9;
  transition: opacity 0.15s ease, background-color 0.15s ease;
}
.hero-widgets-edit:hover {
  opacity: 1;
  background: var(--interaction);
}

.hero-widgets-empty {
  padding: 1rem 1.5rem;
  border: 1px dashed var(--border-colour);
  border-radius: 12px;
  background: var(--card-colour);
  color: var(--text-colour);
  opacity: 0.9;
}
.hero-widgets-empty:hover {
  opacity: 1;
  background: var(--interaction);
}

.dashboard-hero-kpis {
  display: grid;
  grid-template-columns: repeat(2, minmax(130px, 1fr));
  gap: 0.75rem;
}
@media (min-width: 1200px) {
  .dashboard-hero-kpis {
    grid-template-columns: repeat(3, minmax(130px, 1fr));
  }
}
@media (max-width: 767.98px) {
  .dashboard-hero-kpis {
    width: 100%;
    grid-template-columns: repeat(2, 1fr);
  }
}

.hero-widget-cell {
  position: relative;
  display: flex;
  min-width: 0;
}
.hero-widget-cell > .hero-kpi-tile {
  flex: 1;
  width: 100%;
}
.hero-widget-cell.hero-widget-cell--wide {
  grid-column: span 2;
}
.hero-widget-cell.hero-placeholder > .hero-kpi-tile {
  opacity: 0.35;
  box-shadow: inset 0 0 0 2px var(--primary-colour, #007bff);
  border-radius: 0.5rem;
}

.dashboard-hero-kpis.hero-sorting {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  cursor: grabbing;
}

.hero-ghost {
  pointer-events: none;
  transform: scale(1.03);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
  border-radius: 0.5rem;
  opacity: 0.95;
}
.hero-ghost .hero-drag-handle {
  display: none;
}

.hero-drag-handle {
  position: absolute;
  top: 4px;
  right: 6px;
  z-index: 5;
  padding: 2px 4px;
  font-size: 0.7rem;
  line-height: 1;
  color: var(--text-colour);
  cursor: grab;
  opacity: 0;
  transition: opacity 0.15s ease;
  touch-action: none;
}
.hero-drag-handle:active {
  cursor: grabbing;
}

.hero-widget-cell:hover .hero-drag-handle {
  opacity: 0.5;
}

.hero-drag-handle:hover {
  opacity: 1;
}

.hero-kpi-tile {
  display: block;
  padding: 0.8rem 1rem;
  border-radius: 12px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.hero-kpi-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
  color: var(--text-colour);
}
.hero-kpi-tile .hero-kpi-value {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.1;
}
.hero-kpi-tile .hero-kpi-label {
  font-size: 0.72rem;
  opacity: 0.75;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-top: 0.15rem;
}
.hero-kpi-tile.hero-kpi-tile--wide {
  grid-column: 1/-1;
}
.hero-kpi-tile.hero-kpi-tile--text .hero-kpi-value {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.25;
}
.hero-kpi-tile .hero-kpi-value--sm {
  font-size: 0.95rem;
  font-weight: 600;
}

.hero-kpi-tile--forecast:hover {
  transform: none;
}
.hero-kpi-tile--forecast .hero-forecast {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
}
.hero-kpi-tile--forecast .hero-forecast-day {
  flex: 1;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
}
.hero-kpi-tile--forecast .hero-forecast-day i {
  font-size: 1.1rem;
  opacity: 0.9;
}
.hero-kpi-tile--forecast .hero-forecast-dow {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  opacity: 0.7;
}
.hero-kpi-tile--forecast .hero-forecast-temp {
  font-size: 0.95rem;
  font-weight: 700;
}
.hero-kpi-tile--forecast .forecast-red i {
  color: var(--notification-danger, #dc3545);
}
.hero-kpi-tile--forecast .forecast-yellow i {
  color: var(--secondary-colour, #ffc107);
}
.hero-kpi-tile--forecast .forecast-green i {
  color: var(--notification-success, #28a745);
}

.hero-kpi-tile--week-jobs:hover {
  transform: translateY(-2px);
}
.hero-kpi-tile--week-jobs .hero-forecast-day {
  padding: 0.25rem 0;
  border-radius: 0.4rem;
}
.hero-kpi-tile--week-jobs .hero-forecast-day i {
  color: var(--primary-colour, #007bff);
}
.hero-kpi-tile--week-jobs .hero-forecast-day--empty {
  opacity: 0.4;
}
.hero-kpi-tile--week-jobs .hero-forecast-day--empty i {
  color: inherit;
}
.hero-kpi-tile--week-jobs .hero-forecast-day--today {
  background: rgba(0, 123, 255, 0.12);
}
.hero-kpi-tile--week-jobs .hero-forecast-day--today .hero-forecast-dow {
  opacity: 1;
  font-weight: 700;
}

.hero-kpi-tile--news:hover {
  transform: none;
}
.hero-kpi-tile--news .hero-kpi-label {
  margin-bottom: 0.4rem;
}
.hero-kpi-tile--news .hero-news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.hero-kpi-tile--news .hero-news-link {
  color: inherit;
  text-decoration: none;
  font-size: 0.82rem;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hero-kpi-tile--news .hero-news-link::before {
  content: "• ";
  opacity: 0.6;
}
.hero-kpi-tile--news .hero-news-link:hover {
  text-decoration: underline;
}

.hero-widgets-list {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  max-height: 55vh;
  overflow-y: auto;
}

.hero-widget-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0.6rem;
  border-radius: 10px;
  cursor: pointer;
  margin: 0;
}
.hero-widget-option:hover {
  background: rgba(125, 125, 125, 0.12);
}

.hero-widget-option-info {
  display: flex;
  align-items: center;
}

.hero-widgets-group-title {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.55;
  margin: 0.75rem 0 0.25rem;
}
.hero-widgets-group-title:first-child {
  margin-top: 0;
}

.fc {
  --fc-border-color: var(--border-colour);
  --fc-page-bg-color: var(--card-colour);
  --fc-neutral-bg-color: var(--background-colour);
  --fc-neutral-text-color: var(--text-colour);
  --fc-button-bg-color: var(--card-colour);
  --fc-button-border-color: var(--border-colour);
  --fc-button-text-color: var(--text-colour);
  --fc-button-hover-bg-color: var(--card-colour);
  --fc-button-hover-border-color: var(--secondary-colour);
  --fc-button-active-bg-color: var(--secondary-colour);
  --fc-button-active-border-color: var(--secondary-colour);
  --fc-today-bg-color: color-mix(in srgb, var(--secondary-colour) 12%, transparent);
  --fc-now-indicator-color: var(--secondary-colour);
  --fc-event-bg-color: var(--secondary-colour);
  --fc-event-border-color: var(--secondary-colour);
  --fc-event-text-color: #ffffff;
  --fc-event-selected-overlay-color: color-mix(in srgb, var(--secondary-colour) 30%, transparent);
  --fc-list-event-hover-bg-color: var(--card-colour);
  font-family: inherit;
  color: var(--text-colour);
}
.fc .fc-button-primary {
  border-radius: var(--border-radius, 6px) !important;
  box-shadow: none !important;
  text-transform: capitalize;
  font-weight: 500;
  padding: 0.4rem 0.85rem !important;
  transition: all 0.15s ease;
}
.fc .fc-button-primary:focus {
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--secondary-colour) 25%, transparent) !important;
}
.fc .fc-button-primary:not(:disabled).fc-button-active {
  color: #ffffff !important;
}
.fc .fc-button-group > .fc-button-primary {
  border-radius: 0 !important;
}
.fc .fc-button-group > .fc-button-primary:first-child {
  border-top-left-radius: var(--border-radius, 6px) !important;
  border-bottom-left-radius: var(--border-radius, 6px) !important;
}
.fc .fc-button-group > .fc-button-primary:last-child {
  border-top-right-radius: var(--border-radius, 6px) !important;
  border-bottom-right-radius: var(--border-radius, 6px) !important;
}
.fc .fc-button-group > .fc-button-primary:not(:first-child) {
  margin-left: -1px !important;
}
.fc .fc-toolbar-title {
  font-family: inherit;
  font-weight: 600;
  color: var(--text-colour);
}
.fc .fc-toolbar.fc-header-toolbar {
  margin-bottom: 0.75rem;
}
.fc .fc-col-header-cell {
  background: var(--card-colour);
  border-bottom: 1px solid var(--border-colour);
}
.fc .fc-col-header-cell .fc-col-header-cell-cushion {
  color: var(--text-colour);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  padding: 0.3rem 0.4rem;
}
.fc .fc-daygrid-day-number {
  color: var(--text-colour);
  padding: 0.25rem 0.4rem;
  font-weight: 500;
  font-size: 0.85rem;
}
.fc .fc-daygrid-day-frame {
  padding: 0;
}
.fc .fc-daygrid-day-top {
  justify-content: flex-end;
}
.fc .fc-day-today .fc-daygrid-day-number {
  background: var(--secondary-colour);
  color: #ffffff;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0.25rem;
}
.fc .fc-day-other {
  background-color: var(--background-colour);
}
.fc .fc-day-other .fc-daygrid-day-number {
  opacity: 0.45;
}
.fc .fc-daygrid-more-link {
  color: var(--secondary-colour);
  font-weight: 500;
}
.fc .fc-daygrid-more-link:hover {
  text-decoration: underline;
}

.fc-event {
  border-radius: var(--border-radius, 6px);
  border: none;
  font-size: 0.78rem;
  cursor: grab;
  transition: filter 0.15s ease, transform 0.15s ease;
}
.fc-event:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
}
.fc-event.fc-event-dragging {
  opacity: 0.7;
  cursor: grabbing;
}
.fc-event .fc-event-main {
  padding: 0.18rem 0.4rem;
}

.fc-daygrid-event.standalone-event {
  background-color: var(--secondary-colour);
  color: #ffffff;
  border-left: 3px solid var(--secondary-colour);
}

.fc-daygrid-event.project-event {
  background-color: var(--event-colour, #20c997);
  color: #ffffff;
  border-left: 3px solid color-mix(in srgb, var(--event-colour, #20c997) 70%, black);
}

.fc-event.past-event {
  filter: grayscale(0.5);
  opacity: 0.7;
}
.fc-event.past-event .fc-event-title {
  text-decoration: line-through;
}

.fc-event.today-event {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--secondary-colour) 35%, transparent);
}

.fc-daygrid-event.calendar-schedule-block {
  background-color: var(--event-colour, var(--secondary-colour));
  color: #ffffff;
  border: 1px solid color-mix(in srgb, var(--event-colour, var(--secondary-colour)) 70%, black);
  cursor: pointer;
}
.fc-daygrid-event.calendar-schedule-block .fc-event-title::before {
  content: "\f807";
  font-family: "Font Awesome 6 Pro";
  font-weight: 300;
  margin-right: 0.35rem;
  opacity: 0.85;
}
.fc-daygrid-event.calendar-schedule-block.block-status-tentative {
  border-style: dashed;
  background-color: color-mix(in srgb, var(--event-colour, var(--secondary-colour)) 70%, transparent);
}
.fc-daygrid-event.calendar-schedule-block.block-status-weather_postponed {
  background-image: repeating-linear-gradient(45deg, transparent 0 6px, rgba(255, 255, 255, 0.18) 6px 12px);
}
.fc-daygrid-event.calendar-schedule-block.block-status-completed {
  filter: saturate(0.5);
  opacity: 0.85;
}

.fc-list {
  background-color: var(--card-colour);
  border-color: var(--border-colour);
}
.fc-list .fc-list-day-cushion {
  background: color-mix(in srgb, var(--secondary-colour) 8%, var(--card-colour));
  color: var(--text-colour);
}
.fc-list .fc-list-day-text, .fc-list .fc-list-day-side-text {
  color: var(--text-colour);
}
.fc-list .fc-list-event {
  background-color: transparent !important;
  color: var(--text-colour);
}
.fc-list .fc-list-event td {
  color: var(--text-colour);
  border-color: var(--border-colour);
}
.fc-list .fc-list-event .fc-list-event-time, .fc-list .fc-list-event .fc-list-event-title {
  color: var(--text-colour);
}
.fc-list .fc-list-event .fc-list-event-title a {
  color: var(--text-colour);
  text-decoration: none;
}
.fc-list .fc-list-event:hover td {
  background-color: color-mix(in srgb, var(--secondary-colour) 10%, transparent);
}
.fc-list .fc-list-event-dot {
  border-color: var(--event-colour, var(--secondary-colour));
}
.fc-list .fc-list-empty {
  color: var(--text-colour);
  opacity: 0.7;
}

.workflow-filter-label {
  cursor: pointer;
  transition: all 0.2s ease;
  border: 1px solid var(--border-colour);
  border-radius: var(--border-radius, 6px);
  padding: 0.35rem 0.65rem;
  font-size: 0.8rem;
  display: inline-flex;
  align-items: center;
  background-color: var(--card-colour);
  color: var(--text-colour);
}
.workflow-filter-label:hover {
  border-color: var(--secondary-colour);
  background-color: var(--card-colour);
}
.workflow-filter-label.active {
  font-weight: 500;
  background-color: var(--secondary-colour);
  border-color: var(--secondary-colour);
  color: #ffffff;
}

.compact-btn {
  padding: 0.25rem 0.5rem !important;
  font-size: 0.75rem;
}

.project-search-container {
  position: relative;
}

.project-search-output {
  position: absolute;
  z-index: 1100;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 0.25rem;
  max-height: 280px;
  overflow-y: auto;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--border-radius, 6px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

.project-result {
  display: block;
  padding: 0.6rem 0.85rem;
  border-bottom: 1px solid var(--border-colour);
  cursor: pointer;
  transition: background-color 0.12s ease;
}
.project-result:last-child {
  border-bottom: none;
}
.project-result:hover, .project-result.highlighted {
  background-color: color-mix(in srgb, var(--secondary-colour) 12%, transparent);
}

.project-result-content {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.project-result-icon {
  color: var(--secondary-colour);
  font-size: 1rem;
  width: 18px;
  text-align: center;
  flex-shrink: 0;
}

.project-result-text strong {
  color: var(--text-colour);
  font-weight: 600;
  display: block;
}

.project-search-message,
.project-search-loading,
.project-search-no-results,
.project-search-error {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.7rem 0.85rem;
  font-size: 0.85rem;
  color: var(--text-colour);
  opacity: 0.75;
}

@media (max-width: 768px) {
  .fc .fc-toolbar {
    flex-direction: column;
    gap: 0.5rem;
  }
  .fc .fc-toolbar-title {
    font-size: 1.1rem;
  }
  .fc .fc-button-primary {
    padding: 0.3rem 0.65rem !important;
    font-size: 0.8rem;
  }
  .fc .fc-event {
    font-size: 0.7rem;
  }
}
.button-13 {
  background: linear-gradient(to right, #ffffff, #f8f9fa);
  border-radius: 8px;
  border: none;
  box-sizing: border-box;
  color: #0f1111;
  cursor: pointer;
  display: inline-flex;
  min-height: 30px;
  font-family: "Amazon Ember", sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 29px;
  padding: 0 16px;
  position: relative;
  text-align: center;
  text-decoration: none;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  vertical-align: middle;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  isolation: isolate;
  contain: content;
  z-index: 1;
}
.button-13::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.6), transparent);
  transform: translateX(-100%);
  transition: 0.5s;
  z-index: 1;
  pointer-events: none;
}
.button-13::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(45deg, #008296, #00a2bf, #008296);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: all 0.3s ease;
  pointer-events: none;
}

.button-13:hover {
  box-shadow: 0 5px 15px rgba(0, 130, 150, 0.1), 0 3px 8px rgba(0, 0, 0, 0.05);
  background: linear-gradient(to right, #f8f9fa, #ffffff);
}
.button-13:hover::before {
  transform: translateX(100%);
}
.button-13:hover::after {
  opacity: 1;
}

.button-13:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(0, 130, 150, 0.1), 0 1px 4px rgba(0, 0, 0, 0.05);
}

.button-13:focus {
  outline: none;
}
.button-13:focus::after {
  opacity: 1;
}

.button-13:disabled {
  background: #f1f1f1;
  color: #888888;
  cursor: not-allowed;
  border-color: #dddddd;
  transform: none;
  box-shadow: none;
}
.button-13:disabled::before, .button-13:disabled::after {
  display: none;
}

@keyframes shimmer {
  100% {
    transform: translateX(100%);
  }
}
.button-13-outline {
  background: transparent;
  border: 1px solid #008296;
  border-radius: 8px;
  box-sizing: border-box;
  color: #008296;
  cursor: pointer;
  display: inline-flex;
  min-height: 30px;
  font-family: "Amazon Ember", sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 29px;
  padding: 0 16px;
  position: relative;
  text-align: center;
  text-decoration: none;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  vertical-align: middle;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  isolation: isolate;
  contain: content;
  z-index: 1;
}
.button-13-outline::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(120deg, transparent, rgba(0, 130, 150, 0.2), transparent);
  transform: translateX(-100%);
  transition: 0.5s;
  z-index: 1;
  pointer-events: none;
}
.button-13-outline::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(45deg, #008296, #00a2bf, #008296);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: all 0.3s ease;
  pointer-events: none;
}
.button-13-outline:hover {
  background-color: rgba(0, 130, 150, 0.05);
  box-shadow: 0 5px 15px rgba(0, 130, 150, 0.1), 0 3px 8px rgba(0, 0, 0, 0.05);
}
.button-13-outline:hover::before {
  transform: translateX(100%);
}
.button-13-outline:hover::after {
  opacity: 0.3;
}
.button-13-outline:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(0, 130, 150, 0.1), 0 1px 4px rgba(0, 0, 0, 0.05);
}
.button-13-outline:focus {
  outline: none;
}
.button-13-outline:focus::after {
  opacity: 0.2;
}
.button-13-outline:disabled {
  background: transparent;
  color: #888888;
  cursor: not-allowed;
  border-color: #888888;
  transform: none;
  box-shadow: none;
}
.button-13-outline:disabled::before, .button-13-outline:disabled::after {
  display: none;
}

.menu-button {
  background-color: transparent;
  color: #6c757d;
  border: none;
  padding: 10px 20px;
  border-radius: 5px;
  width: 100%;
  text-align: left;
  transition: all 0.2s ease;
  margin-bottom: 0.5rem;
}
.menu-button:hover {
  background-color: rgba(0, 0, 0, 0.05);
  color: #000;
}
.menu-button.active {
  background-color: #000;
  color: #fff;
}

.hero_button {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  box-sizing: border-box;
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  min-height: 50px;
  font-family: "Quicksand", sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
  padding: 12px 32px;
  position: relative;
  text-align: center;
  text-decoration: none;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  vertical-align: middle;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  isolation: isolate;
  contain: content;
  z-index: 1;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.hero_button:link, .hero_button:visited {
  text-decoration: none;
}
.hero_button:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
  border-color: rgba(255, 255, 255, 0.4);
}
.hero_button:hover::before {
  content: "";
  position: absolute;
  text-decoration: none;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transform: translateX(-100%);
  animation: shine 1.5s infinite;
}
.hero_button:active {
  transform: translateY(1px) scale(0.98);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
@keyframes shine {
  100% {
    transform: translateX(100%);
  }
}

.mdui-icon,
.dropdown-toggle-split {
  background-color: var(--card-colour);
  color: var(--text-colour);
  box-shadow: none;
  border-color: var(--border-colour);
  border: 1px solid var(--border-colour);
  border-radius: 50%;
  padding: 4px 4px;
  cursor: pointer;
  transition: all 0.2s ease;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mdui-icon:hover,
.dropdown-toggle-split:hover {
  background-color: var(--tertiary-colour);
  color: var(--secondary-colour);
}
.mdui-icon:active,
.dropdown-toggle-split:active {
  transform: scale(0.95);
}
.mdui-icon[disabled],
.dropdown-toggle-split[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
.mdui-icon[disabled]:hover,
.dropdown-toggle-split[disabled]:hover {
  background: transparent;
  transform: none;
  border-color: var(--border-colour);
}

.color-preset-btn {
  width: 24px;
  height: 24px;
  border: 2px solid #fff;
  border-radius: 50%;
  margin-right: 0.25rem;
  padding: 0;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.color-preset-btn:hover {
  transform: scale(1.1);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  border-color: #dee2e6;
}
.color-preset-btn:focus {
  outline: none;
  border-color: #007bff;
  box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}
.color-preset-btn:active {
  transform: scale(0.95);
}

.color-presets .color-preset-btn {
  display: inline-block;
  vertical-align: middle;
}

.view-toggle {
  display: inline-flex;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid var(--border-colour, #dddddd);
}
.view-toggle .view-toggle-btn {
  padding: 0.35rem 0.6rem;
  border: none;
  background: transparent;
  color: var(--text-colour, #4e4e4e);
  opacity: 0.6;
  transition: all 0.2s ease;
}
.view-toggle .view-toggle-btn:hover {
  opacity: 1;
  background: var(--card-colour, #f5f5f5);
}
.view-toggle .view-toggle-btn.active {
  opacity: 1;
  background: var(--button-colour, #5B6078);
  color: var(--button-text, #ffffff);
}

/* ============================================
   MODERN FLOATING PILL NAVBAR STYLES
   ============================================ */
/* Override global link styles for navbar */
.modern-floating-navbar a.nav-link-modern,
.modern-floating-navbar .nav-link-modern {
  text-decoration: none !important;
}

.modern-floating-navbar a.nav-link-modern:hover,
.modern-floating-navbar .nav-link-modern:hover {
  text-decoration: none !important;
}

.modern-floating-navbar {
  position: fixed;
  top: 20px;
  left: 2%;
  right: 2%;
  z-index: 1000;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
@media (max-width: 768px) {
  .modern-floating-navbar {
    top: 10px;
    left: 1%;
    right: 1%;
  }
}

.navbar-container {
  /* Light theme (Catppuccin Latte) */
  background: rgb(239, 241, 245); /* Base with transparency */
  border: 1px solid rgba(156, 160, 176, 0.2); /* Overlay 0 */
  border-radius: 50px;
  padding: 12px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  box-shadow: 0 8px 32px rgba(76, 79, 105, 0.1), 0 1px 3px rgba(0, 0, 0, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: visible;
  animation: floatNavbar 6s ease-in-out infinite;
}
.navbar-container::before {
  content: "";
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, transparent, rgba(0, 130, 150, 0.1), transparent, rgba(137, 180, 250, 0.1), transparent);
  border-radius: 52px;
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: -1;
}
.navbar-container:hover {
  transform: translateY(-2px) scale(1.005);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.navbar-container:hover::before {
  opacity: 1;
}
@media (max-width: 1200px) {
  .navbar-container {
    padding: 10px 24px;
    gap: 15px;
  }
}
@media (max-width: 768px) {
  .navbar-container {
    padding: 8px 16px;
    gap: 10px;
    flex-wrap: wrap;
  }
}

@keyframes floatNavbar {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  25% {
    transform: translateY(-2px) rotate(0.2deg);
  }
  50% {
    transform: translateY(-1px) rotate(0deg);
  }
  75% {
    transform: translateY(-3px) rotate(-0.2deg);
  }
}
/* ============================================
   LEFT SECTION: LOGO & THEME TOGGLE
   ============================================ */
.navbar-left {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .navbar-left {
    gap: 12px;
  }
}

.navbar-brand-modern {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  padding: 8px 12px;
  border-radius: 25px;
  position: relative;
  overflow: hidden;
}
.navbar-brand-modern::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 130, 150, 0.1), transparent);
  transition: left 0.5s ease;
}
.navbar-brand-modern:hover {
  transform: scale(1.05);
  color: #179299;
}
.navbar-brand-modern:hover::before {
  left: 100%;
}
.navbar-brand-modern:hover .navbar-brand-text {
  animation: textFloat 2s ease-in-out infinite;
  filter: drop-shadow(0 2px 4px rgba(23, 146, 153, 0.4));
}
@keyframes textFloat {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-2px);
  }
}
.navbar-brand-modern .navbar-logo {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}
@media (max-width: 768px) {
  .navbar-brand-modern .navbar-logo {
    width: 32px;
    height: 32px;
  }
}
.navbar-brand-modern .navbar-brand-text {
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: 1.25rem;
  margin: 0;
  /* Light theme (Catppuccin Latte) */
  background: linear-gradient(135deg, #179299, #7287fd); /* Teal to Lavender */
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  transition: all 0.3s ease;
  filter: drop-shadow(0 1px 2px rgba(23, 146, 153, 0.2));
}
@media (max-width: 768px) {
  .navbar-brand-modern .navbar-brand-text {
    font-size: 1.1rem;
  }
}
.navbar-brand-modern:hover .navbar-logo {
  transform: scale(1.1);
  box-shadow: 0 4px 16px rgba(23, 146, 153, 0.4), 0 0 20px rgba(23, 146, 153, 0.2), 0 0 40px rgba(23, 146, 153, 0.1);
  animation: logoGlow 2s ease-in-out infinite alternate;
}
@keyframes logoGlow {
  0% {
    box-shadow: 0 4px 16px rgba(23, 146, 153, 0.4), 0 0 20px rgba(23, 146, 153, 0.2), 0 0 40px rgba(23, 146, 153, 0.1);
  }
  100% {
    box-shadow: 0 6px 20px rgba(114, 135, 253, 0.4), 0 0 25px rgba(114, 135, 253, 0.3), 0 0 50px rgba(114, 135, 253, 0.2);
  }
}

/* Theme Toggle */
.theme-toggle-modern {
  display: flex;
  align-items: center;
}

.modern-toggle-switch {
  position: relative;
  width: 60px;
  height: 30px;
  cursor: pointer;
  transition: transform 0.2s ease;
}
.modern-toggle-switch.toggling .toggle-slider {
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2), 0 2px 8px rgba(0, 0, 0, 0.1), 0 0 20px rgba(23, 146, 153, 0.4);
}
.modern-toggle-switch.toggling .toggle-thumb {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3), 0 0 15px rgba(23, 146, 153, 0.5);
}
.modern-toggle-switch:hover {
  transform: scale(1.02);
}
.modern-toggle-switch:active {
  transform: scale(0.98);
}

.toggle-checkbox {
  opacity: 0;
  width: 0;
  height: 0;
}

.toggle-slider {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, #1e1e2e, #313244);
  border-radius: 30px;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2), 0 2px 8px rgba(0, 0, 0, 0.1);
}

.toggle-thumb {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 24px;
  height: 24px;
  background: linear-gradient(135deg, #f9e2af, #fab387);
  border-radius: 50%;
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  color: #1e1e2e;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  /* Container for both icons - positioned absolutely for perfect centering */
}
.toggle-thumb .sun-icon,
.toggle-thumb .moon-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 11px;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.toggle-thumb .sun-icon {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(180deg) scale(0.6);
}
.toggle-thumb .moon-icon {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(0deg) scale(1);
  color: #001f47;
  text-shadow: 0 0 6px rgba(202, 211, 245, 0.4);
}

.toggle-checkbox:checked + .toggle-slider {
  background: linear-gradient(135deg, #89b4fa, #74c7ec);
}

.toggle-checkbox:checked + .toggle-slider .toggle-thumb {
  transform: translateX(30px);
  background: linear-gradient(135deg, #f9e2af, #f2cdcd);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3), 0 0 15px rgba(249, 226, 175, 0.6);
}
.toggle-checkbox:checked + .toggle-slider .toggle-thumb .sun-icon {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(0deg) scale(1);
  color: #dc8a78;
  text-shadow: 0 0 8px rgba(220, 138, 120, 0.6);
}
.toggle-checkbox:checked + .toggle-slider .toggle-thumb .moon-icon {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(-180deg) scale(0.6);
}

/* ============================================
   CENTER SECTION: NAVIGATION LINKS
   ============================================ */
.navbar-center {
  flex: 1;
  display: flex;
  justify-content: center;
  overflow: visible;
}
@media (max-width: 1200px) {
  .navbar-center {
    display: none;
  }
}

.nav-links-container {
  display: flex;
  align-items: center;
  gap: 8px;
  /* Light theme (Catppuccin Latte) */
  background: rgb(220, 224, 232); /* Surface 0 with transparency */
  border-radius: 30px;
  padding: 8px;
  border: 1px solid rgba(156, 160, 176, 0.2); /* Overlay 0 */
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.nav-link-modern {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border-radius: 20px;
  text-decoration: none !important;
  /* Light theme (Catppuccin Latte) */
  color: #4c4f69 !important; /* Text */
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
  font-weight: 500;
  font-size: 0.9rem;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  white-space: nowrap;
  overflow: hidden;
}
.nav-link-modern i {
  font-size: 14px;
  transition: all 0.3s ease;
  color: inherit !important;
}
.nav-link-modern span {
  transition: all 0.3s ease;
  color: inherit !important;
}
.nav-link-modern::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.5s ease;
}
.nav-link-modern:hover, .nav-link-modern.active {
  /* Light theme (Catppuccin Latte) - Match dropdown colors */
  background: linear-gradient(135deg, #179299, #7287fd) !important; /* Teal to Lavender */
  color: #eff1f5 !important; /* Base for contrast */
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important;
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 8px 20px rgba(23, 146, 153, 0.3), 0 2px 8px rgba(0, 0, 0, 0.1);
}
.nav-link-modern:hover::before, .nav-link-modern.active::before {
  left: 100%;
}
.nav-link-modern:hover i, .nav-link-modern.active i {
  transform: scale(1.1);
  color: #eff1f5 !important;
}
.nav-link-modern:hover span, .nav-link-modern.active span {
  color: #eff1f5 !important;
}
.nav-link-modern.active {
  background: linear-gradient(135deg, #179299, #7287fd) !important;
  color: #eff1f5 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important;
  box-shadow: 0 4px 12px rgba(23, 146, 153, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.nav-link-modern.active i, .nav-link-modern.active span {
  color: #eff1f5 !important;
}

/* ============================================
   DROPDOWN STYLES
   ============================================ */
/* Nested Dropdown Styles */
.dropdown-menu-nested {
  position: absolute !important;
  top: -12px !important;
  left: 100% !important;
  margin-left: 2px !important; /* Reduced gap for easier cursor movement */
  background: rgb(239, 241, 245) !important;
  border: 1px solid rgba(156, 160, 176, 0.3);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(76, 79, 105, 0.2), 0 4px 12px rgba(0, 0, 0, 0.1);
  opacity: 0;
  visibility: hidden;
  transform: translateX(-15px) scale(0.9);
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1), transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 9999 !important;
  min-width: 200px;
  padding: 12px;
  pointer-events: none;
}
.dropdown-menu-nested::before {
  content: "";
  position: absolute;
  top: 20px;
  left: -4px; /* Adjusted for smaller gap */
  width: 8px; /* Smaller arrow for tighter fit */
  height: 8px;
  background: linear-gradient(135deg, #f9e2af, #df8e1d); /* Catppuccin Yellow accent */
  border: 1px solid #df8e1d; /* Matching yellow border */
  border-bottom: none;
  border-right: none;
  transform: rotate(45deg);
  box-shadow: 0 2px 8px rgba(223, 142, 29, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.dropdown-menu-nested .dropdown-item-modern {
  margin: 2px 0;
  color: #4c4f69;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
}
.dropdown-menu-nested .dropdown-item-modern i {
  color: #179299;
}
.dropdown-menu-nested .dropdown-item-modern:hover {
  background: linear-gradient(135deg, rgba(23, 146, 153, 0.1), rgba(114, 135, 253, 0.1)) !important;
  color: #179299 !important;
  text-shadow: 0 1px 2px rgba(23, 146, 153, 0.3);
  transform: translateX(4px);
}
.dropdown-menu-nested .dropdown-item-modern:hover i {
  transform: scale(1.1) translateY(-1px);
  color: #7287fd !important;
  filter: drop-shadow(0 1px 2px rgba(114, 135, 253, 0.3));
}

.dropdown-item-modern.dropdown-nested {
  position: relative !important;
  padding: 0 !important;
  margin: 2px 0;
  overflow: visible !important;
  /* Override default dropdown-item-modern styles for nested containers */
  background: none !important;
  border-radius: 0 !important;
}
.dropdown-item-modern.dropdown-nested::before {
  display: none !important; /* Remove shimmer effect from outer container */
}
.dropdown-item-modern.dropdown-nested:hover {
  background: none !important; /* Prevent double background on outer container */
  transform: none !important; /* Remove transform from outer container */
}
.dropdown-item-modern.dropdown-nested {
  /* Create invisible bridge area for smooth hover transitions */
}
.dropdown-item-modern.dropdown-nested::after {
  content: "";
  position: absolute;
  top: 0;
  right: -6px; /* Bridge the gap */
  width: 8px; /* Cover the gap area */
  height: 100%;
  background: transparent;
  z-index: 10000;
  pointer-events: auto;
}
.dropdown-item-modern.dropdown-nested .dropdown-item-trigger {
  display: flex !important;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  color: #4c4f69;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
  font-weight: 500;
  font-size: 0.9rem;
  text-decoration: none;
}
.dropdown-item-modern.dropdown-nested .dropdown-item-trigger i {
  font-size: 16px;
  color: #179299;
  transition: all 0.2s ease;
}
.dropdown-item-modern.dropdown-nested .dropdown-item-trigger .nested-arrow {
  margin-left: auto;
  font-size: 12px;
  transition: transform 0.3s ease;
  color: #7287fd;
}
.dropdown-item-modern.dropdown-nested:hover > .dropdown-item-trigger {
  background: linear-gradient(135deg, rgba(23, 146, 153, 0.1), rgba(114, 135, 253, 0.1)) !important;
  color: #179299 !important;
  text-shadow: 0 1px 2px rgba(23, 146, 153, 0.3);
}
.dropdown-item-modern.dropdown-nested:hover > .dropdown-item-trigger i {
  color: #179299 !important;
}
.dropdown-item-modern.dropdown-nested:hover > .dropdown-item-trigger .nested-arrow {
  transform: rotate(90deg);
  color: #7287fd !important;
}
.dropdown-item-modern.dropdown-nested:hover > .dropdown-menu-nested {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(0) scale(1) !important;
  pointer-events: auto;
}
.dropdown-item-modern.dropdown-nested {
  /* Keep nested dropdown open when hovering over the menu itself */
}
.dropdown-item-modern.dropdown-nested .dropdown-menu-nested:hover {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(0) scale(1) !important;
  pointer-events: auto;
}

/* Main Dropdown Styles */
.nav-dropdown-modern {
  position: relative;
  display: flex;
  align-items: center;
}
.nav-dropdown-modern .dropdown-hover-bridge {
  position: absolute;
  top: 100%;
  left: 50%;
  width: 220px;
  min-width: 100%;
  height: 16px;
  transform: translateX(-50%);
  background: transparent;
  pointer-events: none;
  z-index: 999;
}
.nav-dropdown-modern.dropdown-open > .dropdown-hover-bridge {
  pointer-events: auto;
}
.nav-dropdown-modern .dropdown-trigger {
  cursor: pointer;
  position: relative;
}
.nav-dropdown-modern .dropdown-trigger .dropdown-arrow {
  transition: transform 0.3s ease;
  font-size: 12px;
}
.nav-dropdown-modern .dropdown-menu-modern {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%);
  /* Light theme (Catppuccin Latte) */
  background: rgb(239, 241, 245); /* Base */
  border: 1px solid rgba(156, 160, 176, 0.2); /* Overlay 0 */
  border-radius: 16px;
  box-shadow: 0 16px 40px rgba(76, 79, 105, 0.15), 0 4px 12px rgba(0, 0, 0, 0.08);
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(-10px) scale(0.95);
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 1000;
  min-width: 220px;
  padding: 12px;
  overflow: visible;
  pointer-events: none;
}
.nav-dropdown-modern .dropdown-menu-modern::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 16px;
  height: 16px;
  background: rgb(239, 241, 245); /* Base */
  border: 1px solid rgba(156, 160, 176, 0.2); /* Overlay 0 */
  border-bottom: none;
  border-right: none;
  transform: translateX(-50%) rotate(45deg);
}
.nav-dropdown-modern .dropdown-menu-modern.dropdown-menu-right {
  left: auto;
  right: 0;
  transform: translateX(0);
}
.nav-dropdown-modern .dropdown-menu-modern.dropdown-menu-right::before {
  left: auto;
  right: 24px;
  transform: translateX(0) rotate(45deg);
}
.nav-dropdown-modern.dropdown-open .dropdown-menu-modern {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0) scale(1);
  pointer-events: auto;
}
.nav-dropdown-modern.dropdown-open .dropdown-menu-modern.dropdown-menu-right {
  transform: translateX(0) translateY(0) scale(1);
}
.nav-dropdown-modern.dropdown-open .dropdown-trigger .dropdown-arrow {
  transform: rotate(180deg);
}
.nav-dropdown-modern.active .dropdown-trigger {
  background: linear-gradient(135deg, #179299, #7287fd) !important;
  color: #eff1f5 !important;
  box-shadow: 0 4px 12px rgba(23, 146, 153, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.nav-dropdown-modern.active .dropdown-trigger i, .nav-dropdown-modern.active .dropdown-trigger span {
  color: #eff1f5 !important;
}

.dropdown-item-modern {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-radius: 10px;
  text-decoration: none;
  /* Light theme (Catppuccin Latte) */
  color: #4c4f69; /* Text */
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
  font-weight: 500;
  font-size: 0.9rem;
  transition: all 0.2s ease;
  position: relative;
  overflow: hidden;
}
.dropdown-item-modern i {
  font-size: 16px;
  color: #179299; /* Teal */
  transition: all 0.2s ease;
}
.dropdown-item-modern span {
  flex: 1;
}
.dropdown-item-modern .badge-ended {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: white;
  font-size: 0.7rem;
  padding: 2px 8px;
  border-radius: 12px;
  font-weight: 600;
}
.dropdown-item-modern::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 130, 150, 0.1), transparent);
  transition: left 0.4s ease;
}
.dropdown-item-modern:hover {
  /* Light theme (Catppuccin Latte) */
  background: linear-gradient(135deg, rgba(23, 146, 153, 0.1), rgba(114, 135, 253, 0.1)); /* Teal to Lavender */
  color: #179299; /* Teal */
  text-shadow: 0 1px 2px rgba(23, 146, 153, 0.3);
  transform: translateX(4px);
}
.dropdown-item-modern:hover::before {
  left: 100%;
}
.dropdown-item-modern:hover i {
  transform: scale(1.1) translateY(-1px);
  color: #7287fd; /* Lavender */
  filter: drop-shadow(0 1px 2px rgba(114, 135, 253, 0.3));
}
.dropdown-item-modern.highlight-item {
  background: linear-gradient(135deg, rgba(23, 146, 153, 0.1), rgba(114, 135, 253, 0.1));
  border: 1px solid rgba(23, 146, 153, 0.2);
  font-weight: 600;
}
.dropdown-item-modern.highlight-item:hover {
  background: linear-gradient(135deg, #179299, #7287fd); /* Teal to Lavender */
  color: #eff1f5; /* Base for contrast */
  transform: translateX(4px) scale(1.02);
}
.dropdown-item-modern.highlight-item:hover i {
  color: #eff1f5;
}

.dropdown-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1), transparent);
  margin: 8px 0;
}

/* Quote Item Styles */
.quote-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px !important;
  margin: 2px 0;
  border-radius: 8px;
  background: rgba(248, 250, 252, 0.8);
  border: 1px solid rgba(226, 232, 240, 0.5);
}
.quote-item .quote-item-main {
  flex: 1;
}
.quote-item .quote-link {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: inherit;
  font-size: 0.85rem;
}
.quote-item .quote-delete-btn {
  background: none;
  border: none;
  width: 30px;
  height: 30px;
  color: #ef4444;
  cursor: pointer;
  padding: 4px;
  border-radius: 4px;
  transition: all 0.2s ease;
}
.quote-item .quote-delete-btn:hover {
  background: rgba(239, 68, 68, 0.1);
  transform: scale(1.1);
}

/* Navigation Badge */
.nav-badge {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: white;
  font-size: 0.7rem;
  padding: 2px 6px;
  border-radius: 10px;
  font-weight: 600;
  margin-left: 4px;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}
/* ============================================
   RIGHT SECTION: CTA BUTTON
   ============================================ */
.navbar-right {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.cta-button-modern {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  /* Light theme (Catppuccin Latte) */
  background: linear-gradient(135deg, #179299, #7287fd); /* Teal to Lavender */
  color: #eff1f5; /* Base for contrast */
  text-decoration: none;
  border-radius: 25px;
  font-weight: 600;
  font-size: 0.9rem;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(23, 146, 153, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.cta-button-modern::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s ease;
}
.cta-button-modern i {
  font-size: 16px;
  transition: all 0.3s ease;
}
.cta-button-modern:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 8px 24px rgba(23, 146, 153, 0.4), 0 2px 8px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.3);
  color: #eff1f5 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.cta-button-modern:hover::before {
  left: 100%;
}
.cta-button-modern:hover span {
  animation: textBounce 0.6s ease-in-out;
}
.cta-button-modern:hover i {
  transform: translateX(2px) scale(1.1);
}
@keyframes textBounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-2px);
  }
}
.cta-button-modern.go-solar-btn {
  /* Light theme (Catppuccin Latte) */
  background: linear-gradient(135deg, #df8e1d, #fe640b); /* Yellow to Peach */
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(223, 142, 29, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.cta-button-modern.go-solar-btn:hover {
  box-shadow: 0 8px 24px rgba(223, 142, 29, 0.4), 0 2px 8px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.cta-button-modern.go-solar-btn:hover i {
  animation: lightning 0.6s ease-in-out;
}
@media (max-width: 768px) {
  .cta-button-modern {
    padding: 10px 16px;
    font-size: 0.85rem;
  }
}

@keyframes lightning {
  0%, 100% {
    transform: translateX(2px) scale(1);
  }
  50% {
    transform: translateX(2px) scale(1.2) rotate(15deg);
  }
}
/* ============================================
   MOBILE STYLES
   ============================================ */
.mobile-menu-btn {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  border-radius: 8px;
  transition: all 0.3s ease;
  position: relative;
  z-index: 1001; /* Ensure button stays above mobile menu */
}
@media (max-width: 1200px) {
  .mobile-menu-btn {
    display: flex;
    flex-direction: column;
    gap: 3px;
  }
}
.mobile-menu-btn .hamburger-line {
  width: 20px;
  height: 2px;
  background: linear-gradient(135deg, #179299, #7287fd);
  border-radius: 2px;
  transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  transform-origin: center;
}
.mobile-menu-btn:hover {
  background: rgba(23, 146, 153, 0.1);
  transform: scale(1.05);
}
.mobile-menu-btn:hover .hamburger-line {
  background: linear-gradient(135deg, #7287fd, #179299);
}
.mobile-menu-btn.active .hamburger-line {
  background: linear-gradient(135deg, #ef4444, #dc2626);
}
.mobile-menu-btn {
  /* Focus state for accessibility */
}
.mobile-menu-btn:focus {
  outline: 2px solid rgba(23, 146, 153, 0.5);
  outline-offset: 2px;
}

.mobile-nav-collapse {
  width: 100%;
  margin-top: 16px;
  max-height: calc(100vh - 120px); /* Prevent covering entire screen */
  overflow-y: auto; /* Enable scrolling when content is too tall */
}
@media (min-width: 1201px) {
  .mobile-nav-collapse {
    display: none !important;
  }
}

.mobile-nav-content {
  background: rgb(255, 255, 255);
  border-radius: 20px;
  padding: 20px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  max-height: calc(100vh - 140px); /* Account for navbar height and margins */
  overflow-y: auto; /* Enable scrolling for content */
  /* Custom scrollbar styling */
  scrollbar-width: thin;
  scrollbar-color: rgba(23, 146, 153, 0.3) rgba(248, 250, 252, 0.5);
}
.mobile-nav-content::-webkit-scrollbar {
  width: 6px;
}
.mobile-nav-content::-webkit-scrollbar-track {
  background: rgba(248, 250, 252, 0.5);
  border-radius: 3px;
}
.mobile-nav-content::-webkit-scrollbar-thumb {
  background: rgba(23, 146, 153, 0.3);
  border-radius: 3px;
}
.mobile-nav-content::-webkit-scrollbar-thumb:hover {
  background: rgba(23, 146, 153, 0.5);
}

/* ============================================
   MOBILE NAVIGATION STYLES
   ============================================ */
.mobile-nav-section {
  margin-bottom: 12px;
}
.mobile-nav-section:last-child {
  margin-bottom: 0;
}

.mobile-nav-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  background: linear-gradient(135deg, rgba(23, 146, 153, 0.08), rgba(114, 135, 253, 0.08));
  border: 1px solid rgba(23, 146, 153, 0.15);
  border-radius: 16px;
  color: #2c2f40; /* Much darker text for better visibility */
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
  text-decoration: none;
}
.mobile-nav-header i {
  font-size: 18px;
  color: #179299;
  transition: all 0.3s ease;
}
.mobile-nav-header span {
  flex: 1;
  transition: all 0.3s ease;
  font-weight: 600; /* Make text bolder */
}
.mobile-nav-header .mobile-chevron {
  font-size: 14px;
  color: #7287fd;
  transition: transform 0.3s ease;
}
.mobile-nav-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(23, 146, 153, 0.1), transparent);
  transition: left 0.4s ease;
}
.mobile-nav-header:hover, .mobile-nav-header:focus {
  background: linear-gradient(135deg, rgba(23, 146, 153, 0.12), rgba(114, 135, 253, 0.12));
  border-color: rgba(23, 146, 153, 0.25);
  transform: translateX(4px);
  box-shadow: 0 4px 16px rgba(23, 146, 153, 0.2);
}
.mobile-nav-header:hover::before, .mobile-nav-header:focus::before {
  left: 100%;
}
.mobile-nav-header:hover i, .mobile-nav-header:focus i {
  color: #7287fd;
  transform: scale(1.1);
}
.mobile-nav-header:hover span, .mobile-nav-header:focus span {
  color: #179299;
  text-shadow: 0 1px 2px rgba(23, 146, 153, 0.2);
}
.mobile-nav-header:hover .mobile-chevron, .mobile-nav-header:focus .mobile-chevron {
  transform: rotate(180deg);
  color: #179299;
}
.mobile-nav-header.mobile-nav-direct {
  cursor: pointer;
}
.mobile-nav-header.mobile-nav-direct:hover .mobile-chevron {
  transform: translateX(4px) !important;
}
.mobile-nav-header[aria-expanded=true] {
  background: linear-gradient(135deg, rgba(23, 146, 153, 0.15), rgba(114, 135, 253, 0.15));
  border-color: rgba(23, 146, 153, 0.3);
}
.mobile-nav-header[aria-expanded=true] .mobile-chevron {
  transform: rotate(180deg);
}

.mobile-nav-submenu {
  margin-top: 8px;
  padding-left: 16px;
  border-left: 2px solid rgba(23, 146, 153, 0.2);
  border-radius: 0 12px 12px 0;
}

.mobile-nav-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  margin: 4px 0;
  background: rgb(248, 250, 252); /* More solid light background */
  border: 1px solid rgba(203, 213, 225, 0.8); /* Stronger border */
  border-radius: 12px;
  color: #1e293b; /* Much darker text for better readability */
  text-decoration: none;
  font-weight: 500;
  font-size: 0.9rem;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}
.mobile-nav-link i {
  font-size: 16px;
  color: #179299;
  transition: all 0.3s ease;
}
.mobile-nav-link span {
  flex: 1;
  transition: all 0.3s ease;
  font-weight: 500; /* Ensure good readability */
}
.mobile-nav-link::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(23, 146, 153, 0.1), transparent);
  transition: left 0.4s ease;
}
.mobile-nav-link:hover, .mobile-nav-link:focus {
  background: linear-gradient(135deg, rgba(23, 146, 153, 0.08), rgba(114, 135, 253, 0.08));
  border-color: rgba(23, 146, 153, 0.3);
  color: #179299;
  transform: translateX(8px);
  box-shadow: 0 4px 12px rgba(23, 146, 153, 0.15);
}
.mobile-nav-link:hover::before, .mobile-nav-link:focus::before {
  left: 100%;
}
.mobile-nav-link:hover i, .mobile-nav-link:focus i {
  color: #7287fd;
  transform: scale(1.1) translateY(-1px);
}
.mobile-nav-link:hover span, .mobile-nav-link:focus span {
  text-shadow: 0 1px 2px rgba(23, 146, 153, 0.2);
}
.mobile-nav-link.mobile-nav-link-nested {
  margin-left: 20px;
  background: rgb(241, 245, 249); /* Slightly different nested background */
  border-left: 3px solid rgba(23, 146, 153, 0.3);
}
.mobile-nav-link.mobile-nav-link-nested:hover {
  border-left-color: #7287fd;
  transform: translateX(12px);
  background: rgb(236, 242, 247);
}
.mobile-nav-link.mobile-nav-highlight {
  background: linear-gradient(135deg, rgba(23, 146, 153, 0.1), rgba(114, 135, 253, 0.1));
  border: 1px solid rgba(23, 146, 153, 0.2);
  font-weight: 600;
}
.mobile-nav-link.mobile-nav-highlight:hover {
  background: linear-gradient(135deg, #179299, #7287fd);
  color: #eff1f5;
  transform: translateX(8px) scale(1.02);
}
.mobile-nav-link.mobile-nav-highlight:hover i, .mobile-nav-link.mobile-nav-highlight:hover span {
  color: #eff1f5;
}

.mobile-nav-nested {
  margin: 8px 0;
}

.mobile-nav-nested-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: rgba(236, 242, 247, 0.9); /* Better light background */
  border: 1px solid rgba(186, 201, 219, 0.7); /* Stronger border */
  border-radius: 10px;
  color: #1e293b; /* Darker text for better visibility */
  font-weight: 600; /* Bolder text */
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
}
.mobile-nav-nested-header i {
  font-size: 14px;
  color: #179299;
  transition: all 0.3s ease;
}
.mobile-nav-nested-header span {
  flex: 1;
  font-weight: 600; /* Ensure good readability */
}
.mobile-nav-nested-header .mobile-chevron-nested {
  font-size: 12px;
  color: #7287fd;
  transition: transform 0.3s ease;
}
.mobile-nav-nested-header:hover {
  background: rgb(219, 232, 245);
  border-color: rgba(23, 146, 153, 0.3);
  transform: translateX(4px);
}
.mobile-nav-nested-header:hover i {
  color: #7287fd;
  transform: scale(1.05);
}
.mobile-nav-nested-header:hover .mobile-chevron-nested {
  transform: rotate(90deg);
  color: #179299;
}
.mobile-nav-nested-header[aria-expanded=true] {
  background: rgb(219, 232, 245);
  border-color: rgba(23, 146, 153, 0.4);
}
.mobile-nav-nested-header[aria-expanded=true] .mobile-chevron-nested {
  transform: rotate(90deg);
}

.mobile-nav-nested-submenu {
  margin-top: 6px;
  padding-left: 12px;
  border-left: 2px solid rgba(114, 135, 253, 0.2);
}

.mobile-nav-badge {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: white;
  font-size: 0.7rem;
  padding: 2px 6px;
  border-radius: 8px;
  font-weight: 600;
  margin-left: 4px;
}

.mobile-badge-ended {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: white;
  font-size: 0.65rem;
  padding: 2px 6px;
  border-radius: 8px;
  font-weight: 600;
  margin-left: auto;
}

.mobile-quote-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 4px 0;
  padding: 8px 12px;
  background: rgb(241, 245, 249); /* Better light background */
  border: 1px solid rgba(203, 213, 225, 0.8); /* Stronger border */
  border-radius: 8px;
  gap: 8px;
}
.mobile-quote-item .mobile-nav-link {
  flex: 1;
  margin: 0;
  padding: 4px 8px;
  background: none;
  border: none;
  font-size: 0.8rem;
  color: #1e293b; /* Darker text to match theme */
}
.mobile-quote-item .mobile-nav-link:hover {
  transform: translateX(4px);
}

.mobile-quote-delete-btn {
  background: none;
  border: none;
  width: 28px;
  height: 28px;
  color: #ef4444;
  cursor: pointer;
  padding: 4px;
  border-radius: 6px;
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.mobile-quote-delete-btn i {
  font-size: 12px;
}
.mobile-quote-delete-btn:hover {
  background: rgba(239, 68, 68, 0.1);
  transform: scale(1.1);
}

.mobile-nav-cta {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(23, 146, 153, 0.2);
}

.mobile-cta-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 16px 24px;
  background: linear-gradient(135deg, #179299, #7287fd);
  color: #eff1f5;
  text-decoration: none;
  border-radius: 16px;
  font-weight: 600;
  font-size: 1rem;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(23, 146, 153, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.mobile-cta-button i {
  font-size: 18px;
  transition: all 0.3s ease;
}
.mobile-cta-button::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s ease;
}
.mobile-cta-button:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 8px 24px rgba(23, 146, 153, 0.4), 0 2px 8px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.3);
  color: #eff1f5;
}
.mobile-cta-button:hover::before {
  left: 100%;
}
.mobile-cta-button:hover i {
  transform: translateX(4px) scale(1.1);
}
.mobile-cta-button.mobile-go-solar {
  background: linear-gradient(135deg, #df8e1d, #fe640b);
  box-shadow: 0 4px 16px rgba(223, 142, 29, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.mobile-cta-button.mobile-go-solar:hover {
  box-shadow: 0 8px 24px rgba(223, 142, 29, 0.4), 0 2px 8px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.mobile-cta-button.mobile-go-solar:hover i {
  animation: mobileLightning 0.6s ease-in-out;
}

@keyframes mobileLightning {
  0%, 100% {
    transform: translateX(4px) scale(1.1);
  }
  50% {
    transform: translateX(4px) scale(1.3) rotate(15deg);
  }
}
/* ============================================
   THEME ADAPTATIONS
   ============================================ */
[data-theme=dark] .navbar-container {
  /* Dark theme (Catppuccin Mocha) */
  background: rgb(30, 30, 46); /* Base with transparency */
  border-color: rgba(108, 112, 134, 0.3); /* Overlay 0 */
  box-shadow: 0 8px 32px rgba(17, 17, 27, 0.3), 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(205, 214, 244, 0.1); /* Text color for inner highlight */
}
[data-theme=dark] .navbar-container::before {
  background: linear-gradient(45deg, transparent, rgba(148, 226, 213, 0.1), transparent, rgba(180, 190, 254, 0.1), transparent);
}
[data-theme=dark] .nav-links-container {
  background: rgb(49, 50, 68); /* Surface 1 */
  border-color: rgba(108, 112, 134, 0.3); /* Overlay 0 */
  box-shadow: inset 0 1px 0 rgba(205, 214, 244, 0.05); /* Text color for inner highlight */
}
[data-theme=dark] .nav-link-modern {
  color: #cdd6f4 !important; /* Text */
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); /* Better readability */
}
[data-theme=dark] .nav-link-modern i, [data-theme=dark] .nav-link-modern span {
  color: inherit !important;
}
[data-theme=dark] .nav-link-modern:hover, [data-theme=dark] .nav-link-modern.active {
  background: linear-gradient(135deg, #94e2d5, #b4befe) !important; /* Teal to Lavender */
  color: #1e1e2e !important; /* Base for contrast */
  text-shadow: 0 1px 2px rgba(30, 30, 46, 0.2) !important;
  box-shadow: 0 8px 20px rgba(148, 226, 213, 0.3), 0 2px 8px rgba(0, 0, 0, 0.2);
}
[data-theme=dark] .nav-link-modern:hover i, [data-theme=dark] .nav-link-modern.active i {
  color: #1e1e2e !important;
}
[data-theme=dark] .nav-link-modern:hover span, [data-theme=dark] .nav-link-modern.active span {
  color: #1e1e2e !important;
}
[data-theme=dark] .nav-link-modern.active {
  background: linear-gradient(135deg, #94e2d5, #b4befe) !important;
  color: #1e1e2e !important;
  text-shadow: 0 1px 2px rgba(30, 30, 46, 0.2) !important;
  box-shadow: 0 4px 12px rgba(148, 226, 213, 0.4), inset 0 1px 0 rgba(30, 30, 46, 0.2);
}
[data-theme=dark] .nav-link-modern.active i, [data-theme=dark] .nav-link-modern.active span {
  color: #1e1e2e !important;
}
[data-theme=dark] .dropdown-menu-modern {
  background: rgb(30, 30, 46); /* Base */
  border-color: rgba(108, 112, 134, 0.3); /* Overlay 0 */
  box-shadow: 0 16px 40px rgba(17, 17, 27, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3);
}
[data-theme=dark] .dropdown-menu-modern::before {
  background: rgb(30, 30, 46);
  border-color: rgba(108, 112, 134, 0.3);
}
[data-theme=dark] .dropdown-item-modern {
  color: #cdd6f4; /* Text */
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
[data-theme=dark] .dropdown-item-modern i {
  color: #94e2d5; /* Teal for icons */
  filter: drop-shadow(0 1px 2px rgba(148, 226, 213, 0.3));
}
[data-theme=dark] .dropdown-item-modern:hover {
  background: linear-gradient(135deg, rgba(148, 226, 213, 0.1), rgba(180, 190, 254, 0.1));
  color: #94e2d5; /* Teal */
  text-shadow: 0 1px 3px rgba(148, 226, 213, 0.4);
}
[data-theme=dark] .dropdown-item-modern:hover i {
  color: #b4befe; /* Lavender */
  filter: drop-shadow(0 1px 3px rgba(180, 190, 254, 0.4));
  transform: scale(1.1) translateY(-1px);
}
[data-theme=dark] .dropdown-item-modern.highlight-item {
  background: linear-gradient(135deg, rgba(148, 226, 213, 0.1), rgba(180, 190, 254, 0.1));
  border: 1px solid rgba(148, 226, 213, 0.2);
}
[data-theme=dark] .dropdown-item-modern.highlight-item:hover {
  background: linear-gradient(135deg, #94e2d5, #b4befe);
  color: #1e1e2e; /* Base for contrast */
}
[data-theme=dark] .dropdown-item-modern.highlight-item:hover i {
  color: #1e1e2e;
}
[data-theme=dark] .navbar-brand-modern:hover {
  color: #94e2d5; /* Teal */
}
[data-theme=dark] .navbar-brand-modern:hover .navbar-brand-text {
  animation: textFloat 2s ease-in-out infinite;
  filter: drop-shadow(0 2px 6px rgba(148, 226, 213, 0.6));
}
[data-theme=dark] .navbar-brand-modern .navbar-brand-text {
  background: linear-gradient(135deg, #94e2d5, #b4befe); /* Teal to Lavender */
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 1px 3px rgba(148, 226, 213, 0.4));
}
[data-theme=dark] .navbar-brand-modern:hover .navbar-logo {
  animation: logoGlowDark 2s ease-in-out infinite alternate;
}
@keyframes logoGlowDark {
  0% {
    box-shadow: 0 4px 16px rgba(148, 226, 213, 0.4), 0 0 20px rgba(148, 226, 213, 0.2), 0 0 40px rgba(148, 226, 213, 0.1);
  }
  100% {
    box-shadow: 0 6px 20px rgba(180, 190, 254, 0.4), 0 0 25px rgba(180, 190, 254, 0.3), 0 0 50px rgba(180, 190, 254, 0.2);
  }
}
[data-theme=dark] .cta-button-modern {
  background: linear-gradient(135deg, #94e2d5, #b4befe); /* Teal to Lavender */
  color: #1e1e2e; /* Base for contrast */
  box-shadow: 0 4px 12px rgba(148, 226, 213, 0.3), inset 0 1px 0 rgba(30, 30, 46, 0.2);
}
[data-theme=dark] .cta-button-modern:hover {
  box-shadow: 0 8px 24px rgba(148, 226, 213, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(30, 30, 46, 0.3);
  color: #1e1e2e !important;
}
[data-theme=dark] .cta-button-modern.go-solar-btn {
  background: linear-gradient(135deg, #fab387, #f9e2af); /* Peach to Yellow */
  color: #1e1e2e !important;
  box-shadow: 0 4px 12px rgba(250, 179, 135, 0.3), inset 0 1px 0 rgba(30, 30, 46, 0.2);
}
[data-theme=dark] .cta-button-modern.go-solar-btn:hover {
  box-shadow: 0 8px 24px rgba(250, 179, 135, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(30, 30, 46, 0.3);
}
[data-theme=dark] .mobile-nav-content {
  background: rgb(30, 30, 46); /* Base */
  border-color: rgba(108, 112, 134, 0.3); /* Overlay 0 */
  box-shadow: 0 8px 32px rgba(17, 17, 27, 0.3), inset 0 1px 0 rgba(205, 214, 244, 0.1);
  /* Dark theme scrollbar styling */
  scrollbar-color: rgba(148, 226, 213, 0.3) rgba(49, 50, 68, 0.5);
}
[data-theme=dark] .mobile-nav-content::-webkit-scrollbar-track {
  background: rgba(49, 50, 68, 0.5);
}
[data-theme=dark] .mobile-nav-content::-webkit-scrollbar-thumb {
  background: rgba(148, 226, 213, 0.3);
}
[data-theme=dark] .mobile-nav-content::-webkit-scrollbar-thumb:hover {
  background: rgba(148, 226, 213, 0.5);
}
[data-theme=dark] {
  /* Dark Theme Mobile Navigation Styles */
}
[data-theme=dark] .mobile-nav-header {
  background: linear-gradient(135deg, rgba(148, 226, 213, 0.05), rgba(180, 190, 254, 0.05));
  border: 1px solid rgba(148, 226, 213, 0.1);
  color: #cdd6f4; /* Text */
}
[data-theme=dark] .mobile-nav-header i {
  color: #94e2d5; /* Teal */
}
[data-theme=dark] .mobile-nav-header .mobile-chevron {
  color: #b4befe; /* Lavender */
}
[data-theme=dark] .mobile-nav-header:hover, [data-theme=dark] .mobile-nav-header:focus {
  background: linear-gradient(135deg, rgba(148, 226, 213, 0.1), rgba(180, 190, 254, 0.1));
  border-color: rgba(148, 226, 213, 0.2);
  box-shadow: 0 4px 16px rgba(148, 226, 213, 0.2);
}
[data-theme=dark] .mobile-nav-header:hover i, [data-theme=dark] .mobile-nav-header:focus i {
  color: #b4befe;
}
[data-theme=dark] .mobile-nav-header:hover span, [data-theme=dark] .mobile-nav-header:focus span {
  color: #94e2d5;
  text-shadow: 0 1px 2px rgba(148, 226, 213, 0.2);
}
[data-theme=dark] .mobile-nav-header:hover .mobile-chevron, [data-theme=dark] .mobile-nav-header:focus .mobile-chevron {
  color: #94e2d5;
}
[data-theme=dark] .mobile-nav-header[aria-expanded=true] {
  background: linear-gradient(135deg, rgba(148, 226, 213, 0.15), rgba(180, 190, 254, 0.15));
  border-color: rgba(148, 226, 213, 0.3);
}
[data-theme=dark] .mobile-nav-submenu {
  border-left-color: rgba(148, 226, 213, 0.2);
}
[data-theme=dark] .mobile-nav-link {
  background: rgba(49, 50, 68, 0.7); /* Surface 1 */
  border: 1px solid rgba(108, 112, 134, 0.5); /* Overlay 0 */
  color: #cdd6f4; /* Text */
}
[data-theme=dark] .mobile-nav-link i {
  color: #94e2d5; /* Teal */
}
[data-theme=dark] .mobile-nav-link:hover, [data-theme=dark] .mobile-nav-link:focus {
  background: linear-gradient(135deg, rgba(148, 226, 213, 0.1), rgba(180, 190, 254, 0.1));
  border-color: rgba(148, 226, 213, 0.2);
  color: #94e2d5;
  box-shadow: 0 4px 12px rgba(148, 226, 213, 0.15);
}
[data-theme=dark] .mobile-nav-link:hover i, [data-theme=dark] .mobile-nav-link:focus i {
  color: #b4befe;
}
[data-theme=dark] .mobile-nav-link:hover span, [data-theme=dark] .mobile-nav-link:focus span {
  text-shadow: 0 1px 2px rgba(148, 226, 213, 0.2);
}
[data-theme=dark] .mobile-nav-link.mobile-nav-link-nested {
  background: rgba(69, 71, 90, 0.8); /* Surface 2 */
  border-left-color: rgba(148, 226, 213, 0.3);
}
[data-theme=dark] .mobile-nav-link.mobile-nav-link-nested:hover {
  border-left-color: #b4befe;
}
[data-theme=dark] .mobile-nav-link.mobile-nav-highlight {
  background: linear-gradient(135deg, rgba(148, 226, 213, 0.1), rgba(180, 190, 254, 0.1));
  border: 1px solid rgba(148, 226, 213, 0.2);
}
[data-theme=dark] .mobile-nav-link.mobile-nav-highlight:hover {
  background: linear-gradient(135deg, #94e2d5, #b4befe);
  color: #1e1e2e; /* Base for contrast */
}
[data-theme=dark] .mobile-nav-link.mobile-nav-highlight:hover i, [data-theme=dark] .mobile-nav-link.mobile-nav-highlight:hover span {
  color: #1e1e2e;
}
[data-theme=dark] .mobile-nav-nested-header {
  background: rgba(69, 71, 90, 0.8); /* Surface 2 */
  border: 1px solid rgba(108, 112, 134, 0.5); /* Overlay 0 */
  color: #cdd6f4; /* Text */
}
[data-theme=dark] .mobile-nav-nested-header i {
  color: #94e2d5; /* Teal */
}
[data-theme=dark] .mobile-nav-nested-header .mobile-chevron-nested {
  color: #b4befe; /* Lavender */
}
[data-theme=dark] .mobile-nav-nested-header:hover {
  background: rgba(148, 226, 213, 0.05);
  border-color: rgba(148, 226, 213, 0.2);
}
[data-theme=dark] .mobile-nav-nested-header:hover i {
  color: #b4befe;
}
[data-theme=dark] .mobile-nav-nested-header:hover .mobile-chevron-nested {
  color: #94e2d5;
}
[data-theme=dark] .mobile-nav-nested-header[aria-expanded=true] {
  background: rgba(148, 226, 213, 0.08);
  border-color: rgba(148, 226, 213, 0.25);
}
[data-theme=dark] .mobile-nav-nested-submenu {
  border-left-color: rgba(180, 190, 254, 0.2);
}
[data-theme=dark] .mobile-nav-badge {
  background: linear-gradient(135deg, #f38ba8, #eba0ac); /* Pink to Maroon */
}
[data-theme=dark] .mobile-badge-ended {
  background: linear-gradient(135deg, #f38ba8, #eba0ac);
}
[data-theme=dark] .mobile-quote-item {
  background: rgba(49, 50, 68, 0.9); /* Surface 1 */
  border: 1px solid rgba(108, 112, 134, 0.7); /* Overlay 0 */
}
[data-theme=dark] .mobile-quote-delete-btn {
  color: #f38ba8; /* Pink */
}
[data-theme=dark] .mobile-quote-delete-btn:hover {
  background: rgba(243, 139, 168, 0.1);
}
[data-theme=dark] .mobile-nav-cta {
  border-top-color: rgba(148, 226, 213, 0.2);
}
[data-theme=dark] .mobile-cta-button {
  background: linear-gradient(135deg, #94e2d5, #b4befe); /* Teal to Lavender */
  color: #1e1e2e !important; /* Base for contrast */
  box-shadow: 0 4px 16px rgba(148, 226, 213, 0.3), inset 0 1px 0 rgba(30, 30, 46, 0.2);
}
[data-theme=dark] .mobile-cta-button:hover {
  box-shadow: 0 8px 24px rgba(148, 226, 213, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(30, 30, 46, 0.3);
  color: #1e1e2e;
}
[data-theme=dark] .mobile-cta-button.mobile-go-solar {
  background: linear-gradient(135deg, #fab387, #f9e2af); /* Peach to Yellow */
  box-shadow: 0 4px 16px rgba(250, 179, 135, 0.3), inset 0 1px 0 rgba(30, 30, 46, 0.2);
}
[data-theme=dark] .mobile-cta-button.mobile-go-solar:hover {
  box-shadow: 0 8px 24px rgba(250, 179, 135, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(30, 30, 46, 0.3);
}
[data-theme=dark] {
  /* Dark Theme Mobile Menu Button */
}
[data-theme=dark] .mobile-menu-btn .hamburger-line {
  background: linear-gradient(135deg, #94e2d5, #b4befe); /* Teal to Lavender */
}
[data-theme=dark] .mobile-menu-btn:hover {
  background: rgba(148, 226, 213, 0.1);
}
[data-theme=dark] .mobile-menu-btn:hover .hamburger-line {
  background: linear-gradient(135deg, #b4befe, #94e2d5);
}
[data-theme=dark] .mobile-menu-btn.active .hamburger-line {
  background: linear-gradient(135deg, #f38ba8, #eba0ac); /* Pink to Maroon */
}
[data-theme=dark] .mobile-menu-btn:focus {
  outline: 2px solid rgba(148, 226, 213, 0.5);
}
[data-theme=dark] .nav-badge {
  background: linear-gradient(135deg, #f38ba8, #eba0ac); /* Pink to Maroon */
}
[data-theme=dark] .quote-item {
  background: rgba(49, 50, 68, 0.8); /* Surface 1 */
  border: 1px solid rgba(108, 112, 134, 0.5); /* Overlay 0 */
}
[data-theme=dark] .nav-dropdown-modern.active .dropdown-trigger {
  background: linear-gradient(135deg, #94e2d5, #b4befe) !important;
  color: #1e1e2e !important;
  box-shadow: 0 4px 12px rgba(148, 226, 213, 0.4), inset 0 1px 0 rgba(30, 30, 46, 0.2);
}
[data-theme=dark] .nav-dropdown-modern.active .dropdown-trigger i, [data-theme=dark] .nav-dropdown-modern.active .dropdown-trigger span {
  color: #1e1e2e !important;
}
[data-theme=dark] {
  /* Dark theme nested dropdown styles */
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested .dropdown-item-trigger {
  color: #cdd6f4 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested .dropdown-item-trigger i {
  color: #94e2d5 !important;
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested .dropdown-item-trigger .nested-arrow {
  color: #b4befe !important;
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested .dropdown-menu-nested {
  background: rgb(30, 30, 46) !important;
  border-color: rgba(108, 112, 134, 0.3);
  box-shadow: 0 12px 32px rgba(17, 17, 27, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3);
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested .dropdown-menu-nested::before {
  background: linear-gradient(135deg, #f9e2af, #df8e1d); /* Same yellow accent for dark theme */
  border: 1px solid #df8e1d; /* Matching yellow border */
  width: 8px; /* Match light theme size */
  height: 8px;
  left: -4px; /* Match light theme position */
  box-shadow: 0 2px 8px rgba(223, 142, 29, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested .dropdown-menu-nested .dropdown-item-modern {
  color: #cdd6f4 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested .dropdown-menu-nested .dropdown-item-modern i {
  color: #94e2d5 !important;
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested .dropdown-menu-nested .dropdown-item-modern:hover {
  background: linear-gradient(135deg, rgba(148, 226, 213, 0.1), rgba(180, 190, 254, 0.1)) !important;
  color: #94e2d5 !important;
  text-shadow: 0 1px 3px rgba(148, 226, 213, 0.4);
  transform: translateX(4px);
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested .dropdown-menu-nested .dropdown-item-modern:hover i {
  transform: scale(1.1) translateY(-1px);
  color: #b4befe !important;
  filter: drop-shadow(0 1px 3px rgba(180, 190, 254, 0.4));
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested:hover > .dropdown-item-trigger {
  background: linear-gradient(135deg, rgba(148, 226, 213, 0.1), rgba(180, 190, 254, 0.1)) !important;
  color: #94e2d5 !important;
  text-shadow: 0 1px 3px rgba(148, 226, 213, 0.4);
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested:hover > .dropdown-item-trigger i {
  color: #94e2d5 !important;
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested:hover > .dropdown-item-trigger .nested-arrow {
  transform: rotate(90deg);
  color: #b4befe !important;
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested {
  /* Keep nested dropdown open when hovering over the menu itself in dark theme */
}
[data-theme=dark] .dropdown-item-modern.dropdown-nested .dropdown-menu-nested:hover {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(0) scale(1) !important;
  pointer-events: auto;
}

/* ============================================
   PROJECTS HOVER TRAY
   ============================================ */
.projects-nav-item {
  position: relative;
  /* Create invisible bridge area between button and tray */
}
.projects-nav-item::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 12px;
  background: transparent;
  opacity: 0;
  pointer-events: none;
  z-index: 1000;
}
.projects-nav-item:hover::after {
  opacity: 1;
  pointer-events: auto;
}
.projects-nav-item:hover .projects-hover-tray {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  transition-delay: 0.1s;
}

.projects-hover-tray {
  position: absolute;
  top: calc(100% + 4px); /* Reduced gap from 8px to 4px */
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  display: flex;
  gap: 6px;
  padding: 8px;
  background: rgb(239, 241, 245);
  border: 1px solid rgba(156, 160, 176, 0.2);
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(76, 79, 105, 0.15), 0 4px 12px rgba(0, 0, 0, 0.08);
  opacity: 0;
  visibility: hidden;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 1001;
  pointer-events: none;
  /* Create an extended hover area above the tray */
}
.projects-hover-tray::after {
  content: "";
  position: absolute;
  bottom: 100%;
  left: -10px;
  right: -10px;
  height: 12px;
  background: transparent;
}
.projects-hover-tray:hover {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}
.projects-hover-tray {
  /* Arrow pointing up */
}
.projects-hover-tray::before {
  content: "";
  position: absolute;
  top: -5px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  background: rgb(239, 241, 245);
  border: 1px solid rgba(156, 160, 176, 0.2);
  border-bottom: none;
  border-right: none;
}

/* When tray is visible, enable pointer events */
.projects-nav-item:hover .projects-hover-tray {
  pointer-events: auto;
}

.project-view-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(220, 224, 232, 0.5);
  color: #4c4f69;
  text-decoration: none;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
}
.project-view-icon i {
  font-size: 14px;
  transition: all 0.2s ease;
  position: relative;
  z-index: 1;
}
.project-view-icon::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(23, 146, 153, 0.1), transparent);
  transition: left 0.3s ease;
}
.project-view-icon:hover {
  background: linear-gradient(135deg, rgba(23, 146, 153, 0.15), rgba(114, 135, 253, 0.15));
  color: #179299;
  transform: translateY(-2px) scale(1.1);
  box-shadow: 0 4px 12px rgba(23, 146, 153, 0.2);
}
.project-view-icon:hover::before {
  left: 100%;
}
.project-view-icon:hover i {
  color: #179299;
  transform: scale(1.1);
}
.project-view-icon:active {
  transform: translateY(0) scale(1.05);
}

/* Dark theme styles for projects hover tray */
[data-theme=dark] .projects-hover-tray {
  background: rgb(30, 30, 46);
  border-color: rgba(108, 112, 134, 0.3);
  box-shadow: 0 12px 32px rgba(17, 17, 27, 0.3), 0 4px 12px rgba(0, 0, 0, 0.2);
}
[data-theme=dark] .projects-hover-tray::before {
  background: rgb(30, 30, 46);
  border-color: rgba(108, 112, 134, 0.3);
}
[data-theme=dark] .project-view-icon {
  background: rgba(49, 50, 68, 0.5);
  color: #cdd6f4;
}
[data-theme=dark] .project-view-icon:hover {
  background: linear-gradient(135deg, rgba(148, 226, 213, 0.15), rgba(180, 190, 254, 0.15));
  color: #94e2d5;
  box-shadow: 0 4px 12px rgba(148, 226, 213, 0.2);
}
[data-theme=dark] .project-view-icon:hover i {
  color: #94e2d5;
}

/* Mobile: hide the hover tray on small screens */
@media (max-width: 768px) {
  .projects-hover-tray {
    display: none;
  }
}
/* ============================================
   ANIMATIONS AND PERFORMANCE
   ============================================ */
@media (prefers-reduced-motion: reduce) {
  .modern-floating-navbar,
  .navbar-container,
  .nav-link-modern,
  .dropdown-menu-modern,
  .cta-button-modern {
    animation: none;
    transition: none;
  }
}
/* GPU Acceleration */
.navbar-container,
.nav-link-modern,
.dropdown-menu-modern,
.cta-button-modern {
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000px;
}

/* ============================================
   SCROLLED STATE & EXTRA EFFECTS
   ============================================ */
.modern-floating-navbar.scrolled .navbar-container {
  background: rgb(255, 255, 255);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.4);
  transform: translateY(-1px) scale(0.98);
}

/* Particle Effects */
.navbar-particles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
  border-radius: 50px;
}

.particle {
  position: absolute;
  width: 4px;
  height: 4px;
  background: linear-gradient(45deg, #008296, #00a2bf);
  border-radius: 50%;
  animation: float-particle 2s ease-out forwards;
}

@keyframes float-particle {
  0% {
    transform: translateY(0) scale(0);
    opacity: 1;
  }
  50% {
    transform: translateY(-20px) scale(1);
    opacity: 0.8;
  }
  100% {
    transform: translateY(-40px) scale(0);
    opacity: 0;
  }
}
.particle:nth-child(1) {
  left: 20%;
  animation-delay: 0s;
}

.particle:nth-child(2) {
  left: 40%;
  animation-delay: 0.2s;
}

.particle:nth-child(3) {
  left: 60%;
  animation-delay: 0.4s;
}

.particle:nth-child(4) {
  left: 80%;
  animation-delay: 0.6s;
}

.particle:nth-child(5) {
  left: 50%;
  animation-delay: 0.8s;
}

/* Ripple Effect */
.navbar-ripple {
  position: absolute;
  background: rgba(0, 130, 150, 0.2);
  border-radius: 50%;
  pointer-events: none;
  animation: ripple-expand 0.6s ease-out forwards;
}

@keyframes ripple-expand {
  0% {
    transform: scale(0);
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}
/* Enhanced hover states */
.nav-dropdown-modern.dropdown-open .nav-link-modern {
  background: linear-gradient(135deg, #008296, #00a2bf);
  color: white;
  transform: translateY(-1px) scale(1.02);
  box-shadow: 0 6px 16px rgba(0, 130, 150, 0.3), 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Additional Mobile Responsive Improvements */
@media (max-width: 768px) {
  .modern-floating-navbar {
    top: 8px;
  }
  .navbar-container {
    padding: 6px 12px;
    border-radius: 40px;
  }
  .navbar-brand-modern .navbar-brand-text {
    display: none;
  }
  .theme-toggle-modern {
    margin-left: 8px;
  }
  .modern-toggle-switch {
    width: 50px;
    height: 25px;
  }
  .toggle-thumb {
    width: 19px;
    height: 19px;
    top: 3px;
    left: 3px;
  }
  .toggle-checkbox:checked + .toggle-slider .toggle-thumb {
    transform: translateX(25px);
  }
}
/* Mobile Navigation Enhancement */
.mobile-nav-collapse.show {
  display: block;
}

/* Theme-specific enhancements */
[data-theme=dark] .modern-floating-navbar.scrolled .navbar-container {
  background: rgb(30, 30, 46); /* Base */
  border-color: rgba(108, 112, 134, 0.5); /* Overlay 0 */
  box-shadow: 0 12px 40px rgba(17, 17, 27, 0.4), 0 2px 8px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(205, 214, 244, 0.2); /* Text color for inner highlight */
}

/* Light theme scrolled state */
.modern-floating-navbar.scrolled .navbar-container {
  background: rgb(239, 241, 245); /* Base */
  box-shadow: 0 12px 40px rgba(76, 79, 105, 0.2), 0 2px 8px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.4);
  transform: translateY(-1px) scale(0.98);
}

.autosave-wrapper {
  position: relative;
}

.autosave-status {
  position: absolute;
  bottom: -25px;
  right: 10px;
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8rem;
  opacity: 0.8;
  transition: opacity 0.3s ease;
}
.autosave-status:hover {
  opacity: 1;
}

@keyframes pulse {
  0% {
    transform: scale(0.95);
    opacity: 0.7;
  }
  50% {
    transform: scale(1.05);
    opacity: 1;
  }
  100% {
    transform: scale(0.95);
    opacity: 0.7;
  }
}
.autosave-status.saving .autosave-indicator {
  animation: pulse 1.5s infinite;
}

.autosave-toast {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 8px;
  padding: 10px 15px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 1050;
  transform: translateY(100px);
  opacity: 0;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.autosave-toast.show {
  transform: translateY(0);
  opacity: 1;
}
.autosave-toast .autosave-toast-icon {
  font-size: 1.2rem;
}
.autosave-toast .autosave-toast-icon.success {
  color: #28a745;
}
.autosave-toast .autosave-toast-icon.error {
  color: #dc3545;
}
.autosave-toast .autosave-toast-message {
  font-size: 0.9rem;
}

.manual-save-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  background-color: #f8f9fa;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  padding: 5px 10px;
  font-size: 0.8rem;
  cursor: pointer;
  transition: all 0.2s ease;
}
.manual-save-btn:hover {
  background-color: #e9ecef;
}
.manual-save-btn:active {
  transform: translateY(1px);
}

.trix-content-wrapper {
  position: relative;
}
.trix-content-wrapper .autosave-status {
  bottom: -30px;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 14px;
  border-radius: 100px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
  animation: statusSlideIn 0.25s ease-out;
}

.status-pill-typing {
  background: color-mix(in srgb, var(--interaction) 8%, transparent);
  color: var(--interaction);
  border: 1px solid color-mix(in srgb, var(--interaction) 14.5%, transparent);
}

.status-pill-saving {
  background: color-mix(in srgb, var(--interaction) 8%, transparent);
  color: var(--interaction);
  border: 1px solid color-mix(in srgb, var(--interaction) 14.5%, transparent);
}

.status-pill-saved {
  background: rgba(34, 197, 94, 0.0823529412);
  color: #16a34a;
  border: 1px solid rgba(34, 197, 94, 0.1882352941);
}

.status-pill-error {
  background: color-mix(in srgb, #dc3545 8%, transparent);
  color: #dc3545;
  border: 1px solid color-mix(in srgb, #dc3545 19%, transparent);
}

.status-pill-info {
  background: color-mix(in srgb, var(--interaction) 8%, transparent);
  color: var(--interaction);
  border: 1px solid color-mix(in srgb, var(--interaction) 14.5%, transparent);
}

.status-pill-fade-out {
  opacity: 0;
  transition: opacity 0.4s ease;
}

@keyframes statusSlideIn {
  from {
    opacity: 0;
    transform: translateX(6px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.typing-dots {
  display: inline-flex;
  gap: 3px;
  align-items: center;
}

.typing-dots span {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  animation: typingBounce 1.4s ease-in-out infinite;
}

.typing-dots span:nth-child(2) {
  animation-delay: 0.2s;
}

.typing-dots span:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes typingBounce {
  0%, 60%, 100% {
    opacity: 0.25;
    transform: translateY(0);
  }
  30% {
    opacity: 1;
    transform: translateY(-4px);
  }
}
.save-spinner {
  width: 12px;
  height: 12px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: saveSpin 0.7s linear infinite;
}

@keyframes saveSpin {
  to {
    transform: rotate(360deg);
  }
}
.saved-check {
  display: inline-block;
  animation: savedPop 0.35s ease-out;
}

@keyframes savedPop {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  60% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.custom-upload-box {
  width: 500px;
  height: 500px;
  border: 3px dashed #e0e0e0;
  border-radius: 12px;
  display: none;
  background: #fafafa;
  margin-bottom: 20px;
  position: relative;
  transition: all 0.3s ease;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.custom-upload-box:hover {
  border-color: #0d6efd;
  background: #f8f9fa;
}

.custom-upload-box::before {
  content: "📸 Select or Drop Image";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 1.2em;
  color: #6c757d;
  pointer-events: none;
  z-index: 1;
  transition: opacity 0.3s ease;
  opacity: 1;
}

.custom-upload-box.has-image::before {
  opacity: 0;
}

.custom-upload-box input[type=file] {
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  position: relative;
  z-index: 2;
}

.image-preview-container {
  position: relative;
  width: 500px;
  height: 500px;
  display: none;
}

.revert-button {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid #dee2e6;
  border-radius: 6px;
  cursor: pointer;
  z-index: 10;
  transition: all 0.2s ease;
}

.revert-button:hover {
  background: #fff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Profile Picture Hover Overlay Styles */
.profile-pic-wrapper {
  position: relative;
  display: inline-block;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  cursor: pointer;
}

.profile-pic-placeholder {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background-color: #f8f9fa;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed #dee2e6;
  transition: all 0.3s ease;
}

.profile-pic-wrapper:hover .profile-pic-placeholder {
  border-color: #007bff;
  background-color: #e3f2fd;
}

.profile-pic-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
  border-radius: 50%;
}

.profile-pic-wrapper:hover .profile-pic-overlay {
  opacity: 1;
}

.profile-pic-buttons {
  display: flex;
  gap: 8px;
  align-items: center;
}

.profile-pic-upload {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  cursor: pointer;
}

.profile-pic-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: all 0.2s ease;
  font-size: 14px;
}

.profile-pic-btn-view {
  background-color: #007bff;
  color: white;
}

.profile-pic-btn-view:hover {
  background-color: #0056b3;
  color: white;
  transform: scale(1.1);
}

.profile-pic-btn-delete {
  background-color: #dc3545;
  color: white;
}

.profile-pic-btn-delete:hover {
  background-color: #c82333;
  color: white;
  transform: scale(1.1);
}

.profile-pic-btn i {
  font-size: 16px;
}

.upload-form {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.upload-input {
  width: 100%;
  height: 100%;
  cursor: pointer;
}

.upload-input:hover {
  cursor: pointer;
}

.account-settings-page {
  width: calc(100% - 2rem);
  max-width: 1180px;
  margin: 7.5rem auto 5rem;
  color: var(--text-colour, #172033);
}

.account-settings-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2rem;
  padding: 0 0.25rem;
}

.account-settings-eyebrow {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--secondary-colour, #6366f1);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.account-settings-hero h1 {
  margin: 0;
  font-family: "Plus Jakarta Sans", var(--font-type, sans-serif);
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.045em;
}

.account-settings-hero p {
  max-width: 620px;
  margin: 0.6rem 0 0;
  color: var(--page-muted-text, var(--muted-text, #687386));
}

.account-settings-member-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.55rem;
}

.account-settings-member-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border-colour, #dfe3eb);
  border-radius: 999px;
  background: var(--card-colour, #fff);
  color: var(--page-muted-text, var(--muted-text, #687386));
  font-size: 0.76rem;
  font-weight: 700;
}

.account-settings-member-meta i {
  color: var(--secondary-colour, #6366f1);
}

.account-settings-layout {
  display: grid;
  grid-template-columns: 265px minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}

.account-settings-sidebar {
  position: sticky;
  top: 1rem;
  overflow: hidden;
  border: 1px solid var(--border-colour, #dfe3eb);
  border-radius: 18px;
  background: var(--card-colour, #fff);
  box-shadow: 0 16px 40px rgba(22, 31, 49, 0.07);
}

.account-settings-identity {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
  padding: 1.65rem 1.25rem 1.4rem;
  text-align: center;
  border-bottom: 1px solid var(--border-colour, #dfe3eb);
}

.account-settings-identity > div:last-child {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
  max-width: 100%;
}

.account-settings-identity strong {
  font-family: "Plus Jakarta Sans", var(--font-type, sans-serif);
  font-size: 1rem;
}

.account-settings-identity span {
  overflow: hidden;
  color: var(--page-muted-text, var(--muted-text, #687386));
  font-size: 0.72rem;
  text-overflow: ellipsis;
}

.account-settings-avatar.profile-pic-wrapper,
.account-settings-avatar .profile-pic-placeholder,
.account-settings-avatar .profile-pic-large {
  width: 104px;
  height: 104px;
}

.account-settings-avatar.profile-pic-wrapper {
  box-shadow: 0 0 0 5px var(--card-colour, #fff), 0 0 0 6px var(--border-colour, #dfe3eb);
}

.account-settings-avatar .profile-pic-large {
  -o-object-fit: cover;
     object-fit: cover;
}

.account-settings-avatar .profile-pic-placeholder {
  border: 0;
  background: linear-gradient(145deg, var(--secondary-colour, #6366f1), var(--primary-colour, #293b8f));
  color: #fff;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 1.7rem;
  font-weight: 800;
}

.account-settings-avatar .profile-pic-upload i {
  margin-bottom: 0.35rem;
  font-size: 1.4rem;
  color: #fff;
}

.account-settings-avatar .profile-pic-upload span {
  color: #fff;
  font-size: 0.68rem;
}

.account-settings-nav {
  display: grid;
  gap: 0.3rem;
  padding: 0.75rem;
}

.account-settings-nav-item {
  display: grid;
  grid-template-columns: 22px 1fr auto;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  padding: 0.72rem 0.8rem;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--page-muted-text, var(--muted-text, #687386));
  font-size: 0.82rem;
  font-weight: 700;
  text-align: left;
  transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.account-settings-nav-item:hover {
  background: color-mix(in srgb, var(--secondary-colour, #6366f1) 7%, transparent);
  color: var(--text-colour, #172033);
  transform: translateX(2px);
}

.account-settings-nav-item.active {
  background: color-mix(in srgb, var(--secondary-colour, #6366f1) 12%, transparent);
  color: var(--secondary-colour, #6366f1);
}

.account-settings-nav-item > i:first-child {
  font-size: 1rem;
  text-align: center;
}

.account-settings-nav-arrow {
  font-size: 0.65rem;
  opacity: 0.55;
}

.account-settings-content {
  min-width: 0;
}

.account-settings-card {
  overflow: hidden;
  border: 1px solid var(--border-colour, #dfe3eb);
  border-radius: 18px;
  background: var(--card-colour, #fff);
  box-shadow: 0 16px 40px rgba(22, 31, 49, 0.07);
}

.account-settings-card-header {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  padding: 1.6rem 1.75rem;
  border-bottom: 1px solid var(--border-colour, #dfe3eb);
  background: linear-gradient(135deg, color-mix(in srgb, var(--secondary-colour, #6366f1) 5%, var(--card-colour, #fff)), var(--card-colour, #fff) 55%);
}

.account-settings-card-icon,
.account-settings-preference-icon {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--secondary-colour, #6366f1) 12%, transparent);
  color: var(--secondary-colour, #6366f1);
  font-size: 1rem;
}

.account-settings-card-icon.is-danger {
  background: color-mix(in srgb, var(--danger, #dc3545) 11%, transparent);
  color: var(--danger, #dc3545);
}

.account-settings-card-header h2 {
  margin: 0;
  font-family: "Plus Jakarta Sans", var(--font-type, sans-serif);
  font-size: 1.15rem;
  font-weight: 800;
}

.account-settings-card-header p {
  margin: 0.28rem 0 0;
  color: var(--page-muted-text, var(--muted-text, #687386));
  font-size: 0.8rem;
}

.account-settings-form {
  padding: 1.75rem;
}

.account-settings-field-grid,
.account-settings-security-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.account-settings-field {
  display: grid;
  gap: 0.42rem;
}

.account-settings-field-wide {
  grid-column: 1/-1;
}

.account-settings-field label,
.account-settings-preference-copy label {
  margin: 0;
  color: var(--text-colour, #172033);
  font-size: 0.76rem;
  font-weight: 800;
}

.account-settings-help,
.account-settings-preference-copy span {
  display: block;
  color: var(--page-muted-text, var(--muted-text, #687386));
  font-size: 0.72rem;
  line-height: 1.45;
}

.account-settings-form .form-control {
  min-height: 44px;
  border-color: var(--input-border, var(--border-colour, #dfe3eb));
  border-radius: 9px;
  background: var(--input-background, var(--card-colour, #fff));
  color: var(--input-text, var(--text-colour, #172033));
}

.account-settings-form textarea.form-control {
  padding: 0.8rem 0.9rem;
}

.account-settings-form .form-control:focus {
  border-color: var(--secondary-colour, #6366f1);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--secondary-colour, #6366f1) 14%, transparent);
}

.account-settings-pericles-field {
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--secondary-colour, #6366f1) 22%, var(--border-colour, #dfe3eb));
  border-radius: 12px;
  background: color-mix(in srgb, var(--secondary-colour, #6366f1) 4%, transparent);
}

.account-settings-field-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.account-settings-field-heading > i {
  color: var(--secondary-colour, #6366f1);
  font-size: 1.05rem;
}

.account-settings-actions {
  display: flex;
  justify-content: flex-end;
  margin: 1.5rem -1.75rem -1.75rem;
  padding: 1rem 1.75rem;
  border-top: 1px solid var(--border-colour, #dfe3eb);
  background: color-mix(in srgb, var(--background-colour, #f7f8fa) 60%, transparent);
}

.account-settings-preference-list {
  padding: 1.75rem 1.75rem 0;
}

.account-settings-device,
.account-settings-toggle-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.9rem;
  padding: 1rem;
  border: 1px solid var(--border-colour, #dfe3eb);
  border-radius: 12px;
}

.account-settings-preference-copy {
  display: grid;
  gap: 0.2rem;
}

.account-settings-preference-copy strong {
  font-size: 0.8rem;
}

.account-settings-device-actions {
  display: flex;
  justify-content: flex-end;
}

.account-settings-device-actions [hidden] {
  display: none !important;
}

.account-settings-device-actions .button-13,
.account-settings-device-actions .button-13-outline {
  white-space: nowrap;
}

.account-settings-preferences-form {
  padding-top: 1rem;
}

.account-settings-toggle-row + .account-settings-toggle-row {
  margin-top: 0.75rem;
}

.account-settings-toggle-row .form-check {
  margin: 0;
  padding-left: 2.7rem;
}

.account-settings-toggle-row .form-check-input {
  width: 2.25rem;
  height: 1.2rem;
  cursor: pointer;
}

.account-settings-security-grid {
  margin-top: 1.25rem;
}

.account-settings-confirmation {
  margin-top: 1.25rem;
  padding: 1rem;
  border: 1px solid var(--border-colour, #dfe3eb);
  border-radius: 12px;
  background: color-mix(in srgb, var(--accent-yellow, #f6c344) 7%, transparent);
}

.account-settings-danger-zone {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin: 1.75rem;
  padding: 1.15rem;
  border: 1px solid color-mix(in srgb, var(--danger, #dc3545) 35%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--danger, #dc3545) 5%, transparent);
}

.account-settings-danger-zone > div {
  display: grid;
  gap: 0.25rem;
}

.account-settings-danger-zone strong {
  font-size: 0.82rem;
}

.account-settings-danger-zone span {
  color: var(--page-muted-text, var(--muted-text, #687386));
  font-size: 0.72rem;
}

@media (max-width: 900px) {
  .account-settings-page {
    margin-top: 6.5rem;
  }
  .account-settings-hero {
    align-items: flex-start;
    flex-direction: column;
  }
  .account-settings-member-meta {
    justify-content: flex-start;
  }
  .account-settings-layout {
    grid-template-columns: 1fr;
  }
  .account-settings-sidebar {
    position: static;
  }
  .account-settings-identity {
    flex-direction: row;
    justify-content: flex-start;
    text-align: left;
  }
  .account-settings-avatar.profile-pic-wrapper,
  .account-settings-avatar .profile-pic-placeholder,
  .account-settings-avatar .profile-pic-large {
    width: 68px;
    height: 68px;
  }
  .account-settings-nav {
    display: flex;
    overflow-x: auto;
  }
  .account-settings-nav-item {
    flex: 1 0 auto;
    grid-template-columns: auto auto;
    justify-content: center;
    width: auto;
  }
  .account-settings-nav-arrow {
    display: none;
  }
}
@media (max-width: 600px) {
  .account-settings-page {
    width: calc(100% - 1rem);
    max-width: 1180px;
    margin-top: 5.5rem;
  }
  .account-settings-hero {
    gap: 1rem;
    margin-bottom: 1.25rem;
  }
  .account-settings-member-meta span {
    font-size: 0.68rem;
  }
  .account-settings-sidebar,
  .account-settings-card {
    border-radius: 14px;
  }
  .account-settings-nav-item {
    padding: 0.65rem 0.7rem;
    font-size: 0.72rem;
  }
  .account-settings-card-header,
  .account-settings-form {
    padding: 1.2rem;
  }
  .account-settings-field-grid,
  .account-settings-security-grid {
    grid-template-columns: 1fr;
  }
  .account-settings-field-wide {
    grid-column: auto;
  }
  .account-settings-actions {
    margin: 1.25rem -1.2rem -1.2rem;
    padding: 0.9rem 1.2rem;
  }
  .account-settings-preference-list {
    padding: 1.2rem 1.2rem 0;
  }
  .account-settings-device,
  .account-settings-toggle-row {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .account-settings-device-actions,
  .account-settings-toggle-row .form-check {
    grid-column: 2;
    justify-self: start;
  }
  .account-settings-danger-zone {
    align-items: flex-start;
    flex-direction: column;
    margin: 1.2rem;
  }
}
/* Insights page styles */
/* Category badge styles */
[data-insights-search-target=category] {
  cursor: pointer;
  transition: all 0.2s ease;
  display: inline-block;
  padding: 0.35em 0.65em;
  border-radius: 0.25rem;
  background: none;
  font-size: inherit;
  font-family: inherit;
  text-decoration: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

[data-insights-search-target=category]:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(74, 134, 232, 0.3);
}

[data-insights-search-target=category].active {
  background-color: #4a86e8;
  color: white !important;
  transform: scale(1.05);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Add a subtle hover effect */
[data-insights-search-target=category]:hover {
  opacity: 0.9;
  transform: scale(1.03);
}

/* Loader styles */
[data-insights-search-target=loader] {
  padding: 20px;
  border-radius: 8px;
  margin-bottom: 20px;
}

/* Hidden class */
.hidden {
  display: none !important;
}

.newcard {
  padding: 10px;
  border-radius: 10px;
  border-style: solid;
  border-width: 1px;
  border-color: transparent;
}
.newcard:hover {
  background-color: #dbdbfd;
  cursor: pointer;
}

.lightcard {
  display: flex;
  flex-direction: column;
  height: auto;
  flex-grow: 1;
  border-style: solid;
  padding: 15px;
  border-radius: 5px;
  border-color: #dadada;
  background-color: white;
  border-width: 1px;
  box-shadow: 0px 0px 10px rgba(155, 155, 155, 0.1);
}

.lightcardnb {
  display: flex;
  flex-direction: column;
  height: auto;
  flex-grow: 1;
  border-style: solid;
  padding: 15px;
  border-radius: 5px;
  border-color: #dadada;
  background-color: white;
  border-width: 1px;
}

.columncard {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  border-style: solid;
  padding: 15px;
  border-radius: 5px;
  border-color: #dadada;
  background-color: white;
  overflow: visible;
  white-space: nowrap;
  border-width: 1px;
  width: 100%;
  max-width: 350px;
}
@media (max-width: 768px) {
  .columncard { /* Adjust breakpoint as needed */
    scroll-snap-align: center;
  }
}

.lightcardh {
  display: flex;
  flex-direction: row;
  height: auto;
  flex-grow: 1;
  border-style: solid;
  padding: 15px;
  border-radius: 5px;
  border-color: #dadada;
  background-color: white;
  border-width: 1px;
  box-shadow: 0px 0px 10px rgba(155, 155, 155, 0.1);
}

.lightcardhnb {
  display: flex;
  flex-direction: row;
  flex-grow: 1;
  border-style: solid;
  padding: 15px;
  border-radius: 5px;
  border-color: #dadada;
  background-color: white;
  border-width: 1px;
}

.quote-row-item {
  padding: 0.6rem 0.75rem !important;
  transition: all 0.15s ease;
  overflow: hidden;
  max-width: 100%;
}
.quote-row-item:hover {
  background-color: var(--primary-colour, #fef7e6) !important;
  transform: translateX(4px);
}

.status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
  background: #9ca3af;
  flex-shrink: 0;
}
.status-dot.status-active {
  background: #10b981;
  box-shadow: 0 0 6px rgba(16, 185, 129, 0.5);
}
.status-dot.status-inactive {
  background: #6b7280;
}
.status-dot.status-pending {
  background: #f59e0b;
  animation: pulse-glow 2s infinite;
}

@keyframes pulse-glow {
  0%, 100% {
    box-shadow: 0 0 4px rgba(245, 158, 11, 0.4);
  }
  50% {
    box-shadow: 0 0 12px rgba(245, 158, 11, 0.8);
  }
}
.system-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.55rem;
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.2;
  border-radius: 999px;
  background: color-mix(in srgb, var(--pill-color, #6b7280) 12%, transparent);
  color: var(--pill-color, #6b7280);
  border: 1px solid color-mix(in srgb, var(--pill-color, #6b7280) 25%, transparent);
  white-space: nowrap;
}
.system-status-pill i {
  font-size: 0.7rem;
}
.system-status-pill.is-filter {
  cursor: pointer;
  transition: all 0.15s ease;
}
.system-status-pill.is-filter:hover {
  background: color-mix(in srgb, var(--pill-color) 18%, transparent);
}
.system-status-pill.is-filter.active {
  background: var(--pill-color);
  color: white;
  border-color: var(--pill-color);
}
.system-status-pill.is-filter.active .system-pill-count {
  background: rgba(255, 255, 255, 0.25);
  color: white;
}

.system-pill-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.4em;
  height: 1.4em;
  margin-left: 0.25rem;
  padding: 0 0.4em;
  border-radius: 999px;
  background: var(--pill-color);
  color: white;
  font-size: 0.62rem;
  font-weight: 700;
}

.system-row-item {
  padding: 0.5rem 0.75rem !important;
  transition: all 0.15s ease;
  overflow: hidden;
}
.system-row-item:hover {
  transform: translateX(2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.system-row-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.system-row-skeleton {
  padding: 0.5rem 0.75rem;
  margin-bottom: 0.25rem;
  border-radius: 20px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  overflow: hidden;
}

.skeleton-bone {
  background: linear-gradient(90deg, rgba(128, 128, 128, 0.1) 0%, rgba(128, 128, 128, 0.2) 50%, rgba(128, 128, 128, 0.1) 100%);
  background-size: 200% 100%;
  animation: skeleton-pulse 1.4s ease-in-out infinite;
  border-radius: 6px;
}

@keyframes skeleton-pulse {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
.system-freshness-icons {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.freshness-icon {
  --c: #6b7280;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  color: var(--c);
  background: color-mix(in srgb, var(--c) 16%, rgba(255, 255, 255, 0.08));
  border: 1px solid color-mix(in srgb, var(--c) 35%, transparent);
  backdrop-filter: blur(6px);
  cursor: help;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.freshness-icon i {
  font-size: 0.78rem;
}
.freshness-icon:hover {
  transform: scale(1.1);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--c) 40%, transparent);
}

.section-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #f47424;
  font-weight: 700;
  margin-bottom: 0.5rem;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

.proof-card {
  position: relative;
  padding: 1.75rem 1.5rem;
  border-radius: 14px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  box-shadow: var(--box-shadow);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.proof-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #f47424 0%, #ffb066 100%);
  opacity: 0.85;
}
.proof-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.12), var(--box-shadow);
  border-color: #f47424;
}
.proof-card .proof-card-icon {
  font-size: 1.85rem;
  color: #f47424;
  margin-bottom: 0.85rem;
  line-height: 1;
}
.proof-card .proof-card-title {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 0.65rem;
  line-height: 1.25;
  color: var(--text-colour);
}
.proof-card .proof-card-body {
  color: var(--text-colour);
  opacity: 0.85;
  line-height: 1.6;
  margin-bottom: 0;
  flex-grow: 1;
  font-size: 0.95rem;
}
.proof-card .proof-card-body strong {
  color: var(--text-colour);
  opacity: 1;
  font-weight: 700;
}
.proof-card .proof-card-body a {
  color: var(--interaction);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.proof-card .proof-card-footer {
  margin-top: 1.1rem;
  padding-top: 0.9rem;
  border-top: 1px solid var(--border-colour);
  font-size: 0.85rem;
}
.proof-card .proof-card-footer a {
  color: #f47424;
  font-weight: 600;
  text-decoration: none;
}
.proof-card .proof-card-footer a:hover {
  color: #ffb066;
}

.proof-stat {
  font-size: 2.6rem;
  font-weight: 800;
  line-height: 1;
  color: #f47424;
  margin-bottom: 0.25rem;
  letter-spacing: -0.02em;
}
.proof-stat .proof-stat-suffix {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-colour);
  opacity: 0.65;
  margin-left: 0.25rem;
  letter-spacing: 0;
}

.proof-stat-label {
  font-size: 0.85rem;
  color: var(--text-colour);
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}

.impact-widget {
  position: relative;
  border-radius: 16px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  padding: 1.75rem;
  overflow: hidden;
  box-shadow: var(--box-shadow);
}
.impact-widget::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #f47424 0%, #ffb066 100%);
  opacity: 0.85;
  z-index: 1;
}
.impact-widget::after {
  content: "";
  position: absolute;
  top: -30%;
  right: -10%;
  width: 60%;
  height: 160%;
  background: radial-gradient(circle, rgba(244, 116, 36, 0.18) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
.impact-widget .impact-widget-eyebrow {
  color: #f47424;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 700;
  margin-bottom: 0.4rem;
  position: relative;
  z-index: 2;
}
.impact-widget .impact-widget-title {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 0.25rem;
  line-height: 1.2;
  color: var(--text-colour);
  position: relative;
  z-index: 2;
}
.impact-widget .impact-widget-sub {
  color: var(--text-colour);
  opacity: 0.7;
  font-size: 0.95rem;
  margin-bottom: 1.25rem;
  position: relative;
  z-index: 2;
}
.impact-widget .impact-widget-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  position: relative;
  z-index: 2;
}
.impact-widget .impact-widget-stat {
  background: rgba(127, 127, 127, 0.06);
  border: 1px solid var(--border-colour);
  border-radius: 10px;
  padding: 0.85rem 0.95rem;
}
.impact-widget .impact-widget-stat .value {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.05;
  color: var(--text-colour);
  letter-spacing: -0.01em;
}
.impact-widget .impact-widget-stat .value .unit {
  color: #f47424;
  font-weight: 700;
}
.impact-widget .impact-widget-stat .label {
  font-size: 0.75rem;
  color: var(--text-colour);
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 0.2rem;
}
.impact-widget .impact-widget-chart {
  background: rgba(127, 127, 127, 0.04);
  border: 1px solid var(--border-colour);
  border-radius: 10px;
  padding: 0.6rem 0.5rem;
  position: relative;
  z-index: 2;
}
.impact-widget .impact-widget-footer {
  margin-top: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  color: var(--text-colour);
  opacity: 0.7;
  font-size: 0.8rem;
  position: relative;
  z-index: 2;
}
.impact-widget .impact-widget-link {
  color: #f47424;
  text-decoration: none;
  font-weight: 600;
  border-bottom: 1px dashed rgba(244, 116, 36, 0.5);
  padding-bottom: 1px;
  opacity: 1;
}
.impact-widget .impact-widget-link:hover {
  color: #ffb066;
  border-bottom-color: #ffb066;
}

.feature-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 3.25rem;
  margin: 4rem 0;
}
@media (max-width: 768px) {
  .feature-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.75rem;
    margin: 2.5rem 0;
  }
}

.feature-row-reverse .feature-row-media {
  order: 2;
}
.feature-row-reverse .feature-row-content {
  order: 1;
}
@media (max-width: 768px) {
  .feature-row-reverse .feature-row-media {
    order: 1;
  }
  .feature-row-reverse .feature-row-content {
    order: 2;
  }
}

.feature-row-content {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.feature-row-media {
  min-width: 0;
}

.feature-row-eyebrow {
  display: inline-block;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: #f47424;
  font-weight: 700;
  margin-bottom: 0.6rem;
  opacity: 0.95;
}

.feature-row-title {
  font-size: clamp(1.55rem, 2.6vw, 2.1rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--text-colour);
  margin-bottom: 1rem;
}

.feature-row-body {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text-colour);
  opacity: 0.88;
  margin-bottom: 1rem;
}
.feature-row-body strong {
  color: var(--text-colour);
  opacity: 1;
  font-weight: 700;
}
.feature-row-body:last-of-type {
  margin-bottom: 0;
}

.feature-row-list {
  font-size: 0.97rem;
  line-height: 1.7;
  color: var(--text-colour);
  opacity: 0.88;
  padding-left: 1.1rem;
  margin-bottom: 1rem;
}
.feature-row-list li {
  margin-bottom: 0.35rem;
}

.feature-row-actions {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-top: 0.85rem;
}

.media-card {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), border-color 0.3s ease;
  isolation: isolate;
}
.media-card::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 38%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.55), transparent);
  pointer-events: none;
  opacity: 0.7;
  transition: opacity 0.3s ease;
  z-index: 1;
}
.media-card .media-card-img,
.media-card .media-card-video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.media-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.14), 0 4px 10px rgba(0, 0, 0, 0.06);
  border-color: #f47424;
}
.media-card:hover .media-card-img,
.media-card:hover .media-card-video {
  transform: scale(1.04);
}
.media-card:hover::after {
  opacity: 0.9;
}

.media-card-tag {
  position: absolute;
  bottom: 12px;
  right: 12px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  backdrop-filter: blur(10px);
  background: rgba(0, 0, 0, 0.6);
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  padding: 5px 11px;
  font-size: 0.78rem;
  font-weight: 500;
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.media-card-tag i {
  line-height: 1;
}
.media-card-tag:hover {
  background: #f47424;
  border-color: #f47424;
  color: #ffffff !important;
  transform: translateY(-1px);
}

.review-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 16px;
  padding: 1.65rem 1.5rem 1.4rem;
  box-shadow: var(--box-shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  overflow: hidden;
  isolation: isolate;
}
.review-card::before {
  content: "“";
  position: absolute;
  top: 0.25rem;
  right: 1rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 6.5rem;
  line-height: 1;
  color: #f47424;
  opacity: 0.08;
  pointer-events: none;
  z-index: 0;
}
.review-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.1), var(--box-shadow);
  border-color: #f47424;
}
.review-card > * {
  position: relative;
  z-index: 1;
}

.review-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.review-card-stars {
  display: inline-flex;
  gap: 2px;
  flex-shrink: 0;
}
.review-card-stars i {
  color: #f47424;
  font-size: 1rem;
}
.review-card-stars i.empty {
  color: var(--text-colour);
  opacity: 0.18;
}

.review-card-source-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.72rem;
  color: var(--text-colour);
  opacity: 0.6;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  white-space: nowrap;
}
.review-card-source-badge i {
  font-size: 0.95rem;
  opacity: 1;
}

.review-card-body {
  flex-grow: 1;
  margin-bottom: 1.15rem;
}
.review-card-body > div {
  margin: 0;
}

.review-card-text {
  font-size: 0.97rem;
  line-height: 1.65;
  color: var(--text-colour);
  opacity: 0.92;
  margin: 0;
}

.review-card-text-empty {
  font-size: 0.92rem;
  font-style: italic;
  color: var(--text-colour);
  opacity: 0.55;
  margin: 0;
}

.review-card-readmore {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.5rem;
  background: none;
  border: none;
  padding: 0;
  color: #f47424 !important;
  font-weight: 600;
  font-size: 0.86rem;
  cursor: pointer;
  font-family: inherit;
}
.review-card-readmore:hover {
  color: #ffb066 !important;
  text-decoration: underline;
}
.review-card-readmore i {
  font-size: 0.78rem;
}

.review-card-footer {
  border-top: 1px solid var(--border-colour);
  padding-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.review-card-attribution {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.review-card-name {
  font-size: 0.96rem;
  font-weight: 700;
  color: var(--text-colour);
  line-height: 1.2;
}

.review-card-system-meta {
  font-size: 0.78rem;
  color: var(--text-colour);
  opacity: 0.65;
  line-height: 1.3;
}

.review-card-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.review-card-action {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  border: 1px solid var(--border-colour);
  background: transparent;
  color: var(--text-colour) !important;
  text-decoration: none !important;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}
.review-card-action i {
  font-size: 0.92rem;
}
.review-card-action:hover {
  border-color: #f47424;
  color: #f47424 !important;
  transform: translateY(-1px);
}

.review-card-action--primary {
  background: #f47424;
  border-color: #f47424;
  color: #ffffff !important;
}
.review-card-action--primary:hover {
  background: #ffb066;
  border-color: #ffb066;
  color: #ffffff !important;
}

.system-hero {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: var(--card-colour);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1), 0 4px 12px rgba(0, 0, 0, 0.06);
  isolation: isolate;
}
.system-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 55%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
  pointer-events: none;
  z-index: 1;
}
.system-hero .carousel-indicators {
  position: absolute;
  bottom: 14px;
  right: 18px;
  left: auto;
  margin: 0;
  z-index: 3;
  gap: 4px;
}
.system-hero .carousel-indicators button {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.55);
  transition: width 0.25s ease, background 0.25s ease;
  opacity: 1;
}
.system-hero .carousel-indicators button.active {
  width: 22px;
  border-radius: 999px;
  background: #f47424;
}

.system-hero-overlay {
  position: absolute;
  left: 1.75rem;
  right: 1.75rem;
  bottom: 1.5rem;
  z-index: 2;
  color: #ffffff;
}
.system-hero-overlay .system-hero-orphan-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.85rem;
  padding: 0.5rem 1rem 0.5rem 0.85rem;
  background: #f47424;
  color: #ffffff;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: help;
  box-shadow: 0 6px 18px rgba(244, 116, 36, 0.45), 0 2px 6px rgba(0, 0, 0, 0.25);
}
.system-hero-overlay .system-hero-orphan-badge i {
  font-size: 1.05rem;
  color: #ffffff;
}
.system-hero-overlay .system-hero-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #ffffff;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 0.4rem;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}
.system-hero-overlay .system-hero-meta {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.92rem;
  margin: 0 0 0.85rem;
}
.system-hero-overlay .system-hero-stats {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.system-hero-overlay .system-hero-stat {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 0.82rem;
  color: #ffffff;
}
.system-hero-overlay .system-hero-stat strong {
  color: #ffb066;
  font-weight: 700;
}
.system-hero-overlay .system-hero-review {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.85rem;
  padding: 0.4rem 0.8rem;
  background: rgba(0, 0, 0, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  backdrop-filter: blur(10px);
  cursor: pointer;
  color: #ffffff;
  font-size: 0.85rem;
}
.system-hero-overlay .system-hero-review .stars i {
  color: #f47424;
  font-size: 0.85rem;
}
@media (max-width: 768px) {
  .system-hero-overlay {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
  }
  .system-hero-overlay .system-hero-stats {
    gap: 0.35rem;
  }
  .system-hero-overlay .system-hero-stat {
    font-size: 0.75rem;
    padding: 0.3rem 0.65rem;
  }
}

.system-action-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 0.25rem;
  margin: 0.5rem 0 0.25rem;
}

.system-action-group {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.system-action-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--border-colour);
  background: var(--card-colour);
  color: var(--text-colour);
  font-size: 1rem;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}
.system-action-pill:hover {
  border-color: #f47424;
  color: #f47424;
  transform: translateY(-1px);
}
.system-action-pill.system-action-pill--wide {
  width: auto;
  padding: 0 1rem;
  border-radius: 999px;
  height: 38px;
  font-size: 0.85rem;
  font-weight: 600;
  gap: 0.45rem;
}

.system-action-meta {
  font-size: 0.85rem;
  color: var(--text-colour);
  opacity: 0.75;
  margin: 0;
}
.system-action-meta a {
  color: #f47424;
  font-weight: 600;
  text-decoration: none;
}
.system-action-meta a:hover {
  color: #ffb066;
  text-decoration: underline;
}

.system-tab-bar {
  display: flex;
  gap: 0.4rem;
  overflow-x: auto;
  scrollbar-width: thin;
  padding-bottom: 0.65rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--border-colour);
}
.system-tab-bar::-webkit-scrollbar {
  height: 4px;
}
.system-tab-bar::-webkit-scrollbar-track {
  background: transparent;
}
.system-tab-bar::-webkit-scrollbar-thumb {
  background: var(--border-colour);
  border-radius: 2px;
}
@media (max-width: 768px) {
  .system-tab-bar {
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

.system-tab-item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1.1rem;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--text-colour);
  opacity: 0.7;
  font-size: 0.92rem;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: opacity 0.2s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  scroll-snap-align: start;
}
.system-tab-item i {
  font-size: 1rem;
}
.system-tab-item:hover {
  opacity: 1;
  background: rgba(127, 127, 127, 0.06);
  color: var(--text-colour);
}
.system-tab-item.active {
  opacity: 1;
  background: #f47424;
  border-color: #f47424;
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(244, 116, 36, 0.28);
}
.system-tab-item.active:hover {
  background: #ffb066;
  border-color: #ffb066;
  color: #ffffff;
}

.system-info-callout {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  margin: 2.5rem 0 0;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 14px;
  box-shadow: var(--box-shadow);
}
.system-info-callout .system-info-callout-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(244, 116, 36, 0.1);
  color: #f47424;
  font-size: 1.3rem;
}
.system-info-callout .system-info-callout-body {
  flex-grow: 1;
}
.system-info-callout .system-info-callout-body .section-eyebrow {
  margin-bottom: 0.35rem;
}
.system-info-callout .system-info-callout-body p {
  margin: 0;
  color: var(--text-colour);
  opacity: 0.85;
  line-height: 1.6;
  font-size: 0.95rem;
}
@media (max-width: 575.98px) {
  .system-info-callout {
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem 1.1rem;
  }
}

.awards-panel {
  position: relative;
  margin: 4rem 0;
  padding: 4rem 1.5rem;
  background-image: linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px), linear-gradient(135deg, #0f1729 0%, #1a2746 60%, #2d3a6b 100%);
  background-size: var(--tx-grid-size, 42px) var(--tx-grid-size, 42px), var(--tx-grid-size, 42px) var(--tx-grid-size, 42px), 100% 100%;
  border-radius: 20px;
  overflow: hidden;
  text-align: center;
  box-shadow: 0 20px 60px rgba(15, 23, 41, 0.25), 0 8px 20px rgba(15, 23, 41, 0.15);
}
.awards-panel::before {
  content: "";
  position: absolute;
  top: -30%;
  left: -10%;
  width: 55%;
  height: 160%;
  background: radial-gradient(circle, rgba(244, 116, 36, 0.18) 0%, transparent 65%);
  pointer-events: none;
}
.awards-panel::after {
  content: "";
  position: absolute;
  top: -30%;
  right: -10%;
  width: 55%;
  height: 160%;
  background: radial-gradient(circle, rgba(138, 107, 255, 0.14) 0%, transparent 65%);
  pointer-events: none;
}
.awards-panel > * {
  position: relative;
  z-index: 1;
}
.awards-panel .section-eyebrow {
  color: #ffb066;
}
.awards-panel .awards-panel-title {
  color: #ffffff;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 1rem;
}
.awards-panel .awards-panel-lead {
  color: rgba(255, 255, 255, 0.78);
  max-width: 760px;
  margin: 0 auto 2.5rem;
  line-height: 1.65;
}
@media (max-width: 768px) {
  .awards-panel {
    padding: 2.5rem 1rem;
    margin: 2.5rem 0;
  }
}

.awards-trophy-case {
  display: inline-block;
  max-width: 1080px;
  width: 100%;
  padding: 1.75rem 2rem;
  background: transparent;
  border-radius: 14px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.32), 0 8px 18px rgba(0, 0, 0, 0.22);
}
.awards-trophy-case img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .awards-trophy-case {
    padding: 1.25rem 1rem;
  }
}

.stat-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 14px;
  padding: 1.4rem 1rem 1.25rem;
  box-shadow: var(--box-shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  height: 100%;
}
.stat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08), var(--box-shadow);
  border-color: #f47424;
}
.stat-card .stat-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: rgba(244, 116, 36, 0.1);
  color: #f47424;
  font-size: 1.6rem;
  margin-bottom: 0.85rem;
  line-height: 1;
}
.stat-card .stat-card-icon img,
.stat-card .stat-card-icon svg {
  width: 30px;
  height: 30px;
}
.stat-card .stat-card-value {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--text-colour);
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin-bottom: 0.25rem;
}
.stat-card .stat-card-value .unit {
  color: #f47424;
  font-size: 1rem;
  font-weight: 700;
  margin-left: 0.2rem;
  letter-spacing: 0;
}
.stat-card .stat-card-label {
  font-size: 0.8rem;
  color: var(--text-colour);
  opacity: 0.75;
  line-height: 1.4;
  text-wrap: balance;
}
.stat-card .stat-card-meta {
  margin-top: 0.7rem;
  padding-top: 0.6rem;
  border-top: 1px solid var(--border-colour);
  width: 100%;
  font-size: 0.78rem;
  color: var(--text-colour);
  opacity: 0.7;
}

.stat-card--compact {
  padding: 1rem 0.85rem 0.95rem;
}
.stat-card--compact .stat-card-icon {
  width: 36px;
  height: 36px;
  font-size: 1.15rem;
  margin-bottom: 0.55rem;
  border-radius: 10px;
}
.stat-card--compact .stat-card-value {
  font-size: 1.4rem;
}

.contact-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 14px;
  padding: 2rem 1.5rem;
  box-shadow: var(--box-shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  height: 100%;
  overflow: hidden;
}
.contact-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #f47424 0%, #ffb066 100%);
  opacity: 0.85;
}
.contact-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.12), var(--box-shadow);
  border-color: #f47424;
}
.contact-card .contact-card-icon {
  font-size: 2rem;
  color: #f47424;
  margin-bottom: 1rem;
  line-height: 1;
}
.contact-card .contact-card-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-colour);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}
.contact-card .contact-card-value {
  font-size: 1rem;
  font-weight: 600;
}
.contact-card .contact-card-value a {
  color: var(--interaction);
  text-decoration: none;
  transition: color 0.2s ease;
}
.contact-card .contact-card-value a:hover {
  color: #f47424;
  text-decoration: underline;
}

.social-icon-link {
  display: inline-flex;
  transition: transform 0.2s ease, opacity 0.2s ease;
  opacity: 0.9;
}
.social-icon-link:hover {
  transform: translateY(-2px) scale(1.1);
  opacity: 1;
}

.insights-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.5rem;
  align-items: start;
}

.insight-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--box-shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  height: 100%;
}
.insight-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #f47424 0%, #ffb066 100%);
  opacity: 0.85;
  z-index: 2;
}
.insight-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.12), var(--box-shadow);
  border-color: #f47424;
}
.insight-card:hover .insight-card-media img,
.insight-card:hover .insight-card-media .cover-image {
  transform: scale(1.05);
}
.insight-card .insight-card-media {
  position: relative;
  height: 200px;
  overflow: hidden;
}
.insight-card .insight-card-media img,
.insight-card .insight-card-media .cover-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.insight-card .insight-card-body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.insight-card .insight-card-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
}
.insight-card .insight-card-categories .badge {
  font-size: 0.72rem;
  font-weight: 600;
  background: rgba(244, 116, 36, 0.1);
  color: #f47424;
  border-radius: 999px;
  padding: 0.22rem 0.6rem;
  text-decoration: none;
  transition: background 0.2s ease;
  border: none;
}
.insight-card .insight-card-categories .badge:hover {
  background: rgba(244, 116, 36, 0.2);
}
.insight-card .insight-card-title {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--text-colour);
  margin-bottom: 0.6rem;
}
.insight-card .insight-card-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}
.insight-card .insight-card-title a:hover {
  color: #f47424;
}
.insight-card .insight-card-meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
  font-size: 0.82rem;
  color: var(--text-colour);
  opacity: 0.7;
}
.insight-card .insight-card-meta .insight-card-author {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.insight-card .insight-card-meta .insight-card-author img {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}
.insight-card .insight-card-meta i {
  font-size: 0.7rem;
  opacity: 0.6;
}
.insight-card .insight-card-excerpt {
  font-size: 0.93rem;
  line-height: 1.6;
  color: var(--text-colour);
  opacity: 0.85;
  flex-grow: 1;
  margin-bottom: 0.75rem;
}
.insight-card .insight-card-footer {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.insight-card-mini {
  position: relative;
  display: flex;
  gap: 0.875rem;
  align-items: flex-start;
  padding: 0.875rem;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 12px;
  box-shadow: var(--box-shadow);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
}
.insight-card-mini::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, #f47424 0%, #ffb066 100%);
  opacity: 0.85;
}
.insight-card-mini:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1), var(--box-shadow);
  border-color: #f47424;
}
.insight-card-mini .insight-card-mini-thumb {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  border-radius: 10px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}
.insight-card-mini .insight-card-mini-body {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
  flex-grow: 1;
}
.insight-card-mini .insight-card-mini-title {
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--text-colour);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.insight-card-mini .insight-card-mini-meta {
  font-size: 0.75rem;
  color: var(--text-colour);
  opacity: 0.6;
}

.insight-card .insight-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
  line-height: 0;
}
.insight-card.insight-card--draft {
  border-style: dashed;
  border-color: rgba(244, 116, 36, 0.55);
}
.insight-card .insight-card-media--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(244, 116, 36, 0.1), rgba(255, 176, 102, 0.1));
}
.insight-card .insight-card-media--placeholder i {
  font-size: 2.6rem;
  color: #f47424;
  opacity: 0.55;
}
.insight-card .insight-card-readmore {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #f47424;
  font-weight: 600;
  font-size: 0.88rem;
  text-decoration: none;
  transition: gap 0.2s ease, color 0.2s ease;
}
.insight-card .insight-card-readmore i {
  font-size: 0.78rem;
  transition: transform 0.2s ease;
}
.insight-card .insight-card-readmore:hover {
  color: #ffb066;
  gap: 0.6rem;
}
.insight-card .insight-card-readmore:hover i {
  transform: translateX(2px);
}
.insight-card .insight-card-author {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.insight-card .insight-card-author img {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}
.insight-card .insight-card-author a {
  color: inherit;
  text-decoration: none;
}
.insight-card .insight-card-author a:hover {
  color: #f47424;
}
.insight-card .insight-card-meta i.fa-circle {
  font-size: 3px;
  opacity: 0.5;
}

.insight-card-mini-thumb--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(244, 116, 36, 0.12), rgba(255, 176, 102, 0.12));
}
.insight-card-mini-thumb--placeholder i {
  font-size: 1.4rem;
  color: #f47424;
  opacity: 0.6;
}

.insights-show {
  display: block;
  margin-bottom: 4rem;
}

.insights-show-hero {
  position: relative;
  margin: 0 1.25rem;
  border-radius: 20px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  min-height: 360px;
  display: flex;
  align-items: flex-end;
}
@media (max-width: 768px) {
  .insights-show-hero {
    margin-right: 0.75rem;
    margin-left: 0.75rem;
    min-height: 280px;
    border-radius: 14px;
  }
}

.insights-show-hero--with-image {
  color: #fff;
}
.insights-show-hero--with-image .insights-show-back {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.35);
  background: rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(8px);
}
.insights-show-hero--with-image .insights-show-back:hover {
  background: rgba(0, 0, 0, 0.45);
  border-color: #fff;
}
.insights-show-hero--with-image .insights-show-title {
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}
.insights-show-hero--with-image .insights-show-meta {
  color: rgba(255, 255, 255, 0.92);
}
.insights-show-hero--with-image .insights-show-categories .badge {
  background: rgba(244, 116, 36, 0.95);
  color: #fff;
}

.insights-show-hero--plain {
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
}
.insights-show-hero--plain::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #f47424 0%, #ffb066 100%);
}
.insights-show-hero--plain::after {
  content: "";
  position: absolute;
  top: -30%;
  right: -10%;
  width: 55%;
  height: 160%;
  background: radial-gradient(circle, rgba(244, 116, 36, 0.16) 0%, transparent 65%);
  pointer-events: none;
}

.insights-show-hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 880px;
  margin: 0 auto;
  padding: 3rem 2rem 2.25rem;
}
@media (max-width: 768px) {
  .insights-show-hero-inner {
    padding: 2rem 1.25rem 1.5rem;
  }
}

.insights-show-back {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  border: 1px solid var(--border-colour);
  background: var(--card-colour);
  color: var(--text-colour);
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  margin-bottom: 1.25rem;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.insights-show-back:hover {
  border-color: #f47424;
  color: #f47424;
}

.insights-show-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.85rem;
}
.insights-show-categories .badge {
  font-size: 0.72rem;
  font-weight: 600;
  background: rgba(244, 116, 36, 0.12);
  color: #f47424;
  border-radius: 999px;
  padding: 0.28rem 0.7rem;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border: none;
}
.insights-show-categories .badge:hover {
  background: rgba(244, 116, 36, 0.22);
}

.insights-show-title {
  font-size: clamp(1.85rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--text-colour);
  margin: 0 0 1rem;
  text-wrap: balance;
}

.insights-show-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem;
  font-size: 0.92rem;
  color: var(--text-colour);
  opacity: 0.9;
}
.insights-show-meta i.fa-circle {
  font-size: 4px;
  opacity: 0.55;
}

.insights-show-author {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
}
.insights-show-author img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  border: 2px solid rgba(255, 255, 255, 0.6);
}

.insights-show-toolbar {
  max-width: 880px;
  margin: 1.25rem auto 0;
  padding: 0 2rem;
}
@media (max-width: 768px) {
  .insights-show-toolbar {
    padding: 0 1.25rem;
  }
}

.insights-show-toolbar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1rem;
  border-radius: 12px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  box-shadow: var(--box-shadow);
}

.insights-show-share {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.insights-show-share-label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-colour);
  opacity: 0.65;
  margin-right: 0.25rem;
}

.insights-show-share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--border-colour);
  background: transparent;
  color: var(--text-colour);
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.insights-show-share-btn:hover {
  background: #f47424;
  border-color: #f47424;
  color: #fff;
  transform: translateY(-1px);
}

.insights-show-draft-alert {
  max-width: 880px;
  margin: 1rem auto 0;
  padding: 0 2rem;
}
@media (max-width: 768px) {
  .insights-show-draft-alert {
    padding: 0 1.25rem;
  }
}

.insights-show-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 3rem;
  max-width: 1200px;
  margin: 2.25rem auto 0;
  padding: 0 2rem;
  align-items: start;
}
@media (max-width: 992px) {
  .insights-show-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 2.25rem;
    padding: 0 1.25rem;
  }
}

.insights-show-prose {
  max-width: 720px;
  width: 100%;
  margin: 0 auto;
  font-size: 1.075rem;
  line-height: 1.75;
  color: var(--text-colour);
}
.insights-show-prose > * {
  margin-bottom: 1.15em;
}
.insights-show-prose h1, .insights-show-prose h2, .insights-show-prose h3, .insights-show-prose h4, .insights-show-prose h5, .insights-show-prose h6 {
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--text-colour);
  margin-top: 2em;
  margin-bottom: 0.65em;
  text-wrap: balance;
}
.insights-show-prose h1 {
  font-size: 2rem;
}
.insights-show-prose h2 {
  font-size: 1.65rem;
}
.insights-show-prose h3 {
  font-size: 1.35rem;
}
.insights-show-prose h4 {
  font-size: 1.15rem;
}
.insights-show-prose p {
  color: var(--text-colour);
  opacity: 0.92;
}
.insights-show-prose a {
  color: #f47424;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.insights-show-prose a:hover {
  color: #ffb066;
}
.insights-show-prose strong {
  font-weight: 700;
}
.insights-show-prose em {
  font-style: italic;
}
.insights-show-prose ul, .insights-show-prose ol {
  padding-left: 1.4em;
}
.insights-show-prose ul li, .insights-show-prose ol li {
  margin-bottom: 0.45em;
}
.insights-show-prose blockquote {
  border-left: 3px solid #f47424;
  margin: 1.5em 0;
  padding: 0.25em 0 0.25em 1.25em;
  font-style: italic;
  color: var(--text-colour);
  opacity: 0.88;
  background: rgba(244, 116, 36, 0.04);
  border-radius: 0 8px 8px 0;
}
.insights-show-prose code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.92em;
  background: rgba(127, 127, 127, 0.12);
  padding: 0.15em 0.4em;
  border-radius: 4px;
}
.insights-show-prose pre {
  background: rgba(127, 127, 127, 0.08);
  border: 1px solid var(--border-colour);
  border-radius: 10px;
  padding: 1rem 1.15rem;
  overflow-x: auto;
  font-size: 0.9rem;
  line-height: 1.55;
}
.insights-show-prose pre code {
  background: transparent;
  padding: 0;
}
.insights-show-prose img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  margin: 1.5em 0;
  display: block;
}
.insights-show-prose figure {
  margin: 1.75em 0;
}
.insights-show-prose figure figcaption {
  font-size: 0.85rem;
  color: var(--text-colour);
  opacity: 0.65;
  text-align: center;
  margin-top: 0.5em;
}
.insights-show-prose hr {
  border: 0;
  border-top: 1px solid var(--border-colour);
  margin: 2.5em 0;
}
.insights-show-prose table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
  margin: 1.5em 0;
}
.insights-show-prose table th, .insights-show-prose table td {
  padding: 0.6rem 0.85rem;
  border-bottom: 1px solid var(--border-colour);
  text-align: left;
}
.insights-show-prose table th {
  font-weight: 700;
  background: rgba(127, 127, 127, 0.06);
}
.insights-show-prose .attachment {
  margin: 1.5em 0;
}
.insights-show-prose .attachment img {
  margin: 0;
}

.insights-show-sidebar {
  position: sticky;
  top: var(--page-sticky-navbar-offset, 100px);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
@media (max-width: 992px) {
  .insights-show-sidebar {
    position: static;
  }
}

.insights-show-sidebar-block {
  position: relative;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 14px;
  padding: 1.25rem;
  box-shadow: var(--box-shadow);
  overflow: hidden;
}
.insights-show-sidebar-block::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, #f47424 0%, #ffb066 100%);
  opacity: 0.85;
}

.insights-show-sidebar-title {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 700;
  color: #f47424;
  margin: 0 0 1rem;
}

.insights-show-sidebar-text {
  font-size: 0.9rem;
  color: var(--text-colour);
  opacity: 0.8;
  margin-bottom: 0.85rem;
  line-height: 1.5;
}

.insights-show-sidebar-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.insights-show-subscribe {
  display: flex;
  flex-direction: column;
}

.hero-split,
.feature-row,
.proof-card,
.stat-card,
.contact-card,
.media-card,
.review-card,
.insight-card,
.insight-card-mini,
.insights-show,
.impact-widget {
  font-family: "Quicksand", sans-serif;
}

.hero-split {
  position: relative;
  padding: 2rem 0 4rem;
  color: var(--text-colour);
  overflow: hidden;
  background-image: linear-gradient(180deg, transparent 55%, var(--background-colour) 100%), linear-gradient(var(--tx-grid-line, rgba(16, 24, 40, 0.045)) 1px, transparent 1px), linear-gradient(90deg, var(--tx-grid-line, rgba(16, 24, 40, 0.045)) 1px, transparent 1px);
  background-size: 100% 100%, var(--tx-grid-size, 42px) var(--tx-grid-size, 42px), var(--tx-grid-size, 42px) var(--tx-grid-size, 42px);
}
@media (max-width: 991.98px) {
  .hero-split {
    padding-top: 1.5rem;
  }
}

.hero-split--navbar-overlay {
  padding-top: 8rem;
}
@media (max-width: 991.98px) {
  .hero-split--navbar-overlay {
    padding-top: 6rem;
  }
}

.hero-split::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -20%;
  width: 800px;
  height: 800px;
  background: radial-gradient(circle, rgba(244, 116, 36, 0.08) 0%, transparent 70%);
  pointer-events: none;
}

.hero-split::after {
  content: "";
  position: absolute;
  bottom: -40%;
  left: -15%;
  width: 620px;
  height: 620px;
  background: radial-gradient(circle, rgba(244, 116, 36, 0.05) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

@media (prefers-reduced-motion: no-preference) {
  .hero-split::before {
    animation: hero-glow-drift 14s ease-in-out infinite alternate;
  }
  .hero-split::after {
    animation: hero-glow-drift 18s ease-in-out -4s infinite alternate-reverse;
  }
}
@keyframes hero-glow-drift {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-3%, 4%, 0);
  }
}
.tx-grid {
  position: relative;
}

.tx-grid > * {
  position: relative;
  z-index: 1;
}

.tx-grid::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: linear-gradient(var(--tx-grid-line, rgba(16, 24, 40, 0.045)) 1px, transparent 1px), linear-gradient(90deg, var(--tx-grid-line, rgba(16, 24, 40, 0.045)) 1px, transparent 1px);
  background-size: var(--tx-grid-size, 42px) var(--tx-grid-size, 42px);
  -webkit-mask-image: radial-gradient(ellipse 88% 68% at 50% 42%, #000 22%, transparent 100%);
  mask-image: radial-gradient(ellipse 88% 68% at 50% 42%, #000 22%, transparent 100%);
}

.hero-split .container {
  position: relative;
  z-index: 1;
}

.hero-split-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 4rem;
  align-items: center;
}

.hero-split .hero-copy {
  text-align: left;
  max-width: 560px;
  position: relative;
  z-index: 1;
}

.hero-split .hero-copy .hero-title,
.hero-split .hero-copy .hero-subtitle {
  text-align: left;
  margin-left: 0;
  margin-right: 0;
}

.hero-title {
  font-family: "Plus Jakarta Sans", "Quicksand", sans-serif;
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  font-weight: 800;
  color: var(--text-colour);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin-bottom: 1.5rem;
  text-wrap: balance;
}
.hero-title .gradient-text {
  background: linear-gradient(90deg, #f47424 0%, #ffb066 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.hero-subtitle {
  font-size: 1.15rem;
  color: var(--text-colour);
  opacity: 0.85;
  line-height: 1.6;
  margin-bottom: 2rem;
}

.hero-actions {
  display: flex;
  gap: 1rem;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-bottom: 0;
}

.hero-stage {
  position: relative;
  border-radius: 20px;
}

.hero-stage > .hero-visual {
  margin-top: 0;
}

.hero-rotator {
  position: relative;
  margin-bottom: 2rem;
}

.hero-rotator-stage {
  position: relative;
}

.hero-rotator-slide {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 600ms ease, transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
  pointer-events: none;
  visibility: hidden;
}

.hero-rotator-slide.is-active {
  position: relative;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  visibility: visible;
}

.hero-rotator-cta {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}

@media (max-width: 991.98px) {
  .hero-rotator-cta {
    justify-content: center;
  }
}
.btn-hero {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.85rem 1.75rem;
  background: linear-gradient(135deg, #f47424 0%, #ffb066 100%);
  color: #ffffff !important;
  border: none;
  border-radius: 999px;
  font-family: "Quicksand", sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none !important;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(244, 116, 36, 0.32);
  transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 200ms ease, filter 200ms ease;
}
.btn-hero i {
  font-size: 0.85em;
}
.btn-hero:hover, .btn-hero:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(244, 116, 36, 0.42);
  color: #ffffff !important;
  filter: brightness(1.05);
  text-decoration: none !important;
  outline: none;
}
.btn-hero:active {
  transform: translateY(0);
  box-shadow: 0 3px 12px rgba(244, 116, 36, 0.36);
}

.btn-hero--ghost {
  background: transparent;
  color: #f47424 !important;
  border: 1.5px solid #f47424;
  box-shadow: none;
}
.btn-hero--ghost:hover, .btn-hero--ghost:focus-visible {
  background: #f47424;
  color: #ffffff !important;
  border-color: #f47424;
  box-shadow: 0 6px 20px rgba(244, 116, 36, 0.32);
  filter: none;
}

.hero-rotator .hero-title,
.hero-rotator .hero-subtitle {
  margin-bottom: 0;
}

.hero-award-row {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
}

.hero-award-row-text {
  flex: 1;
  min-width: 0;
}

.hero-award-link {
  display: inline-block;
  text-decoration: none;
  flex-shrink: 0;
  transition: transform 200ms ease;
}
.hero-award-link:hover {
  transform: translateY(-2px);
}

.hero-award-badge {
  width: 110px;
  height: auto;
  display: block;
}

.hero-rotator-reviews {
  margin-top: 1.25rem;
  width: 100%;
}
.hero-rotator-reviews .review-wrapper {
  max-width: 100%;
}

@media (max-width: 991.98px) {
  .hero-award-row {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1rem;
  }
  .hero-award-link {
    order: -1;
  }
  .hero-award-badge {
    width: 130px;
  }
}
.hero-rotator .hero-title {
  margin-bottom: 1.5rem;
}

.hero-rotator-pips {
  display: flex;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
  margin: 1.5rem 0 0;
}

.hero-rotator-pip {
  display: block;
  width: 1.5rem;
  height: 0.3rem;
  border-radius: 9999px;
  background: rgba(127, 127, 127, 0.18);
  border: 0;
  padding: 0;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: width 400ms cubic-bezier(0.2, 0.8, 0.2, 1), background 200ms ease;
}

.hero-rotator-pip:hover {
  background: rgba(127, 127, 127, 0.32);
}

.hero-rotator-pip.is-active {
  width: 4rem;
  background: rgba(244, 116, 36, 0.18);
}

.hero-rotator-pip-fill {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #f47424 0%, #ffb066 100%);
}

.hero-rotator-pip.is-active .hero-rotator-pip-fill {
  animation: hero-rotator-fill var(--rotator-interval, 5000ms) linear forwards;
}

.hero-rotator.is-paused .hero-rotator-pip.is-active .hero-rotator-pip-fill {
  animation-play-state: paused;
}

@keyframes hero-rotator-fill {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero-rotator-slide {
    transition: none;
  }
  .hero-rotator-pip-fill {
    animation: none !important;
    width: 100%;
  }
}
.hero-split--bleed {
  overflow: hidden;
}

.hero-split--bleed > .hero-split-grid {
  display: grid;
  grid-template-columns: minmax(20rem, 1fr) minmax(28rem, 1.4fr);
  gap: 3rem;
  align-items: center;
  padding-left: 1.5rem;
  padding-right: 2.5rem;
}

@media (min-width: 1280px) {
  .hero-split--bleed > .hero-split-grid {
    grid-template-columns: minmax(20rem, 540px) minmax(0, 1fr);
    padding-left: calc((100vw - 1250px) / 2 + 0.75rem);
    padding-right: 0;
  }
}
.hero-split--bleed .hero-copy {
  max-width: 540px;
}

.hero-split--bleed .hero-stage {
  width: 100%;
  min-height: 32rem;
}

.hero-split--bleed .hero-stage > div {
  height: 100%;
}

.hero-split--reverse > .hero-split-grid {
  grid-template-columns: minmax(28rem, 1.4fr) minmax(20rem, 1fr);
  padding-left: 2.5rem;
  padding-right: 1.5rem;
}
.hero-split--reverse > .hero-split-grid .hero-copy {
  order: 2;
}
.hero-split--reverse > .hero-split-grid .hero-stage {
  order: 1;
}

@media (min-width: 1280px) {
  .hero-split--reverse > .hero-split-grid {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 540px);
    padding-left: 0;
    padding-right: calc((100vw - 1250px) / 2 + 0.75rem);
  }
}
.hero-split--reverse .hero-scene-wrap,
.hero-split--reverse .hero-media-wrap {
  border-radius: 0 20px 20px 0;
}

.hero-scene-wrap {
  width: 100%;
  height: 100%;
  min-height: 32rem;
  border-radius: 20px 0 0 20px;
  overflow: hidden;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.18), 0 8px 20px rgba(0, 0, 0, 0.08);
  background: var(--card-colour);
}

.hero-scene-wrap > #canvas-container,
.hero-scene-wrap > div {
  width: 100%;
  height: 100%;
  min-height: inherit;
}

.hero-scene-wrap canvas {
  display: block;
  max-width: 100%;
  max-height: 100%;
}

.hero-media-wrap {
  width: 100%;
  min-height: 32rem;
  border-radius: 20px 0 0 20px;
  overflow: hidden;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.18), 0 8px 20px rgba(0, 0, 0, 0.08);
  position: relative;
}
.hero-media-wrap > .media-card,
.hero-media-wrap > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 0;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.hero-media-wrap > .media-card {
  border: 0;
  box-shadow: none;
}
.hero-media-wrap > .media-card .media-card-img,
.hero-media-wrap > .media-card .media-card-video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.hero-split--inline {
  padding: 3.5rem 0 3rem;
}
@media (max-width: 991.98px) {
  .hero-split--inline {
    padding: 2.5rem 0 2rem;
  }
}

.lsv-toggle {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  opacity: 0.55;
  transition: opacity 200ms ease, background 200ms ease, transform 200ms ease;
  font-size: 0.75rem;
  padding: 0;
}

.lsv-toggle:hover,
.lsv-toggle:focus-visible {
  opacity: 1;
  background: rgba(0, 0, 0, 0.7);
  outline: none;
}

.lsv-toggle:active {
  transform: scale(0.94);
}

.lsv-chip {
  position: absolute;
  top: 0.75rem;
  right: 3.5rem;
  height: 2.25rem;
  padding: 0 0.85rem;
  border-radius: 1.125rem;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #fff;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  z-index: 10;
  opacity: 0.55;
  transition: opacity 200ms ease, background 200ms ease;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.lsv-chip-time {
  font-variant-numeric: tabular-nums;
  opacity: 0.85;
}

.lsv-chip-weather {
  display: inline-flex;
  align-items: center;
  font-size: 0.95rem;
  line-height: 1;
  opacity: 0.9;
}

.lsv-chip-weather[hidden] {
  display: none;
}

.lsv-chip-date::after {
  content: "";
  display: inline-block;
  width: 1px;
  height: 0.85rem;
  margin-left: 0.5rem;
  background: rgba(255, 255, 255, 0.25);
  vertical-align: middle;
}

.lsv-toggle:hover ~ .lsv-chip {
  opacity: 1;
}

@media (max-width: 991.98px) {
  .hero-split {
    padding: 4rem 0 3rem;
    overflow-x: clip;
  }
  .hero-split-grid,
  .hero-split--bleed > .hero-split-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 2.5rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .hero-split .hero-copy {
    text-align: center;
    max-width: 100%;
    min-width: 0;
    margin: 0 auto;
  }
  .hero-split .hero-copy .hero-title,
  .hero-split .hero-copy .hero-subtitle {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    overflow-wrap: anywhere;
  }
  .hero-split .hero-copy .hero-actions,
  .hero-rotator-cta {
    justify-content: center;
  }
  .hero-split--bleed .hero-stage {
    min-height: 22rem;
    width: 100%;
  }
  .hero-scene-wrap,
  .hero-media-wrap {
    min-height: 22rem;
    border-radius: 16px;
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.16);
  }
  .hero-rotator,
  .hero-rotator-stage,
  .hero-rotator-slide {
    max-width: 100%;
    min-width: 0;
  }
  .hero-rotator-pips {
    justify-content: center;
  }
}
.feature-row-title,
.proof-card-title,
.stat-card-value,
.insight-card-title,
.insights-show-title,
.review-card-name,
.contact-card-title {
  font-family: "Plus Jakarta Sans", "Quicksand", sans-serif;
}

.cta-banner {
  position: relative;
  margin: 4rem 0;
  padding: 5.5rem 1.5rem;
  overflow: hidden;
  isolation: isolate;
  color: #ffffff;
  font-family: "Quicksand", sans-serif;
}
@media (max-width: 768px) {
  .cta-banner {
    padding: 3.5rem 1.25rem;
    margin: 3rem 0;
  }
}

.cta-banner-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.cta-banner-bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.cta-banner-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(15, 15, 20, 0.85) 0%, rgba(15, 15, 20, 0.55) 60%, rgba(15, 15, 20, 0.75) 100%), radial-gradient(circle at 85% 0%, rgba(244, 116, 36, 0.18) 0%, transparent 50%);
}

.cta-banner-overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: var(--tx-grid-size, 42px) var(--tx-grid-size, 42px);
  -webkit-mask-image: radial-gradient(ellipse 90% 72% at 50% 38%, #000 20%, transparent 100%);
  mask-image: radial-gradient(ellipse 90% 72% at 50% 38%, #000 20%, transparent 100%);
}

.cta-banner-content {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
}

.cta-banner-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: #ffb066;
  margin-bottom: 0.85rem;
}

.cta-banner-title {
  font-family: "Plus Jakarta Sans", "Quicksand", sans-serif;
  font-size: clamp(1.85rem, 4vw, 2.85rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #ffffff;
  margin-bottom: 1rem;
  text-wrap: balance;
  max-width: 850px;
}
.cta-banner-title .gradient-text {
  background: linear-gradient(90deg, #f47424 0%, #ffb066 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.cta-banner-subtitle {
  font-size: 1.075rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.82);
  margin-bottom: 2rem;
  max-width: 720px;
}

.cta-banner-list {
  list-style: none;
  padding: 0;
  margin: 0 0 2.25rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 2.5rem;
  font-size: 1.025rem;
  line-height: 1.55;
  max-width: 900px;
}
.cta-banner-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  color: rgba(255, 255, 255, 0.92);
}
.cta-banner-list > li > i.fa-check-circle {
  color: #ffb066;
  margin-top: 0.32rem;
  font-size: 1rem;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .cta-banner-list {
    grid-template-columns: 1fr;
    gap: 0.55rem;
  }
}

.cta-banner-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #ffffff;
  text-decoration: none;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.32);
  padding-bottom: 1px;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.cta-banner-link:hover, .cta-banner-link:focus-visible {
  color: #ffb066;
  border-bottom-color: #ffb066;
  text-decoration: none;
  outline: none;
}
.cta-banner-link i {
  font-size: 0.78em;
  opacity: 0.85;
}

.cta-banner-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.cta-banner-content--split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 3rem;
  max-width: 1200px;
}
.cta-banner-content--split .cta-banner-list {
  grid-template-columns: 1fr;
  margin-bottom: 1.75rem;
}
@media (max-width: 900px) {
  .cta-banner-content--split {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }
}

.cta-banner-visual {
  min-width: 0;
}

.peak-chart {
  position: relative;
  width: 100%;
  padding: 1.5rem;
  border-radius: 18px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  box-shadow: var(--box-shadow);
}
.peak-chart svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}
.peak-chart .pc-axis {
  stroke: var(--border-colour);
  stroke-width: 1.5;
}
.peak-chart .pc-grid {
  stroke: var(--border-colour);
  stroke-width: 1;
  opacity: 0.4;
}
.peak-chart .pc-area {
  fill: rgba(128, 128, 128, 0.16);
  stroke: rgba(128, 128, 128, 0.55);
  stroke-width: 2;
  opacity: 0;
}
.peak-chart .pc-saved {
  fill: rgba(244, 116, 36, 0.28);
  stroke: none;
  opacity: 0;
}
.peak-chart .pc-line {
  fill: none;
  stroke: #f47424;
  stroke-width: 3;
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-dasharray: 1100;
  stroke-dashoffset: 1100;
}
.peak-chart .pc-cap {
  stroke: #f47424;
  stroke-width: 1.5;
  stroke-dasharray: 5 4;
}
.peak-chart .pc-peak {
  stroke: rgba(128, 128, 128, 0.7);
  stroke-width: 1.5;
  stroke-dasharray: 5 4;
}
.peak-chart .pc-measure {
  opacity: 0;
}
.peak-chart .pc-bracket {
  stroke: #f47424;
  stroke-width: 1.5;
  fill: none;
}
.peak-chart .pc-label {
  fill: var(--text-colour);
  font-size: 13px;
  font-weight: 600;
}
.peak-chart .pc-label--muted {
  fill: var(--text-colour);
  opacity: 0.6;
  font-size: 12px;
  font-weight: 500;
}
.peak-chart .pc-label--accent {
  fill: #f47424;
  font-size: 13px;
  font-weight: 700;
}
.peak-chart.in-view .pc-area {
  animation: pcFade 0.7s ease-out 0.1s forwards;
}
.peak-chart.in-view .pc-line {
  animation: pcDraw 1.5s ease-out 0.4s forwards;
}
.peak-chart.in-view .pc-saved {
  animation: pcFade 0.7s ease-out 1.5s forwards;
}
.peak-chart.in-view .pc-measure {
  animation: pcFade 0.7s ease-out 2s forwards;
}

.peak-chart--on-dark {
  background: rgba(255, 255, 255, 0.95);
  border-color: rgba(255, 255, 255, 0.5);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.32), 0 8px 18px rgba(0, 0, 0, 0.22);
}
.peak-chart--on-dark .pc-axis {
  stroke: rgba(0, 0, 0, 0.22);
}
.peak-chart--on-dark .pc-grid {
  stroke: rgba(0, 0, 0, 0.1);
  opacity: 1;
}
.peak-chart--on-dark .pc-area {
  fill: rgba(90, 90, 90, 0.15);
  stroke: rgba(90, 90, 90, 0.5);
}
.peak-chart--on-dark .pc-peak {
  stroke: rgba(0, 0, 0, 0.35);
}
.peak-chart--on-dark .pc-label {
  fill: #1a1a1a;
}
.peak-chart--on-dark .pc-label--muted {
  fill: #555555;
  opacity: 1;
}

@keyframes pcDraw {
  to {
    stroke-dashoffset: 0;
  }
}
@keyframes pcFade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.product-viewer-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 320px;
  padding: 1.75rem;
  border-radius: 18px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  box-shadow: var(--box-shadow);
}
.product-viewer-stage img {
  max-height: 340px;
  max-width: 100%;
  width: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.product-viewer-stage img.is-swapping {
  animation: pcFade 0.3s ease-out;
}

.product-viewer-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 0.9rem;
}

.product-viewer-thumb {
  flex: 1 1 0;
  min-width: 62px;
  max-width: 100px;
  padding: 0.4rem 0.4rem 0.3rem;
  border: 1px solid var(--border-colour);
  border-radius: 12px;
  background: var(--card-colour);
  cursor: pointer;
  transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.product-viewer-thumb img {
  width: 100%;
  height: auto;
  display: block;
}
.product-viewer-thumb span {
  display: block;
  margin-top: 0.3rem;
  text-align: center;
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-colour);
  opacity: 0.65;
}
.product-viewer-thumb:hover, .product-viewer-thumb:focus-visible {
  transform: translateY(-2px);
  border-color: #ffb066;
  outline: none;
}
.product-viewer-thumb.is-active {
  border-color: #f47424;
  box-shadow: 0 0 0 1px #f47424;
}
.product-viewer-thumb.is-active span {
  opacity: 1;
}

/* Scoped radio button styles - excludes utility cards, equipment cards, and GrapeJS editor */
input[type=radio]:not(.utility-radio):not(.equipment-radio) {
  display: none;
}

input[type=radio]:not(.utility-radio):not(.equipment-radio) + label:not(.utility-label):not(.equipment-label) {
  display: inline-flex;
  align-items: center;
  padding: 12px 24px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(8px);
  margin-right: 16px;
  margin-bottom: 16px;
  cursor: pointer;
  font-family: "Quicksand", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #2d3748;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02), 0 4px 8px rgba(0, 0, 0, 0.02);
  position: relative;
  overflow: hidden;
}

input[type=radio]:not(.utility-radio):not(.equipment-radio) + label:not(.utility-label):not(.equipment-label)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(244, 116, 36, 0.2), rgba(244, 116, 36, 0));
  opacity: 0;
  transition: opacity 0.4s ease;
}

input[type=radio]:not(.utility-radio):not(.equipment-radio) + label:not(.utility-label):not(.equipment-label):hover {
  transform: translateY(-2px);
  border-color: rgba(244, 116, 36, 0.4);
  box-shadow: 0 4px 12px rgba(244, 116, 36, 0.1), 0 8px 24px rgba(244, 116, 36, 0.1);
}

input[type=radio]:not(.utility-radio):not(.equipment-radio) + label:not(.utility-label):not(.equipment-label):hover::before {
  opacity: 1;
}

input[type=radio]:not(.utility-radio):not(.equipment-radio):checked + label:not(.utility-label):not(.equipment-label) {
  background: linear-gradient(135deg, #f47424, #ff935f);
  border-color: transparent;
  color: white;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(244, 116, 36, 0.2), 0 8px 24px rgba(244, 116, 36, 0.15);
  transform: translateY(-2px);
}

input[type=radio]:not(.utility-radio):not(.equipment-radio):checked + label:not(.utility-label):not(.equipment-label)::before {
  opacity: 0;
}

/* Neutralize pill label styling inside GrapeJS — let _grapesjs_editor.scss handle it */
.grapesjs-editor-wrapper input[type=radio] + label {
  display: block !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  margin: 0 !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
  box-shadow: none !important;
  transition: none !important;
  position: static !important;
  overflow: visible !important;
  transform: none !important;
}

.grapesjs-editor-wrapper input[type=radio] + label::before {
  content: none !important;
}

.grapesjs-editor-wrapper input[type=radio]:checked + label {
  background: transparent !important;
  border: none !important;
  color: inherit !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Tabbed Navigation Styles */
.tabs-container {
  overflow-x: auto;
  white-space: nowrap;
  padding-bottom: 5px;
  margin-bottom: 15px;
  gap: 8px;
}

/* Custom tab styling */
.custom-tab {
  display: inline-block;
  padding: 8px 16px;
  font-size: 17px;
  font-weight: 500;
  font-family: "Quicksand", sans-serif;
  text-decoration: none;
  cursor: pointer;
  margin-right: 4px;
  background-color: #db7230;
}

.custom-tab:hover {
  transform: scale(1.02);
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: #db7230;
}

.custom-tab.active {
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: #f47424;
}

/* Wrapper for tab navigation */
.tabs-nav {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 10px;
  flex-wrap: nowrap;
}

/* Tab content container */
.tabs-content {
  margin-top: 16px;
  transition: all 0.3s ease;
}

.tab-pane {
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.tab-pane.active {
  display: block;
  opacity: 1;
  animation: fadeIn 0.3s ease;
  width: 100%;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
:root {
  --sidebar-width: 5vw;
  /* Define variable for sidebar width */
  --toolbar-height: 50px;
}

#canvas-container {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  min-height: 100vh;
  height: 100vh;
  z-index: auto;
  overflow: hidden;
}

canvas {
  display: block;
  cursor: default;
  /* Default cursor */
}

canvas.drawing {
  cursor: crosshair;
  /* Cursor for drawing mode */
}

canvas.can-close {
  cursor: pointer;
  /* Cursor when can close polygon */
}

/* Custom pen cursor for drawing mode */
.pen-cursor {
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M19 9a2.828 2.828 0 1 1 4 4L10.5 24 7 25l1.5-5L19 9z" fill="white" stroke="black" stroke-width="1"/><line x1="17.5" y1="11.5" x2="20.5" y2="14.5" stroke="black" stroke-width="0.8"/><circle cx="4" cy="28" r="2.5" fill="white" stroke="%23333" stroke-width="1.2"/></svg>') 4 28, crosshair;
}

/* Custom Stringing cursor - electrical plug icon with pointer */
.stringing-cursor {
  cursor: url('data:image/svg+xml;utf8,            <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">            <rect x="10" y="2" width="12" height="8" rx="2" fill="white" stroke="%23333" stroke-width="1.2"/>            <line x1="14" y1="10" x2="14" y2="15" stroke="%23333" stroke-width="2" stroke-linecap="round"/>            <line x1="18" y1="10" x2="18" y2="15" stroke="%23333" stroke-width="2" stroke-linecap="round"/>            <line x1="16" y1="2" x2="16" y2="-1" stroke="%23333" stroke-width="1.5" stroke-linecap="round"/>            <circle cx="4" cy="28" r="2.5" fill="white" stroke="%23333" stroke-width="1.2"/>            </svg>') 4 28, crosshair;
}

/* Tree cursors — one per tree type */
.tree-conifer-cursor {
  cursor: url('data:image/svg+xml;utf8,            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">            <rect x="10.5" y="19" width="3" height="4" rx="0.5" fill="%238B6914" stroke="%23554010" stroke-width="0.5"/>            <path d="M12 1 L3 19 H21 Z" fill="%234caf50" fill-opacity="0.85" stroke="%232e7d32" stroke-width="1" stroke-linejoin="round"/>            </svg>') 12 12, crosshair;
}

.tree-deciduous-cursor {
  cursor: url('data:image/svg+xml;utf8,            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">            <rect x="10.5" y="17" width="3" height="5" rx="0.5" fill="%238B6914" stroke="%23554010" stroke-width="0.5"/>            <circle cx="12" cy="10" r="8" fill="%2366bb6a" fill-opacity="0.85" stroke="%232e7d32" stroke-width="1"/>            </svg>') 12 12, crosshair;
}

.tree-columnar-cursor {
  cursor: url('data:image/svg+xml;utf8,            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">            <rect x="10.5" y="20" width="3" height="3" rx="0.5" fill="%238B6914" stroke="%23554010" stroke-width="0.5"/>            <ellipse cx="12" cy="11" rx="5" ry="10" fill="%2343a047" fill-opacity="0.85" stroke="%232e7d32" stroke-width="1"/>            </svg>') 12 12, crosshair;
}

.tree-volume-cursor {
  cursor: url('data:image/svg+xml;utf8,            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">            <rect x="10.5" y="17" width="3" height="5" rx="0.5" fill="%238B6914" stroke="%23554010" stroke-width="0.5"/>            <circle cx="8" cy="12" r="5" fill="%235b8a4a" fill-opacity="0.85" stroke="%232e7d32" stroke-width="1"/>            <circle cx="16" cy="11" r="4.5" fill="%235b8a4a" fill-opacity="0.85" stroke="%232e7d32" stroke-width="1"/>            <circle cx="12" cy="7" r="5" fill="%235b8a4a" fill-opacity="0.85" stroke="%232e7d32" stroke-width="1"/>            </svg>') 12 12, crosshair;
}

/* Sculpt mode cursor - paintbrush with green bristles, tip is the hotspot */
.sculpt-cursor {
  cursor: url('data:image/svg+xml;utf8,            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">            <path d="M19.5 1.5 L22.5 4.5 L12 15 L9 12 Z" fill="%23a1887f" stroke="%235d4037" stroke-width="0.8" stroke-linejoin="round"/>            <path d="M9 12 L12 15 L9.5 17.5 L6.5 14.5 Z" fill="%23b0bec5" stroke="%23546e7a" stroke-width="0.8" stroke-linejoin="round"/>            <path d="M6.5 14.5 L9.5 17.5 C7.5 21 4.5 22.5 1.5 22.5 C2.5 19.5 3.5 17.5 6.5 14.5 Z" fill="%235b8a4a" stroke="%232e7d32" stroke-width="0.8" stroke-linejoin="round"/>            </svg>') 2 22, crosshair;
}

/* Custom Wall cursor - simple brick wall with pointer */
.wall-cursor {
  cursor: url('data:image/svg+xml;utf8,            <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">            <rect x="7" y="4" width="18" height="18" fill="white" stroke="%23333" stroke-width="1.2" rx="1"/>            <line x1="7" y1="10" x2="25" y2="10" stroke="%23333" stroke-width="1"/>            <line x1="7" y1="16" x2="25" y2="16" stroke="%23333" stroke-width="1"/>            <line x1="16" y1="4" x2="16" y2="10" stroke="%23333" stroke-width="1"/>            <line x1="11" y1="10" x2="11" y2="16" stroke="%23333" stroke-width="1"/>            <line x1="21" y1="10" x2="21" y2="16" stroke="%23333" stroke-width="1"/>            <line x1="16" y1="16" x2="16" y2="22" stroke="%23333" stroke-width="1"/>            <circle cx="4" cy="28" r="2.5" fill="white" stroke="%23333" stroke-width="1.2"/>            </svg>') 4 28, crosshair;
}

/* Custom annotation cursor for annotation mode */
.annotation-cursor {
  cursor: url('data:image/svg+xml;utf8,            <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"                 fill="white" stroke="black" stroke-width="1" stroke-linejoin="round">            \3c !-- Larger comment bubble -->            <path d="M28 20a3 3 0 0 1-3 3H10l-6 6V7a3 3 0 0 1 3-3h18a3 3 0 0 1 3 3z"/>            \3c !-- Larger circle inside bubble -->            <circle cx="16" cy="14" r="4" fill="none" stroke="black" stroke-width="1"/>            </svg>') 16 28, text;
}

/* Square annotation cursor - matches annotation cursor style */
.annotation-square-cursor {
  cursor: url('data:image/svg+xml;utf8,            <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"                 fill="white" stroke="black" stroke-width="1" stroke-linejoin="round">            \3c !-- Larger comment bubble -->            <path d="M28 20a3 3 0 0 1-3 3H10l-6 6V7a3 3 0 0 1 3-3h18a3 3 0 0 1 3 3z"/>            \3c !-- Larger square inside bubble -->            <rect x="12" y="10" width="8" height="8" fill="none" stroke="black" stroke-width="1"/>            </svg>') 16 28, text;
}

/* Triangle annotation cursor - matches annotation cursor style */
.annotation-triangle-cursor {
  cursor: url('data:image/svg+xml;utf8,            <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"                 fill="white" stroke="black" stroke-width="1" stroke-linejoin="round">            \3c !-- Larger comment bubble -->            <path d="M28 20a3 3 0 0 1-3 3H10l-6 6V7a3 3 0 0 1 3-3h18a3 3 0 0 1 3 3z"/>            \3c !-- Larger triangle inside bubble -->            <path d="M16 10 L12 18 L20 18 Z" fill="none" stroke="black" stroke-width="1"/>            </svg>') 16 28, text;
}

/* Custom Rectangle cursor - isometric flat box with pointer */
.rectangle-cursor {
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M18 15 L18 22 L26 18 L26 11 Z" fill="%23bbb" stroke="%23333" stroke-width="1"/><path d="M8 22 L18 22 L18 15 L8 15 Z" fill="white" stroke="%23333" stroke-width="1"/><path d="M8 15 L18 15 L26 11 L16 11 Z" fill="%23ddd" stroke="%23333" stroke-width="1"/><circle cx="4" cy="28" r="2.5" fill="white" stroke="%23333" stroke-width="1.2"/></svg>') 4 28, crosshair;
}

/* Custom dormer cursor - isometric gable dormer, right side angled up (on a slope) */
.dormer-cursor {
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M18 15 L18 22 L26 11 Z" fill="%23ccc" stroke="%23333" stroke-width="1"/><path d="M8 22 L18 22 L18 15 L13 10 L8 15 Z" fill="white" stroke="%23333" stroke-width="1"/><path d="M8 15 L13 10 L21 6 L16 11 Z" fill="%23ddd" stroke="%23333" stroke-width="1"/><path d="M18 15 L13 10 L21 6 L26 11 Z" fill="%23aaa" stroke="%23333" stroke-width="1"/><circle cx="4" cy="28" r="2.5" fill="white" stroke="%23333" stroke-width="1.2"/></svg>') 4 28, crosshair;
}

/* Custom Hip Dormer cursor - hip dormer, right side angled up (on a slope) */
.hipdormer-cursor {
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M16 15 L16 22 L26 11 Z" fill="%23ccc" stroke="%23333" stroke-width="1"/><path d="M8 22 L16 22 L16 15 L8 15 Z" fill="white" stroke="%23333" stroke-width="1"/><path d="M8 15 L16 15 L13 8 Z" fill="%23eee" stroke="%23333" stroke-width="1"/><path d="M16 15 L26 11 L20 5 L13 8 Z" fill="%23aaa" stroke="%23333" stroke-width="1"/><circle cx="4" cy="28" r="2.5" fill="white" stroke="%23333" stroke-width="1.2"/></svg>') 4 28, crosshair;
}

/* Custom A-Frame cursor - isometric A-frame with pointer */
.aframe-cursor {
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M18 22 L26 18 L21 4 L13 8 Z" fill="%23999" stroke="%23333" stroke-width="1"/><path d="M8 22 L18 22 L13 8 Z" fill="white" stroke="%23333" stroke-width="1"/><circle cx="4" cy="28" r="2.5" fill="white" stroke="%23333" stroke-width="1.2"/></svg>') 4 28, crosshair;
}

/* Custom Hip Roof cursor - isometric hip roof with pointer */
.hiproof-cursor {
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M18 15 L18 22 L26 18 L26 11 Z" fill="%23ccc" stroke="%23333" stroke-width="1"/><path d="M8 22 L18 22 L18 15 L8 15 Z" fill="white" stroke="%23333" stroke-width="1"/><path d="M8 15 L16 11 L22 5 L12 9 Z" fill="%23ddd" stroke="%23333" stroke-width="1"/><path d="M18 15 L26 11 L22 5 L12 9 Z" fill="%23aaa" stroke="%23333" stroke-width="1"/><path d="M8 15 L18 15 L12 9 Z" fill="%23eee" stroke="%23333" stroke-width="1"/><circle cx="4" cy="28" r="2.5" fill="white" stroke="%23333" stroke-width="1.2"/></svg>') 4 28, crosshair;
}

/* Custom Smart Draw cursor - pen with blue hot spot */
.smartroof-cursor {
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M19 9a2.828 2.828 0 1 1 4 4L10.5 24 7 25l1.5-5L19 9z" fill="white" stroke="black" stroke-width="1"/><line x1="17.5" y1="11.5" x2="20.5" y2="14.5" stroke="black" stroke-width="0.8"/><circle cx="4" cy="28" r="2.5" fill="%234A90D9" stroke="%23333" stroke-width="1.2"/></svg>') 4 28, crosshair;
}

#toolbar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: var(--toolbar-height);
  padding: 10px 14px;
  display: flex;
  gap: 10px;
  align-items: center;
  z-index: 1001;
  justify-content: space-between;
  background: var(--primary-colour);
}

.toolbar-left {
  display: flex;
  gap: 10px;
  align-items: center;
}

.toolbar-right {
  display: flex;
  gap: 10px;
  align-items: center;
}

.button {
  background: var(--primary-colour);
  border: 1px solid var(--border-colour);
  color: var(--nav-text);
  font-family: var(--font-type);
  padding: 6px 12px;
  font-size: 13px;
  min-width: auto;
  height: 34px;
  border-radius: var(--button-radius);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: background 0.2s, color 0.2s;
}

.button:hover {
  background: var(--button-hover);
  color: var(--button-hover-text);
}

.button.active {
  background: var(--button-hover);
  color: var(--button-hover-text);
  border-color: var(--button-hover);
}

/* Apply-to-all strip — built by the bundle, slides in under a dropdown
   after a change to offer applying it to all polygons. */
.apply-all-strip {
  display: none;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  padding: 5px 6px;
  background: var(--card-colour);
  border: 1px solid var(--button-hover);
  border-radius: var(--button-radius, 7px);
  font-size: 11px;
  color: var(--text-colour);
  animation: apply-all-slide-in 0.18s ease-out;
}

.apply-all-strip.visible {
  display: flex;
}

.apply-all-strip-btn {
  flex: 1;
  padding: 4px 8px;
  background: var(--button-hover);
  border: none;
  border-radius: calc(var(--button-radius, 7px) - 2px);
  color: var(--button-hover-text);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}

.apply-all-strip-btn:hover {
  filter: brightness(1.15);
}

.apply-all-strip-btn:disabled {
  opacity: 0.6;
  cursor: wait;
}

.apply-all-strip-msg {
  flex: 1;
  text-align: center;
}

.apply-all-strip-msg:empty {
  display: none;
}

.apply-all-strip-close {
  background: none;
  border: none;
  color: var(--text-colour);
  opacity: 0.6;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  padding: 0 3px;
}

.apply-all-strip-close:hover {
  opacity: 1;
}

@keyframes apply-all-slide-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Wall feature palette — cards are built by the bundle from its item
   registry; the host only provides the empty #wall-feature-palette div. */
.wall-feature-palette {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}

.wall-feature-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 6px 4px 5px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius, 7px);
  color: var(--text-colour);
  cursor: pointer;
}

.wall-feature-card:hover {
  border-color: var(--button-hover);
}

.wall-feature-card.active {
  border-color: var(--button-hover);
  box-shadow: 0 0 0 1px var(--button-hover);
}

.wall-feature-card-thumb {
  width: 100%;
  height: 44px;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 4px;
  background: var(--secondary-colour);
  pointer-events: none;
}

.wall-feature-card-label {
  font-size: 10px;
  line-height: 1.1;
  text-align: center;
  pointer-events: none;
}

.button i {
  font-size: 14px;
}

/* Design-tool offcanvases (the custom `.offcanvas.lightcard` panels —
   surface inspector, tree controls — that have no Bootstrap direction
   class). Scoped to #canvas-container so this fit-content/slide-in
   behaviour never leaks to app-wide offcanvases (inbox, mobile menu,
   product pickers, etc.), which stay full height via Bootstrap/MDB. */
#canvas-container .offcanvas {
  position: fixed;
  top: 0;
  padding: 10px;
  right: -400px;
  width: 400px;
  border-radius: 5px 0 0 5px;
  /* Fit content; scroll only if the panel genuinely outgrows the viewport.
     Never pin to full height — that leaves empty space below short content.
     MDB's base .offcanvas (loaded after application.css) sets bottom:0 at equal
     specificity, which would re-stretch the panel top→bottom and defeat
     height:auto, so release the bottom anchor with !important. */
  height: auto;
  bottom: auto !important;
  max-height: calc(100vh - 28px);
  color: var(--text-colour);
  background: var(--primary-colour);
  transition: right 0.3s ease;
  z-index: 999;
  box-shadow: -2px 0 5px var(--boxshadow);
  overflow-y: auto;
  overflow-x: hidden;
}

#canvas-container .offcanvas {
  top: var(--toolbar-height);
  bottom: auto;
  max-height: calc(100vh - var(--toolbar-height) - 14px);
  border-radius: 0;
}

#canvas-container .offcanvas.show {
  right: 0;
}

/* ── Polygon inspector — refined to match the Design Assistant ──────────
   A floating, rounded, themed card with a sticky header, an accent title
   icon and segmented mode tabs. Everything is scoped to #polygon-controls
   (and uses the same CSS custom properties as .da-* so it tracks the
   active theme), leaving the tree offcanvas as the standard side panel.
   Both selectors are listed so the card wins whether or not it is nested
   inside #canvas-container. The tree inspector gets the same shell. */
#canvas-container #polygon-controls,
#canvas-container #tree-controls,
#polygon-controls,
#tree-controls {
  top: 14px;
  /* Fit content instead of pinning top+bottom (which forced full height); cap
     to the viewport so it scrolls only when the content is genuinely tall.
     Release MDB's base bottom:0 so height:auto can shrink to content. */
  max-height: calc(100vh - 28px);
  right: -460px;
  width: 380px;
  height: auto;
  bottom: auto;
  padding: 0 0 14px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 14px;
  box-shadow: 0 16px 48px var(--boxshadow);
  opacity: 0;
  transition: right 0.32s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.32s ease;
}

#canvas-container #polygon-controls.show,
#canvas-container #tree-controls.show,
#polygon-controls.show,
#tree-controls.show {
  right: 14px;
  opacity: 1;
}

#polygon-controls::-webkit-scrollbar,
#tree-controls::-webkit-scrollbar {
  width: 9px;
}

#polygon-controls::-webkit-scrollbar-thumb,
#tree-controls::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--scrollbar-colour) 55%, transparent);
  border: 2px solid transparent;
  background-clip: padding-box;
  border-radius: 6px;
}

/* Sticky, themed header with an accent title icon */
#polygon-controls .offcanvas-header,
#tree-controls .offcanvas-header {
  position: sticky;
  top: 0;
  z-index: 5;
  margin: 0;
  padding: 12px 14px;
  background: var(--card-colour);
  border-bottom: 1px solid var(--border-colour);
  border-radius: 14px 14px 0 0;
}

#polygon-controls .offcanvas-title-group,
#tree-controls .offcanvas-title-group {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

#polygon-controls .offcanvas-title-group > i,
#tree-controls .offcanvas-title-group > i {
  color: var(--secondary-colour);
  font-size: 15px;
  flex: 0 0 auto;
}

#polygon-controls .offcanvas-title,
#tree-controls .offcanvas-title {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#polygon-controls .close-button,
#tree-controls .close-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  font-size: 1.1rem;
  line-height: 1;
  border-radius: var(--button-radius);
  opacity: 0.7;
  flex: 0 0 auto;
  transition: background 0.15s ease, opacity 0.15s ease;
}

#polygon-controls .close-button:hover,
#tree-controls .close-button:hover {
  background: color-mix(in srgb, var(--text-colour) 10%, transparent);
  opacity: 1;
}

/* Consistent gutters: pad the top-level sections, not the nested ones */
#polygon-controls > .section-content,
#polygon-controls > #edit-polygon-section,
#polygon-controls > #panel-mode-section,
#polygon-controls > #obstruction-mode-section,
#tree-controls > #tree-no-selection,
#tree-controls > #tree-selection-controls {
  padding-left: 14px;
  padding-right: 14px;
}

/* Tree instruction callout — soften the solid info block into a tinted
   surface so it reads as part of the refined card */
#tree-controls .tree-instruction-box {
  background: color-mix(in srgb, var(--notification-info) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--notification-info) 35%, transparent);
  color: var(--text-colour);
  margin-top: 12px;
}

#tree-controls .tree-instruction-box i {
  color: var(--secondary-colour);
}

#tree-controls > #tree-selection-controls {
  padding-top: 12px;
}

#polygon-controls .info-panel {
  margin: 12px 0;
}

#polygon-controls #polygon-dimensions .info-section {
  padding: 6px;
  border-radius: var(--button-radius);
  background: color-mix(in srgb, var(--text-colour) 5%, transparent);
  border: 1px solid var(--border-colour);
}

#polygon-controls .default-message {
  opacity: 0.6;
  text-align: center;
  padding: 6px 0;
}

.offcanvas-header {
  padding: 1rem;
  border-bottom: 1px solid var(--border-colour);
  display: flex;
  margin-bottom: 1rem;
  justify-content: space-between;
  align-items: center;
}

.offcanvas-body {
  padding: 1rem;
}

.control-group {
  margin-bottom: 1.5rem;
}

.control-group label {
  display: block;
  margin-bottom: 0.5rem;
}

.pitch-slider {
  max-width: 100px;
}

.pitch-fraction {
  display: flex;
  align-items: center;
  border-radius: var(--button-radius);
  border: solid 1px var(--border-colour);
  padding: 2px 4px;
  min-width: 100px;
}

.pitch-fraction input {
  width: 50px;
  border: none;
  text-align: left;
  background-color: transparent;
}

.pitch-fraction span {
  margin-left: 2px;
}

.close-button {
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
}

.delete-button {
  width: 80%;
  border-radius: 10px;
  color: var(--text-colour);
  margin-top: 2rem;
}

.delete-button:hover {
  color: #b91c1c;
}

#shadow-controls {
  position: absolute;
  bottom: 10px;
  left: 10px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  padding: 12px;
  border-radius: 12px;
  z-index: 900;
  color: var(--text-colour);
}

#shadow-info {
  color: var(--text-colour);
  background: var(--card-colour);
  padding: 10px;
  border-radius: 4px;
  margin-top: 10px;
  display: none;
}

.controls {
  position: absolute;
  top: 10px;
  left: 10px;
  /* Use the variable plus margin */
  display: flex;
  gap: 10px;
  z-index: 900;
}

.shadow-controls {
  position: absolute;
  bottom: 10px;
  display: flex;
  gap: 10px;
  z-index: 900;
}

/* Imagery Source Controls */
.imagery-source-controls {
  position: relative;
}

/* Imagery Selection Modal */
#imagery-selection-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  z-index: 10000;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(4px);
}

#imagery-selection-modal .modal-dialog {
  max-width: 700px;
  width: 90%;
  margin: 0;
}

#imagery-selection-modal .modal-content {
  max-height: 90vh;
  overflow-y: auto;
}

#imagery-selection-modal .form-select {
  background-color: var(--input-background);
  border-color: var(--input-border);
  color: var(--input-text);
}

#imagery-selection-modal .form-select:focus {
  border-color: var(--input-focus-border);
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--input-focus-border) 25%, transparent);
}

#imagery-selection-modal .form-select option {
  background-color: var(--primary-colour);
  color: var(--text-colour);
}

.imagery-pan-controls {
  background: var(--card-colour);
  border-radius: 8px;
}

#imagery-preview-container {
  border: 1px solid var(--border-colour);
}

#imagery-loading {
  color: var(--text-colour);
}

#imagery-empty-state {
  color: var(--text-colour);
}

.button-group {
  display: flex;
  gap: 0.5rem;
  margin: 1rem 0;
}

.button-group .button {
  flex: 1;
}

.info-panel {
  padding: 0.25rem;
  border-radius: 4px;
  margin: 0;
  font-size: 0.9rem;
}

.section-title {
  font-size: 1.2rem;
  color: var(--secondary-colour);
  margin: 1.5rem 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border-colour);
}

.section-content {
  padding: 0.1rem 0;
}

.action-buttons {
  margin-top: 5px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.action-buttons button {
  width: 100%;
}

.solar-panel-controls {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--border-colour);
}

.solar-panel-controls h3 {
  margin-top: 0;
  margin-bottom: 15px;
}

.solar-panel-buttons {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.solar-panel-buttons button {
  width: 100%;
}

.solar-panel-active {
  background-color: var(--secondary-colour);
  color: var(--tertiary-colour);
}

.solar-panel-active:hover {
  background-color: var(--button-hover);
  color: var(--button-hover-text);
}

.obstruction-active {
  background-color: var(--secondary-colour);
  color: var(--tertiary-colour);
}

.obstruction-active:hover {
  background-color: var(--button-hover);
  color: var(--button-hover-text);
}

.panel-config-grid {
  display: flex;
  gap: 10px;
}

.panel-config-item {
  flex: 1;
}

.panel-button {
  width: 100%;
}

.panel-delete {
  background: #dc2626;
}

.panel-delete:hover {
  background: #b91c1c;
}

/* New styles for polygon information */
.info-section {
  padding: 10px;
  border-radius: 4px;
}

.info-section h4 {
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 16px;
}

.info-section p {
  margin: 5px 0;
  font-size: 14px;
}

.dimensions-list {
  margin: 0;
  padding-left: 20px;
  font-size: 14px;
}

.dimensions-list li {
  margin-bottom: 5px;
}

/* Segmented mode/tab bar — Surface · Panels · Obstructions */
#polygon-controls .mode-toggle-buttons,
#tree-controls .mode-toggle-buttons {
  display: flex;
  gap: 4px;
  margin: 12px 0 8px;
  padding: 4px;
  background: color-mix(in srgb, var(--text-colour) 7%, transparent);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
}

#polygon-controls .mode-toggle-buttons .button,
#tree-controls .mode-toggle-buttons .button {
  flex: 1;
  justify-content: center;
  padding: 8px 6px;
}

#polygon-controls .mode-button,
#tree-controls .mode-button {
  gap: 6px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--button-radius);
  color: var(--text-colour);
  font-weight: 500;
  transition: background-color 0.15s, color 0.15s, box-shadow 0.15s;
}

#polygon-controls .mode-button:hover,
#tree-controls .mode-button:hover {
  background: color-mix(in srgb, var(--text-colour) 8%, transparent);
}

#polygon-controls .mode-button.active {
  background: var(--secondary-colour) !important;
  color: var(--tertiary-colour);
  font-weight: 600;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.18);
}

#edit-polygon-section .delete-button {
  margin-top: 5px;
  width: 100%;
}

/* Solar production info styles */
#solar-production-info h4 {
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 16px;
}

.losses-info {
  margin-top: 10px;
  padding: 10px;
  border: solid 1px var(--border-colour);
  border-radius: var(--button-radius);
  height: 125px;
  overflow-y: auto;
}

.loss-item {
  padding-left: 10px;
}

/* PV Watts Info Styles */
.pv-watts-info {
  position: absolute;
  top: 20%;
  left: 10px;
  font-family: var(--font-type);
  background: color-mix(in srgb, var(--card-colour) 85%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 14px;
  z-index: 990;
}

.pv-watts-info h4 {
  margin-top: 0;
  margin-bottom: 8px;
  color: var(--text-colour);
}

.electrical-readiness {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-size: 12px;
}

/* Results row showing only the active-mode chip (no panels yet) — drop the
   chip-row top margin so the lone badge isn't stranded. */
.da-results.mode-only .electrical-readiness {
  margin-top: 0;
}

.electrical-readiness-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  max-width: 100%;
  padding: 3px 7px;
  border: 1px solid var(--border-colour);
  border-radius: 999px;
  background: color-mix(in srgb, var(--card-colour) 72%, transparent);
  color: var(--text-colour);
  line-height: 1.25;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.electrical-readiness-chip:hover {
  filter: brightness(1.12);
}

.electrical-readiness-chip:focus-visible {
  outline: 2px solid var(--secondary-colour);
  outline-offset: 2px;
}

.electrical-readiness-chip span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.electrical-readiness-chip.ready {
  border-color: var(--notification-success);
  background: rgba(46, 204, 113, 0.14);
  color: var(--notification-success);
}

.electrical-readiness-chip.warn {
  border-color: var(--notification-warning);
  background: rgba(243, 156, 18, 0.14);
  color: var(--notification-warning);
}

.electrical-readiness-chip.empty {
  border-color: var(--border-colour);
  background: rgba(122, 130, 145, 0.12);
  color: var(--muted-text);
}

/* Ortho Context Menu Styles */
.ortho-context-menu {
  position: fixed;
  background-color: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 4px;
  box-shadow: 0 2px 10px var(--boxshadow);
  z-index: 1000;
  padding: 8px 0;
  min-width: 180px;
  font-family: Arial, sans-serif;
}

/* Two-column compact grid for action buttons */
.ortho-context-menu-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  padding: 4px 4px;
  border-bottom: 1px solid var(--border-colour);
}

.ortho-context-menu-grid .ortho-context-menu-item {
  padding: 6px 8px;
  font-size: 12px;
  border-radius: 3px;
}

.ortho-context-menu-header {
  padding: 4px 16px;
  font-weight: bold;
  border-bottom: 1px solid var(--border-colour);
  margin-bottom: 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  /* Prevent text selection during drag */
}

.ortho-context-menu-header.dragging {
  border-bottom-color: var(--secondary-colour);
}

.ortho-context-menu-close-button {
  background: none;
  border: none;
  font-size: 16px;
  cursor: pointer;
  color: var(--text-colour);
  padding: 2px 4px;
  border-radius: 2px;
  line-height: 1;
}

.ortho-context-menu-close-button:hover {
  background-color: var(--background-colour);
  color: var(--text-colour);
}

.ortho-context-menu-item {
  padding: 8px 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
}

.ortho-context-menu-item-hover {
  background-color: var(--background-colour);
}

.ortho-context-menu-icon {
  width: 16px;
  text-align: center;
}

/* Styles for the slider section in ortho context menu */
.ortho-context-menu-slider-section {
  padding: 8px 16px;
  margin-bottom: 8px;
}

.ortho-context-menu-slider-label {
  font-size: 14px;
  margin-bottom: 5px;
}

.ortho-context-menu-slider-container {
  padding: 0 2px;
}

.ortho-context-menu-slider {
  width: 100%;
  margin: 5px 0;
  -webkit-appearance: none;
  height: 6px;
  background: var(--border-colour);
  border-radius: 3px;
  outline: none;
}

.ortho-context-menu-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: var(--secondary-colour);
  cursor: pointer;
}

.ortho-context-menu-slider::-moz-range-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: var(--secondary-colour);
  cursor: pointer;
  border: none;
}

/* Ortho context menu pitch inputs */
.ortho-context-menu-pitch-inputs {
  display: flex;
  border-radius: 4px;
  align-items: center;
  gap: 5px;
  min-width: 140px;
  margin-top: 5px;
}

.ortho-context-menu-pitch-slider {
  flex: 1;
  min-width: 60px;
  -webkit-appearance: none;
  height: 4px;
  background: var(--border-colour);
  border-radius: 2px;
  outline: none;
}

.ortho-context-menu-pitch-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--secondary-colour);
  cursor: pointer;
}

.ortho-context-menu-pitch-slider::-moz-range-thumb {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--secondary-colour);
  cursor: pointer;
  border: none;
}

.ortho-context-menu-pitch-fraction {
  display: flex;
  align-items: center;
  border-radius: 3px;
  padding: 1px 3px;
  min-width: 80px;
}

.ortho-context-menu-pitch-fraction input {
  width: 50px;
  border: none;
  text-align: left;
  background-color: transparent;
  font-size: 12px;
}

.ortho-context-menu-pitch-fraction span {
  margin-left: 2px;
  font-size: 12px;
}

.ortho-context-menu-degrees-input {
  width: 42px;
  border: none;
  text-align: right;
  background-color: transparent;
  font-size: 12px;
}

.ortho-context-menu-input-group {
  display: flex;
  align-items: center;
  border-radius: 3px;
  border: solid 1px var(--border-colour);
  padding: 1px 3px;
  background-color: var(--card-colour);
}

.ortho-context-menu-input-group-text {
  font-size: 11px;
  color: var(--muted-text);
  margin-left: 1px;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.ortho-context-menu-sublabel {
  font-size: 11px;
  color: var(--text-colour);
  opacity: 0.6;
  margin-bottom: 8px;
}

.ortho-context-menu-stack-nav {
  margin-bottom: 8px;
  align-items: center;
  gap: 8px;
}

.ortho-context-menu-nav-btn {
  width: 28px;
  height: 28px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.ortho-context-menu-nav-btn i {
  font-size: 10px;
}

.ortho-context-menu-stack-label {
  font-size: 11px;
  color: var(--text-colour);
  opacity: 0.6;
  flex: 1;
  text-align: center;
}

/* Edge length menu — info chips, flat/surface entry, compact actions */
.edge-info-chips {
  display: flex;
  gap: 4px;
  margin-bottom: 8px;
}

.edge-info-chip {
  font-size: 10px;
  line-height: 1;
  padding: 3px 7px;
  border: 1px solid var(--border-colour);
  border-radius: 999px;
  color: var(--text-colour);
  white-space: nowrap;
}

.edge-slope-chip {
  font-weight: 600;
}

/* Flat/Surface entry selector — sides show their current value; the
   active side (switch position) is the frame the input edits. */
.edge-length-mode-row {
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.edge-mode-side {
  background: none;
  border: none;
  padding: 0;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-colour);
  opacity: 0.45;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.edge-mode-side .edge-mode-value {
  font-size: 12px;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
}

.edge-mode-side.active {
  opacity: 1;
}

.edge-length-input-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

/* Hide number spinners on the compact menu inputs */
.ortho-context-menu-degrees-input::-webkit-outer-spin-button,
.ortho-context-menu-degrees-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.ortho-context-menu-degrees-input {
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield;
}

.edge-action-row {
  display: flex;
  gap: 6px;
  margin-top: 10px;
}
.edge-action-row .button-13-outline {
  flex: 1;
  justify-content: center;
  padding: 4px 8px;
  font-size: 11px;
}

#edge-wall-toggle-btn.active {
  background: #e74c3c;
  border-color: #e74c3c;
  color: #fff;
}

.scene-notification {
  padding: 15px 25px;
  border-radius: 8px;
  font-family: var(--font-type);
}

.scene-notification-success {
  background-color: var(--card-colour);
  color: #28a745;
  border: 1px solid #28a745;
}

.scene-notification-error {
  background-color: var(--card-colour);
  color: #dc3545;
  border: 1px solid #dc3545;
}

/* Feedback toast — anchored to the Design Assistant (positioned in JS by
   UIHelper.showNotification) so messages appear where the user is looking.
   Styled to match the assistant; the type accent + icon carry severity. */
.design-tool-notification {
  position: fixed;
  left: 20px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  background: var(--card-colour);
  color: var(--text-colour);
  border: 1px solid var(--border-colour);
  border-left: 3px solid var(--notification-info);
  border-radius: var(--border-radius);
  z-index: 9999;
  transition: opacity 0.22s ease, transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
  opacity: 0;
  transform: translateY(6px) scale(0.98);
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.4;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  overflow: hidden; /* clip the countdown bar to the rounded corners */
  /* Hidden (opacity:0) toast must not intercept clicks — it stays mounted and
     fixed-positioned over the assistant. Interactivity is enabled only in the
     .visible state below. */
  pointer-events: none;
}

.design-tool-notification.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  animation: dtn-pulse 1.1s ease-out 1;
  pointer-events: auto; /* hover-to-pause + close button while shown */
}

.design-tool-notification .dtn-icon {
  font-size: 15px;
  flex-shrink: 0;
  color: var(--notification-info);
}

.design-tool-notification .dtn-msg {
  flex: 1;
  min-width: 0;
}

/* Dismiss button — sits to the right of the message */
.design-tool-notification .dtn-close {
  flex-shrink: 0;
  background: transparent;
  border: none;
  color: color-mix(in srgb, var(--text-colour) 60%, transparent);
  cursor: pointer;
  padding: 2px 4px;
  margin: -2px -6px -2px 0;
  font-size: 13px;
  line-height: 1;
  border-radius: 4px;
  transition: color 0.15s ease, background 0.15s ease;
}

.design-tool-notification .dtn-close:hover {
  color: var(--text-colour);
  background: rgba(255, 255, 255, 0.12);
}

/* Countdown bar — shrinks to empty over the toast's lifetime (JS-driven,
   pauses on hover). Accent colour tracks the severity type. */
.design-tool-notification .dtn-progress {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  width: 100%;
  background: var(--notification-info);
  opacity: 0.85;
}

/* Fallback docked position when the assistant isn't on screen */
.design-tool-notification.dtn-floating {
  left: auto;
  right: 20px;
  bottom: 20px;
  top: auto;
  width: auto;
  max-width: 320px;
}

/* A one-shot ring pulse to catch the eye on appearance */
@keyframes dtn-pulse {
  0% {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), 0 0 0 0 var(--dtn-glow, rgba(92, 158, 255, 0.5));
  }
  100% {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), 0 0 0 9px rgba(0, 0, 0, 0);
  }
}
/* Type accents — left stripe, icon colour, and pulse glow */
.notification-info {
  border-left-color: var(--notification-info);
  --dtn-glow: rgba(92, 158, 255, 0.5);
}
.notification-info .dtn-icon {
  color: var(--notification-info);
}
.notification-info .dtn-progress {
  background: var(--notification-info);
}

.notification-success {
  border-left-color: var(--notification-success);
  --dtn-glow: rgba(102, 187, 106, 0.5);
}
.notification-success .dtn-icon {
  color: var(--notification-success);
}
.notification-success .dtn-progress {
  background: var(--notification-success);
}

.notification-warning {
  border-left-color: var(--notification-warning);
  --dtn-glow: rgba(255, 167, 38, 0.55);
}
.notification-warning .dtn-icon {
  color: var(--notification-warning);
}
.notification-warning .dtn-progress {
  background: var(--notification-warning);
}

/* The design tool emits the 'error' type; powerlily's theme names this colour
   --notification-danger (matching its own .toast-notice--danger). */
.notification-error {
  border-left-color: var(--notification-danger);
  --dtn-glow: rgba(239, 83, 80, 0.55);
}
.notification-error .dtn-icon {
  color: var(--notification-danger);
}
.notification-error .dtn-progress {
  background: var(--notification-danger);
}

/* Global busy loader — same toast chrome, spinning icon, no countdown */
.design-tool-notification.notification-loading {
  border-left-color: var(--notification-info);
  --dtn-glow: rgba(92, 158, 255, 0.5);
}
.design-tool-notification.notification-loading .dtn-icon {
  color: var(--notification-info);
  animation: dtn-spin 0.9s linear infinite;
}

@keyframes dtn-spin {
  to {
    transform: rotate(360deg);
  }
}
/* Panel mode status styling */
.panel-mode-status {
  padding: 8px;
  margin-bottom: 10px;
  border-radius: 4px;
  font-weight: bold;
  text-align: center;
}

/* Toolbar variant of panel mode status */
#panel-mode-indicator {
  display: inline-flex;
  align-items: center;
  padding: 6px 6px;
  margin: 0 10px;
  border-radius: 4px;
  font-weight: bold;
  font-size: 0.9rem;
  gap: 6px;
  white-space: nowrap;
}

.panel-mode-active {
  background-color: #00e2c4;
  /* Green for panel mode */
  color: white;
}

.tree-mode-active {
  background-color: #2d8a4e;
  /* Green-tinted for tree mode */
  color: white;
}

.stringing-mode-active {
  background-color: #3498db;
  /* Blue for stringing mode */
  color: white;
  animation: stringing-pulse 1.5s ease-in-out infinite;
}

.panel-mode-inactive {
  background-color: #f8d7da;
  color: #721c24;
}

.obstruction-mode-active {
  background-color: #fd7e14;
  /* Orange for obstruction mode */
  color: white;
}

/* Stringing mode uses the shared panel-mode-indicator */
.stringing-mode-active {
  background-color: #3498db;
  /* Blue for stringing mode */
  color: white;
  animation: stringing-pulse 1.5s ease-in-out infinite;
}

/* Tab styles */
/* Refined underline tabs — compact text with an accent underline on the active
   one, sharing the DA's type scale instead of chunky filled buttons. */
.pv-watts-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 14px;
  margin-bottom: 12px;
  padding: 0 2px;
  border-bottom: 1px solid var(--border-colour);
}

.pv-watts-tab {
  padding: 6px 0;
  margin-bottom: -1px;
  font-size: 11px;
  font-weight: 500;
  color: var(--muted-text);
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.pv-watts-tab:hover {
  color: var(--text-colour);
}

.pv-watts-tab.active {
  color: var(--text-colour);
  border-bottom-color: var(--secondary-colour);
}

/* Stat cards grid */
.overview-stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-bottom: 8px;
}

.overview-stat-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 10px 11px;
  border-radius: var(--button-radius);
  background: color-mix(in srgb, var(--text-colour) 6%, transparent);
  border: 1px solid var(--border-colour);
}
.overview-stat-card .stat-label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  color: var(--muted-text);
}
.overview-stat-card .stat-label i {
  color: var(--secondary-colour);
  opacity: 0.85;
}
.overview-stat-card .stat-value-row {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.overview-stat-card .stat-value {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--text-colour);
}
.overview-stat-card .stat-unit {
  font-size: 11px;
  opacity: 0.6;
}

.overview-stat-card--wide {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 8px;
}
.overview-stat-card--wide .stat-value {
  font-size: 14px;
}

/* Offset gauge */
.offset-gauge {
  margin-bottom: 8px;
}

.offset-gauge-header {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 4px;
  font-size: 12px;
}

.offset-gauge-label {
  font-weight: 500;
  opacity: 0.7;
}

.offset-gauge-value {
  margin-left: auto;
  font-weight: 600;
}
.offset-gauge-value .stat-value {
  font-size: 1em;
}
.offset-gauge-value .stat-unit {
  font-size: 0.8em;
  opacity: 0.6;
}

.offset-bar-track {
  width: 100%;
  height: 6px;
  background: var(--card-colour);
  border-radius: 3px;
  overflow: hidden;
}

.offset-bar-fill {
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, #ef6461, #f5a623 40%, #4ecdc4 75%, #2ecc71);
  transition: width 0.4s ease;
}

.offset-empty {
  text-align: center;
  padding: 6px 8px;
  margin-bottom: 8px;
  background: var(--card-colour);
  border-radius: var(--button-radius);
  border: 1px dashed var(--border-colour);
}

.offset-empty-text {
  font-size: 11px;
  opacity: 0.5;
}

/* Array detail styling */
.array-detail {
  margin-bottom: 2px;
  font-size: 13px;
  color: var(--text-colour);
}

.array-detail span {
  font-weight: 500;
}

/* Array item styles */
.polygon-array-item {
  margin-bottom: 15px;
  padding: 10px;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s;
}

.polygon-array-item:hover {
  background: var(--card-colour);
  color: var(--text-colour);
}

.polygon-array-item h5 {
  margin-top: 0;
  margin-bottom: 5px;
  font-size: 14px;
}

.click-hint {
  font-size: 11px;
  color: var(--text-colour);
  opacity: 0.5;
  font-weight: normal;
}

/* Make the arrays list scrollable if there are many arrays */
#arrays-tab {
  max-height: 400px;
  overflow-y: auto;
}

#polygon-arrays-list {
  max-height: 350px;
  overflow-y: auto;
}

/* Bottom offcanvas — shared by the mobile menu (shared/_mobile_bottom_nav) */
.offcanvas-bottom {
  position: fixed;
  bottom: -300px;
  /* Start off-screen at the bottom */
  left: 0;
  width: 100%;
  height: 300px;
  /* Adjust height as needed */
  background: var(--primary-colour);
  color: var(--text-colour);
  transition: bottom 0.3s ease;
  z-index: 1000;
  overflow-y: hidden;
  overflow-x: hidden;
  padding: 0;
}

.offcanvas-bottom.show {
  bottom: 0;
}

/* Modal Styles */
.help-text {
  display: block;
  margin-top: 5px;
  font-size: 0.8rem;
  color: var(--text-colour);
}

/* Monthly inputs grid layout */
.monthly-inputs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 10px;
}

.month-input {
  display: flex;
  flex-direction: column;
}

.month-input label {
  margin-bottom: 5px;
  font-size: 0.9rem;
}

.month-input input {
  width: 100%;
  padding: 8px;
}

/* PV Watts modal — backdrop + centering (bundle opens via raw display:block, not Bootstrap's modal API) */
#pvwatts-settings-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  z-index: 10000;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(4px);
}

/* Cap modal height and scroll the body. Popovers live outside .modal-body
 * (siblings of it under .modal-content) so they stay pinned to the trigger
 * coords and don't scroll with the content underneath them. */
#pvwatts-settings-modal .modal-content {
  max-height: 90vh;
}

#pvwatts-settings-modal .modal-body {
  position: static;
  overflow-y: auto;
}

#pvwatts-settings-modal .pvwatts-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 12px;
  margin-top: 4px;
}

#pvwatts-settings-modal .pvwatts-icon-btn {
  flex: 0 0 38px;
  width: 38px;
  min-height: 38px;
  height: 38px;
  padding: 0;
}

#pvwatts-settings-modal .pvwatts-side-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

#pvwatts-settings-modal .pvwatts-toggle-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 8px 10px;
  border: 1px solid var(--border-colour);
  border-radius: var(--input-radius);
  background: color-mix(in srgb, var(--card-colour) 60%, transparent);
}

#pvwatts-settings-modal .pvwatts-toggle-row .compact-toggle {
  flex-shrink: 0;
}

#pvwatts-settings-modal .pvwatts-toggle-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1 1 auto;
  min-width: 0;
}

#pvwatts-settings-modal .pvwatts-toggle-text .help-text {
  margin-top: 0;
}

/* PV Watts modal — popovers (albedo presets, loss calculator) */
#pvwatts-settings-modal .pvwatts-popover {
  position: absolute;
  z-index: 9999;
  min-width: 255px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  box-shadow: 0 8px 24px var(--boxshadow);
  padding: 10px;
  color: var(--text-colour);
}

#pvwatts-settings-modal .preset-title {
  font-size: 13px;
  color: var(--text-colour);
  font-weight: bold;
  margin-bottom: 8px;
}

#pvwatts-settings-modal .preset-section {
  font-size: 11px;
  color: var(--text-colour);
  opacity: 0.7;
  text-transform: uppercase;
  margin: 10px 0 4px;
  border-top: 1px solid var(--border-colour);
  padding-top: 6px;
}

#pvwatts-settings-modal .preset-section:first-of-type {
  border-top: none;
  padding-top: 0;
}

#pvwatts-settings-modal .albedo-preset-option {
  display: block;
  width: 100%;
  text-align: left;
  padding: 6px 8px;
  margin: 2px 0;
  background: transparent;
  border: none;
  border-radius: 4px;
  color: var(--text-colour);
  cursor: pointer;
  font-size: 13px;
  transition: background-color 0.15s ease;
}

#pvwatts-settings-modal .albedo-preset-option:hover {
  background: var(--button-hover);
  color: var(--button-hover-text);
}

#pvwatts-settings-modal .loss-calc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

#pvwatts-settings-modal .loss-calc-grid label {
  font-size: 12px;
  color: var(--text-colour);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

#pvwatts-settings-modal .loss-calc-total {
  margin-top: 10px;
  font-size: 13px;
  color: var(--text-colour);
}

.tab-spacer {
  flex-grow: 1;
}

/* Map view container styles */
#map-view-container {
  position: absolute;
  top: 60px;
  right: 10px;
  width: 400px;
  height: 300px;
  background-color: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  z-index: 800;
  overflow: hidden;
  box-shadow: 0 4px 20px var(--boxshadow);
  display: none;
  transition: width 0.3s, height 0.3s;
}

#map-view-container.expanded {
  width: 600px;
  height: 450px;
}

#map-view-container .close-button {
  position: absolute;
  top: 5px;
  right: 5px;
  background-color: var(--secondary-colour);
  color: var(--tertiary-colour);
  border: 1px solid var(--border-colour);
  border-radius: 50%;
  width: 25px;
  height: 25px;
  font-size: 16px;
  cursor: pointer;
  z-index: 801;
  transition: background-color 0.2s;
}

#map-view-container .close-button:hover {
  background-color: var(--button-hover);
  color: var(--button-hover-text);
}

#map-view-container .map-view-button {
  position: absolute;
  z-index: 801;
  background-color: var(--secondary-colour);
  color: var(--tertiary-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  padding: 5px 10px;
  font-size: 12px;
  cursor: pointer;
  transition: background-color 0.2s;
}

#map-view-container .map-view-button:hover {
  background-color: var(--button-hover);
  color: var(--button-hover-text);
}

#toggle-view-button {
  top: 5px;
  left: 5px;
}

#google-map {
  width: 100%;
  height: 100%;
}

#street-view-panorama {
  width: 100%;
  height: 100%;
}

canvas.calibration-mode {
  cursor: crosshair !important;
  /* Cursor for calibration mode - with !important */
}

.mpp-display {
  color: var(--text-colour);
  background-color: var(--card-colour);
  border: 1px solid var(--border-colour);
  padding: 5px 10px;
  border-radius: var(--button-radius);
  margin-top: 10px;
  display: inline-block;
  font-size: 0.9em;
}

/* Styling for the MPP warning icon */
#mpp-warning-icon {
  animation: pulse 1.5s infinite;
  text-shadow: 0 0 5px rgba(255, 193, 7, 0.6);
}

@keyframes pulse {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
  100% {
    opacity: 1;
  }
}
/* Distance Label Styles */
.distance-label {
  font-family: "Quicksand", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 12px;
  font-weight: 500;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  z-index: 1000;
  position: absolute;
  transform: translate(-50%, -50%);
  transition: opacity 0.2s ease;
}

.distance-label-content {
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.81) 0%, rgba(20, 20, 20, 0.81) 100%);
  color: #ffffff;
  padding: 3px 6px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  border: 1px solid rgba(255, 255, 255, 0.25);
  box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4), 0 2px 7px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  position: relative;
  overflow: hidden;
  min-width: 30px;
  text-align: center;
  line-height: 1.2;
}

.distance-label-content::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  pointer-events: none;
}

.distance-text {
  position: relative;
  z-index: 1;
  display: inline-block;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
  letter-spacing: 0.3px;
}

.distance-label + svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 999;
}

.distance-label + svg path {
  stroke: rgba(255, 255, 255, 0.6);
  stroke-width: 2;
  fill: none;
  stroke-dasharray: 6, 4;
  stroke-linecap: round;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
  animation: dashMove 2s linear infinite;
}

@keyframes dashMove {
  to {
    stroke-dashoffset: -10;
  }
}
@media (max-width: 768px) {
  .distance-label {
    font-size: 10px;
  }
  .distance-label-content {
    padding: 2px 4px;
    font-size: 10px;
    min-width: 26px;
  }
}
.dimension-controls {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 10px;
  border-radius: 5px;
  margin-bottom: 10px;
  margin-top: 10px;
}

.color-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.color-option {
  display: flex;
  align-items: center;
  padding: 12px;
  border: 2px solid transparent;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.color-option:hover {
  border-color: var(--secondary-colour);
  background: var(--background-colour);
}

.color-option.selected {
  border-color: var(--secondary-colour);
  background: var(--primary-colour);
}

.color-preview {
  width: 30px;
  height: 30px;
  border-radius: 4px;
  margin-right: 12px;
  border: 1px solid var(--border-colour);
}

#panel-colors-modal .panel-colors-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  align-items: stretch;
}
#panel-colors-modal .panel-colors-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  margin: 0;
}
#panel-colors-modal .panel-colors-section__header {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}
#panel-colors-modal .panel-colors-section__icon {
  font-size: 1.6rem;
  color: var(--secondary-colour);
  flex-shrink: 0;
  line-height: 1;
}
#panel-colors-modal .panel-colors-section__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
#panel-colors-modal .panel-colors-section__title {
  margin: 0;
  font-weight: 600;
}
#panel-colors-modal .panel-colors-section__subtitle {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.3;
}
#panel-colors-modal .panel-colors-swatches {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
#panel-colors-modal .panel-colors-swatches .color-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  padding: 10px 8px;
  border: 2px solid var(--border-colour);
  border-radius: 8px;
  background: var(--card-colour);
  cursor: pointer;
  transition: border-color 0.15s ease, transform 0.15s ease;
  text-align: center;
}
#panel-colors-modal .panel-colors-swatches .color-option:hover {
  border-color: var(--secondary-colour) !important;
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
  transform: translateY(-1px);
}
#panel-colors-modal .panel-colors-swatches .color-option.selected {
  border-color: var(--secondary-colour) !important;
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
  box-shadow: 0 0 0 1px var(--secondary-colour) inset;
}
#panel-colors-modal .panel-colors-swatches .color-preview {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  margin: 0;
  border: 1px solid var(--border-colour);
}
#panel-colors-modal .panel-colors-swatches .color-option span {
  font-size: 0.9rem;
  line-height: 1.2;
}
@media (max-width: 768px) {
  #panel-colors-modal .panel-colors-grid {
    grid-template-columns: 1fr;
  }
}

/* Fun Loading Animation Styles */
.fun-loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.85);
  z-index: 3000;
  backdrop-filter: blur(20px);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.fun-loading-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 32px;
  border-radius: 20px;
  border: 1px solid var(--border-colour);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
  width: 90%;
  max-width: 500px;
  min-width: 350px;
  backdrop-filter: blur(20px);
}

.fun-loading-header {
  text-align: center;
  margin-bottom: 32px;
}

.fun-loading-icon {
  font-size: 40px;
  margin-bottom: 16px;
  animation: spin 3s linear infinite;
  display: inline-block;
}

.fun-loading-title {
  color: var(--text-colour);
  margin: 0;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.fun-loading-checklist {
  text-align: left;
  line-height: 1.6;
}

.fun-loading-step {
  padding: 4px 0;
  transition: all 0.4s ease;
}

.fun-loading-step-text {
  color: rgba(255, 255, 255, 0.6);
  font-size: 14px;
  font-weight: 400;
  transition: all 0.4s ease;
  line-height: 1.4;
}

.fun-loading-step.completed .fun-loading-step-text {
  color: #c53022;
  font-weight: 500;
  text-shadow: 0 0 8px rgba(34, 197, 94, 0.3);
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Annotation Context Menu Styles */
.annotation-context-menu {
  position: fixed;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 4px;
  box-shadow: 0 2px 10px var(--boxshadow);
  z-index: 10001;
  font-family: var(--font-type);
  min-width: 120px;
  display: none;
}

.annotation-context-menu-item {
  padding: 8px 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: background-color 0.2s;
}

.annotation-context-menu-item:hover {
  background-color: var(--background-colour);
}

.annotation-context-menu-item:not(:last-child) {
  border-bottom: 1px solid var(--border-colour);
}

.annotation-context-menu-item.delete {
  color: #dc3545;
}

.annotation-context-menu-item.delete:hover {
  background-color: #ffebee;
}

.annotation-toolbar-color {
  width: 32px;
  height: 32px;
  border: 1px solid var(--border-colour);
  border-radius: 4px;
  cursor: pointer;
  background: none;
  padding: 0;
}

.annotation-toolbar-color::-webkit-color-swatch-wrapper {
  padding: 0;
  border: none;
  border-radius: 3px;
}

.annotation-toolbar-color::-webkit-color-swatch {
  border: none;
  border-radius: 3px;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes loading-progress {
  0% {
    transform: translateX(-100%);
  }
  50% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(100%);
  }
}
/* Canvas/Image Top Indicator - Fixed position showing image orientation */
.compass-canvas-indicator {
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(100, 200, 255, 0.9);
  font-size: 16px;
  pointer-events: none;
  text-shadow: 0 0 3px rgba(0, 0, 0, 0.8), 0 1px 2px rgba(0, 0, 0, 0.5);
  display: none;
  z-index: 5;
}

#sld-canvas-container {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  flex-direction: column;
}

#sld-toolbar {
  padding: 6px 12px;
  background: var(--card-colour);
  display: flex;
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid var(--border-colour);
  flex-shrink: 0;
  flex-wrap: nowrap;
  color: var(--text-colour);
  z-index: 900;
}

#sld-toolbar .button:hover,
#sld-toolbar .button:focus {
  background: var(--button-hover);
  color: var(--button-hover-text);
}

#sld-toolbar .toolbar-group {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  border-left: 1px solid var(--border-colour);
}

#sld-toolbar .toolbar-group:first-child {
  border-left: none;
  padding-left: 0;
}

#sld-toolbar .toolbar-group:last-child {
  padding-right: 0;
}

#sld-props-sidebar .sp-pair input[type=checkbox],
#planset-props-sidebar .sp-pair input[type=checkbox] {
  width: 16px;
  height: 16px;
  accent-color: var(--secondary-colour);
  cursor: pointer;
  flex-shrink: 0;
}

#sld-props-sidebar .sp-pair input[type=range]:disabled,
#planset-props-sidebar .sp-pair input[type=range]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

div.mxPopupMenu {
  background: none;
  border: none;
  box-shadow: none;
  position: absolute;
  z-index: 10006;
  margin: 0;
  padding: 0;
}
div.mxPopupMenu table.mxPopupMenu {
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow);
  margin: 0;
  padding: 4px 0;
  min-width: 160px;
  border-spacing: 0;
  border-collapse: separate;
  overflow: hidden;
}
div.mxPopupMenu table.mxPopupMenu tbody tr,
div.mxPopupMenu table.mxPopupMenu tbody tr:nth-child(odd),
div.mxPopupMenu table.mxPopupMenu tbody tr:nth-child(even) {
  background: var(--card-colour) !important;
  box-shadow: none !important;
  transform: none !important;
}
div.mxPopupMenu table.mxPopupMenu tbody td {
  border: none !important;
  padding: 6px 12px;
  background: var(--card-colour);
}
div.mxPopupMenu table.mxPopupMenu td.mxPopupMenuIcon {
  display: none;
}
div.mxPopupMenu table.mxPopupMenu tr.mxPopupMenuItem td,
div.mxPopupMenu table.mxPopupMenu tr.mxPopupMenuItemHover td {
  color: var(--text-colour);
  font-size: 13px;
  white-space: nowrap;
  cursor: pointer;
}
div.mxPopupMenu table.mxPopupMenu tr.mxPopupMenuItem:hover,
div.mxPopupMenu table.mxPopupMenu tr.mxPopupMenuItemHover {
  background: var(--button-hover) !important;
}
div.mxPopupMenu table.mxPopupMenu tr.mxPopupMenuItem:hover td,
div.mxPopupMenu table.mxPopupMenu tr.mxPopupMenuItemHover td {
  background: var(--button-hover) !important;
  color: var(--button-hover-text) !important;
}
div.mxPopupMenu table.mxPopupMenu tr:not(.mxPopupMenuItem):not(.mxPopupMenuItemHover) td {
  padding: 0;
  line-height: 0;
  font-size: 0;
}
div.mxPopupMenu table.mxPopupMenu hr {
  border: none;
  border-top: 1px solid var(--border-colour);
  margin: 4px 8px;
  height: 0;
}

/* SLD Context icons on selected vertex */
#sld-context-icons {
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
}

.sld-ctx-icon {
  pointer-events: auto;
  position: absolute;
  width: 24px;
  height: 24px;
  background: var(--secondary-colour);
  color: #fff;
  border: 2px solid #fff;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  transition: transform 0.1s, background 0.1s;
  z-index: 50;
}
.sld-ctx-icon:hover {
  background: var(--button-hover);
  transform: scale(1.15);
}

/* Planset SLD page edit button */
.planset-sld-edit-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 10;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: bold;
  background: var(--secondary-colour);
  color: #fff;
  border: 1px solid var(--button-hover);
  border-radius: 14px;
  cursor: pointer;
}
.planset-sld-edit-btn:hover {
  background: var(--button-hover);
}

/* SLD shape picker popover (shown when clicking + buttons on selected vertex) */
#sld-shape-picker {
  position: absolute;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  box-shadow: 0 4px 16px var(--boxshadow);
  padding: 4px 0;
  min-width: 130px;
  z-index: 200;
}

.sld-picker-item {
  padding: 5px 12px;
  color: var(--text-colour);
  font-size: 12px;
  cursor: pointer;
  white-space: nowrap;
}

.sld-picker-item:hover {
  background: var(--secondary-colour);
  color: #fff;
}

.mxRubberband {
  border: 1px dashed var(--secondary-colour);
  background: rgba(74, 158, 255, 0.1);
  position: absolute;
}

/* SLD Minimap */
#sld-minimap {
  position: fixed;
  bottom: 30px;
  right: 230px;
  width: 160px;
  height: 110px;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  z-index: 100;
  overflow: hidden;
}

#sld-minimap svg {
  width: 100%;
  height: 100%;
}

/* SLD Status Bar */
#sld-status-bar {
  background: var(--card-colour);
  padding: 2px 12px;
  display: flex;
  gap: 16px;
  align-items: center;
  font-size: 11px;
  color: var(--text-colour);
  border-top: 1px solid var(--border-colour);
  flex-shrink: 0;
}

/* SLD Sidebar */
#sld-sidebar {
  width: 200px;
  min-width: 200px;
  background: var(--card-colour);
  border-right: 1px solid var(--border-colour);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: 100;
}

.sld-sidebar-body {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
}

.sld-sidebar-search {
  padding: 6px 8px;
  border-bottom: 1px solid var(--border-colour);
  flex-shrink: 0;
}

.sld-sidebar-search input {
  width: 100%;
  padding: 5px 8px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 4px;
  color: var(--text-colour);
  font-size: 11px;
  box-sizing: border-box;
}

.sld-sidebar-search input:focus {
  outline: none;
  border-color: var(--secondary-colour);
}

.sld-drag-item {
  padding: 8px 10px;
  margin-bottom: 4px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 4px;
  color: var(--text-colour);
  font-size: 12px;
  cursor: grab;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: background 0.15s, border-color 0.15s;
}

.sld-drag-item:hover {
  background: var(--button-hover);
  border-color: var(--secondary-colour);
  color: var(--button-hover-text);
}

.sld-shape-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.sld-shape-preview {
  flex-shrink: 0;
}

.sld-shape-cat {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: #666;
  padding: 10px 0 4px;
  border-bottom: 1px solid var(--border-colour);
  margin-bottom: 4px;
}

.sld-shape-group {
  margin-bottom: 4px;
}

.sld-sidebar-toggle-btn {
  width: 20px;
  min-width: 20px;
  background: var(--card-colour);
  border: none;
  border-right: 1px solid var(--border-colour);
  color: var(--muted-text);
  cursor: pointer;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sld-sidebar-toggle-btn:hover {
  color: var(--button-hover-text);
  background: var(--button-hover);
}

/* Right properties panel */
#sld-props-sidebar {
  width: 220px;
  min-width: 220px;
  background: var(--card-colour);
  border-left: 1px solid var(--border-colour);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.sld-props-header {
  padding: 8px 10px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: #888;
  border-bottom: 1px solid var(--border-colour);
  flex-shrink: 0;
}

#sld-props-sidebar .sld-panel {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
}

.sld-props-empty {
  color: #666;
  font-size: 12px;
  text-align: center;
  padding: 24px 8px;
}

#sld-props-sidebar .sp-row,
#planset-props-sidebar .sp-row {
  margin-bottom: 8px;
}
#sld-props-sidebar .sp-label,
#planset-props-sidebar .sp-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--muted-text);
  margin-bottom: 3px;
}
#sld-props-sidebar .sp-value,
#planset-props-sidebar .sp-value {
  display: flex;
  flex-direction: column;
}
#sld-props-sidebar .sp-input,
#planset-props-sidebar .sp-input {
  width: 100%;
  padding: 4px 6px;
  background: var(--input-background);
  border: 1px solid var(--input-border);
  border-radius: var(--input-radius);
  color: var(--input-text);
  font-size: 12px;
  box-sizing: border-box;
}
#sld-props-sidebar .sp-input:focus,
#planset-props-sidebar .sp-input:focus {
  outline: none;
  border-color: var(--input-focus-border);
}
#sld-props-sidebar .sp-pair,
#planset-props-sidebar .sp-pair {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
#sld-props-sidebar .sp-pair label,
#planset-props-sidebar .sp-pair label {
  font-size: 10px;
  color: var(--muted-text);
  width: 14px;
  flex-shrink: 0;
}
#sld-props-sidebar .sp-num,
#planset-props-sidebar .sp-num {
  width: 56px;
  padding: 3px 4px;
  background: var(--input-background);
  border: 1px solid var(--input-border);
  border-radius: var(--input-radius);
  color: var(--input-text);
  font-size: 11px;
}
#sld-props-sidebar .sp-num:focus,
#planset-props-sidebar .sp-num:focus {
  outline: none;
  border-color: var(--input-focus-border);
}
#sld-props-sidebar .sp-color,
#planset-props-sidebar .sp-color {
  width: 28px;
  height: 24px;
  border: 1px solid var(--input-border);
  border-radius: var(--input-radius);
  padding: 0;
  background: none;
  cursor: pointer;
  flex-shrink: 0;
}
#sld-props-sidebar .sp-select,
#planset-props-sidebar .sp-select {
  padding: 3px 4px;
  background: var(--input-background);
  border: 1px solid var(--input-border);
  border-radius: var(--input-radius);
  color: var(--input-text);
  font-size: 11px;
  cursor: pointer;
}
#sld-props-sidebar .sp-select:focus,
#planset-props-sidebar .sp-select:focus {
  outline: none;
  border-color: var(--input-focus-border);
}
#sld-props-sidebar .sp-wide,
#planset-props-sidebar .sp-wide {
  width: 100%;
}
#sld-props-sidebar .sp-range,
#planset-props-sidebar .sp-range {
  flex: 1 1 0;
  min-width: 0;
  height: 4px;
  accent-color: var(--secondary-colour);
}
#sld-props-sidebar .sp-range-val,
#planset-props-sidebar .sp-range-val {
  font-size: 10px;
  color: var(--muted-text);
  width: 32px;
  text-align: right;
  flex-shrink: 0;
}

/* Draw Tools Context Menu */
.draw-tools-context-menu {
  position: fixed;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.1) inset;
  z-index: 10001;
  font-family: var(--font-type);
  min-width: 180px;
  display: none;
  overflow: hidden;
}

.draw-tools-context-menu-header {
  padding: 10px 14px;
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--text-colour);
  border-bottom: 1px solid var(--border-colour);
  background: var(--primary-colour);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.draw-tools-context-menu-close {
  background: none;
  border: none;
  color: var(--text-colour);
  font-size: 16px;
  cursor: pointer;
  padding: 0 2px;
  line-height: 1;
}

.draw-tools-context-menu-close:hover {
  color: var(--muted-text);
}

.draw-tools-context-menu-item {
  padding: 10px 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text-colour);
  transition: all 0.15s ease;
  font-size: 14px;
}

.draw-tools-context-menu-item:hover {
  background: var(--button-hover);
  color: var(--button-hover-text);
}

.draw-tools-context-menu-item.active {
  background: var(--secondary-colour);
  color: var(--tertiary-colour);
  border-left: 3px solid var(--secondary-colour);
  padding-left: 11px;
}

.draw-tools-context-menu-item:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.draw-tools-context-menu-icon {
  width: 20px;
  text-align: center;
  font-size: 16px;
  opacity: 0.9;
}

.draw-tools-context-menu-label {
  flex: 1;
}

/* Planset editor toolbar (maxGraph-based WYSIWYG editor) */
#planset-editor-toolbar {
  padding: 6px 12px;
  background: var(--card-colour);
  display: flex;
  gap: 10px;
  align-items: center;
  flex-shrink: 0;
  flex-wrap: nowrap;
  z-index: 900;
  box-shadow: 0 2px 8px var(--boxshadow);
}

#planset-editor-toolbar .button {
  padding: 6px 12px;
  font-size: 13px;
  min-width: auto;
  height: 32px;
  display: flex;
  align-items: center;
  gap: 6px;
}

#planset-editor-toolbar .button i {
  font-size: 14px;
}

#planset-editor-toolbar .toolbar-group {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 8px;
  border-left: 1px solid var(--border-colour);
}

#planset-editor-toolbar .toolbar-group:first-child {
  border-left: none;
  padding-left: 0;
}

/* ─── Mode Switcher (shared between SLD and planset editor toolbars) ─── */
#planset-editor-toolbar .toolbar-group.mode-switcher,
#sld-toolbar .toolbar-group.mode-switcher {
  gap: 2px;
  margin-left: auto;
}

#planset-editor-toolbar .mode-switcher .button,
#sld-toolbar .mode-switcher .button {
  opacity: 0.75;
  font-weight: 500;
}

#planset-editor-toolbar .mode-switcher .button:hover,
#sld-toolbar .mode-switcher .button:hover {
  opacity: 1;
}

#planset-editor-toolbar .mode-switcher .button.active,
#sld-toolbar .mode-switcher .button.active {
  background: var(--secondary-colour);
  color: var(--secondary-text);
  opacity: 1;
  cursor: default;
  border-color: var(--secondary-colour);
}

#planset-editor-toolbar .mode-switcher .button.active:hover,
#sld-toolbar .mode-switcher .button.active:hover {
  background: var(--secondary-colour);
}

/* ─── Planset page sidebar (multi-page thumbnail navigation) ─── */
#planset-page-sidebar {
  width: 140px;
  flex-shrink: 0;
  background: var(--card-colour);
  border-right: 1px solid var(--border-colour);
  overflow-y: auto;
  padding: 12px 8px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.planset-page-thumb {
  cursor: pointer;
  border-radius: 4px;
  border: 2px solid transparent;
  padding: 4px;
  transition: border-color 0.15s, background 0.15s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.planset-page-thumb:hover {
  background: var(--button-hover);
  border-color: var(--border-colour);
}

.planset-page-thumb.active {
  border-color: var(--secondary-colour);
  background: rgba(var(--secondary-colour-rgb), 0.12);
}

.planset-page-thumb canvas {
  width: 100%;
  height: auto;
  border-radius: 2px;
  background: #fff;
  box-shadow: 0 1px 4px var(--boxshadow);
}

.planset-page-thumb-label {
  font-size: 10px;
  color: var(--muted-text);
  font-weight: 600;
  text-align: center;
}

.planset-page-thumb.active .planset-page-thumb-label {
  color: var(--secondary-colour);
}

/* Planset pages container */
#planset-pages-container {
  flex: 1;
  min-width: 0;
  position: relative;
  overflow: hidden;
}

.planset-page-canvas {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

/* Planset right sidebar — property editor + shapes palette */
#planset-props-sidebar {
  width: 220px;
  min-width: 220px;
  background: var(--card-colour);
  border-left: 1px solid var(--border-colour);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.planset-props-header {
  padding: 8px 10px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--muted-text);
  border-bottom: 1px solid var(--border-colour);
  flex-shrink: 0;
}

.planset-props-body {
  flex: 0 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 8px;
  min-height: 0;
}

.planset-props-empty {
  color: var(--muted-text);
  font-size: 12px;
  text-align: center;
  padding: 24px 8px;
}

.planset-shapes-palette {
  flex: 0 0 auto;
  max-height: 280px;
}

/* Shapes palette */
.planset-shapes-hint {
  color: var(--muted-text);
  font-size: 10px;
  line-height: 1.35;
  padding: 6px 10px 4px;
  font-style: italic;
}

.planset-shape-item {
  padding: 6px 8px;
  font-size: 11px;
  color: var(--text-colour);
  cursor: grab;
  border-radius: 3px;
  margin-bottom: 2px;
  border: 1px solid transparent;
  transition: background 0.1s, border-color 0.1s;
}

.planset-shape-item:hover {
  background: var(--button-hover);
  border-color: var(--border-colour);
}

.planset-shape-item:active {
  cursor: grabbing;
  background: rgba(var(--secondary-colour-rgb), 0.15);
  border-color: var(--secondary-colour);
}

/* ─── Plan Set Wizard Modal ─── */
#planset-wizard-modal .planset-wizard-modal-content {
  max-width: 760px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
}

#planset-wizard-modal .modal-body {
  overflow-y: auto;
}

#planset-wizard-modal .planset-tab-strip {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid var(--border-colour);
  margin-bottom: 14px;
  flex-wrap: wrap;
}

#planset-wizard-modal .planset-tab {
  background: transparent;
  border: 1px solid transparent;
  border-bottom: none;
  color: var(--muted-text);
  padding: 8px 14px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  border-radius: var(--button-radius) var(--button-radius) 0 0;
  margin-bottom: -1px;
}

#planset-wizard-modal .planset-tab:hover {
  color: var(--text-colour);
  background: var(--background-colour);
}

#planset-wizard-modal .planset-tab.active {
  color: var(--text-colour);
  background: var(--background-colour);
  border-color: var(--border-colour);
  border-bottom-color: var(--background-colour);
}

#planset-wizard-modal .planset-tab-panel {
  display: none;
}

#planset-wizard-modal .planset-tab-panel.active {
  display: block;
}

#planset-wizard-modal .planset-sheet-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  padding: 8px 6px;
  border-bottom: 1px solid var(--border-colour);
  cursor: pointer;
  font-size: 13px;
  white-space: nowrap;
}

#planset-wizard-modal .planset-sheet-row:last-child {
  border-bottom: none;
}

#planset-wizard-modal .planset-sheet-row.disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

#planset-wizard-modal .planset-sheet-row input[type=checkbox] {
  margin: 0;
  flex: 0 0 auto;
}

#planset-wizard-modal .planset-sheet-row .ps-code {
  flex: 0 0 48px;
  font-weight: bold;
}

#planset-wizard-modal .planset-sheet-row .ps-title {
  flex: 1 1 auto;
}

#planset-wizard-modal .planset-sheet-row .ps-note {
  flex: 0 0 auto;
  color: var(--muted-text);
  font-style: italic;
  font-size: 11px;
}

#planset-wizard-modal .planset-rev-header {
  display: grid;
  grid-template-columns: 50px 110px 1fr 32px;
  gap: 8px;
  padding: 0 0 4px 0;
  font-size: 11px;
  font-weight: bold;
  color: var(--muted-text);
  text-transform: uppercase;
}

#planset-wizard-modal .planset-rev-row {
  display: grid;
  grid-template-columns: 50px 110px 1fr 32px;
  gap: 8px;
  align-items: center;
  padding: 4px 0;
}

#planset-wizard-modal .planset-rev-row input {
  width: 100%;
  background: var(--input-background);
  border: 1px solid var(--input-border);
  border-radius: var(--input-radius);
  color: var(--input-text);
  padding: 4px 6px;
  font-size: 12px;
}

#planset-wizard-modal .planset-rev-row .planset-rev-remove {
  background: transparent;
  border: 1px solid var(--border-colour);
  color: var(--muted-text);
  border-radius: var(--button-radius);
  padding: 2px 6px;
  cursor: pointer;
}

#planset-wizard-modal .planset-rev-row .planset-rev-remove:hover {
  color: var(--notification-danger);
  border-color: var(--notification-danger);
}

/* Flyout panels — anchored to the right of the Design Assistant by
   UIHelper.toggleBottomBarPanel(); the top/left here are JS-overridden
   fallbacks (used if scripting hasn't positioned the panel yet). */
.bottom-bar-panel {
  position: fixed;
  top: 20px;
  left: 298px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 12px;
  padding: 16px 20px;
  z-index: 1000;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
  display: none;
  /* Fixed width: content (e.g. weather text) must never resize the
     pane — a width change mid-drag makes slider thumbs jump. */
  width: 420px;
  max-width: calc(100vw - 24px);
  max-height: calc(100vh - 24px);
  overflow-y: auto;
}

.bottom-bar-panel.show {
  display: block;
}

.bottom-bar-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border-colour);
}

.bottom-bar-panel-title {
  color: var(--text-colour);
  font-size: 13px;
  font-weight: 600;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.bottom-bar-panel-title i {
  color: var(--secondary-colour);
}

.bottom-bar-panel-close {
  background: transparent;
  border: none;
  color: var(--text-colour);
  cursor: pointer;
  font-size: 18px;
  padding: 0;
  line-height: 1;
  transition: color 0.2s ease;
}

.bottom-bar-panel-close:hover {
  color: var(--text-colour);
}

.bottom-bar-slider-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.bottom-bar-slider-row:last-child {
  margin-bottom: 0;
}

.bottom-bar-slider-label {
  color: var(--text-colour);
  font-size: 12px;
  min-width: 80px;
}

/* Fixed label width in the shadow pane so the slider track never
   resizes (thumb jumping mid-drag) as "Season: Summer (Jun 21)"
   changes length; also keeps both sliders the same length. */
#shadow-panel .bottom-bar-slider-label {
  width: 150px;
  flex: none;
}

.bottom-bar-slider-label span {
  color: var(--text-colour);
  font-weight: 500;
}

.bottom-bar-slider {
  flex: 1;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  height: 4px;
  background: var(--border-colour);
  border-radius: var(--button-radius);
  outline: none;
}

.bottom-bar-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  background: var(--secondary-colour);
  border-radius: 50%;
  cursor: pointer;
}

.bottom-bar-slider::-moz-range-thumb {
  width: 14px;
  height: 14px;
  background: var(--secondary-colour);
  border-radius: 50%;
  cursor: pointer;
  border: none;
}

.bottom-bar-play-btn {
  background: var(--primary-colour);
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  border-radius: var(--button-radius);
  padding: 4px 8px;
  cursor: pointer;
  font-size: 12px;
  transition: background 0.15s ease;
}

.bottom-bar-play-btn:hover {
  background: var(--button-hover);
  border-color: var(--secondary-colour);
}

/* Section card & title for lidar panel */
.bottom-bar-section-title {
  color: var(--text-colour);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 12px 0 6px;
}

.bottom-bar-section-card {
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  padding: 10px;
}

.bottom-bar-controls-row {
  display: flex;
  align-items: center;
  gap: 6px;
}
.bottom-bar-controls-row > button {
  min-width: 28px;
  flex-shrink: 0;
}
.bottom-bar-controls-row > select,
.bottom-bar-controls-row > div {
  flex: 1;
  min-width: 0;
}

/* form-control overrides inside bottom-bar panels */
.bottom-bar-panel .form-control {
  background: var(--card-colour);
  border-color: var(--border-colour);
  color: var(--text-colour);
  font-size: 11px;
}
.bottom-bar-panel .form-control:focus {
  border-color: var(--secondary-colour);
  box-shadow: 0 0 0 2px rgba(var(--secondary-colour-rgb), 0.15);
}
.bottom-bar-panel .form-control option {
  background: var(--card-colour);
  color: var(--text-colour);
}

/* D-pad layout for lidar position */
.bottom-bar-dpad {
  display: flex;
  align-items: center;
  gap: 6px;
  justify-content: center;
}

.bottom-bar-dpad-vertical {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bottom-bar-divider-vertical {
  width: 1px;
  height: 24px;
  background: var(--border-colour);
  margin: 0 4px;
}

.bottom-bar-offset-display {
  color: var(--text-colour);
  font-size: 11px;
  text-align: center;
  margin-top: 6px;
}

/* North Rotation Control Styles - inside the North flyout panel */
.north-offset-section {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid var(--border-colour);
}

.north-offset-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  cursor: pointer;
  padding: 5px;
  border-radius: var(--button-radius);
  transition: background-color 0.2s ease;
}

.north-offset-header:hover {
  background-color: var(--button-hover);
}

.north-offset-title {
  color: var(--text-colour);
  font-size: 12px;
  font-weight: 600;
  font-family: Arial, sans-serif;
  margin: 0;
}

.north-offset-toggle-icon {
  color: var(--text-colour);
  font-size: 12px;
  transition: transform 0.3s ease;
}

.north-offset-toggle-icon.expanded {
  transform: rotate(180deg);
}

.north-offset-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}

/* Bottom bar panel north controls row */
.north-controls-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.north-btn {
  background: var(--primary-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  cursor: pointer;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 600;
  transition: all 0.2s ease;
}

.north-btn:hover {
  background: var(--button-hover);
  border-color: var(--secondary-colour);
  color: var(--button-hover-text);
}

.north-btn:active {
  transform: scale(0.95);
}

.north-value {
  color: var(--secondary-colour);
  font-size: 14px;
  font-weight: 700;
  font-family: "Courier New", monospace;
  text-align: center;
  min-width: 50px;
  padding: 6px 8px;
  background: rgba(var(--secondary-colour-rgb), 0.15);
  border-radius: var(--button-radius);
  border: 1px solid var(--secondary-colour);
}

.north-rotation-btn {
  background: var(--secondary-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--tertiary-colour);
  cursor: pointer;
  padding: 6px 10px;
  font-size: 14px;
  font-weight: bold;
  transition: all 0.2s ease;
}

.north-rotation-btn-small {
  padding: 6px 8px;
  font-size: 13px;
}

.north-rotation-btn-large {
  padding: 6px 12px;
  font-size: 15px;
}

.north-rotation-btn:hover {
  background: var(--button-hover);
  color: var(--button-hover-text);
  transform: scale(1.05);
}

.north-rotation-btn:active {
  transform: scale(0.95);
}

.north-rotation-value {
  color: var(--text-colour);
  font-size: 12px;
  font-weight: 600;
  font-family: "Courier New", monospace;
  text-align: center;
  min-width: 40px;
}

.north-rotation-reset {
  background: transparent;
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  cursor: pointer;
  padding: 4px 8px;
  font-size: 11px;
  transition: all 0.2s ease;
}

.north-rotation-reset:hover {
  background: rgba(255, 77, 77, 0.2);
  border-color: rgba(255, 77, 77, 0.6);
  color: #ff6b6b;
}

/* Stringing UI Overlay Panel Styles */
.stringing-overlay {
  position: fixed;
  top: 80px;
  right: 20px;
  z-index: 10000;
  display: none;
}

.stringing-panel {
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--border-radius);
  padding: 10px 12px;
  min-width: 300px;
  max-width: 340px;
  max-height: 80vh;
  overflow-y: auto;
  color: var(--text-colour);
  box-shadow: 0 4px 20px var(--boxshadow);
}

.stringing-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--border-colour);
  padding-bottom: 6px;
}

.stringing-header h5 {
  margin: 0;
  color: var(--text-colour);
}

.stringing-section {
  margin-bottom: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border-colour);
}

.stringing-header-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.stringing-header-btn {
  background: none;
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--muted-text);
  padding: 3px 6px;
  font-size: 11px;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}

.stringing-header-btn:hover {
  color: var(--text-colour);
  border-color: var(--nav-text-hover);
}

.inverter-mode-tabs {
  display: flex;
  margin: -10px -12px 10px -12px;
  border-bottom: 1px solid var(--border-colour);
}

.inverter-mode-tab {
  flex: 1;
  padding: 12px 0;
  text-align: center;
  font-size: 11px;
  color: var(--muted-text);
  cursor: pointer;
  border: none;
  background: transparent;
  border-bottom: 2px solid transparent;
  transition: color 0.15s, border-color 0.15s;
}

.inverter-mode-tab:hover {
  color: var(--text-colour);
}

.inverter-mode-tab.active {
  color: var(--secondary-colour);
  border-bottom-color: var(--secondary-colour);
  cursor: default;
}

.inverter-mode-tab:first-child {
  border-radius: 8px 0 0 0;
}

.inverter-mode-tab:last-child {
  border-radius: 0 8px 0 0;
}

.stringing-selectors {
  margin-bottom: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border-colour);
}

.stringing-chip-group {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.stringing-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 3px;
  flex: 1;
}

.stringing-chip-row:empty {
  display: none;
}

.stringing-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 14px;
  font-size: 11px;
  cursor: pointer;
  border: 1.5px solid var(--border-colour);
  background: var(--card-colour);
  color: var(--muted-text);
  transition: border-color 0.15s, background 0.15s;
  white-space: nowrap;
}

.stringing-chip:hover {
  border-color: var(--nav-text-hover);
  background: var(--card-colour);
}

.stringing-chip.active {
  border-color: var(--secondary-colour);
  background: var(--primary-colour);
  color: var(--text-colour);
}

.stringing-chip .chip-count {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 0 5px;
  font-size: 10px;
  color: var(--muted-text);
}

.stringing-chip.active .chip-count {
  background: rgba(255, 255, 255, 0.15);
  color: var(--text-colour);
}

.stringing-chip .chip-color {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.stringing-chip-delete {
  background: none;
  border: 1px solid var(--border-colour);
  border-radius: 14px;
  color: var(--muted-text);
  padding: 4px 7px;
  font-size: 11px;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
  flex-shrink: 0;
  margin-top: 1px;
}

.stringing-chip-delete:hover {
  color: var(--notification-danger);
  border-color: var(--notification-danger);
}

.stringing-chip-add {
  border-style: dashed;
  color: var(--muted-text);
  padding: 4px 8px;
  font-size: 10px;
}

.stringing-chip-add:hover {
  border-color: var(--secondary-colour);
  color: var(--secondary-colour);
  background: rgba(var(--secondary-colour), 0.1);
}

.branching-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  margin: 2px;
  border-radius: 4px;
  font-size: 11px;
  cursor: pointer;
  border: 2px solid var(--border-colour);
  background: transparent;
  color: var(--muted-text);
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.branching-chip:hover {
  border-color: var(--nav-text-hover);
  background: rgba(255, 255, 255, 0.05);
}

.branching-chip.active {
  border-color: var(--chip-color, var(--secondary-colour));
  background: rgba(255, 255, 255, 0.1);
  color: var(--secondary-text);
}

.branching-chip.overloaded {
  color: var(--notification-danger);
  border-color: var(--notification-danger);
  background: rgba(231, 76, 60, 0.12);
}

.branching-chip-delete {
  padding: 2px 4px;
  margin-left: -4px;
  font-size: 10px;
  cursor: pointer;
  background: transparent;
  border: none;
  color: var(--notification-danger);
  opacity: 0.7;
}

.branching-chip-delete:hover {
  opacity: 1;
}

/* Stringing inverter panes — positioned beside panel clusters in ortho */
.stringing-inv-pane {
  position: absolute;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  padding: 6px 0;
  min-width: 130px;
  pointer-events: auto;
  font-size: 11px;
  color: var(--muted-text);
  backdrop-filter: blur(var(--blur-radius));
  box-shadow: 0 2px 8px var(--boxshadow);
}

.sip-header {
  display: flex;
  align-items: stretch;
  padding: 0;
  font-weight: 600;
  color: var(--text-colour);
  font-size: 11px;
  border-bottom: 1px solid var(--border-colour);
  margin-bottom: 2px;
  cursor: move;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.sip-header.dragging {
  background: rgba(var(--secondary-colour), 0.15);
  border-bottom-color: var(--secondary-colour);
}

.sip-header-meta {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4px 6px;
  min-width: 0;
}

.sip-header-counter {
  font-size: 9px;
  color: var(--muted-text);
  font-weight: 500;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}

.sip-header-text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  max-width: 160px;
}

.sip-nav {
  background: transparent;
  border: none;
  color: var(--muted-text);
  font-size: 18px;
  line-height: 1;
  padding: 0 10px;
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}

.sip-nav:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.08);
  color: var(--text-colour);
}

.sip-nav:disabled {
  color: var(--border-colour);
  cursor: default;
}

.sip-mppt {
  padding: 3px 10px 1px;
  font-size: 10px;
  color: var(--muted-text);
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.sip-string {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  cursor: pointer;
  transition: background 0.12s;
}

.sip-string:hover {
  background: rgba(255, 255, 255, 0.06);
}

.sip-string.active {
  background: rgba(var(--secondary-colour), 0.18);
}

.sip-color {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.sip-name {
  flex: 1;
}

.sip-count {
  font-size: 10px;
  color: var(--muted-text);
}

.sip-string.active .sip-count {
  color: var(--text-colour);
}

/* Stringing progress bar */
.stringing-progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2px;
  font-size: 11px;
}

.stringing-progress-label {
  color: var(--muted-text);
}

.stringing-progress-track {
  background: rgba(255, 255, 255, 0.1);
  border-radius: var(--button-radius);
  height: 4px;
  overflow: hidden;
}

.stringing-progress-fill {
  height: 100%;
  border-radius: var(--button-radius);
  transition: width 0.3s ease;
}

.stringing-progress-counts {
  display: flex;
  justify-content: space-between;
  margin-top: 2px;
  margin-bottom: 2px;
  font-size: 10px;
  color: var(--muted-text);
}

/* Auto-string section */
.stringing-auto-summary {
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  color: var(--muted-text);
  padding: 2px 0;
}

.stringing-auto-body {
  padding: 4px 0 2px;
}

.stringing-auto-note {
  font-size: 11px;
  color: var(--notification-warning);
  margin-bottom: 4px;
  display: none;
}

.stringing-auto-controls {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}

.stringing-auto-label {
  font-size: 11px;
  color: var(--muted-text);
  white-space: nowrap;
}

.stringing-auto-toggle {
  font-size: 11px;
  color: var(--muted-text);
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
  cursor: pointer;
}

.stringing-auto-btn {
  width: 100%;
  font-size: 11px;
  padding: 5px;
}

.stringing-auto-capacity {
  font-size: 10px;
  color: var(--muted-text);
  margin-top: 3px;
  text-align: center;
}

.stringing-done-btn {
  width: 100%;
}

.stringing-selector-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.stringing-selector-row label {
  min-width: 60px;
  font-size: 12px;
  color: var(--text-colour);
}

.stringing-selector-row select {
  flex: 1;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  padding: 5px 8px;
  font-size: 12px;
}

.stringing-selector-row select:hover {
  border-color: var(--secondary-colour);
}

.stringing-info {
  margin-bottom: 6px;
  background: var(--card-colour);
  border-radius: var(--button-radius);
  padding: 6px 10px;
}

.stringing-info-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 2px;
}

.stringing-info-row:last-child {
  margin-bottom: 0;
}

.stringing-ratio {
  border-top: 1px solid var(--border-colour);
  padding-top: 4px;
  margin-top: 4px;
  font-weight: bold;
}

.stringing-ratio span:last-child {
  color: var(--notification-success);
  font-size: 16px;
}

.stringing-instructions {
  background: rgba(var(--secondary-colour-rgb), 0.1);
  border: 1px solid var(--secondary-colour);
  border-radius: var(--button-radius);
  padding: 10px;
  margin-bottom: 15px;
  font-size: 12px;
}

.stringing-instructions p {
  margin: 5px 0;
}

.stringing-instructions kbd {
  background: var(--card-colour);
  color: var(--text-colour);
  border: 1px solid var(--border-colour);
  border-radius: 3px;
  padding: 2px 6px;
  font-family: monospace;
}

.stringing-actions {
  display: flex;
  gap: 10px;
}

.stringing-actions button {
  flex: 1;
}

.stringing-warnings {
  margin-top: 6px;
  padding: 6px;
  background: var(--card-colour);
  border-radius: var(--button-radius);
  font-size: 11px;
}

.stringing-warnings-header {
  font-weight: bold;
  color: var(--notification-warning);
  margin-bottom: 6px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--border-colour);
}

.stringing-warning-item {
  display: flex;
  flex-direction: column;
  padding: 4px 6px;
  margin: 4px 0;
  border-radius: 3px;
  gap: 2px;
}

.stringing-warning-danger {
  background: rgba(231, 76, 60, 0.2);
  border-left: 3px solid var(--notification-danger);
}

.stringing-warning-warning {
  background: rgba(243, 156, 18, 0.2);
  border-left: 3px solid var(--notification-warning);
}

.stringing-warning-info {
  background: rgba(var(--secondary-colour-rgb), 0.2);
  border-left: 3px solid var(--secondary-colour);
}

.stringing-warning-level {
  font-weight: bold;
  color: var(--text-colour);
  font-size: 10px;
}

.stringing-warning-message {
  color: var(--text-colour);
}

/* Stringing progress button styles */
#stringing-progress-container .button-13 {
  cursor: pointer;
  pointer-events: auto;
  position: relative;
  z-index: 10;
}

#stringing-progress-container .button-13:hover {
  transform: translateY(-1px);
}

/* Stringing icon button styles (inline with title) */
.stringing-icon-btn {
  background: transparent;
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  width: 24px;
  height: 24px;
  border-radius: var(--button-radius);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  transition: all 0.2s ease;
  padding: 0;
}

.stringing-icon-btn:hover {
  background: var(--button-hover);
  border-color: var(--button-hover);
  color: var(--button-hover-text);
  transform: scale(1.1);
}

.stringing-icon-btn:active {
  transform: scale(0.95);
}

.stringing-icon-btn i {
  pointer-events: none;
}

/* Compact theme-aware toggle */
.compact-toggle {
  position: relative;
  display: inline-block;
  width: 28px;
  height: 16px;
  flex-shrink: 0;
}

.compact-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}

.compact-toggle-slider {
  position: absolute;
  inset: 0;
  background-color: var(--border-colour);
  border-radius: 16px;
  cursor: pointer;
  transition: background-color 0.2s ease;
  border: 1px solid var(--border-colour);
}

.compact-toggle-slider::before {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  left: 2px;
  top: 2px;
  background-color: var(--tertiary-colour);
  border-radius: 50%;
  transition: transform 0.2s ease;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.compact-toggle input:checked + .compact-toggle-slider {
  background-color: var(--secondary-colour);
  border-color: var(--secondary-colour);
}

.compact-toggle input:checked + .compact-toggle-slider::before {
  transform: translateX(12px);
}

.compact-toggle input:focus-visible + .compact-toggle-slider {
  box-shadow: 0 0 0 2px var(--secondary-colour);
}

/* Themed radio — the round sibling of .compact-toggle. Replaces the browser
   default (white disc on dark cards) anywhere a form offers a radio choice. */
.pl-radio {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  margin: 0;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid var(--border-colour);
  background-color: transparent;
  cursor: pointer;
  position: relative;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.pl-radio:checked {
  border-color: var(--secondary-colour);
  background-color: var(--secondary-colour);
}

.pl-radio:checked::before {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background-color: var(--tertiary-colour);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.pl-radio:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--secondary-colour);
}

/* Draw Button Hover Flyout */
.draw-button-wrapper {
  position: relative;
}

.draw-caret {
  font-size: 10px;
  opacity: 0.6;
  margin-left: 2px;
}

.draw-hover-flyout {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 4px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  box-shadow: 0 8px 32px var(--boxshadow);
  min-width: 170px;
  overflow: hidden;
  font-family: var(--font-type);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 0.15s ease, visibility 0.15s ease, transform 0.15s ease;
  z-index: 100000;
}

.draw-button-wrapper:hover .draw-hover-flyout {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.draw-hover-flyout-item {
  padding: 9px 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text-colour);
  transition: all 0.15s ease;
  font-size: 13px;
}

.draw-hover-flyout-item:hover {
  background: var(--button-hover);
  color: var(--button-hover-text);
}

.draw-hover-flyout-item.active {
  background: var(--secondary-colour);
  color: var(--tertiary-colour);
  border-left: 3px solid var(--secondary-colour);
  padding-left: 11px;
}

.draw-hover-flyout-item:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.draw-hover-flyout-icon {
  width: 20px;
  text-align: center;
  font-size: 14px;
  opacity: 0.9;
}

.draw-hover-flyout-label {
  flex: 1;
}

/* Monthly Production Chart */
.monthly-chart-section {
  margin-top: 12px;
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  overflow: hidden;
}

.monthly-chart-toggle {
  padding: 8px 12px;
  cursor: pointer;
  font-weight: 500;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 8px;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  color: var(--text-colour);
  list-style: none;
}

.monthly-chart-toggle::-webkit-details-marker {
  display: none;
}

.monthly-chart-toggle:hover {
  background: var(--button-hover);
  color: var(--button-hover-text);
}

.monthly-chart-chevron {
  margin-left: auto;
  transition: transform 0.2s ease;
  font-size: 11px;
}

.monthly-chart-section[open] .monthly-chart-chevron {
  transform: rotate(180deg);
}

.monthly-chart-container {
  padding: 12px 10px 8px 10px;
}

.monthly-chart-legend {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-bottom: 8px;
  font-size: 10px;
  color: var(--text-colour);
}

.monthly-chart-legend-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

.monthly-chart-legend-swatch {
  width: 10px;
  height: 10px;
  border-radius: 2px;
}

.monthly-chart-bars {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 100px;
  padding: 0 2px;
}

.monthly-bar-group {
  flex: 1;
  display: flex;
  align-items: flex-end;
  gap: 1px;
  height: 100%;
}

.monthly-bar-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  justify-content: flex-end;
}

.monthly-bar {
  width: 100%;
  min-height: 2px;
  border-radius: 2px 2px 0 0;
  transition: height 0.3s ease;
  position: relative;
}

.monthly-bar:hover {
  opacity: 0.8;
}

.monthly-bar-tooltip {
  display: none;
  position: absolute;
  bottom: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, 0.9);
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  padding: 3px 6px;
  border-radius: 3px;
  font-size: 10px;
  white-space: nowrap;
  z-index: 10;
  pointer-events: none;
}

.monthly-bar:hover .monthly-bar-tooltip {
  display: block;
}

.monthly-chart-labels {
  display: flex;
  gap: 2px;
  padding: 4px 2px 0 2px;
}

.monthly-chart-label {
  flex: 1;
  text-align: center;
  font-size: 9px;
  color: var(--text-colour);
}

.monthly-chart-total {
  text-align: center;
  margin-top: 8px;
  font-size: 11px;
  color: var(--text-colour);
  border-top: 1px solid var(--border-colour);
  padding-top: 6px;
}

/* Baseline Widget (centered polygon UI in ortho mode) */
.baseline-widget {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 800;
}

.baseline-widget-arrow {
  position: fixed;
  width: 22px;
  height: 11px;
  pointer-events: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0 0 11px 11px;
  background: var(--card-colour);
  border-top: none;
  box-shadow: 0 1px 3px var(--boxshadow);
  opacity: 0.5;
  transition: opacity 0.25s, background 0.2s, border-color 0.2s, box-shadow 0.2s;
}

.baseline-widget-arrow.nearby {
  pointer-events: auto;
  opacity: 0.9;
  background: var(--card-colour);
  border-color: var(--border-colour);
}

.baseline-widget-arrow:hover {
  background: var(--button-hover);
  border-color: var(--button-hover-text);
  box-shadow: 0 1px 6px var(--boxshadow);
}

.baseline-widget-arrow.active {
  background: var(--button-hover);
  border-color: var(--border-colour);
}

.baseline-widget-arrow svg {
  width: 8px;
  height: 8px;
}

.baseline-widget-arrow svg path {
  fill: var(--text-colour);
}

.baseline-widget-arrow.active svg path {
  fill: var(--button-hover-text);
}

.baseline-widget-arrow:hover svg path {
  fill: var(--button-hover-text);
}

.baseline-widget-arrow.active:hover svg path {
  fill: var(--secondary-colour);
}

.baseline-widget-menu-btn {
  position: fixed;
  height: 22px;
  pointer-events: auto;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 0 7px;
  border-radius: 11px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  box-shadow: 0 1px 4px var(--boxshadow);
  font-size: 11px;
  font-weight: 600;
  font-family: var(--font-type);
  color: var(--text-colour);
  white-space: nowrap;
  transition: background 0.12s, border-color 0.12s, box-shadow 0.12s;
}

/* Quick-action shortcut buttons (panels / obstructions) */
.baseline-widget-quick-btn {
  position: fixed;
  width: 20px;
  height: 20px;
  pointer-events: auto;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--card-colour);
  border: 1.5px solid var(--border-colour);
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow);
  color: var(--text-colour);
  font-size: 10px;
  opacity: 0.8;
  transition: opacity 0.15s, background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
}

.baseline-widget-quick-btn:hover {
  opacity: 1;
  background: var(--secondary-colour);
  border-color: var(--border-colour);
  color: var(--tertiary-colour);
  box-shadow: 0 1px 6px rgba(0, 170, 255, 0.3);
}

.baseline-widget-quick-btn.delete:hover {
  border-color: var(--notification-danger);
  color: var(--notification-danger);
  box-shadow: 0 1px 6px rgba(255, 77, 79, 0.3);
}

/* Info label (slope + direction text) */
.bw-info-label {
  line-height: 1;
  letter-spacing: -0.2px;
}

/* Inverted slope indicator — only shown when inverted */
.bw-invert-icon {
  display: none;
  align-items: center;
  margin-left: -1px;
}

.bw-invert-icon svg {
  width: 7px;
  height: 7px;
}

.bw-invert-icon svg path {
  fill: #00aaff;
}

.baseline-widget-menu-btn.smart .bw-invert-icon svg path {
  fill: #b088f9;
}

/* Chevron indicating clickable menu */
.bw-chevron {
  display: flex;
  align-items: center;
  margin-left: 1px;
  opacity: 0.4;
  transition: opacity 0.12s;
}

.bw-chevron svg {
  width: 4px;
  height: 10px;
}

.baseline-widget-menu-btn:hover .bw-chevron {
  opacity: 0.8;
}

.baseline-widget-menu-btn:hover {
  background: var(--button-hover);
  border-color: var(--border-colour);
  color: var(--button-hover-text);
}

/* Compact tier — small polygon: slimmer pill, chevron hidden */
.baseline-widget-menu-btn.compact {
  height: 16px;
  padding: 0 5px;
  gap: 2px;
  font-size: 9px;
}

.baseline-widget-menu-btn.compact .bw-chevron {
  display: none;
}

/* Mini tier — tiny polygon: dot-menu button only, label hidden */
.baseline-widget-menu-btn.mini {
  width: 14px;
  height: 14px;
  padding: 0;
  justify-content: center;
}

.baseline-widget-menu-btn.mini .bw-info-label {
  display: none;
}

.baseline-widget-menu-btn.mini .bw-chevron {
  margin-left: 0;
  opacity: 0.6;
}

/* Polygon Multi-Select UI */
#polygon-multi-select-ui {
  position: fixed;
  top: 80px;
  right: 20px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  padding: 20px;
  border-radius: 12px;
  z-index: 10001;
  font-size: 14px;
  min-width: 320px;
  box-shadow: 0 8px 24px var(--boxshadow);
  backdrop-filter: blur(10px);
}

.polygon-multi-select-header {
  margin-bottom: 10px;
  font-weight: bold;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.polygon-multi-select-header i.fa-draw-polygon {
  margin-right: 6px;
  color: var(--secondary-colour);
}

.polygon-multi-select-header button {
  background: none;
  border: none;
  color: var(--text-colour);
  opacity: 0.6;
  cursor: pointer;
  font-size: 16px;
  padding: 0;
}

.polygon-multi-select-section {
  margin-bottom: 12px;
}

.polygon-multi-select-height-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.polygon-multi-select-height-header > label {
  font-size: 12px;
}

.height-mode-toggle {
  display: flex;
  gap: 4px;
  background: var(--primary-colour);
  border-radius: var(--button-radius);
  padding: 2px;
}

.height-mode-btn {
  background: transparent;
  color: var(--text-colour);
  opacity: 0.6;
  border: none;
  padding: 3px 8px;
  border-radius: var(--button-radius);
  cursor: pointer;
  font-size: 10px;
  font-weight: 500;
}

.height-mode-btn.active {
  background: var(--secondary-colour);
  color: var(--tertiary-colour);
  opacity: 1;
}

.polygon-multi-select-slider-row {
  display: flex;
  gap: 6px;
  align-items: center;
}

.polygon-multi-select-slider-row input[type=range] {
  flex: 1;
  height: 4px;
}

.polygon-multi-select-slider-row input[type=number] {
  width: 60px;
  padding: 4px;
  font-size: 12px;
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  background: var(--card-colour);
  color: var(--text-colour);
}

#height-mode-info {
  font-size: 10px;
  color: var(--text-colour);
  opacity: 0.5;
  margin-top: 4px;
}

.polygon-multi-select-align {
  margin-bottom: 4px;
}

.polygon-multi-select-align label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  cursor: pointer;
  color: var(--text-colour);
  opacity: 0.8;
}

.polygon-multi-select-align input[type=checkbox] {
  margin: 0;
  cursor: pointer;
}

.polygon-multi-select-section > label {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
}

.polygon-multi-select-pitch-input {
  display: flex;
  align-items: center;
  gap: 2px;
}

.polygon-multi-select-pitch-input input[type=number] {
  width: 40px;
  padding: 4px;
  font-size: 12px;
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  background: var(--card-colour);
  color: var(--text-colour);
  text-align: center;
}

.polygon-multi-select-pitch-input span {
  font-size: 12px;
  color: var(--text-colour);
  opacity: 0.6;
}

#multi-polygon-slope {
  width: 55px;
}

.polygon-multi-select-actions {
  display: flex;
  gap: 2px;
}

.polygon-multi-select-actions button {
  flex: 1;
  background: transparent;
  color: var(--text-colour);
  padding: 8px 10px;
  border: none;
  border-radius: var(--button-radius);
  cursor: pointer;
}

/* Keyboard Hints in Shadow Controls */
/* Design Assistant — unified guided stepper + contextual helper (bottom-left) */
/* The toolbar is retired — everything lives in the Design Assistant. It stays
   in the DOM as a set of proxy targets the bundle clicks by id.
   !important overrides the inline display toggles in the SLD/planset controllers. */
#toolbar {
  display: none !important;
}

/* Design Assistant — top-left, tucked under the compass, opens downward */
#design-assistant {
  position: absolute;
  top: 20px;
  left: 10px;
  width: 286px;
  /* Hard-cap the whole pane to the viewport so it can never run off the bottom
     (top offset + a small margin). The body flexes/scrolls within. */
  max-height: calc(100vh - 40px);
  display: flex;
  flex-direction: column;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 12px;
  color: var(--text-colour);
  font-size: 12px;
  z-index: 900;
  overflow: hidden;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.da-header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 10px;
  cursor: pointer;
  font-weight: 600;
  flex-shrink: 0;
  /* Subtle themed divider separating the header from the tools/steps below */
  border-bottom: 1px solid var(--border-colour);
}

/* Compass cube — embedded flush in the header, leading the view buttons. The
   cube + ring canvases are injected by ThreeDCompass; no chrome so the panel
   reads through it. */
.da-header-compass {
  flex: 0 0 auto;
  margin-right: 2px;
}

.da-title {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
}

.da-title i {
  color: var(--secondary-colour);
  flex-shrink: 0;
}

/* Promoted dedicated-view buttons (SLD, Plan Set) sit where the title was. */
.da-header-views {
  display: flex;
  align-items: center;
  gap: 6px;
  /* flex-shrink:0 so SLD/Plan Set icons never shrink below their box and spill
     over the action icons; header compaction keeps the narrow row fitting. */
  flex-shrink: 0;
}
.da-header-views .da-action {
  padding: 4px 6px;
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
}

.da-collapse {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  background: none;
  border: none;
  border-radius: var(--button-radius);
  color: var(--secondary-colour);
  opacity: 0.9;
  cursor: pointer;
  padding: 0;
  font-size: 15px;
  transition: transform 0.2s ease, background 0.15s ease, opacity 0.15s ease;
}

.da-collapse:hover {
  opacity: 1;
  background: var(--button-hover);
  color: var(--button-hover-text);
}

#design-assistant.collapsed .da-collapse {
  transform: rotate(-90deg);
}

#design-assistant.collapsed .da-body {
  display: none;
}

/* ── Bar layout ──────────────────────────────────────────────
   Dragging the width handle past the dock threshold snaps the pane into a
   single-row toolbar spanning the top of the canvas (same DOM, row
   direction). Clicking the header/chevron undocks back to the expanded
   panel; dragging the handle left undocks collapsed. Row order: header
   block · quick modes · summary/chips; the scale ruler hangs centered
   below; the dock ghost previews the layout a release commits to. */
#design-assistant.da-bar {
  right: 10px;
  width: auto;
  flex-direction: row;
  align-items: center;
  /* The scale ruler hangs below the bar as a tab — don't clip it. (The
     scrollable body is display:none here, so nothing else can spill.) */
  overflow: visible;
  transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* While a top-anchored editor pane (polygon/tree properties, stringing,
   branching) is open, the bar tucks up flush with the canvas edge — still
   fully visible and clickable — and the panes below start beneath its
   tucked bottom edge. */
#design-assistant.da-bar.da-bar-yield {
  transform: translateY(-16px);
}

/* In bar layout the editor panes open below the (tucked) bar instead of
   overlapping its right end. The draw3d canvas is full-bleed (100vh, top 0),
   so the tucked bar bottom is ≈ 72px viewport — same band as the harness. */
body:has(#design-assistant.da-bar) #canvas-container .offcanvas {
  top: 80px;
  max-height: calc(100vh - 100px);
}

body:has(#design-assistant.da-bar) .stringing-overlay {
  top: 80px;
}

/* Snap moment only — live width drags stay 1:1 with the cursor. */
#design-assistant.da-snap {
  transition: width 0.28s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Drag-ghost: while a handle drag is held past the dock/undock arm
   distance, this outline (created by the bundle on document.body)
   previews the layout a release commits to. */
.da-dock-ghost {
  position: fixed;
  top: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px dashed rgba(var(--secondary-colour-rgb), 0.65);
  border-radius: var(--button-radius, 12px);
  background: rgba(var(--secondary-colour-rgb), 0.07);
  color: var(--secondary-colour);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  /* Above the pane (900): the undock preview overlaps the bar, and the
     dashed outline must stay readable on top of it. */
  z-index: 901;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

.da-dock-ghost.visible {
  opacity: 1;
}

#design-assistant.da-bar .da-tools {
  border-bottom: none;
  border-left: 1px solid var(--border-colour);
}

#design-assistant.da-bar .da-quick-modes {
  flex-wrap: nowrap;
  padding: 8px 12px;
}

#design-assistant.da-bar .da-results {
  order: 2;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  border-bottom: none;
  border-left: 1px solid var(--border-colour);
}

/* A closed results row must free its horizontal space in the bar — the
   panel's max-height collapse only frees vertical space. */
#design-assistant.da-bar .da-results:not(.is-open) {
  display: none;
}

#design-assistant.da-bar .da-results.is-open {
  max-height: none;
  padding: 0 12px;
}

#design-assistant.da-bar .da-results-toggle {
  width: auto;
  white-space: nowrap;
}

#design-assistant.da-bar .electrical-readiness {
  margin-top: 0;
  flex-wrap: nowrap;
}

/* The ruler leaves the row and hangs centered under the bar — row width is
   the bar's scarcest resource, offcanvas editors own the right band below
   it, and the notification toast owns the left. */
#design-assistant.da-bar .scale-ruler {
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  border-top: none;
  padding: 6px 10px;
  background: var(--card-colour);
  border-radius: 8px;
}

/* The active quick-mode button in the same row already carries the mode
   highlight, so the badge slims to its colored icon chip. */
#design-assistant.da-bar .da-mode-indicator .da-mode-label {
  display: none;
}

/* Bar space provisions: as the viewport tightens, shed words before
   chrome — quick-mode words and the long summary segments go first, then
   shortcut keys and readiness-chip text. Until panels exist
   (`da-no-panels`) the summary/chips/SLD/Plan-Set are all hidden, so the
   row has room to keep full labels much longer — only the small final
   tier applies to an empty scene. */
@media (max-width: 1500px) {
  #design-assistant.da-bar:not(.da-no-panels) .da-quick-modes .da-global-word,
  #design-assistant.da-bar:not(.da-no-panels) .da-sum-wide {
    display: none;
  }
}
@media (max-width: 1280px) {
  #design-assistant.da-bar:not(.da-no-panels) .da-sum-mid,
  #design-assistant.da-bar:not(.da-no-panels) .da-quick-modes .da-global-label,
  #design-assistant.da-bar:not(.da-no-panels) .electrical-readiness-chip span {
    display: none;
  }
  #design-assistant.da-bar:not(.da-no-panels) .da-quick-modes .da-global-btn {
    width: 28px;
    padding: 0;
    justify-content: center;
  }
}
@media (max-width: 900px) {
  #design-assistant.da-bar .da-quick-modes .da-global-label {
    display: none;
  }
  #design-assistant.da-bar .da-quick-modes .da-global-btn {
    width: 28px;
    padding: 0;
    justify-content: center;
  }
}
.da-body {
  /* Small top gap so the first step isn't flush against the tools divider */
  padding: 10px 12px 12px;
  /* Content-height normally; shrinks + scrolls only when the capped pane would
     otherwise overflow — so no wasted empty space either. */
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
}
.da-body::-webkit-scrollbar {
  width: 6px;
}
.da-body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
}
.da-body::-webkit-scrollbar-track {
  background: transparent;
}

.da-steps {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
}

.da-step {
  border-radius: var(--button-radius);
  border-left: 3px solid transparent;
}

.da-step-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 6px;
  border-radius: var(--button-radius);
  cursor: pointer;
}

.da-step-head:hover {
  background: var(--button-hover);
}

.da-step-num {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  line-height: 18px;
  text-align: center;
  border-radius: 50%;
  background: var(--card-colour);
  color: var(--text-colour);
  font-size: 11px;
  font-weight: 600;
}

.da-step-label {
  flex: 1 1 auto;
  color: var(--text-colour);
  opacity: 0.8;
}

.da-step-tick {
  color: var(--production-colour);
  font-size: 11px;
  opacity: 0;
}

.da-step.active {
  border-left-color: var(--secondary-colour);
}

.da-step.active .da-step-head {
  background: rgba(var(--secondary-colour-rgb), 0.12);
}

.da-step.active .da-step-num {
  background: var(--secondary-colour);
  color: var(--secondary-text);
}

.da-step.active .da-step-label {
  color: var(--text-colour);
  opacity: 1;
}

.da-step.done .da-step-num {
  background: var(--production-colour);
  color: var(--production-text);
}

.da-step.done .da-step-tick {
  opacity: 1;
}

.da-step.suggested .da-step-num {
  box-shadow: 0 0 0 2px rgba(var(--secondary-colour-rgb), 0.5);
}

.da-step.suggested .da-step-label {
  color: var(--secondary-colour);
  opacity: 1;
}

.da-stage-panel {
  display: none;
  padding: 4px 6px 8px 9px;
}

.da-stage-panel.active {
  display: block;
}

.da-instruction {
  margin: 0 0 8px;
  color: var(--text-colour);
  opacity: 0.7;
  line-height: 1.45;
}

.da-instruction strong {
  opacity: 1;
  font-weight: 600;
}

.da-legend {
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--text-colour);
  opacity: 0.7;
  margin-bottom: 8px;
}

.da-swatch {
  display: inline-block;
  width: 18px;
  height: 4px;
  border-radius: 2px;
}

.da-swatch.baseline {
  background: #ff8c00;
}

.da-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.da-action {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  font-size: 11px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.da-action:hover {
  color: var(--text-colour);
  border-color: var(--secondary-colour);
}

/* Action buttons collapse to icons (one row); label + shortcut appear when wide */
.da-action-label {
  display: none;
}

.da-wide .da-action-label {
  display: inline;
}

/* Shortcut hint on action buttons — revealed only when the pane is wide */
.da-action-key {
  display: none;
}

.da-mid .da-action .da-action-key {
  display: inline-block;
  margin-left: 6px;
  padding: 0 4px;
  background: var(--kbd-bg);
  color: var(--kbd-text);
  border: 1px solid var(--kbd-border);
  border-radius: 3px;
  box-shadow: var(--kbd-shadow);
  font-size: 9px;
}

/* Dedicated views (SLD, Plan Set) — accented (they open full-screen
   destinations rather than firing a quick action); labels follow width tier. */
.da-action-view {
  border-color: rgba(var(--secondary-colour-rgb), 0.45);
  color: var(--text-colour);
}
.da-action-view i {
  color: var(--secondary-colour);
}
.da-action-view:hover {
  background: color-mix(in srgb, var(--text-colour) 10%, transparent);
  border-color: var(--secondary-colour);
  color: var(--text-colour);
}
.da-action-view:hover i {
  color: var(--secondary-colour);
}
.da-action-view .da-action-label {
  display: none;
}

/* SLD / Plan Set reveal their words only at the wide tier. With the compass in
   the header, narrower widths need the room for the action icons, so keep these
   icon-only (they carry tooltips) until there's space. */
.da-wide .da-action-view .da-action-label {
  display: inline;
}

/* "Documents" export dropdown trigger (Report / BOM / CAD live inside it) */
.da-export-menu {
  position: relative;
  display: inline-flex;
}

.da-export-menu .da-action-export {
  flex: 1;
}

.da-export-caret {
  margin-left: 4px;
  font-size: 9px;
  color: var(--muted-text);
  transition: transform 0.15s ease;
}

.da-export-menu.open .da-export-caret {
  transform: rotate(180deg);
}

.da-needs-selection-msg {
  display: none;
  margin: 8px 0 0;
  color: var(--notification-warning);
  font-size: 11px;
}

.da-stage-panel.blocked .da-needs-selection-msg {
  display: block;
}

/* Stage-global actions (e.g. Auto design) work across facets and stay
   active while the stage's per-facet actions await a selection. */
.da-stage-panel.blocked .da-action:not([data-stage-global]) {
  opacity: 0.5;
}

/* Per-stage tips, grouped in one bordered box with a domed bulb tab. */
.da-hints {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 18px 0 6px;
  padding: 10px 9px 7px;
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
}

/* A domed tab on the top-left: its top + side borders continue the box frame up
   and over the bulb, then back down to the top edge. Its card-coloured fill masks
   the straight top border running beneath it. */
.da-hints-tab {
  position: absolute;
  top: -14px;
  left: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 16px;
  border: 1px solid var(--border-colour);
  border-bottom: none;
  border-radius: 16px 16px 0 0;
  background: var(--card-colour);
  color: #f6c453;
  font-size: 11px;
  line-height: 1;
}

.da-tip {
  margin: 0;
  color: color-mix(in srgb, var(--text-colour) 62%, transparent);
  font-size: 10px;
  line-height: 1.4;
}

.da-tip strong {
  color: var(--text-colour);
  font-weight: 600;
}

/* Host-swappable copy: shown only while no Lidar/DSM is loaded. */
.da-tip-nolidar {
  display: none;
}

#design-assistant.da-no-dsm .da-tip-nolidar {
  display: block;
}

/* Inverse: a tip relevant only when Lidar IS loaded — hidden without it. */
#design-assistant.da-no-dsm .da-tip-lidar {
  display: none;
}

.da-warning {
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  padding: 8px 10px;
  /* Slight transparency softens the fill without dropping enough contrast
     to make the paired text column hard to read. */
  background: rgba(var(--notification-warning-rgb), 0.9);
  border: 1px solid rgba(var(--notification-warning-rgb), 0.9);
  border-radius: 6px;
  /* Paired text column from the theme so copy stays readable on the fill. */
  color: var(--notification-warning-text);
  font-size: 11px;
  line-height: 1.4;
}

.da-warning > i {
  color: var(--notification-warning-text);
}

/* Creased geometry is more severe than a misplaced baseline — danger colour. */
.da-warning.crease {
  background: rgba(var(--notification-danger-rgb), 0.7);
  border-color: rgba(var(--notification-danger-rgb), 0.9);
  color: var(--notification-danger-text);
}

.da-warning.crease > i {
  color: var(--notification-danger-text);
}

.da-warning.crease .da-warning-btn {
  background: rgba(0, 0, 0, 0.18);
  border-color: var(--notification-danger-text);
  color: var(--notification-danger-text);
}

.da-warning.crease .da-warning-btn:hover {
  background: rgba(0, 0, 0, 0.28);
}

.da-warning span {
  flex: 1;
}

.da-warning strong {
  color: inherit;
}

.da-warning-btn {
  flex-shrink: 0;
  padding: 3px 8px;
  background: rgba(0, 0, 0, 0.15);
  border: 1px solid var(--notification-warning-text);
  border-radius: 4px;
  color: var(--notification-warning-text);
  font-size: 11px;
  cursor: pointer;
}

.da-warning-btn:hover {
  filter: brightness(1.12);
}

.da-disabled {
  opacity: 0.4;
  pointer-events: none;
}

.da-globals {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--border-colour);
}

.da-header-actions {
  display: flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
  margin-left: auto;
}

.da-header-actions .da-global-btn {
  width: 22px;
  height: 22px;
}

/* Group break after the destructive lead button — the gap keeps the
   trash visually (and physically) apart from the save cluster. */
.da-header-actions .da-danger {
  margin-right: 9px;
}

/* Auto-save snapshot dot — the bundle flashes #undo-snapshot-flash (lazy
   getElementById) whenever a scene snapshot is saved; it lives inside the
   Design Assistant's header undo button. */
.da-header-actions .da-global-btn[data-action=undo] {
  position: relative;
}

#undo-snapshot-flash {
  position: absolute;
  top: 1px;
  right: 1px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(100, 180, 255, 0);
  pointer-events: none;
}

#undo-snapshot-flash.flash {
  animation: undoDot 0.8s ease-out forwards;
}

@keyframes undoDot {
  0% {
    background: rgba(100, 180, 255, 0.9);
  }
  100% {
    background: rgba(100, 180, 255, 0);
  }
}
/* Active-mode badge in the header (icon always; label when wide) */
/* Active-mode badge — sits in the electrical-readiness row as a solid accent chip
   (matches the chip pill shape; its colour marks the live mode). */
.da-mode-indicator {
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
}

.da-mode-label {
  display: inline;
}

.da-global-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  cursor: pointer;
  transition: background 0.15s ease;
}

.da-global-btn:hover {
  background: color-mix(in srgb, var(--text-colour) 10%, transparent);
}

/* Drag-to-resize handle on the right edge */
.da-resize-handle {
  position: absolute;
  top: 0;
  right: 0;
  width: 7px;
  height: 100%;
  cursor: ew-resize;
}

.da-resize-handle:hover {
  background: rgba(var(--secondary-colour-rgb), 0.25);
}

/* Wide mode (dragged past threshold): icon-only globals reveal labels + keys */
.da-global-label {
  display: none;
}

.da-global-label kbd {
  background: var(--kbd-bg);
  color: var(--kbd-text);
  border: 1px solid var(--kbd-border);
  border-radius: 3px;
  box-shadow: var(--kbd-shadow);
  padding: 0 4px;
  font-size: 9px;
}

/* Globals: icon → icon + kbd (mid, only those with a shortcut) → icon + word + kbd (wide) */
.da-mid .da-globals .da-global-btn:has(kbd) {
  width: auto;
  justify-content: flex-start;
  padding: 0 9px;
  gap: 6px;
  height: 28px;
}

.da-mid .da-globals .da-global-btn:has(kbd) .da-global-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
}

/* In the pure middle tier, the shortcut shows but the word is hidden */
.da-mid:not(.da-wide) .da-globals .da-global-btn:has(kbd) .da-global-word {
  display: none;
}

.da-wide .da-globals .da-global-btn {
  width: auto;
  justify-content: flex-start;
  padding: 0 9px;
  gap: 6px;
  height: 28px;
}

.da-wide .da-globals .da-global-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
}

/* Tool buttons (mini-toolbar) — shown in BOTH the collapsed and the expanded
   pane, pinned near the top. Labeled buttons by default; the container query
   below collapses them to icon-only whenever the pane is too narrow to keep the
   whole row on a single line. */
.da-tools {
  flex-shrink: 0;
  border-bottom: 1px solid var(--border-colour);
}

.da-quick-modes {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  padding: 10px 12px;
  overflow: hidden;
}

/* Mode toggles: icon (narrow) → icon + kbd (mid) → icon + word + kbd (wide) */
.da-quick-modes .da-global-btn {
  width: 28px;
  min-width: 28px;
  height: 28px;
  padding: 0;
  justify-content: center;
}

.da-quick-modes .da-global-label {
  display: none;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  white-space: nowrap;
}

.da-quick-modes .da-global-btn.active {
  background: rgba(var(--secondary-colour-rgb), 0.18);
  border-color: var(--secondary-colour);
  color: var(--text-colour);
}

.da-mid .da-quick-modes .da-global-btn {
  width: auto;
  justify-content: flex-start;
  padding: 0 9px;
  gap: 6px;
}

.da-mid .da-quick-modes .da-global-label {
  display: inline-flex;
}

.da-mid:not(.da-wide) .da-quick-modes .da-global-word {
  display: none;
}

/* Wide enough for words — let the row wrap rather than clip */
.da-wide .da-quick-modes {
  flex-wrap: wrap;
  overflow: visible;
}

/* Overflow (⋯) menu — fixed-positioned in JS so overflow:hidden won't clip it */
.da-more {
  position: relative;
}

.da-more-menu {
  display: none;
  position: fixed;
  flex-direction: column;
  gap: 2px;
  min-width: 170px;
  padding: 4px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.5);
  z-index: 905;
}

.da-more.open .da-more-menu {
  display: flex;
}

.da-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 6px 8px;
  background: none;
  border: none;
  border-radius: 5px;
  color: var(--text-colour);
  font-size: 11px;
  text-align: left;
  cursor: pointer;
}

.da-menu-item i {
  width: 16px;
  text-align: center;
  opacity: 0.7;
}

.da-menu-item kbd {
  margin-left: auto;
  background: var(--kbd-bg);
  color: var(--kbd-text);
  border: 1px solid var(--kbd-border);
  border-radius: 3px;
  box-shadow: var(--kbd-shadow);
  padding: 0 4px;
  font-size: 9px;
}

.da-menu-item:hover {
  background: var(--button-hover);
}

/* Collapsible row, animated rather than display-toggled so it doesn't flat-jitter
   as the mode chip reveals/hides between tool swaps before panels exist. Base state
   is collapsed (no first-paint flash); .is-open expands it. Fast, with opacity
   easing the height change. */
.da-results {
  /* Fixed chrome above the scrollable .da-body — never let the flex column
     shrink it, or its overflow:hidden shaves the chip bottoms. */
  flex-shrink: 0;
  max-height: 0;
  opacity: 0;
  padding: 0 12px;
  border-bottom: 0 solid var(--border-colour);
  overflow: hidden;
  pointer-events: none;
  transition: max-height 0.16s ease, opacity 0.13s ease, padding-top 0.16s ease, padding-bottom 0.16s ease, border-bottom-width 0.16s ease;
}

.da-results.is-open {
  max-height: 160px;
  opacity: 1;
  padding: 10px 12px;
  border-bottom-width: 1px;
  pointer-events: auto;
}

.da-global-btn.da-danger:hover {
  border-color: var(--notification-danger);
  color: var(--notification-danger);
}

.da-results-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 8px;
  padding: 6px 8px;
  background: var(--button-hover);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  font-size: 11px;
  cursor: pointer;
}

.da-results-toggle:hover {
  filter: brightness(1.12);
}

.da-results-summary strong {
  color: var(--text-colour);
  font-weight: 600;
}

/* Summary reveals more values as the pane widens (panels + offset always) */
.da-sum-mid,
.da-sum-wide {
  display: none;
}

.da-mid .da-sum-mid {
  display: inline;
}

.da-wide .da-sum-wide {
  display: inline;
}

.da-results-chevron {
  color: var(--text-colour);
  opacity: 0.6;
  transition: transform 0.2s ease;
}

/* Unfolded into the Production view: chevron points back (left) — click the
   summary again to return to the design stepper. */
.da-results-toggle.open .da-results-chevron {
  transform: rotate(180deg);
}

/* ── Body views: Design ⇄ Production swap in place ──────────────────
   The header, summary/toggle, and resize handle stay mounted across both,
   so Save/Undo/Redo and resizing work while viewing production. */
.da-view {
  display: none;
}

#design-assistant.da-view-design .da-view-design,
#design-assistant.da-view-production .da-view-production {
  display: block;
}

/* Quick-mode toolbar belongs to the design workflow — hide it while browsing
   production (unless collapsed, where it stays a glanceable quick-action strip). */
#design-assistant.da-view-production:not(.collapsed) .da-tools {
  display: none;
}

/* #pv-watts-info is absolute-positioned as a standalone panel by default;
   neutralise that now that it's docked inside the assistant body. */
.da-view-production .pv-watts-info {
  position: static;
  top: auto;
  left: auto;
  width: auto;
  padding: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: var(--text-colour);
  font-size: 12px;
}

/* Read-only viewer: the assistant becomes a plain production panel (no editor
   chrome), replacing the old standalone flyout. The System sub-tab (rendered
   only by the editor's DesignAssistant) has no meaning there, so drop it too. */
#design-assistant.da-readonly .da-header,
#design-assistant.da-readonly .da-results,
#design-assistant.da-readonly .da-tools,
#design-assistant.da-readonly .da-resize-handle,
#design-assistant.da-readonly .pv-watts-tab[data-tab=battery],
#design-assistant.da-readonly .pv-watts-tab[data-tab=bos],
#design-assistant.da-readonly #map-scale-ruler {
  display: none;
}

/* ── System sub-tab: BOM + battery summary ─────────────────────────── */
.da-system {
  font-size: 12px;
}

.da-sys-section {
  margin-top: 14px;
}

.da-sys-section:first-child {
  margin-top: 2px;
}

.da-sys-title {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-colour);
}

.da-sys-title i {
  color: var(--secondary-colour);
}

.da-sys-title .da-sys-src {
  margin-left: auto;
  font-size: 9px;
  font-weight: 500;
  color: var(--muted-text);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.da-sys-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
}

#design-assistant.da-mid .da-sys-grid,
#design-assistant.da-wide .da-sys-grid {
  grid-template-columns: repeat(3, 1fr);
}

.da-sys-stat {
  position: relative;
  padding: 7px 8px;
  background: color-mix(in srgb, var(--text-colour) 6%, transparent);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
}

/* Rail-pieces card: stack badge + hover popover with the per-length split */
.da-sys-stat--pop {
  cursor: default;
}

.da-sys-badge {
  margin-left: 5px;
  font-size: 11px;
  color: var(--secondary-colour);
  vertical-align: middle;
}

.da-sys-pop {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 100%;
  z-index: 5;
  padding: 6px 8px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.da-sys-stat--pop:hover .da-sys-pop {
  display: block;
}

.da-sys-pop-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 11px;
  white-space: nowrap;
  color: var(--text-colour);
}

.da-sys-stat .v {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-colour);
  line-height: 1.15;
}

.da-sys-stat .v small {
  font-size: 10px;
  font-weight: 500;
  color: var(--muted-text);
  margin-left: 2px;
}

.da-sys-stat .k {
  margin-top: 2px;
  font-size: 10px;
  color: var(--muted-text);
}

.da-sys-chart {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: 86px;
  margin-top: 12px;
  padding-top: 6px;
}

.da-sys-chart .col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  height: 100%;
}

.da-sys-chart .bar {
  width: 68%;
  min-height: 2px;
  background: var(--secondary-colour);
  border-radius: 3px 3px 0 0;
}

.da-sys-chart .col-val {
  font-size: 9px;
  color: var(--text-colour);
}

.da-sys-chart .col-lbl {
  font-size: 9px;
  color: var(--muted-text);
}

.da-sys-cap {
  margin-top: 6px;
  font-size: 10px;
  color: var(--muted-text);
  text-align: center;
}

.da-sys-banks {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.da-sys-bank {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
  color: var(--text-colour);
}

.da-sys-bank .muted {
  color: var(--muted-text);
}

.da-sys-empty {
  padding: 8px 0;
  font-size: 11px;
  color: var(--muted-text);
}

.da-sys-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin-top: 10px;
  padding: 7px;
  background: color-mix(in srgb, var(--text-colour) 7%, transparent);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  font-size: 11px;
  cursor: pointer;
}

.da-sys-btn:hover {
  background: color-mix(in srgb, var(--text-colour) 13%, transparent);
}

/* Inline racking config (Balance of System tab) */
.da-bos-config {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--border-colour);
}

.da-bos-field {
  margin-top: 10px;
}

.da-bos-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.da-bos-field label,
.da-bos-flabel {
  display: block;
  margin-bottom: 4px;
  font-size: 11px;
  color: var(--muted-text);
}

.da-bom-input {
  width: 100%;
  padding: 6px 8px;
  background: color-mix(in srgb, var(--text-colour) 6%, transparent);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  font-size: 12px;
}

.da-bom-input:focus {
  outline: none;
  border-color: var(--secondary-colour);
}

.da-bos-flabel small {
  color: var(--muted-text);
  font-size: 10px;
}

/* Rail-length toggle chips — enabled lengths the optimizer mixes. */
.da-bom-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.da-bom-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 5px 10px;
  background: color-mix(in srgb, var(--text-colour) 4%, transparent);
  border: 1px solid var(--border-colour);
  border-radius: 999px;
  color: var(--text-colour);
  font-size: 12px;
  cursor: pointer;
}

.da-bom-chip small {
  font-size: 9px;
  color: var(--muted-text);
}

.da-bom-chip:hover {
  filter: brightness(1.15);
}

.da-bom-chip.active {
  background: color-mix(in srgb, var(--secondary-colour) 16%, transparent);
  border-color: var(--secondary-colour);
  color: var(--text-colour);
}

.da-bom-chip.active small {
  color: var(--secondary-colour);
}

#keyboard-hints {
  padding: 5px;
}

.kbd-hints-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.kbd-hints-title {
  color: var(--secondary-colour);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.kbd-tab-bar {
  display: flex;
  gap: 2px;
}

.kbd-tab {
  background: none;
  border: 1px solid transparent;
  color: var(--text-colour);
  opacity: 0.4;
  cursor: pointer;
  padding: 2px 6px;
  font-size: 11px;
  border-radius: var(--button-radius);
  transition: color 0.15s, background 0.15s, opacity 0.15s;
}

.kbd-tab:hover {
  opacity: 0.8;
  background: var(--button-hover);
}

.kbd-tab.active {
  color: var(--secondary-colour);
  opacity: 1;
  background: rgba(var(--secondary-colour-rgb), 0.12);
  border-color: rgba(var(--secondary-colour-rgb), 0.25);
}

.kbd-hint-text {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 11px;
  color: var(--text-colour);
  opacity: 0.6;
  line-height: 1.5;
}

.kbd-hint-text i {
  color: var(--production-colour);
  font-size: 9px;
  margin-top: 3px;
  flex-shrink: 0;
}

.kbd-hints-list {
  display: flex;
  flex-direction: column;
  gap: 3px;
  /* Compact by default; silky-expands on hover, scrollable for more tips */
  max-height: 92px;
  overflow-y: auto;
  transition: max-height 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.kbd-hints-list::-webkit-scrollbar {
  width: 6px;
}
.kbd-hints-list::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
}
.kbd-hints-list::-webkit-scrollbar-track {
  background: transparent;
}

.da-lower.hints-open .kbd-hints-list {
  max-height: 320px;
}

.kbd-hint-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: var(--text-colour);
  opacity: 0.8;
  line-height: 1.4;
}

.kbd-hint-keys {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
  min-width: 70px;
}

.kbd-key {
  display: inline-block;
  background: var(--primary-colour);
  color: var(--nav-text);
  padding: 1px 5px;
  border-radius: var(--button-radius);
  font-size: 10px;
  font-family: var(--font-type);
  min-width: 18px;
  text-align: center;
  border: 1px solid var(--border-colour);
  white-space: nowrap;
}

.kbd-plus {
  color: var(--text-colour);
  opacity: 0.4;
  font-size: 9px;
}

.kbd-desc {
  color: var(--text-colour);
  opacity: 0.6;
  flex: 1;
  white-space: nowrap;
}

/* Tree Multi-Select UI */
#tree-multiselect-panel {
  position: fixed;
  top: 80px;
  right: 20px;
  background: var(--primary-colour);
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  padding: 20px;
  border-radius: 12px;
  z-index: 10001;
  font-size: 14px;
  min-width: 320px;
  box-shadow: 0 8px 24px var(--boxshadow);
  backdrop-filter: blur(10px);
}

.tree-multi-select-header {
  margin-bottom: 15px;
  font-weight: bold;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.tree-multi-select-header div {
  display: flex;
  align-items: center;
}

.tree-multi-select-header i.fa-tree {
  margin-right: 10px;
  color: var(--secondary-colour);
}

.tree-multi-select-header button {
  background: none;
  border: none;
  color: var(--text-colour);
  opacity: 0.6;
  cursor: pointer;
  font-size: 18px;
  padding: 5px;
  transition: opacity 0.2s;
}

.tree-multi-select-section {
  margin-bottom: 12px;
}

.tree-multi-select-section > label {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 500;
}

.tree-multi-select-section input[type=range] {
  width: 100%;
  height: 6px;
  background: var(--border-colour);
  border-radius: 3px;
  outline: none;
  margin-bottom: 8px;
}

.tree-multi-select-section input[type=number] {
  width: 100%;
  padding: 8px;
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  background: var(--card-colour);
  color: var(--text-colour);
  font-size: 14px;
}

.tree-multi-select-section select {
  width: 100%;
  padding: 8px;
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  background: var(--card-colour);
  color: var(--text-colour);
  font-size: 14px;
  cursor: pointer;
}

.tree-multi-select-section select option {
  background: var(--card-colour);
  color: var(--text-colour);
}

.tree-multi-select-variance {
  margin-bottom: 12px;
  padding: 8px 10px;
  background: rgba(var(--secondary-colour-rgb), 0.08);
  border: 1px solid rgba(var(--secondary-colour-rgb), 0.2);
  border-radius: var(--button-radius);
}

.tree-variance-toggle {
  display: flex;
  align-items: center;
  cursor: pointer;
  margin-bottom: 0;
  font-size: 12px;
}

.tree-variance-toggle input[type=checkbox] {
  width: 14px;
  height: 14px;
  margin-right: 6px;
  cursor: pointer;
}

.tree-variance-toggle span {
  font-weight: 500;
}

#tree-variance-controls {
  margin-top: 8px;
  padding-left: 20px;
}

.tree-variance-slider {
  margin-bottom: 6px;
}

.tree-variance-slider:last-child {
  margin-bottom: 0;
}

.tree-variance-slider label {
  display: block;
  margin-bottom: 2px;
  font-size: 11px;
  color: var(--text-colour);
  opacity: 0.8;
}

.tree-variance-slider input[type=range] {
  width: 100%;
  height: 4px;
  background: var(--border-colour);
  border-radius: 2px;
  outline: none;
}

.tree-multi-select-actions {
  display: flex;
  gap: 8px;
}

.tree-multi-select-actions button {
  flex: 1;
  padding: 10px;
  background: var(--secondary-colour);
  color: var(--tertiary-colour);
  border: none;
  border-radius: var(--button-radius);
  cursor: pointer;
  font-weight: 500;
  transition: background 0.2s;
}

.tree-instruction-box {
  background: var(--notification-info);
  border: var(--border-colour);
  color: var(--notification-info-text);
  border-radius: 8px;
  padding: 16px;
  text-align: center;
  margin-top: 8px;
}

.tree-back-button {
  background: none;
  border: none;
  color: var(--text-colour);
  cursor: pointer;
  font-size: 13px;
  padding: 4px 0;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.tree-back-button:hover {
  color: var(--muted-text);
}

.baseline-widget-menu-btn.smart {
  border-color: #b088f9;
  color: #7c5cbf;
}

.baseline-widget-menu-btn.smart:hover {
  border-color: #9966ff;
  color: #5a3d9e;
}

.snap-guide-marker-align .snap-guide-label-content {
  border: 2px solid #e839f0;
  /* Magenta for marker alignment snaps */
  background: linear-gradient(135deg, rgba(232, 57, 240, 0.15) 0%, rgba(20, 20, 20, 0.81) 100%);
}

/* Docked to the bottom of the Design Assistant; scaleRuler.js flips display in ortho */
.scale-ruler {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-type);
  pointer-events: none;
  white-space: nowrap;
  border-top: 1px solid var(--border-colour);
  padding: 8px 12px;
}

.ruler-bar {
  width: 150px;
  height: 3px;
  background-color: var(--text-colour);
  border-radius: 1px;
  position: relative;
}

.ruler-bar::before,
.ruler-bar::after {
  content: "";
  position: absolute;
  width: 2px;
  height: 8px;
  background-color: var(--text-colour);
  top: 50%;
  transform: translateY(-50%);
}

.ruler-bar::before {
  left: 0;
}

.ruler-bar::after {
  right: 0;
}

.ruler-label {
  color: var(--text-colour);
  font-size: 11px;
  font-weight: 500;
}

.ruler-label .feet {
  color: var(--text-colour);
  margin-left: 6px;
}

/* Tree Button Hover Flyout */
.tree-button-wrapper {
  position: relative;
}

.tree-caret {
  font-size: 10px;
  opacity: 0.6;
  margin-left: 2px;
}

.tree-hover-flyout {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 4px;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  box-shadow: 0 8px 32px var(--boxshadow);
  min-width: 170px;
  overflow: hidden;
  font-family: var(--font-type);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 0.15s ease, visibility 0.15s ease, transform 0.15s ease;
  z-index: 100000;
}

.tree-button-wrapper:hover .tree-hover-flyout {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.tree-hover-flyout-item {
  padding: 9px 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text-colour);
  transition: all 0.15s ease;
  font-size: 13px;
}

.tree-hover-flyout-item:hover {
  background: var(--button-hover);
  color: var(--button-hover-text);
}

.tree-hover-flyout-item.active {
  background: var(--secondary-colour);
  color: var(--tertiary-colour);
  border-left: 3px solid var(--secondary-colour);
  padding-left: 11px;
}

.tree-hover-flyout-item:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.tree-hover-flyout-icon {
  width: 20px;
  text-align: center;
  font-size: 14px;
  opacity: 0.9;
}

.tree-hover-flyout-label {
  flex: 1;
}

.tree-hover-flyout-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.1);
  margin: 4px 0;
}

/* Options panel styles */
.options-toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2px 0;
}

.options-toggle-label {
  color: var(--muted-text);
  font-size: 12px;
}

.options-preset-row {
  display: flex;
  gap: 6px;
}

.options-preset-btn {
  flex: 1;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  color: var(--muted-text);
  border-radius: var(--button-radius);
  padding: 5px 8px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.options-preset-btn:hover {
  background: var(--button-hover);
  color: var(--button-hover-text);
}

.options-preset-btn.active {
  background: rgba(var(--secondary-colour-rgb), 0.18);
  border-color: var(--secondary-colour);
  color: var(--text-colour);
}

/* ── Solar Metrics Cursor Tooltip ── */
.solar-metrics-tooltip {
  position: fixed;
  z-index: 1002;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.88);
  backdrop-filter: blur(10px);
  color: #fff;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 11px;
  font-family: inherit;
  line-height: 1.7;
  border: 1px solid rgba(255, 255, 255, 0.1);
  min-width: 240px;
  white-space: nowrap;
}

.smt-header {
  font-weight: 700;
  font-size: 13px;
  margin-bottom: 5px;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.smt-row {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.smt-label {
  color: #999;
}

.smt-value {
  font-weight: 600;
}

.smt-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
  margin: 5px 0;
}

.smt-grade-excellent {
  color: #4ade80;
}

.smt-grade-good {
  color: #a3e635;
}

.smt-grade-fair {
  color: #fbbf24;
}

.smt-grade-poor {
  color: #f87171;
}

.smt-source {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.smt-doughnuts {
  display: flex;
  justify-content: space-around;
  gap: 6px;
  margin: 6px 0 4px;
}

.smt-doughnut-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.2;
}

.smt-doughnut-key {
  font-size: 10px;
  font-weight: 700;
  color: #eee;
  margin-top: 3px;
  letter-spacing: 0.5px;
}

.smt-doughnut-desc {
  font-size: 9px;
  color: #888;
}

/* ── Weather info row in shadow panel ── */
.bottom-bar-weather-row {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  padding: 10px 12px;
  margin: 8px 0 12px 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Condition and stats stack in fixed rows — a side-by-side layout
   re-wraps as label lengths change per day, jolting the pane height. */
.weather-info-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.weather-icon-section {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-colour);
}

.weather-icon-section i {
  font-size: 18px;
  width: 24px;
  text-align: center;
}

.weather-stats-section {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.weather-stat {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--muted-text);
  background: rgba(0, 0, 0, 0.2);
  padding: 3px 8px;
  border-radius: 4px;
}

.weather-stat i {
  font-size: 10px;
  color: var(--secondary-colour);
}

.weather-hint {
  font-size: 10px;
  color: #888;
  font-style: italic;
  text-align: center;
  line-height: 1.3;
  /* Reserve two lines so hint length can't change the pane height */
  min-height: 26px;
}

/* Weather summary grid (irradiance panel) */
.weather-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 16px;
}

.weather-section {
  margin-bottom: 4px;
}

.weather-section-title {
  color: var(--text-colour);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}

.weather-row {
  display: flex;
  justify-content: space-between;
  padding: 2px 0;
}

.weather-row span:last-child {
  color: var(--text-colour);
  font-weight: 500;
}

/* ── Config modal tabs/cards (SLD + Battery dialogs) ─────────────── */
.cfg-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--border-colour);
}

.cfg-tab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 8px 14px;
  font-size: 13px;
  cursor: pointer;
  opacity: 0.65;
  color: inherit;
}

.cfg-tab.active {
  opacity: 1;
  border-bottom-color: var(--secondary-colour);
  font-weight: 600;
}

.cfg-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
  align-items: start;
}

.cfg-card {
  border: 1px solid var(--border-colour);
  border-radius: 10px;
  padding: 14px 16px;
}

.cfg-card > h3 {
  margin: 0 0 2px;
  font-size: 14px;
}

.cfg-card-hint {
  display: block;
  font-size: 11px;
  opacity: 0.6;
  margin-bottom: 10px;
  line-height: 1.4;
}

.cfg-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 10px 0;
}

.cfg-row-text {
  flex: 1;
  font-size: 13px;
}

.cfg-row-text .help-text {
  display: block;
}

.bat-spec-card {
  display: none;
  grid-template-columns: auto 1fr;
  gap: 4px 14px;
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  padding: 10px 12px;
  margin: 10px 0;
  font-size: 12px;
}

.bat-spec-card .spec-label {
  opacity: 0.6;
}

.bat-spec-row {
  display: flex;
  align-items: center;
  gap: 14px;
}

.bat-spec-row .bat-spec-card {
  flex: 1 1 50%;
  min-width: 0;
}

.bat-spec-row .form-group {
  flex: 1 1 50%;
  min-width: 0;
  margin: 10px 0;
}

.cfg-summary {
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 12px;
  margin: 14px 0 0;
  background: rgba(74, 158, 255, 0.08);
  border: 1px solid rgba(74, 158, 255, 0.3);
}

.cfg-summary.warn {
  background: rgba(230, 167, 0, 0.1);
  border-color: rgba(230, 167, 0, 0.5);
}

/* Advanced disclosure inside a card — tucks scary code-detail fields away */
.cfg-advanced {
  margin-top: 12px;
}

.cfg-advanced > summary {
  cursor: pointer;
  font-size: 12px;
  opacity: 0.65;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.cfg-advanced > summary::-webkit-details-marker {
  display: none;
}

.cfg-advanced > summary::before {
  content: "▸";
  font-size: 10px;
  transition: transform 0.15s ease;
}

.cfg-advanced[open] > summary {
  margin-bottom: 10px;
}

.cfg-advanced[open] > summary::before {
  transform: rotate(90deg);
}

.cfg-advanced > summary:hover {
  opacity: 1;
}

/* A whole cfg-card made collapsible: the summary stands in for the h3 */
details.cfg-card > summary {
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  margin-bottom: 2px;
}

details.cfg-card > summary::-webkit-details-marker {
  display: none;
}

details.cfg-card > summary::before {
  content: "▸";
  font-size: 11px;
  opacity: 0.6;
  transition: transform 0.15s ease;
}

details.cfg-card[open] > summary::before {
  transform: rotate(90deg);
}

/* Battery bank rows in the Battery Storage dialog */
.bat-bank-row {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}

.bat-bank-row select {
  flex: 2;
  min-width: 0;
}

.bat-bank-row input[type=number] {
  flex: 0 0 64px;
}

.bat-bank-row .button {
  flex: 0 0 auto;
  padding: 4px 10px;
}

.bat-analysis-panel {
  display: none;
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  padding: 12px;
  margin-top: 10px;
  font-size: 12px;
  background: rgba(255, 255, 255, 0.03);
}

.bat-analysis-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.bat-analysis-hero span {
  display: block;
  opacity: 0.65;
}

.bat-analysis-hero strong {
  display: block;
  font-size: 18px;
  line-height: 1.2;
}

.bat-analysis-source {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid rgba(128, 128, 128, 0.35);
}

.bat-analysis-source.hourly {
  color: #0f7a3b;
  background: rgba(47, 164, 92, 0.12);
  border-color: rgba(47, 164, 92, 0.3);
}

.bat-analysis-source.monthly {
  color: #9a6a00;
  background: rgba(230, 167, 0, 0.12);
  border-color: rgba(230, 167, 0, 0.35);
}

.bat-analysis-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.bat-analysis-stat {
  border-radius: 6px;
  background: rgba(74, 158, 255, 0.08);
  padding: 8px;
  text-align: center;
}

.bat-analysis-stat strong {
  display: block;
  font-size: 15px;
}

.bat-analysis-stat span {
  display: block;
  opacity: 0.65;
  margin-top: 2px;
}

.bat-readiness-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.bat-readiness-chip {
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 600;
  background: rgba(128, 128, 128, 0.12);
  border: 1px solid rgba(128, 128, 128, 0.25);
}

.bat-readiness-chip.ready {
  color: #0f7a3b;
  background: rgba(47, 164, 92, 0.12);
  border-color: rgba(47, 164, 92, 0.3);
}

.bat-readiness-chip.warn {
  color: #9a6a00;
  background: rgba(230, 167, 0, 0.12);
  border-color: rgba(230, 167, 0, 0.35);
}

.bat-analysis-backup {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.bat-analysis-backup div {
  border-top: 1px solid var(--border-colour);
  padding-top: 10px;
  min-width: 0;
}

.bat-analysis-backup span, .bat-analysis-backup small {
  display: block;
  opacity: 0.65;
}

.bat-analysis-backup strong {
  display: block;
  font-size: 16px;
  margin: 2px 0;
}

.bat-value-panel {
  margin-top: 12px;
  border: 1px solid rgba(47, 164, 92, 0.28);
  border-radius: 8px;
  padding: 10px;
  background: rgba(47, 164, 92, 0.08);
}

.bat-value-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.bat-value-title span {
  opacity: 0.7;
  font-weight: 600;
}

.bat-value-title strong {
  font-size: 17px;
}

.bat-value-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.bat-value-grid div {
  border-top: 1px solid rgba(47, 164, 92, 0.2);
  padding-top: 7px;
  min-width: 0;
}

.bat-value-grid strong, .bat-value-grid span {
  display: block;
}

.bat-value-grid span {
  opacity: 0.65;
  margin-top: 2px;
}

.bat-bank-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.bat-bank-card {
  border: 1px solid rgba(128, 128, 128, 0.25);
  border-radius: 6px;
  padding: 8px;
  background: rgba(128, 128, 128, 0.06);
}

.bat-bank-card strong, .bat-bank-card span, .bat-bank-card small {
  display: block;
}

.bat-bank-card span, .bat-bank-card small {
  opacity: 0.65;
  margin-top: 2px;
}

.bat-season-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 12px;
  font-size: 12px;
}

.bat-season-table th, .bat-season-table td {
  border-top: 1px solid var(--border-colour);
  padding: 6px 4px;
  text-align: right;
}

.bat-season-table th:first-child, .bat-season-table td:first-child {
  text-align: left;
}

.bat-analysis-note {
  margin: 10px 0 0;
  opacity: 0.7;
}

.bat-analysis-warnings {
  margin: 10px 0 0;
  padding-left: 18px;
  color: #b57900;
}

@media (max-width: 640px) {
  .bat-analysis-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .bat-analysis-backup {
    grid-template-columns: 1fr;
  }
  .bat-value-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .bat-analysis-hero {
    align-items: flex-start;
    flex-direction: column;
  }
}
/* ── Design Assistant contrast tuning ──────────────────────────────────
   The brand --button-hover and the fixed --secondary-colour tint render
   as light peach/pink washes on the dark assistant card, so the light
   --text-colour on top reads low-contrast (worst on the production summary
   bar — its :hover brightness filter made it lighter still — and the
   active step). These da-* surfaces are subtle elevations, not brand
   buttons, so paint them with a neutral tint derived from --text-colour:
   it always sits one step off the card and keeps text legible under any
   theme. Appended last so it wins over the base .da-* rules. */
.da-results-toggle {
  background: color-mix(in srgb, var(--text-colour) 7%, transparent);
}

.da-results-toggle:hover {
  filter: none;
  background: color-mix(in srgb, var(--text-colour) 13%, transparent);
}

.da-step-head:hover,
.da-action:hover,
.da-global-btn:hover,
.da-menu-item:hover {
  background: color-mix(in srgb, var(--text-colour) 10%, transparent);
}

/* Active step: keep the accent left-border as the cue, drop the pink wash */
.da-step.active .da-step-head {
  background: color-mix(in srgb, var(--text-colour) 9%, transparent);
}

/* Facet quick-actions (Rotate · Auto · Canopy · Delete) — one full-width
   row of compact, uniform icon tiles instead of loud solid-peach buttons */
#polygon-controls .facet-action-row {
  display: flex;
  gap: 6px;
  margin: 12px;
}

#polygon-controls .facet-action-btn {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 9px 4px;
  background: color-mix(in srgb, var(--text-colour) 6%, transparent);
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  font-size: 10.5px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

#polygon-controls .facet-action-btn i {
  font-size: 15px;
  opacity: 0.9;
}

#polygon-controls .facet-action-btn:hover {
  background: color-mix(in srgb, var(--text-colour) 12%, transparent);
  border-color: var(--secondary-colour);
}

#polygon-controls .facet-action-btn--danger:hover {
  border-color: var(--notification-danger);
  color: var(--notification-danger);
  background: color-mix(in srgb, var(--notification-danger) 12%, transparent);
}

/* Place panels/obstructions toggles into an active "placing" state (the bundle
   adds .solar-panel-active / .obstruction-active and swaps the label to
   "Exit (esc)") — show it as a filled accent tile with proper contrast text
   instead of the global peach-on-white treatment */
#polygon-controls .facet-action-btn.solar-panel-active,
#polygon-controls .facet-action-btn.obstruction-active {
  background: var(--secondary-colour);
  border-color: var(--secondary-colour);
  color: var(--secondary-text);
}

#polygon-controls .facet-action-btn.solar-panel-active:hover,
#polygon-controls .facet-action-btn.obstruction-active:hover {
  background: var(--secondary-colour);
  border-color: var(--secondary-colour);
  filter: brightness(0.96);
}

/* The facet-dimensions block is hidden on the Panels/Obstructions tabs, which
   left its wrapper + stacked margins as a wide empty gap above the action row.
   Collapse the empty wrapper and tighten the action row's top margin there. */
#polygon-controls > .section-content:has(> #polygon-dimensions) {
  padding-top: 0;
  padding-bottom: 0;
}

#polygon-controls #panel-mode-section .facet-action-row,
#polygon-controls #obstruction-mode-section .facet-action-row {
  margin-top: 8px;
}

/* Panels tab — production summary card (matches the Surface tab's card so
   the tabs read as one family; replaces the cramped badge flex-wrap) */
#polygon-controls .prod-card {
  margin: 0;
  margin-top: 14px;
  padding: 12px;
  border-radius: var(--button-radius);
  background: color-mix(in srgb, var(--text-colour) 5%, transparent);
  border: 1px solid var(--border-colour);
}

#polygon-controls .prod-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

#polygon-controls .prod-title {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--text-colour);
}

#polygon-controls .prod-settings-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--border-colour);
  border-radius: var(--button-radius);
  color: var(--text-colour);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

#polygon-controls .prod-settings-btn:hover {
  background: color-mix(in srgb, var(--text-colour) 10%, transparent);
  border-color: var(--secondary-colour);
}

#polygon-controls .prod-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

#polygon-controls .prod-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px;
  border-radius: var(--button-radius);
  background: color-mix(in srgb, var(--text-colour) 9%, transparent);
}

#polygon-controls .prod-stat-label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  color: var(--muted-text);
}

#polygon-controls .prod-stat-value {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-colour);
}

#polygon-controls .prod-dual-tilt {
  margin-top: 8px;
  font-size: 11px;
  color: var(--muted-text);
}

#polygon-controls .prod-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin-top: 10px;
  font-size: 11.5px;
  color: var(--text-colour);
}

#polygon-controls .prod-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

#polygon-controls .prod-meta-item > i {
  color: var(--secondary-colour);
  opacity: 0.85;
}

/* Collapsible analytics */
#polygon-controls .prod-analytics {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--border-colour);
}

#polygon-controls .prod-analytics-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
}

#polygon-controls .prod-analytics-chev {
  transition: transform 0.2s ease;
}

#polygon-controls .prod-analytics-toggle[aria-expanded=true] .prod-analytics-chev {
  transform: rotate(180deg);
}

#polygon-controls .prod-divider {
  border-top: 1px solid var(--border-colour);
  margin: 8px 0;
}

/* ── Primary-surface text retuning ──────────────────────────────────
   These containers sit on var(--primary-colour), the navigation surface.
   --text-colour and --muted-text are tuned against the PAGE and CARD
   backgrounds, so on the nav surface they read dim or unreadable whenever
   a company's nav differs from its page palette. Remapping the variables
   here retunes every descendant: primary text becomes nav_text (the pair
   the Theme model validates for contrast) and muted text becomes a dimmed
   nav_text derived from the same base, so it tracks every theme. Card
   surfaces inside the Design Assistant (flyouts, panels on
   var(--card-colour)) intentionally keep the page-tuned variables. */
#toolbar,
#canvas-container .offcanvas,
.offcanvas-bottom,
#imagery-selection-modal .form-select option,
#sld-toolbar,
#sld-status-bar,
#sld-sidebar,
#sld-props-sidebar,
.sld-sidebar-toggle-btn,
.draw-tools-context-menu-header,
#planset-editor-toolbar,
#planset-page-sidebar,
.bottom-bar-play-btn,
.north-btn,
.stringing-chip.active,
.height-mode-toggle,
#tree-multiselect-panel {
  --text-colour: var(--nav-text);
  --muted-text: color-mix(in srgb, var(--nav-text) 65%, transparent);
  color: var(--text-colour);
}

/* Card sub-surfaces nested inside the remapped primary panels return to the
   page-tuned text colours (a no-op wherever the parent wasn't remapped). */
#tree-controls .offcanvas-header,
#sld-shape-picker,
.sld-sidebar-search,
.sld-drag-item,
#planset-props-sidebar,
.stringing-panel,
.stringing-chip,
.stringing-inv-pane,
.stringing-info,
.stringing-warnings,
.stringing-instructions kbd,
.stringing-selector-row select,
.tree-multi-select-section input,
.tree-multi-select-section select {
  --text-colour: var(--page-text-colour);
  --muted-text: var(--page-muted-text);
}

/* ===== WATTSAPP-ONLY (not in powerlily — re-add after any wholesale copy) =====
   The global `.done::after { content: "Done!" }` / `.loading::after`
   loading-indicator utility in custom.scss leaks into the assistant because
   completed steps use `.done`, and the unpositioned step lets that absolute
   pseudo escape to the panel's bottom-right corner. Suppress it — the
   stepper shows its own green tick. */
#design-assistant .done::after,
#design-assistant .loading::after {
  content: none;
}

/* Reddit-style Threaded Comments */
.comment-thread {
  margin-bottom: 1.5rem;
}

.comment-container {
  position: relative;
  padding: 0.75rem 0;
}

.comment-content {
  border-radius: 4px;
  padding: 0.75rem 1rem;
  margin-bottom: 0.5rem;
}

.comment-metadata {
  display: flex;
  align-items: center;
  margin-bottom: 0.5rem;
  font-size: 0.85rem;
  gap: 0.5rem;
}

.comment-author {
  font-weight: 600;
  color: #1a1a1b;
  margin-right: 0.5rem;
}

.comment-time {
  color: #787c7e;
}

.comment-actions {
  display: flex;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.comment-action {
  background: none;
  border: none;
  color: #878a8c;
  font-size: 0.8rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  cursor: pointer;
  padding: 0.25rem 0;
}

.comment-action:hover {
  color: #0079d3;
}

.comment-action i {
  margin-right: 0.25rem;
}

/* Nested comments */
.replies {
  margin-left: 2rem;
  border-left: 2px solid #edeff1;
  padding-left: 1rem;
}

/* Indentation levels for deep nesting */
.replies .replies {
  margin-left: 1.5rem;
}

.replies .replies .replies {
  margin-left: 1rem;
}

.replies .replies .replies .replies {
  margin-left: 0.75rem;
}

/* Reply form */
.reply-form {
  margin-top: 0.75rem;
  display: none;
  padding-left: 2rem;
}

.reply-form.active {
  display: block;
}

/* Comment form at the top level */
.comment-form-container {
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 4px;
  margin-bottom: 1.5rem;
  padding: 1rem;
}

.profile-container {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.profile-pic {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}

/* Comment bubble removed as we're using a more Reddit-like flat style */
/* Threaded Comments */
.replies {
  margin-left: 2rem;
  padding-left: 1rem;
  border-left: 2px solid #e0e0e0;
}

.reply-form {
  margin-top: 0.5rem;
  margin-bottom: 1rem;
}

.comment-container {
  margin-bottom: 1rem;
}

/* Mentions */
.suggestion-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  max-height: 200px;
  overflow-y: auto;
}

.suggestion-item {
  padding: 8px 12px;
  cursor: pointer;
}

.suggestion-item:hover,
.suggestion-item.highlighted {
  background-color: #f0f0f0;
}

@keyframes shimmer {
  0% {
    transform: translateX(-100%) skewX(-20deg);
  }
  100% {
    transform: translateX(200%) skewX(-20deg);
  }
}
/* Sun Shimmer Effect for Hero Sections */
@keyframes sunShimmer {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  50% {
    transform: translateX(0%);
    opacity: 0.8;
  }
  90% {
    opacity: 1;
  }
  100% {
    transform: translateX(100%);
    opacity: 0;
  }
}
.sun-shimmer-overlay {
  position: absolute;
  top: 0;
  left: -100%;
  width: 300%;
  height: 100%;
  pointer-events: none;
  will-change: transform;
  opacity: 0;
  animation-fill-mode: both;
  transform: translateX(-100%);
}
@media (max-width: 768px) {
  .sun-shimmer-overlay {
    left: -50%;
    width: 200%;
  }
}

.sun-shimmer-overlay.primary {
  background: linear-gradient(110deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 35%, rgba(255, 223, 0, 0.15) 45%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 223, 0, 0.15) 55%, rgba(255, 255, 255, 0) 65%, rgba(255, 255, 255, 0) 100%);
  animation: sunShimmer 12s infinite ease-in-out 2s;
  mix-blend-mode: overlay;
}

.sun-shimmer-overlay.secondary {
  background: linear-gradient(110deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0) 60%, rgba(255, 255, 255, 0) 100%);
  animation: sunShimmer 12s infinite ease-in-out 8s;
  mix-blend-mode: soft-light;
}

.rate-schedule-builder {
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}

.rate-palette {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.rate-palette-card {
  display: flex;
  align-items: stretch;
  border: 2px solid var(--border-colour);
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.15s ease;
  background: var(--card-colour);
  min-width: 160px;
  position: relative;
}

.rate-palette-card:hover {
  border-color: var(--secondary-colour);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.rate-palette-card.active {
  border-color: var(--secondary-colour);
  box-shadow: 0 0 0 2px rgba(244, 116, 36, 0.2);
}

.rate-palette-color {
  width: 8px;
  min-height: 100%;
  flex-shrink: 0;
}

.rate-palette-fields {
  padding: 6px 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex-grow: 1;
}

.rate-palette-name {
  border: none;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-colour);
  padding: 0;
  width: 100%;
  outline: none;
}

.rate-palette-name:focus {
  border-bottom: 1px solid var(--secondary-colour);
}

.rate-palette-rates {
  display: flex;
  gap: 8px;
}

.rate-palette-rate {
  display: flex;
  align-items: center;
  gap: 2px;
}

.rate-palette-rate .rate-label {
  font-size: 9px;
  text-transform: uppercase;
  opacity: 0.5;
  letter-spacing: 0.5px;
  color: var(--text-colour);
}

.rate-palette-rate .rate-dollar {
  font-size: 10px;
  opacity: 0.5;
  color: var(--text-colour);
}

.rate-palette-input {
  border: none;
  background: transparent;
  font-size: 11px;
  color: var(--text-colour);
  width: 55px;
  padding: 0;
  outline: none;
}

.rate-palette-input:focus {
  border-bottom: 1px solid var(--secondary-colour);
}

.rate-palette-input::-webkit-outer-spin-button,
.rate-palette-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.rate-palette-input[type=number] {
  -moz-appearance: textfield;
}

.rate-palette-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  border: none;
  background: transparent;
  color: var(--text-colour);
  opacity: 0.3;
  cursor: pointer;
  padding: 2px 5px;
  font-size: 11px;
  transition: opacity 0.15s;
}

.rate-palette-remove:hover {
  opacity: 0.8;
  color: #ef4444;
}

.rate-palette-add {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 2px dashed var(--border-colour);
  border-radius: 8px;
  background: transparent;
  color: var(--text-colour);
  opacity: 0.5;
  cursor: pointer;
  padding: 8px 16px;
  min-width: 70px;
  transition: all 0.15s ease;
  font-size: 12px;
  gap: 2px;
}

.rate-palette-add:hover {
  opacity: 1;
  border-color: var(--secondary-colour);
  color: var(--secondary-colour);
}

.rate-grid {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border-colour);
}

.rate-grid-row {
  display: grid;
  grid-template-columns: 70px repeat(24, 1fr);
}

.rate-grid-header {
  background: transparent;
}

.rate-grid-header .rate-grid-hour-label {
  font-size: 9px;
  text-align: center;
  padding: 4px 0;
  color: var(--text-colour);
  opacity: 0.5;
}

.rate-grid-label {
  display: flex;
  align-items: center;
  padding: 0 8px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-colour);
  background: var(--card-colour);
  border-right: 1px solid var(--border-colour);
}

.rate-grid-cell {
  height: 28px;
  border: 1px solid var(--border-colour);
  border-width: 0 1px 1px 0;
  cursor: crosshair;
  transition: opacity 0.1s;
  background: var(--card-colour);
}

.rate-grid-cell:hover {
  opacity: 0.75;
}

.rate-grid-cell.filled {
  border-color: rgba(255, 255, 255, 0.15);
}

.rate-eraser.active {
  background-color: var(--secondary-colour) !important;
  color: var(--tertiary-colour) !important;
  border-color: var(--secondary-colour) !important;
}

.floating-input-group {
  position: relative;
  margin-bottom: 1.5rem;
  z-index: 1;
}

.floating-input {
  width: 100%;
  padding: 1rem 1rem 0.75rem 1rem;
  font-size: 1rem;
  font-family: "Quicksand", sans-serif;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 2px solid;
  border-radius: 12px;
  outline: none;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  z-index: 2;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.floating-input::-moz-placeholder {
  color: transparent;
}
.floating-input::placeholder {
  color: transparent;
}
.floating-input:focus {
  border: 2px solid transparent;
  background: linear-gradient(var(--card-colour), var(--card-colour)) padding-box, linear-gradient(135deg, #89B4FA, #F38BA8, #A6E3A1) border-box;
  transform: translateY(-1px);
}
.floating-input:not(:-moz-placeholder) {
  padding-top: 1.4rem;
  padding-bottom: 0.6rem;
}
.floating-input:valid, .floating-input:not(:placeholder-shown) {
  padding-top: 1.4rem;
  padding-bottom: 0.6rem;
}

.floating-label {
  position: absolute;
  left: 1rem;
  top: 1rem;
  font-size: 1rem;
  font-family: "Quicksand", sans-serif;
  font-weight: 500;
  pointer-events: none;
  transform-origin: left top;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 3;
  background: transparent;
  padding: 0 0.25rem;
}
.floating-input:not(:-moz-placeholder) + .floating-label {
  transform: translateY(-0.5rem) scale(0.85);
  font-weight: 600;
  background: linear-gradient(135deg, #89B4FA, #F38BA8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  padding: 0 0.5rem;
}
.floating-input:focus + .floating-label, .floating-input:valid + .floating-label, .floating-input:not(:placeholder-shown) + .floating-label {
  transform: translateY(-0.5rem) scale(0.85);
  font-weight: 600;
  background: linear-gradient(135deg, #89B4FA, #F38BA8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  padding: 0 0.5rem;
}

.floating-input-select {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%239ca3af' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 1rem center;
  background-repeat: no-repeat;
  background-size: 1.25rem 1.25rem;
  padding-right: 3rem;
}
.floating-input-select:focus {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2389B4FA' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
}

.floating-input-number::-webkit-outer-spin-button, .floating-input-number::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.floating-input-number[type=number] {
  -moz-appearance: textfield;
}

.floating-input-helper {
  font-size: 0.875rem;
  font-family: "Quicksand", sans-serif;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  opacity: 0;
  max-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  overflow: hidden;
  transform: translateY(-0.5rem);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.floating-input-helper.show {
  opacity: 1;
  max-height: 100px;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  transform: translateY(0);
}
.floating-input-helper.dynamic {
  background: linear-gradient(135deg, rgba(137, 180, 250, 0.08), rgba(243, 139, 168, 0.08));
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  border: 1px solid rgba(137, 180, 250, 0.2);
  border-radius: 12px;
  padding: 0.75rem 1rem;
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
  max-height: 150px;
  animation: slideInUp 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.floating-input-helper.dynamic span {
  line-height: 1.4;
  font-weight: 500;
}
.floating-input-helper.dynamic strong {
  font-weight: 700;
  color: var(--accent-color, #89B4FA);
}
.floating-input-helper.dynamic i {
  font-size: 1.1rem;
  min-width: 20px;
  text-align: center;
}
.floating-input-helper.success.dynamic {
  background: linear-gradient(135deg, rgba(166, 227, 161, 0.1), rgba(137, 180, 250, 0.1));
  border-color: rgba(166, 227, 161, 0.3);
}
.floating-input-helper.success.dynamic strong {
  color: var(--success-color, #A6E3A1);
}

.floating-input-with-icon .floating-input {
  padding-left: 3rem;
}
.floating-input-with-icon .floating-label {
  left: 3rem;
}
.floating-input-with-icon .floating-input-icon {
  position: absolute;
  left: 1rem;
  top: 1rem;
  transform: translateY(0);
  z-index: 4;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  align-items: center;
  height: 1.5rem;
  line-height: 1;
}
.floating-input-with-icon .floating-input:focus ~ .floating-input-icon {
  transform: scale(1.1);
}

.floating-input-with-icon-right .floating-input {
  padding-left: 1rem;
  padding-right: 3rem;
}
.floating-input-with-icon-right .floating-label {
  left: 1rem;
}
.floating-input-with-icon-right .floating-input-icon {
  position: absolute;
  right: 1rem;
  left: auto;
  top: 1rem;
  transform: translateY(0);
  z-index: 4;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  align-items: center;
  height: 1.5rem;
  line-height: 1;
}
.floating-input-with-icon-right .floating-input:focus ~ .floating-input-icon {
  transform: scale(1.1);
}

.floating-input-group.small .floating-input {
  padding: 0.75rem 1rem 0.5rem 1rem;
  font-size: 0.875rem;
}
.floating-input-group.small .floating-label {
  font-size: 0.875rem;
  top: 0.75rem;
}
.floating-input-group.small .floating-input:not(:-moz-placeholder) + .floating-label {
  transform: translateY(-0.4rem) scale(0.8);
}
.floating-input-group.small .floating-input:focus + .floating-label,
.floating-input-group.small .floating-input:valid + .floating-label,
.floating-input-group.small .floating-input:not(:placeholder-shown) + .floating-label {
  transform: translateY(-0.4rem) scale(0.8);
}
.floating-input-group.small.floating-input-with-icon .floating-input-icon {
  top: 0.75rem;
  height: 1.25rem;
}
.floating-input-group.small.floating-input-with-icon-right .floating-input-icon {
  top: 0.75rem;
  height: 1.25rem;
}

.floating-input-group.large .floating-input {
  padding: 1.25rem 1.25rem 1rem 1.25rem;
  font-size: 1.125rem;
}
.floating-input-group.large .floating-label {
  font-size: 1.125rem;
  top: 1.25rem;
  left: 1.25rem;
}
.floating-input-group.large .floating-input:not(:-moz-placeholder) + .floating-label {
  transform: translateY(-0.6rem) scale(0.85);
}
.floating-input-group.large .floating-input:focus + .floating-label,
.floating-input-group.large .floating-input:valid + .floating-label,
.floating-input-group.large .floating-input:not(:placeholder-shown) + .floating-label {
  transform: translateY(-0.6rem) scale(0.85);
}
.floating-input-group.large.floating-input-with-icon .floating-input-icon {
  top: 1.25rem;
  left: 1.25rem;
  height: 1.75rem;
}
.floating-input-group.large.floating-input-with-icon .floating-input {
  padding-left: 3.5rem;
}
.floating-input-group.large.floating-input-with-icon .floating-label {
  left: 3.5rem;
}
.floating-input-group.large.floating-input-with-icon-right .floating-input-icon {
  top: 1.25rem;
  right: 1.25rem;
  left: auto;
  height: 1.75rem;
}
.floating-input-group.large.floating-input-with-icon-right .floating-input {
  padding-right: 3.5rem;
}
.floating-input-group.large.floating-input-with-icon-right .floating-label {
  left: 1.25rem;
}

.floating-input-loading .floating-input {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.95) 25%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0.95) 75%);
  background-size: 200% 100%;
  animation: shimmer 2s infinite;
  pointer-events: none;
}

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
@keyframes gradientShift {
  0%, 100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}
@keyframes slideInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.floating-input-group::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: radial-gradient(circle, rgba(137, 180, 250, 0.3) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
  z-index: 1;
}

.floating-input:focus ~ .floating-input-group::before,
.floating-input-group:focus-within::before {
  width: 120%;
  height: 120%;
  opacity: 0;
}

@media (max-width: 768px) {
  .floating-input-group {
    margin-bottom: 1.25rem;
  }
  .floating-input {
    font-size: 16px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .floating-input,
  .floating-label,
  .floating-input-helper,
  .floating-input-icon {
    transition: none;
  }
  .floating-input-group::before {
    display: none;
  }
}
.pac-container {
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: none !important;
  border-radius: 16px !important;
  margin-top: 8px !important;
  padding: 8px !important;
  font-family: "Quicksand", sans-serif !important;
  overflow: hidden;
  z-index: 1000 !important;
}
.pac-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, #89B4FA, #F38BA8, #A6E3A1, #89B4FA);
  background-size: 200% 100%;
  animation: gradientShift 3s ease-in-out infinite;
  z-index: 1;
}

.pac-item {
  background: transparent !important;
  border: none !important;
  border-radius: 12px !important;
  margin: 4px 0 !important;
  padding: 12px 16px !important;
  font-family: "Quicksand", sans-serif !important;
  font-size: 0.95rem !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
  position: relative;
  z-index: 2;
}
.pac-item:hover {
  background: rgba(137, 180, 250, 0.08) !important;
  transform: translateX(4px) !important;
}
.pac-item.pac-item-selected {
  background: linear-gradient(135deg, rgba(137, 180, 250, 0.15), rgba(243, 139, 168, 0.15)) !important;
  transform: translateX(6px) !important;
}

.pac-icon {
  background-image: none !important;
  width: 20px !important;
  height: 20px !important;
  margin-right: 12px !important;
  margin-top: 2px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.pac-icon::before {
  content: "📍";
  font-size: 14px;
  filter: grayscale(0.3);
}

.pac-item:hover .pac-icon::before,
.pac-item-selected .pac-icon::before {
  filter: grayscale(0);
  transform: scale(1.1);
  transition: all 0.2s ease;
}

.pac-matched {
  color: #89B4FA !important;
  font-weight: 600 !important;
}

.pac-item-query {
  font-weight: 500 !important;
}

@media (max-width: 768px) {
  .pac-container {
    border-radius: 12px !important;
    margin-top: 4px !important;
  }
  .pac-item {
    padding: 16px !important;
    font-size: 16px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pac-item {
    transition: none !important;
  }
  .pac-item:hover, .pac-item.pac-item-selected {
    transform: none !important;
  }
  .pac-container::before {
    animation: none !important;
  }
}
/* SELECT2 STYLING - Bootstrap form-control matching */
.select2-container {
  box-sizing: border-box !important;
}

.select2-container--classic {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Prevent horizontal scroll from select2 dropdowns */
.select2-container--open + .select2-container--dropdown {
  max-width: 100vw !important;
}

/* Ensure dropdowns inside modals and containers respect boundaries */
.modal .select2-container,
.card .select2-container,
.lightcard .select2-container,
.lightcardnb .select2-container {
  max-width: 100% !important;
}

.modal .select2-dropdown,
.card .select2-dropdown,
.lightcard .select2-dropdown,
.lightcardnb .select2-dropdown {
  max-width: 100% !important;
}

.select2-container--classic .select2-selection--single {
  background-color: var(--background-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--border-radius) !important;
  height: calc(1.5em + 0.75rem + 2px) !important;
  transition: border-color 0.15s ease-in-out !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: center !important;
  position: relative !important;
  overflow: hidden !important;
}

/* Override Select2's default white background and styling */
.select2-container--classic .select2-selection--single,
.select2-container--classic .select2-selection--single .select2-selection__rendered,
.select2-container--classic .select2-selection--single:before,
.select2-container--classic .select2-selection--single:after {
  background-color: var(--background-colour) !important;
  background: var(--background-colour) !important;
  background-image: none !important;
}

/* Ensure no weird Select2 default styling */
.select2-container--classic .select2-selection--single {
  background-image: none !important;
  filter: none !important;
}

.select2-container--classic .select2-selection__rendered {
  color: var(--text-colour) !important;
  padding: 0.375rem 2.5rem 0.375rem 0.75rem !important;
  line-height: 1.5 !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  background: transparent !important;
  flex: 1 !important;
  border-radius: var(--border-radius) !important;
  margin: 0 !important;
}

.select2-container--classic .select2-selection__arrow {
  height: calc(1.5em + 0.75rem) !important;
  right: 0.75rem !important;
  top: 0 !important;
  width: 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: none !important;
  border: none !important;
}

.select2-container--classic .select2-selection__arrow b {
  border-color: var(--text-colour) transparent transparent transparent !important;
  border-style: solid !important;
  border-width: 4px 4px 0 4px !important;
  height: 0 !important;
  width: 0 !important;
  margin: 0 !important;
  position: static !important;
  transform: none !important;
}

.select2-container--classic.select2-container--focus .select2-selection--single {
  border-color: var(--secondary-colour) !important;
  outline: 0 !important;
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow) !important;
}

.select2-dropdown {
  background-color: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--border-radius) !important;
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow) !important;
  z-index: 1060 !important;
  max-width: calc(100vw - 2rem) !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

/* Ensure dropdown container has proper z-index - force lower than off-canvas */
.select2-container--open {
  z-index: 1060 !important;
}

.select2-container--open .select2-dropdown {
  z-index: 1060 !important;
}

/* Force z-index even when Select2 adds inline styles */
.select2-dropdown[style*=z-index] {
  z-index: 1060 !important;
}

.select2-container[style*=z-index] {
  z-index: 1060 !important;
}

/* Target any Select2 elements that might get higher z-index */
.select2-dropdown,
.select2-dropdown--below,
.select2-dropdown--above {
  z-index: 1060 !important;
}

.select2-results__option {
  display: block !important;
  width: 100% !important;
  padding: 0.375rem 0.75rem !important;
  clear: both !important;
  font-weight: 400 !important;
  color: var(--text-colour) !important;
  text-align: inherit !important;
  text-decoration: none !important;
  white-space: normal !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  background-color: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

.select2-results__option:hover,
.select2-results__option:focus {
  color: var(--text-colour) !important;
  background-color: var(--primary-colour) !important;
  text-decoration: none !important;
}

.select2-results__option--highlighted {
  color: var(--tertiary-colour) !important;
  background-color: var(--secondary-colour) !important;
  text-decoration: none !important;
}

.select2-results__option[aria-selected=true] {
  color: var(--tertiary-colour) !important;
  background-color: var(--secondary-colour) !important;
}

.select2-results {
  max-width: 100% !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

.select2-results__options {
  max-width: 100% !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

.select2-search {
  padding: 8px !important;
  background-color: var(--card-colour) !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.select2-search__field {
  width: 100% !important;
  padding: 0.375rem 0.75rem !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: var(--text-colour) !important;
  background-color: var(--background-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--border-radius) !important;
  transition: border-color 0.15s ease-in-out !important;
  outline: none !important;
}

.select2-search__field:focus {
  color: var(--text-colour) !important;
  background-color: var(--background-colour) !important;
  border-color: var(--secondary-colour) !important;
  outline: 0 !important;
  box-shadow: 0 0 0 0.2rem rgba(var(--secondary-colour-rgb), 0.25) !important;
}

/* Ensure search field is accessible and not blocked */
.select2-search__field {
  pointer-events: auto !important;
  -webkit-user-select: text !important;
  -moz-user-select: text !important;
  user-select: text !important;
  cursor: text !important;
  position: relative !important;
  z-index: 1060 !important;
}

/* Ensure search dropdown container is accessible */
.select2-search--dropdown {
  position: relative !important;
  z-index: 1060 !important;
  pointer-events: auto !important;
}

.select2-search--dropdown .select2-search__field {
  min-height: 30px !important;
  pointer-events: auto !important;
  cursor: text !important;
}

/* Clear/deselect button styling */
.select2-container--classic .select2-selection__clear {
  color: var(--text-colour) !important;
  cursor: pointer !important;
  float: right !important;
  font-weight: bold !important;
  margin-right: 10px !important;
  position: absolute !important;
  right: 25px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 18px !important;
  line-height: 1 !important;
  opacity: 0.6 !important;
  transition: opacity 0.2s ease !important;
}

.select2-container--classic .select2-selection__clear:hover {
  opacity: 1 !important;
  color: #dc3545 !important;
}

/* MULTI-SELECT STYLING */
.select2-container--classic .select2-selection--multiple {
  background-color: var(--background-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--border-radius) !important;
  min-height: calc(1.5em + 0.75rem + 2px) !important;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out !important;
  box-shadow: none !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0.375rem 0.75rem !important;
  cursor: text !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

.select2-container--classic.select2-container--focus .select2-selection--multiple {
  border-color: var(--secondary-colour) !important;
  outline: 0 !important;
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow) !important;
}

.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
  display: block !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

/* Choice items (selected pills with gradient) */
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
  background: linear-gradient(135deg, var(--primary-colour), rgba(var(--primary-colour-rgb, 66, 165, 245), 0.8)) !important;
  border: 1px solid var(--primary-colour) !important;
  border-radius: calc(var(--border-radius) * 0.75) !important;
  color: var(--tertiary-colour) !important;
  cursor: default !important;
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: top !important;
  margin: 0.125rem 0.25rem 0.125rem 0 !important;
  padding: 0.25rem 0.5rem !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
  gap: 0.25rem !important;
}

.select2-container--classic .select2-selection--multiple .select2-selection__choice__display {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
  background: rgba(255, 255, 255, 0.2) !important;
  border: none !important;
  color: var(--tertiary-colour) !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-weight: bold !important;
  font-size: 0.75rem !important;
  opacity: 0.8 !important;
  transition: all 0.2s ease !important;
  border-radius: 50% !important;
  width: 1rem !important;
  height: 1rem !important;
  line-height: 1 !important;
}

.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
  opacity: 1 !important;
  background: rgba(220, 53, 69, 0.8) !important;
  color: white !important;
  transform: scale(1.1) !important;
}

/* Inline search field - completely invisible, blend with container */
.select2-container--classic .select2-selection--multiple .select2-search--inline {
  display: inline-block !important;
  vertical-align: top !important;
  margin: 0 !important;
  background: var(--background-colour) !important;
  border: none !important;
  padding: 0 !important;
}

.select2-container--classic .select2-selection--multiple .select2-search--inline .select2-search__field {
  background: var(--background-colour) !important;
  border: none !important;
  outline: 0 !important;
  box-shadow: none !important;
  color: var(--text-colour) !important;
  font-size: 1rem !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 5em !important;
  height: auto !important;
  line-height: inherit !important;
  resize: none !important;
  font-family: inherit !important;
}

div[data-controller*=autocomplete] {
  position: relative;
}

.navbar-search-input {
  width: 100%;
  height: 2.75rem;
  background: rgba(255, 255, 255, 0.08) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 50px !important;
  padding: 0 3rem 0 1rem !important;
  font-family: "Quicksand", sans-serif !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  color: var(--text-colour) !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  outline: none !important;
  position: relative;
}
.navbar-search-input::-moz-placeholder {
  color: var(--muted-text) !important;
  opacity: 0.8 !important;
}
.navbar-search-input::placeholder {
  color: var(--muted-text) !important;
  opacity: 0.8 !important;
}
.navbar-search-input:hover {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(137, 180, 250, 0.4) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15) !important;
}
.navbar-search-input:focus {
  background: rgba(137, 180, 250, 0.15) !important;
  border-color: rgba(137, 180, 250, 0.6) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 12px rgba(137, 180, 250, 0.2) !important;
}

.search-kbd {
  position: absolute;
  right: 40px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 4px 8px;
  font-family: "SF Mono", "Monaco", "Menlo", "Consolas", monospace;
  font-size: 11px;
  font-weight: 500;
  color: var(--muted-text);
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 6px;
  pointer-events: none;
  opacity: 0.7;
  transition: opacity 0.2s ease;
}
.search-kbd .search-kbd-modifier {
  font-size: 12px;
}

.navbar-search-input:hover ~ .search-kbd {
  opacity: 0.9;
}

.navbar-search-input + .search-icon {
  position: absolute;
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.25rem;
  height: 1.25rem;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239ca3af'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3e%3c/svg%3e");
  background-size: contain;
  background-repeat: no-repeat;
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0.7;
}

.navbar-search-input:hover + .search-icon,
.navbar-search-input:focus + .search-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2389B4FA'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3e%3c/svg%3e");
  opacity: 1;
}

div[data-autocomplete-target=output] {
  --search-bg: var(--card-colour);
  --search-text: var(--text-colour);
  --search-muted: var(--muted-text);
  --search-hover: rgba(137, 180, 250, 0.12);
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 9999;
  margin-top: 8px;
  display: none;
  background: var(--search-bg) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: none !important;
  border-radius: 16px !important;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  max-height: 70vh;
}
@media (min-height: 686px) {
  div[data-autocomplete-target=output] {
    max-height: 480px;
  }
}
div[data-autocomplete-target=output]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, #89B4FA, #F38BA8, #A6E3A1, #89B4FA);
  background-size: 200% 100%;
  animation: gradientShift 3s ease-in-out infinite;
  z-index: 1;
}

.search-section-header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px 2px;
  font-family: "Quicksand", sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--search-muted);
  opacity: 0.8;
}
.search-section-header i {
  color: #89B4FA;
  opacity: 0.8;
}

.search-result-text mark {
  background: rgba(137, 180, 250, 0.25);
  color: inherit;
  padding: 0 1px;
  border-radius: 3px;
}

.search-result {
  display: block;
  padding: 4px 10px;
  margin: 0 6px;
  border-radius: 8px;
  text-decoration: none !important;
  color: inherit !important;
  transition: background 0.12s ease !important;
}
.search-result:hover, .search-result.highlighted {
  background: var(--search-hover) !important;
  color: inherit !important;
}

.search-result-content {
  display: flex;
  align-items: center;
  gap: 8px;
}

.search-result-icon {
  color: #89B4FA !important;
  font-size: 0.85rem !important;
  width: 16px !important;
  text-align: center !important;
  flex-shrink: 0;
}

.search-result-text {
  flex: 1;
  min-width: 0;
  line-height: 1.3;
}
.search-result-text strong {
  color: var(--search-text) !important;
  font-weight: 600 !important;
  font-family: "Quicksand", sans-serif !important;
  display: block;
  font-size: 0.82rem !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.search-result-text small {
  color: var(--search-muted) !important;
  font-size: 0.72rem !important;
  opacity: 0.8 !important;
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.search-result-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}
.search-result-row strong {
  flex: 1;
  min-width: 0;
}

.search-result-meta {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 6px;
  font-size: 0.66rem;
  color: var(--search-muted);
  opacity: 0.9;
}
.search-result-meta i {
  margin-right: 3px;
  opacity: 0.7;
}

.search-result-author {
  display: inline-flex;
  align-items: center;
}

.search-result-time {
  font-style: italic;
  opacity: 0.7;
}

.search-result-pill {
  display: inline-block;
  padding: 0 7px;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.5;
  border: 1px solid transparent;
}
.search-result-pill--signed {
  background: rgba(166, 227, 161, 0.15);
  color: #a6e3a1;
  border-color: rgba(166, 227, 161, 0.35);
}
.search-result-pill--sent {
  background: rgba(137, 180, 250, 0.15);
  color: #89b4fa;
  border-color: rgba(137, 180, 250, 0.35);
}
.search-result-pill--draft {
  background: rgba(249, 226, 175, 0.12);
  color: #f9e2af;
  border-color: rgba(249, 226, 175, 0.3);
}
.search-result-pill--info {
  background: rgba(137, 180, 250, 0.1);
  color: var(--search-muted);
  border-color: rgba(137, 180, 250, 0.25);
  text-transform: none;
}

.search-section-count {
  margin-left: auto;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(137, 180, 250, 0.12);
  color: #89B4FA;
  font-size: 0.65rem;
  letter-spacing: 0;
}

.search-result-go {
  margin-left: auto;
  color: var(--search-muted);
  opacity: 0;
  font-size: 0.85rem;
  transition: opacity 0.15s ease;
}

.search-result:hover .search-result-go,
.search-result.highlighted .search-result-go {
  opacity: 0.8;
}

.search-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 2px 14px 6px;
}

.search-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 9px;
  border-radius: 999px;
  border: 1px solid rgba(137, 180, 250, 0.25);
  background: rgba(137, 180, 250, 0.06);
  color: var(--search-muted);
  font-family: "Quicksand", sans-serif;
  font-size: 0.72rem;
  cursor: pointer;
  transition: all 0.15s ease;
}
.search-chip i {
  font-size: 0.6rem;
  color: #89B4FA;
  opacity: 0.7;
}
.search-chip:hover {
  border-color: rgba(137, 180, 250, 0.5);
  background: rgba(137, 180, 250, 0.12);
  color: var(--search-text);
}

.search-footer {
  position: sticky;
  bottom: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 4px;
  padding: 4px 14px;
  background: var(--search-bg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid rgba(137, 180, 250, 0.15);
  font-family: "Quicksand", sans-serif;
  font-size: 0.66rem;
  color: var(--search-muted);
}
.search-footer kbd {
  padding: 0 4px;
  border-radius: 4px;
  border: 1px solid rgba(137, 180, 250, 0.3);
  background: rgba(137, 180, 250, 0.08);
  color: inherit;
  font-size: 0.65rem;
}
.search-footer .search-footer-scope {
  margin-left: auto;
  color: #89B4FA;
  font-weight: 600;
}

.search-loading,
.search-error,
.search-no-results {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 20px;
  color: var(--muted-text) !important;
  font-family: "Quicksand", sans-serif !important;
  font-size: 0.95rem;
}
.search-loading i,
.search-error i,
.search-no-results i {
  color: #89B4FA !important;
  font-size: 1.1rem;
}

.search-loading i {
  animation: bounce 1s ease-in-out infinite;
}

@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-5px);
  }
}
.select2-results__option.loading-results {
  text-align: center !important;
  color: var(--muted-text) !important;
  font-style: italic !important;
  padding: 20px !important;
}
.select2-results__option.loading-results::before {
  content: ".";
  margin-right: 8px;
  animation: dots 0.9s infinite;
  display: inline-block;
  font-size: 1.2rem;
}

@keyframes dots {
  0%, 20% {
    content: ".";
    opacity: 0.3;
  }
  40% {
    content: "..";
    opacity: 0.6;
  }
  60%, 100% {
    content: "...";
    opacity: 1;
  }
}
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
@media (max-width: 768px) {
  .navbar-search-input {
    height: 2.5rem !important;
    font-size: 14px !important;
    padding: 0 2.5rem 0 0.875rem !important;
    max-width: 100% !important;
  }
  .search-icon {
    right: 0.5rem !important;
    width: 1rem !important;
    height: 1rem !important;
  }
  .search-kbd {
    display: none !important;
  }
  .search-result {
    padding: 4px 8px !important;
    margin: 0 4px !important;
  }
  .search-result-icon {
    font-size: 0.85rem !important;
    width: 15px !important;
  }
  .search-result-content {
    gap: 8px !important;
  }
  .search-result-text strong {
    font-size: 0.8rem !important;
  }
  .search-result-text small {
    font-size: 0.7rem !important;
  }
  div[data-autocomplete-target=output] {
    margin-top: 4px !important;
    max-height: 300px !important;
  }
}
.search-autocomplete-dropdown *,
.select2-dropdown * {
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.select2-dropdown.select2-dropdown--below {
  border: none !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  margin-top: 8px !important;
  z-index: 9999 !important;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
  background: var(--card-colour) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
}

.select2-container .select2-selection--single[aria-owns*=global-search] {
  background: var(--card-colour) !important;
  border: 2px solid var(--border-color) !important;
  border-radius: 12px !important;
  height: 3.5rem !important;
}

.quote-search-container {
  position: relative;
}

div[data-quote-search-target=output] {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 1060;
  margin-top: 8px;
  display: none;
  background: var(--card-colour) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: none !important;
  border-radius: 16px !important;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  max-height: 300px;
}
div[data-quote-search-target=output]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, #89B4FA, #F38BA8, #A6E3A1, #89B4FA);
  background-size: 200% 100%;
  animation: gradientShift 3s ease-in-out infinite;
  z-index: 1;
}

.quote-result {
  display: block;
  padding: 12px 16px;
  margin: 4px 8px;
  border-radius: 12px;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(137, 180, 250, 0.2) !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
  backdrop-filter: blur(5px) !important;
  -webkit-backdrop-filter: blur(5px) !important;
}
.quote-result:hover, .quote-result.highlighted {
  background: linear-gradient(135deg, rgba(137, 180, 250, 0.15), rgba(243, 139, 168, 0.15)) !important;
  border-color: rgba(137, 180, 250, 0.4) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1) !important;
}

.quote-result-content {
  display: flex;
  align-items: center;
  gap: 12px;
}

.quote-result-icon {
  color: #89B4FA !important;
  font-size: 1.1rem !important;
  width: 20px !important;
  text-align: center !important;
  flex-shrink: 0;
}

.quote-result-text {
  flex: 1;
}
.quote-result-text strong {
  color: var(--text-colour) !important;
  font-weight: 600 !important;
  font-family: "Quicksand", sans-serif !important;
  display: block;
  margin-bottom: 2px;
}
.quote-result-text small {
  color: var(--muted-text) !important;
  font-size: 0.85rem !important;
  opacity: 0.8 !important;
  display: block;
}

.quote-search-loading,
.quote-search-error,
.quote-search-no-results,
.quote-search-message {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 20px;
  color: var(--muted-text) !important;
  font-family: "Quicksand", sans-serif !important;
  font-size: 0.95rem;
}
.quote-search-loading i,
.quote-search-error i,
.quote-search-no-results i,
.quote-search-message i {
  color: #89B4FA !important;
  font-size: 1.1rem;
}

.quote-search-loading i {
  animation: spin 1s linear infinite;
}

@media (max-width: 768px) {
  .quote-result {
    padding: 10px 12px !important;
    margin: 2px 4px !important;
  }
  .quote-result-icon {
    font-size: 1rem !important;
    width: 16px !important;
  }
  .quote-result-content {
    gap: 10px !important;
  }
  .quote-result-text strong {
    font-size: 0.9rem !important;
  }
  .quote-result-text small {
    font-size: 0.8rem !important;
  }
  div[data-quote-search-target=output] {
    margin-top: 4px !important;
    max-height: 250px !important;
  }
}
/* Badge marking catalog fields the 3D design tool requires (SLD generation) */
.dt-required-badge {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  padding: 3px 7px;
  border-radius: 10px;
  color: var(--secondary-colour, #f47424);
  border: 1px solid var(--secondary-colour, #f47424);
  opacity: 0.85;
  white-space: nowrap;
  cursor: help;
}

/* Badge marking catalog fields the Rails battery analysis requires */
.ba-required-badge {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  padding: 3px 7px;
  border-radius: 10px;
  color: var(--accent-colour, #3aa0a0);
  border: 1px solid var(--accent-colour, #3aa0a0);
  opacity: 0.85;
  white-space: nowrap;
  cursor: help;
}

/* Floating expandable menu */
.floating-menu {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 1050;
}

.floating-menu__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid #d5d9d9;
  background-color: #ffffff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  cursor: pointer;
}

.floating-menu__panel {
  margin-top: 8px;
  min-width: 220px;
  max-width: 280px;
  max-height: 60vh;
  overflow-y: auto;
  padding: 10px;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  background-color: #ffffff;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}

.floating-menu__item {
  padding: 2px 0;
}

.floating-menu__item a {
  text-decoration: none;
  color: #335eea;
}

.floating-menu.is-open .floating-menu__panel {
  display: block;
}

.kanban-board {
  overflow-x: auto;
  overflow-y: hidden;
}
.kanban-board .kanban-columns-container {
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
  min-width: -moz-fit-content;
  min-width: fit-content;
  padding-bottom: 1rem;
}
.kanban-board .kanban-column-wrapper {
  flex: 0 0 auto;
}
.kanban-board .kanban-column {
  width: 280px;
  min-width: 280px;
  max-width: 280px;
}
.kanban-board .kanban-column .kanban-header {
  transition: background-color 0.2s;
}
.kanban-board .kanban-column .kanban-body {
  min-height: 400px;
  max-height: 70vh;
  overflow-y: auto;
  transition: background-color 0.2s;
}
.kanban-board .kanban-column.drag-over {
  background-color: rgba(40, 167, 69, 0.1);
  border: 2px dashed #28a745;
  border-radius: 8px;
}
.kanban-board .kanban-column.drag-over .kanban-header {
  background-color: rgba(40, 167, 69, 0.1) !important;
}
.kanban-board .kanban-column.stage-drag-over {
  border: 2px dashed #007bff;
  border-radius: 8px;
  background-color: rgba(0, 123, 255, 0.05);
}
.kanban-board .kanban-column.column-drag-over {
  border: 2px dashed #007bff;
  border-radius: 8px;
  background-color: rgba(0, 123, 255, 0.05);
}
.kanban-board .kanban-column.column-dragging {
  opacity: 0.6;
  transform: rotate(2deg);
  z-index: 1000;
}
.kanban-board .kanban-column.column-drag-over {
  border: 2px dashed #007bff;
  border-radius: 8px;
  background-color: rgba(0, 123, 255, 0.05);
}
.kanban-board .column-drag-handle {
  display: flex;
  align-items: center;
  opacity: 0.6;
  transition: opacity 0.2s;
}
.kanban-board .column-drag-handle:hover {
  opacity: 1;
}
.kanban-board .column-drag-handle:active {
  cursor: grabbing;
}
.kanban-board {
  scroll-behavior: smooth;
}
.kanban-board::-webkit-scrollbar {
  height: 8px;
}
.kanban-board::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 4px;
  margin: 0 1rem;
}
.kanban-board::-webkit-scrollbar-thumb {
  background: #c1c1c1;
  border-radius: 4px;
}
.kanban-board::-webkit-scrollbar-thumb:hover {
  background: #a8a8a8;
}
.kanban-board::before, .kanban-board::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 20px;
  pointer-events: none;
  z-index: 1;
  transition: opacity 0.3s;
}
.kanban-board::before {
  left: 0;
  background: linear-gradient(to right, rgba(255, 255, 255, 0.8), transparent);
  opacity: 0;
}
.kanban-board::after {
  right: 0;
  background: linear-gradient(to left, rgba(255, 255, 255, 0.8), transparent);
  opacity: 0;
}
.kanban-board.scrollable-left::before {
  opacity: 1;
}
.kanban-board.scrollable-right::after {
  opacity: 1;
}

.quote-card {
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  min-width: 250px !important;
}
.quote-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.quote-card:hover .dropdown-toggle {
  opacity: 1;
}
.quote-card.dragging {
  opacity: 0.5;
  transform: rotate(5deg);
  cursor: grabbing;
}
.quote-card .card-title-field {
  padding-right: 2.5rem;
}
.quote-card .card-title-field a {
  display: block;
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
  line-height: 1.3;
}
.quote-card.just-moved {
  animation: justMoved 1s ease-out;
}
.quote-card .move-drag-btn {
  cursor: grab;
  opacity: 0.8;
  transition: all 0.2s ease;
  border: 1px solid var(--border-colour) !important;
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.quote-card .move-drag-btn:hover {
  opacity: 1;
  background-color: var(--primary-colour) !important;
  border-color: var(--secondary-colour) !important;
  color: var(--text-colour) !important;
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.quote-card .move-drag-btn:active {
  cursor: grabbing;
  transform: translateY(0);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  background-color: var(--secondary-colour) !important;
  color: var(--tertiary-colour) !important;
}
.quote-card .move-drag-btn i {
  font-size: 0.7rem;
  color: inherit;
}
.quote-card .move-drag-btn i:first-child {
  opacity: 0.7;
}
.quote-card .move-drag-btn:hover i:first-child {
  opacity: 1;
}

@keyframes justMoved {
  0% {
    transform: scale(1.05);
    box-shadow: 0 0 20px rgba(40, 167, 69, 0.5);
  }
  100% {
    transform: scale(1);
    box-shadow: none;
  }
}
@keyframes dropIndicator {
  0% {
    opacity: 0.6;
    transform: scaleY(0.8);
  }
  100% {
    opacity: 1;
    transform: scaleY(1);
  }
}
@keyframes successPulse {
  0% {
    transform: scale(1);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  }
  50% {
    transform: scale(1.03);
    box-shadow: 0 8px 25px rgba(40, 167, 69, 0.3);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  }
}
@keyframes dropZonePulse {
  0% {
    border-color: #007bff;
    background-color: rgba(0, 123, 255, 0.1);
  }
  100% {
    border-color: #0056b3;
    background-color: rgba(0, 123, 255, 0.2);
  }
}
@media (max-width: 768px) {
  .kanban-board {
    max-width: 100%;
  }
  .kanban-board .kanban-column {
    width: 280px;
    min-width: 280px;
    max-width: 280px;
  }
  .kanban-board .kanban-body {
    min-height: 300px;
  }
  .mobile-controls-container .view-switcher .compact-btn {
    flex-shrink: 0;
    min-width: 44px;
    min-height: 44px;
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    display: inline-flex !important;
  }
  .mobile-controls-container .view-switcher .compact-btn i {
    font-size: 1rem;
    min-width: 16px;
    text-align: center;
  }
  .mobile-controls-container .view-switcher .compact-btn:active {
    transform: scale(0.95);
    background-color: rgba(0, 130, 150, 0.1);
  }
  .mobile-controls-container .view-switcher-dropdown .dropdown .button-13 {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    white-space: nowrap;
  }
  .mobile-controls-container .workflow-actions {
    flex-wrap: nowrap !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    display: flex !important;
    flex-direction: row !important;
  }
  .mobile-controls-container .workflow-actions .compact-btn {
    flex-shrink: 0;
    min-width: 44px;
    min-height: 44px;
  }
  .quote-card {
    cursor: pointer;
  }
  .quote-card .move-drag-btn {
    font-size: 0.65rem !important;
    padding: 0.25rem 0.4rem !important;
    opacity: 0.9;
  }
  .quote-card .move-drag-btn:hover {
    transform: none;
  }
  .quote-card .move-drag-btn i {
    font-size: 0.6rem !important;
  }
}
@media (max-width: 480px) {
  .kanban-board .kanban-column {
    width: 280px;
    min-width: 280px;
    max-width: 280px;
  }
  .kanban-board .kanban-header {
    padding: 0.75rem !important;
  }
  .kanban-board .kanban-header h5 {
    font-size: 1rem;
  }
  .kanban-board .kanban-body {
    min-height: 250px;
    padding: 0.5rem !important;
  }
  .quote-card .card-body {
    padding: 0.5rem !important;
  }
  .quote-card .card-title {
    font-size: 0.9rem;
  }
  .quote-card .move-quote-btn {
    font-size: 0.65rem;
    padding: 0.15rem 0.3rem;
  }
  .mobile-controls-container .view-switcher .compact-btn {
    min-width: 40px;
    min-height: 40px;
    padding: 0.375rem 0.5rem;
    font-size: 0.75rem;
  }
  .mobile-controls-container .view-switcher .compact-btn i {
    font-size: 0.875rem;
  }
  .mobile-controls-container .workflow-actions {
    gap: 0.25rem !important;
    flex-wrap: nowrap !important;
  }
  .mobile-controls-container .workflow-actions .compact-btn {
    min-width: 40px;
    min-height: 40px;
    padding: 0.375rem 0.5rem;
  }
  .mobile-controls-container .workflow-actions .compact-btn span {
    display: none !important;
  }
}
.workflow-header .workflow-actions {
  gap: 0.5rem;
}
.workflow-header .workflow-actions .btn {
  white-space: nowrap;
}

.workflows-grid .workflow-grid-container {
  position: relative;
  min-height: 400px;
}
.workflows-grid .workflow-cards-layer {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
  position: relative;
}
.workflows-grid .workflow-cards-layer .workflow-card-wrapper.preview-moving {
  position: relative;
  z-index: 20;
}
.workflows-grid .drop-zone {
  position: absolute;
  background-color: rgba(0, 123, 255, 0.05);
  border: 3px dashed #007bff;
  border-radius: 12px;
  opacity: 0;
  transition: all 0.2s;
  z-index: -1;
  pointer-events: none;
}
.workflows-grid .drop-zone.active {
  opacity: 1;
  z-index: 5;
  pointer-events: auto;
  background-color: rgba(0, 123, 255, 0.08);
  border-color: #0056b3;
  animation: dropZonePulse 1.5s ease-in-out infinite alternate;
  box-shadow: inset 0 2px 8px rgba(0, 123, 255, 0.1);
}
.workflows-grid .drop-zone::before {
  content: "Drop here";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #007bff;
  font-weight: 600;
  font-size: 0.85rem;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.2s;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8);
  background-color: rgba(255, 255, 255, 0.9);
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  border: 1px solid rgba(0, 123, 255, 0.2);
}
.workflows-grid .drop-zone.active::before {
  opacity: 1;
}
.workflows-grid .workflow-card-wrapper {
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.workflows-grid .workflow-card-wrapper.dragging {
  opacity: 0.3;
  transform: scale(0.95);
  z-index: 1000;
  transition: none;
}
.workflows-grid .workflow-card-wrapper.preview-moving {
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: 20;
}
.workflows-grid .workflow-card-wrapper.will-move .workflow-card {
  transform: scale(0.95);
  opacity: 0.7;
  border: 2px solid #ffc107;
  box-shadow: 0 4px 12px rgba(255, 193, 7, 0.3);
}
.workflows-grid .workflow-card-wrapper.success-move .workflow-card {
  animation: successPulse 0.6s ease-out;
}
.workflows-grid .workflow-card {
  transition: box-shadow 0.2s;
  position: relative;
  z-index: 10;
  background-color: white;
}
.workflows-grid .workflow-card:hover {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  z-index: 15;
}
.workflows-grid .workflow-card .drag-handle, .workflows-grid .workflow-card .drag-handle-spreadsheet {
  cursor: grab;
  opacity: 0.5;
  transition: opacity 0.2s;
}
.workflows-grid .workflow-card .drag-handle:hover, .workflows-grid .workflow-card .drag-handle-spreadsheet:hover {
  opacity: 1;
}
.workflows-grid .workflow-card .drag-handle:active, .workflows-grid .workflow-card .drag-handle-spreadsheet:active {
  cursor: grabbing;
}
.workflows-grid .workflow-card .drag-handle-cell {
  width: 50px;
  text-align: center;
  vertical-align: middle;
}
.workflows-grid .workflow-card .drag-handle-cell .drag-handle-spreadsheet {
  display: inline-block;
  padding: 8px;
  border-radius: 4px;
  transition: all 0.2s;
}
.workflows-grid .workflow-card .drag-handle-cell .drag-handle-spreadsheet:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
.workflows-grid .workflow-card .workflow-color-indicator {
  flex-shrink: 0;
}
.workflows-grid .workflow-card .workflow-actions .mdui-icon {
  opacity: 0.7;
  transition: opacity 0.2s;
}
.workflows-grid .workflow-card .workflow-actions .mdui-icon:hover {
  opacity: 1;
}
.workflows-grid .workflow-card .workflow-actions .mdui-icon.text-danger:hover {
  color: #dc3545 !important;
}
.workflows-grid .workflow-card .position-indicator {
  font-size: 0.75rem;
  opacity: 0.6;
}
.workflows-grid .workflow-placeholder .border-dashed {
  border: 2px dashed #dee2e6 !important;
  background-color: #f8f9fa;
  opacity: 0.7;
}

.workflow-visual-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--workflow-colour) 14%, var(--card-colour));
  color: var(--workflow-colour);
}

.workflow-header-visual {
  width: 46px;
  height: 46px;
  border-radius: 6px;
  -o-object-fit: cover;
     object-fit: cover;
  flex: 0 0 46px;
  font-size: 1.25rem;
}

.workflow-icon-options {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(44px, 1fr));
  gap: 8px;
  max-width: 560px;
}
.workflow-icon-options .workflow-icon-option {
  cursor: pointer;
  margin: 0;
}
.workflow-icon-options .workflow-icon-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.workflow-icon-options .workflow-icon-option span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  background: var(--card-colour);
  color: var(--text-colour);
  transition: border-color 0.15s, background-color 0.15s, color 0.15s;
}
.workflow-icon-options .workflow-icon-option input:checked + span {
  border-color: var(--secondary-colour);
  background: var(--secondary-colour);
  color: var(--tertiary-colour);
}
.workflow-icon-options .workflow-icon-option input:focus-visible + span {
  outline: 2px solid var(--secondary-colour);
  outline-offset: 2px;
}

.workflow-image-current {
  display: flex;
  align-items: center;
  gap: 12px;
}
.workflow-image-current img {
  width: 56px;
  height: 56px;
  border-radius: 6px;
  -o-object-fit: cover;
     object-fit: cover;
}

.color-preset-btn {
  width: 24px;
  height: 24px;
  border: 2px solid #fff;
  border-radius: 50%;
  margin-right: 0.25rem;
  padding: 0;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.color-preset-btn:hover {
  transform: scale(1.1);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  border-color: #dee2e6;
}
.color-preset-btn:focus {
  outline: none;
  border-color: #007bff;
  box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}
.color-preset-btn:active {
  transform: scale(0.95);
}

.color-presets .color-preset-btn {
  display: inline-block;
  vertical-align: middle;
}

.stage-dropdown .dropdown-menu {
  min-width: 200px;
}
.stage-dropdown .dropdown-menu .dropdown-header {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.stage-dropdown .dropdown-menu .dropdown-item {
  font-size: 0.875rem;
}
.stage-dropdown .dropdown-menu .dropdown-item i {
  width: 16px;
  text-align: center;
}
.stage-dropdown .dropdown-menu .dropdown-item.text-danger:hover {
  background-color: rgba(220, 53, 69, 0.1);
}
.stage-dropdown .dropdown-menu .dropdown-item.text-warning:hover {
  background-color: rgba(255, 193, 7, 0.1);
}

.quote-move-dropdown .dropdown-menu {
  min-width: 180px;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}
.quote-move-dropdown .dropdown-menu .dropdown-header {
  background-color: rgba(0, 0, 0, 0.03);
  font-weight: 600;
}
.quote-move-dropdown .dropdown-menu .dropdown-item {
  padding: 0.5rem 1rem;
}
.quote-move-dropdown .dropdown-menu .dropdown-item:hover {
  background-color: rgba(0, 123, 255, 0.1);
}
.quote-move-dropdown .dropdown-menu .dropdown-item i {
  width: 18px;
}

.kanban-empty-state .empty-icon {
  font-size: 3rem;
  opacity: 0.5;
}
.kanban-empty-state .empty-title {
  font-size: 1.5rem;
  font-weight: 300;
}
.kanban-empty-state .empty-description {
  opacity: 0.7;
}

.stage-counter {
  font-size: 0.75rem;
  opacity: 0.8;
}
.stage-counter.has-quotes {
  opacity: 1;
  font-weight: 500;
}

.kanban-notification {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 9999;
  min-width: 300px;
  animation: slideInRight 0.3s ease-out;
}
.kanban-notification.slide-out {
  animation: slideOutRight 0.3s ease-in;
}

@keyframes slideInRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes slideOutRight {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}
.quote-move-modal .workflow-item, .quote-move-modal .stage-item, .bulk-move-modal .workflow-item, .bulk-move-modal .stage-item {
  transition: all 0.2s ease;
  cursor: pointer;
  background-color: var(--card-colour) !important;
  border-color: var(--border-colour) !important;
  color: var(--text-colour) !important;
}
.quote-move-modal .workflow-item:hover:not(.selected):not(.disabled), .quote-move-modal .stage-item:hover:not(.selected):not(.disabled), .bulk-move-modal .workflow-item:hover:not(.selected):not(.disabled), .bulk-move-modal .stage-item:hover:not(.selected):not(.disabled) {
  border-color: var(--secondary-colour) !important;
  background-color: var(--primary-colour) !important;
}
.quote-move-modal .workflow-item.selected, .quote-move-modal .stage-item.selected, .bulk-move-modal .workflow-item.selected, .bulk-move-modal .stage-item.selected {
  border-color: var(--secondary-colour) !important;
  border-width: 2px;
  background-color: var(--primary-colour) !important;
}
.quote-move-modal .workflow-item.disabled, .quote-move-modal .stage-item.disabled, .bulk-move-modal .workflow-item.disabled, .bulk-move-modal .stage-item.disabled {
  cursor: not-allowed !important;
  opacity: 0.5;
}
.quote-move-modal .current-selection, .bulk-move-modal .current-selection {
  border-left: 4px solid var(--secondary-colour);
  background-color: var(--primary-colour) !important;
}
.quote-move-modal .workflows-container, .quote-move-modal .stages-container, .bulk-move-modal .workflows-container, .bulk-move-modal .stages-container {
  border-radius: 0.375rem;
  padding: 1rem;
}
.quote-move-modal .workflow-stats .badge, .quote-move-modal .stage-stats .badge, .bulk-move-modal .workflow-stats .badge, .bulk-move-modal .stage-stats .badge {
  font-size: 0.75rem;
}
.quote-move-modal .modal-content, .bulk-move-modal .modal-content {
  border: none;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}
.quote-move-modal .modal-header .modal-title, .bulk-move-modal .modal-header .modal-title {
  font-weight: 600;
}
.quote-move-modal .modal-body, .bulk-move-modal .modal-body {
  padding: 1.5rem;
}
.quote-move-modal .modal-footer, .bulk-move-modal .modal-footer {
  padding: 1rem 1.5rem;
}
.quote-move-modal .modal-footer .button-13, .quote-move-modal .modal-footer .button-13-outline, .bulk-move-modal .modal-footer .button-13, .bulk-move-modal .modal-footer .button-13-outline {
  min-width: 120px;
}

.stage-stats .stage-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(60px, 1fr));
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.stage-stats .stage-stats-grid .stat-item {
  text-align: center;
  padding: 0.25rem 0.125rem;
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.stage-stats .stage-stats-grid .stat-item .stat-label {
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  opacity: 0.8;
  margin-bottom: 0.125rem;
  font-weight: 500;
}
.stage-stats .stage-stats-grid .stat-item .stat-value {
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
}
.stage-stats .text-muted.small {
  text-align: center;
  font-style: italic;
  opacity: 0.6;
}

.stage-sort-controls .sort-btn {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 4px;
  padding: 0.25rem 0.375rem;
  color: inherit;
  font-size: 0.75rem;
  transition: all 0.2s ease;
  position: relative;
  min-width: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.7;
}
.stage-sort-controls .sort-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.3);
  opacity: 1;
  transform: translateY(-1px);
}
.stage-sort-controls .sort-btn:active {
  transform: translateY(0);
}
.stage-sort-controls .sort-btn .sort-indicator {
  position: absolute;
  top: -2px;
  right: -2px;
  font-size: 8px;
  opacity: 0;
  transition: opacity 0.2s;
}
.stage-sort-controls .sort-btn .sort-indicator::after {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
}
.stage-sort-controls .sort-btn.sort-active {
  background: rgba(255, 255, 255, 0.25);
  border-color: rgba(255, 255, 255, 0.4);
  opacity: 1;
  font-weight: 600;
}
.stage-sort-controls .sort-btn.sort-active .sort-indicator {
  opacity: 1;
}
.stage-sort-controls .sort-btn.sort-active.sort-asc .sort-indicator::after {
  border-left: 3px solid transparent;
  border-right: 3px solid transparent;
  border-bottom: 4px solid currentColor;
}
.stage-sort-controls .sort-btn.sort-active.sort-desc .sort-indicator::after {
  border-left: 3px solid transparent;
  border-right: 3px solid transparent;
  border-top: 4px solid currentColor;
}
.stage-sort-controls .sort-btn i {
  font-size: 0.75rem;
}

@media (max-width: 768px) {
  .stage-stats .stage-stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.25rem;
  }
  .stage-stats .stage-stats-grid .stat-item {
    padding: 0.2rem 0.1rem;
  }
  .stage-stats .stage-stats-grid .stat-item .stat-label {
    font-size: 0.55rem;
  }
  .stage-stats .stage-stats-grid .stat-item .stat-value {
    font-size: 0.65rem;
  }
  .stage-sort-controls .sort-btn {
    padding: 0.2rem 0.3rem;
    min-width: 28px;
  }
  .stage-sort-controls .sort-btn i {
    font-size: 0.65rem;
  }
}
@media (max-width: 480px) {
  .stage-stats .stage-stats-grid .stat-item .stat-label {
    font-size: 0.5rem;
    margin-bottom: 0.1rem;
  }
  .stage-stats .stage-stats-grid .stat-item .stat-value {
    font-size: 0.6rem;
  }
  .stage-sort-controls {
    gap: 2px;
  }
  .stage-sort-controls .sort-btn {
    padding: 0.15rem 0.25rem;
    min-width: 26px;
  }
  .stage-sort-controls .sort-btn i {
    font-size: 0.6rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .quote-card {
    transition: none;
  }
  .quote-card.just-moved {
    animation: none;
    box-shadow: 0 0 0 2px #28a745;
  }
  .kanban-notification {
    animation: none;
  }
  .stage-sort-controls .sort-btn {
    transition: none;
  }
  .stage-stats .stat-item {
    transition: none;
  }
}
th.sortable-header {
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: background-color 0.2s ease;
  padding: 0.875rem 0.75rem !important;
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
}
th.sortable-header:hover {
  background-color: var(--primary-colour) !important;
  color: var(--secondary-colour) !important;
}
th.sortable-header .sort-indicators {
  opacity: 0;
  transition: opacity 0.2s ease;
  min-width: 16px;
}
th.sortable-header .sort-indicators .sort-asc,
th.sortable-header .sort-indicators .sort-desc {
  display: block;
  line-height: 0.6;
  font-size: 0.7rem;
  color: var(--text-colour);
  opacity: 0.5;
  transition: color 0.2s ease;
}
th.sortable-header .sort-indicators .sort-asc.active,
th.sortable-header .sort-indicators .sort-desc.active {
  color: var(--secondary-colour);
  opacity: 1;
  font-weight: 900;
}
th.sortable-header:hover .sort-indicators {
  opacity: 1;
}
th.sortable-header.sorted-asc, th.sortable-header.sorted-desc {
  background-color: var(--primary-colour) !important;
  color: var(--secondary-colour) !important;
  font-weight: 600 !important;
}
th.sortable-header.sorted-asc .sort-indicators, th.sortable-header.sorted-desc .sort-indicators {
  opacity: 1;
}
th.sortable-header.sorted-asc i, th.sortable-header.sorted-desc i {
  color: var(--secondary-colour) !important;
}
th.sortable-header.sorted-asc i::before {
  content: "\f0de" !important;
}
th.sortable-header.sorted-desc i::before {
  content: "\f0dd" !important;
}
th.sortable-header.sorting .sort-indicators {
  opacity: 1;
}

button.sortable-header {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: color 0.2s ease;
  font-weight: inherit;
  color: inherit;
  text-align: left;
}
button.sortable-header:hover {
  color: #007bff;
}
button.sortable-header.sorted-asc, button.sortable-header.sorted-desc {
  color: #007bff;
  font-weight: 600;
}
button.sortable-header i {
  transition: color 0.2s ease;
}
button.sortable-header:hover i {
  color: #007bff;
}

.spreadsheet-table thead.bg-theme {
  background-color: var(--bs-theme) !important;
}
.spreadsheet-table thead.bg-theme th {
  background-color: var(--bs-theme) !important;
  border-bottom-color: rgba(0, 0, 0, 0.1);
}
.spreadsheet-table .quote-row {
  transition: background-color 0.2s ease;
}
.spreadsheet-table .quote-row:hover {
  background-color: rgba(0, 123, 255, 0.02);
}
.spreadsheet-table .quote-row.dragging {
  opacity: 0.6;
  transform: scale(0.98);
}

.column-config-modal .modal-content, .card-fields-modal .modal-content {
  border: none;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}
.column-config-modal .modal-header, .card-fields-modal .modal-header {
  border-bottom: 1px solid var(--border-colour, #dee2e6);
}
.column-config-modal .modal-header .modal-title, .card-fields-modal .modal-header .modal-title {
  font-weight: 600;
  color: var(--text-colour, #495057);
}
.column-config-modal .modal-header .btn-close, .card-fields-modal .modal-header .btn-close {
  background: none;
  border: none;
  font-size: 1.2rem;
  opacity: 0.7;
  transition: opacity 0.2s;
  color: var(--text-colour, #495057);
}
.column-config-modal .modal-header .btn-close:hover, .card-fields-modal .modal-header .btn-close:hover {
  opacity: 1;
  color: var(--secondary-colour, #f47424);
}
.column-config-modal .modal-body, .card-fields-modal .modal-body {
  padding: 1.5rem;
}
.column-config-modal .modal-footer, .card-fields-modal .modal-footer {
  border-top: 1px solid var(--border-colour, #dee2e6);
  padding: 1rem 1.5rem;
}
.column-config-modal .column-list, .card-fields-modal .column-list {
  border: 1px solid var(--border-colour, #dee2e6);
  border-radius: 8px;
  max-height: 300px;
  overflow-y: auto;
  background: var(--background-colour, #f8f9fa);
}
.column-config-modal .column-list::-webkit-scrollbar, .card-fields-modal .column-list::-webkit-scrollbar {
  width: 8px;
}
.column-config-modal .column-list::-webkit-scrollbar-track, .card-fields-modal .column-list::-webkit-scrollbar-track {
  background: var(--background-colour, #f1f1f1);
  border-radius: 4px;
}
.column-config-modal .column-list::-webkit-scrollbar-thumb, .card-fields-modal .column-list::-webkit-scrollbar-thumb {
  background: var(--scrollbar-colour, #c1c1c1);
  border-radius: 4px;
}
.column-config-modal .column-list::-webkit-scrollbar-thumb:hover, .card-fields-modal .column-list::-webkit-scrollbar-thumb:hover {
  background: var(--secondary-colour, #a8a8a8);
}
.column-config-modal .column-item, .card-fields-modal .column-item {
  padding: 0.75rem;
  border-bottom: 1px solid var(--border-colour, #dee2e6);
  background: var(--card-colour);
  transition: all 0.2s ease;
  cursor: grab;
}
.column-config-modal .column-item:last-child, .card-fields-modal .column-item:last-child {
  border-bottom: none;
}
.column-config-modal .column-item:hover, .card-fields-modal .column-item:hover {
  background: var(--card-colour, #f8f9fa);
}
.column-config-modal .column-item.selected, .card-fields-modal .column-item.selected {
  background: var(--card-colour, #e7f3ff);
  border-left: 3px solid var(--secondary-colour, #007bff);
}
.column-config-modal .column-item.dragging, .card-fields-modal .column-item.dragging {
  opacity: 0.4;
  transform: rotate(2deg);
  z-index: 1000;
}
.column-config-modal .column-item .column-action-btn, .card-fields-modal .column-item .column-action-btn {
  background: none;
  border: none;
  padding: 0.25rem;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
.column-config-modal .column-item .column-action-btn.add-btn, .card-fields-modal .column-item .column-action-btn.add-btn {
  color: #28a745;
}
.column-config-modal .column-item .column-action-btn.add-btn:hover, .card-fields-modal .column-item .column-action-btn.add-btn:hover {
  background: rgba(40, 167, 69, 0.1);
  transform: scale(1.1);
}
.column-config-modal .column-item .column-action-btn.remove-btn, .card-fields-modal .column-item .column-action-btn.remove-btn {
  color: #dc3545;
}
.column-config-modal .column-item .column-action-btn.remove-btn:hover, .card-fields-modal .column-item .column-action-btn.remove-btn:hover {
  background: rgba(220, 53, 69, 0.1);
  transform: scale(1.1);
}
.column-config-modal .column-item .column-action-btn i, .card-fields-modal .column-item .column-action-btn i {
  font-size: 0.875rem;
}
.column-config-modal .column-item .drag-handle, .card-fields-modal .column-item .drag-handle {
  opacity: 0.6;
  cursor: grab;
  margin-right: 8px;
  transition: opacity 0.2s;
}
.column-config-modal .column-item .drag-handle:hover, .card-fields-modal .column-item .drag-handle:hover {
  opacity: 1;
  color: var(--secondary-colour, #007bff);
}
.column-config-modal .column-item .drag-handle:active, .card-fields-modal .column-item .drag-handle:active {
  cursor: grabbing;
}
.column-config-modal .column-item .column-info, .card-fields-modal .column-item .column-info {
  flex-grow: 1;
}
.column-config-modal .column-item .column-info .column-label, .card-fields-modal .column-item .column-info .column-label {
  font-weight: 500;
  color: var(--text-colour, #212529);
  margin-bottom: 0.125rem;
}
.column-config-modal .column-item .column-info .column-meta, .card-fields-modal .column-item .column-info .column-meta {
  font-size: 0.75rem;
  color: var(--text-colour, #6c757d);
  opacity: 0.8;
}
.column-config-modal .preset-section, .card-fields-modal .preset-section {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border-colour, #dee2e6);
}
.column-config-modal .preset-section .preset-title, .card-fields-modal .preset-section .preset-title {
  display: flex;
  align-items: center;
  margin-bottom: 0.75rem;
  font-weight: 600;
  color: var(--text-colour, #495057);
}
.column-config-modal .preset-section .preset-title i, .card-fields-modal .preset-section .preset-title i {
  margin-right: 0.5rem;
  color: var(--secondary-colour, #007bff);
}
.column-config-modal .preset-section .preset-buttons, .card-fields-modal .preset-section .preset-buttons {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.column-config-modal .preset-section .preset-buttons .preset-btn, .card-fields-modal .preset-section .preset-buttons .preset-btn {
  padding: 0.375rem 0.75rem;
  border: 1px solid var(--border-colour, #dee2e6);
  border-radius: var(--border-radius, 6px);
  background: var(--card-colour, white);
  color: var(--text-colour, #495057);
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s ease;
}
.column-config-modal .preset-section .preset-buttons .preset-btn:hover, .card-fields-modal .preset-section .preset-buttons .preset-btn:hover {
  background: var(--secondary-colour, #007bff);
  color: var(--tertiary-colour, white);
  border-color: var(--secondary-colour, #007bff);
  transform: translateY(-1px);
}
.column-config-modal .preset-section .preset-buttons .preset-btn:active, .card-fields-modal .preset-section .preset-buttons .preset-btn:active {
  transform: translateY(0);
}
.column-config-modal .selected-count, .card-fields-modal .selected-count {
  font-weight: 600;
  color: var(--secondary-colour, #007bff);
}
.column-config-modal .action-buttons, .card-fields-modal .action-buttons {
  display: flex;
  justify-content: between;
  gap: 0.75rem;
}
.column-config-modal .action-buttons .btn, .card-fields-modal .action-buttons .btn {
  min-width: 120px;
  transition: all 0.2s ease;
}
.column-config-modal .action-buttons .btn.btn-outline, .card-fields-modal .action-buttons .btn.btn-outline {
  border-color: var(--border-colour, #dee2e6);
  color: var(--text-colour, #6c757d);
}
.column-config-modal .action-buttons .btn.btn-outline:hover, .card-fields-modal .action-buttons .btn.btn-outline:hover {
  background: var(--primary-colour, #f8f9fa);
  border-color: var(--secondary-colour, #007bff);
  color: var(--secondary-colour, #007bff);
}
.column-config-modal .action-buttons .btn.btn-primary, .card-fields-modal .action-buttons .btn.btn-primary {
  background: var(--secondary-colour, #007bff);
  border-color: var(--secondary-colour, #007bff);
  color: var(--tertiary-colour, white);
}
.column-config-modal .action-buttons .btn.btn-primary:hover, .card-fields-modal .action-buttons .btn.btn-primary:hover {
  background: var(--button-hover, #0056b3);
  border-color: var(--button-hover, #0056b3);
  transform: translateY(-1px);
}
.column-config-modal .column-drop-zone, .card-fields-modal .column-drop-zone {
  min-height: 2px;
  transition: all 0.2s ease;
  opacity: 0;
}
.column-config-modal .column-drop-zone.active, .card-fields-modal .column-drop-zone.active {
  opacity: 1;
  min-height: 4px;
  background: var(--secondary-colour, #007bff);
  border-radius: 2px;
  margin: 0.25rem 0;
}
.column-config-modal .empty-column-list, .card-fields-modal .empty-column-list {
  padding: 2rem;
  text-align: center;
  color: var(--text-colour, #6c757d);
  opacity: 0.7;
}
.column-config-modal .empty-column-list i, .card-fields-modal .empty-column-list i {
  font-size: 2rem;
  margin-bottom: 0.5rem;
  opacity: 0.5;
}
.column-config-modal .empty-column-list p, .card-fields-modal .empty-column-list p {
  margin: 0;
  font-style: italic;
}

@media (max-width: 768px) {
  .column-config-modal .modal-dialog,
  .card-fields-modal .modal-dialog {
    margin: 1rem;
    max-width: none;
  }
  .column-config-modal .column-list,
  .card-fields-modal .column-list {
    max-height: 250px;
  }
  .column-config-modal .column-item,
  .card-fields-modal .column-item {
    padding: 0.5rem;
  }
  .column-config-modal .column-item .column-info .column-label,
  .card-fields-modal .column-item .column-info .column-label {
    font-size: 0.875rem;
  }
  .column-config-modal .column-item .column-info .column-meta,
  .card-fields-modal .column-item .column-info .column-meta {
    font-size: 0.6875rem;
  }
  .column-config-modal .column-item .column-action-btn,
  .card-fields-modal .column-item .column-action-btn {
    width: 28px;
    height: 28px;
  }
  .column-config-modal .column-item .column-action-btn i,
  .card-fields-modal .column-item .column-action-btn i {
    font-size: 0.75rem;
  }
  .column-config-modal .preset-buttons .preset-btn,
  .card-fields-modal .preset-buttons .preset-btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
  }
}
.spreadsheet-table-container {
  background: white;
  border-radius: 12px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}

.spreadsheet-table {
  margin-bottom: 0;
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  table-layout: auto;
  min-width: -moz-max-content;
  min-width: max-content;
}
.spreadsheet-table tbody tr:hover {
  transform: none !important;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1) !important;
}
.spreadsheet-table .stage-header-row .dropdown-menu {
  z-index: 1050 !important;
  position: absolute !important;
}

.table > :not(caption) > * > * {
  border-bottom-width: 1px;
}

.spreadsheet-table th {
  border-bottom: 1px solid #dee2e6 !important;
  white-space: nowrap;
}

.spreadsheet-table td {
  border-top: 1px solid #dee2e6;
}

.table-hover > tbody > tr:hover > th,
.table-hover > tbody > tr:hover > td {
  background-color: var(--primary-colour);
}

.table th.sortable-header {
  text-align: left !important;
  vertical-align: middle !important;
}

.spreadsheet-table thead th {
  background: var(--card-colour) !important;
  border: none !important;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--text-colour) !important;
  vertical-align: middle;
  box-sizing: border-box;
  white-space: nowrap;
}

.spreadsheet-table thead th:not(.sortable-header) {
  padding: 0.75rem;
}

.stage-header-row {
  border: none !important;
}
.stage-header-row td {
  border: none !important;
  font-weight: 500;
}

.quote-row {
  transition: all 0.2s ease;
  cursor: move;
  border-left: 3px solid transparent;
}
.quote-row:hover {
  background-color: var(--primary-colour);
  border-left-color: var(--secondary-colour);
}
.quote-row.dragging {
  opacity: 0.6;
  background-color: #f8f9fa;
  transform: rotate(1deg);
}
.quote-row.drop-target {
  background-color: rgba(40, 167, 69, 0.1);
  border-left-color: #28a745;
  border-left-width: 4px;
}
.quote-row td {
  vertical-align: middle;
  padding: 0.75rem;
  border-top: 1px solid #dee2e6;
}

.drag-handle-spreadsheet {
  cursor: grab;
  padding: 0.5rem;
  opacity: 0.6;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.drag-handle-spreadsheet:hover {
  opacity: 1;
  background-color: rgba(0, 123, 255, 0.1);
}
.drag-handle-spreadsheet:active {
  cursor: grabbing;
  background-color: rgba(0, 123, 255, 0.2);
}

.empty-stage-row td {
  background-color: rgba(0, 0, 0, 0.02);
  font-style: italic;
}

.unassigned-quote {
  background-color: rgba(255, 193, 7, 0.02);
}

.view-switcher .button-13,
.view-switcher .button-13-outline {
  margin: 0.25rem;
}

.stage-count {
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
}

.move-quote-btn {
  opacity: 0.7;
  transition: all 0.2s;
}
.move-quote-btn:hover {
  opacity: 1;
  transform: translateY(-1px);
  background-color: rgba(0, 123, 255, 0.1);
}

.sortable-header {
  cursor: pointer;
  transition: background-color 0.2s ease;
  padding: 0.75rem !important;
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: none !important;
  position: relative;
  box-sizing: border-box;
  white-space: nowrap;
  overflow: hidden;
}
.sortable-header:hover {
  background-color: var(--primary-colour) !important;
  color: var(--secondary-colour) !important;
}

.sortable-header > div {
  width: 100%;
  min-width: auto;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.sortable-header .d-flex {
  flex: 1;
  min-width: auto;
}

.sortable-header span {
  flex: 1;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sort-indicators {
  display: flex;
  flex-direction: column;
  opacity: 0.4;
  transition: opacity 0.2s ease;
}
.sort-indicators .sort-asc {
  margin-bottom: -2px;
}
.sort-indicators .sort-desc {
  margin-top: -2px;
}
.sort-indicators i {
  font-size: 0.75rem;
  line-height: 1;
  margin: 0;
  padding: 0;
}
.sort-indicators .active {
  color: var(--secondary-colour) !important;
  opacity: 1;
}

.sortable-header:hover .sort-indicators {
  opacity: 0.7;
}

.sortable-header.sorting .sort-indicators {
  opacity: 1;
}

.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.spreadsheet-table th[style*=width] {
  max-width: none !important;
  box-sizing: border-box;
}

.spreadsheet-table th {
  overflow: hidden;
  text-overflow: ellipsis;
}

.sortable-header > div.d-flex {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.sortable-header > div.d-flex > span {
  flex: 1 1 auto;
  min-width: auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sort-indicators {
  flex: 0 0 auto !important;
  width: 20px;
  height: 20px;
  display: flex !important;
  flex-direction: column !important;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .spreadsheet-table thead th,
  .spreadsheet-table tbody td {
    padding: 0.5rem;
    font-size: 0.875rem;
  }
  .view-switcher {
    order: -1;
    margin-bottom: 1rem;
    margin-right: 0 !important;
  }
  .workflow-header .mobile-controls-container .d-flex {
    flex-direction: column;
    align-items: flex-start !important;
  }
}
/* Dense, shared workspace chrome for every workflow view. */
.crm-workspace {
  --crm-border: color-mix(in srgb, var(--text-colour, #20242a) 14%, transparent);
  --crm-muted: color-mix(in srgb, var(--text-colour, #20242a) 62%, transparent);
  --crm-surface: var(--card-colour, #fff);
  --crm-subtle: color-mix(in srgb, var(--card-colour, #fff) 90%, var(--text-colour, #20242a));
  min-width: 0;
}

.crm-workspace-header {
  position: sticky;
  top: 0;
  z-index: 25;
  padding: 0.65rem 1rem 0.55rem;
  background: color-mix(in srgb, var(--background-colour, #fff) 94%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--workflow-colour) 32%, var(--crm-border));
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--workflow-colour) 82%, transparent);
  backdrop-filter: blur(14px);
}

.crm-workspace-topline,
.crm-workspace-nav {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.crm-workspace-topline {
  justify-content: space-between;
}

.crm-workspace-identity {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-width: 0;
}

.crm-workspace-marker {
  width: 3px;
  height: 30px;
  border-radius: 2px;
  flex: 0 0 auto;
}

.crm-workspace-title {
  margin: 0;
  color: var(--text-colour, #20242a) !important;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.crm-workflow-switcher {
  position: relative;
  min-width: 0;
}

.crm-workflow-switcher-trigger {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
  max-width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
  list-style: none;
}

.crm-workflow-switcher-trigger::-webkit-details-marker {
  display: none;
}

.crm-workflow-switcher-trigger .crm-workspace-title {
  display: flex;
  min-width: 0;
}

.crm-workflow-switcher-trigger .crm-workspace-title span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.crm-workflow-switcher-trigger i {
  flex: 0 0 auto;
  color: var(--crm-muted);
  font-size: 0.55rem;
  transition: transform 0.15s ease, color 0.15s ease;
}

.crm-workflow-switcher-trigger:hover i,
.crm-workflow-switcher-trigger:focus-visible i {
  color: var(--workflow-colour);
}

.crm-workflow-switcher[open] .crm-workflow-switcher-trigger > i {
  transform: rotate(180deg);
}

.crm-workflow-switcher-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  display: none;
  width: 340px;
  min-width: 230px;
  max-width: calc(100vw - 24px);
  max-height: calc(100vh - 120px);
  padding: 0.3rem;
  overflow-y: auto;
}

.crm-workflow-switcher[open] > .crm-workflow-switcher-menu {
  display: block;
}

.crm-workflow-switcher-menu .crm-workflow-switcher-option {
  display: grid !important;
  grid-template-columns: 8px minmax(0, 1fr) 14px;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 0.5rem;
  border-radius: 4px;
  color: var(--text-colour, #20242a) !important;
}

.crm-workflow-switcher-option.active,
.crm-workflow-switcher-option:active {
  background: color-mix(in srgb, var(--workflow-colour) 9%, var(--crm-surface));
}

.crm-workflow-switcher-marker {
  grid-column: 1;
  grid-row: 1;
  width: 7px;
  height: 26px;
  border-radius: 3px;
  background: var(--switcher-colour);
}

.crm-workflow-switcher-copy {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

.crm-workflow-switcher-copy strong,
.crm-workflow-switcher-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.crm-workflow-switcher-copy strong {
  font-size: 0.75rem;
  font-weight: 650;
}

.crm-workflow-switcher-copy small {
  margin-top: 0.05rem;
  color: var(--crm-muted);
  font-size: 0.62rem;
}

.crm-workflow-switcher-check {
  grid-column: 3;
  grid-row: 1;
  justify-self: center;
  color: var(--workflow-colour);
  font-size: 0.65rem;
}

.crm-workspace-description {
  margin: 0.1rem 0 0;
  color: var(--crm-muted);
  font-size: 0.75rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.crm-workspace-nav {
  justify-content: space-between;
  margin-top: 0.55rem;
}

.crm-view-switcher {
  display: inline-flex;
  align-items: center;
  padding: 2px;
  gap: 1px;
  min-width: 0;
  overflow-x: auto;
  border: 1px solid var(--crm-border);
  border-radius: 6px;
  background: var(--crm-subtle);
  scrollbar-width: none;
}

.crm-view-switcher::-webkit-scrollbar {
  display: none;
}

.crm-view-option {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 30px;
  padding: 0.3rem 0.6rem;
  border: 0;
  border-radius: 4px;
  color: var(--crm-muted) !important;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.crm-view-option:hover {
  color: var(--workflow-colour) !important;
  background: color-mix(in srgb, var(--workflow-colour) 6%, transparent);
}

.crm-view-option.is-active {
  color: var(--workflow-colour) !important;
  background: color-mix(in srgb, var(--workflow-colour) 9%, var(--crm-surface));
  box-shadow: inset 0 -2px 0 var(--workflow-colour), 0 1px 3px color-mix(in srgb, var(--text-colour, #20242a) 10%, transparent);
}

.crm-view-option i {
  font-size: 0.82rem;
}

.crm-workspace-actions {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  flex: 0 0 auto;
}

.crm-workspace-actions .mdui-icon {
  width: 32px;
  height: 32px;
  min-width: 32px;
}

.crm-workspace-menu {
  min-width: 190px;
  padding: 0.3rem;
}

.crm-workspace-menu .dropdown-item {
  padding: 0.45rem 0.55rem;
  border-radius: 4px;
  font-size: 0.75rem;
}

.crm-workspace-menu .dropdown-item i {
  width: 16px;
  text-align: center;
}

.crm-assignee-count {
  position: absolute;
  top: -2px;
  right: -2px;
  min-width: 15px;
  height: 15px;
  padding: 0 3px;
  border: 2px solid var(--background-colour, #fff);
  border-radius: 8px;
  background: var(--primary-colour);
  color: var(--primary-text-colour, #fff);
  font-size: 0.53rem;
  font-weight: 700;
  line-height: 11px;
  text-align: center;
}

.crm-assignee-menu {
  width: 280px;
  max-width: calc(100vw - 24px);
  padding: 0.35rem;
}

.crm-assignee-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.35rem 0.45rem 0.45rem;
  color: var(--text-colour, #20242a);
  font-size: 0.72rem;
  font-weight: 700;
}

.crm-assignee-heading small {
  color: var(--crm-muted);
  font-size: 0.62rem;
}

.crm-assignee-list {
  max-height: 280px;
  overflow-y: auto;
}

.crm-assignee-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.5rem;
  min-height: 40px;
  padding: 0.3rem 0.4rem;
  border-radius: 4px;
}

.crm-assignee-row:hover {
  background: var(--crm-subtle);
}

.crm-assignee-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--crm-subtle);
  color: var(--text-colour, #20242a);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-size: 0.68rem;
  font-weight: 700;
}

.crm-assignee-avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.crm-assignee-name {
  overflow: hidden;
  color: var(--text-colour, #20242a);
  font-size: 0.72rem;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.crm-assignee-role {
  color: var(--crm-muted);
  font-size: 0.6rem;
}

.crm-assignee-empty {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 0.45rem;
  color: var(--crm-muted);
  font-size: 0.7rem;
}

.crm-assignee-footer {
  margin-top: 0.3rem;
  padding-top: 0.3rem;
  border-top: 1px solid var(--crm-border);
}

.crm-assignee-footer .dropdown-item {
  padding: 0.45rem;
  border-radius: 4px;
  font-size: 0.7rem;
}

.crm-workspace-body {
  min-width: 0;
}

/* Kanban: more information and more columns above the fold. */
.crm-workspace .kanban-board {
  padding: 0.65rem 1rem 1rem !important;
}

.crm-workspace .kanban-columns-container {
  gap: 0.65rem;
  align-items: flex-start;
}

.crm-workspace .kanban-column-wrapper {
  min-width: 268px;
  width: 268px;
}

.crm-workspace .kanban-column {
  width: 268px;
  min-width: 268px;
  max-width: 268px;
  border: 1px solid var(--crm-border);
  border-radius: 6px;
  background: var(--crm-subtle);
  box-shadow: none;
}

.crm-workspace .kanban-header {
  padding: 0.65rem 0.7rem !important;
  border-radius: 5px 5px 0 0 !important;
}

.crm-workspace .kanban-header h5 {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0;
}

.crm-workspace .kanban-header .stage-counter,
.crm-workspace .kanban-header .stage-probability {
  font-size: 0.65rem;
}

.crm-workspace .kanban-body {
  min-height: 120px !important;
  max-height: calc(100vh - 245px);
  padding: 0.45rem !important;
}

.crm-workspace .quote-card {
  margin-bottom: 0.4rem !important;
  border: 1px solid var(--crm-border);
  border-radius: 5px;
  box-shadow: 0 1px 2px color-mix(in srgb, var(--text-colour, #20242a) 8%, transparent) !important;
}

.crm-workspace .quote-card .card-image-field img {
  height: 76px;
}

.crm-workspace .quote-card .card-field-item {
  font-size: 0.75rem;
  line-height: 1.3;
}

.crm-workspace .stage-sort-controls {
  justify-content: flex-start !important;
}

.crm-workspace .stage-sort-controls .sort-btn {
  width: 27px;
  height: 27px;
}

/* Spreadsheet and list share compact table-like rhythm. */
.crm-workspace .spreadsheet-container,
.crm-workspace .list-view-container,
.crm-workspace .collaboration-view-container {
  margin: 0 !important;
  padding: 0.75rem 1rem 1rem !important;
}

.crm-workspace .spreadsheet-table-container {
  border-radius: 6px;
  box-shadow: none;
}

.crm-workspace .spreadsheet-table th {
  padding: 0.48rem 0.55rem;
  font-size: 0.7rem;
}

.crm-workspace .spreadsheet-table td {
  padding: 0.42rem 0.55rem;
  font-size: 0.76rem;
}

.crm-workspace .spreadsheet-table .stage-header-row td {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

.crm-workspace .spreadsheet-table .stage-header-row h5 {
  margin: 0 !important;
  font-size: 0.8rem;
}

.crm-workspace .spreadsheet-table th.sortable-header:hover,
.crm-workspace .spreadsheet-table th.sortable-header.sorted-asc,
.crm-workspace .spreadsheet-table th.sortable-header.sorted-desc {
  color: var(--secondary-colour) !important;
  background: color-mix(in srgb, var(--secondary-colour) 7%, var(--card-colour)) !important;
}

.crm-workspace .spreadsheet-table.table-hover > tbody > tr.quote-row:hover > td {
  background: color-mix(in srgb, var(--secondary-colour) 6%, var(--card-colour)) !important;
}

.crm-workspace .spreadsheet-table.table-hover > tbody > tr.stage-header-row:hover > td {
  background: transparent !important;
}

.crm-workspace .spreadsheet-table tbody tr:hover {
  box-shadow: none !important;
}

.spreadsheet-stage-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0;
  background: transparent;
}

.crm-list-toolbar {
  padding: 0.55rem 0.65rem !important;
  margin-bottom: 0.55rem !important;
  border: 1px solid var(--crm-border);
  border-radius: 6px;
  box-shadow: none;
}

.crm-list-view-toggle {
  display: inline-flex;
  align-items: center;
  margin-left: 0.2rem;
  padding-left: 0.25rem;
  gap: 0;
  border-left: 1px solid var(--crm-border);
}

.crm-list-view-button {
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: var(--crm-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.crm-list-view-button:hover {
  color: var(--text-colour, #20242a);
}

.crm-list-view-button.active {
  color: var(--workflow-colour);
  background: color-mix(in srgb, var(--workflow-colour) 10%, transparent);
}

.crm-list-view-button i {
  font-size: 0.7rem;
}

.workflow-quotes-view {
  display: grid;
  gap: 0.4rem;
}

.workflow-quote-item {
  min-width: 0;
  border: 1px solid var(--crm-border);
  border-radius: 5px;
  background: var(--crm-surface);
  box-shadow: none;
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.workflow-quote-item:hover {
  border-color: color-mix(in srgb, var(--workflow-colour) 48%, var(--crm-border));
  box-shadow: 0 3px 10px color-mix(in srgb, var(--text-colour, #20242a) 9%, transparent);
}

.workflow-quote-link {
  color: inherit !important;
  text-decoration: none;
  min-width: 0;
}

.workflow-quote-image,
.workflow-quote-image-placeholder {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  background: var(--crm-subtle);
}

.workflow-quote-image-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--crm-muted);
}

.workflow-quote-primary {
  min-width: 0;
}

.workflow-quote-name {
  margin: 0;
  color: var(--text-colour, #20242a);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workflow-quote-address {
  margin: 0.12rem 0 0;
  color: var(--crm-muted);
  font-size: 0.68rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workflow-stage-pill {
  --stage-colour: var(--primary-colour);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  max-width: 100%;
  padding: 0.22rem 0.45rem;
  border: 1px solid color-mix(in srgb, var(--stage-colour) 30%, transparent);
  border-radius: 999px;
  color: var(--text-colour, #20242a);
  background: color-mix(in srgb, var(--stage-colour) 9%, var(--crm-surface));
  font-size: 0.65rem;
  font-weight: 600;
  white-space: nowrap;
}

.workflow-stage-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--stage-colour);
  flex: 0 0 auto;
}

.workflow-stage-pill.is-unassigned {
  --stage-colour: #b88200;
}

.workflow-quote-fields {
  min-width: 0;
}

.workflow-quote-field {
  min-width: 0;
  font-size: 0.7rem;
}

.workflow-quote-field .card-field-item {
  margin: 0;
}

.workflow-quote-updated {
  color: var(--crm-muted);
  font-size: 0.62rem;
  line-height: 1.25;
  white-space: nowrap;
}

.workflow-quote-updated span,
.workflow-quote-updated strong {
  display: block;
}

.workflow-quote-updated strong {
  color: var(--text-colour, #20242a);
  font-weight: 600;
}

.workflow-quote-chevron {
  color: var(--crm-muted);
  font-size: 0.7rem;
}

.workflow-quotes-view.is-rows .workflow-quote-link {
  display: grid;
  grid-template-columns: 38px minmax(150px, 1.4fr) minmax(110px, 0.65fr) minmax(180px, 1fr) 72px 14px;
  align-items: center;
  gap: 0.7rem;
  min-height: 54px;
  padding: 0.42rem 0.65rem;
}

.workflow-quotes-view.is-rows .workflow-quote-image,
.workflow-quotes-view.is-rows .workflow-quote-image-placeholder {
  width: 38px;
  height: 38px;
  border-radius: 4px;
}

.workflow-quotes-view.is-rows .workflow-quote-fields {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  overflow: hidden;
}

.workflow-quotes-view.is-rows .workflow-quote-field {
  flex: 1 1 0;
  overflow: hidden;
}

.workflow-quotes-view.is-cards {
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 0.7rem;
}

.workflow-quotes-view.is-cards .workflow-quote-item:hover {
  transform: translateY(-1px);
}

.workflow-quotes-view.is-cards .workflow-quote-link {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: "visual visual" "primary stage" "fields fields" "updated arrow";
  align-items: center;
  gap: 0.65rem;
  height: 100%;
  padding-bottom: 0.65rem;
}

.workflow-quotes-view.is-cards .workflow-quote-visual {
  grid-area: visual;
}

.workflow-quotes-view.is-cards .workflow-quote-image,
.workflow-quotes-view.is-cards .workflow-quote-image-placeholder {
  width: 100%;
  height: 112px;
  border-radius: 0;
}

.workflow-quotes-view.is-cards .workflow-quote-image-placeholder i {
  font-size: 1.6rem;
}

.workflow-quotes-view.is-cards .workflow-quote-primary {
  grid-area: primary;
  padding-left: 0.7rem;
}

.workflow-quotes-view.is-cards .workflow-quote-stage {
  grid-area: stage;
  padding-right: 0.7rem;
  min-width: 0;
}

.workflow-quotes-view.is-cards .workflow-quote-fields {
  grid-area: fields;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem 0.7rem;
  padding: 0.6rem 0.7rem;
  border-top: 1px solid var(--crm-border);
  border-bottom: 1px solid var(--crm-border);
}

.workflow-quotes-view.is-cards .workflow-quote-updated {
  grid-area: updated;
  padding-left: 0.7rem;
}

.workflow-quotes-view.is-cards .workflow-quote-chevron {
  grid-area: arrow;
  padding-right: 0.7rem;
}

/* Shared quote card: quotes index and workflow list use the same information hierarchy. */
.quote-list-card {
  position: relative;
  min-width: 0;
  border: 1px solid var(--crm-border, var(--border-colour));
  border-radius: 5px;
  background: var(--crm-surface, var(--card-colour));
  box-shadow: none;
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.quote-list-card:hover {
  border-color: color-mix(in srgb, var(--primary-colour) 45%, var(--crm-border, var(--border-colour)));
  box-shadow: 0 3px 10px color-mix(in srgb, var(--text-colour) 9%, transparent);
}

.crm-workspace .quote-list-card:hover {
  border-color: color-mix(in srgb, var(--workflow-colour) 48%, var(--crm-border));
}

.quote-list-card__link {
  color: inherit !important;
  text-decoration: none;
  min-width: 0;
}

.quote-list-card__image,
.quote-list-card__image-placeholder {
  display: block;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  background: var(--crm-subtle, var(--background-colour));
}

.quote-list-card__image-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--crm-muted, var(--text-colour));
  opacity: 0.7;
}

.quote-list-card__primary {
  min-width: 0;
}

.quote-list-card__name {
  margin: 0;
  color: var(--text-colour);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quote-list-card__address {
  margin: 0.12rem 0 0;
  color: var(--crm-muted, var(--text-colour));
  opacity: 0.7;
  font-size: 0.68rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quote-list-card__client {
  display: flex;
  align-items: center;
  gap: 0.28rem;
  margin: 0.18rem 0 0;
  color: var(--crm-muted, var(--text-colour));
  font-size: 0.64rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quote-list-card__client i {
  flex: 0 0 auto;
  color: var(--secondary-colour);
}

.quote-list-card__badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  min-width: 0;
}

.quote-list-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
  padding: 0.16rem 0.35rem;
  border: 1px solid color-mix(in srgb, var(--primary-colour) 25%, transparent);
  border-radius: 3px;
  color: var(--text-colour);
  background: color-mix(in srgb, var(--primary-colour) 8%, var(--crm-surface, var(--card-colour)));
  font-size: 0.58rem;
  font-weight: 600;
  white-space: nowrap;
}

.quote-list-card__badge.is-signed {
  color: var(--success-colour, #18794e);
  border-color: color-mix(in srgb, var(--success-colour, #18794e) 30%, transparent);
}

.quote-list-card__badge.is-incomplete {
  color: var(--danger-colour, #b42318);
  border-color: color-mix(in srgb, var(--danger-colour, #b42318) 25%, transparent);
}

.quote-list-card__badge.is-muted {
  opacity: 0.65;
}

.quote-list-card__stage-pill {
  --stage-colour: var(--primary-colour);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  max-width: 100%;
  padding: 0.22rem 0.45rem;
  border: 1px solid color-mix(in srgb, var(--stage-colour) 30%, transparent);
  border-radius: 999px;
  color: var(--text-colour);
  background: color-mix(in srgb, var(--stage-colour) 9%, var(--crm-surface, var(--card-colour)));
  font-size: 0.65rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.quote-list-card__stage-pill > span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--stage-colour);
  flex: 0 0 auto;
}

.quote-list-card__stage-pill.is-unassigned {
  --stage-colour: #b88200;
}

.quote-list-card__fields {
  min-width: 0;
}

.quote-list-card__field {
  min-width: 0;
  font-size: 0.7rem;
}

.quote-list-card__field .card-field-item {
  margin: 0;
}

.quote-list-card__updated {
  color: var(--crm-muted, var(--text-colour));
  opacity: 0.7;
  font-size: 0.62rem;
  line-height: 1.25;
  white-space: nowrap;
}

.quote-list-card__updated span,
.quote-list-card__updated strong {
  display: block;
}

.quote-list-card__updated strong {
  color: var(--text-colour);
  font-weight: 600;
}

.quote-list-card__chevron {
  color: var(--crm-muted, var(--text-colour));
  opacity: 0.7;
  font-size: 0.7rem;
}

.quote-list-card__actions {
  position: absolute !important;
  top: 0.35rem;
  right: 0.35rem;
  z-index: 3;
}

.quote-list-card__actions .mdui-icon {
  width: 27px;
  height: 27px;
  min-width: 27px;
  background: color-mix(in srgb, var(--crm-surface, var(--card-colour)) 88%, transparent);
  backdrop-filter: blur(4px);
}

.quote-list-card--row .quote-list-card__actions {
  top: 50%;
  right: 1.8rem;
  transform: translateY(-50%);
}

.quote-list-card--row {
  overflow: visible;
  z-index: 0;
}

.quote-list-card--row:has(.dropdown-menu.show) {
  z-index: 1100;
}

.quote-list-card--row .dropdown-menu.show {
  z-index: 1101 !important;
}

.quote-list-card--card,
.workflow-quotes-view.is-cards .quote-list-card--responsive {
  height: 100%;
}

.quote-list-card--card:hover,
.workflow-quotes-view.is-cards .quote-list-card--responsive:hover {
  transform: translateY(-1px);
}

.quote-list-card--card .quote-list-card__link,
.workflow-quotes-view.is-cards .quote-list-card--responsive .quote-list-card__link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "visual visual" "primary stage" "badges badges" "fields fields" "updated arrow";
  align-items: center;
  gap: 0.6rem;
  min-height: 100%;
  padding-bottom: 0.65rem;
}

.quote-list-card--card .quote-list-card__visual,
.workflow-quotes-view.is-cards .quote-list-card--responsive .quote-list-card__visual {
  grid-area: visual;
}

.quote-list-card--card .quote-list-card__image,
.quote-list-card--card .quote-list-card__image-placeholder,
.workflow-quotes-view.is-cards .quote-list-card--responsive .quote-list-card__image,
.workflow-quotes-view.is-cards .quote-list-card--responsive .quote-list-card__image-placeholder {
  height: 112px;
}

.quote-list-card--card .quote-list-card__primary,
.workflow-quotes-view.is-cards .quote-list-card--responsive .quote-list-card__primary {
  grid-area: primary;
  padding-left: 0.7rem;
}

.quote-list-card--card .quote-list-card__stage,
.workflow-quotes-view.is-cards .quote-list-card--responsive .quote-list-card__stage {
  grid-area: stage;
  padding-right: 0.7rem;
  min-width: 0;
}

.quote-list-card--card .quote-list-card__badges,
.workflow-quotes-view.is-cards .quote-list-card--responsive .quote-list-card__badges {
  grid-area: badges;
  padding: 0 0.7rem;
}

.quote-list-card--card .quote-list-card__fields,
.workflow-quotes-view.is-cards .quote-list-card--responsive .quote-list-card__fields {
  grid-area: fields;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem 0.7rem;
  padding: 0.6rem 0.7rem;
  border-top: 1px solid var(--crm-border, var(--border-colour));
  border-bottom: 1px solid var(--crm-border, var(--border-colour));
}

.quote-list-card--card .quote-list-card__updated,
.workflow-quotes-view.is-cards .quote-list-card--responsive .quote-list-card__updated {
  grid-area: updated;
  padding-left: 0.7rem;
}

.quote-list-card--card .quote-list-card__chevron,
.workflow-quotes-view.is-cards .quote-list-card--responsive .quote-list-card__chevron {
  grid-area: arrow;
  justify-self: end;
  padding-right: 0.7rem;
}

.quote-list-card--row .quote-list-card__link,
.workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__link {
  display: grid;
  grid-template-columns: 38px minmax(140px, 1.25fr) minmax(150px, auto) minmax(105px, 0.55fr) minmax(120px, 0.75fr) 72px 14px;
  align-items: center;
  gap: 0.65rem;
  min-height: 54px;
  padding: 0.42rem 0.65rem;
  padding-right: 2.5rem;
}

.quote-list-card--row .quote-list-card__image,
.quote-list-card--row .quote-list-card__image-placeholder,
.workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__image,
.workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__image-placeholder {
  width: 38px;
  height: 38px;
  border-radius: 4px;
}

.quote-list-card--row .quote-list-card__fields,
.workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__fields {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  overflow: hidden;
}

.quote-list-card--row .quote-list-card__field,
.workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__field {
  flex: 1 1 0;
  overflow: hidden;
}

/* Collaboration reads like a focused team console, not two floating cards. */
.crm-collaboration-grid {
  --bs-gutter-x: .75rem;
  --bs-gutter-y: .75rem;
}

.crm-collaboration-panel {
  height: calc(100vh - 190px) !important;
  min-height: 520px;
  margin: 0 !important;
  border: 1px solid var(--crm-border);
  border-radius: 6px;
  background: var(--crm-surface);
  box-shadow: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.crm-conversation > turbo-frame {
  display: block;
  flex: 1 1 auto;
  min-height: 0;
}

.crm-collaboration-header {
  min-height: 58px;
  padding: 0.65rem 0.8rem;
  border-bottom: 1px solid var(--crm-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.crm-collaboration-title {
  margin: 0;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0;
}

.crm-collaboration-subtitle {
  margin: 0.1rem 0 0;
  color: var(--crm-muted);
  font-size: 0.66rem;
}

.crm-participants {
  display: flex;
  align-items: center;
  padding-right: 0.25rem;
}

.crm-participant-avatar,
.crm-participant-more {
  width: 27px;
  height: 27px;
  margin-right: -6px;
  border: 2px solid var(--crm-surface);
  border-radius: 50%;
  background: var(--crm-subtle);
  color: var(--text-colour, #20242a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.63rem;
  font-weight: 700;
  overflow: hidden;
}

.crm-participant-avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.crm-participant-more {
  background: var(--primary-colour);
  color: var(--primary-text-colour, #fff);
}

.crm-message-stream {
  flex: 1 1 auto;
  min-height: 0;
  padding: 1rem 1.1rem !important;
  overflow-y: auto;
  background: color-mix(in srgb, var(--background-colour, #fff) 45%, var(--crm-surface));
  scrollbar-width: thin;
}

.crm-message {
  margin: 0 0 0.85rem;
}

.crm-message-layout {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
}

.crm-message-layout.is-own {
  flex-direction: row-reverse;
}

.crm-message-avatar-image,
.crm-message-avatar-placeholder {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}

.crm-message-avatar-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--primary-colour);
  color: var(--primary-text-colour, #fff);
  font-size: 0.7rem;
  font-weight: 700;
}

.crm-message .message-bubble {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  max-width: min(72%, 620px);
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--crm-border);
  border-radius: 5px;
  color: var(--text-colour, #20242a);
  background: var(--crm-surface);
  box-shadow: 0 1px 2px color-mix(in srgb, var(--text-colour, #20242a) 5%, transparent);
}

.crm-message .message-bubble-own {
  border-color: color-mix(in srgb, var(--primary-colour) 28%, var(--crm-border));
  background: color-mix(in srgb, var(--primary-colour) 7%, var(--crm-surface)) !important;
  color: var(--text-colour, #20242a) !important;
}

.crm-message .message-bubble-own::after {
  display: none !important;
}

.crm-message .message-bubble:hover {
  transform: none;
}

.crm-message .message-bubble-own .text-muted {
  color: var(--crm-muted) !important;
}

.crm-message .message-header {
  gap: 0.8rem;
}

.crm-message .message-header strong {
  font-size: 0.69rem;
}

.crm-message .message-header small {
  font-size: 0.6rem;
}

.crm-message .message-content {
  font-size: 0.78rem;
  line-height: 1.42;
}

.crm-message .message-content > div,
.crm-message .message-content p:last-child {
  margin-bottom: 0;
}

.crm-message .message-actions {
  opacity: 0;
  margin-top: 0.25rem !important;
  transition: opacity 0.15s ease;
}

.crm-message:hover .message-actions {
  opacity: 1;
}

.crm-message .message-actions .mdui-icon {
  width: 25px;
  height: 25px;
  min-width: 25px;
  font-size: 0.68rem;
}

.crm-collaboration-empty {
  height: 100%;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--crm-muted);
  text-align: center;
}

.crm-collaboration-empty i {
  font-size: 1.7rem;
  margin-bottom: 0.65rem;
}

.crm-collaboration-empty h3 {
  margin: 0;
  color: var(--text-colour, #20242a);
  font-size: 0.85rem;
  letter-spacing: 0;
}

.crm-collaboration-empty p {
  margin: 0.25rem 0 0;
  font-size: 0.72rem;
}

.crm-message-composer {
  padding: 0.65rem 0.75rem !important;
  border-top: 1px solid var(--crm-border);
}

.crm-composer-surface {
  display: flex;
  align-items: flex-end;
  gap: 0.4rem;
  padding: 0.3rem;
  border: 1px solid var(--crm-border);
  border-radius: 6px;
  background: var(--crm-subtle);
}

.crm-composer-input {
  flex: 1 1 auto;
  min-width: 0;
}

.crm-composer-input .message-input {
  min-height: 34px;
  max-height: 130px;
  padding: 0.45rem 0.55rem;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 0.78rem;
}

.crm-composer-actions {
  display: flex;
  align-items: center;
  gap: 0.05rem;
}

.crm-composer-actions .mdui-icon,
.crm-composer-actions .file-upload-wrapper label {
  width: 30px;
  height: 30px;
  min-width: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.crm-send-button {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 5px;
  background: var(--primary-colour);
  color: var(--primary-text-colour, #fff);
}

.crm-files-header {
  display: block;
  flex: 0 0 auto;
  padding-bottom: 0.45rem;
}

.crm-file-tabs {
  gap: 0.2rem;
  margin-top: 0.65rem;
  flex-wrap: nowrap;
}

.crm-file-tabs .nav-item {
  flex: 1 1 0;
}

.crm-file-tab {
  width: 100%;
  min-height: 28px;
  padding: 0.32rem 0.25rem;
  border: 0;
  border-radius: 4px;
  margin: 0;
  background: transparent;
  color: var(--crm-muted);
  font-size: 0.66rem;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  box-shadow: none !important;
  cursor: pointer;
}

.crm-file-tab:hover {
  color: var(--workflow-colour);
}

.crm-file-tab.active {
  background: color-mix(in srgb, var(--workflow-colour) 9%, var(--crm-subtle));
  color: var(--workflow-colour);
  box-shadow: inset 0 -2px 0 var(--workflow-colour) !important;
}

.crm-file-tab:focus-visible {
  outline: 2px solid var(--workflow-colour);
  outline-offset: 1px;
}

.crm-files-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

.crm-files-content .tab-pane {
  padding: 0.7rem !important;
}

.crm-files-content .documents-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.4rem;
}

.crm-file-upload {
  padding: 0.6rem 0.7rem;
  border-top: 1px solid var(--crm-border);
}

.crm-file-upload-form {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.crm-file-upload-form .form-control {
  min-width: 0;
  font-size: 0.68rem;
}

.crm-file-upload-form .button-13 {
  min-width: auto;
  padding: 0.42rem 0.6rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

@media (max-width: 767.98px) {
  .crm-workspace-header {
    padding: 0.55rem 0.65rem;
  }
  .crm-workspace-description {
    display: none;
  }
  .crm-workspace-nav {
    gap: 0.35rem;
  }
  .crm-view-option {
    width: 34px;
    min-width: 34px;
    padding: 0.3rem;
  }
  .crm-view-option span {
    display: none;
  }
  .crm-workspace .kanban-board,
  .crm-workspace .spreadsheet-container,
  .crm-workspace .list-view-container,
  .crm-workspace .collaboration-view-container {
    padding: 0.55rem 0.65rem 0.75rem !important;
  }
  .crm-workspace .kanban-column-wrapper {
    min-width: 252px;
    width: 252px;
  }
  .crm-workspace .kanban-column {
    width: 252px;
    min-width: 252px;
    max-width: 252px;
  }
  .crm-workspace .kanban-body {
    min-height: 110px !important;
    max-height: calc(100vh - 205px);
  }
  .crm-collaboration-panel {
    height: 68vh !important;
    min-height: 440px;
  }
  .crm-files-panel {
    height: 58vh !important;
  }
  .crm-message .message-bubble {
    max-width: calc(100% - 38px);
  }
  .workflow-quotes-view.is-rows .workflow-quote-link {
    grid-template-columns: 34px minmax(120px, 1fr) auto 12px;
    gap: 0.5rem;
  }
  .workflow-quotes-view.is-rows .workflow-quote-image,
  .workflow-quotes-view.is-rows .workflow-quote-image-placeholder {
    width: 34px;
    height: 34px;
  }
  .workflow-quotes-view.is-rows .workflow-quote-fields,
  .workflow-quotes-view.is-rows .workflow-quote-updated {
    display: none;
  }
  .quote-list-card--row .quote-list-card__link,
  .workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__link {
    grid-template-columns: 34px minmax(110px, 1fr) auto 12px;
    gap: 0.5rem;
  }
  .quote-list-card--row .quote-list-card__image,
  .quote-list-card--row .quote-list-card__image-placeholder,
  .workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__image,
  .workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__image-placeholder {
    width: 34px;
    height: 34px;
  }
  .quote-list-card--row .quote-list-card__badges,
  .quote-list-card--row .quote-list-card__fields,
  .quote-list-card--row .quote-list-card__updated,
  .workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__badges,
  .workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__fields,
  .workflow-quotes-view.is-rows .quote-list-card--responsive .quote-list-card__updated {
    display: none;
  }
}
.schedule-page {
  display: flex;
  flex-direction: column;
  height: calc(100vh - 60px);
  background: var(--background-colour);
  color: var(--text-colour);
}
.schedule-page .schedule-header {
  flex-shrink: 0;
}
.schedule-page .schedule-body {
  display: grid;
  grid-template-columns: 280px 1fr;
  align-items: stretch;
  gap: 1rem;
  padding: 1rem;
  flex: 1;
  min-height: 0;
}

.schedule-backlog {
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: background 0.12s ease, box-shadow 0.12s ease;
  color: var(--text-colour);
  position: relative;
  min-height: 0;
}
.schedule-backlog.drop-target {
  background: color-mix(in srgb, var(--accent-yellow) 15%, var(--card-colour));
  box-shadow: inset 0 0 0 2px var(--accent-yellow);
}
.schedule-backlog[busy]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent-lavender), transparent);
  background-size: 40% 100%;
  background-repeat: no-repeat;
  animation: schedule-backlog-loading 1.1s linear infinite;
  z-index: 2;
}
.schedule-backlog[busy] .schedule-backlog-list {
  opacity: 0.55;
  pointer-events: none;
  transition: opacity 0.15s ease;
}
.schedule-backlog .schedule-backlog-header {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-colour);
  background: color-mix(in srgb, var(--card-colour) 70%, var(--background-colour));
}
.schedule-backlog .schedule-backlog-list {
  overflow-y: auto;
  flex: 1;
  padding: 0.5rem;
}
.schedule-backlog .schedule-backlog-pagy {
  border-top: 1px solid var(--border-colour);
  padding: 0.5rem 0.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  background: color-mix(in srgb, var(--card-colour) 70%, var(--background-colour));
}
.schedule-backlog .schedule-backlog-pagy .schedule-pagy-btn {
  padding: 0.15rem 0.5rem;
  font-size: 0.75rem;
}
.schedule-backlog .schedule-backlog-pagy .schedule-pagy-btn.disabled {
  opacity: 0.4;
  pointer-events: none;
}

.schedule-discovery-rail {
  display: flex;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  background: var(--card-colour);
}

.schedule-discovery-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid var(--border-colour);
  background: color-mix(in srgb, var(--card-colour) 70%, var(--background-colour));
}
.schedule-discovery-header > div:first-child {
  display: grid;
  min-width: 0;
}
.schedule-discovery-header strong {
  font-size: 0.85rem;
}
.schedule-discovery-header small {
  color: var(--muted-text);
  font-size: 0.68rem;
}

.schedule-discovery-queue {
  display: flex;
  min-height: 0;
  flex: 1;
}
.schedule-discovery-queue .schedule-backlog {
  width: 100%;
  border: 0;
  border-radius: 0;
}
.schedule-discovery-queue[hidden] {
  display: none;
}

.schedule-page.is-schedule-map-view .schedule-body {
  grid-template-columns: minmax(360px, 30vw) minmax(0, 1fr);
}

@keyframes schedule-backlog-loading {
  from {
    background-position: -40% 0;
  }
  to {
    background-position: 140% 0;
  }
}
@keyframes schedule-block-saving {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.55;
  }
}
.schedule-backlog-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 600;
  background: color-mix(in srgb, var(--accent-green) 18%, transparent);
  color: var(--accent-green);
  border: 1px solid color-mix(in srgb, var(--accent-green) 35%, transparent);
  flex-shrink: 0;
}

.schedule-backlog-card {
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  padding: 0.6rem 0.75rem;
  margin-bottom: 0.5rem;
  cursor: grab;
  color: var(--text-colour);
  min-width: 0;
  overflow: hidden;
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.schedule-backlog-card .flex-grow-1 {
  min-width: 0;
}
.schedule-backlog-card .text-truncate {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.schedule-backlog-card:hover {
  box-shadow: var(--box-shadow);
  transform: translateY(-1px);
  border-color: var(--accent-lavender);
}
.schedule-backlog-card.is-dragging {
  opacity: 0.4;
}
.schedule-backlog-card .schedule-stage-pill {
  display: inline-block;
  margin-top: 0.4rem;
  padding: 0.1rem 0.5rem;
  background: color-mix(in srgb, var(--text-colour) 10%, transparent);
  border-radius: 999px;
  font-size: 0.72rem;
  color: var(--muted-text);
}

.schedule-grid-wrap {
  overflow: auto;
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  background: var(--card-colour);
  min-height: 0;
}

.schedule-grid {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: none !important;
}
.schedule-grid th, .schedule-grid td {
  border-right: 1px solid var(--border-colour) !important;
  border-bottom: 1px solid var(--border-colour) !important;
  vertical-align: top;
}
.schedule-grid thead th {
  position: sticky;
  top: 0;
  background: color-mix(in srgb, var(--card-colour) 70%, var(--background-colour)) !important;
  z-index: 2;
  padding: 0.55rem 0.5rem;
  text-align: left;
  font-weight: 600;
  color: var(--text-colour) !important;
}
.schedule-grid tbody tr:nth-child(odd) {
  background: var(--card-colour) !important;
}
.schedule-grid tbody td {
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
}
.schedule-grid .schedule-corner {
  width: 200px;
  min-width: 200px;
}
.schedule-grid .schedule-day-header {
  min-width: 160px;
}
.schedule-grid .schedule-day-header.today {
  background: color-mix(in srgb, var(--accent-yellow) 25%, var(--card-colour)) !important;
}
.schedule-grid .schedule-day-header .schedule-day-name {
  font-size: 0.75rem;
  text-transform: uppercase;
  color: var(--muted-text);
  letter-spacing: 0.05em;
}
.schedule-grid .schedule-day-header .schedule-day-num {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1;
}
.schedule-grid .schedule-crew-cell {
  width: 200px;
  background: var(--card-colour) !important;
  padding: 0.6rem 0.75rem;
  position: sticky;
  left: 0;
  z-index: 1;
  border-right: 1px solid var(--border-colour) !important;
  color: var(--text-colour) !important;
}
.schedule-grid .schedule-crew-cell .schedule-crew-pdf {
  color: var(--muted-text);
  font-size: 0.95rem;
  padding: 0.2rem;
}
.schedule-grid .schedule-crew-cell .schedule-crew-pdf:hover {
  color: var(--accent-lavender);
}
.schedule-grid .schedule-cell {
  padding: 0.4rem;
  min-height: 96px;
  background: var(--card-colour) !important;
  overflow: visible;
  position: relative;
  transition: background 0.12s ease, box-shadow 0.12s ease;
}
.schedule-grid .schedule-cell .schedule-drive-time {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  padding: 0.18rem 0.4rem;
  margin: 0.15rem 0.2rem;
  font-size: 0.65rem;
  font-weight: 500;
  color: var(--muted-text);
  background: color-mix(in srgb, var(--accent-lavender) 6%, transparent);
  border: 1px dashed color-mix(in srgb, var(--accent-lavender) 35%, transparent);
  border-radius: 4px;
  font-variant-numeric: tabular-nums;
  cursor: help;
}
.schedule-grid .schedule-cell.drop-target {
  background: color-mix(in srgb, var(--accent-lavender) 15%, var(--card-colour)) !important;
  box-shadow: inset 0 0 0 2px var(--accent-lavender);
}
.schedule-grid .schedule-empty-row {
  text-align: center;
  color: var(--muted-text);
  padding: 2rem;
}

.schedule-block {
  background: color-mix(in srgb, var(--crew-colour) 18%, var(--card-colour));
  border-left: 3px solid var(--crew-colour);
  border-radius: 4px;
  padding: 0.4rem 0.5rem;
  margin-bottom: 0.35rem;
  font-size: 0.78rem;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  color: var(--text-colour);
  min-width: 0;
  overflow: hidden;
  position: relative;
}
.schedule-block.is-saving {
  animation: schedule-block-saving 1.1s ease-in-out infinite;
  pointer-events: none;
}
.schedule-block {
  transition: box-shadow 0.12s ease, transform 0.12s ease, opacity 0.12s ease;
}
.schedule-block.is-multi-day {
  z-index: 2;
  border-right: 1px dashed color-mix(in srgb, var(--crew-colour) 60%, transparent);
}
.schedule-block .schedule-block-resize {
  position: absolute;
  top: 0;
  width: 8px;
  height: 100%;
  cursor: col-resize;
  background: transparent;
  z-index: 4;
  transition: background 0.12s ease;
}
.schedule-block .schedule-block-resize::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 24px;
  background: var(--crew-colour);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 0.12s ease;
}
.schedule-block .schedule-block-resize-right {
  right: -2px;
  border-radius: 0 4px 4px 0;
}
.schedule-block .schedule-block-resize-right::after {
  right: 1px;
}
.schedule-block .schedule-block-resize:hover::after {
  opacity: 0.7;
}
.schedule-block.is-resizing {
  transition: none !important;
  box-shadow: 0 0 0 2px var(--accent-lavender);
  z-index: 5;
}
.schedule-block {
  border-top: 3px solid transparent;
}
.schedule-block.is-notified {
  border-top-color: var(--schedule-good);
}
.schedule-block.is-pending-notification {
  border-top-color: var(--schedule-warn);
  background: color-mix(in srgb, var(--schedule-warn) 8%, color-mix(in srgb, var(--crew-colour) 18%, var(--card-colour)));
}
.schedule-block.has-bad-weather::before, .schedule-block.has-warn-weather::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background-repeat: repeat;
  background-size: 8px 8px;
  animation: schedule-rain-drift 1.6s linear infinite;
  z-index: 0;
}
.schedule-block.has-bad-weather::before {
  background-image: repeating-linear-gradient(105deg, transparent 0, transparent 5px, color-mix(in srgb, var(--schedule-bad) 55%, transparent) 5px, color-mix(in srgb, var(--schedule-bad) 55%, transparent) 6px);
  opacity: 0.3;
}
.schedule-block.has-warn-weather::before {
  background-image: repeating-linear-gradient(105deg, transparent 0, transparent 6px, color-mix(in srgb, var(--schedule-warn) 50%, transparent) 6px, color-mix(in srgb, var(--schedule-warn) 50%, transparent) 7px);
  opacity: 0.2;
  animation-duration: 2.2s;
}
.schedule-block.has-bad-weather > *, .schedule-block.has-warn-weather > * {
  position: relative;
  z-index: 1;
}
.schedule-block:hover {
  box-shadow: var(--box-shadow);
}
.schedule-block.is-dragging {
  opacity: 0.4;
}
.schedule-block.status-tentative {
  background-image: repeating-linear-gradient(135deg, transparent 0, transparent 6px, color-mix(in srgb, var(--text-colour) 6%, transparent) 6px, color-mix(in srgb, var(--text-colour) 6%, transparent) 8px);
}
.schedule-block.status-cancelled, .schedule-block.status-weather_postponed {
  opacity: 0.55;
}
.schedule-block .schedule-block-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
}
.schedule-block .schedule-block-address {
  font-weight: 700;
  font-size: 0.78rem;
  line-height: 1.2;
  flex: 1;
  min-width: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}
.schedule-block .schedule-block-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.15rem 0.4rem;
  font-size: 0.7rem;
  color: var(--muted-text);
  line-height: 1.25;
  min-width: 0;
}
.schedule-block .schedule-block-name {
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
}
.schedule-block .schedule-block-sep {
  opacity: 0.5;
}
.schedule-block .schedule-block-type {
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.schedule-block .schedule-drag-handle {
  cursor: grab;
  color: var(--muted-text);
  padding: 0 0.2rem;
  flex-shrink: 0;
}
.schedule-block .schedule-drag-handle:active {
  cursor: grabbing;
}
.schedule-block .schedule-drag-handle:hover {
  color: var(--text-colour);
}
.schedule-block .schedule-block-foot {
  margin-top: 0.15rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem;
  align-items: center;
  min-width: 0;
}

.schedule-pill {
  display: inline-block;
  font-size: 0.65rem;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  flex-shrink: 0;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.schedule-pill.schedule-pill-muted {
  color: var(--muted-text);
  background: color-mix(in srgb, var(--text-colour) 12%, transparent);
}
.schedule-pill.schedule-pill-green {
  color: var(--schedule-good);
  background: var(--schedule-good-bg);
}
.schedule-pill.schedule-pill-lavender {
  color: var(--accent-lavender);
  background: color-mix(in srgb, var(--accent-lavender) 18%, transparent);
}
.schedule-pill.schedule-pill-yellow {
  color: var(--schedule-warn);
  background: var(--schedule-warn-bg);
}
.schedule-pill.schedule-pill-danger {
  color: var(--schedule-bad);
  background: var(--schedule-bad-bg);
}

.schedule-nearby-section {
  border-top: 1px solid var(--border-colour);
  padding-top: 1rem;
  margin-top: 0.5rem;
}

.schedule-nearby-list {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  max-height: 240px;
  overflow-y: auto;
}

.schedule-nearby-row {
  display: block;
  padding: 0.5rem 0.7rem;
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  background: color-mix(in srgb, var(--card-colour) 92%, var(--background-colour));
  text-decoration: none !important;
  color: var(--text-colour) !important;
  transition: border-color 0.12s ease, background 0.12s ease;
}
.schedule-nearby-row:hover {
  border-color: var(--accent-lavender);
  background: color-mix(in srgb, var(--accent-lavender) 8%, var(--card-colour));
}

.schedule-nearby-row-head {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
}

.schedule-nearby-distance {
  display: inline-flex;
  align-items: center;
  padding: 0.05rem 0.45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent-lavender) 18%, transparent);
  color: var(--accent-lavender);
  font-size: 0.7rem;
  font-weight: 700;
  flex-shrink: 0;
}

.schedule-nearby-name {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-nearby-address {
  margin-top: 0.15rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-nearby-blocks {
  margin-top: 0.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.schedule-nearby-blocks .schedule-nearby-block {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  background: var(--schedule-good-bg);
  color: var(--schedule-good);
  font-size: 0.7rem;
  font-weight: 600;
}

.schedule-nearby-empty {
  margin-top: 0.4rem;
}

body.schedule-is-dragging .schedule-grid .schedule-day-header.weather-hint-green {
  background: color-mix(in srgb, var(--schedule-good) 30%, var(--card-colour)) !important;
  box-shadow: inset 0 -3px 0 var(--schedule-good);
}
body.schedule-is-dragging .schedule-grid .schedule-day-header.weather-hint-yellow {
  background: color-mix(in srgb, var(--schedule-warn) 30%, var(--card-colour)) !important;
  box-shadow: inset 0 -3px 0 var(--schedule-warn);
}
body.schedule-is-dragging .schedule-grid .schedule-day-header.weather-hint-red {
  background: color-mix(in srgb, var(--schedule-bad) 30%, var(--card-colour)) !important;
  box-shadow: inset 0 -3px 0 var(--schedule-bad);
}
body.schedule-is-dragging .schedule-grid .schedule-day-header.weather-hint-unknown {
  background: color-mix(in srgb, var(--text-colour) 8%, var(--card-colour)) !important;
}
body.schedule-is-dragging .schedule-grid .schedule-cell.weather-hint-green {
  background: color-mix(in srgb, var(--schedule-good) 8%, var(--card-colour)) !important;
}
body.schedule-is-dragging .schedule-grid .schedule-cell.weather-hint-yellow {
  background: color-mix(in srgb, var(--schedule-warn) 8%, var(--card-colour)) !important;
}
body.schedule-is-dragging .schedule-grid .schedule-cell.weather-hint-red {
  background: color-mix(in srgb, var(--schedule-bad) 8%, var(--card-colour)) !important;
}

body.schedule-is-dragging .schedule-day-header {
  position: relative;
}
body.schedule-is-dragging .schedule-day-header::after {
  content: "";
  position: absolute;
  top: 4px;
  right: 6px;
  width: 14px;
  height: 14px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: 0.85;
}
body.schedule-is-dragging .schedule-day-header.weather-hint-green::after {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='5' fill='%2315803d'/><g stroke='%2315803d' stroke-width='2' stroke-linecap='round'><path d='M12 3v2'/><path d='M12 19v2'/><path d='M3 12h2'/><path d='M19 12h2'/><path d='M5.6 5.6l1.4 1.4'/><path d='M17 17l1.4 1.4'/><path d='M5.6 18.4l1.4-1.4'/><path d='M17 7l1.4-1.4'/></g></svg>");
}
body.schedule-is-dragging .schedule-day-header.weather-hint-yellow::after {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23b45309' d='M7 18a5 5 0 010-10 6 6 0 0111.5 1A4.5 4.5 0 0118 18z'/></svg>");
}
body.schedule-is-dragging .schedule-day-header.weather-hint-red::after {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23b91c1c' d='M7 16a5 5 0 010-10 6 6 0 0111.5 1A4.5 4.5 0 0118 16z'/><g stroke='%23b91c1c' stroke-width='2' stroke-linecap='round'><path d='M9 19l-1 2'/><path d='M13 19l-1 2'/><path d='M17 19l-1 2'/></g></svg>");
}

.schedule-block.is-focused-project {
  outline: 2px solid var(--accent-lavender);
  outline-offset: 1px;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent-lavender) 25%, transparent);
}
.schedule-block.is-dimmed {
  opacity: 0.45;
}
.schedule-block.is-selected {
  outline: 2px solid var(--schedule-good);
  outline-offset: 1px;
  background: color-mix(in srgb, var(--schedule-good) 18%, var(--card-colour));
}
.schedule-block .schedule-block-checkbox {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  cursor: pointer;
  color: var(--muted-text);
  opacity: 0;
  transition: opacity 0.12s ease, color 0.12s ease;
  flex-shrink: 0;
}
.schedule-block .schedule-block-checkbox .schedule-block-checkbox-filled {
  display: none;
}
.schedule-block .schedule-block-checkbox:hover {
  color: var(--accent-lavender);
}
.schedule-block:hover .schedule-block-checkbox {
  opacity: 0.9;
}
.schedule-block.is-selected .schedule-block-checkbox {
  opacity: 1;
  color: var(--schedule-good);
}
.schedule-block.is-selected .schedule-block-checkbox .schedule-block-checkbox-empty {
  display: none;
}
.schedule-block.is-selected .schedule-block-checkbox .schedule-block-checkbox-filled {
  display: inline;
}

.schedule-selection-bar {
  position: fixed;
  bottom: -100px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: var(--card-colour);
  color: var(--text-colour);
  border: 1px solid var(--border-colour);
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
  z-index: 1080;
  transition: bottom 0.18s ease;
}
.schedule-selection-bar.is-visible {
  bottom: 1.5rem;
}
.schedule-selection-bar .schedule-selection-count {
  font-weight: 600;
  font-size: 0.85rem;
  padding: 0 0.5rem;
}
.schedule-selection-bar .schedule-selection-status {
  width: auto;
  min-width: 140px;
}
.schedule-selection-bar .button-13-outline {
  padding: 0.25rem 0.7rem;
}

.schedule-context-menu {
  position: absolute;
  display: none;
  flex-direction: column;
  min-width: 180px;
  padding: 0.35rem 0;
  background: var(--card-colour);
  color: var(--text-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  z-index: 1090;
  font-size: 0.85rem;
}
.schedule-context-menu.is-visible {
  display: flex;
}
.schedule-context-menu .schedule-context-menu-header {
  padding: 0.25rem 0.85rem;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted-text);
}
.schedule-context-menu .schedule-context-menu-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.85rem;
  background: transparent;
  border: none;
  color: var(--text-colour);
  text-align: left;
  cursor: pointer;
  transition: background 0.1s ease;
}
.schedule-context-menu .schedule-context-menu-item:hover {
  background: color-mix(in srgb, var(--accent-lavender) 12%, transparent);
}
.schedule-context-menu .schedule-context-menu-item.is-current {
  color: var(--accent-lavender);
  font-weight: 600;
}
.schedule-context-menu .schedule-context-menu-divider {
  height: 1px;
  background: var(--border-colour);
  margin: 0.25rem 0;
}
.schedule-context-menu .schedule-context-menu-danger {
  color: var(--danger);
}
.schedule-context-menu .schedule-context-menu-danger:hover {
  background: color-mix(in srgb, var(--danger) 12%, transparent);
}

.schedule-view-toggle {
  display: inline-flex;
  gap: 0.25rem;
}
.schedule-view-toggle .schedule-view-btn {
  padding: 0.25rem 0.65rem;
  font-size: 0.85rem;
}
.schedule-view-toggle .schedule-view-btn.is-active {
  background: var(--accent-lavender);
  color: var(--card-colour);
  border-color: var(--accent-lavender);
}

.schedule-rail-tabs {
  display: inline-flex;
  flex-shrink: 0;
  gap: 0.15rem;
  padding: 0.15rem;
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  background: var(--background-colour);
}
.schedule-rail-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.28rem 0.4rem;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--muted-text);
  font-size: 0.7rem;
  font-weight: 650;
  cursor: pointer;
}
.schedule-rail-tabs button.is-active {
  background: var(--accent-lavender);
  color: #fff;
}

.schedule-map-panel {
  position: relative;
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
}
.schedule-map-panel[hidden] {
  display: none;
}

.schedule-map-anchor {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.65rem;
  border-bottom: 1px solid var(--border-colour);
  background: color-mix(in srgb, var(--accent-lavender) 10%, var(--card-colour));
}
.schedule-map-anchor[hidden] {
  display: none;
}
.schedule-map-anchor > i {
  color: var(--accent-lavender);
}
.schedule-map-anchor > div {
  display: grid;
  min-width: 0;
}
.schedule-map-anchor span {
  color: var(--accent-lavender);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
}
.schedule-map-anchor strong {
  overflow: hidden;
  font-size: 0.78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.schedule-map-anchor small {
  color: var(--muted-text);
  font-size: 0.67rem;
}
.schedule-map-anchor button,
.schedule-map-anchor + .schedule-map-candidate button {
  border: 0;
  background: transparent;
  color: var(--muted-text);
}

.schedule-map-wrap {
  display: flex;
  flex-direction: column;
  position: relative;
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  overflow: hidden;
  background: var(--card-colour);
  min-height: 0;
}

.schedule-map-canvas {
  flex: 1;
  min-height: 270px;
  max-height: 38vh;
  width: 100%;
}

.schedule-map-status {
  position: absolute;
  top: 4rem;
  left: 50%;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.55rem;
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  background: var(--card-colour);
  color: var(--muted-text);
  box-shadow: var(--box-shadow);
  font-size: 0.7rem;
  transform: translateX(-50%);
}
.schedule-map-status[hidden] {
  display: none;
}

.schedule-map-results-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.65rem 0.25rem;
  border-top: 1px solid var(--border-colour);
  font-size: 0.72rem;
  color: var(--muted-text);
}
.schedule-map-results-heading strong {
  color: var(--text-colour);
  font-size: 0.76rem;
}

.schedule-map-results {
  display: grid;
  gap: 0.3rem;
  min-height: 90px;
  max-height: 240px;
  padding: 0.3rem 0.45rem 0.55rem;
  overflow-y: auto;
}

.schedule-map-result {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.45rem 0.5rem;
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  background: var(--background-colour);
  color: var(--text-colour);
  text-align: left;
  cursor: pointer;
}
.schedule-map-result:hover, .schedule-map-result.is-selected {
  border-color: var(--accent-lavender);
  background: color-mix(in srgb, var(--accent-lavender) 8%, var(--card-colour));
}
.schedule-map-result > span:first-child {
  display: grid;
  min-width: 0;
}
.schedule-map-result strong {
  overflow: hidden;
  font-size: 0.72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.schedule-map-result small,
.schedule-map-result > span:last-child {
  color: var(--muted-text);
  font-size: 0.62rem;
}
.schedule-map-result > span:last-child {
  max-width: 145px;
  text-align: right;
}

.schedule-map-candidate {
  display: grid;
  gap: 0.45rem;
  padding: 0.6rem;
  border-top: 3px solid var(--accent-lavender);
  background: var(--card-colour);
  box-shadow: 0 -8px 20px color-mix(in srgb, var(--text-colour) 9%, transparent);
}
.schedule-map-candidate[hidden] {
  display: none;
}

.schedule-map-candidate-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.schedule-map-candidate-heading > div {
  display: grid;
  min-width: 0;
}
.schedule-map-candidate-heading span {
  color: var(--accent-lavender);
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
}
.schedule-map-candidate-heading strong {
  overflow: hidden;
  font-size: 0.82rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.schedule-map-candidate-heading small {
  overflow: hidden;
  color: var(--muted-text);
  font-size: 0.65rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.schedule-map-candidate-heading button {
  border: 0;
  background: transparent;
  color: var(--muted-text);
}

.schedule-map-candidate-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.schedule-map-candidate-metrics span {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.35rem;
  border-radius: 10px;
  background: var(--background-colour);
  color: var(--muted-text);
  font-size: 0.62rem;
}
.schedule-map-candidate-metrics i {
  color: var(--accent-lavender);
}

.schedule-map-suggestions {
  display: grid;
  gap: 0.25rem;
  font-size: 0.65rem;
}
.schedule-map-suggestions > span {
  color: var(--muted-text);
}
.schedule-map-suggestions button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  padding: 0.35rem 0.42rem;
  border: 1px solid var(--border-colour);
  border-radius: 5px;
  background: var(--background-colour);
  color: var(--text-colour);
  font-size: 0.64rem;
  text-align: left;
}
.schedule-map-suggestions button:hover {
  border-color: var(--accent-lavender);
}
.schedule-map-suggestions button span {
  font-weight: 700;
}
.schedule-map-suggestions button small {
  color: var(--muted-text);
  text-align: right;
}

.schedule-map-candidate-actions {
  display: flex;
  gap: 0.35rem;
}
.schedule-map-candidate-actions .button-13,
.schedule-map-candidate-actions .button-13-outline {
  flex: 1;
  justify-content: center;
  font-size: 0.68rem;
}

.schedule-map-anchor-btn {
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted-text);
  cursor: pointer;
}
.schedule-map-anchor-btn:hover {
  color: var(--accent-lavender);
}

.is-map-placement-active .schedule-cell {
  cursor: copy;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent-lavender) 35%, transparent);
}

.is-map-placement-active .schedule-cell.is-map-placement-hover {
  background: color-mix(in srgb, var(--accent-lavender) 12%, var(--card-colour)) !important;
  box-shadow: inset 0 0 0 2px var(--accent-lavender);
}

@media (max-width: 1050px) {
  .schedule-page.is-schedule-map-view .schedule-body {
    grid-template-columns: 340px minmax(0, 1fr);
  }
}
.schedule-map-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 90px;
  color: var(--muted-text);
  gap: 0.75rem;
}
.schedule-map-empty i {
  font-size: 2rem;
  opacity: 0.5;
}

.schedule-map-pin {
  --pin-color: #28a745;
  width: 28px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}
.schedule-map-pin i {
  color: var(--pin-color);
  font-size: 28px;
}
.schedule-map-pin .schedule-map-pin-count {
  position: absolute;
  top: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--pin-color);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
}
.schedule-map-pin.is-backlog {
  opacity: 0.85;
}
.schedule-map-pin.is-backlog i {
  color: #9ca3af;
}

.schedule-map-legend {
  position: absolute;
  bottom: 0.75rem;
  left: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 999px;
  padding: 0.4rem 0.75rem;
  box-shadow: var(--box-shadow);
  font-size: 0.75rem;
  max-width: 60%;
  z-index: 5;
}
.schedule-map-legend .schedule-map-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--text-colour);
}
.schedule-map-legend .schedule-map-legend-item .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}
.schedule-map-legend .schedule-map-legend-item .dot.is-backlog {
  background: #9ca3af;
}

.maplibregl-popup-content {
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: 1px solid var(--border-colour);
  box-shadow: var(--box-shadow);
  padding: 12px 14px !important;
}

.maplibregl-popup-tip {
  border-top-color: var(--card-colour) !important;
  border-bottom-color: var(--card-colour) !important;
}

.maplibregl-popup-close-button {
  color: var(--text-colour) !important;
  font-size: 16px !important;
}

.schedule-map-popup {
  font-family: "Helvetica Neue", Arial, sans-serif;
  color: var(--text-colour);
  font-size: 13px;
}
.schedule-map-popup .schedule-map-popup-name {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 2px;
}
.schedule-map-popup .schedule-map-popup-address {
  color: var(--muted-text);
  margin-bottom: 8px;
}
.schedule-map-popup .schedule-map-popup-meta {
  font-size: 12px;
  color: var(--muted-text);
}
.schedule-map-popup .schedule-map-popup-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 6px 0;
}
.schedule-map-popup .schedule-map-popup-row {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  grid-template-areas: "date crew status" "type type type";
  -moz-column-gap: 6px;
       column-gap: 6px;
  padding: 4px 6px;
  border-radius: 4px;
  border-left: 3px solid var(--row-color, var(--schedule-good));
  background: color-mix(in srgb, var(--card-colour) 80%, var(--background-colour));
  font-size: 12px;
}
.schedule-map-popup .schedule-map-popup-row .schedule-map-popup-date {
  grid-area: date;
  font-weight: 600;
  color: var(--text-colour);
}
.schedule-map-popup .schedule-map-popup-row .schedule-map-popup-crew {
  grid-area: crew;
  color: var(--text-colour);
}
.schedule-map-popup .schedule-map-popup-row .schedule-map-popup-status {
  grid-area: status;
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 0.05em;
  padding: 1px 6px;
  border-radius: 999px;
}
.schedule-map-popup .schedule-map-popup-row .schedule-map-popup-status.status-tentative {
  background: color-mix(in srgb, var(--text-colour) 12%, transparent);
  color: var(--muted-text);
}
.schedule-map-popup .schedule-map-popup-row .schedule-map-popup-status.status-confirmed {
  background: var(--schedule-good-bg);
  color: var(--schedule-good);
}
.schedule-map-popup .schedule-map-popup-row .schedule-map-popup-status.status-completed {
  background: color-mix(in srgb, var(--accent-lavender) 18%, transparent);
  color: var(--accent-lavender);
}
.schedule-map-popup .schedule-map-popup-row .schedule-map-popup-status.status-cancelled, .schedule-map-popup .schedule-map-popup-row .schedule-map-popup-status.status-weather_postponed {
  background: var(--schedule-bad-bg);
  color: var(--schedule-bad);
}
.schedule-map-popup .schedule-map-popup-row .schedule-map-popup-type {
  grid-area: type;
  color: var(--muted-text);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.schedule-map-popup .schedule-map-popup-link {
  display: inline-block;
  color: var(--accent-lavender);
  font-weight: 600;
  text-decoration: none;
  margin-top: 6px;
}

.schedule-last-finalized {
  display: inline-flex;
  align-items: center;
  font-size: 0.78rem;
  color: var(--muted-text);
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--text-colour) 6%, transparent);
  border: 1px solid var(--border-colour);
}
.schedule-last-finalized.schedule-last-finalized-empty {
  color: var(--schedule-warn);
  background: var(--schedule-warn-bg);
  border-color: var(--schedule-warn-border);
}

.schedule-sync-bar {
  position: relative;
  display: inline-flex;
  align-items: center;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--schedule-warn-border);
  background: var(--card-colour);
  color: var(--text-colour);
  overflow: hidden;
  min-width: 220px;
}
.schedule-sync-bar .schedule-sync-bar-fill {
  position: absolute;
  inset: 0;
  width: var(--sync-percent, 0%);
  background: linear-gradient(90deg, color-mix(in srgb, var(--schedule-warn) 28%, transparent), color-mix(in srgb, var(--schedule-warn) 14%, transparent));
  transition: width 0.4s ease;
  z-index: 0;
}
.schedule-sync-bar .schedule-sync-bar-label {
  position: relative;
  z-index: 1;
  color: var(--schedule-warn);
}
.schedule-sync-bar.is-empty {
  color: var(--muted-text);
  border-color: var(--border-colour);
  background: color-mix(in srgb, var(--text-colour) 6%, transparent);
}
.schedule-sync-bar.is-complete {
  color: var(--schedule-good);
  background: var(--schedule-good-bg);
  border-color: color-mix(in srgb, var(--schedule-good) 35%, transparent);
  animation: schedule-sync-celebrate 0.6s ease-out;
}
.schedule-sync-bar.is-complete i {
  font-size: 1rem;
}

@keyframes schedule-rain-drift {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -8px 8px;
  }
}
@keyframes schedule-sync-celebrate {
  0% {
    transform: scale(0.96);
  }
  50% {
    transform: scale(1.04);
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--schedule-good) 20%, transparent);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 transparent;
  }
}
.schedule-page,
.schedule-finalize {
  --schedule-warn: #b45309;
  --schedule-warn-bg: rgba(217, 119, 6, 0.14);
  --schedule-warn-border: rgba(217, 119, 6, 0.40);
  --schedule-good: #15803d;
  --schedule-good-bg: rgba(22, 163, 74, 0.14);
  --schedule-bad: #b91c1c;
  --schedule-bad-bg: rgba(220, 38, 38, 0.14);
}

body[data-theme=dark] .schedule-page,
body[data-theme=dark] .schedule-finalize {
  --schedule-warn: #fbbf24;
  --schedule-warn-bg: rgba(251, 191, 36, 0.18);
  --schedule-warn-border: rgba(251, 191, 36, 0.40);
  --schedule-good: #4ade80;
  --schedule-good-bg: rgba(74, 222, 128, 0.18);
  --schedule-bad: #f87171;
  --schedule-bad-bg: rgba(248, 113, 113, 0.18);
}

.schedule-weather-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.05rem 0.35rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 600;
  flex-shrink: 0;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
}
.schedule-weather-badge.green {
  background: var(--schedule-good-bg);
  color: var(--schedule-good);
}
.schedule-weather-badge.yellow {
  background: var(--schedule-warn-bg);
  color: var(--schedule-warn);
}
.schedule-weather-badge.red {
  background: var(--schedule-bad-bg);
  color: var(--schedule-bad);
}
.schedule-weather-badge.unknown, .schedule-weather-badge.gray {
  background: color-mix(in srgb, var(--text-colour) 10%, transparent);
  color: var(--muted-text);
}
.schedule-weather-badge .schedule-weather-temp,
.schedule-weather-badge .schedule-weather-pop {
  font-feature-settings: "tnum";
}
.schedule-weather-badge .schedule-weather-temp {
  font-weight: 700;
}
.schedule-weather-badge .schedule-weather-pop {
  opacity: 0.85;
}

#scheduleEditModal .modal-content,
#scheduleStagePickerModal .modal-content,
#scheduleRulesModal .modal-content {
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: 1px solid var(--border-colour) !important;
  box-shadow: var(--box-shadow);
}
#scheduleEditModal .modal-header,
#scheduleEditModal .modal-footer,
#scheduleStagePickerModal .modal-header,
#scheduleStagePickerModal .modal-footer,
#scheduleRulesModal .modal-header,
#scheduleRulesModal .modal-footer {
  border-color: var(--border-colour) !important;
}
#scheduleEditModal .modal-title,
#scheduleEditModal .form-label,
#scheduleEditModal .form-check-label,
#scheduleEditModal label,
#scheduleStagePickerModal .modal-title,
#scheduleStagePickerModal .form-label,
#scheduleStagePickerModal .form-check-label,
#scheduleStagePickerModal label,
#scheduleRulesModal .modal-title,
#scheduleRulesModal .form-label,
#scheduleRulesModal .form-check-label,
#scheduleRulesModal label {
  color: var(--text-colour) !important;
}
#scheduleEditModal .form-control,
#scheduleEditModal .form-select,
#scheduleEditModal textarea,
#scheduleEditModal input[type=text],
#scheduleEditModal input[type=search],
#scheduleEditModal input[type=email],
#scheduleEditModal input[type=number],
#scheduleStagePickerModal .form-control,
#scheduleStagePickerModal .form-select,
#scheduleStagePickerModal textarea,
#scheduleStagePickerModal input[type=text],
#scheduleStagePickerModal input[type=search],
#scheduleStagePickerModal input[type=email],
#scheduleStagePickerModal input[type=number],
#scheduleRulesModal .form-control,
#scheduleRulesModal .form-select,
#scheduleRulesModal textarea,
#scheduleRulesModal input[type=text],
#scheduleRulesModal input[type=search],
#scheduleRulesModal input[type=email],
#scheduleRulesModal input[type=number] {
  background: var(--input-background) !important;
  color: var(--input-text) !important;
  border-color: var(--input-border) !important;
}
#scheduleEditModal .form-control:focus,
#scheduleEditModal .form-select:focus,
#scheduleStagePickerModal .form-control:focus,
#scheduleStagePickerModal .form-select:focus,
#scheduleRulesModal .form-control:focus,
#scheduleRulesModal .form-select:focus {
  background: var(--input-background) !important;
  border-color: var(--input-focus-border) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-lavender) 25%, transparent) !important;
}
#scheduleEditModal .form-text,
#scheduleEditModal small,
#scheduleEditModal .text-muted,
#scheduleStagePickerModal .form-text,
#scheduleStagePickerModal small,
#scheduleStagePickerModal .text-muted,
#scheduleRulesModal .form-text,
#scheduleRulesModal small,
#scheduleRulesModal .text-muted {
  color: var(--muted-text) !important;
}
#scheduleEditModal .btn-close,
#scheduleStagePickerModal .btn-close,
#scheduleRulesModal .btn-close {
  opacity: 0.7;
}
#scheduleEditModal .btn-close:hover,
#scheduleStagePickerModal .btn-close:hover,
#scheduleRulesModal .btn-close:hover {
  opacity: 1;
}

body[data-theme=dark] #scheduleEditModal .btn-close,
body[data-theme=dark] #scheduleStagePickerModal .btn-close {
  filter: invert(1) grayscale(100%);
}

.schedule-crew-list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.schedule-crew-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 0.75rem;
  border-radius: 6px;
  border: 1px solid transparent;
  background: transparent;
  transition: background 0.12s ease, border-color 0.12s ease, transform 0.12s ease;
  position: relative;
}
.schedule-crew-row:hover {
  background: color-mix(in srgb, var(--accent-lavender) 6%, transparent);
  border-color: var(--border-colour);
}
.schedule-crew-row.is-dragging {
  opacity: 0.5;
}
.schedule-crew-row.drop-above::before, .schedule-crew-row.drop-below::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--accent-lavender);
  border-radius: 2px;
}
.schedule-crew-row.drop-above::before {
  top: -1px;
}
.schedule-crew-row.drop-below::after {
  bottom: -1px;
}
.schedule-crew-row .schedule-crew-row-handle {
  cursor: grab;
  color: var(--muted-text);
  padding: 0 0.25rem;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.schedule-crew-row .schedule-crew-row-handle:active {
  cursor: grabbing;
}
.schedule-crew-row .schedule-crew-row-handle:hover {
  color: var(--text-colour);
}
.schedule-crew-row .min-width-0 {
  min-width: 0;
}
.schedule-crew-row .schedule-crew-row-actions {
  display: flex;
  gap: 0.25rem;
  flex-shrink: 0;
}
.schedule-crew-row .schedule-crew-row-actions .button-13-outline {
  padding: 0.25rem 0.55rem;
}

.schedule-card-badge {
  position: absolute;
  top: 0.4rem;
  left: 0.4rem;
  z-index: 15;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.15rem 0.45rem;
  background: color-mix(in srgb, var(--accent-green) 20%, var(--card-colour));
  color: var(--accent-green);
  border: 1px solid color-mix(in srgb, var(--accent-green) 40%, transparent);
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  text-decoration: none !important;
  line-height: 1;
}
.schedule-card-badge:hover {
  background: color-mix(in srgb, var(--accent-green) 30%, var(--card-colour));
  color: var(--accent-green) !important;
}
.schedule-card-badge .schedule-card-badge-count {
  font-feature-settings: "tnum";
}

.schedule-timeline {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.schedule-timeline .schedule-timeline-row {
  display: grid;
  grid-template-columns: 56px 28px 1fr;
  gap: 0.75rem;
  align-items: center;
  padding: 0.6rem 0.75rem;
  border-radius: 8px;
  border: 1px solid var(--border-colour);
  background: color-mix(in srgb, var(--card-colour) 90%, var(--background-colour));
  border-left-width: 4px;
  border-left-color: var(--row-colour, var(--accent-lavender));
}
.schedule-timeline .schedule-timeline-row.is-event {
  border-left-color: var(--accent-lavender);
}
.schedule-timeline .schedule-timeline-date {
  text-align: center;
  line-height: 1;
}
.schedule-timeline .schedule-timeline-date .day {
  font-size: 1.4rem;
  font-weight: 600;
}
.schedule-timeline .schedule-timeline-date .dow, .schedule-timeline .schedule-timeline-date .month {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.schedule-timeline .schedule-timeline-icon {
  color: var(--muted-text);
  text-align: center;
  font-size: 1rem;
}
.schedule-timeline .schedule-timeline-row.is-block .schedule-timeline-icon {
  color: var(--row-colour, var(--accent-green));
}

.schedule-finalize-rules-body {
  padding-top: 0.25rem;
  color: var(--text-colour);
}

.schedule-finalize-rules-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
  background: transparent;
  color: var(--text-colour);
}
.schedule-finalize-rules-table thead th {
  text-align: left;
  font-weight: 600;
  color: var(--muted-text);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.4rem 0.6rem;
  border-bottom: 1px solid var(--border-colour);
  background: transparent;
}
.schedule-finalize-rules-table tbody td {
  padding: 0.45rem 0.6rem;
  border-bottom: 1px solid var(--border-colour);
  vertical-align: middle;
  background: transparent;
}
.schedule-finalize-rules-table tbody tr:last-child td {
  border-bottom: none;
}

.schedule-finalize {
  color: var(--text-colour);
}
.schedule-finalize .schedule-finalize-rules {
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  padding: 0.75rem 1rem;
}
.schedule-finalize .schedule-finalize-rules summary {
  cursor: pointer;
  font-weight: 600;
  list-style: none;
}
.schedule-finalize .schedule-finalize-rules summary::-webkit-details-marker {
  display: none;
}
.schedule-finalize .schedule-finalize-rules[open] summary {
  margin-bottom: 0.5rem;
}
.schedule-finalize .schedule-finalize-untouched {
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  background: color-mix(in srgb, var(--text-colour) 4%, transparent);
  border: 1px dashed var(--border-colour);
  border-radius: 8px;
}
.schedule-finalize .schedule-finalize-untouched-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.5rem;
}
.schedule-finalize .schedule-finalize-untouched-item {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  padding: 0.4rem 0.6rem;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  font-size: 0.8rem;
}
.schedule-finalize .schedule-finalize-untouched-item .count {
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--accent-lavender);
  flex-shrink: 0;
  min-width: 2ch;
}
.schedule-finalize .schedule-finalize-untouched-item .label {
  color: var(--muted-text);
}
.schedule-finalize .schedule-finalize-actions-text {
  flex: 1;
  min-width: 240px;
}
.schedule-finalize .schedule-finalize-counts {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.schedule-finalize .schedule-finalize-section {
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
}
.schedule-finalize .schedule-finalize-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.schedule-finalize .schedule-finalize-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  background: color-mix(in srgb, var(--card-colour) 92%, var(--background-colour));
  cursor: pointer;
  transition: background 0.12s ease;
}
.schedule-finalize .schedule-finalize-row:hover {
  background: color-mix(in srgb, var(--accent-lavender) 8%, var(--card-colour));
}
.schedule-finalize .schedule-finalize-row input[type=checkbox] {
  margin-top: 0.25rem;
}
.schedule-finalize .schedule-finalize-row .schedule-finalize-row-body {
  flex: 1;
  min-width: 0;
}
.schedule-finalize .schedule-finalize-row .schedule-finalize-row-meta {
  font-size: 0.78rem;
  color: var(--muted-text);
  margin-top: 0.15rem;
}
.schedule-finalize .schedule-finalize-row-batched .schedule-finalize-visit {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  font-size: 0.85rem;
  padding: 0.15rem 0;
}
.schedule-finalize .schedule-finalize-row-batched .schedule-finalize-visit-primary {
  font-weight: 500;
  margin-top: 0.25rem;
}
.schedule-finalize .schedule-finalize-row-batched .schedule-finalize-visit-marker {
  font-size: 0.85rem;
  width: 0.9rem;
  text-align: center;
  color: var(--accent-lavender);
}
.schedule-finalize .schedule-finalize-row-batched .schedule-finalize-visit-date {
  font-variant-numeric: tabular-nums;
}
.schedule-finalize .schedule-finalize-row-batched .schedule-finalize-visits-others {
  margin-top: 0.4rem;
  padding: 0.4rem 0.5rem 0.2rem;
  border-left: 2px solid color-mix(in srgb, var(--accent-lavender) 40%, transparent);
  background: color-mix(in srgb, var(--accent-lavender) 4%, transparent);
  border-radius: 0 4px 4px 0;
}
.schedule-finalize .schedule-finalize-row-batched .schedule-finalize-visits-others-label {
  margin-bottom: 0.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.7rem;
}
.schedule-finalize .schedule-finalize-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
  position: sticky;
  bottom: 0;
  padding: 1rem;
  background: linear-gradient(to top, var(--background-colour) 60%, transparent);
}

.schedule-notify-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.05rem 0.4rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  flex-shrink: 0;
  white-space: nowrap;
}
.schedule-notify-pill.schedule-notify-pill-pending {
  background: var(--schedule-warn-bg);
  color: var(--schedule-warn);
  border: 1px solid var(--schedule-warn-border);
  animation: schedule-notify-pulse 2.4s ease-in-out infinite;
}
.schedule-notify-pill.schedule-notify-pill-synced {
  background: var(--schedule-good-bg);
  color: var(--schedule-good);
  border: 1px solid color-mix(in srgb, var(--schedule-good) 35%, transparent);
}

@keyframes schedule-notify-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 var(--schedule-warn-border);
  }
  50% {
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--schedule-warn) 22%, transparent);
  }
}
.schedule-block-events {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  color: var(--accent-lavender);
  font-size: 0.68rem;
  font-weight: 700;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent-lavender) 14%, transparent);
  flex-shrink: 0;
}

.schedule-day-aggregate {
  display: inline-block;
  margin-top: 0.25rem;
  padding: 0.05rem 0.45rem;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 700;
  border: 1px solid currentColor;
}
.schedule-day-aggregate.green {
  background: var(--schedule-good-bg);
  color: var(--schedule-good);
  border-color: color-mix(in srgb, var(--schedule-good) 35%, transparent);
}
.schedule-day-aggregate.yellow {
  background: var(--schedule-warn-bg);
  color: var(--schedule-warn);
  border-color: var(--schedule-warn-border);
}
.schedule-day-aggregate.red {
  background: var(--schedule-bad-bg);
  color: var(--schedule-bad);
  border-color: color-mix(in srgb, var(--schedule-bad) 35%, transparent);
}

.schedule-edit-context {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  background: color-mix(in srgb, var(--accent-lavender) 5%, var(--card-colour));
  border: 1px solid var(--border-colour);
  border-radius: 8px;
}
.schedule-edit-context .schedule-edit-context-header {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 600;
  font-size: 0.85rem;
  margin-bottom: 0.6rem;
  color: var(--text-colour);
}
.schedule-edit-context .schedule-edit-context-header a {
  color: var(--accent-lavender);
  text-decoration: none;
}
.schedule-edit-context .schedule-edit-context-header a:hover {
  text-decoration: underline;
}
.schedule-edit-context .schedule-edit-context-skeleton {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.25rem 0;
}
.schedule-edit-context .schedule-edit-context-skeleton .skeleton-row {
  height: 0.85rem;
  background: linear-gradient(90deg, color-mix(in srgb, var(--muted-text) 12%, transparent), color-mix(in srgb, var(--muted-text) 22%, transparent), color-mix(in srgb, var(--muted-text) 12%, transparent));
  background-size: 200% 100%;
  animation: schedule-skeleton-shimmer 1.4s linear infinite;
  border-radius: 4px;
}
.schedule-edit-context .schedule-edit-context-alert {
  background: var(--schedule-bad-bg);
  border: 1px solid color-mix(in srgb, var(--schedule-bad) 40%, transparent);
  color: var(--schedule-bad);
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  font-size: 0.85rem;
  margin-bottom: 0.6rem;
  font-weight: 500;
}
.schedule-edit-context .schedule-edit-context-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.75rem;
  margin-bottom: 0.6rem;
}
.schedule-edit-context .schedule-edit-context-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted-text);
  margin-bottom: 0.25rem;
}
.schedule-edit-context .schedule-edit-context-events {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.schedule-edit-context .schedule-edit-context-events li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
}
.schedule-edit-context .schedule-edit-context-events li .schedule-edit-context-event-date {
  font-variant-numeric: tabular-nums;
  color: var(--muted-text);
  min-width: 90px;
}
.schedule-edit-context .schedule-edit-context-events li .schedule-edit-context-event-title {
  font-weight: 500;
}
.schedule-edit-context .schedule-edit-context-comment {
  background: color-mix(in srgb, var(--card-colour) 80%, var(--background-colour));
  border-radius: 6px;
  padding: 0.5rem 0.7rem;
  font-size: 0.85rem;
}
.schedule-edit-context .schedule-edit-context-comment > div:last-child {
  margin-top: 0.25rem;
  color: var(--text-colour);
  line-height: 1.4;
}
.schedule-edit-context .schedule-edit-context-error {
  margin-top: 0.5rem;
}
.schedule-edit-context .schedule-edit-context-error a {
  color: var(--accent-lavender);
  text-decoration: underline;
}

@keyframes schedule-skeleton-shimmer {
  from {
    background-position: 200% 0;
  }
  to {
    background-position: -200% 0;
  }
}
.project-show-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  grid-template-areas: "sidebar main";
  gap: 1rem;
  max-width: 1400px;
  margin: 0 auto;
  padding: 1rem 1rem 2rem;
  align-items: start;
  position: relative;
}
.project-show-layout.sidebar-is-collapsed {
  grid-template-columns: 64px 1fr;
}
@media (max-width: 1199.98px) {
  .project-show-layout {
    gap: 0.75rem;
  }
}
@media (max-width: 991.98px) {
  .project-show-layout {
    grid-template-columns: 1fr;
    grid-template-areas: "main";
    gap: 0.75rem;
    padding: 0.75rem 0.75rem 1.5rem;
  }
}
@media (max-width: 767.98px) {
  .project-show-layout {
    padding: 0.5rem 0.5rem 1rem;
  }
}

.project-tab-context {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  margin-bottom: 0.75rem;
  font-family: "Quicksand", sans-serif;
  font-size: 0.875rem;
  flex-wrap: wrap;
}
.project-tab-context .project-tab-context-back {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--accent-lavender);
  text-decoration: none;
  font-weight: 600;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  transition: background 0.15s ease;
  flex-shrink: 0;
}
.project-tab-context .project-tab-context-back:hover {
  background: color-mix(in srgb, var(--accent-lavender) 10%, transparent);
}
.project-tab-context .project-tab-context-name {
  font-weight: 700;
  color: var(--text-colour);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.project-tab-context .project-tab-context-address {
  color: var(--text-colour);
  opacity: 0.7;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.project-sidebar {
  grid-area: sidebar;
  position: sticky;
  top: 0.75rem;
  align-self: start;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: width 0.25s ease;
  width: 220px;
}
@media (max-width: 991.98px) {
  .project-sidebar {
    display: none;
  }
}
.project-sidebar.is-collapsed {
  width: 64px;
}
.project-sidebar.is-collapsed .sidebar-nav-label,
.project-sidebar.is-collapsed .sidebar-nav-count {
  display: none;
}
.project-sidebar.is-collapsed .sidebar-toggle-btn .bi {
  transform: rotate(180deg);
}

.sidebar-toggle-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.5rem;
  background: none;
  border: none;
  border-top: 1px solid var(--border-colour);
  color: var(--text-colour);
  cursor: pointer;
  font-size: 0.875rem;
  transition: background 0.15s ease;
}
.sidebar-toggle-btn:hover {
  background: color-mix(in srgb, var(--accent-lavender) 10%, transparent);
}
.sidebar-toggle-btn .bi {
  transition: transform 0.2s ease;
}

.sidebar-nav {
  list-style: none;
  padding: 0.5rem;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.sidebar-nav-item {
  position: relative;
}

.sidebar-nav-link {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.5rem 0.625rem;
  border-radius: 6px;
  color: var(--text-colour);
  text-decoration: none;
  font-family: "Quicksand", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
  transition: background 0.15s ease;
  min-height: 44px;
}
.sidebar-nav-link:hover {
  background: color-mix(in srgb, var(--accent-lavender) 8%, transparent);
}
.sidebar-nav-link.active, .sidebar-nav-link.menu-button.active {
  background: color-mix(in srgb, var(--accent-lavender) 12%, transparent) !important;
  color: var(--text-colour) !important;
}
.sidebar-nav-link.active::before, .sidebar-nav-link.menu-button.active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.375rem;
  bottom: 0.375rem;
  width: 3px;
  border-radius: 0 2px 2px 0;
  background: var(--accent-lavender);
}
.sidebar-nav-link .sidebar-nav-icon {
  font-size: 1.1rem;
  width: 1.5rem;
  text-align: center;
  flex-shrink: 0;
}
.sidebar-nav-link .sidebar-nav-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.sidebar-nav-link .sidebar-nav-count {
  margin-left: auto;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.125rem 0.375rem;
  border-radius: 999px;
  background: var(--border-colour);
  color: var(--text-colour);
  flex-shrink: 0;
}

.project-sidebar-drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1040;
  pointer-events: none;
}
@media (max-width: 991.98px) {
  .project-sidebar-drawer {
    display: block;
  }
}
.project-sidebar-drawer.is-open {
  pointer-events: auto;
}
.project-sidebar-drawer.is-open .drawer-backdrop {
  opacity: 1;
  pointer-events: auto;
}
.project-sidebar-drawer.is-open .drawer-panel {
  transform: translateX(0);
}

.drawer-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}

.drawer-panel {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 260px;
  max-width: 80vw;
  background: var(--card-colour);
  border-right: 1px solid var(--border-colour);
  transform: translateX(-100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  padding: 1rem;
  gap: 0.5rem;
}
.drawer-panel .drawer-close {
  align-self: flex-end;
  background: none;
  border: none;
  color: var(--text-colour);
  font-size: 1.5rem;
  cursor: pointer;
  padding: 0.25rem;
  line-height: 1;
}
.drawer-panel .drawer-nav {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.drawer-nav-link {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 0.75rem;
  border-radius: 6px;
  color: var(--text-colour);
  text-decoration: none;
  font-family: "Quicksand", sans-serif;
  font-size: 0.9375rem;
  font-weight: 500;
  cursor: pointer;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
  min-height: 48px;
  transition: background 0.15s ease;
}
.drawer-nav-link:hover {
  background: color-mix(in srgb, var(--accent-lavender) 8%, transparent);
}
.drawer-nav-link.active, .drawer-nav-link.menu-button.active {
  background: color-mix(in srgb, var(--accent-lavender) 12%, transparent) !important;
  color: var(--text-colour) !important;
}
.drawer-nav-link.active::before, .drawer-nav-link.menu-button.active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5rem;
  bottom: 0.5rem;
  width: 3px;
  border-radius: 0 2px 2px 0;
  background: var(--accent-lavender);
}
.drawer-nav-link .drawer-nav-icon {
  font-size: 1.15rem;
  width: 1.5rem;
  text-align: center;
}
.drawer-nav-link .drawer-nav-count {
  margin-left: auto;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.15rem 0.4rem;
  border-radius: 999px;
  background: var(--border-colour);
  color: var(--text-colour);
}

.project-main {
  grid-area: main;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.project-hero-card {
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--box-shadow);
}

.project-hero-inner {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 1rem;
  padding: 1rem;
}
@media (max-width: 1199.98px) {
  .project-hero-inner {
    grid-template-columns: 260px 1fr;
  }
}
@media (max-width: 767.98px) {
  .project-hero-inner {
    grid-template-columns: 1fr;
    padding: 0.75rem;
    gap: 0.75rem;
  }
}

.project-hero-cover {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  background: var(--background-colour);
  min-height: 180px;
  max-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.project-hero-cover img, .project-hero-cover .project-hero-cover-placeholder {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.project-hero-cover .project-hero-cover-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-colour);
  opacity: 0.35;
  font-size: 3rem;
}
@media (max-width: 767.98px) {
  .project-hero-cover {
    min-height: 160px;
    max-height: 200px;
  }
}

.project-hero-meta {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}

.project-hero-top-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.project-hero-left {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.project-hero-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
  flex-shrink: 0;
}

.project-hero-actions {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.project-hero-side-info {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.project-hero-side-info .project-hero-watchers {
  margin-top: 0;
}

.project-hero-title-group {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.project-hero-name-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.project-hero-back-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: var(--text-colour);
  text-decoration: none;
  opacity: 0.65;
  transition: background 0.15s ease, opacity 0.15s ease;
  font-size: 1rem;
  flex-shrink: 0;
}
.project-hero-back-btn:hover, .project-hero-back-btn:focus {
  opacity: 1;
  background: color-mix(in srgb, var(--accent-lavender) 12%, transparent);
  color: var(--text-colour);
}

.project-hero-name {
  font-family: "Quicksand", sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--text-colour);
  margin: 0 0 0.25rem;
  line-height: 1.25;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
@media (max-width: 767.98px) {
  .project-hero-name {
    font-size: 1.15rem;
  }
}

.project-hero-address {
  font-family: "Quicksand", sans-serif;
  font-size: 0.875rem;
  color: var(--text-colour);
  opacity: 0.8;
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-wrap: wrap;
}
.project-hero-address a {
  color: inherit;
  text-decoration: none;
}
.project-hero-address a:hover {
  text-decoration: underline;
}

.project-hero-actions-dropdown .dropdown-toggle::after {
  display: none;
}

.project-hero-top-row .progress-button {
  padding: 0;
  background: transparent !important;
  width: 40px;
  height: 40px;
  min-height: 40px;
  border-radius: 50%;
  border: 1px solid var(--border-colour);
  color: var(--text-colour);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: auto;
  isolation: auto;
  contain: none;
}
.project-hero-top-row .progress-button:hover {
  background: var(--card-colour) !important;
  border-color: var(--accent-lavender);
  color: var(--accent-lavender);
}
.project-hero-top-row .progress-button::before {
  z-index: -1;
}

.project-hero-planpermit {
  font-size: 0.8rem;
  color: var(--text-colour);
  opacity: 0.85;
}

.project-hero-status-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.project-hero-watchers {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: 0.25rem;
}
.project-hero-watchers .watcher-avatar-stack {
  display: flex;
  align-items: center;
}
.project-hero-watchers .watcher-avatar-stack .watcher-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid var(--card-colour);
  -o-object-fit: cover;
     object-fit: cover;
  margin-left: -8px;
  transition: transform 0.15s ease;
}
.project-hero-watchers .watcher-avatar-stack .watcher-avatar:first-child {
  margin-left: 0;
}
.project-hero-watchers .watcher-avatar-stack .watcher-avatar:hover {
  transform: translateY(-2px);
  z-index: 2;
}
.project-hero-watchers .watcher-avatar-stack .watcher-more {
  margin-left: -8px;
  height: 28px;
  padding: 0 0.5rem;
  border-radius: 999px;
  background: var(--border-colour);
  color: var(--text-colour);
  font-size: 0.7rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--card-colour);
}

.project-hero-labels {
  margin-top: 0.25rem;
}

.project-design-panel {
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 10px;
  padding: 1rem;
  box-shadow: var(--box-shadow);
}

.design-static-card {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  background: var(--background-colour);
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.design-static-card img {
  width: 100%;
  max-height: 420px;
  -o-object-fit: contain;
     object-fit: contain;
  display: block;
}

.design-static-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(2px);
  transition: background 0.2s ease;
}
.design-static-overlay:hover {
  background: rgba(0, 0, 0, 0.45);
}

.design-static-caption {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.8rem;
  font-family: "Quicksand", sans-serif;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

.scene-viewer-container {
  width: 100%;
  height: 500px;
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  background: var(--background-colour);
}
@media (max-width: 767.98px) {
  .scene-viewer-container {
    height: 360px;
  }
}

.project-tab-content .tab-pane {
  display: none;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.project-tab-content .tab-pane.active {
  display: block;
  opacity: 1;
  animation: projectFadeIn 0.25s ease;
}

@keyframes projectFadeIn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.project-general-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin-top: 1rem;
}
@media (max-width: 767.98px) {
  .project-general-grid {
    grid-template-columns: 1fr;
  }
}

.project-info-card {
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--box-shadow);
  display: flex;
  flex-direction: column;
}
.project-info-card.span-2 {
  grid-column: span 2;
}
@media (max-width: 767.98px) {
  .project-info-card.span-2 {
    grid-column: span 1;
  }
}
.project-info-card .card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-colour);
  gap: 0.75rem;
  flex-wrap: wrap;
}
.project-info-card .card-header .card-title {
  font-family: "Quicksand", sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-colour);
}
.project-info-card .card-header .card-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.project-info-card .card-body {
  padding: 1rem;
  flex: 1;
}
.project-info-card .info-row {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-bottom: 0.75rem;
}
.project-info-card .info-row:last-child {
  margin-bottom: 0;
}
.project-info-card .info-row .info-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--text-colour);
  opacity: 0.55;
}
.project-info-card .info-row .info-value {
  font-size: 0.9rem;
  color: var(--text-colour);
  word-break: break-word;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.project-info-card .info-row .info-value .blankbutton {
  flex-shrink: 0;
}

.watcher-card-body .watcher-stack {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}
.watcher-card-body .watcher-stack .watcher-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px solid var(--card-colour);
  -o-object-fit: cover;
     object-fit: cover;
  margin-left: -10px;
  transition: transform 0.15s ease;
}
.watcher-card-body .watcher-stack .watcher-avatar:first-child {
  margin-left: 0;
}
.watcher-card-body .watcher-stack .watcher-avatar:hover {
  transform: translateY(-2px);
  z-index: 2;
}
.watcher-card-body .watcher-stack .watcher-more {
  margin-left: -10px;
  height: 32px;
  padding: 0 0.5rem;
  border-radius: 999px;
  background: var(--border-colour);
  color: var(--text-colour);
  font-size: 0.75rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--card-colour);
}
.watcher-card-body .watcher-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.mobile-nav-trigger {
  position: fixed;
  right: 16px;
  bottom: calc(64px + env(safe-area-inset-bottom, 0px) + 16px);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--accent-lavender);
  color: #fff;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  z-index: 1040;
  transition: transform 0.15s ease, filter 0.15s ease;
}
.mobile-nav-trigger:hover, .mobile-nav-trigger:focus {
  filter: brightness(1.08);
  color: #fff;
}
.mobile-nav-trigger:active {
  transform: scale(0.95);
}

.project-show-back-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 6px;
  background: var(--button-colour);
  color: var(--button-text);
  border: 1px solid var(--border-colour);
  text-decoration: none;
  transition: all 0.15s ease;
}
.project-show-back-btn:hover {
  filter: brightness(1.1);
  color: var(--button-text);
}

.quote-show-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  grid-template-areas: "sidebar main";
  gap: 1rem;
  max-width: 1400px;
  margin: 0 auto;
  padding: 1rem 1rem 2rem;
  align-items: start;
  position: relative;
}
.quote-show-layout.sidebar-is-collapsed {
  grid-template-columns: 64px 1fr;
}
@media (max-width: 1199.98px) {
  .quote-show-layout {
    gap: 0.75rem;
  }
}
@media (max-width: 991.98px) {
  .quote-show-layout {
    grid-template-columns: 1fr;
    grid-template-areas: "main";
    gap: 0.75rem;
    padding: 0.75rem 0.75rem 1.5rem;
  }
}
@media (max-width: 767.98px) {
  .quote-show-layout {
    padding: 0.5rem 0.5rem 1rem;
  }
}

.quote-sidebar {
  grid-area: sidebar;
  position: sticky;
  top: 80px;
  align-self: start;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: width 0.25s ease;
  width: 220px;
}
@media (max-width: 991.98px) {
  .quote-sidebar {
    display: none;
  }
}
.quote-sidebar.is-collapsed {
  width: 64px;
}
.quote-sidebar.is-collapsed .sidebar-nav-label,
.quote-sidebar.is-collapsed .sidebar-nav-count {
  display: none;
}
.quote-sidebar.is-collapsed .sidebar-toggle-btn .bi {
  transform: rotate(180deg);
}

.quote-sidebar-drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1040;
  pointer-events: none;
}
@media (max-width: 991.98px) {
  .quote-sidebar-drawer {
    display: block;
  }
}
.quote-sidebar-drawer.is-open {
  pointer-events: auto;
}
.quote-sidebar-drawer.is-open .drawer-backdrop {
  opacity: 1;
  pointer-events: auto;
}
.quote-sidebar-drawer.is-open .drawer-panel {
  transform: translateX(0);
}

.quote-main {
  grid-area: main;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.quote-tab-context {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  margin-bottom: 0.75rem;
  font-family: "Quicksand", sans-serif;
  font-size: 0.875rem;
  flex-wrap: wrap;
}
.quote-tab-context .quote-tab-context-back {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--accent-lavender);
  text-decoration: none;
  font-weight: 600;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  transition: background 0.15s ease;
  flex-shrink: 0;
}
.quote-tab-context .quote-tab-context-back:hover {
  background: color-mix(in srgb, var(--accent-lavender) 10%, transparent);
}
.quote-tab-context .quote-tab-context-name {
  font-weight: 700;
  color: var(--text-colour);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.quote-tab-context .quote-tab-context-actions {
  margin-left: auto;
  flex-shrink: 0;
}

.quote-main:has(#overview.tab-pane.active) .quote-tab-context {
  display: none;
}

.quote-actions a.badge:hover {
  color: var(--background-colour) !important;
}

.quote-actions-floating {
  position: fixed;
  top: 80px;
  right: 16px;
  z-index: 100;
}
@media (max-width: 991.98px) {
  .quote-actions-floating {
    top: 76px;
    right: 12px;
  }
}

#quoteTabsContent .tab-pane.active {
  animation: quoteFadeIn 0.25s ease;
}

@keyframes quoteFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.quote-picker-dialog {
  --quote-picker-max-height: calc(100vh - 3rem);
}

.quote-picker-modal {
  display: flex;
  flex-direction: column;
  max-height: var(--quote-picker-max-height);
  overflow: hidden;
}
.quote-picker-modal .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.quote-picker-modal > form {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

.quote-picker-toolbar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}
.quote-picker-toolbar .text-muted {
  flex: 0 0 auto;
  white-space: nowrap;
}

.quote-picker-toolbar-compact {
  align-items: stretch;
  flex-direction: column;
  gap: 0.35rem;
}

.quote-picker-search {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}
.quote-picker-search i {
  position: absolute;
  left: 0.85rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted-text, #6c757d);
  pointer-events: none;
  z-index: 2;
}
.quote-picker-search .form-control {
  min-height: 2.35rem;
  padding-left: 2.35rem;
}

.quote-picker-list {
  max-height: 54vh;
  overflow-y: auto;
  padding-right: 0.25rem;
}

.quote-picker-list-split {
  max-height: 36vh;
}

@media (min-height: 963px) {
  .quote-picker-list {
    max-height: 520px;
  }
}
@media (min-height: 1056px) {
  .quote-picker-list-split {
    max-height: 380px;
  }
}
.quote-picker-row {
  margin-bottom: 0.55rem;
  padding: 0.8rem 0.9rem;
  border: 1px solid transparent;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.quote-picker-row:hover {
  background-color: color-mix(in srgb, var(--secondary-colour) 6%, transparent);
  border-color: color-mix(in srgb, var(--secondary-colour) 20%, transparent);
}
.quote-picker-row .input-group {
  flex: 0 0 120px;
}
.quote-picker-row .custom-checkbox {
  flex: 0 0 20px;
}
.quote-picker-row .min-width-0 {
  min-width: 0;
}

.quote-picker-label {
  min-width: 0;
  line-height: 1.35;
}
.quote-picker-label strong {
  overflow-wrap: anywhere;
}

.quote-picker-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 8rem;
  color: var(--muted-text, #6c757d);
  text-align: center;
}

.quote-picker-footer {
  flex: 0 0 auto;
  padding-top: 0.85rem;
}

@media (max-width: 575.98px) {
  .quote-picker-dialog {
    margin: 0.75rem;
  }
  .quote-picker-toolbar {
    align-items: stretch;
    flex-direction: column;
    gap: 0.4rem;
  }
  .quote-picker-row {
    padding: 0.75rem;
  }
  .quote-picker-row > .d-flex {
    align-items: stretch !important;
    flex-direction: column;
  }
  .quote-picker-row .input-group {
    flex-basis: auto;
    width: 100% !important;
  }
}
.products-show-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  grid-template-areas: "sidebar main";
  gap: 1rem;
  max-width: 1400px;
  margin: 0 auto;
  padding: 1rem 1rem 2rem;
  align-items: start;
  position: relative;
}
.products-show-layout.sidebar-is-collapsed {
  grid-template-columns: 64px 1fr;
}
@media (max-width: 1199.98px) {
  .products-show-layout {
    gap: 0.75rem;
  }
}
@media (max-width: 991.98px) {
  .products-show-layout {
    grid-template-columns: 1fr;
    grid-template-areas: "main";
    gap: 0.75rem;
    padding: 0.75rem 0.75rem 1.5rem;
  }
}
@media (max-width: 767.98px) {
  .products-show-layout {
    padding: 0.5rem 0.5rem 1rem;
  }
}

.products-sidebar {
  grid-area: sidebar;
  position: sticky;
  top: var(--page-sticky-navbar-offset, 100px);
  align-self: start;
  background: var(--card-colour);
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: width 0.25s ease;
  width: 220px;
}
@media (max-width: 991.98px) {
  .products-sidebar {
    display: none;
  }
}
.products-sidebar.is-collapsed {
  width: 64px;
}
.products-sidebar.is-collapsed .sidebar-nav-label,
.products-sidebar.is-collapsed .sidebar-nav-count {
  display: none;
}
.products-sidebar.is-collapsed .sidebar-toggle-btn .bi {
  transform: rotate(180deg);
}

.products-sidebar-drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1040;
  pointer-events: none;
}
@media (max-width: 991.98px) {
  .products-sidebar-drawer {
    display: block;
  }
}
.products-sidebar-drawer.is-open {
  pointer-events: auto;
}
.products-sidebar-drawer.is-open .drawer-backdrop {
  opacity: 1;
  pointer-events: auto;
}
.products-sidebar-drawer.is-open .drawer-panel {
  transform: translateX(0);
}

.products-main {
  grid-area: main;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.products-sidebar svg.sidebar-nav-icon,
.products-sidebar svg.drawer-nav-icon,
.products-sidebar-drawer svg.sidebar-nav-icon,
.products-sidebar-drawer svg.drawer-nav-icon {
  width: 1.5rem;
  height: 1.5rem;
  fill: currentColor;
  flex-shrink: 0;
}

.workflow-status-card {
  border-left: 4px solid var(--bs-primary);
  transition: all 0.2s ease;
  padding: 1rem !important; /* Reduced padding for compactness */
}

.badges-container .badge {
  font-size: 0.75rem;
  font-weight: 500;
  padding: 0.375rem 0.75rem;
  transition: all 0.2s ease;
}
.badges-container .badge:hover {
  transform: scale(1.02);
}

.compact-progress {
  min-width: 150px;
}
.compact-progress .progress {
  background-color: #e9ecef;
  border-radius: 2px;
}

/* Toggle button styling */
.workflow-toggle {
  width: 32px;
  height: 32px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 0.2s ease;
}
.workflow-toggle:hover {
  transform: scale(1.05);
}
.workflow-toggle i {
  font-size: 0.875rem;
  transition: transform 0.3s ease;
}

/* Expandable section styling */
.workflow-details-expandable {
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
}

.workflow-detailed-info {
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 1rem;
}

.detailed-progress .progress {
  background-color: #e9ecef;
  border-radius: 3px;
}

/* Unassigned compact state */
.unassigned-compact {
  min-height: 40px;
  padding: 0.5rem 0;
}
.unassigned-compact i {
  font-size: 1.25rem;
}

/* Quick move buttons */
.quick-move-btn {
  transition: all 0.2s ease;
}
.quick-move-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Animation improvements */
.workflow-status-card * {
  box-sizing: border-box;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .workflow-summary {
    flex-direction: column;
    align-items: flex-start !important;
    gap: 1rem !important;
  }
  .badges-container {
    flex-wrap: wrap;
  }
  .compact-progress {
    width: 100%;
    min-width: auto;
  }
  .workflow-actions {
    margin-top: 0.5rem;
  }
}
.google-style-upload {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border: 2px dashed var(--border-colour);
  border-radius: var(--border-radius);
  padding: 32px 24px;
  min-height: 120px;
  width: 100%;
  cursor: pointer;
  background-color: var(--card-colour);
  transition: all 0.2s ease-in-out;
  overflow: hidden;
}

.google-style-upload::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, color-mix(in srgb, var(--secondary-colour) 5%, transparent) 0%, color-mix(in srgb, var(--primary-colour) 10%, transparent) 100%);
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
}

.google-style-upload:hover {
  border-color: var(--secondary-colour);
  background-color: color-mix(in srgb, var(--primary-colour) 20%, var(--card-colour));
  transform: translateY(-1px);
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow);
}

.google-style-upload:hover::before {
  opacity: 1;
}

.google-style-upload.drag-over {
  border-color: var(--secondary-colour);
  background-color: color-mix(in srgb, var(--primary-colour) 30%, var(--card-colour));
  transform: scale(1.02);
  box-shadow: 0 8px 25px color-mix(in srgb, var(--secondary-colour) 25%, transparent);
}

.google-style-upload.drag-over::before {
  opacity: 1;
}

.google-style-upload .upload-content {
  position: relative;
  z-index: 1;
  text-align: center;
  pointer-events: none;
}

.google-style-upload .upload-icon {
  font-size: 48px;
  color: color-mix(in srgb, var(--text-colour) 60%, transparent);
  margin-bottom: 16px;
  transition: all 0.2s ease-in-out;
}

.google-style-upload:hover .upload-icon {
  color: var(--secondary-colour);
  transform: scale(1.1);
}

.google-style-upload .upload-text {
  font-size: 16px;
  font-weight: 600;
  color: var(--text-colour);
  margin-bottom: 8px;
  line-height: 1.4;
}

.google-style-upload .upload-subtext {
  font-size: 14px;
  color: color-mix(in srgb, var(--text-colour) 70%, transparent);
  line-height: 1.4;
}

.google-style-upload .upload-formats {
  font-size: 12px;
  color: color-mix(in srgb, var(--text-colour) 50%, transparent);
  margin-top: 12px;
  padding: 8px 16px;
  background-color: color-mix(in srgb, var(--background-colour) 80%, transparent);
  border-radius: calc(var(--border-radius) * 0.75);
  backdrop-filter: blur(4px);
}

#uploadModal.modal .modal-dialog .modal-content {
  background-color: var(--card-colour) !important;
  border: none !important;
}

#uploadModal .upload-modal-body {
  background-color: var(--background-colour) !important;
}

#uploadModal .upload-file-item {
  background-color: color-mix(in srgb, var(--background-colour) 50%, transparent) !important;
}

.upload-modal-content {
  border: none;
  border-radius: calc(var(--border-radius) * 1.5);
  background: var(--card-colour);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

.upload-modal-header {
  text-align: center;
  padding: 32px 32px 24px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--primary-colour) 15%, var(--card-colour)) 0%, var(--card-colour) 100%);
  border-bottom: 1px solid color-mix(in srgb, var(--border-colour) 50%, transparent);
}

.upload-modal-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--secondary-colour);
  border-radius: 50%;
  color: var(--tertiary-colour);
  font-size: 28px;
  animation: upload-pulse 2s ease-in-out infinite;
}

.upload-modal-title {
  font-size: 24px;
  font-weight: 700;
  color: var(--text-colour);
  margin: 0 0 8px;
  line-height: 1.2;
}

.upload-modal-subtitle {
  font-size: 14px;
  color: color-mix(in srgb, var(--text-colour) 70%, transparent);
  margin: 0;
  line-height: 1.4;
}

.upload-modal-body {
  padding: 24px 32px 32px;
}

.upload-progress-container {
  margin-bottom: 24px;
}

.upload-progress-bar {
  position: relative;
  width: 100%;
  height: 8px;
  background: color-mix(in srgb, var(--border-colour) 30%, transparent);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 12px;
}

.upload-progress-fill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--secondary-colour) 0%, color-mix(in srgb, var(--secondary-colour) 80%, #ffffff) 100%);
  border-radius: 4px;
  transition: width 0.3s ease;
  animation: upload-progress-shimmer 2s ease-in-out infinite;
}

.upload-progress-glow {
  position: absolute;
  left: -100%;
  top: 0;
  height: 100%;
  width: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.4) 50%, transparent 100%);
  animation: upload-progress-glow 2s ease-in-out infinite;
}

.upload-progress-text {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.upload-percentage {
  font-size: 14px;
  font-weight: 600;
  color: var(--secondary-colour);
}

.upload-status {
  font-size: 14px;
  color: color-mix(in srgb, var(--text-colour) 70%, transparent);
}

.upload-file-list {
  margin-bottom: 24px;
}

.upload-file-item {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  background: color-mix(in srgb, var(--background-colour) 50%, transparent);
  border-radius: var(--border-radius);
  margin-bottom: 8px;
  border: 1px solid color-mix(in srgb, var(--border-colour) 30%, transparent);
}

.upload-file-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--secondary-colour) 10%, transparent);
  border-radius: calc(var(--border-radius) * 0.75);
  color: var(--secondary-colour);
  font-size: 18px;
  margin-right: 12px;
  flex-shrink: 0;
}

.upload-file-info {
  flex: 1;
  min-width: 0;
}

.upload-file-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--text-colour);
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.upload-file-size {
  font-size: 12px;
  color: color-mix(in srgb, var(--text-colour) 60%, transparent);
}

.upload-file-status {
  flex-shrink: 0;
  margin-left: 12px;
}

.upload-spinner {
  width: 20px;
  height: 20px;
  border: 2px solid color-mix(in srgb, var(--secondary-colour) 20%, transparent);
  border-top: 2px solid var(--secondary-colour);
  border-radius: 50%;
  animation: upload-spin 1s linear infinite;
}

.upload-tips {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.upload-tip {
  display: flex;
  align-items: center;
  font-size: 12px;
  color: color-mix(in srgb, var(--text-colour) 60%, transparent);
}
.upload-tip i {
  margin-right: 8px;
  color: var(--secondary-colour);
  font-size: 14px;
}

@keyframes upload-pulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--secondary-colour) 40%, transparent);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 0 0 8px color-mix(in srgb, var(--secondary-colour) 0%, transparent);
  }
}
@keyframes upload-progress-shimmer {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.8;
  }
}
@keyframes upload-progress-glow {
  0% {
    left: -100%;
  }
  100% {
    left: 100%;
  }
}
@keyframes upload-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.upload-file-item.success .upload-file-icon {
  background: color-mix(in srgb, #10b981 10%, transparent);
  color: #10b981;
}
.upload-file-item.success .upload-file-status {
  color: #10b981;
  font-size: 14px;
}
.upload-file-item.success .upload-file-status::after {
  content: "✓";
  font-weight: bold;
}

.upload-file-item.error {
  border-color: color-mix(in srgb, #ef4444 30%, transparent);
  background: color-mix(in srgb, #ef4444 5%, transparent);
}
.upload-file-item.error .upload-file-icon {
  background: color-mix(in srgb, #ef4444 10%, transparent);
  color: #ef4444;
}
.upload-file-item.error .upload-file-status {
  color: #ef4444;
  font-size: 14px;
}
.upload-file-item.error .upload-file-status::after {
  content: "✗";
  font-weight: bold;
}

.modbar-container {
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 15px;
  height: calc(100vh - 30px);
  max-height: calc(100vh - 30px);
  width: 70px;
  background: linear-gradient(145deg, var(--card-colour), var(--background-colour));
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  border: 1px solid var(--border-colour);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
}
.modbar-container.modbar-expanded {
  width: 240px;
}
.modbar-container.modbar-expanded .modbar-label {
  opacity: 1;
  transform: translateX(0);
  visibility: visible;
}
.modbar-container.modbar-collapsed .modbar-label {
  opacity: 0;
  transform: translateX(-10px);
  visibility: hidden;
}

.modbar-toggle {
  padding: 12px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.modbar-toggle-btn {
  width: 40px;
  height: 40px;
  border: 1px solid var(--border-colour);
  background: var(--card-colour);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  color: var(--text-colour);
}
.modbar-toggle-btn:hover {
  background: var(--secondary-colour);
  color: var(--tertiary-colour);
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.modbar-toggle-btn:active {
  transform: scale(0.95);
}
.modbar-toggle-btn i {
  transition: transform 0.3s ease;
  font-size: 14px;
}

.modbar-nav {
  flex: 1;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  overflow-y: auto;
  overflow-x: hidden;
  /* Custom scrollbar for the navigation area */
}
.modbar-nav::-webkit-scrollbar {
  width: 4px;
}
.modbar-nav::-webkit-scrollbar-track {
  background: transparent;
}
.modbar-nav::-webkit-scrollbar-thumb {
  background: var(--border-colour);
  border-radius: 2px;
}
.modbar-nav::-webkit-scrollbar-thumb:hover {
  background: var(--secondary-colour);
}

.modbar-item {
  position: relative;
  border-radius: 12px;
  transition: all 0.2s ease;
}
.modbar-item:hover {
  background: var(--primary-colour);
  transform: translateX(2px);
}
.modbar-item:active {
  transform: scale(0.98) translateX(2px);
}

.modbar-link {
  display: flex;
  align-items: center;
  padding: 12px;
  text-decoration: none;
  color: var(--text-colour);
  border-radius: 12px;
  transition: all 0.2s ease;
  position: relative;
  min-height: 52px;
  width: 100%;
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
}
.modbar-link:hover {
  color: var(--secondary-colour);
  background: var(--primary-colour);
}
.modbar-link:focus {
  outline: 2px solid var(--secondary-colour);
  outline-offset: 2px;
}

.modbar-icon {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.modbar-icon i {
  font-size: 18px;
  transition: all 0.2s ease;
}
.modbar-icon lord-icon {
  transition: all 0.2s ease;
}

.modbar-label {
  margin-left: 12px;
  font-weight: 500;
  font-size: 14px;
  white-space: nowrap;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0;
  transform: translateX(-10px);
  visibility: hidden;
  color: var(--text-colour);
}

.modbar-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  background: var(--secondary-colour);
  color: var(--tertiary-colour);
  border-radius: calc(var(--border-radius) * 2);
  padding: 2px 6px;
  font-size: 11px;
  font-weight: 600;
  min-width: 18px;
  height: 18px;
  border-radius: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: pulse 2s infinite;
}
.modbar-badge.modbar-badge-warning {
  background: #fbbc04;
  color: #1a1a1a;
}

.modbar-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border-colour), transparent);
  margin: 8px 12px;
}

.modbar-bottom {
  padding: 8px;
  border-top: 1px solid var(--border-colour);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.modbar-profile-pic {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  border: 2px solid var(--border-colour);
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}
.modbar-item.active .modbar-link {
  background: linear-gradient(145deg, var(--secondary-colour), var(--button-hover));
  color: var(--tertiary-colour);
  box-shadow: 0 4px 12px var(--secondary-colour) 50;
}
.modbar-item.active .modbar-link .modbar-icon i {
  color: var(--tertiary-colour);
}

.layoutcontainer {
  display: flex;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.layoutsidebar {
  flex-shrink: 0;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.layoutsidebar.modbar {
  width: 90px;
  padding: 10px;
  border: none;
  background: transparent;
}
.layoutsidebar.modbar .modbar-container.modbar-expanded ~ * {
  margin-left: 160px;
}

.layoutcontent {
  flex: 1;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  min-width: 0;
}

.layoutsidebar.modbar.modbar-layout-expanded {
  width: 260px;
}

.layoutcontainer.modbar-layout-expanded .layoutcontent {
  margin-left: 0;
}

@media screen and (max-width: 768px) {
  .modbar-container {
    display: none !important;
  }
  .layoutsidebar.modbar {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    border-right: 0 !important;
  }
  .layoutcontent {
    width: 100% !important;
  }
}
@media screen and (max-width: 1024px) {
  .modbar-container {
    width: 60px;
  }
  .modbar-container.modbar-expanded {
    width: 200px;
  }
  .modbar-label {
    font-size: 13px;
  }
}
@media (prefers-contrast: high) {
  .modbar-container {
    border: 2px solid #000;
    box-shadow: none;
  }
  .modbar-link {
    border: 1px solid transparent;
  }
  .modbar-link:hover {
    border-color: #000;
  }
}
@media (prefers-reduced-motion: reduce) {
  .modbar-container,
  .modbar-link,
  .modbar-label,
  .modbar-toggle-btn,
  .modbar-icon i {
    transition: none !important;
    animation: none !important;
  }
}
.inbox-offcanvas {
  width: min(100vw, 620px) !important;
  max-width: 100vw;
  display: flex;
  flex-direction: column;
}
.inbox-offcanvas .inbox-header {
  border-bottom: none;
  padding-bottom: 0.5rem;
}
.inbox-offcanvas .inbox-panels {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  margin-top: 0.75rem;
}
.inbox-offcanvas .inbox-panels > div {
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.inbox-offcanvas .inbox-panels > div.show.active, .inbox-offcanvas .inbox-panels > div[style*="display: block"] {
  display: flex !important;
}
.inbox-offcanvas .inbox-pane-body {
  flex: 1;
  overflow-y: auto;
  padding: 1rem;
}
.inbox-offcanvas .inbox-pane-footer {
  flex-shrink: 0;
  padding: 0.75rem 1rem;
  text-align: center;
  border-top: 1px solid var(--border-colour, #dee2e6);
}

.unified-inbox-offcanvas {
  --msg-border: color-mix(in srgb, var(--text-colour, #20242a) 14%, transparent);
  --msg-muted: var(--muted-text, color-mix(in srgb, var(--text-colour, #20242a) 68%, transparent));
  width: min(100vw, 620px) !important;
  max-width: 100vw;
  background: var(--background-colour);
  color: var(--text-colour);
}

.unified-inbox-offcanvas i {
  --fa-primary-color: currentColor;
  --fa-secondary-color: currentColor;
  --fa-primary-opacity: 1;
  --fa-secondary-opacity: .4;
}

.unified-inbox-offcanvas .mdui-icon {
  color: var(--text-colour);
}

.unified-inbox-offcanvas .inbox-header {
  padding: 0.55rem 0.75rem 0;
}

.unified-inbox-offcanvas .inbox-title-row {
  min-height: 34px;
  margin-bottom: 0.3rem;
}

.unified-inbox-offcanvas .offcanvas-title {
  color: var(--text-colour);
  font-size: 1rem;
}

.unified-inbox-offcanvas .inbox-identity {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.unified-inbox-offcanvas .inbox-identity-icon {
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: 4px;
  background: color-mix(in srgb, var(--secondary-colour) 12%, var(--card-colour));
  color: var(--secondary-colour);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
}

.unified-inbox-offcanvas .inbox-identity .offcanvas-title {
  line-height: 1.1;
}

.unified-inbox-offcanvas .inbox-identity div > span {
  display: block;
  margin-top: 0.12rem;
  color: var(--muted-text);
  font-size: 0.56rem;
  line-height: 1.2;
}

.unified-inbox-offcanvas .inbox-tabs {
  margin: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.unified-inbox-offcanvas .inbox-tabs::-webkit-scrollbar {
  display: none;
}

.unified-inbox-offcanvas .inbox-tabs .nav-item {
  flex: 0 0 auto;
}

.unified-inbox-offcanvas .inbox-tabs .nav-link {
  width: auto;
  justify-content: flex-start;
}

.unified-inbox-offcanvas .inbox-tab-content {
  flex: 1 1 0;
  height: auto;
  min-height: 0;
  overflow: hidden;
}

.unified-inbox-offcanvas .tab-pane {
  height: 100%;
  overflow-y: auto;
}

.unified-inbox-offcanvas .messaging-inbox-pane {
  overflow: hidden;
}

.messaging-inbox-pane turbo-frame {
  display: block;
  height: 100%;
  min-height: 0;
}

.messaging-hub-controller {
  height: 100%;
  min-height: 0;
}

body:has(.unified-inbox-offcanvas.show) .assistant-widget {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.messaging-hub-loading {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  color: var(--msg-muted);
  font-size: 0.75rem;
}

.messaging-hub-shell {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  height: 100%;
  min-height: 0;
}

.messaging-hub-rail {
  min-width: 0;
  min-height: 0;
  border-right: 1px solid var(--msg-border);
  background: var(--card-colour);
  display: flex;
  flex-direction: column;
  overflow: visible;
}

.messaging-hub-rail-header {
  min-height: 55px;
  padding: 0.65rem 0.6rem 0.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.messaging-hub-rail-header h2 {
  margin: 0;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0;
}

.messaging-hub-rail-header span {
  display: block;
  margin-top: 0.1rem;
  color: var(--msg-muted);
  font-size: 0.6rem;
}

.messaging-hub-icon {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--msg-border);
  border-radius: 4px;
  background: transparent;
  color: var(--text-colour);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.messaging-hub-icon.is-active,
.messaging-hub-icon:hover {
  background: color-mix(in srgb, var(--secondary-colour) 9%, transparent);
  color: var(--secondary-colour);
}

.messaging-new-menu {
  width: 255px;
}

.messaging-hub-search {
  margin: 0 0.5rem 0.5rem;
  padding: 0.4rem 0.45rem;
  border: 1px solid var(--msg-border);
  border-radius: 4px;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--msg-muted);
}

.messaging-hub-search input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text-colour);
  font-size: 0.67rem;
}

.messaging-hub-filters {
  display: flex;
  gap: 0.15rem;
  padding: 0 1rem 0.45rem 0.5rem;
  scroll-padding-inline: 0.5rem 1rem;
  overflow-x: auto;
  scrollbar-width: none;
}

.messaging-hub-filters::-webkit-scrollbar {
  display: none;
}

.messaging-hub-filters button {
  padding: 0.22rem 0.35rem;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: var(--msg-muted);
  font-size: 0.55rem;
  white-space: nowrap;
}

.messaging-hub-filters button.is-active {
  background: color-mix(in srgb, var(--secondary-colour) 10%, transparent);
  color: var(--secondary-colour);
  font-weight: 700;
}

.messaging-directory-shortcut {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) 12px;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0.4rem 0.4rem;
  padding: 0.38rem 0.4rem;
  border: 1px solid var(--msg-border);
  border-radius: 4px;
  color: var(--text-colour) !important;
  text-decoration: none;
  font-size: 0.62rem;
}

.messaging-directory-shortcut:hover,
.messaging-directory-shortcut.is-active {
  background: color-mix(in srgb, var(--secondary-colour) 8%, transparent);
  color: var(--secondary-colour) !important;
}

.messaging-directory-shortcut > i:last-child {
  color: var(--msg-muted);
  font-size: 0.55rem;
}

.messaging-directory-shortcut > i:first-child,
.messaging-hub-search > i,
.messaging-directory-search > i {
  color: var(--muted-text);
}

.messaging-conversation-list {
  flex: 1 1 0;
  min-height: 0;
  padding: 0 0.35rem 0.5rem;
  overflow-y: auto;
}

.messaging-conversation-item {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.45rem;
  padding: 0.42rem 0.35rem;
  border-radius: 4px;
  color: var(--text-colour) !important;
  text-decoration: none;
}

.messaging-conversation-item:hover,
.messaging-conversation-item.is-active {
  background: color-mix(in srgb, var(--secondary-colour) 9%, transparent);
}

.messaging-conversation-avatar {
  width: 30px;
  height: 30px;
  border-radius: 5px;
  background: color-mix(in srgb, var(--secondary-colour) 12%, var(--card-colour));
  color: var(--secondary-colour);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
}

.messaging-conversation-avatar.is-direct {
  border-radius: 50%;
}

.messaging-conversation-copy {
  min-width: 0;
}

.messaging-conversation-copy strong,
.messaging-conversation-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.messaging-conversation-copy strong {
  font-size: 0.68rem;
  font-weight: 650;
}

.messaging-conversation-copy small {
  margin-top: 0.08rem;
  color: var(--msg-muted);
  font-size: 0.57rem;
}

.messaging-conversation-item.has-unread strong {
  font-weight: 800;
}

.messaging-unread-badge {
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 9px;
  background: var(--secondary-colour);
  color: var(--secondary-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.53rem;
}

.messaging-hub-thread {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--background-colour);
}

.messaging-thread-header {
  min-height: 55px;
  padding: 0.55rem 0.7rem;
  border-bottom: 1px solid var(--msg-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.messaging-thread-header h3 {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0;
}

.messaging-thread-header p {
  margin: 0.1rem 0 0;
  color: var(--msg-muted);
  font-size: 0.59rem;
}

.messaging-pinned-panel {
  border-bottom: 1px solid var(--msg-border);
  background: var(--card-colour);
}

.messaging-pinned-panel summary {
  padding: 0.38rem 0.65rem;
  color: var(--msg-muted);
  font-size: 0.6rem;
  cursor: pointer;
  list-style: none;
}

.messaging-pinned-panel summary i {
  margin-right: 0.3rem;
  color: var(--secondary-colour);
}

.messaging-pinned-panel > div {
  display: grid;
  gap: 0.2rem;
  padding: 0 0.5rem 0.45rem;
}

.messaging-pinned-panel > div button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.4rem;
  padding: 0.3rem 0.4rem;
  border: 1px solid var(--msg-border);
  border-radius: 3px;
  background: transparent;
  color: var(--text-colour);
  text-align: left;
  font-size: 0.58rem;
}

.messaging-pinned-panel > div button span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--msg-muted);
}

.messaging-thread-messages {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.75rem;
  overflow-y: auto;
}

.messaging-message {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  margin-bottom: 0.65rem;
}

.messaging-message.is-own {
  flex-direction: row-reverse;
}

.messaging-message-avatar {
  width: 25px;
  height: 25px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--primary-colour);
  color: var(--nav-text);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-size: 0.6rem;
  font-weight: 700;
}

.messaging-message-avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.messaging-message-main {
  max-width: 78%;
  min-width: 0;
}

.messaging-message-meta {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.15rem;
  font-size: 0.56rem;
}

.messaging-message-meta time {
  color: var(--msg-muted);
}

.messaging-message.is-own .messaging-message-meta {
  justify-content: flex-end;
}

.messaging-message-bubble {
  padding: 0.48rem 0.58rem;
  border: 1px solid var(--msg-border);
  border-radius: 5px;
  background: var(--card-colour);
  font-size: 0.7rem;
  line-height: 1.42;
  overflow-wrap: anywhere;
}

.messaging-message.is-own .messaging-message-bubble {
  background: color-mix(in srgb, var(--secondary-colour) 8%, var(--card-colour));
  border-color: color-mix(in srgb, var(--secondary-colour) 28%, var(--msg-border));
}

.messaging-message-bubble p:last-child {
  margin-bottom: 0;
}

.messaging-reply-reference {
  width: 100%;
  margin-bottom: 0.4rem;
  padding: 0.3rem 0.4rem;
  border: 0;
  border-left: 2px solid var(--secondary-colour);
  background: color-mix(in srgb, var(--secondary-colour) 6%, transparent);
  color: var(--text-colour);
  display: block;
  text-align: left;
}

.messaging-reply-reference strong,
.messaging-reply-reference span {
  display: block;
  font-size: 0.57rem;
}

.messaging-reply-reference span {
  color: var(--msg-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.messaging-message-actions {
  display: flex;
  gap: 0.08rem;
  margin-top: 0.15rem;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.messaging-message:hover .messaging-message-actions {
  opacity: 1;
}

.messaging-message.is-own .messaging-message-actions {
  justify-content: flex-end;
}

.messaging-message-actions button {
  width: 23px;
  height: 23px;
  padding: 0;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: var(--msg-muted);
  font-size: 0.6rem;
}

.messaging-message-actions button:hover {
  color: var(--secondary-colour);
  background: color-mix(in srgb, var(--secondary-colour) 8%, transparent);
}

.messaging-message.is-highlighted .messaging-message-bubble {
  outline: 2px solid var(--secondary-colour);
  outline-offset: 2px;
}

.messaging-message-files {
  display: grid;
  gap: 0.25rem;
  margin-top: 0.4rem;
  padding-top: 0.4rem;
  border-top: 1px solid var(--msg-border);
}

.messaging-message-files a {
  color: var(--secondary-colour);
  font-size: 0.62rem;
}

.messaging-thread-empty {
  flex: 1 1 auto;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  color: var(--msg-muted);
  text-align: center;
  font-size: 0.68rem;
}

.messaging-thread-empty i {
  margin-bottom: 0.3rem;
  font-size: 1.5rem;
}

.messaging-thread-empty strong {
  color: var(--text-colour);
}

.messaging-directory {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.7rem;
  overflow-y: auto;
}

.messaging-directory-search {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--msg-border);
  border-radius: 5px;
  color: var(--msg-muted);
}

.messaging-directory-search input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text-colour);
  font-size: 0.7rem;
}

.messaging-directory-list {
  display: grid;
  gap: 0.3rem;
  margin-top: 0.65rem;
}

.messaging-directory-person {
  width: 100%;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 0.55rem;
  padding: 0.48rem 0.5rem;
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  color: var(--text-colour);
  text-align: left;
}

.messaging-directory-person:hover {
  border-color: var(--msg-border);
  background: var(--card-colour);
}

.messaging-directory-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--secondary-colour) 14%, var(--card-colour));
  color: var(--secondary-colour);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-size: 0.72rem;
  font-weight: 700;
}

.messaging-directory-avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.messaging-directory-copy {
  min-width: 0;
}

.messaging-directory-copy strong,
.messaging-directory-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.messaging-directory-copy strong {
  font-size: 0.7rem;
}

.messaging-directory-copy small {
  color: var(--msg-muted);
  font-size: 0.58rem;
}

.messaging-directory-activity {
  color: var(--msg-muted);
  font-size: 0.55rem;
  white-space: nowrap;
}

.messaging-directory-activity.is-online::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 0.25rem;
  border-radius: 50%;
  background: var(--notification-success);
}

.messaging-directory-person > i {
  color: var(--msg-muted);
  font-size: 0.7rem;
}

.messaging-typing {
  padding: 0.25rem;
  color: var(--msg-muted);
  font-size: 0.6rem;
}

.messaging-thread-composer {
  padding: 0.55rem 0.65rem;
  border-top: 1px solid var(--msg-border);
}

.messaging-reply-context {
  margin-bottom: 0.3rem;
  padding: 0.3rem 0.4rem;
  border-left: 2px solid var(--secondary-colour);
  background: color-mix(in srgb, var(--secondary-colour) 7%, transparent);
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--msg-muted);
  font-size: 0.58rem;
}

.messaging-reply-context button {
  border: 0;
  background: transparent;
  color: inherit;
}

.messaging-thread-composer form {
  display: flex;
  align-items: flex-end;
  gap: 0.3rem;
  padding: 0.28rem;
  border: 1px solid var(--msg-border);
  border-radius: 5px;
  background: var(--card-colour);
}

.messaging-thread-composer textarea {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 30px;
  max-height: 110px;
  padding: 0.4rem;
  border: 0;
  outline: 0;
  resize: none;
  background: transparent;
  color: var(--text-colour);
  font-size: 0.7rem;
}

.messaging-attach-button,
.messaging-send-button {
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  border: 0;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.messaging-attach-button {
  color: var(--msg-muted);
  background: transparent;
}

.messaging-send-button {
  color: var(--tertiary-colour);
  background: var(--secondary-colour);
}

.messaging-mention-menu {
  max-height: 240px;
  overflow-y: auto;
}

.messaging-mention-menu .dropdown-item {
  font-size: 0.68rem;
}

@media (max-width: 575.98px) {
  .messaging-hub-shell {
    grid-template-columns: 112px minmax(0, 1fr);
  }
  .messaging-hub-rail-header span,
  .messaging-conversation-copy small {
    display: none;
  }
  .messaging-conversation-item {
    grid-template-columns: 26px minmax(0, 1fr);
  }
  .messaging-conversation-avatar {
    width: 26px;
    height: 26px;
  }
  .messaging-unread-badge {
    display: none;
  }
  .messaging-message-main {
    max-width: 88%;
  }
}
/* ------------------------------------------------------------------ */
/* Slack-level messaging overhaul: full page, presence, reactions,     */
/* threads, saved/pins/files panel, Pericles, search, scheduling.      */
/* ------------------------------------------------------------------ */
.messaging-hub-controller.is-full-page {
  height: calc(100dvh - 98px);
  min-height: 480px;
  margin: 0.85rem 1rem 1rem;
  border: 1px solid var(--msg-border, color-mix(in srgb, var(--text-colour, #20242a) 14%, transparent));
  border-radius: 8px;
  overflow: hidden;
  background: var(--background-colour);
}

.messaging-hub-controller {
  --msg-border: color-mix(in srgb, var(--text-colour, #20242a) 14%, transparent);
  --msg-muted: var(--muted-text, color-mix(in srgb, var(--text-colour, #20242a) 68%, transparent));
}

.is-full-page .messaging-hub-shell {
  grid-template-columns: 280px minmax(0, 1fr);
}

.is-full-page .messaging-conversation-copy strong {
  font-size: 0.74rem;
}

.messaging-thread-root {
  display: flex;
  min-width: 0;
  min-height: 0;
  flex: 1 1 auto;
  position: relative;
}

.messaging-thread-root .messaging-hub-thread {
  flex: 1 1 auto;
  position: relative;
}

.messaging-hub-shell > .messaging-thread-root {
  min-height: 0;
}

.messaging-hub-rail-actions {
  display: flex;
  align-items: center;
  gap: 0.3rem;
}

/* Settings dropdown: compact, themed, and immune to the global button-13
   sizing (mdb loads after application.css, hence the !importants). */
.messaging-settings-menu {
  width: 265px;
  padding: 0.55rem 0.75rem !important;
  border: 1px solid var(--msg-border);
  border-radius: 8px;
  background: var(--card-colour);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
  font-size: 0.62rem;
}

.messaging-settings-section {
  display: grid;
  gap: 0.4rem;
  padding: 0.45rem 0;
  font-size: 0.62rem;
  justify-items: start;
}

.messaging-settings-section + .messaging-settings-section {
  border-top: 1px solid var(--msg-border);
}

.messaging-settings-section > strong {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--msg-muted);
}

.messaging-settings-section > strong i {
  color: var(--secondary-colour);
  font-size: 0.6rem;
}

.messaging-settings-section small {
  color: var(--msg-muted);
  line-height: 1.35;
}

.messaging-settings-menu .button-13,
.messaging-settings-menu .button-13-outline {
  padding: 0.28rem 0.6rem !important;
  font-size: 0.58rem !important;
  line-height: 1.2 !important;
  min-height: 0 !important;
  width: auto !important;
  border-radius: 5px !important;
  display: inline-flex !important;
  align-items: center;
  gap: 0.3rem;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* display !important above would defeat the hidden attribute (web push
   enable/disable toggle), so restore it explicitly. */
.messaging-settings-menu .button-13[hidden],
.messaging-settings-menu .button-13-outline[hidden] {
  display: none !important;
}

.messaging-settings-menu .button-13 i,
.messaging-settings-menu .button-13-outline i {
  font-size: 0.58rem;
}

.messaging-settings > .messaging-hub-icon:focus,
.messaging-settings > .messaging-hub-icon.show {
  outline: none;
  box-shadow: none;
  background: color-mix(in srgb, var(--secondary-colour) 9%, transparent);
  color: var(--secondary-colour);
}

.messaging-status-indicator {
  color: var(--msg-muted);
  font-size: 0.6rem;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.messaging-dnd-indicator {
  color: var(--notification-warning, #d97706);
  font-size: 0.58rem;
  font-weight: 700;
}

.messaging-status-panel {
  display: grid;
  gap: 0.35rem;
  width: 100%;
  padding: 0.4rem;
  border: 1px solid var(--msg-border);
  border-radius: 5px;
  background: var(--background-colour);
}

.messaging-status-quick {
  display: flex;
  gap: 0.2rem;
}

.messaging-status-quick button {
  width: 28px;
  height: 28px;
  border: 1px solid var(--msg-border);
  border-radius: 4px;
  background: transparent;
}

.messaging-status-actions {
  display: flex;
  gap: 0.3rem;
}

.messaging-dnd-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.messaging-dnd-buttons {
  width: 100%;
}

.messaging-message-search {
  position: relative;
}

.messaging-search-results {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 40;
  max-height: 320px;
  overflow-y: auto;
  border: 1px solid var(--msg-border);
  border-radius: 6px;
  background: var(--card-colour);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.16);
}

.messaging-search-result {
  display: grid;
  gap: 0.1rem;
  padding: 0.45rem 0.55rem;
  border-bottom: 1px solid var(--msg-border);
  color: var(--text-colour) !important;
  text-decoration: none;
  font-size: 0.62rem;
}

.messaging-search-result:hover {
  background: color-mix(in srgb, var(--secondary-colour) 8%, transparent);
}

.messaging-search-result strong {
  font-size: 0.6rem;
}

.messaging-search-result span {
  color: var(--msg-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.messaging-search-result small {
  color: var(--msg-muted);
  font-size: 0.52rem;
}

.messaging-search-empty {
  padding: 0.6rem;
  color: var(--msg-muted);
  font-size: 0.62rem;
  text-align: center;
}

.messaging-conversation-meta {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--msg-muted);
}

.messaging-conversation-meta time {
  font-size: 0.52rem;
}

.messaging-conversation-meta i {
  font-size: 0.55rem;
}

.messaging-dock-open {
  display: none;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: var(--msg-muted);
}

.messaging-conversation-item:hover .messaging-dock-open {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.messaging-dock-open:hover {
  color: var(--secondary-colour);
}

.messaging-conversation-item.is-muted .messaging-conversation-copy strong {
  color: var(--msg-muted);
}

.messaging-conversation-avatar {
  position: relative;
  overflow: hidden;
  flex: 0 0 auto;
}

.messaging-conversation-avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: inherit;
}

.messaging-presence-dot {
  position: absolute;
  right: -2px;
  bottom: -2px;
  width: 9px;
  height: 9px;
  border: 2px solid var(--card-colour);
  border-radius: 50%;
  background: color-mix(in srgb, var(--text-colour) 25%, transparent);
}

.messaging-presence-dot.is-online {
  background: var(--notification-success, #16a34a);
}

.messaging-directory-avatar {
  position: relative;
}

.messaging-new-group {
  margin-bottom: 0.6rem;
  border: 1px solid var(--msg-border);
  border-radius: 6px;
  background: var(--card-colour);
}

.messaging-new-group summary {
  padding: 0.5rem 0.6rem;
  cursor: pointer;
  font-size: 0.66rem;
  list-style: none;
}

.messaging-new-group summary i {
  margin-right: 0.3rem;
  color: var(--secondary-colour);
}

.messaging-new-group form {
  display: grid;
  gap: 0.4rem;
  padding: 0 0.6rem 0.6rem;
}

.messaging-new-group-members {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.2rem;
  max-height: 180px;
  overflow-y: auto;
}

.messaging-new-group-member {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.3rem;
  border-radius: 3px;
  font-size: 0.64rem;
  cursor: pointer;
}

.messaging-new-group-member:hover {
  background: color-mix(in srgb, var(--secondary-colour) 7%, transparent);
}

.messaging-invite-members form {
  display: grid;
  gap: 0.4rem;
  width: 100%;
}

.messaging-invite-member-list {
  display: grid;
  gap: 0.15rem;
  max-height: 160px;
  overflow-y: auto;
}

.messaging-invite-members .button-13 {
  width: 100%;
}

.messaging-thread-header-actions {
  display: flex;
  align-items: center;
  gap: 0.3rem;
}

.messaging-topic {
  color: var(--msg-muted);
}

.messaging-conversation-menu {
  width: 285px;
  padding: 0.55rem !important;
}

.messaging-conversation-menu .messaging-settings-section {
  gap: 0.2rem;
  padding: 0.2rem 0 0.45rem;
}

.messaging-conversation-menu .messaging-settings-section > strong {
  padding: 0 0.4rem 0.2rem;
}

.messaging-conversation-menu .dropdown-item {
  border-radius: 4px;
  font-size: 0.64rem;
}

.messaging-conversation-menu .messaging-menu-item {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.42rem 0.45rem !important;
  white-space: normal;
}

.messaging-conversation-menu .messaging-menu-item > i {
  width: 18px;
  margin: 0;
  color: var(--muted-text);
  text-align: center;
}

.messaging-conversation-menu .messaging-menu-item > span {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.messaging-conversation-menu .messaging-menu-item strong {
  color: inherit;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
}

.messaging-conversation-menu .messaging-menu-item small {
  color: var(--muted-text);
  font-size: 0.54rem;
  font-weight: 400;
  line-height: 1.25;
}

.messaging-conversation-menu .messaging-menu-item.is-active > i {
  color: var(--secondary-colour);
}

.messaging-conversation-menu .dropdown-item.is-active {
  background: color-mix(in srgb, var(--secondary-colour) 10%, transparent);
  color: var(--secondary-colour);
  font-weight: 700;
}

.messaging-conversation-menu form {
  margin: 0;
}

.messaging-catch-up {
  color: var(--secondary-colour);
}

.messaging-catch-up-banner {
  margin: 0.5rem 0.65rem 0;
  padding: 0.5rem 0.6rem;
  border: 1px solid color-mix(in srgb, var(--secondary-colour) 35%, var(--msg-border));
  border-radius: 6px;
  background: color-mix(in srgb, var(--secondary-colour) 7%, var(--card-colour));
  font-size: 0.66rem;
}

.messaging-catch-up-head {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.3rem;
}

.messaging-catch-up-head i {
  color: var(--secondary-colour);
}

.messaging-catch-up-head button {
  margin-left: auto;
  border: 0;
  background: transparent;
  color: var(--msg-muted);
}

.messaging-catch-up-body {
  white-space: pre-wrap;
  color: var(--text-colour);
}

.messaging-thread-list {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  justify-content: flex-end;
}

.messaging-unread-divider {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0.5rem 0;
  color: var(--notification-danger, #dc2626);
  font-size: 0.55rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.messaging-unread-divider::before, .messaging-unread-divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: color-mix(in srgb, var(--notification-danger, #dc2626) 45%, transparent);
}

.messaging-new-pill {
  position: absolute;
  bottom: 92px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 8;
  padding: 0.3rem 0.7rem;
  border: 0;
  border-radius: 999px;
  background: var(--secondary-colour);
  color: var(--secondary-text);
  font-size: 0.6rem;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.22);
}

.messaging-bot-badge {
  padding: 0.05rem 0.3rem;
  border-radius: 3px;
  background: color-mix(in srgb, var(--secondary-colour) 15%, transparent);
  color: var(--secondary-colour);
  font-size: 0.5rem;
  font-weight: 700;
}

.messaging-edited-badge {
  border: 0;
  background: transparent;
  color: var(--msg-muted);
  font-size: 0.53rem;
  padding: 0;
}

.messaging-edited-badge:hover {
  color: var(--secondary-colour);
  text-decoration: underline;
}

.messaging-forwarded {
  margin-bottom: 0.35rem;
  padding: 0.3rem 0.45rem;
  border-left: 2px solid var(--secondary-colour);
  background: color-mix(in srgb, var(--secondary-colour) 6%, transparent);
}

.messaging-forwarded small {
  display: block;
  color: var(--msg-muted);
  font-size: 0.54rem;
}

.messaging-forwarded blockquote {
  margin: 0.15rem 0 0;
  font-size: 0.62rem;
  color: var(--text-colour);
}

.messaging-message-content .messaging-mention {
  padding: 0.04rem 0.25rem;
  border-radius: 3px;
  background: color-mix(in srgb, var(--secondary-colour) 14%, transparent);
  color: var(--secondary-colour);
  font-weight: 700;
}

.messaging-message-content pre {
  margin: 0.3rem 0;
  padding: 0.4rem 0.5rem;
  border-radius: 4px;
  background: color-mix(in srgb, var(--text-colour) 8%, transparent);
  overflow-x: auto;
  font-size: 0.62rem;
}

.messaging-message-content code {
  font-size: 0.62rem;
}

.messaging-message-content ul, .messaging-message-content ol {
  margin: 0.2rem 0;
  padding-left: 1.1rem;
}

.messaging-message-content blockquote {
  margin: 0.2rem 0;
  padding-left: 0.5rem;
  border-left: 2px solid var(--msg-border);
  color: var(--msg-muted);
}

.messaging-file-image img {
  max-width: 240px;
  max-height: 180px;
  border-radius: 5px;
  display: block;
}

.messaging-file-link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.messaging-file-link small {
  color: var(--msg-muted);
}

.messaging-message-files audio {
  max-width: 240px;
  height: 32px;
}

.messaging-link-preview {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.5rem;
  margin-top: 0.45rem;
  padding: 0.4rem;
  border: 1px solid var(--msg-border);
  border-radius: 5px;
  background: var(--background-colour);
  color: var(--text-colour) !important;
  text-decoration: none;
}

.messaging-link-preview:hover {
  border-color: color-mix(in srgb, var(--secondary-colour) 40%, var(--msg-border));
}

.messaging-link-preview img {
  width: 64px;
  height: 64px;
  border-radius: 4px;
  -o-object-fit: cover;
     object-fit: cover;
}

.messaging-link-preview-copy {
  min-width: 0;
  display: grid;
  gap: 0.1rem;
  align-content: center;
}

.messaging-link-preview-copy strong {
  font-size: 0.62rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.messaging-link-preview-copy span {
  color: var(--msg-muted);
  font-size: 0.57rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.messaging-link-preview-copy small {
  color: var(--msg-muted);
  font-size: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.messaging-reactions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem;
  margin-top: 0.25rem;
}

.messaging-message.is-own .messaging-reactions {
  justify-content: flex-end;
}

.messaging-reaction-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.1rem 0.35rem;
  border: 1px solid var(--msg-border);
  border-radius: 999px;
  background: var(--card-colour);
  font-size: 0.6rem;
}

.messaging-reaction-chip small {
  color: var(--msg-muted);
  font-size: 0.53rem;
}

.messaging-reaction-chip.is-mine {
  border-color: var(--secondary-colour);
  background: color-mix(in srgb, var(--secondary-colour) 10%, transparent);
}

.messaging-reaction-chip:hover {
  border-color: var(--secondary-colour);
}

.messaging-thread-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-top: 0.25rem;
  padding: 0.15rem 0.45rem;
  border: 1px solid var(--msg-border);
  border-radius: 4px;
  background: transparent;
  color: var(--secondary-colour);
  font-size: 0.58rem;
  font-weight: 600;
}

.messaging-thread-chip:hover {
  background: color-mix(in srgb, var(--secondary-colour) 8%, transparent);
}

/* The per-message "more" menu: themed like the rest of the hub, not
   Bootstrap/MDB defaults. */
.messaging-more {
  display: inline-flex;
}

.messaging-message-actions .messaging-more > button {
  width: 23px;
  height: 23px;
  padding: 0;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: var(--msg-muted);
  font-size: 0.6rem;
  box-shadow: none;
}

.messaging-message-actions .messaging-more > button:hover {
  color: var(--secondary-colour);
  background: color-mix(in srgb, var(--secondary-colour) 8%, transparent);
}

.messaging-more > button::after {
  display: none;
}

.messaging-more .dropdown-menu {
  min-width: 175px;
  padding: 0.3rem;
  border: 1px solid var(--msg-border);
  border-radius: 6px;
  background: var(--card-colour);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.22);
}

.messaging-more .dropdown-item {
  padding: 0.32rem 0.5rem;
  border-radius: 4px;
  color: var(--text-colour);
  font-size: 0.63rem;
}

.messaging-more .dropdown-item:hover {
  background: color-mix(in srgb, var(--secondary-colour) 9%, transparent);
  color: var(--text-colour);
}

.messaging-more .dropdown-item i {
  width: 15px;
  margin-right: 0.3rem;
  color: var(--msg-muted);
}

.messaging-more .dropdown-item:hover i {
  color: inherit;
}

.messaging-danger {
  color: var(--notification-danger, #dc2626) !important;
}

.messaging-seen-marker {
  margin: -0.35rem 0 0.55rem;
  color: var(--msg-muted);
  font-size: 0.52rem;
  text-align: right;
}

.messaging-thread-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 12;
  width: min(340px, 92%);
  border-left: 1px solid var(--msg-border);
  background: var(--background-colour);
  display: flex;
  flex-direction: column;
  box-shadow: -8px 0 22px rgba(0, 0, 0, 0.12);
}

.messaging-thread-panel header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid var(--msg-border);
  font-size: 0.7rem;
}

.messaging-thread-panel-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 0.6rem;
}

.messaging-message.in-thread-panel .messaging-message-actions {
  display: none;
}

.messaging-message.in-thread-panel .messaging-message-main {
  max-width: 100%;
}

.messaging-modal {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.35);
}

.messaging-modal-card {
  width: min(420px, 92%);
  max-height: 84%;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--msg-border);
  border-radius: 8px;
  background: var(--card-colour);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.3);
}

.messaging-modal-card header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.6rem 0.7rem;
  border-bottom: 1px solid var(--msg-border);
  font-size: 0.72rem;
}

.messaging-modal-body {
  padding: 0.7rem;
  overflow-y: auto;
  font-size: 0.66rem;
}

.messaging-modal-form {
  display: grid;
  gap: 0.5rem;
}

.messaging-modal-form textarea {
  min-height: 60px;
}

.messaging-extract-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.5rem;
  align-items: start;
  padding: 0.4rem;
  border: 1px solid var(--msg-border);
  border-radius: 5px;
  cursor: pointer;
}

.messaging-extract-row span {
  display: grid;
  gap: 0.1rem;
}

.messaging-extract-row small {
  color: var(--msg-muted);
}

.messaging-edit-history {
  display: grid;
  gap: 0.5rem;
}

.messaging-edit-history-entry {
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--msg-border);
  border-radius: 5px;
}

.messaging-edit-history-entry small {
  color: var(--msg-muted);
}

.messaging-edit-history-entry p {
  margin: 0.2rem 0 0;
  white-space: pre-wrap;
}

.messaging-emoji-panel {
  position: absolute;
  bottom: 78px;
  right: 12px;
  z-index: 25;
  width: 265px;
  padding: 0.5rem;
  border: 1px solid var(--msg-border);
  border-radius: 8px;
  background: var(--card-colour);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.22);
}

.messaging-emoji-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 0.1rem;
  max-height: 230px;
  margin-top: 0.4rem;
  overflow-y: auto;
}

.messaging-emoji-option {
  padding: 0.15rem 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  font-size: 0.95rem;
  line-height: 1.4;
}

.messaging-emoji-option:hover {
  background: color-mix(in srgb, var(--secondary-colour) 12%, transparent);
}

.messaging-emoji-category-label {
  grid-column: 1/-1;
  margin-top: 0.3rem;
  color: var(--msg-muted);
  font-size: 0.52rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.messaging-mention-menu {
  position: absolute;
  bottom: 78px;
  left: 12px;
  z-index: 26;
  min-width: 190px;
  padding: 0.25rem;
  border: 1px solid var(--msg-border);
  border-radius: 6px;
  background: var(--card-colour);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
  display: grid;
}

.messaging-mention-option {
  padding: 0.35rem 0.5rem;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--text-colour);
  text-align: left;
  font-size: 0.66rem;
}

.messaging-mention-option.is-active, .messaging-mention-option:hover {
  background: color-mix(in srgb, var(--secondary-colour) 10%, transparent);
  color: var(--secondary-colour);
}

.messaging-scheduled-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: 0.35rem;
}

.messaging-scheduled-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.45rem;
  border: 1px dashed color-mix(in srgb, var(--secondary-colour) 50%, var(--msg-border));
  border-radius: 4px;
  color: var(--msg-muted);
  font-size: 0.57rem;
}

.messaging-scheduled-chip button {
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
}

.messaging-schedule-panel {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.4rem;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--msg-border);
  border-radius: 5px;
  background: var(--card-colour);
  font-size: 0.62rem;
}

.messaging-schedule-panel > i {
  flex: 0 0 auto;
  color: var(--secondary-colour);
}

.messaging-schedule-panel input {
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
}

.messaging-schedule-panel .messaging-hub-icon {
  flex: 0 0 auto;
}

.messaging-schedule-panel .messaging-hub-icon.is-primary {
  border-color: var(--secondary-colour);
  background: var(--secondary-colour);
  color: var(--background-colour);
}

.messaging-file-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: 0.3rem;
}

.messaging-file-chip {
  padding: 0.15rem 0.45rem;
  border: 1px solid var(--msg-border);
  border-radius: 4px;
  color: var(--msg-muted);
  font-size: 0.57rem;
}

.messaging-voice-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-bottom: 0.3rem;
  padding: 0.2rem 0.45rem;
  border: 1px solid color-mix(in srgb, var(--notification-danger, #dc2626) 45%, var(--msg-border));
  border-radius: 4px;
  font-size: 0.58rem;
}

.messaging-voice-chip button {
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
}

.messaging-attach-button.is-recording {
  color: var(--notification-danger, #dc2626);
  animation: messaging-pulse 1.2s infinite;
}

@keyframes messaging-pulse {
  50% {
    opacity: 0.35;
  }
}
.messaging-assist-button {
  color: var(--secondary-colour);
}

.messaging-edit-area {
  display: grid;
  gap: 0.35rem;
  margin-top: 0.3rem;
}

.messaging-edit-area textarea {
  min-height: 56px;
  padding: 0.4rem;
  border: 1px solid var(--msg-border);
  border-radius: 4px;
  background: var(--background-colour);
  color: var(--text-colour);
  font-size: 0.68rem;
}

.messaging-details {
  width: 300px;
  flex: 0 0 auto;
  border-left: 1px solid var(--msg-border);
  background: var(--card-colour);
  display: flex;
  flex-direction: column;
  min-height: 0;
}

/* Same flat underline tabs as the inbox off-canvas (activity-tabs), not
   Bootstrap pill defaults. */
/* One row always: Bootstrap sets .nav { flex-wrap: wrap } and mdb.min.css
   loads after application.css, so nowrap needs !important. Items share the row
   equally instead of wrapping. */
.messaging-details-tabs {
  padding: 0.4rem 0.4rem 0;
  gap: 0.1rem;
  flex-wrap: nowrap !important;
  border-bottom: 1px solid var(--msg-border);
}

.messaging-details-tabs .nav-item {
  flex: 1 1 0 !important;
  min-width: 0;
}

.messaging-details-tabs .nav-link {
  width: 100%;
  min-height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.3rem 0.2rem !important;
  color: var(--muted-text) !important;
  font-size: 0.58rem !important;
  white-space: nowrap;
  overflow: hidden;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 4px 4px 0 0 !important;
}

.messaging-details-tabs .nav-link i {
  margin-right: 0.25rem;
  color: inherit;
  font-size: 0.58rem;
}

.messaging-details-tabs .nav-link:hover {
  color: var(--text-colour) !important;
  background: color-mix(in srgb, var(--background-colour) 55%, transparent) !important;
}

.messaging-details-tabs .nav-link.active {
  color: var(--secondary-colour) !important;
  background: transparent !important;
  border-bottom-color: var(--secondary-colour) !important;
}

.messaging-details-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 0.6rem;
}

.messaging-details-topic p {
  margin: 0.2rem 0 0;
  font-size: 0.64rem;
  color: var(--msg-muted);
}

.messaging-details-topic, .messaging-details-context {
  margin-bottom: 0.6rem;
  font-size: 0.62rem;
}

.messaging-details-members {
  display: grid;
  gap: 0.35rem;
  font-size: 0.62rem;
}

.messaging-details-member {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 0.45rem;
}

.messaging-details-member .messaging-directory-avatar {
  width: 28px;
  height: 28px;
  font-size: 0.62rem;
}

.messaging-details-member-copy {
  min-width: 0;
  display: grid;
}

.messaging-details-member-copy strong {
  font-size: 0.63rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.messaging-owner-badge {
  padding: 0.05rem 0.3rem;
  border-radius: 3px;
  background: color-mix(in srgb, var(--secondary-colour) 14%, transparent);
  color: var(--secondary-colour);
  font-size: 0.5rem;
  font-weight: 700;
}

.messaging-add-members summary {
  cursor: pointer;
  color: var(--secondary-colour);
  font-size: 0.6rem;
}

.messaging-add-members form {
  display: grid;
  gap: 0.25rem;
  margin-top: 0.35rem;
  max-height: 200px;
  overflow-y: auto;
}

.messaging-details-item {
  display: grid;
  gap: 0.1rem;
  width: 100%;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--msg-border);
  border-radius: 5px;
  background: transparent;
  color: var(--text-colour) !important;
  text-align: left;
  text-decoration: none;
  font-size: 0.6rem;
  margin-bottom: 0.3rem;
}

.messaging-details-item:hover {
  border-color: color-mix(in srgb, var(--secondary-colour) 40%, var(--msg-border));
}

.messaging-details-item span {
  color: var(--msg-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.messaging-details-item small {
  color: var(--msg-muted);
  font-size: 0.52rem;
}

.messaging-details-empty {
  display: grid;
  place-items: center;
  gap: 0.3rem;
  padding: 1.2rem 0;
  color: var(--msg-muted);
  font-size: 0.6rem;
  text-align: center;
}

.messaging-directory-status {
  color: var(--msg-muted);
  font-size: 0.54rem;
}

.notification-toast {
  position: fixed;
  right: 16px;
  bottom: 76px;
  z-index: 1080;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  max-width: 320px;
  padding: 0.6rem 0.75rem;
  border: 1px solid color-mix(in srgb, var(--text-colour, #20242a) 14%, transparent);
  border-radius: 8px;
  background: var(--card-colour, #fff);
  color: var(--text-colour, #20242a) !important;
  text-decoration: none;
  font-size: 0.68rem;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.24);
}

.notification-toast button {
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 0.9rem;
  line-height: 1;
}

.is-embed-shell {
  height: 100%;
}

.is-embed-shell .messaging-thread-root {
  height: 100%;
}

.messaging-thread-root.is-dock .messaging-thread-header {
  min-height: 0;
  padding: 0.4rem 0.55rem;
}

.messaging-thread-root.is-dock .messaging-thread-header h3 {
  font-size: 0.68rem;
}

.messaging-thread-root.is-dock .messaging-thread-messages {
  padding: 0.5rem;
}

.messaging-thread-root.is-embed .messaging-message-main {
  max-width: 86%;
}

@media (max-width: 991.98px) {
  .messaging-details {
    display: none;
  }
}
/* Pericles working state: pulsing glow around the composer while a
   rewrite streams in, plus a transient note for assist errors. */
.messaging-thread-composer form.is-assisting {
  border-color: color-mix(in srgb, var(--secondary-colour) 55%, var(--msg-border));
  animation: messaging-assist-glow 1.5s ease-in-out infinite;
}

.messaging-thread-composer form.is-assisting textarea {
  caret-color: var(--secondary-colour);
}

@keyframes messaging-assist-glow {
  0%, 100% {
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--secondary-colour) 30%, transparent);
  }
  50% {
    box-shadow: 0 0 16px 2px color-mix(in srgb, var(--secondary-colour) 45%, transparent);
  }
}
.messaging-assist-note {
  margin-bottom: 0.3rem;
  padding: 0.3rem 0.5rem;
  border: 1px solid color-mix(in srgb, var(--secondary-colour) 40%, var(--msg-border));
  border-radius: 5px;
  background: color-mix(in srgb, var(--secondary-colour) 8%, var(--card-colour));
  color: var(--text-colour);
  font-size: 0.6rem;
}

/* Chip-based composer (@ people, # projects) + premium mention chips in
   rendered messages, reusing the app-wide pl-chip / mention-highlight look. */
.messaging-composer-field {
  flex: 1 1 auto;
  min-width: 0;
  position: relative;
}

.messaging-composer-editor {
  min-height: 30px;
  max-height: 180px;
  padding: 0.4rem;
  overflow-y: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  color: var(--text-colour);
  font-size: 0.7rem;
  line-height: 1.55;
}

.messaging-composer-editor:focus {
  outline: none;
}

.messaging-composer-editor:empty::before {
  content: attr(data-placeholder);
  color: var(--msg-muted);
  pointer-events: none;
}

.messaging-composer-field.is-locked .messaging-composer-editor {
  opacity: 0.75;
}

/* Per the theme contract (_styles.html.erb): accents are restrained
   color-mix() tints over the card colour, and copy on them is --text-colour
   — readable by construction on every palette. Secondary is the accent. */
.messaging-composer-field .pl-chip {
  display: inline-block;
  margin: 0 0.1rem;
  padding: 0.06rem 0.35rem;
  border-radius: 4px;
  background: color-mix(in srgb, var(--secondary-colour) 14%, var(--card-colour));
  border: 1px solid color-mix(in srgb, var(--secondary-colour) 35%, var(--card-colour));
  color: var(--text-colour);
  font-weight: 650;
  font-size: 0.66rem;
  line-height: 1.4;
  white-space: nowrap;
}

.messaging-composer-field .pl-chip.is-project {
  background: color-mix(in srgb, var(--secondary-colour) 24%, var(--card-colour));
}

.messaging-composer-field .pl-chip-menu {
  position: absolute;
  z-index: 45;
  min-width: 230px;
  max-height: 260px;
  overflow-y: auto;
  margin: 0;
  padding: 0.25rem;
  list-style: none;
  border: 1px solid var(--msg-border);
  border-radius: 6px;
  background: var(--card-colour);
  box-shadow: 0 -10px 26px rgba(0, 0, 0, 0.2);
}

.messaging-composer-field .pl-chip-menu__item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.6rem;
  padding: 0.35rem 0.5rem;
  border-radius: 4px;
  cursor: pointer;
  color: var(--text-colour);
  font-size: 0.66rem;
}

.messaging-composer-field .pl-chip-menu__item.is-active {
  background: color-mix(in srgb, var(--secondary-colour) 18%, var(--card-colour));
  color: var(--text-colour);
}

.messaging-composer-field .pl-chip-menu__item.is-active .pl-chip-menu__sub {
  color: var(--muted-text);
}

.messaging-composer-field .pl-chip-menu__sub {
  color: var(--msg-muted);
  font-size: 0.55rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Mention chips inside rendered messages: match the app's mention look,
   sized for chat bubbles. */
.messaging-message-content .mention-highlight {
  display: inline-block;
  padding: 0.04rem 0.3rem;
  border-radius: 4px;
  background: color-mix(in srgb, var(--secondary-colour) 14%, var(--card-colour));
  border: 1px solid color-mix(in srgb, var(--secondary-colour) 35%, var(--card-colour));
  color: var(--text-colour);
  font-weight: 650;
  text-decoration: none;
}

.messaging-message-content .mention-highlight.is-project {
  background: color-mix(in srgb, var(--secondary-colour) 24%, var(--card-colour));
}

.messaging-message-content a.mention-highlight.is-project:hover {
  text-decoration: underline;
}

/* Facebook-style docked chat windows pinned to the bottom-right of every
   authenticated page. Windows embed the shared messaging thread shell. */
/* right offset clears the Pericles assistant bubble (fixed at
   right: 1.25rem, z-index 1080) so the widget never covers a window. */
.chat-dock {
  position: fixed;
  right: 96px;
  bottom: 0;
  z-index: 1045;
  pointer-events: none;
}

.chat-dock-strip {
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
  flex-direction: row-reverse;
}

.chat-dock-window {
  pointer-events: auto;
  width: 320px;
  border: 1px solid color-mix(in srgb, var(--text-colour, #20242a) 16%, transparent);
  border-bottom: 0;
  border-radius: 10px 10px 0 0;
  background: var(--background-colour, #fff);
  box-shadow: 0 -6px 28px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.chat-dock-header {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.55rem;
  background: var(--primary-colour);
  color: var(--nav-text, #fff);
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.chat-dock-title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.66rem;
  font-weight: 700;
}

.chat-dock-badge {
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  background: var(--nav-text, #fff);
  color: var(--primary-colour);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.5rem;
  font-weight: 800;
}

.chat-dock-button {
  width: 22px;
  height: 22px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6rem;
}

.chat-dock-button:hover {
  background: rgba(255, 255, 255, 0.18);
}

.chat-dock-body {
  height: 400px;
  max-height: calc(100dvh - 180px);
  display: flex;
  flex-direction: column;
}

.chat-dock-body turbo-frame {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.chat-dock-body .messaging-hub-controller {
  height: 100%;
}

.chat-dock-window.is-minimized {
  width: 190px;
}

.chat-dock-window.is-minimized .chat-dock-body {
  display: none;
}

.chat-dock-window.has-unread .chat-dock-header {
  animation: chat-dock-attention 1.6s ease infinite;
}

@keyframes chat-dock-attention {
  50% {
    filter: brightness(1.25);
  }
}
@media (max-width: 767.98px) {
  .chat-dock {
    display: none;
  }
}
.assistant-widget {
  position: fixed;
  bottom: 1.25rem;
  right: 1.25rem;
  z-index: 1080;
  --pl-accent-bg: var(--button-colour, #008296);
  --pl-accent-fg: var(--button-text, #fff);
}
@media (max-width: 991.98px) {
  .assistant-widget {
    display: none;
  }
}

.assistant-launcher {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: none;
  background: var(--pl-accent-bg);
  color: var(--pl-accent-fg);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.15s ease;
}
.assistant-launcher .assistant-launcher-icon {
  font-size: 1.4rem;
}
.assistant-launcher:hover {
  transform: translateY(-2px);
}

.assistant-panel {
  position: absolute;
  bottom: 72px;
  right: 0;
  width: min(380px, 100vw - 2rem);
  height: min(560px, 100vh - 7rem);
  background: var(--card-colour, #fff);
  color: var(--text-colour, #212529);
  border: 1px solid var(--border-colour, rgba(0, 0, 0, 0.1));
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);
  display: none;
  flex-direction: column;
  overflow: hidden;
}

.assistant-widget.is-open .assistant-panel {
  display: flex;
}
.assistant-widget.is-open .assistant-launcher {
  transform: scale(0.95);
}

.assistant-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.7rem 1rem;
  background: var(--pl-accent-bg);
  color: var(--pl-accent-fg);
}
.assistant-header .assistant-header-title {
  font-weight: 600;
  display: flex;
  align-items: center;
}
.assistant-header .assistant-header-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  margin-right: 0.5rem;
}
.assistant-header .assistant-header-actions {
  display: flex;
  gap: 0.25rem;
}

.assistant-icon-btn {
  background: transparent;
  border: none;
  color: var(--pl-accent-fg);
  width: 30px;
  height: 30px;
  border-radius: 8px;
  cursor: pointer;
  opacity: 0.85;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.assistant-icon-btn:hover {
  opacity: 1;
  background: rgba(128, 128, 128, 0.2);
  color: var(--pl-accent-fg);
}

.assistant-history {
  display: none;
  max-height: 40%;
  overflow-y: auto;
  border-bottom: 1px solid var(--border-colour, rgba(0, 0, 0, 0.1));
  background: var(--background-colour, #f7f7f9);
}
.assistant-history.is-open {
  display: block;
}
.assistant-history .assistant-history-inner {
  padding: 0.5rem;
}
.assistant-history .assistant-history-empty {
  padding: 0.75rem;
  color: var(--muted-text, #6c757d);
  font-size: 0.85rem;
}

.assistant-history-row {
  display: flex;
  align-items: center;
}
.assistant-history-row .assistant-history-item {
  flex: 1 1 auto;
}
.assistant-history-row .assistant-history-delete {
  flex: 0 0 auto;
  background: transparent;
  border: none;
  color: var(--muted-text, #6c757d);
  cursor: pointer;
  opacity: 0;
  padding: 0 0.45rem;
  font-size: 0.8rem;
}
.assistant-history-row:hover .assistant-history-delete {
  opacity: 0.8;
}
.assistant-history-row .assistant-history-delete:hover {
  opacity: 1;
  color: var(--danger, #c0392b);
}

.assistant-history-item {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  padding: 0.5rem 0.65rem;
  border-radius: 8px;
  font-size: 0.85rem;
  color: var(--text-colour, #212529);
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.assistant-history-item:hover {
  background: rgba(128, 128, 128, 0.15);
}

.assistant-context {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.75rem;
  font-size: 0.78rem;
  color: var(--text-colour, #212529);
  background: var(--background-colour, #f0f1f4);
  border-bottom: 1px solid var(--border-colour, rgba(0, 0, 0, 0.1));
}
.assistant-context i {
  color: var(--button-colour, #008296);
}
.assistant-context .assistant-context-label {
  flex: 1 1 auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.assistant-context .assistant-context-clear {
  flex: 0 0 auto;
  background: transparent;
  border: none;
  color: var(--muted-text, #6c757d);
  cursor: pointer;
  padding: 0 0.15rem;
}
.assistant-context .assistant-context-clear:hover {
  color: var(--text-colour, #212529);
}

.assistant-messages {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  scrollbar-color: var(--scrollbar-colour, #ccc) transparent;
}

.assistant-row {
  display: flex;
  align-items: flex-end;
  gap: 0.4rem;
}
.assistant-row.assistant-row-user {
  justify-content: flex-end;
}
.assistant-row.assistant-row-bot {
  justify-content: flex-start;
}

.assistant-msg-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  flex: 0 0 auto;
}

.assistant-msg {
  max-width: 85%;
  padding: 0.55rem 0.8rem;
  border-radius: 14px;
  font-size: 0.9rem;
  line-height: 1.45;
  word-wrap: break-word;
}
.assistant-msg pre {
  background: rgba(128, 128, 128, 0.15);
  padding: 0.5rem;
  border-radius: 8px;
  overflow-x: auto;
  margin: 0.4rem 0;
}
.assistant-msg code {
  font-size: 0.82em;
}
.assistant-msg ul {
  margin: 0.3rem 0;
  padding-left: 1.1rem;
}
.assistant-msg a {
  color: var(--accent-link, var(--button-colour, #008296));
}

.assistant-msg-user {
  background: var(--pl-accent-bg);
  color: var(--pl-accent-fg);
}

.assistant-msg-bot {
  background: var(--background-colour, #f0f1f4);
  color: var(--text-colour, #212529);
  border: 1px solid var(--border-colour, transparent);
}
.assistant-msg-bot.is-streaming::after {
  content: "▋";
  animation: assistant-blink 1s steps(2) infinite;
}

@keyframes assistant-blink {
  0%, 50% {
    opacity: 1;
  }
  50.01%, 100% {
    opacity: 0;
  }
}
.assistant-action-card {
  align-self: flex-start;
  max-width: 90%;
  background: var(--background-colour, #f0f1f4);
  border: 1px solid var(--button-colour, #008296);
  border-radius: 12px;
  padding: 0.6rem 0.75rem;
  font-size: 0.88rem;
}
.assistant-action-card.is-busy {
  opacity: 0.6;
  pointer-events: none;
}
.assistant-action-card .assistant-action-summary {
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--text-colour, #212529);
}
.assistant-action-card .assistant-action-preview {
  background: var(--card-colour, #fff);
  border: 1px solid var(--border-colour, rgba(0, 0, 0, 0.1));
  border-radius: 8px;
  padding: 0.5rem;
  margin: 0 0 0.5rem;
  max-height: 160px;
  overflow-y: auto;
  white-space: pre-wrap;
  word-break: break-word;
  font-family: inherit;
  font-size: 0.82rem;
  color: var(--text-colour, #212529);
}
.assistant-action-card .assistant-action-buttons {
  display: flex;
  gap: 0.4rem;
}
.assistant-action-card .assistant-action-approve {
  padding: 0.3rem 0.7rem !important;
  min-height: 26px;
}
.assistant-action-card .assistant-action-dismiss {
  background: transparent;
  border: 1px solid var(--border-colour, rgba(0, 0, 0, 0.2));
  color: var(--muted-text, #6c757d);
  border-radius: 6px;
  padding: 0.3rem 0.7rem;
  font-size: 13px;
  cursor: pointer;
}
.assistant-action-card .assistant-action-dismiss:hover {
  background: rgba(128, 128, 128, 0.15);
}
.assistant-action-card .assistant-action-done {
  color: var(--text-colour, #212529);
}
.assistant-action-card .assistant-action-done a {
  margin-left: 0.25rem;
}
.assistant-action-card .assistant-action-error {
  color: var(--danger, #c0392b);
  margin-top: 0.4rem;
  font-size: 0.82rem;
}

.assistant-input-row {
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
  padding: 0.65rem;
  border-top: 1px solid var(--border-colour, rgba(0, 0, 0, 0.1));
}

.assistant-input {
  flex: 1 1 auto;
  resize: none;
  border: 1px solid var(--input-border, rgba(0, 0, 0, 0.15));
  border-radius: var(--input-radius, 12px);
  padding: 0.5rem 0.7rem;
  font-size: 0.9rem;
  max-height: 120px;
  background: var(--input-background, #fff);
  color: var(--input-text, #212529);
  font-family: inherit;
}
.assistant-input::-moz-placeholder {
  color: var(--input-placeholder, #9aa0a6);
}
.assistant-input::placeholder {
  color: var(--input-placeholder, #9aa0a6);
}
.assistant-input:focus {
  outline: none;
  border-color: var(--input-focus-border, var(--button-colour, #008296));
}

.assistant-send {
  flex: 0 0 auto;
  padding: 0.5rem 0.75rem !important;
}

.pericles-page {
  display: flex;
  gap: 1rem;
  height: calc(100vh - 110px);
  max-width: 1100px;
  margin: 1rem auto;
  padding: 0 1rem;
  color: var(--text-colour, #212529);
}

.pericles-sidebar {
  width: 240px;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  overflow-y: auto;
  padding: 0.25rem 0.75rem 0.25rem 0;
}

.pericles-newchat {
  width: 100%;
  justify-content: center;
}

.pericles-history-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted-text, #6c757d);
  margin-top: 0.75rem;
  padding-left: 0.15rem;
}

.pericles-history {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pericles-history .assistant-history-item {
  width: 100%;
  padding: 0.5rem 0.65rem;
  border-radius: 8px;
  font-size: 0.85rem;
  color: var(--text-colour, #212529);
}
.pericles-history .assistant-history-item:hover {
  background: rgba(128, 128, 128, 0.15);
}

.pericles-main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.pericles-intro {
  flex: 0 0 auto;
  text-align: center;
  padding: 1.5rem 1rem 0.5rem;
  overflow-y: auto;
}

.pericles-intro-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}

.pericles-intro-title {
  font-size: 1.6rem;
  margin-top: 0.75rem;
}

.pericles-intro-sub {
  color: var(--muted-text, #6c757d);
  max-width: 560px;
  margin: 0.25rem auto 0;
}

.pericles-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
  margin: 1.25rem auto;
  max-width: 620px;
}

.pericles-card {
  text-align: left;
  background: var(--card-colour, #fff);
  border: 1px solid var(--border-colour, rgba(0, 0, 0, 0.1));
  border-radius: 12px;
  padding: 0.8rem 0.9rem;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  color: var(--text-colour, #212529);
  transition: border-color 0.15s ease;
}
.pericles-card i {
  color: var(--button-colour, #008296);
  font-size: 1.05rem;
  margin-bottom: 0.25rem;
}
.pericles-card .pericles-card-title {
  font-weight: 600;
}
.pericles-card .pericles-card-sub {
  font-size: 0.8rem;
  color: var(--muted-text, #6c757d);
}
.pericles-card:hover {
  border-color: var(--button-colour, #008296);
}

.pericles-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: center;
  max-width: 620px;
  margin: 0 auto;
}

.pericles-chip {
  background: var(--background-colour, #f0f1f4);
  border: 1px solid var(--border-colour, rgba(0, 0, 0, 0.1));
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.82rem;
  cursor: pointer;
  color: var(--text-colour, #212529);
}
.pericles-chip:hover {
  border-color: var(--button-colour, #008296);
}

.pericles-messages {
  flex: 1 1 auto;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 0.5rem 0;
  scrollbar-color: var(--scrollbar-colour, #ccc) transparent;
}

.pericles-input-row {
  display: flex;
  gap: 0.5rem;
  align-items: flex-end;
  padding-top: 0.5rem;
  border-top: 1px solid var(--border-colour, rgba(0, 0, 0, 0.1));
}

.pericles-input {
  flex: 1 1 auto;
  resize: none;
  border: 1px solid var(--input-border, rgba(0, 0, 0, 0.15));
  border-radius: var(--input-radius, 12px);
  padding: 0.6rem 0.8rem;
  font-size: 0.92rem;
  max-height: 140px;
  background: var(--input-background, #fff);
  color: var(--input-text, #212529);
  font-family: inherit;
}
.pericles-input::-moz-placeholder {
  color: var(--input-placeholder, #9aa0a6);
}
.pericles-input::placeholder {
  color: var(--input-placeholder, #9aa0a6);
}
.pericles-input:focus {
  outline: none;
  border-color: var(--input-focus-border, var(--button-colour, #008296));
}

.pericles-send {
  flex: 0 0 auto;
  padding: 0.5rem 0.8rem !important;
}

@media (max-width: 768px) {
  .pericles-page {
    flex-direction: column;
    height: auto;
  }
  .pericles-sidebar {
    width: 100%;
    padding-right: 0;
  }
  .pericles-cards {
    grid-template-columns: 1fr;
  }
}
.thread-action-card {
  margin-top: 0.6rem;
  max-width: 460px;
  background: var(--background-colour, #f7f7f9);
  border: 1px solid var(--button-colour, #008296);
  border-radius: 12px;
  padding: 0.6rem 0.75rem;
  font-size: 0.88rem;
}
.thread-action-card.is-busy {
  opacity: 0.6;
  pointer-events: none;
}
.thread-action-card .thread-action-summary {
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--text-colour, #212529);
}
.thread-action-card .thread-action-preview {
  background: var(--card-colour, #fff);
  border: 1px solid var(--border-colour, rgba(0, 0, 0, 0.1));
  border-radius: 8px;
  padding: 0.5rem;
  margin: 0 0 0.5rem;
  max-height: 200px;
  overflow-y: auto;
  white-space: pre-wrap;
  word-break: break-word;
  font-family: inherit;
  font-size: 0.82rem;
  color: var(--text-colour, #212529);
}
.thread-action-card .thread-action-buttons {
  display: flex;
  gap: 0.4rem;
}
.thread-action-card .thread-action-dismiss {
  background: transparent;
  border: 1px solid var(--border-colour, rgba(0, 0, 0, 0.2));
  color: var(--muted-text, #6c757d);
  border-radius: 6px;
  padding: 0.3rem 0.7rem;
  font-size: 13px;
  cursor: pointer;
}
.thread-action-card .thread-action-dismiss:hover {
  background: rgba(128, 128, 128, 0.15);
}
.thread-action-card .thread-action-done {
  color: var(--text-colour, #212529);
}
.thread-action-card .thread-action-feedback {
  color: var(--danger, #c0392b);
  font-size: 0.82rem;
  margin-top: 0.4rem;
}
.thread-action-card:empty {
  display: none;
}

/* ==========================================================================
   Modern Footer Styling - Professional & Comprehensive
   ========================================================================== */
/* Variables */
:root {
  --footer-primary: #0f172a;
  --footer-secondary: #1e293b;
  --footer-accent: #f47424;
  --footer-text: #94a3b8;
  --footer-heading: #f1f5f9;
  --footer-link: #cbd5e1;
  --footer-link-hover: #ffffff;
  --footer-border: #334155;
  --gradient-footer: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
  --shadow-footer: 0 -4px 20px rgba(0, 0, 0, 0.1);
}

.modern-footer {
  background: var(--gradient-footer);
  border-top: 1px solid var(--footer-border);
  box-shadow: var(--shadow-footer);
  margin-top: auto;
}

.footer-content {
  padding: 4rem 0 2rem;
  position: relative;
}

.footer-main {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 3rem;
  margin-bottom: 3rem;
}
@media (max-width: 1200px) {
  .footer-main {
    grid-template-columns: 2fr 1fr 1fr 1.5fr;
  }
}
@media (max-width: 992px) {
  .footer-main {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
  .footer-main .footer-brand {
    grid-column: 1/-1;
    margin-bottom: 1rem;
  }
}
@media (max-width: 576px) {
  .footer-main {
    grid-template-columns: 1fr;
    gap: 2rem;
    text-align: center;
  }
}

/* Brand Section */
.footer-brand .brand-logo {
  margin-bottom: 1.5rem;
}
.footer-brand .brand-logo a {
  display: inline-block;
  transition: transform 0.3s ease;
}
.footer-brand .brand-logo a:hover {
  transform: scale(1.05);
}
.footer-brand .brand-logo img {
  filter: brightness(1.2);
}
.footer-brand .brand-tagline {
  color: var(--footer-text);
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 2rem;
  max-width: 300px;
}
.footer-brand .brand-contact .contact-info {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
@media (max-width: 576px) {
  .footer-brand .brand-contact .contact-info {
    align-items: center;
  }
}
.footer-brand .brand-contact .contact-info .contact-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--footer-link);
  text-decoration: none;
  font-size: 1rem;
  font-weight: 500;
  transition: all 0.3s ease;
}
.footer-brand .brand-contact .contact-info .contact-item:hover {
  color: var(--footer-accent);
  transform: translateX(4px);
}
.footer-brand .brand-contact .contact-info .contact-item i {
  font-size: 1.1rem;
  color: var(--footer-accent);
  width: 20px;
  text-align: center;
}

/* Footer Sections */
.footer-section .section-title {
  color: var(--footer-heading);
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  position: relative;
}
.footer-section .section-title::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 0;
  width: 30px;
  height: 3px;
  background: var(--footer-accent);
  border-radius: 2px;
}
@media (max-width: 576px) {
  .footer-section .section-title {
    text-align: center;
  }
  .footer-section .section-title::after {
    left: 50%;
    transform: translateX(-50%);
  }
}
.footer-section .footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-section .footer-links li {
  margin-bottom: 0.75rem;
}
.footer-section .footer-links li a {
  color: var(--footer-link);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  transition: all 0.3s ease;
  display: inline-block;
  position: relative;
}
.footer-section .footer-links li a:hover {
  color: var(--footer-link-hover);
  transform: translateX(4px);
}
.footer-section .footer-links li a::before {
  content: "";
  position: absolute;
  left: -12px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 4px;
  background: var(--footer-accent);
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.footer-section .footer-links li a:hover::before {
  opacity: 1;
}

/* Footer CTA Section */
.footer-cta .cta-text {
  color: var(--footer-text);
  font-size: 1rem;
  margin-bottom: 1.5rem;
  line-height: 1.5;
}
.footer-cta .newsletter-form {
  margin-bottom: 1.5rem;
}
.footer-cta .newsletter-form .input-group .mdui-input {
  background-color: rgba(255, 255, 255, 0.1);
  border: 1px solid var(--footer-border);
  color: var(--footer-link);
}
.footer-cta .newsletter-form .input-group .mdui-input::-moz-placeholder {
  color: var(--footer-text);
}
.footer-cta .newsletter-form .input-group .mdui-input::placeholder {
  color: var(--footer-text);
}
.footer-cta .newsletter-form .input-group .mdui-input:focus {
  border-color: var(--footer-accent);
  background-color: rgba(255, 255, 255, 0.15);
}
.footer-cta .newsletter-form .input-group .mdui-btn {
  background: linear-gradient(135deg, var(--footer-accent) 0%, #e65a1f 100%);
  color: white;
  border: none;
  font-weight: 600;
  transition: all 0.3s ease;
}
.footer-cta .newsletter-form .input-group .mdui-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(244, 116, 36, 0.3);
}
.footer-cta .footer-guarantee {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--footer-text);
  font-size: 0.85rem;
}
@media (max-width: 576px) {
  .footer-cta .footer-guarantee {
    justify-content: center;
  }
}
.footer-cta .footer-guarantee i {
  color: #10b981;
  font-size: 1rem;
}

/* Social Links */
.social-links {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
}
@media (max-width: 576px) {
  .social-links {
    justify-content: center;
  }
}
.social-links a {
  width: 44px;
  height: 44px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid var(--footer-border);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--footer-link);
  transition: all 0.3s ease;
  backdrop-filter: blur(10px);
}
.social-links a:hover {
  background: var(--footer-accent);
  color: white;
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(244, 116, 36, 0.3);
  border-color: var(--footer-accent);
}
.social-links a i {
  font-size: 1.2rem;
}

/* Footer Bottom */
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 2rem;
  border-top: 1px solid var(--footer-border);
}
@media (max-width: 768px) {
  .footer-bottom {
    flex-direction: column;
    gap: 1.5rem;
    text-align: center;
  }
}

.footer-legal {
  display: flex;
  align-items: center;
  gap: 2rem;
}
@media (max-width: 768px) {
  .footer-legal {
    flex-direction: column;
    gap: 1rem;
  }
}
.footer-legal p {
  color: var(--footer-text);
  font-size: 0.9rem;
  margin: 0;
}
.footer-legal .legal-links {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.footer-legal .legal-links a {
  color: var(--footer-link);
  text-decoration: none;
  font-size: 0.9rem;
  transition: color 0.3s ease;
}
.footer-legal .legal-links a:hover {
  color: var(--footer-accent);
}
.footer-legal .legal-links .separator {
  color: var(--footer-border);
  font-size: 0.8rem;
}

.footer-badge .badge-content {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: rgba(244, 116, 36, 0.1);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(244, 116, 36, 0.2);
  border-radius: 50px;
  padding: 8px 20px;
  color: var(--footer-accent);
  font-size: 0.9rem;
  font-weight: 600;
}
.footer-badge .badge-content i {
  font-size: 1rem;
  animation: pulse 2s ease-in-out infinite;
}
.footer-badge .badge-content span {
  color: var(--footer-heading);
}

/* Brand Reviews Integration */
.brand-reviews {
  margin-top: 1.5rem;
}
@media (max-width: 576px) {
  .brand-reviews {
    display: flex;
    justify-content: center;
  }
}

/* BBB Badge in Footer Bottom */
.footer-bbb-badge .bbb-compact {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: rgba(244, 116, 36, 0.1);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(244, 116, 36, 0.2);
  border-radius: 50px;
  padding: 8px 16px;
  text-decoration: none;
  transition: all 0.3s ease;
}
.footer-bbb-badge .bbb-compact:hover {
  background: rgba(244, 116, 36, 0.15);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(244, 116, 36, 0.2);
}
.footer-bbb-badge .bbb-compact .bbb-seal-small {
  width: 60px;
  height: auto;
}
.footer-bbb-badge .bbb-compact .bbb-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.footer-bbb-badge .bbb-compact .bbb-info .bbb-rating-compact {
  color: var(--footer-heading);
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: 2px;
}
.footer-bbb-badge .bbb-compact .bbb-info .bbb-stars-compact {
  color: #ffd700;
  font-size: 0.75rem;
}
.footer-bbb-badge .bbb-compact .bbb-info .bbb-stars-compact i {
  margin-right: 1px;
}

/* Footer Secondary Section */
.footer-secondary {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--footer-border);
}
@media (max-width: 768px) {
  .footer-secondary .d-flex {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
  }
}
.footer-secondary .footer-accolades .icon-interaction {
  transition: transform 0.3s ease;
}
.footer-secondary .footer-accolades .icon-interaction:hover {
  transform: scale(1.05);
}
.footer-secondary .employee-login .tiny-button {
  opacity: 0.6;
  transition: opacity 0.3s ease;
}
.footer-secondary .employee-login .tiny-button:hover {
  opacity: 1;
}

/* Animations */
@keyframes pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.1);
  }
}
/* Responsive adjustments */
@media (max-width: 576px) {
  .footer-content {
    padding: 3rem 0 1.5rem;
  }
  .footer-main {
    gap: 2rem;
    margin-bottom: 2rem;
  }
  .brand-tagline {
    max-width: none;
  }
}
/* Print styles */
@media print {
  .modern-footer {
    background: white;
    color: black;
    border-top: 1px solid #ccc;
  }
  .social-links,
  .footer-cta {
    display: none;
  }
}
/* High contrast mode */
@media (prefers-contrast: high) {
  :root {
    --footer-primary: #000;
    --footer-text: #fff;
    --footer-link: #fff;
    --footer-border: #fff;
  }
}
.orientation-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.orientation-badge .orientation-compass {
  flex: none;
}

.orientation-chips {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.orientation-chips .chips-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.6;
  margin-right: 0.15rem;
}

.orientation-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.25rem 0.7rem;
  border-radius: 50px;
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--text-colour, #333);
  background: var(--card-colour, rgba(0, 0, 0, 0.04));
  border: 1px solid var(--border-colour, #dee2e6);
  transition: border-color 0.15s ease, background 0.15s ease;
}
.orientation-chip:hover {
  color: var(--text-colour, #333);
  border-color: #f47424;
}
.orientation-chip .chip-count {
  font-size: 0.68rem;
  opacity: 0.6;
}
.orientation-chip.active {
  background: #f47424;
  border-color: #f47424;
  color: #fff;
}
.orientation-chip.active .chip-count {
  opacity: 0.85;
}

#map-facing-chips.system-map-chips {
  position: absolute;
  top: 40px;
  left: 12px;
  z-index: 10;
  width: 400px;
  max-width: calc(100% - 24px);
  padding: 8px 12px;
  row-gap: 0.3rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.22);
}

.one-to-one-demo {
  padding: 0.5rem;
  overflow: hidden;
}
.one-to-one-demo .sal__canvas {
  height: 440px;
  border-radius: 12px;
}

.blast-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.blast-card.blast-card--ours {
  border: 1px solid #f47424;
}

.blast-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 4px;
  margin: 0.5rem 0 0.75rem;
}
.blast-grid .blast-cell {
  aspect-ratio: 1/1.6;
  border-radius: 3px;
  background: #2e6fb8;
  border: 1px solid rgba(255, 255, 255, 0.35);
}
.blast-grid .blast-cell--dim {
  background: #7d8794;
  opacity: 0.55;
}
.blast-grid .blast-cell--victim {
  background: #b3433b;
  opacity: 1;
}

.blast-verdict {
  font-size: 0.85rem;
  margin-bottom: 0;
  margin-top: auto;
}

.sal-prod-popup .maplibregl-popup-content {
  font-size: 12px;
  line-height: 1.45;
  padding: 8px 11px;
  border-radius: 8px;
}

.sal__icon-btn.is-active {
  color: #f47424;
}

#floating-info.system-map-summary {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 10;
  width: clamp(280px, 25%, 360px);
  max-height: calc(100% - 24px);
  padding: 0.65rem;
  box-sizing: border-box;
  flex-grow: 0;
  overflow-y: auto;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.22);
}
#floating-info.system-map-summary h1 {
  margin: 0 0 0.55rem;
  font-size: 0.9rem !important;
  line-height: 1.25;
}
#floating-info.system-map-summary .system-map-summary__production,
#floating-info.system-map-summary .system-map-summary__metrics {
  display: grid !important;
  gap: 0.4rem !important;
  margin-bottom: 0.5rem !important;
}
#floating-info.system-map-summary .system-map-summary__production {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
#floating-info.system-map-summary .system-map-summary__metrics {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
#floating-info.system-map-summary .lightborder {
  width: auto !important;
  min-width: 0;
  padding: 0.45rem;
  border-radius: 6px;
  font-size: 0.72rem;
  line-height: 1.25;
}
#floating-info.system-map-summary .lightborder .fs-5 {
  margin-bottom: 0.2rem !important;
  font-size: 0.82rem !important;
  line-height: 1.2;
}
#floating-info.system-map-summary .svg-large {
  display: block;
  width: 24px;
  height: 24px;
  margin: 0.3rem auto 0;
}
#floating-info.system-map-summary > p:last-child {
  margin: 0;
  font-size: 0.65rem;
  line-height: 1.3;
  opacity: 0.72;
}

ul.impact-tabs {
  gap: 0.4rem;
}
ul.impact-tabs .nav-link {
  color: var(--text-colour, #333);
  background: var(--card-colour, rgba(0, 0, 0, 0.04));
  border: 1px solid var(--border-colour, #dee2e6);
  border-radius: 50px;
  font-weight: 600;
  padding: 0.45rem 1.1rem;
}
ul.impact-tabs .nav-link::after {
  display: none;
}
ul.impact-tabs .nav-link:hover {
  border-color: #f47424;
}
ul.impact-tabs .nav-link.active {
  background: #f47424;
  border-color: #f47424;
  color: #fff;
}

.orientation-curve {
  display: flex;
  align-items: stretch;
  gap: clamp(3px, 0.55vw, 8px);
  height: 220px;
  width: 100%;
  padding-top: 0.25rem;
}
.orientation-curve .curve-col {
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  display: grid;
  grid-template-rows: 1rem minmax(0, 1fr) 1rem;
  justify-items: center;
  align-items: end;
  gap: 4px;
  outline: none;
}
.orientation-curve .curve-col:hover .curve-bar, .orientation-curve .curve-col:focus-visible .curve-bar {
  background: #ff8a3d;
  box-shadow: 0 0 0 1px rgba(244, 116, 36, 0.2), 0 5px 14px rgba(244, 116, 36, 0.24);
  transform: scaleX(1.06);
}
.orientation-curve .curve-col:hover .curve-value,
.orientation-curve .curve-col:hover .curve-label, .orientation-curve .curve-col:focus-visible .curve-value,
.orientation-curve .curve-col:focus-visible .curve-label {
  opacity: 1;
}
.orientation-curve .curve-value {
  font-size: 0.68rem;
  opacity: 0.65;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.orientation-curve .curve-track {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  border-bottom: 1px solid var(--border-colour, #dee2e6);
}
.orientation-curve .curve-bar {
  width: 100%;
  max-width: 44px;
  flex: none;
  background: #f47424;
  border-radius: 4px 4px 0 0;
  min-height: 2px;
  transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.orientation-curve .curve-label {
  font-size: 0.7rem;
  font-weight: 700;
  opacity: 0.7;
  line-height: 1;
}

.season-grid {
  display: grid;
  gap: 1rem;
  width: 100%;
}

.season-row {
  display: grid;
  grid-template-columns: 64px 1fr;
  align-items: end;
  gap: 0.75rem;
}
.season-row .season-name {
  font-weight: 700;
  font-size: 0.85rem;
  padding-bottom: 1.1rem;
}
.season-row .season-bars {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 92px;
}
.season-row .season-col {
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 3px;
  outline: none;
}
.season-row .season-col:hover .season-bar, .season-row .season-col:focus-visible .season-bar {
  opacity: 1;
  box-shadow: 0 4px 10px rgba(244, 116, 36, 0.22);
}
.season-row .season-col:hover .season-label, .season-row .season-col:focus-visible .season-label {
  opacity: 1;
}
.season-row .season-bar {
  width: 100%;
  max-width: 26px;
  background: #f47424;
  opacity: 0.8;
  border-radius: 3px 3px 0 0;
  min-height: 1px;
  transition: opacity 0.15s ease, box-shadow 0.15s ease;
}
.season-row .season-label {
  font-size: 0.62rem;
  opacity: 0.55;
  font-weight: 700;
}

.orientation-rose-wrap {
  display: flex;
  justify-content: center;
}
.orientation-rose-wrap svg {
  max-width: 100%;
  height: auto;
}
.orientation-rose-wrap .rose-ring {
  fill: none;
  stroke: var(--border-colour, #dee2e6);
  stroke-width: 1;
}
.orientation-rose-wrap .rose-wedge {
  fill: #f47424;
  stroke: var(--card-colour, #fff);
  stroke-width: 2;
  cursor: help;
  outline: none;
  transform-box: fill-box;
  transform-origin: center;
  transition: filter 0.15s ease, opacity 0.15s ease;
}
.orientation-rose-wrap .rose-wedge:hover, .orientation-rose-wrap .rose-wedge:focus-visible {
  filter: brightness(1.12) drop-shadow(0 2px 4px rgba(244, 116, 36, 0.28));
  opacity: 1;
}
.orientation-rose-wrap .rose-label {
  fill: var(--text-colour, #333);
  font-size: 12px;
  font-weight: 700;
  opacity: 0.7;
}

.orientation-yield-rows {
  display: grid;
  gap: 0.65rem;
  width: 100%;
}

.orientation-yield-row {
  display: grid;
  grid-template-columns: 52px 1fr 150px;
  align-items: center;
  gap: 0.65rem;
}
.orientation-yield-row.orientation-yield-row--wide {
  grid-template-columns: 150px 1fr 110px;
}
.orientation-yield-row .yield-sector {
  text-align: right;
  font-weight: 700;
  line-height: 1.15;
}
.orientation-yield-row .yield-sector small {
  display: block;
  font-weight: 500;
  opacity: 0.55;
  font-variant-numeric: tabular-nums;
}
.orientation-yield-row .yield-track {
  position: relative;
  height: 18px;
}
.orientation-yield-row .yield-fill {
  position: absolute;
  inset: 0 auto 0 0;
  background: #f47424;
  border-radius: 0 4px 4px 0;
  border-left: 2px solid var(--border-colour, #dee2e6);
}
.orientation-yield-row .yield-value {
  font-variant-numeric: tabular-nums;
  font-size: 0.9rem;
}
.orientation-yield-row .yield-value small {
  opacity: 0.6;
}

.section-intro-wrapper {
  position: relative;
  overflow: hidden;
  border-radius: var(--border-radius);
}
.section-intro-wrapper.section-intro-with-bg {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 2rem;
  min-height: 200px;
}

.section-intro-mask {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  pointer-events: none;
}

.section-intro-content {
  position: relative;
  z-index: 1;
}

.section-intro-media {
  display: flex;
  align-items: center;
  justify-content: center;
}
.section-intro-media img {
  max-width: 100%;
  height: auto;
  border-radius: var(--border-radius);
  max-height: 400px;
  -o-object-fit: cover;
     object-fit: cover;
}
.section-intro-media video {
  max-width: 100%;
  border-radius: var(--border-radius);
  max-height: 400px;
}
.section-intro-media .ratio {
  border-radius: var(--border-radius);
  overflow: hidden;
}

@media (max-width: 767.98px) {
  .section-intro-wrapper.section-intro-with-bg {
    padding: 1rem;
  }
  .section-intro-wrapper .section-intro-media {
    margin-top: 1rem;
    order: 2 !important;
  }
}
.section-intro-with-bg .section-intro-content h2, .section-intro-with-bg .section-intro-content p, .section-intro-with-bg .section-intro-content .body {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

[data-controller=section-config] .dropdown {
  position: relative;
}
[data-controller=section-config] .dropdown-menu {
  position: absolute;
  top: 100%;
  right: 0;
  left: auto;
  margin-top: 4px;
  z-index: 1050;
}

.section-edit-media-preview .section-edit-media-controls {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.section-edit-media-preview:hover .section-edit-media-controls, .section-edit-media-preview:focus-within .section-edit-media-controls {
  opacity: 1;
}

.grapesjs-template-form {
  margin: 0;
  padding: 0;
}

.grapesjs-editor-wrapper {
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100vw;
  overflow: hidden;
  background: var(--background-colour, #f0f0f0);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1050;
}

.grapesjs-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 16px;
  background: var(--card-colour, #fff);
  border-bottom: 1px solid var(--border-colour, #dee2e6);
  z-index: 10;
  min-height: 48px;
  gap: 12px;
  flex-shrink: 0;
}

.grapesjs-title-input {
  background-color: var(--input-background) !important;
  border: 1px solid var(--input-border) !important;
  color: var(--input-text) !important;
  border-radius: var(--input-radius) !important;
  height: 34px !important;
  font-weight: 600;
  font-size: 0.9rem;
  padding: 4px 10px;
}
.grapesjs-title-input:focus {
  border-color: var(--input-focus-border) !important;
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--input-focus-border) 12.5%, transparent) !important;
}

.grapesjs-editor-body {
  display: flex;
  flex: 1;
  overflow: hidden;
  min-height: 0;
}

.grapesjs-panel-left {
  width: 240px;
  min-width: 240px;
  flex-shrink: 0;
  overflow-y: auto;
  background: var(--card-colour, #fff);
  border-right: 1px solid var(--border-colour, #dee2e6);
}
.grapesjs-panel-left .gjs-block-categories .gjs-block-category .gjs-title {
  background: transparent;
  padding: 8px 12px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-colour, #6c757d);
  border-bottom: 1px solid var(--border-colour, #dee2e6);
  opacity: 0.7;
}
.grapesjs-panel-left .gjs-block {
  width: calc(50% - 8px);
  min-height: 60px;
  padding: 8px;
  margin: 4px;
  border-radius: var(--input-radius, 6px);
  border: 1px solid var(--border-colour, #e9ecef);
  background: var(--input-background, #f8f9fa);
  color: var(--text-colour, #333);
  transition: all 0.15s ease;
  cursor: grab;
  font-size: 0.7rem;
}
.grapesjs-panel-left .gjs-block:hover {
  border-color: var(--secondary-colour, #4285f4);
  background: color-mix(in srgb, var(--secondary-colour) 10%, var(--input-background, #fff));
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.grapesjs-panel-left .gjs-block:active {
  cursor: grabbing;
}
.grapesjs-panel-left .gjs-block .gjs-block-label {
  font-size: 0.7rem;
  line-height: 1.2;
}

.grapesjs-canvas-wrapper {
  flex: 1;
  min-width: 0;
  position: relative;
  overflow: hidden;
}
.grapesjs-canvas-wrapper #gjs-editor {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.grapesjs-canvas-wrapper .gjs-cv-canvas {
  width: 100% !important;
  height: 100% !important;
  top: 0 !important;
  left: 0 !important;
}
.grapesjs-canvas-wrapper .gjs-frame-wrapper {
  overflow: auto;
}
.grapesjs-canvas-wrapper .gjs-frame {
  width: 100% !important;
  min-height: 100% !important;
}

.grapesjs-panel-right {
  width: 260px;
  min-width: 260px;
  flex-shrink: 0;
  overflow-y: auto;
  background: var(--card-colour, #fff);
  border-left: 1px solid var(--border-colour, #dee2e6);
}
.grapesjs-panel-right #gjs-styles-panel,
.grapesjs-panel-right #gjs-traits-panel,
.grapesjs-panel-right #gjs-layers-panel {
  width: 100%;
}
.grapesjs-panel-right #gjs-styles-panel > div,
.grapesjs-panel-right #gjs-traits-panel > div,
.grapesjs-panel-right #gjs-layers-panel > div {
  display: block !important;
  width: 100% !important;
}
.grapesjs-panel-right .gjs-sm-sector .gjs-sm-sector-title {
  padding: 8px 12px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  background: transparent;
  color: var(--text-colour, #333);
  border-bottom: 1px solid var(--border-colour, #dee2e6);
}
.grapesjs-panel-right .gjs-sm-sector .gjs-sm-properties {
  padding: 8px 12px;
}
.grapesjs-panel-right .gjs-field {
  background-color: var(--input-background) !important;
  border: 1px solid var(--input-border) !important;
  border-radius: var(--input-radius) !important;
  overflow: hidden;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.grapesjs-panel-right .gjs-field:focus-within {
  border-color: var(--input-focus-border) !important;
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--input-focus-border) 12.5%, transparent) !important;
}
.grapesjs-panel-right .gjs-field input, .grapesjs-panel-right .gjs-field select {
  font-size: 0.8rem;
  padding: 4px 8px;
  height: 30px;
  color: var(--input-text) !important;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  width: 100%;
  font-family: inherit;
  box-shadow: none !important;
}
.grapesjs-panel-right .gjs-field input::-moz-placeholder, .grapesjs-panel-right .gjs-field select::-moz-placeholder {
  color: var(--input-placeholder) !important;
}
.grapesjs-panel-right .gjs-field input::placeholder, .grapesjs-panel-right .gjs-field select::placeholder {
  color: var(--input-placeholder) !important;
}
.grapesjs-panel-right .gjs-field select {
  cursor: pointer;
}
.grapesjs-panel-right .gjs-sm-composite .gjs-sm-btn,
.grapesjs-panel-right .gjs-sm-composite .gjs-field-radio-item,
.grapesjs-panel-right .gjs-field-radio .gjs-sm-btn,
.grapesjs-panel-right .gjs-field-radio .gjs-field-radio-item {
  background-color: var(--input-background) !important;
  border: 1px solid var(--input-border) !important;
  color: var(--input-text) !important;
  font-size: 0.75rem;
  padding: 4px 8px;
}
.grapesjs-panel-right .gjs-sm-composite .gjs-sm-btn:first-child,
.grapesjs-panel-right .gjs-sm-composite .gjs-field-radio-item:first-child,
.grapesjs-panel-right .gjs-field-radio .gjs-sm-btn:first-child,
.grapesjs-panel-right .gjs-field-radio .gjs-field-radio-item:first-child {
  border-radius: var(--input-radius, 6px) 0 0 var(--input-radius, 6px) !important;
}
.grapesjs-panel-right .gjs-sm-composite .gjs-sm-btn:last-child,
.grapesjs-panel-right .gjs-sm-composite .gjs-field-radio-item:last-child,
.grapesjs-panel-right .gjs-field-radio .gjs-sm-btn:last-child,
.grapesjs-panel-right .gjs-field-radio .gjs-field-radio-item:last-child {
  border-radius: 0 var(--input-radius, 6px) var(--input-radius, 6px) 0 !important;
}
.grapesjs-panel-right .gjs-sm-composite .gjs-sm-btn.gjs-sm-active,
.grapesjs-panel-right .gjs-sm-composite .gjs-field-radio-item.active,
.grapesjs-panel-right .gjs-sm-composite input:checked + label,
.grapesjs-panel-right .gjs-field-radio .gjs-sm-btn.gjs-sm-active,
.grapesjs-panel-right .gjs-field-radio .gjs-field-radio-item.active,
.grapesjs-panel-right .gjs-field-radio input:checked + label {
  background-color: var(--secondary-colour) !important;
  border-color: var(--secondary-colour) !important;
  color: var(--tertiary-colour, #fff) !important;
}
.grapesjs-panel-right .gjs-field-color .gjs-field-colorp {
  border-radius: var(--input-radius, 4px);
  overflow: hidden;
}

.sp-container:not(.sp-flat) {
  position: fixed !important;
}

.grapesjs-editor-wrapper .gjs-sm-label {
  font-size: 0.75rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
  font-family: inherit;
}
.grapesjs-editor-wrapper .gjs-trt-trait {
  padding: 6px 12px;
}
.grapesjs-editor-wrapper .gjs-trt-trait .gjs-label {
  font-size: 0.75rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
}
.grapesjs-editor-wrapper .gjs-clm-tags {
  padding: 8px 12px;
}
.grapesjs-editor-wrapper .gjs-clm-tags .gjs-clm-tag {
  background: var(--secondary-colour);
  color: var(--tertiary-colour, #fff);
  border-radius: var(--input-radius, 4px);
  padding: 2px 8px;
  font-size: 0.7rem;
}
.grapesjs-editor-wrapper .gjs-clm-tags #gjs-clm-new {
  background-color: var(--input-background) !important;
  border: 1px solid var(--input-border) !important;
  border-radius: var(--input-radius) !important;
  color: var(--input-text) !important;
}
.grapesjs-editor-wrapper .gjs-clm-field select,
.grapesjs-editor-wrapper .gjs-clm-select select {
  background-color: var(--input-background) !important;
  border: 1px solid var(--input-border) !important;
  border-radius: var(--input-radius) !important;
  color: var(--input-text) !important;
  height: 30px;
  font-size: 0.8rem;
  padding: 2px 8px;
}

.gjs-one-bg {
  background-color: var(--card-colour, #fff) !important;
}

.gjs-two-color {
  color: var(--text-colour, #333) !important;
}

.gjs-three-bg {
  background-color: var(--secondary-colour, #4285f4) !important;
}

.gjs-four-color,
.gjs-four-color-h:hover {
  color: var(--secondary-colour, #4285f4) !important;
}

.gjs-selected {
  outline: 2px solid var(--secondary-colour, #4285f4) !important;
  outline-offset: -2px;
}

.gjs-hovered {
  outline: 1px dashed var(--secondary-colour, #4285f4) !important;
}

.gjs-toolbar {
  background: var(--secondary-colour, #4285f4);
  border-radius: var(--input-radius, 4px);
  padding: 2px;
}
.gjs-toolbar .gjs-toolbar-item {
  padding: 4px 6px;
  border-radius: 3px;
  font-size: 0.75rem;
  color: var(--tertiary-colour, #fff);
}
.gjs-toolbar .gjs-toolbar-item:hover {
  background: rgba(255, 255, 255, 0.2);
}

.gjs-rte-toolbar {
  border-radius: var(--input-radius, 6px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  background: var(--card-colour, #fff);
  border: 1px solid var(--border-colour, #dee2e6);
  padding: 4px;
}

.gjs-mdl-container {
  z-index: 1100 !important;
}

.gjs-btn-prim {
  background: var(--secondary-colour) !important;
  color: var(--tertiary-colour, #fff) !important;
  border: none !important;
  border-radius: var(--input-radius, 6px) !important;
  padding: 8px 16px !important;
  font-weight: 500;
  cursor: pointer;
  font-size: 0.85rem;
}
.gjs-btn-prim:hover {
  opacity: 0.9;
}

.gjs-custom-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1200;
}
.gjs-custom-modal.active {
  display: flex;
  align-items: center;
  justify-content: center;
}
.gjs-custom-modal .gjs-ai-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
}
.gjs-custom-modal .gjs-ai-dialog {
  position: relative;
  background: var(--card-colour, #fff);
  border-radius: var(--border-radius, 8px);
  width: 560px;
  max-width: 90vw;
  max-height: 80vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}
.gjs-custom-modal .gjs-ai-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border-colour, #dee2e6);
}
.gjs-custom-modal .gjs-ai-body {
  padding: 20px;
  overflow-y: auto;
  flex: 1;
}
.gjs-custom-modal .gjs-ai-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 20px;
  border-top: 1px solid var(--border-colour, #dee2e6);
}
.gjs-custom-modal .gjs-ai-thinking-icon {
  color: var(--accent-colour, #6c5ce7);
  animation: gjs-ai-thinking-pulse 1.6s ease-in-out infinite;
}
.gjs-custom-modal .gjs-ai-thinking-dots {
  display: inline-block;
  min-width: 1.2em;
  text-align: left;
}

@keyframes gjs-ai-thinking-pulse {
  0%, 100% {
    transform: scale(1) rotate(-4deg);
    opacity: 0.75;
  }
  50% {
    transform: scale(1.12) rotate(4deg);
    opacity: 1;
  }
}
.gjs-trt-trait:has(.pl-icon-picker) {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 6px;
}
.gjs-trt-trait:has(.pl-icon-picker) .gjs-label-wrp,
.gjs-trt-trait:has(.pl-icon-picker) .gjs-label {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
}
.gjs-trt-trait:has(.pl-icon-picker) .gjs-field-wrp,
.gjs-trt-trait:has(.pl-icon-picker) .gjs-field {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 auto !important;
}

.pl-icon-picker {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
.pl-icon-picker .pl-icon-search {
  width: 100%;
  padding: 6px 10px;
  font-size: 12px;
  background: var(--input-background, #1f1f24);
  color: var(--text-colour, #e8e8eb);
  border: 1px solid var(--border-colour, #3a3a40);
  border-radius: 6px;
  outline: none;
}
.pl-icon-picker .pl-icon-search:focus {
  border-color: var(--secondary-colour, #4a9eff);
}
.pl-icon-picker .pl-icon-grid {
  max-height: 260px;
  overflow-y: auto;
  padding-right: 4px;
}
.pl-icon-picker .pl-icon-group {
  font-size: 10px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--muted-text, #8a8a92);
  margin: 8px 0 4px;
}
.pl-icon-picker .pl-icon-row {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 4px;
}
.pl-icon-picker .pl-icon-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  background: var(--input-background, #1f1f24);
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--text-colour, #e8e8eb);
  cursor: pointer;
  font-size: 16px;
  padding: 0;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.pl-icon-picker .pl-icon-tile:hover {
  border-color: var(--secondary-colour, #4a9eff);
}
.pl-icon-picker .pl-icon-tile.is-active {
  border-color: var(--secondary-colour, #4a9eff);
  background: rgba(74, 158, 255, 0.12);
}

.pl-variable-picker {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-type, inherit);
}
.pl-variable-picker .pl-variable-picker-backdrop {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--text-colour, #000) 55%, transparent);
  backdrop-filter: blur(2px);
}
.pl-variable-picker .pl-variable-picker-dialog {
  position: relative;
  width: 520px;
  max-width: 90vw;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
  background: var(--card-colour, #fff);
  color: var(--text-colour, #333);
  border: 1px solid var(--border-colour, #dee2e6);
  border-radius: var(--border-radius, 12px);
  box-shadow: var(--h-offset, 0) var(--v-offset, 4px) 50px color-mix(in srgb, var(--boxshadow, #000) 40%, transparent);
  overflow: hidden;
}
.pl-variable-picker .pl-variable-picker-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border-colour, #dee2e6);
}
.pl-variable-picker .pl-variable-search {
  flex: 1;
  background: var(--input-background, #fff);
  color: var(--input-text, #333);
  border: 1px solid var(--input-border, #dee2e6);
  border-radius: var(--input-radius, 8px);
  padding: 8px 12px;
  font-size: 14px;
  outline: none;
}
.pl-variable-picker .pl-variable-search::-moz-placeholder {
  color: var(--input-placeholder, #6c757d);
}
.pl-variable-picker .pl-variable-search::placeholder {
  color: var(--input-placeholder, #6c757d);
}
.pl-variable-picker .pl-variable-search:focus {
  border-color: var(--input-focus-border, var(--secondary-colour));
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--input-focus-border, var(--secondary-colour)) 12.5%, transparent);
}
.pl-variable-picker .pl-variable-close {
  background: transparent;
  color: var(--muted-text, #6c757d);
  border: none;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 2px 8px;
  border-radius: var(--button-radius, 6px);
}
.pl-variable-picker .pl-variable-close:hover {
  background: color-mix(in srgb, var(--secondary-colour) 10%, transparent);
  color: var(--text-colour, #333);
}
.pl-variable-picker .pl-variable-list {
  flex: 1;
  overflow-y: auto;
  padding: 6px 0;
}
.pl-variable-picker .pl-variable-group {
  padding: 10px 14px 4px;
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--muted-text, #6c757d);
  font-weight: 600;
}
.pl-variable-picker .pl-variable-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  background: transparent;
  color: var(--text-colour, #333);
  border: none;
  padding: 8px 14px;
  text-align: left;
  cursor: pointer;
  font-size: 13px;
  font-family: inherit;
}
.pl-variable-picker .pl-variable-item .pl-variable-label {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pl-variable-picker .pl-variable-item .pl-variable-code {
  font-size: 11px;
  color: var(--muted-text, #6c757d);
  background: var(--input-background, #f8f9fa);
  border: 1px solid var(--input-border, #dee2e6);
  padding: 2px 6px;
  border-radius: var(--input-radius, 4px);
  white-space: nowrap;
}
.pl-variable-picker .pl-variable-item:hover, .pl-variable-picker .pl-variable-item.is-active {
  background: color-mix(in srgb, var(--secondary-colour) 12%, transparent);
}
.pl-variable-picker .pl-variable-item:hover .pl-variable-code, .pl-variable-picker .pl-variable-item.is-active .pl-variable-code {
  color: var(--text-colour, #333);
  border-color: var(--secondary-colour);
}
.pl-variable-picker .pl-variable-empty {
  padding: 24px 14px;
  text-align: center;
  color: var(--muted-text, #6c757d);
  font-size: 13px;
}
.pl-variable-picker .pl-variable-hint {
  padding: 8px 14px;
  border-top: 1px solid var(--border-colour, #dee2e6);
  font-size: 11px;
  color: var(--muted-text, #6c757d);
  text-align: center;
}

@media (max-width: 1024px) {
  .grapesjs-panel-left {
    width: 200px;
    min-width: 200px;
  }
  .grapesjs-panel-right {
    width: 220px;
    min-width: 220px;
  }
}
.flatpickr-calendar.flatpickr-with-presets.open {
  display: flex !important;
  flex-direction: row !important;
  width: auto !important;
  max-width: none !important;
}

.flatpickr-main {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  position: relative;
}

.flatpickr-presets {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px;
  min-width: 140px;
  flex-shrink: 0;
}

.flatpickr-preset {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
  padding: 6px 10px;
  text-align: left;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.flatpickr-preset-clear {
  margin-top: auto;
  opacity: 0.7;
}

.date-range-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}
.date-range-trigger input {
  border: none;
  background: transparent;
  cursor: pointer;
  outline: none;
  box-shadow: none;
  padding: 0;
  width: 110px;
  font: inherit;
  color: inherit;
}
.date-range-trigger input:focus, .date-range-trigger input:hover {
  border: none;
  background: transparent;
  outline: none;
  box-shadow: none;
}
.date-range-trigger input::-moz-placeholder {
  color: inherit;
  opacity: 1;
}
.date-range-trigger input::placeholder {
  color: inherit;
  opacity: 1;
}

.sal__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
  flex-wrap: wrap;
}
.sal__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 264px;
  gap: 0.75rem;
  align-items: stretch;
}
.sal__main {
  position: relative;
  min-height: 440px;
  border-radius: var(--border-radius);
  overflow: hidden;
  border: 1px solid var(--border-colour);
}
.sal__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: #f6f7f9;
  background-image: linear-gradient(rgba(30, 41, 59, 0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(30, 41, 59, 0.07) 1px, transparent 1px);
  background-size: 22px 22px;
}
.sal__floating {
  position: absolute;
  z-index: 2;
  display: flex;
  gap: 0.4rem;
}
.sal__floating > * {
  pointer-events: auto;
}
.sal__floating--tools {
  top: 0.6rem;
  left: 0.6rem;
}
.sal__floating--status {
  bottom: 0.5rem;
  left: 50%;
  transform: translateX(-50%);
  max-width: 82%;
  padding: 0.26rem 0.6rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--card-colour) 85%, transparent);
  color: var(--text-colour);
  font-size: 0.72rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  pointer-events: auto;
}
.sal__floating--view {
  bottom: 0.5rem;
  left: 0.5rem;
  align-items: center;
  gap: 0.35rem;
  padding: 0.28rem 0.65rem;
  border: 0;
  border-radius: 999px;
  background: color-mix(in srgb, var(--secondary-colour) 85%, #000000);
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  pointer-events: auto;
}
.sal__floating--view[hidden] {
  display: none;
}
.sal__floating--totals {
  top: 0.5rem;
  right: 0.5rem;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.1rem;
  padding: 0.35rem 0.6rem;
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--card-colour) 88%, transparent);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  pointer-events: auto;
}
.sal__floating--totals span {
  font-size: 0.72rem;
  color: var(--muted-text);
}
.sal__floating--totals strong {
  color: var(--text-colour);
  font-size: 0.9rem;
}
.sal__icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  border-radius: 7px;
  border: 1px solid var(--border-colour);
  background: var(--card-colour);
  color: var(--text-colour);
  font-size: 0.82rem;
  cursor: pointer;
}
.sal__icon-btn.is-off {
  opacity: 0.5;
}
.sal__side {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  max-height: 440px;
  overflow-y: auto;
}
.sal__side-section {
  padding: 0.6rem;
  border-radius: var(--border-radius);
  border: 1px solid var(--border-colour);
  background: var(--card-colour);
}
.sal__side-title {
  font-weight: 700;
  font-size: 0.82rem;
  margin-bottom: 0.45rem;
}
.sal__editor-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.6rem;
}
.sal__editor-remove {
  border: 0;
  background: transparent;
  color: var(--notification-danger-text);
  cursor: pointer;
  font-size: 1rem;
}
.sal__grid-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 0.6rem;
  margin-top: 0.4rem;
}
.sal__field-hint {
  color: var(--muted-text);
  font-size: 0.78rem;
  margin: 0.35rem 0 0.6rem;
}
.sal__field-hint strong {
  color: var(--text-colour);
}
.sal__slider {
  width: 100%;
  accent-color: var(--secondary-colour);
  margin-top: 0.2rem;
}
.sal__backdrop {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.sal__backdrop-edit.is-active {
  border-color: var(--secondary-colour);
  background: color-mix(in srgb, var(--secondary-colour) 14%, var(--card-colour));
}
.sal__opacity {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  color: var(--muted-text);
  font-size: 0.8rem;
  margin: 0;
}
.sal .form-control,
.sal .form-select {
  padding: 0.3rem 0.5rem;
  font-size: 0.82rem;
}
.sal .form-label {
  font-size: 0.76rem;
  margin-bottom: 0.12rem;
  margin-top: 0.3rem;
}

.sal-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.sal-list__empty {
  color: var(--muted-text);
  font-size: 0.85rem;
}
.sal-list__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.38rem 0.5rem;
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--secondary-colour) 6%, var(--card-colour));
  cursor: pointer;
}
.sal-list__item:hover {
  background: color-mix(in srgb, var(--secondary-colour) 12%, var(--card-colour));
}
.sal-list__item.is-selected {
  background: color-mix(in srgb, var(--secondary-colour) 16%, var(--card-colour));
  outline: 1px solid var(--secondary-colour);
}
.sal-list__facing {
  flex: 0 0 auto;
  min-width: 1.85rem;
  text-align: center;
  font-weight: 700;
  padding: 0.18rem 0.3rem;
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--secondary-colour) 22%, var(--card-colour));
  color: var(--text-colour);
  font-size: 0.72rem;
}
.sal-list__meta {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  color: var(--muted-text);
  font-size: 0.74rem;
}
.sal-list__meta strong {
  color: var(--text-colour);
}
.sal-list__remove {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: var(--muted-text);
  cursor: pointer;
}
.sal-list__remove:hover {
  color: var(--notification-danger-text);
}

@media (max-width: 900px) {
  .sal__body {
    grid-template-columns: minmax(0, 1fr);
  }
  .sal__side {
    max-height: none;
  }
}
.sal--readonly .sal__canvas {
  position: relative;
  inset: auto;
  min-height: 420px;
  border-radius: var(--border-radius);
  overflow: hidden;
  border: 1px solid var(--border-colour);
}

.system-monitor__hero--tall {
  min-height: 380px;
}

.system-hero--array-layout {
  min-height: 480px;
}

.system-monitor__hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease;
}
.system-monitor__hero-slide.is-active {
  opacity: 1;
  visibility: visible;
}

.system-hero-slide {
  position: relative;
}

.system-hero--array-layout .system-hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease;
}
.system-hero--array-layout .system-hero-slide.is-active {
  opacity: 1;
  visibility: visible;
}

.system-monitor__hero-map,
.system-hero-map {
  position: absolute;
  inset: 0;
}

.system-monitor__hero .system-monitor__hero-map .sal__canvas {
  position: absolute;
  inset: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
}

.system-hero .system-hero-map .sal__canvas {
  position: absolute;
  inset: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
}

.system-monitor__hero-overlay--soft {
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0) 45%);
  pointer-events: none;
}

.system-monitor__hero-yield {
  position: absolute;
  z-index: 2;
  right: 1rem;
  bottom: 1rem;
  padding: 0.35rem 0.7rem;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  font-size: 0.78rem;
}
.system-monitor__hero-yield strong {
  font-size: 1.05rem;
}

.system-monitor__hero-tabs {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 1rem;
  transform: translateX(-50%);
  display: flex;
  gap: 0.25rem;
  padding: 0.25rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.42);
}

.system-monitor__hero-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.32rem 0.8rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
}
.system-monitor__hero-tab.is-active {
  background: #fff;
  color: #111827;
}

.system-monitor__hero-arrays {
  position: absolute;
  z-index: 2;
  top: 3.2rem;
  left: 0.75rem;
  width: 210px;
  max-width: calc(100% - 1.5rem);
  max-height: calc(100% - 4.6rem);
  overflow-y: auto;
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
  background: rgba(17, 24, 39, 0.6);
  backdrop-filter: blur(6px);
  color: #fff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}
.system-monitor__hero-arrays:has(ul:empty) {
  display: none;
}

.system-monitor__hero-arrays-title {
  display: block;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.8;
  margin-bottom: 0.4rem;
}

.system-monitor__hero-arrays .sal-legend {
  margin: 0;
  gap: 0.3rem;
}
.system-monitor__hero-arrays .sal-legend__item {
  background: rgba(255, 255, 255, 0.08);
  padding: 0.35rem 0.45rem;
}
.system-monitor__hero-arrays .sal-legend__facing {
  min-width: 1.7rem;
  padding: 0.15rem 0.3rem;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  font-size: 0.66rem;
}
.system-monitor__hero-arrays .sal-legend__meta {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.68rem;
}
.system-monitor__hero-arrays .sal-legend__meta strong {
  color: #fff;
}

.system-hero .system-monitor__hero-arrays {
  top: 0.85rem;
  max-height: calc(100% - 12rem);
}

.system-hero .system-monitor__hero-tabs {
  top: 0.85rem;
  right: 0.85rem;
  bottom: auto;
  left: auto;
  transform: none;
}

@media (max-width: 768px) {
  .system-hero .system-monitor__hero-arrays {
    width: 185px;
    max-height: calc(100% - 14rem);
  }
  .system-hero .system-monitor__hero-tabs {
    top: 0.75rem;
    right: 0.75rem;
  }
}
.sal .button-13-outline.is-off {
  opacity: 0.55;
}

.sal-import {
  margin: 25px auto auto;
}
.sal-import__head {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  margin-bottom: 1rem;
}
.sal-import__head h1 {
  font-size: 1.45rem;
  margin: 0;
}
.sal-import__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--secondary-colour) 14%, var(--card-colour));
  color: var(--text-colour);
  font-size: 1.1rem;
}
.sal-import__sub {
  color: var(--muted-text);
  font-size: 0.88rem;
  margin: 0.2rem 0 0;
  max-width: 60ch;
}
.sal-import__preview {
  margin-bottom: 0.75rem;
}
.sal-import__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  flex: 0 0 auto;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  background: color-mix(in srgb, var(--secondary-colour) 16%, var(--card-colour));
  color: var(--text-colour);
}

.sal-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.8rem;
  margin-bottom: 0.5rem;
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--secondary-colour) 6%, var(--card-colour));
}

.sal-handle {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  cursor: grab;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.45);
  font-size: 0.74rem;
  line-height: 1;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: transform 0.08s ease;
}
.sal-handle:hover {
  transform: scale(1.08);
}
.sal-handle:active {
  cursor: grabbing;
}
.sal-handle--center {
  width: 25px;
  height: 25px;
  background: var(--secondary-colour);
  color: #ffffff;
  border: 2px solid #ffffff;
  cursor: move;
}
.sal-handle--rotate {
  width: 25px;
  height: 25px;
  background: #ffffff;
  color: var(--secondary-colour);
  border: 2px solid var(--secondary-colour);
}
.sal-handle--resize {
  width: 19px;
  height: 19px;
  border-radius: 6px;
  background: var(--secondary-colour);
  color: #ffffff;
  border: 2px solid #ffffff;
  cursor: nwse-resize;
}
.sal-handle--tilt {
  width: auto;
  height: 20px;
  padding: 0 7px;
  border-radius: 11px;
  background: #1f2937;
  color: #ffffff;
  border: 2px solid #ffffff;
  font-weight: 700;
  font-size: 0.68rem;
  white-space: nowrap;
  cursor: ns-resize;
}
.sal-handle--backdrop-move {
  width: 26px;
  height: 26px;
  background: color-mix(in srgb, #2b6cb0 78%, transparent);
  color: #ffffff;
  border: 2px solid #ffffff;
  cursor: move;
}
.sal-handle--backdrop-scale {
  width: 18px;
  height: 18px;
  border-radius: 5px;
  background: #2b6cb0;
  color: #ffffff;
  border: 2px solid #ffffff;
  cursor: nwse-resize;
}

.system-layout {
  margin-top: 1.5rem;
}
.system-layout__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.system-layout__yield {
  text-align: right;
  padding: 0.5rem 0.9rem;
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--secondary-colour) 12%, var(--card-colour));
}
.system-layout__yield-value {
  display: block;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--text-colour);
}
.system-layout__yield-unit {
  display: block;
  font-size: 0.8rem;
  color: var(--muted-text);
}

.sal-legend {
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}
.sal-legend__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem;
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--secondary-colour) 8%, var(--card-colour));
}
.sal-legend__facing {
  flex: 0 0 auto;
  min-width: 2.4rem;
  text-align: center;
  font-weight: 700;
  padding: 0.25rem 0.4rem;
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--secondary-colour) 22%, var(--card-colour));
  color: var(--text-colour);
}
.sal-legend__meta {
  display: flex;
  flex-direction: column;
  color: var(--muted-text);
  font-size: 0.85rem;
}
.sal-legend__meta strong {
  color: var(--text-colour);
}

.sal-form-errors {
  padding: 0.7rem 0.9rem;
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--notification-danger-text) 12%, var(--card-colour));
  color: var(--notification-danger-text);
}
.sal-form-errors ul {
  padding-left: 1.1rem;
}
.sal-form-errors li {
  color: var(--text-colour);
}

.system-profile__estimate {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.4rem;
  padding: 0.2rem 0.55rem;
  font-size: 0.78rem;
  border-radius: var(--border-radius);
  background: color-mix(in srgb, var(--secondary-colour) 14%, var(--card-colour));
  color: var(--text-colour);
}

/* lexxy gem CSS is loaded via <link href="/vendor/lexxy.css"> in the layout
   head (before this file) so its nested @imports resolve — see the layout note.
   This file only holds our own overrides on top of it. */
/* Global highlight color variables (needed for rendered content outside editor) */
:root {
  /* Text color highlights */
  --highlight-1: rgb(136, 118, 38);
  --highlight-2: rgb(185, 94, 6);
  --highlight-3: rgb(207, 0, 0);
  --highlight-4: rgb(216, 28, 170);
  --highlight-5: rgb(144, 19, 254);
  --highlight-6: rgb(5, 98, 185);
  --highlight-7: rgb(17, 138, 15);
  --highlight-8: rgb(148, 82, 22);
  --highlight-9: rgb(102, 102, 102);
  /* Background color highlights */
  --highlight-bg-1: rgba(229, 223, 6, 0.3);
  --highlight-bg-2: rgba(255, 185, 87, 0.3);
  --highlight-bg-3: rgba(255, 118, 118, 0.3);
  --highlight-bg-4: rgba(248, 137, 216, 0.3);
  --highlight-bg-5: rgba(190, 165, 255, 0.3);
  --highlight-bg-6: rgba(124, 192, 252, 0.3);
  --highlight-bg-7: rgba(140, 255, 129, 0.3);
  --highlight-bg-8: rgba(221, 170, 123, 0.3);
  --highlight-bg-9: rgba(200, 200, 200, 0.3);
}

/* Lexxy Rich Text Editor Styling */
lexxy-editor {
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--border-radius) !important;
  font-family: inherit !important;
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow) !important;
}

/* Lexxy editor content area */
lexxy-editor .lexxy-content,
lexxy-editor [contenteditable],
lexxy-editor .ProseMirror,
lexxy-editor .lexxy-editor__content {
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
  font-family: inherit !important;
  padding: 1rem !important;
  min-height: 120px !important;
  border: none !important;
  outline: none !important;
  border-radius: 0 0 var(--border-radius) var(--border-radius) !important;
}

/* Lexxy toolbar styling */
lexxy-toolbar,
.lexxy-toolbar {
  background-color: var(--background-colour) !important;
  border-bottom: 1px solid var(--border-colour) !important;
  border-radius: var(--border-radius) var(--border-radius) 0 0 !important;
  padding: 0.5rem !important;
  display: flex !important;
  gap: 0.25rem !important;
  flex-wrap: wrap !important;
  position: relative !important;
  overflow: visible !important;
}

/* NOTE: the generic `lexxy-toolbar button` base/hover/active rules were removed
   for Lexxy 0.9 — they styled the highlight-dropdown trigger and the format /
   heading dropdown items too, which broke their alignment/layout. The correct
   0.9 rules are `button:not(.lexxy-highlight-button)` (further down), which
   leave the dropdown buttons to their dedicated styling. */
/* Lexxy dropdown menus */
lexxy-editor .lexxy-dropdown,
.lexxy-dropdown {
  background-color: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--border-radius) !important;
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow) !important;
  color: var(--text-colour) !important;
  font-family: inherit !important;
}

/* Lexxy dropdown items */
lexxy-editor .lexxy-dropdown-item,
.lexxy-dropdown-item {
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
  padding: 0.5rem 0.75rem !important;
  border: none !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

lexxy-editor .lexxy-dropdown-item:hover,
.lexxy-dropdown-item:hover {
  background-color: var(--secondary-colour) !important;
  color: var(--tertiary-colour) !important;
}

/* Fix: Override Lexxy's default highlight background
   The gem sets background-color on .lexxy-content__highlight, 
   but we only want background when explicitly set via inline style.
   Using high specificity without !important so inline styles can override */
lexxy-editor .lexxy-editor__content mark,
lexxy-editor .lexxy-editor__content .lexxy-content__highlight,
lexxy-editor .lexxy-content mark,
lexxy-editor .lexxy-content .lexxy-content__highlight {
  background-color: transparent;
}

/* Same fix for rendered content outside the editor (proposal pages, etc.) */
.lexxy-content mark,
.lexxy-content .lexxy-content__highlight,
.action-text-content mark,
.action-text-content .lexxy-content__highlight,
.proposal-content mark,
.proposal-content .lexxy-content__highlight,
.post-content mark,
.post-content .lexxy-content__highlight,
.card-body mark,
.card-body .lexxy-content__highlight,
article mark,
article .lexxy-content__highlight,
section mark,
section .lexxy-content__highlight {
  background-color: transparent;
}

/* Lexxy text formatting */
lexxy-editor strong,
lexxy-editor b {
  color: var(--text-colour) !important;
  font-weight: bold !important;
}

lexxy-editor em,
lexxy-editor i {
  color: var(--text-colour) !important;
  font-style: italic !important;
}

lexxy-editor u {
  color: var(--text-colour) !important;
  text-decoration: underline !important;
}

lexxy-editor a {
  color: var(--secondary-colour) !important;
  text-decoration: underline !important;
}

lexxy-editor a:hover {
  color: var(--button-hover) !important;
}

/* Lexxy lists */
lexxy-editor ul,
lexxy-editor ol {
  color: var(--text-colour) !important;
  padding-left: 1.5rem !important;
}

lexxy-editor li {
  color: var(--text-colour) !important;
  margin-bottom: 0.25rem !important;
}

/* Lexxy blockquotes */
lexxy-editor blockquote {
  border-left: 4px solid var(--secondary-colour) !important;
  background-color: var(--primary-colour) !important;
  color: var(--text-colour) !important;
  padding: 1rem !important;
  margin: 1rem 0 !important;
  border-radius: 0 var(--border-radius) var(--border-radius) 0 !important;
  font-style: italic !important;
}

/* Lexxy code blocks */
lexxy-editor code {
  background-color: var(--background-colour) !important;
  color: var(--text-colour) !important;
  padding: 0.125rem 0.25rem !important;
  border-radius: 3px !important;
  border: 1px solid var(--border-colour) !important;
  font-family: "Monaco", "Menlo", "Ubuntu Mono", monospace !important;
}

lexxy-editor pre {
  background-color: var(--background-colour) !important;
  color: var(--text-colour) !important;
  padding: 1rem !important;
  border-radius: var(--border-radius) !important;
  border: 1px solid var(--border-colour) !important;
  overflow-x: auto !important;
}

/* Lexxy placeholder text */
lexxy-editor .ProseMirror-placeholder::before,
lexxy-editor [data-placeholder]::before {
  color: color-mix(in srgb, var(--text-colour) 50%, transparent) !important;
  font-style: italic !important;
}

/* Lexxy focus states */
lexxy-editor:focus-within {
  border-color: var(--secondary-colour) !important;
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--secondary-colour) 20%, transparent) !important;
}

/* Custom GPT button styling */
lexxy-toolbar button[title="Ask Pericles"],
.lexxy-toolbar button[title="Ask Pericles"],
.lexxy-gpt-button {
  background: linear-gradient(135deg, var(--secondary-colour), color-mix(in srgb, var(--secondary-colour) 80%, transparent)) !important;
  color: var(--tertiary-colour) !important;
  border-color: var(--secondary-colour) !important;
  position: relative !important;
  overflow: hidden !important;
}

lexxy-toolbar button[title="Ask Pericles"]:hover,
.lexxy-toolbar button[title="Ask Pericles"]:hover,
.lexxy-gpt-button:hover {
  background: linear-gradient(135deg, var(--button-hover), color-mix(in srgb, var(--button-hover) 80%, transparent)) !important;
  color: var(--button-hover-text) !important;
  border-color: var(--button-hover) !important;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--secondary-colour) 50%, transparent) !important;
}

lexxy-toolbar button[title="Ask Pericles"]::before,
.lexxy-toolbar button[title="Ask Pericles"]::before,
.lexxy-gpt-button::before {
  content: "" !important;
  position: absolute !important;
  top: -2px !important;
  left: -2px !important;
  right: -2px !important;
  bottom: -2px !important;
  background: linear-gradient(45deg, var(--secondary-colour), var(--button-hover), var(--secondary-colour)) !important;
  border-radius: var(--button-radius) !important;
  z-index: -1 !important;
  opacity: 0 !important;
  transition: opacity 0.3s ease !important;
}

lexxy-toolbar button[title="Ask Pericles"]:hover::before,
.lexxy-toolbar button[title="Ask Pericles"]:hover::before,
.lexxy-gpt-button:hover::before {
  opacity: 1 !important;
}

/* Lexxy Prompt System Styling - Correct selectors */
prompt-popover,
.prompt-popover,
lexxy-prompt-menu,
.lexxy-prompt-menu,
.lexxy-prompt-menu--visible {
  background-color: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--border-radius) !important;
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow) !important;
  color: var(--text-colour) !important;
  font-family: inherit !important;
  z-index: 10000 !important;
  max-height: 300px !important;
  overflow-y: auto !important;
}

/* Prompt menu items */
li.lexxy-prompt-menu__item,
.lexxy-prompt-menu__item {
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
  padding: 0.75rem !important;
  border-bottom: 1px solid var(--border-colour) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  display: flex !important;
  align-items: center !important;
  margin-bottom: 0 !important;
  border-radius: var(--button-radius) !important;
  margin: 0.125rem !important;
}

/* Last item no border */
li.lexxy-prompt-menu__item:last-child,
.lexxy-prompt-menu__item:last-child {
  border-bottom: none !important;
}

/* Hover and selected states */
li.lexxy-prompt-menu__item:hover,
li.lexxy-prompt-menu__item[aria-selected=true],
.lexxy-prompt-menu__item:hover,
.lexxy-prompt-menu__item[aria-selected=true] {
  background-color: var(--secondary-colour) !important;
  color: var(--tertiary-colour) !important;
}

/* Variable menu item styling */
.variable-menu-item {
  padding: 0 !important;
  width: 100% !important;
}

.variable-name {
  font-weight: 500 !important;
  margin-bottom: 2px !important;
  color: inherit !important;
}

.variable-desc {
  font-size: 0.85em !important;
  opacity: 0.8 !important;
  color: inherit !important;
}

/* Variable descriptions on hover */
li.lexxy-prompt-menu__item:hover .variable-desc,
li.lexxy-prompt-menu__item[aria-selected=true] .variable-desc,
.lexxy-prompt-menu__item:hover .variable-desc,
.lexxy-prompt-menu__item[aria-selected=true] .variable-desc {
  opacity: 0.9 !important;
}

/* Toolbar dropdown buttons (highlight, link) */
lexxy-toolbar details.lexxy-editor__toolbar-dropdown,
lexxy-toolbar .lexxy-editor__toolbar-dropdown {
  background-color: transparent !important;
  position: relative !important;
}

lexxy-toolbar details.lexxy-editor__toolbar-dropdown > summary,
lexxy-toolbar .lexxy-editor__toolbar-dropdown > summary {
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--button-radius) !important;
  padding: 0.375rem 0.5rem !important;
  font-size: 0.875rem !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 32px !important;
  height: 32px !important;
  box-shadow: none !important;
  list-style: none !important;
}

lexxy-toolbar details.lexxy-editor__toolbar-dropdown > summary::-webkit-details-marker {
  display: none !important;
}

lexxy-toolbar details.lexxy-editor__toolbar-dropdown > summary:hover {
  background-color: var(--button-hover) !important;
  color: var(--button-hover-text) !important;
  border-color: var(--button-hover) !important;
  transform: translateY(-1px) !important;
}

lexxy-toolbar details.lexxy-editor__toolbar-dropdown[open] > summary {
  background-color: var(--secondary-colour) !important;
  color: var(--tertiary-colour) !important;
  border-color: var(--secondary-colour) !important;
}

/* Toolbar dropdown content panels.
   NOTE: `lexxy-highlight-dropdown` was removed from this group. In Lexxy 0.9 it
   is the toolbar-item WRAPPER (holds the trigger button + an inner
   [data-dropdown-panel]), not the flyout itself. Styling it as an absolute panel
   put a 4px top margin on it, dropping the highlight button below the other
   toolbar buttons. The real flyout ([data-dropdown-panel]) is styled elsewhere. */
lexxy-toolbar .lexxy-editor__toolbar-dropdown-content,
lexxy-link-dialog {
  background-color: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--border-radius) !important;
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow) !important;
  color: var(--text-colour) !important;
  padding: 0.5rem !important;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  z-index: 1000 !important;
  margin-top: 4px !important;
}

lexxy-toolbar .lexxy-editor__toolbar-dropdown-reset {
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--button-radius) !important;
  padding: 0.5rem !important;
  cursor: pointer !important;
  width: 100% !important;
  margin-top: 0.5rem !important;
}

lexxy-toolbar .lexxy-editor__toolbar-dropdown-reset:hover {
  background-color: var(--button-hover) !important;
  color: var(--button-hover-text) !important;
}

/* Highlight color picker styling */
lexxy-highlight-dropdown {
  display: block !important;
}

lexxy-highlight-dropdown [data-button-group] {
  display: flex !important;
  flex-direction: row !important;
  gap: 0.25rem !important;
  flex-wrap: nowrap !important;
  margin-bottom: 0.5rem !important;
}

lexxy-highlight-dropdown .lexxy-highlight-button {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  border-radius: var(--button-radius, 4px) !important;
  border: 1px solid var(--border-colour) !important;
  cursor: pointer !important;
  font-weight: bold !important;
  font-size: 0.75rem !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Text color row - show colored "Aa" text on dark background */
lexxy-highlight-dropdown [data-button-group=color] .lexxy-highlight-button {
  background-color: var(--card-colour) !important;
}

lexxy-highlight-dropdown [data-button-group=color] .lexxy-highlight-button:nth-child(1) {
  color: rgb(136, 118, 38) !important;
}

lexxy-highlight-dropdown [data-button-group=color] .lexxy-highlight-button:nth-child(2) {
  color: rgb(185, 94, 6) !important;
}

lexxy-highlight-dropdown [data-button-group=color] .lexxy-highlight-button:nth-child(3) {
  color: rgb(207, 0, 0) !important;
}

lexxy-highlight-dropdown [data-button-group=color] .lexxy-highlight-button:nth-child(4) {
  color: rgb(216, 28, 170) !important;
}

lexxy-highlight-dropdown [data-button-group=color] .lexxy-highlight-button:nth-child(5) {
  color: rgb(144, 19, 254) !important;
}

lexxy-highlight-dropdown [data-button-group=color] .lexxy-highlight-button:nth-child(6) {
  color: rgb(5, 98, 185) !important;
}

lexxy-highlight-dropdown [data-button-group=color] .lexxy-highlight-button:nth-child(7) {
  color: rgb(17, 138, 15) !important;
}

lexxy-highlight-dropdown [data-button-group=color] .lexxy-highlight-button:nth-child(8) {
  color: rgb(148, 82, 22) !important;
}

lexxy-highlight-dropdown [data-button-group=color] .lexxy-highlight-button:nth-child(9) {
  color: rgb(102, 102, 102) !important;
}

/* Background color row - show colored backgrounds */
lexxy-highlight-dropdown [data-button-group=background-color] .lexxy-highlight-button {
  color: var(--text-colour) !important;
}

lexxy-highlight-dropdown [data-button-group=background-color] .lexxy-highlight-button:nth-child(1) {
  background-color: rgba(229, 223, 6, 0.5) !important;
}

lexxy-highlight-dropdown [data-button-group=background-color] .lexxy-highlight-button:nth-child(2) {
  background-color: rgba(255, 185, 87, 0.5) !important;
}

lexxy-highlight-dropdown [data-button-group=background-color] .lexxy-highlight-button:nth-child(3) {
  background-color: rgba(255, 118, 118, 0.5) !important;
}

lexxy-highlight-dropdown [data-button-group=background-color] .lexxy-highlight-button:nth-child(4) {
  background-color: rgba(248, 137, 216, 0.5) !important;
}

lexxy-highlight-dropdown [data-button-group=background-color] .lexxy-highlight-button:nth-child(5) {
  background-color: rgba(190, 165, 255, 0.5) !important;
}

lexxy-highlight-dropdown [data-button-group=background-color] .lexxy-highlight-button:nth-child(6) {
  background-color: rgba(124, 192, 252, 0.5) !important;
}

lexxy-highlight-dropdown [data-button-group=background-color] .lexxy-highlight-button:nth-child(7) {
  background-color: rgba(140, 255, 129, 0.5) !important;
}

lexxy-highlight-dropdown [data-button-group=background-color] .lexxy-highlight-button:nth-child(8) {
  background-color: rgba(221, 170, 123, 0.5) !important;
}

lexxy-highlight-dropdown [data-button-group=background-color] .lexxy-highlight-button:nth-child(9) {
  background-color: rgba(200, 200, 200, 0.5) !important;
}

/* Selected state */
lexxy-highlight-dropdown .lexxy-highlight-button[aria-pressed=true] {
  outline: 2px solid var(--secondary-colour) !important;
  outline-offset: 1px !important;
}

/* Horizontal divider styling - override Lexxy defaults */
lexxy-editor figure.horizontal-divider,
lexxy-editor .horizontal-divider,
lexxy-editor .lexxy-editor__content figure.horizontal-divider {
  all: unset !important;
  display: block !important;
  margin: 0.5rem 0 !important;
  padding: 0 !important;
  width: 100% !important;
  height: auto !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

lexxy-editor figure.horizontal-divider hr,
lexxy-editor .horizontal-divider hr,
lexxy-editor .lexxy-editor__content figure.horizontal-divider hr,
lexxy-editor hr:not([class]) {
  all: unset !important;
  display: block !important;
  width: 100% !important;
  height: 2px !important;
  background-color: var(--border-colour, #555) !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Table styling */
lexxy-editor table {
  border-collapse: collapse !important;
  width: 100% !important;
  margin: 1rem 0 !important;
  background-color: transparent !important;
}

lexxy-editor table th,
lexxy-editor table td {
  border: 1px solid var(--border-colour) !important;
  padding: 0.75rem !important;
  text-align: left !important;
  background-color: transparent !important;
  color: var(--text-colour) !important;
}

/* Header cell styling (when toggled on via the table menu) */
lexxy-editor table th,
lexxy-editor table td.lexxy-content__table-cell--header {
  background-color: color-mix(in srgb, var(--secondary-colour) 15%, transparent) !important;
  font-weight: 600 !important;
}

/* Hover effect for non-header cells */
lexxy-editor table tr:hover td:not(.lexxy-content__table-cell--header),
lexxy-editor table tr:hover th:not(.lexxy-content__table-cell--header) {
  background-color: color-mix(in srgb, var(--secondary-colour) 8%, transparent) !important;
}

/* Table cell selection */
lexxy-editor table td.table-cell--selected,
lexxy-editor table th.table-cell--selected,
lexxy-editor table td.lexxy-content__table-cell--selected,
lexxy-editor table th.lexxy-content__table-cell--selected {
  background-color: color-mix(in srgb, var(--secondary-colour) 25%, transparent) !important;
  outline: 2px solid var(--secondary-colour) !important;
  outline-offset: -2px !important;
}

/* Table handle buttons container - completely transparent */
.lexxy-table-handle-buttons,
lexxy-editor .lexxy-table-handle-buttons {
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Table control panel styling */
.lexxy-table-control,
lexxy-editor .lexxy-table-control {
  background-color: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--button-radius) !important;
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow) !important;
  color: var(--text-colour) !important;
}

/* Table control text and inputs - fix white text on white background */
lexxy-editor .lexxy-table-control,
lexxy-editor .lexxy-table-control *,
.lexxy-table-control,
.lexxy-table-control * {
  color: var(--text-colour) !important;
}

.lexxy-table-control__button {
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: none !important;
  padding: 0.25rem 0.5rem !important;
  cursor: pointer !important;
}

.lexxy-table-control__button:hover {
  background-color: var(--button-hover) !important;
  color: var(--button-hover-text) !important;
}

/* Table control summary (dropdown trigger) icon */
lexxy-editor .lexxy-table-control summary,
.lexxy-table-control summary,
lexxy-editor .lexxy-table-control details > summary,
.lexxy-table-control details > summary {
  color: var(--text-colour) !important;
}

lexxy-editor .lexxy-table-control summary svg,
.lexxy-table-control summary svg,
lexxy-editor .lexxy-table-control details > summary svg,
.lexxy-table-control details > summary svg {
  color: var(--text-colour) !important;
  fill: var(--text-colour) !important;
  stroke: var(--text-colour) !important;
}

.lexxy-table-control__more-menu,
.lexxy-table-control__more-menu-section {
  background-color: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--button-radius) !important;
  color: var(--text-colour) !important;
}

/* More menu dropdown button styling */
.lexxy-table-control__more-menu button,
.lexxy-table-control__more-menu-section button {
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: none !important;
  width: 100% !important;
  text-align: left !important;
  padding: 0.35rem 0.5rem !important;
  cursor: pointer !important;
}

.lexxy-table-control__more-menu button:hover,
.lexxy-table-control__more-menu-section button:hover {
  background-color: var(--button-hover) !important;
  color: var(--button-hover-text) !important;
}

.lexxy-table-control__more-menu button:hover span,
.lexxy-table-control__more-menu-section button:hover span,
.lexxy-table-control__more-menu button:hover *,
.lexxy-table-control__more-menu-section button:hover * {
  color: var(--button-hover-text) !important;
}

/* ============================================
   Rendered Content Tables (outside editor)
   These styles apply to tables in Lexxy/ActionText 
   content areas, proposals, and other views
   ============================================ */
/* Lexxy content wrapper */
.lexxy-content table,
.action-text-content table,
[class*=rich-text] table,
.proposal-content table,
.pdf-content table,
.post-content table {
  border-collapse: collapse !important;
  width: 100% !important;
  margin: 1rem 0 !important;
}

.lexxy-content table th,
.lexxy-content table td,
.action-text-content table th,
.action-text-content table td,
[class*=rich-text] table th,
[class*=rich-text] table td,
.proposal-content table th,
.proposal-content table td,
.pdf-content table th,
.pdf-content table td,
.post-content table th,
.post-content table td {
  border: 1px solid var(--border-colour, #dee2e6) !important;
  padding: 0.75rem !important;
  text-align: left !important;
  vertical-align: top !important;
}

/* Header cells in rendered content */
.lexxy-content table th,
.lexxy-content table td.lexxy-content__table-cell--header,
.action-text-content table th,
.action-text-content table td.lexxy-content__table-cell--header,
[class*=rich-text] table th,
[class*=rich-text] table td.lexxy-content__table-cell--header,
.proposal-content table th,
.proposal-content table td.lexxy-content__table-cell--header,
.pdf-content table th,
.pdf-content table td.lexxy-content__table-cell--header,
.post-content table th,
.post-content table td.lexxy-content__table-cell--header {
  background-color: color-mix(in srgb, var(--secondary-colour, #6c757d) 15%, transparent) !important;
  font-weight: 600 !important;
}

/* Generic table styling for any table in content areas */
.card-body table:not(.table),
article table,
section table:not(.table),
.content table:not(.table) {
  border-collapse: collapse !important;
  width: 100% !important;
  margin: 1rem 0 !important;
}

.card-body table:not(.table) th,
.card-body table:not(.table) td,
article table th,
article table td,
section table:not(.table) th,
section table:not(.table) td,
.content table:not(.table) th,
.content table:not(.table) td {
  border: 1px solid var(--border-colour, #dee2e6) !important;
  padding: 0.75rem !important;
  text-align: left !important;
  vertical-align: top !important;
}

/* Header cells in generic content areas */
.card-body table:not(.table) th,
.card-body table:not(.table) td.lexxy-content__table-cell--header,
article table th,
article table td.lexxy-content__table-cell--header,
section table:not(.table) th,
section table:not(.table) td.lexxy-content__table-cell--header,
.content table:not(.table) th,
.content table:not(.table) td.lexxy-content__table-cell--header {
  background-color: color-mix(in srgb, var(--secondary-colour, #6c757d) 15%, transparent) !important;
  font-weight: 600 !important;
}

/* Horizontal divider in rendered content */
.lexxy-content figure.horizontal-divider,
.action-text-content figure.horizontal-divider,
.post-content figure.horizontal-divider,
.proposal-content figure.horizontal-divider,
.pdf-content figure.horizontal-divider {
  margin: 0.5rem 0 !important;
  padding: 0 !important;
}

.lexxy-content hr,
.action-text-content hr,
.post-content hr,
.proposal-content hr,
.pdf-content hr {
  margin: 0 !important;
  border: none !important;
  border-top: 2px solid var(--border-colour, #dee2e6) !important;
  height: 0 !important;
  display: block !important;
}

/* ============================================
   Rendered Rich Text Content - Text Color
   Ensures rich text content inherits the theme
   text color when no highlight is applied
   ============================================ */
.lexxy-content,
.action-text-content,
.post-content,
.proposal-content,
.pdf-content,
[class*=rich-text] {
  color: var(--text-colour, inherit);
}

/* Ensure all text elements within rendered content inherit the text color */
.lexxy-content p,
.lexxy-content span:not([style*=color]),
.lexxy-content div:not([style*=color]),
.lexxy-content li,
.lexxy-content ul,
.lexxy-content ol,
.lexxy-content blockquote,
.lexxy-content strong,
.lexxy-content em,
.lexxy-content u,
.lexxy-content b,
.lexxy-content i,
.action-text-content p,
.action-text-content span:not([style*=color]),
.action-text-content div:not([style*=color]),
.action-text-content li,
.action-text-content ul,
.action-text-content ol,
.action-text-content blockquote,
.action-text-content strong,
.action-text-content em,
.action-text-content u,
.action-text-content b,
.action-text-content i,
.post-content p,
.post-content span:not([style*=color]),
.post-content div:not([style*=color]),
.post-content li,
.post-content ul,
.post-content ol,
.post-content blockquote,
.post-content strong,
.post-content em,
.post-content u,
.post-content b,
.post-content i,
.proposal-content p,
.proposal-content span:not([style*=color]),
.proposal-content div:not([style*=color]),
.proposal-content li,
.proposal-content ul,
.proposal-content ol,
.proposal-content blockquote,
.proposal-content strong,
.proposal-content em,
.proposal-content u,
.proposal-content b,
.proposal-content i {
  color: inherit;
}

/* Links in rendered content - use theme accent color (exclude UI buttons) */
.lexxy-content a:not(.button-13):not(.mdui-icon):not(.btn):not([class*=button]),
.action-text-content a:not(.button-13):not(.mdui-icon):not(.btn):not([class*=button]),
.post-content a:not(.button-13):not(.mdui-icon):not(.btn):not([class*=button]),
.proposal-content a:not(.button-13):not(.mdui-icon):not(.btn):not([class*=button]) {
  color: var(--secondary-colour, #0066cc);
}

.lexxy-content a:not(.button-13):not(.mdui-icon):not(.btn):not([class*=button]):hover,
.action-text-content a:not(.button-13):not(.mdui-icon):not(.btn):not([class*=button]):hover,
.post-content a:not(.button-13):not(.mdui-icon):not(.btn):not([class*=button]):hover,
.proposal-content a:not(.button-13):not(.mdui-icon):not(.btn):not([class*=button]):hover {
  color: var(--button-hover, #0052a3);
}

/* ============================================================
   Lexxy 0.9 toolbar, prompt-menu, variable chips & content styling
   ported from powerlily. Vars resolve via _styles.html.erb aliases.
   ============================================================ */
lexxy-editor,
lexxy-toolbar {
  --lexxy-color-ink-lighter: var(--border-colour);
  --lexxy-color-ink-lightest: var(--background-colour);
  --lexxy-color-canvas: var(--card-colour);
  --lexxy-color-text: var(--text-colour);
  --lexxy-color-accent-dark: var(--secondary-colour);
  --lexxy-color-accent-light: var(--border-colour);
  --lexxy-color-selected: color-mix(in srgb, var(--secondary-colour) 15%, transparent);
  --lexxy-color-selected-hover: var(--border-colour);
  --lexxy-focus-ring-color: var(--secondary-colour);
}

lexxy-toolbar .lexxy-editor__toolbar-button.lexxy-editor__toolbar-group-end::after {
  display: none !important;
}

lexxy-toolbar .lexxy-editor__toolbar-button i.fa-duotone,
lexxy-toolbar .lexxy-editor__toolbar-button svg.svg-inline--fa,
lexxy-toolbar .lexxy-gpt-button i.fa-duotone,
lexxy-toolbar .lexxy-gpt-button svg.svg-inline--fa {
  font-size: 0.95rem !important;
  --fa-secondary-opacity: 0.4;
  /* The editor's `lexxy-editor i { font-style: italic }` rule (for <em>/<i>
     text) would faux-italicise the webfont icon glyphs — keep them upright. */
  font-style: normal !important;
  pointer-events: none !important;
}

lexxy-toolbar button:not(.lexxy-highlight-button),
.lexxy-toolbar button:not(.lexxy-highlight-button),
lexxy-editor button[data-lexxy-action],
.lexxy-button {
  background-color: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--button-radius) !important;
  padding: 0.375rem 0.5rem !important;
  font-size: 0.875rem !important;
  font-family: inherit !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 32px !important;
  height: 32px !important;
  box-shadow: none !important;
}

lexxy-toolbar button:not(.lexxy-highlight-button):hover,
.lexxy-toolbar button:not(.lexxy-highlight-button):hover,
lexxy-editor button[data-lexxy-action]:hover,
.lexxy-button:hover {
  background-color: var(--button-hover) !important;
  color: var(--button-hover-text) !important;
  border-color: var(--button-hover) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 4px color-mix(in srgb, var(--boxshadow) 50%, transparent) !important;
}

lexxy-toolbar button:not(.lexxy-highlight-button):active,
lexxy-toolbar button:not(.lexxy-highlight-button)[aria-pressed=true],
.lexxy-toolbar button:not(.lexxy-highlight-button):active,
.lexxy-toolbar button:not(.lexxy-highlight-button)[aria-pressed=true],
lexxy-editor button[data-lexxy-action]:active,
.lexxy-button:active {
  background-color: var(--secondary-colour) !important;
  color: var(--tertiary-colour) !important;
  border-color: var(--secondary-colour) !important;
  transform: translateY(0) !important;
}

.trix-content mark,
.trix-content .lexxy-content__highlight,
.action-text-content mark,
.action-text-content .lexxy-content__highlight,
.lexxy-content mark,
.lexxy-content .lexxy-content__highlight,
.proposal-content mark,
.proposal-content .lexxy-content__highlight,
.post-content mark,
.post-content .lexxy-content__highlight,
.card-body mark,
.card-body .lexxy-content__highlight,
article mark,
article .lexxy-content__highlight,
section mark,
section .lexxy-content__highlight {
  background-color: transparent;
}

lexxy-toolbar button[title="Ask Pericles"],
.lexxy-toolbar button[title="Ask Pericles"],
.lexxy-gpt-button {
  background: linear-gradient(135deg, var(--secondary-colour), color-mix(in srgb, var(--secondary-colour) 80%, transparent)) !important;
  color: var(--tertiary-colour) !important;
  border-color: var(--secondary-colour) !important;
  position: relative !important;
  overflow: hidden !important;
}

lexxy-toolbar button[title="Ask Pericles"]:hover,
.lexxy-toolbar button[title="Ask Pericles"]:hover,
.lexxy-gpt-button:hover {
  background: linear-gradient(135deg, var(--button-hover), color-mix(in srgb, var(--button-hover) 80%, transparent)) !important;
  color: var(--button-hover-text) !important;
  border-color: var(--button-hover) !important;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--secondary-colour) 50%, transparent) !important;
}

lexxy-toolbar button[title="Ask Pericles"]::before,
.lexxy-toolbar button[title="Ask Pericles"]::before,
.lexxy-gpt-button::before {
  content: "" !important;
  position: absolute !important;
  top: -2px !important;
  left: -2px !important;
  right: -2px !important;
  bottom: -2px !important;
  background: linear-gradient(45deg, var(--secondary-colour), var(--button-hover), var(--secondary-colour)) !important;
  border-radius: var(--button-radius) !important;
  z-index: -1 !important;
  opacity: 0 !important;
  transition: opacity 0.3s ease !important;
}

lexxy-toolbar button[title="Ask Pericles"]:hover::before,
.lexxy-toolbar button[title="Ask Pericles"]:hover::before,
.lexxy-gpt-button:hover::before {
  opacity: 1 !important;
}

li.lexxy-prompt-menu__item:hover,
.lexxy-prompt-menu__item:hover {
  background-color: color-mix(in srgb, var(--secondary-colour) 12%, transparent) !important;
}

li.lexxy-prompt-menu__item[aria-selected=true],
.lexxy-prompt-menu__item[aria-selected=true] {
  background-color: var(--secondary-colour) !important;
  color: var(--secondary-text) !important;
  border-left-color: var(--secondary-text) !important;
}

li.lexxy-prompt-menu__item[aria-selected=true] .variable-desc,
.lexxy-prompt-menu__item[aria-selected=true] .variable-desc {
  opacity: 0.95 !important;
}

lexxy-toolbar lexxy-toolbar-dropdown,
lexxy-toolbar lexxy-highlight-dropdown,
lexxy-toolbar lexxy-link-dropdown {
  /* Don't set `display` here — the gem hides the overflow ("show more")
     dropdown with display:none until the toolbar actually overflows, and an
     !important display would force that empty button to always show. */
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
}

lexxy-toolbar [data-dropdown-panel],
lexxy-toolbar .lexxy-editor__toolbar-dropdown-content {
  background-color: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: var(--border-radius) !important;
  box-shadow: var(--h-offset) var(--v-offset) var(--blur-radius) var(--boxshadow) !important;
  color: var(--text-colour) !important;
  padding: 0.5rem !important;
}

lexxy-toolbar [data-dropdown-trigger][aria-expanded=true] {
  background-color: var(--secondary-colour) !important;
  color: var(--tertiary-colour) !important;
  border-color: var(--secondary-colour) !important;
}

lexxy-highlight-dropdown [data-dropdown-panel] [data-button-group],
lexxy-highlight-dropdown [data-button-group] {
  display: flex !important;
  flex-direction: row !important;
  gap: 0.25rem !important;
  flex-wrap: nowrap !important;
  margin-bottom: 0.5rem !important;
}

.trix-content table,
.action-text-content table,
.lexxy-content table,
[class*=rich-text] table,
.proposal-content table,
.pdf-content table,
.post-content table {
  border-collapse: collapse !important;
  width: 100% !important;
  margin: 1rem 0 !important;
}

.trix-content table th,
.trix-content table td,
.action-text-content table th,
.action-text-content table td,
.lexxy-content table th,
.lexxy-content table td,
[class*=rich-text] table th,
[class*=rich-text] table td,
.proposal-content table th,
.proposal-content table td,
.pdf-content table th,
.pdf-content table td,
.post-content table th,
.post-content table td {
  border: 1px solid var(--border-colour, #dee2e6) !important;
  padding: 0.75rem !important;
  text-align: left !important;
  vertical-align: top !important;
}

.trix-content table th,
.trix-content table td.lexxy-content__table-cell--header,
.action-text-content table th,
.action-text-content table td.lexxy-content__table-cell--header,
.lexxy-content table th,
.lexxy-content table td.lexxy-content__table-cell--header,
[class*=rich-text] table th,
[class*=rich-text] table td.lexxy-content__table-cell--header,
.proposal-content table th,
.proposal-content table td.lexxy-content__table-cell--header,
.pdf-content table th,
.pdf-content table td.lexxy-content__table-cell--header,
.post-content table th,
.post-content table td.lexxy-content__table-cell--header {
  background-color: color-mix(in srgb, var(--secondary-colour, #6c757d) 15%, transparent) !important;
  font-weight: 600 !important;
}

.trix-content .attachment-gallery,
.action-text-content .attachment-gallery,
.post-content .attachment-gallery,
.proposal-content .attachment-gallery,
.pdf-content .attachment-gallery {
  display: block !important;
  text-align: center !important;
}

.trix-content .attachment-gallery .attachment,
.action-text-content .attachment-gallery .attachment,
.post-content .attachment-gallery .attachment,
.proposal-content .attachment-gallery .attachment,
.pdf-content .attachment-gallery .attachment {
  display: inline-flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  inline-size: calc(33.333% - 0.8ch) !important;
  vertical-align: top !important;
}

.trix-content .attachment-gallery.attachment-gallery--2 .attachment,
.trix-content .attachment-gallery.attachment-gallery--4 .attachment,
.action-text-content .attachment-gallery.attachment-gallery--2 .attachment,
.action-text-content .attachment-gallery.attachment-gallery--4 .attachment,
.post-content .attachment-gallery.attachment-gallery--2 .attachment,
.post-content .attachment-gallery.attachment-gallery--4 .attachment,
.proposal-content .attachment-gallery.attachment-gallery--2 .attachment,
.proposal-content .attachment-gallery.attachment-gallery--4 .attachment,
.pdf-content .attachment-gallery.attachment-gallery--2 .attachment,
.pdf-content .attachment-gallery.attachment-gallery--4 .attachment {
  inline-size: calc(50% - 0.8ch) !important;
}

.trix-content .attachment-gallery .attachment img,
.action-text-content .attachment-gallery .attachment img,
.post-content .attachment-gallery .attachment img,
.proposal-content .attachment-gallery .attachment img,
.pdf-content .attachment-gallery .attachment img {
  max-width: 100% !important;
  height: auto !important;
}

.trix-content figure.horizontal-divider,
.action-text-content figure.horizontal-divider,
.post-content figure.horizontal-divider,
.proposal-content figure.horizontal-divider,
.pdf-content figure.horizontal-divider {
  margin: 0.5rem 0 !important;
  padding: 0 !important;
}

.trix-content hr,
.action-text-content hr,
.post-content hr,
.proposal-content hr,
.pdf-content hr {
  margin: 0 !important;
  border: none !important;
  border-top: 2px solid var(--border-colour, #dee2e6) !important;
  height: 0 !important;
  display: block !important;
}

.proposal-variable-chip {
  display: inline-block;
  padding: 0.05em 0.55em;
  border-radius: 999px;
  background-color: color-mix(in srgb, var(--secondary-colour) 14%, transparent);
  color: var(--secondary-colour);
  border: 1px solid color-mix(in srgb, var(--secondary-colour) 35%, transparent);
  font-weight: 600;
  font-size: 0.85em;
  line-height: 1.5;
  white-space: nowrap;
  vertical-align: baseline;
}

.proposal-variable-chip .pv-label {
  display: none;
}

.proposal-variable-chip .pv-token {
  display: inline;
}

lexxy-editor .proposal-variable-chip .pv-label {
  display: inline;
}

lexxy-editor .proposal-variable-chip .pv-token {
  display: none;
}

lexxy-editor action-text-attachment[content-type^="application/vnd.wattsapp.variable"] {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  vertical-align: baseline !important;
}

lexxy-editor action-text-attachment[content-type^="application/vnd.wattsapp.variable"] lexxy-node-delete-button {
  display: none !important;
}

/* Format / heading dropdown menu items are full-width [icon] [label] rows.
   Our generic `lexxy-toolbar button:not(.lexxy-highlight-button)` rule (above)
   sets `min-width:32px; height:32px; justify-content:center` to make the main
   toolbar buttons square icon tiles — but that also matches these menu buttons,
   overriding the flex default `min-width:auto` so they shrink below their label
   and the text wraps vertically. Restore content-based sizing for menu items. */
lexxy-toolbar .lexxy-editor__toolbar-dropdown-list button,
.lexxy-toolbar .lexxy-editor__toolbar-dropdown-list button {
  min-width: -moz-max-content !important;
  min-width: max-content !important;
  width: 100% !important;
  height: auto !important;
  min-height: 32px !important;
  justify-content: flex-start !important;
  white-space: nowrap !important;
}

/* Modern Self Quote System Styling */
/* Uses dynamic CSS variables from _styles.html.erb */
#modern-self-quote-app {
  font-family: "Quicksand", sans-serif !important;
  line-height: 1.6;
  color: var(--text-colour) !important;
  background: linear-gradient(135deg, var(--background-colour) 0%, var(--card-colour) 100%) !important;
  min-height: 100vh;
  padding: 0;
  margin: 0;
}

/* Progress Bar */
.progress-container {
  position: sticky;
  top: var(--progress-sticky-navbar-offset, 110px);
  z-index: 99;
  padding: 0 2%;
}
@media (max-width: 768px) {
  .progress-container {
    padding: 0 1%;
  }
}

.progress-bar-modern {
  max-width: 1000px;
  margin: 0 auto;
  padding: 1.5rem 2rem;
  background: var(--card-colour) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--border-colour) !important;
  border-radius: 50px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  position: relative;
  transition: all 0.3s ease;
  animation: floatProgressBar 6s ease-in-out infinite;
}
.progress-bar-modern:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
@media (max-width: 768px) {
  .progress-bar-modern {
    padding: 1rem 1.5rem;
    border-radius: 40px;
  }
}

@keyframes floatProgressBar {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-2px);
  }
}
.progress-steps {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  z-index: 2;
  gap: 0.5rem;
}

.step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  flex: 1;
  text-decoration: none;
}

.step-circle {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--background-colour) !important;
  color: var(--text-colour) !important;
  border: 2px solid var(--border-colour) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 0.9rem;
  transition: all 0.3s ease;
}

.step.active .step-circle {
  background: var(--button-colour) !important;
  color: var(--button-text) !important;
  border-color: var(--button-colour) !important;
}

.step.completed .step-circle {
  background: var(--button-colour) !important;
  color: var(--button-text) !important;
  border-color: var(--button-colour) !important;
}

.step span {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-colour) !important;
  white-space: nowrap;
}

.step.active span,
.step.completed span {
  color: var(--text-colour) !important;
  font-weight: 600;
}

.progress-line {
  position: absolute;
  top: calc(1.5rem + 18px);
  left: 4rem;
  right: 4rem;
  height: 2px;
  background: var(--border-colour) !important;
  z-index: 1;
}
@media (max-width: 768px) {
  .progress-line {
    top: calc(1rem + 14px);
    left: 3rem;
    right: 3rem;
  }
}

.progress-fill {
  height: 100%;
  background: var(--button-colour) !important;
  transition: width 0.5s ease;
}

/* Main Content */
.modern-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 2rem 3rem;
}
@media (max-width: 768px) {
  .modern-content {
    padding: 1.5rem 1rem 2rem;
  }
}

.stage-container {
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 16px;
  box-shadow: var(--box-shadow) !important;
  overflow: hidden;
  min-height: 600px;
}
.stage-container.energy-stage, .stage-container.equipment-stage {
  padding: 2rem;
}
@media (max-width: 768px) {
  .stage-container.energy-stage, .stage-container.equipment-stage {
    padding: 1.25rem;
  }
}

/* Welcome Stage */
.welcome-stage {
  text-align: center;
}

.hero-section {
  padding: 4rem 3rem;
}

.hero-title {
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: var(--text-colour) !important;
}

.hero-subtitle {
  font-size: 1.25rem;
  color: var(--text-colour) !important;
  opacity: 0.8;
  margin-bottom: 3rem;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 2rem;
  margin-bottom: 3rem;
}

.feature-card {
  padding: 2rem;
  border-radius: 12px;
  background: var(--background-colour) !important;
  border: 1px solid var(--border-colour) !important;
  transition: all 0.3s ease;
}

.feature-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--box-shadow) !important;
  border-color: var(--button-colour) !important;
}

.feature-icon {
  font-size: 2.5rem;
  margin-bottom: 1rem;
}

.feature-card h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--text-colour) !important;
}

.feature-card p {
  color: var(--text-colour) !important;
  opacity: 0.8;
  font-size: 0.95rem;
}

.cta-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--button-colour) !important;
  color: var(--button-text) !important;
  padding: 1rem 2rem;
  border-radius: 50px;
  text-decoration: none;
  font-weight: 600;
  font-size: 1.1rem;
  transition: all 0.3s ease;
  box-shadow: var(--box-shadow) !important;
  border: 1px solid var(--border-colour) !important;
}

.cta-button:hover {
  transform: translateY(-2px);
  box-shadow: var(--box-shadow) !important;
  color: var(--button-text) !important;
  text-decoration: none;
  opacity: 0.9;
}

.arrow {
  transition: transform 0.3s ease;
}

.cta-button:hover .arrow {
  transform: translateX(4px);
}

/* Energy Stage */
.stage-header {
  padding: 3rem 3rem 2rem;
  text-align: center;
  border-bottom: 1px solid var(--border-colour) !important;
}

.stage-header h2 {
  font-size: 2.25rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  color: var(--text-colour) !important;
}

.stage-header p {
  font-size: 1.1rem;
  color: var(--text-colour) !important;
  opacity: 0.8;
}

.content-grid {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3rem;
  padding: 3rem;
}

.config-section {
  margin-bottom: 2rem;
}

.config-section h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: var(--text-colour) !important;
}

/* Energy Stage Two Column Layout */
.energy-two-column {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 2rem;
  align-items: start;
}
@media (max-width: 1024px) {
  .energy-two-column {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

.energy-inputs-column {
  min-width: 0;
}

.energy-charts-column {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: sticky;
  top: 180px;
}
@media (max-width: 1024px) {
  .energy-charts-column {
    position: static;
  }
}

/* kWh Input Styles */
.kwh-input-container {
  margin-bottom: 1rem;
}

.kwh-input-group {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: var(--card-colour);
  border: 2px solid var(--border-colour);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  transition: border-color 0.2s ease;
}
.kwh-input-group:focus-within {
  border-color: var(--button-colour);
}

.kwh-input {
  flex: 1;
  border: none;
  background: transparent;
  font-size: 2rem;
  font-weight: 600;
  color: var(--text-colour);
  text-align: center;
  max-width: 200px;
}
.kwh-input:focus {
  outline: none;
}
.kwh-input::-moz-placeholder {
  color: var(--text-muted);
  opacity: 0.5;
}
.kwh-input::placeholder {
  color: var(--text-muted);
  opacity: 0.5;
}
.kwh-input {
  /* Remove spinner buttons */
  -moz-appearance: textfield;
}
.kwh-input::-webkit-outer-spin-button, .kwh-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.kwh-unit {
  font-size: 1rem;
  color: var(--text-muted);
  font-weight: 500;
}

.kwh-hint {
  margin-top: 0.5rem;
  font-size: 0.8rem;
  color: var(--text-muted);
  display: flex;
  align-items: center;
}

/* Rate Info Card Enhancements */
.rate-info-card {
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
  padding: 1.25rem;
}
.rate-info-card h4 {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: var(--text-colour);
}

.tou-badge-large {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
  color: white;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
}

.utility-tou-badge {
  display: inline-flex;
  align-items: center;
  margin-top: 0.5rem;
  padding: 0.25rem 0.5rem;
  background: color-mix(in srgb, #10b981 15%, transparent);
  color: #10b981;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 600;
}

.rate-periods-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.rate-period-item {
  padding: 0.75rem;
  background: var(--background-colour);
  border-radius: 8px;
  border-left: 3px solid var(--button-colour);
}

.period-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.25rem;
}

.period-name {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--text-colour);
}

.period-rate {
  font-weight: 700;
  color: var(--button-colour);
}

.period-times {
  font-size: 0.8rem;
  color: var(--text-muted);
}

.period-days {
  opacity: 0.7;
}

/* Chart Card */
.chart-card {
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
  padding: 1.25rem;
}
.chart-card h4 {
  font-size: 0.9rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: var(--text-colour);
}

/* Fixed chart container to prevent width blowout */
.chart-container-fixed {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}
.chart-container-fixed canvas {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
}

/* Tiny toggle buttons */
.btn-tiny {
  padding: 2px 8px;
  font-size: 10px;
  border: 1px solid var(--border-colour);
  border-radius: 4px;
  background: transparent;
  color: var(--text-colour);
  cursor: pointer;
  transition: all 0.2s ease;
  opacity: 0.6;
}
.btn-tiny:hover {
  border-color: var(--button-colour);
  color: var(--text-colour);
  opacity: 1;
}
.btn-tiny.active, .btn-tiny[data-selected=true] {
  background: var(--button-colour);
  border-color: var(--button-colour);
  color: var(--button-text);
  opacity: 1;
}

/* Profile selectors */
.profile-selectors {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 480px) {
  .profile-selectors {
    grid-template-columns: 1fr;
  }
}

/* Compact Monthly Input Grid */
.monthly-grid-compact {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
}
@media (max-width: 768px) {
  .monthly-grid-compact {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 480px) {
  .monthly-grid-compact {
    grid-template-columns: repeat(2, 1fr);
  }
}

.month-input-group .month-prepend {
  font-size: 0.75rem;
  font-weight: 600;
  min-width: 40px;
  justify-content: center;
  background: var(--background-colour) !important;
  border-color: var(--border-colour) !important;
  color: var(--text-colour) !important;
}
.month-input-group .month-field-compact {
  font-size: 0.85rem;
  text-align: right;
  padding: 0.25rem 0.5rem;
  background: var(--card-colour) !important;
  border-color: var(--border-colour) !important;
  color: var(--text-colour) !important;
}
.month-input-group .month-field-compact:focus {
  border-color: var(--button-colour) !important;
  box-shadow: none;
}
.month-input-group .month-field-compact {
  /* Remove spinner buttons */
  -moz-appearance: textfield;
}
.month-input-group .month-field-compact::-webkit-outer-spin-button, .month-input-group .month-field-compact::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.month-input-group .month-suffix {
  font-size: 0.7rem;
  background: var(--background-colour) !important;
  border-color: var(--border-colour) !important;
  color: var(--text-muted) !important;
  padding: 0.25rem 0.4rem;
}

/* Utility Grid */
.utility-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}

.utility-card {
  position: relative;
  border: 2px solid var(--border-colour) !important;
  border-radius: 12px;
  padding: 1.5rem;
  cursor: pointer;
  transition: all 0.3s ease;
  background: var(--card-colour) !important;
}

.utility-card:hover {
  border-color: var(--button-colour) !important;
  box-shadow: var(--box-shadow) !important;
}

.utility-card.selected {
  border-color: var(--button-colour) !important;
  background: var(--background-colour) !important;
  box-shadow: var(--box-shadow) !important;
}

.utility-radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.utility-label {
  display: block;
  cursor: pointer;
}

.utility-name {
  font-weight: 600;
  margin-bottom: 0.25rem;
  color: var(--text-colour) !important;
}

.utility-rate {
  color: var(--text-colour) !important;
  opacity: 0.7;
  font-size: 0.9rem;
}

/* Bill Input */
.bill-input-container {
  max-width: 400px;
}

.bill-input-group {
  display: flex;
  align-items: center;
  background: var(--card-colour) !important;
  border: 2px solid var(--border-colour) !important;
  border-radius: 12px;
  padding: 0.75rem 1rem;
  font-size: 1.25rem;
  margin-bottom: 1rem;
  transition: border-color 0.3s ease;
}

.bill-input-group:focus-within {
  border-color: var(--button-colour) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--button-colour) 10%, transparent) !important;
}

.currency-symbol {
  color: var(--text-colour) !important;
  opacity: 0.7;
  margin-right: 0.5rem;
  font-weight: 600;
}

.bill-input {
  border: none;
  outline: none;
  flex: 1;
  font-size: 1.25rem;
  font-weight: 600;
  background: transparent !important;
  color: var(--text-colour) !important;
}

.period {
  color: var(--text-colour) !important;
  opacity: 0.7;
  margin-left: 0.5rem;
}

.bill-preview {
  text-align: center;
  padding: 1rem;
  background: var(--background-colour) !important;
  border-radius: 8px;
  border: 1px solid var(--border-colour) !important;
}

.usage-amount {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-colour) !important;
}

.usage-unit {
  color: var(--text-colour) !important;
  opacity: 0.7;
  margin-left: 0.25rem;
}

.usage-label {
  color: var(--text-colour) !important;
  opacity: 0.7;
  font-size: 0.9rem;
  margin-top: 0.25rem;
}

/* Advanced Section */
.advanced-section {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.advanced-section.show {
  max-height: 1000px;
}

.monthly-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.month-input {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.month-label {
  font-weight: 500;
  font-size: 0.9rem;
  color: var(--text-colour) !important;
}

.month-field {
  border: 1px solid var(--border-colour) !important;
  border-radius: 6px;
  padding: 0.5rem;
  font-size: 0.9rem;
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
}

.month-field:focus {
  border-color: var(--button-colour) !important;
  outline: none;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--button-colour) 10%, transparent) !important;
}

.unit {
  font-size: 0.8rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
  text-align: center;
}

/* Preset Buttons */
.preset-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.preset-buttons .preset-label {
  font-size: 0.85rem;
  color: var(--text-colour);
  opacity: 0.6;
  margin-right: 0.5rem;
}

.preset-btn {
  padding: 4px 12px;
  font-size: 11px;
  border: 1px solid var(--border-colour);
  border-radius: 20px;
  background: var(--card-colour);
  color: var(--text-colour);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}
.preset-btn:hover {
  background: var(--button-colour);
  color: var(--button-text);
  border-color: var(--button-colour);
}
.preset-btn.active {
  background: var(--button-colour);
  color: var(--button-text);
  border-color: var(--button-colour);
}

/* Monthly Chart Container */
.monthly-chart-container {
  background: var(--background-colour);
  border: 1px solid var(--border-colour);
  border-radius: 12px;
  padding: 1rem;
}
.monthly-chart-container canvas {
  width: 100%;
  max-height: 80px;
}

/* Config Subsection */
.config-subsection {
  padding: 1.25rem;
  background: var(--background-colour);
  border: 1px solid var(--border-colour);
  border-radius: 12px;
}
.config-subsection h4 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-colour);
  margin-bottom: 0.25rem;
}

/* Form Actions */
.form-actions {
  margin-top: 2rem;
  text-align: center;
}

.continue-button {
  background: var(--button-colour) !important;
  color: var(--button-text) !important;
  border: 1px solid var(--border-colour) !important;
  padding: 0.875rem 2rem;
  border-radius: 50px;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-block;
}

.continue-button:hover {
  transform: translateY(-1px);
  box-shadow: var(--box-shadow) !important;
  color: var(--button-text) !important;
  text-decoration: none;
  opacity: 0.9;
}

.continue-button.disabled {
  background: var(--border-colour) !important;
  color: var(--text-colour) !important;
  cursor: not-allowed;
  opacity: 0.6;
}

.continue-button.disabled:hover {
  transform: none;
  box-shadow: none;
}

/* Sidebar */
.sidebar {
  padding-top: 1rem;
}

.info-card {
  background: var(--background-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
  padding: 1.5rem;
}

.info-card h4 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: var(--text-colour) !important;
}

.utility-details {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.detail-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
}

.detail-row span:first-child {
  color: var(--text-colour) !important;
  opacity: 0.7;
}

.detail-row span:last-child {
  font-weight: 600;
  color: var(--text-colour) !important;
}

/* Equipment Stage */
.equipment-stage .stage-header {
  background: var(--background-colour) !important;
}

.equipment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: 1.5rem;
  padding: 2rem 3rem 3rem;
}

.equipment-card {
  border: 2px solid var(--border-colour) !important;
  border-radius: 20px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  background: var(--card-colour) !important;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
}

.equipment-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: transparent;
  transition: background 0.3s ease;
}

.equipment-card:hover {
  border-color: var(--button-colour) !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important;
  transform: translateY(-6px);
}

.equipment-card:hover::before {
  background: linear-gradient(90deg, var(--button-colour), var(--scrollbar-colour));
}

.equipment-card.selected {
  border-color: var(--button-colour) !important;
  border-width: 3px;
  box-shadow: 0 12px 48px rgba(244, 116, 36, 0.25) !important;
  transform: translateY(-4px);
}

.equipment-card.selected::before {
  background: linear-gradient(90deg, var(--button-colour), var(--scrollbar-colour));
}

.equipment-card.selected::after {
  content: "✓";
  position: absolute;
  top: 1rem;
  left: 1rem;
  width: 32px;
  height: 32px;
  background: var(--button-colour) !important;
  color: var(--button-text) !important;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: bold;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.equipment-card.recommended {
  border-color: var(--button-colour) !important;
  box-shadow: 0 4px 20px rgba(244, 116, 36, 0.15) !important;
}

.equipment-card.recommended::before {
  background: var(--button-colour);
}

.equipment-card.included {
  background: var(--background-colour) !important;
  border-color: var(--button-colour) !important;
  opacity: 0.9;
}

.equipment-card.saving {
  pointer-events: none;
  opacity: 0.7;
  position: relative;
}

.equipment-card.saving::after {
  content: "" !important;
  position: absolute;
  top: 1rem !important;
  left: 1rem !important;
  width: 24px !important;
  height: 24px !important;
  margin: 0 !important;
  border: 3px solid var(--border-colour) !important;
  border-top-color: var(--button-colour) !important;
  border-radius: 50% !important;
  background: transparent !important;
  animation: spin 0.8s linear infinite;
  z-index: 100;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: 0 !important;
  color: transparent !important;
  box-shadow: none !important;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.generation-badge {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  padding: 0.25rem 0.6rem;
  border-radius: 12px;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  z-index: 10;
}
.generation-badge.gen-2 {
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  color: white;
}
.generation-badge.gen-3 {
  background: linear-gradient(135deg, #0ea5e9, #06b6d4);
  color: white;
}
.generation-badge.gen-4 {
  background: linear-gradient(135deg, #10b981, #34d399);
  color: white;
}

.equipment-card.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  filter: grayscale(50%);
}
.equipment-card.disabled:hover {
  transform: none;
  border-color: var(--border-colour) !important;
  box-shadow: none !important;
}
.equipment-card.disabled::before {
  display: none;
}

.incompatible-notice {
  padding: 0.75rem 1rem;
  background: var(--background-colour);
  border-radius: 8px;
  color: var(--text-muted);
  font-size: 0.85rem;
  text-align: center;
  margin-top: 1rem;
  border: 1px dashed var(--border-colour);
}

.equipment-radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.equipment-label {
  display: block;
  cursor: pointer;
  /* Override global radio button styles */
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  margin: 0 !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
  transition: none !important;
  box-shadow: none !important;
  position: relative !important;
  overflow: visible !important;
  transform: none !important;
}

.equipment-label::before {
  display: none !important;
}

.equipment-label:hover {
  transform: none !important;
  border-color: inherit !important;
  box-shadow: none !important;
}

.equipment-label:hover::before {
  opacity: 0 !important;
}

.equipment-radio:checked + .equipment-label {
  background: transparent !important;
  border-color: inherit !important;
  color: inherit !important;
  font-weight: inherit !important;
  box-shadow: none !important;
  transform: none !important;
}

.equipment-radio:checked + .equipment-label::before {
  opacity: 0 !important;
}

.equipment-image {
  height: 220px;
  background: linear-gradient(135deg, var(--background-colour), var(--card-colour)) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 1.5rem;
  position: relative;
}

.equipment-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, transparent 40%, var(--background-colour) 100%);
  opacity: 0.3;
  pointer-events: none;
}

.equipment-image img {
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  position: relative;
  z-index: 1;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
}

.equipment-info {
  padding: 1.5rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.equipment-info h3,
.equipment-info h4 {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
  color: var(--text-colour) !important;
  line-height: 1.3;
}

.equipment-specs {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
  justify-content: space-around;
  flex-wrap: wrap;
}

.spec {
  text-align: center;
  flex: 1;
  min-width: 90px;
  padding: 0.75rem 0.5rem;
  background: var(--background-colour) !important;
  border-radius: 12px;
  border: 1px solid var(--border-colour) !important;
}

.spec-value {
  display: block;
  font-size: 2rem;
  font-weight: 800;
  color: var(--text-colour) !important;
  line-height: 1;
  margin-bottom: 0.5rem;
}

.spec-unit {
  font-size: 0.65rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
}

.equipment-price {
  font-weight: 600;
  color: var(--text-colour) !important;
  font-size: 0.95rem;
  text-align: center;
  line-height: 1.3;
}

.equipment-description {
  color: var(--text-colour) !important;
  opacity: 0.8;
  font-size: 0.9rem;
  line-height: 1.4;
  margin: 0;
}

/* Badges */
.recommended-badge,
.included-badge {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  padding: 0.25rem 0.75rem;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  z-index: 10;
}

.recommended-badge {
  background: var(--button-colour) !important;
  color: var(--button-text) !important;
}

.included-badge {
  background: #10b981 !important;
  color: white !important;
  box-shadow: 0 2px 4px rgba(16, 185, 129, 0.2);
}

.battery-required-badge {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  padding: 0.35rem 0.75rem;
  border-radius: 12px;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  z-index: 10;
  background: linear-gradient(135deg, #8b5cf6, #6366f1) !important;
  color: white !important;
  box-shadow: 0 2px 8px rgba(139, 92, 246, 0.3);
  display: flex;
  align-items: center;
}

.equipment-card.battery-required {
  border-color: #8b5cf6 !important;
}
.equipment-card.battery-required.selected {
  border-color: #8b5cf6 !important;
  box-shadow: 0 8px 32px rgba(139, 92, 246, 0.25) !important;
}

/* Stage Actions */
.stage-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2rem 3rem;
  border-top: 1px solid var(--border-colour) !important;
  background: var(--background-colour) !important;
}

.back-button {
  color: var(--text-colour) !important;
  text-decoration: none;
  font-weight: 500;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  transition: all 0.3s ease;
  opacity: 0.7;
}

.back-button:hover {
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
  text-decoration: none;
  opacity: 1;
}

/* Responsive Design */
@media (max-width: 768px) {
  .content-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 2rem;
  }
  .progress-steps {
    gap: 0.25rem;
  }
  .progress-bar-modern {
    max-width: 95%;
  }
  .step span {
    font-size: 0.65rem;
  }
  .step-circle {
    width: 28px;
    height: 28px;
    font-size: 0.75rem;
  }
  .hero-title {
    font-size: 2rem;
  }
  .equipment-grid {
    grid-template-columns: 1fr;
    padding: 2rem;
  }
  .stage-actions {
    padding: 1.5rem 2rem;
  }
}
/* Form Elements */
.modern-form {
  color: var(--text-colour) !important;
}

.modern-form input,
.modern-form select,
.modern-form textarea {
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 8px;
}

.modern-form input:focus,
.modern-form select:focus,
.modern-form textarea:focus {
  border-color: var(--button-colour) !important;
  outline: none;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--button-colour) 10%, transparent) !important;
}

/* Loading States */
.loading {
  opacity: 0.7;
  pointer-events: none;
}

.loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 20px;
  margin: -10px 0 0 -10px;
  border: 2px solid var(--border-colour) !important;
  border-top: 2px solid var(--button-colour) !important;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Animation Classes */
.fade-in {
  animation: fadeIn 0.5s ease-in;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.slide-up {
  animation: slideUp 0.3s ease-out;
}

@keyframes slideUp {
  from {
    transform: translateY(10px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
/* Visual Designer Mode */
.visual-designer-mode {
  padding: 1rem;
}

.array-designer-container {
  min-height: 700px;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
  background: var(--card-colour) !important;
  width: 100%;
  max-width: none;
}

/* Results Stage */
.results-stage {
  background: var(--card-colour) !important;
  border-radius: 16px;
  overflow: hidden;
}

.results-hero {
  background: linear-gradient(135deg, var(--button-colour), var(--background-colour)) !important;
  color: var(--button-text) !important;
  padding: 4rem 3rem;
  text-align: center;
}

.results-hero h1 {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: var(--button-text) !important;
}

.results-hero p {
  font-size: 1.25rem;
  opacity: 0.9;
  margin-bottom: 3rem;
  color: var(--button-text) !important;
}

.key-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
  max-width: 800px;
  margin: 0 auto;
}

.metric-card {
  background: rgba(255, 255, 255, 0.1) !important;
  backdrop-filter: blur(10px);
  border-radius: 16px;
  padding: 2rem;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
}

.metric-card.primary {
  background: rgba(255, 255, 255, 0.2) !important;
  transform: scale(1.05);
  border: 2px solid rgba(255, 255, 255, 0.3) !important;
}

.metric-value {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 0.5rem;
  color: var(--button-text) !important;
}

.metric-label {
  font-size: 0.9rem;
  opacity: 0.9;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--button-text) !important;
}

.results-sections {
  padding: 3rem;
}

.result-section {
  margin-bottom: 4rem;
  background: var(--card-colour) !important;
  border-radius: 16px;
  padding: 2rem;
  box-shadow: var(--box-shadow) !important;
  border: 1px solid var(--border-colour) !important;
}

.result-section h2 {
  font-size: 1.75rem;
  font-weight: 600;
  margin-bottom: 2rem;
  color: var(--text-colour) !important;
}

.cost-breakdown {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2rem;
}

.cost-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
  background: var(--background-colour) !important;
  border-radius: 8px;
  font-weight: 500;
  color: var(--text-colour) !important;
  border: 1px solid var(--border-colour) !important;
}

.cost-item.incentives {
  background: var(--background-colour) !important;
  color: var(--text-colour) !important;
  border-color: var(--border-colour) !important;
}

.cost-item.total {
  background: var(--button-colour) !important;
  color: var(--button-text) !important;
  font-size: 1.1rem;
  font-weight: 600;
  border-color: var(--border-colour) !important;
}

.savings-comparison {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  padding: 2rem;
  background: var(--background-colour) !important;
  border-radius: 12px;
  border: 1px solid var(--border-colour) !important;
}

.comparison-item {
  text-align: center;
}

.comparison-item h4 {
  margin-bottom: 1rem;
  font-size: 1rem;
  color: var(--text-colour) !important;
  opacity: 0.8;
}

.bill-amount {
  font-size: 2rem;
  font-weight: 700;
  padding: 1rem 2rem;
  border-radius: 12px;
}

.bill-amount.old {
  background: var(--background-colour) !important;
  color: var(--text-colour) !important;
  border: 2px solid #ef4444 !important;
}

.bill-amount.new {
  background: var(--background-colour) !important;
  color: var(--text-colour) !important;
  border: 2px solid var(--border-colour) !important;
}

.comparison-arrow {
  font-size: 2rem;
  color: var(--text-colour) !important;
  opacity: 0.6;
}

.performance-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.performance-card {
  padding: 1.5rem;
  background: var(--background-colour) !important;
  border-radius: 12px;
  border: 1px solid var(--border-colour) !important;
}

.performance-card h4 {
  margin-bottom: 1rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--text-colour) !important;
}

.offset-visual {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.offset-bar {
  flex: 1;
  height: 12px;
  background: var(--border-colour) !important;
  border-radius: 6px;
  overflow: hidden;
}

.offset-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--button-colour), var(--button-colour)) !important;
  transition: width 0.5s ease;
}

.offset-percentage {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--button-colour) !important;
}

/* Energy Offset Card Styling */
.energy-offset-card {
  position: relative;
}

.offset-chart-container {
  position: relative;
  margin: 2rem auto;
  width: 100%;
  max-width: 300px;
}

.offset-center-label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  pointer-events: none;
}

.offset-percentage-large {
  font-size: 3rem;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 0.25rem;
}

.offset-label-text {
  font-size: 0.875rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
}

.offset-details {
  display: flex;
  gap: 1.5rem;
  margin: 2rem 0 1.5rem;
  padding: 1rem;
  background: var(--card-colour) !important;
  border-radius: 8px;
  border: 1px solid var(--border-colour) !important;
}

.offset-stat {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.offset-stat .stat-icon {
  font-size: 2rem;
  flex-shrink: 0;
}

.offset-stat .stat-number {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-colour) !important;
  line-height: 1.2;
}

.offset-stat .stat-description {
  font-size: 0.8rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
}

.offset-warning,
.offset-success {
  padding: 1rem;
  border-radius: 8px;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-top: 1rem;
  font-size: 0.9rem;
}

.offset-warning.excess {
  background: rgba(239, 68, 68, 0.1) !important;
  border: 1px solid rgba(239, 68, 68, 0.3) !important;
  color: #dc2626 !important;
}

.offset-warning.excess i {
  color: #ef4444;
  font-size: 1.25rem;
  flex-shrink: 0;
  margin-top: 0.125rem;
}

.offset-warning.partial {
  background: rgba(245, 158, 11, 0.1) !important;
  border: 1px solid rgba(245, 158, 11, 0.3) !important;
  color: #d97706 !important;
}

.offset-warning.partial i {
  color: #f59e0b;
  font-size: 1.25rem;
  flex-shrink: 0;
  margin-top: 0.125rem;
}

.offset-success {
  background: rgba(16, 185, 129, 0.1) !important;
  border: 1px solid rgba(16, 185, 129, 0.3) !important;
  color: #059669 !important;
}

.offset-success i {
  color: #10b981;
  font-size: 1.25rem;
  flex-shrink: 0;
}

.offset-warning strong,
.offset-success strong {
  display: block;
  margin-bottom: 0.25rem;
}

.offset-warning p {
  margin: 0;
  line-height: 1.5;
}

/* Visual Designer Energy Offset Display */
.designer-offset-display {
  margin: 1.5rem 0;
  padding: 1.5rem;
  background: var(--card-colour) !important;
  border-radius: 12px;
  border: 1px solid var(--border-colour) !important;
}

.offset-circle {
  position: relative;
  width: 150px;
  height: 150px;
  margin: 0 auto 1rem;
}

.offset-svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.offset-bg {
  fill: none;
  stroke: var(--border-colour);
  stroke-width: 8;
}

.offset-progress {
  fill: none;
  stroke: #10b981;
  stroke-width: 8;
  stroke-linecap: round;
  transition: stroke-dashoffset 0.5s ease, stroke 0.3s ease;
}

.offset-value {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

.offset-value #offset-percent {
  display: block;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1;
  color: var(--text-colour) !important;
  transition: color 0.3s ease;
}

.offset-sublabel {
  display: block;
  font-size: 0.75rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
  margin-top: 0.25rem;
}

.offset-info {
  text-align: center;
}

.offset-message {
  margin: 0;
  padding: 0.75rem;
  border-radius: 8px;
  font-size: 0.9rem;
  line-height: 1.4;
  font-weight: 500;
}

.offset-message.info {
  background: rgba(156, 163, 175, 0.1) !important;
  color: #6b7280 !important;
}

.offset-message.partial {
  background: rgba(245, 158, 11, 0.1) !important;
  color: #d97706 !important;
}

.offset-message.success {
  background: rgba(16, 185, 129, 0.1) !important;
  color: #059669 !important;
}

.offset-message.excess {
  background: rgba(239, 68, 68, 0.1) !important;
  color: #dc2626 !important;
}

.offset-circle.success {
  animation: successPulse 2s ease-in-out infinite;
}

.offset-circle.excess {
  animation: warningPulse 1.5s ease-in-out infinite;
}

.offset-circle.calculating {
  opacity: 0.6;
}

.offset-circle.calculating #offset-percent {
  opacity: 0.4;
  color: #9ca3af !important;
}

.offset-message.calculating {
  background: rgba(59, 130, 246, 0.1) !important;
  color: #3b82f6 !important;
  font-weight: 500;
}

@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}
@keyframes successPulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.02);
  }
}
@keyframes warningPulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.8;
  }
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.system-specs {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.spec-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border-colour) !important;
  color: var(--text-colour) !important;
}

.spec-row:last-child {
  border-bottom: none;
}

.impact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
}

.impact-card {
  text-align: center;
  padding: 2rem 1rem;
  background: var(--background-colour) !important;
  border-radius: 12px;
  transition: transform 0.2s ease;
  border: 1px solid var(--border-colour) !important;
}

.impact-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--box-shadow) !important;
}

.impact-icon {
  font-size: 2.5rem;
  margin-bottom: 1rem;
}

.impact-value {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--text-colour) !important;
  margin-bottom: 0.5rem;
}

.impact-label {
  color: var(--text-colour) !important;
  opacity: 0.8;
  font-size: 0.9rem;
}

.results-cta {
  text-align: center;
  padding: 3rem;
  background: var(--background-colour) !important;
  border-radius: 16px;
  margin: 2rem 3rem;
  border: 1px solid var(--border-colour) !important;
}

.results-cta h3 {
  font-size: 1.75rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: var(--text-colour) !important;
}

.results-cta p {
  color: var(--text-colour) !important;
  opacity: 0.8;
  margin-bottom: 2rem;
}

.cta-button.large {
  font-size: 1.25rem;
  padding: 1.25rem 3rem;
}

/* Equipment Categories */
.equipment-categories {
  padding: 0;
}

.equipment-category {
  margin-bottom: 3rem;
}

.equipment-category h3 {
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 1.5rem;
  color: var(--text-colour) !important;
  border-bottom: 2px solid var(--border-colour) !important;
  padding-bottom: 0.5rem;
}

.equipment-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 1rem;
  padding: 0.875rem 1.25rem;
  background: var(--background-colour) !important;
  border-radius: 8px;
  border: 1px solid var(--border-colour) !important;
  gap: 0.5rem;
}

.quantity-control {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.quantity-control label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-colour) !important;
}

.quantity-input {
  display: flex;
  align-items: center;
  border: 1px solid var(--border-colour) !important;
  border-radius: 6px;
  overflow: hidden;
  background: var(--card-colour) !important;
}

.qty-btn {
  width: 32px;
  height: 32px;
  border: none;
  background: var(--background-colour) !important;
  color: var(--text-colour) !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  transition: background 0.2s ease;
}

.qty-btn:hover {
  background: var(--border-colour) !important;
}

.qty-field {
  width: 50px;
  height: 32px;
  border: none;
  text-align: center;
  font-weight: 500;
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
}

.equipment-summary {
  margin: 2rem 3rem;
  padding: 1.5rem;
  background: var(--background-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
}

.equipment-summary h4 {
  margin-bottom: 1rem;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-colour) !important;
}

.summary-items {
  margin-bottom: 1rem;
}

.empty-summary {
  color: var(--text-colour) !important;
  opacity: 0.6;
  font-style: italic;
  text-align: center;
  padding: 1rem;
  margin: 0;
}

.summary-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  font-size: 1.1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border-colour) !important;
  color: var(--text-colour) !important;
}

.total-amount {
  color: var(--text-colour) !important;
  font-size: 1.25rem;
}

.summary-capacity {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
  color: var(--text-colour) !important;
}

.summary-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border-colour);
  color: var(--text-colour) !important;
}

.summary-item:last-child {
  border-bottom: none;
}

/* Incentives Stage */
.incentives-content {
  padding: 2rem 3rem;
}

.available-incentives,
.selected-incentives {
  margin-bottom: 3rem;
}

.available-incentives h3,
.selected-incentives h3 {
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 1.5rem;
  color: var(--text-colour) !important;
}

.incentive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
}

.incentive-card {
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
  padding: 1.5rem;
  transition: all 0.2s ease;
}

.incentive-card:hover:not(.disabled) {
  border-color: var(--button-colour) !important;
  box-shadow: var(--box-shadow) !important;
}

.incentive-card.disabled {
  opacity: 0.5;
  background: var(--background-colour) !important;
}

.incentive-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}

.incentive-checkbox {
  position: relative;
}

.incentive-check {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.checkbox-label {
  cursor: pointer;
}

.checkmark {
  display: block;
  width: 20px;
  height: 20px;
  border: 2px solid var(--border-colour) !important;
  border-radius: 4px;
  position: relative;
  transition: all 0.2s ease;
  background: var(--card-colour) !important;
}

.incentive-check:checked + .checkbox-label .checkmark {
  background: var(--button-colour) !important;
  border-color: var(--button-colour) !important;
}

.incentive-check:checked + .checkbox-label .checkmark::after {
  content: "✓";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--button-text) !important;
  font-size: 12px;
  font-weight: bold;
}

.incentive-header h4 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--text-colour) !important;
}

.incentive-details p {
  color: var(--text-colour) !important;
  opacity: 0.8;
  font-size: 0.9rem;
  line-height: 1.4;
  margin-bottom: 1rem;
}

.incentive-value .value {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--button-colour) !important;
}

.tax-timing {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 0.5rem;
}

.before-tax {
  background: var(--background-colour) !important;
  color: var(--text-colour) !important;
  border: 1px solid var(--border-colour) !important;
}

.after-tax {
  background: var(--background-colour) !important;
  color: var(--button-colour) !important;
  border: 1px solid var(--button-colour) !important;
}

.selected-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.selected-incentive {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  background: var(--background-colour) !important;
  border: 1px solid var(--button-colour) !important;
  border-radius: 8px;
  padding: 1rem;
}

.selected-incentive .incentive-info h4 {
  margin-bottom: 0.5rem;
  font-size: 1rem;
  color: var(--text-colour) !important;
}

.selected-incentive .incentive-info p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-colour) !important;
  opacity: 0.8;
}

.incompatible-warning {
  color: #ef4444 !important;
  font-size: 0.8rem !important;
  margin-top: 0.5rem !important;
}

.remove-btn {
  width: 24px;
  height: 24px;
  border: none;
  background: #ef4444 !important;
  color: white !important;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}

.remove-btn:hover {
  background: #dc2626 !important;
}

.incentives-total {
  text-align: center;
  padding: 1.5rem;
  background: var(--card-colour) !important;
  border: 2px solid var(--button-colour) !important;
  border-radius: 12px;
  margin-top: 1rem;
}

.incentives-total h4 {
  margin: 0;
  font-size: 1.25rem;
  color: var(--text-colour) !important;
}

.total-value {
  color: var(--button-colour) !important;
  font-size: 1.5rem;
}

/* Equipment Details Section */
.equipment-details {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.component-card {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1.5rem;
  background: var(--background-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
  transition: all 0.3s ease;
}

.component-card:hover {
  box-shadow: var(--box-shadow) !important;
  transform: translateY(-2px);
}

.component-image {
  width: 100px;
  height: 100px;
  background: var(--card-colour) !important;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
}

.component-image img {
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.component-info {
  flex: 1;
}

.component-info h4 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: var(--text-colour) !important;
}

.component-specs {
  display: flex;
  gap: 1.5rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.spec-item {
  padding: 0.25rem 0.75rem;
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 16px;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-colour) !important;
}

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

.total-capacity {
  font-weight: 600;
  color: var(--text-colour) !important;
  font-size: 1.1rem;
}

.total-cost {
  font-weight: 700;
  color: var(--text-colour) !important;
  font-size: 1.25rem;
}

/* Chart Sections */
.chart-section {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border-colour) !important;
}

.chart-section h3 {
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 1.5rem;
  color: var(--text-colour) !important;
}

.chart-container {
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
  padding: 1.5rem;
  margin: 1rem 0;
}

.payback-indicator {
  text-align: center;
  padding: 1.5rem;
  background: var(--background-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
  margin-top: 1rem;
}

.payback-indicator p {
  margin: 0.5rem 0;
  color: var(--text-colour) !important;
}

.payback-indicator strong {
  color: var(--text-colour) !important;
  font-size: 1.1rem;
}

/* Progress Steps as Links */
.step {
  text-decoration: none !important;
  color: inherit !important;
  transition: all 0.3s ease;
}

.step:hover {
  text-decoration: none !important;
  color: inherit !important;
  transform: translateY(-2px);
}

.step.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.step.disabled:hover {
  transform: none;
}

/* Bill Comparison Section */
.bill-comparison-summary {
  margin-top: 2rem;
}

.comparison-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
}

.stat-card {
  text-align: center;
  padding: 1.5rem;
  background: var(--background-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
  transition: all 0.3s ease;
}

.stat-card:hover {
  box-shadow: var(--box-shadow) !important;
  transform: translateY(-2px);
}

.stat-card h4 {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: var(--text-colour) !important;
  opacity: 0.8;
}

.stat-card .stats-value {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--button-colour) !important;
  margin-bottom: 0.25rem;
}

.stat-card .stats-label {
  font-size: 0.875rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
}

/* System Summary */
.system-summary {
  margin: 2rem 3rem 0;
  padding: 1.5rem;
  background: var(--background-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 12px;
}

.system-summary h4 {
  margin-bottom: 1rem;
  color: var(--text-colour) !important;
  font-size: 1.25rem;
  font-weight: 600;
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 1rem;
}

.summary-stat {
  text-align: center;
  padding: 1rem;
  background: var(--card-colour) !important;
  border-radius: 8px;
  border: 1px solid var(--border-colour) !important;
}

.stats-value {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-colour) !important;
  line-height: 1;
}

.stats-label {
  font-size: 0.75rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 0.25rem;
}

/* ============================================
   COMPREHENSIVE MOBILE RESPONSIVE STYLES
   ============================================ */
/* Tablet and below (768px) */
@media (max-width: 768px) {
  /* Welcome/Hero Section */
  .hero-section {
    padding: 2.5rem 1.5rem;
  }
  .hero-subtitle {
    font-size: 1rem;
    padding: 0 1rem;
  }
  .feature-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 0 1rem;
  }
  .cta-button {
    width: 100%;
    padding: 1rem 2rem;
    font-size: 1rem;
  }
  /* Stage Headers */
  .stage-header {
    padding: 2rem 1.5rem;
  }
  .stage-header h2 {
    font-size: 1.75rem;
  }
  .stage-header p {
    font-size: 1rem;
  }
  /* Content Grid */
  .content-grid {
    padding: 1.5rem;
  }
  /* Utility Grid */
  .utility-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
  .utility-card {
    padding: 1rem;
  }
  /* Bill Input */
  .bill-input-container {
    max-width: 100%;
  }
  .bill-input-group {
    font-size: 1.1rem;
    padding: 0.625rem 0.875rem;
  }
  .currency-symbol,
  .period {
    font-size: 1rem;
  }
  .bill-input {
    font-size: 1.1rem;
  }
  .bill-preview {
    margin-top: 0.75rem;
  }
  .usage-amount {
    font-size: 1.75rem;
  }
  /* Monthly Grid */
  .monthly-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }
  .month-input {
    padding: 0.75rem;
  }
  .month-label {
    font-size: 0.8rem;
  }
  .month-field {
    font-size: 1rem;
    padding: 0.5rem;
  }
  /* Equipment Grid */
  .equipment-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .equipment-card {
    padding: 1rem;
  }
  .equipment-info h3 {
    font-size: 1.1rem;
  }
  .equipment-specs {
    flex-wrap: wrap;
    gap: 0.75rem;
  }
  .spec-value {
    font-size: 1.25rem;
  }
  .spec-unit {
    font-size: 0.7rem;
  }
  /* Equipment Controls */
  .equipment-controls {
    flex-direction: column;
    align-items: stretch;
  }
  .quantity-control {
    width: 100%;
  }
  /* Incentives Grid */
  .incentive-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .incentive-card {
    padding: 1.25rem;
  }
  /* Visual Array Designer */
  .array-designer-container {
    min-height: 500px;
  }
  .visual-designer-mode {
    padding: 0.5rem;
  }
  /* Results Section */
  .results-hero {
    padding: 2.5rem 1.5rem;
  }
  .results-hero h1 {
    font-size: 1.75rem;
  }
  .results-hero p {
    font-size: 1rem;
  }
  .key-metrics {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .metric-card {
    padding: 1.5rem;
  }
  .metric-card.primary {
    transform: scale(1);
  }
  .metric-value {
    font-size: 2rem;
  }
  .metric-label {
    font-size: 0.8rem;
  }
  .results-sections {
    padding: 1.5rem;
  }
  .result-section {
    margin-bottom: 2rem;
  }
  /* Financial Section */
  .cost-breakdown {
    font-size: 0.9rem;
  }
  .savings-comparison {
    flex-direction: column;
    gap: 1rem;
  }
  .comparison-arrow {
    transform: rotate(90deg);
    font-size: 1.5rem;
  }
  .bill-amount {
    font-size: 1.75rem;
  }
  /* Performance Grid */
  .performance-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  /* System Specs */
  .system-specs {
    font-size: 0.9rem;
  }
  /* Chart Containers */
  .chart-container,
  .offset-chart-container {
    height: auto !important;
    min-height: 250px;
  }
  /* Offset Details */
  .offset-details {
    flex-direction: column;
    gap: 1rem;
  }
  /* Offset Warnings */
  .offset-warning,
  .offset-success {
    padding: 1rem;
    font-size: 0.85rem;
  }
  /* Equipment Details */
  .equipment-details {
    gap: 1rem;
  }
  .component-card {
    flex-direction: column;
    padding: 1rem;
  }
  .component-image {
    max-width: 100%;
    margin-bottom: 1rem;
  }
  .component-specs {
    flex-wrap: wrap;
  }
  .component-total {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  /* Impact Grid */
  .impact-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  .impact-card {
    padding: 1.25rem;
  }
  .impact-icon {
    font-size: 2rem;
  }
  .impact-value {
    font-size: 1.5rem;
  }
  .impact-label {
    font-size: 0.75rem;
  }
  /* Bill Comparison Stats */
  .comparison-stats {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  /* CTA Section */
  .results-cta {
    padding: 2rem 1.5rem;
  }
  .results-cta h3 {
    font-size: 1.5rem;
  }
  .results-cta p {
    font-size: 0.95rem;
  }
  .cta-button.large {
    width: 100%;
    padding: 1rem 2rem;
  }
  /* Stage Actions */
  .stage-actions {
    flex-direction: column;
    gap: 0.75rem;
  }
  .back-button,
  .continue-button {
    width: 100%;
    text-align: center;
    padding: 0.875rem 1.5rem;
  }
  /* Turbo Toast Notifications */
  .turbo-toast {
    right: 10px !important;
    left: 10px !important;
    max-width: calc(100% - 20px) !important;
    top: 70px !important;
  }
}
/* Small Mobile (480px and below) */
@media (max-width: 480px) {
  .hero-title {
    font-size: 1.75rem;
  }
  .hero-subtitle {
    font-size: 0.9rem;
  }
  .stage-header h2 {
    font-size: 1.5rem;
  }
  .stage-header p {
    font-size: 0.9rem;
  }
  .content-grid,
  .results-sections {
    padding: 1rem;
  }
  .equipment-grid {
    padding: 1rem;
  }
  .monthly-grid {
    grid-template-columns: 1fr;
  }
  .step span {
    font-size: 0.6rem;
  }
  .step-circle {
    width: 26px;
    height: 26px;
    font-size: 0.7rem;
  }
  .metric-value {
    font-size: 1.5rem;
  }
  .bill-amount {
    font-size: 1.5rem;
  }
  .impact-grid {
    grid-template-columns: 1fr;
  }
  .progress-bar-modern {
    padding: 0.75rem 1rem;
    border-radius: 30px;
  }
  .progress-steps {
    gap: 0.15rem;
  }
}
/* Large Screens (1200px and above) - Optimize for desktop */
@media (min-width: 1200px) {
  .equipment-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .utility-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .monthly-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .impact-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* Visual Array Designer Styles */
.array-designer {
  display: grid;
  grid-template-columns: 1fr 280px;
  grid-template-rows: auto 1fr;
  gap: 1rem;
  height: 80vh;
  min-height: 650px;
  max-height: 800px;
  background: var(--card-colour) !important;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--box-shadow) !important;
  border: 1px solid var(--border-colour) !important;
}

/* Make canvas container wider in arrays stage */
.arrays-stage {
  max-width: 100% !important;
}
.arrays-stage .array-designer {
  max-width: none;
  width: 100%;
}
.arrays-stage .visual-designer-mode {
  width: 100%;
}

/* Toolbar */
.designer-toolbar {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  min-height: 125px;
  justify-content: space-between;
  padding: 1rem 1.5rem;
  background: var(--background-colour) !important;
  border-bottom: 1px solid var(--border-colour) !important;
  flex-wrap: wrap;
  gap: 1rem;
}

.toolbar-section {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.tool-button {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border: 1px solid var(--border-colour) !important;
  background: var(--card-colour) !important;
  color: var(--text-colour) !important;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 0.875rem;
  font-weight: 500;
}

.tool-button:hover {
  border-color: var(--button-colour) !important;
  background: var(--background-colour) !important;
}

.tool-button .orientation-label {
  font-size: 0.75rem;
  margin-left: 0.25rem;
}

.tool-button.active {
  border-color: var(--button-colour) !important;
  background: var(--button-colour) !important;
  color: var(--button-text) !important;
}

.tool-icon {
  font-size: 1rem;
  line-height: 1;
}

/* Array Controls */
.array-controls {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 0.5rem 1rem;
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 8px;
  color: var(--text-colour) !important;
}

.array-controls label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  white-space: nowrap;
}

.array-controls input[type=range] {
  width: 80px;
  margin: 0 0.25rem;
}

.array-controls span {
  min-width: 2rem;
  text-align: center;
  font-weight: 600;
  color: var(--text-colour) !important;
}

/* Array Stats */
.array-stats {
  display: flex;
  gap: 1.5rem;
}

.stat {
  text-align: center;
}

.stats-value {
  display: block;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-colour) !important;
  line-height: 1;
}

.stat-label {
  font-size: 0.75rem;
  color: var(--text-colour) !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 0.25rem;
}

/* Canvas Container */
.canvas-container {
  position: relative;
  background: white !important; /* Always white for better grid/panel contrast */
  border: 1px solid var(--border-colour) !important;
  border-radius: 8px;
  overflow: hidden;
  min-height: 500px;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.designer-canvas {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 500px;
  cursor: default;
  /* Mobile touch improvements */
  touch-action: none; /* Prevent all default touch behaviors */
  -webkit-user-select: none; /* Prevent text selection on iOS */
  -moz-user-select: none;
       user-select: none; /* Prevent text selection */
}

/* Legacy support */
#array-canvas {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 500px;
  cursor: default;
}

.canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}

/* Sidebar */
.designer-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem;
  background: var(--background-colour) !important;
  border-left: 1px solid var(--border-colour) !important;
  overflow-y: auto;
  max-height: 100%;
}

/* Array List */
.array-list h4,
.performance-preview h4 {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: var(--text-colour) !important;
}

.array-items {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-height: 300px;
  overflow-y: auto;
}

.array-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem;
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.array-item:hover {
  border-color: var(--button-colour) !important;
  box-shadow: 0 2px 8px rgba(59, 130, 246, 0.1);
}

.array-item.selected {
  border-color: var(--button-colour) !important;
  background: var(--background-colour) !important;
}

.array-item-info h5 {
  font-size: 0.875rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
  color: var(--text-colour) !important;
}

.array-item-info p {
  font-size: 0.75rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
  margin: 0;
  line-height: 1.3;
}

.delete-array-btn {
  width: 24px;
  height: 24px;
  border: none;
  background: #ef4444;
  color: white;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  line-height: 1;
  transition: all 0.2s ease;
}

.delete-array-btn:hover {
  background: #dc2626;
  transform: scale(1.1);
}

.empty-state {
  text-align: center;
  color: var(--text-colour) !important;
  opacity: 0.6;
  font-style: italic;
  padding: 2rem 1rem;
  margin: 0;
}

/* Collapsible Headers */
.collapsible-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  padding: 0.25rem 0;
  margin-bottom: 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-colour) !important;
  transition: opacity 0.2s ease;
}

.collapsible-header:hover {
  opacity: 0.8;
}

.collapse-icon {
  font-size: 0.75rem;
  transition: transform 0.3s ease;
}

.collapsible-content {
  max-height: 1000px;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
  opacity: 1;
  padding-top: 0.25rem;
}

.collapsible-content.collapsed {
  max-height: 0;
  opacity: 0;
}

/* Shading Control */
.shading-control {
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 8px;
  padding: 1rem;
}

.control-description {
  font-size: 0.75rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
  margin-bottom: 0.5rem;
}

.shading-slider-container {
  margin-bottom: 0.5rem;
}

.shading-slider-container label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--text-colour) !important;
}

.shading-label {
  font-weight: 500;
}

.shading-slider-container input[type=range] {
  flex: 1;
  margin: 0 0.5rem;
}

.shading-display {
  min-width: 3rem;
  text-align: center;
  font-weight: 600;
  color: var(--button-colour) !important;
}

.shading-indicator {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.indicator-bar {
  height: 8px;
  background: var(--background-colour) !important;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 0.25rem;
}

.indicator-fill {
  height: 100%;
  background: linear-gradient(90deg, #10b981 0%, #f59e0b 50%, #ef4444 100%);
  transition: width 0.3s ease;
  border-radius: 4px;
}

.shading-levels {
  display: flex;
  justify-content: space-between;
  margin-top: 0.25rem;
}

.level-label {
  font-size: 0.7rem;
  color: var(--text-colour) !important;
  opacity: 0.6;
}

.shading-note {
  font-size: 0.75rem;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  padding: 0.5rem;
  background: var(--background-colour) !important;
  border-radius: 4px;
  text-align: center;
}

.losses-info {
  font-size: 0.75rem;
  color: var(--text-colour) !important;
  opacity: 0.8;
  margin: 0;
  text-align: center;
}

.losses-info strong {
  color: var(--button-colour) !important;
}

/* Solar Tips */
.solar-tips {
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 1rem;
}

.tip-card {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem;
  background: var(--background-colour) !important;
  border-radius: 6px;
  margin-bottom: 0.5rem;
  border-left: 3px solid var(--button-colour);
}

.tip-card:last-child {
  margin-bottom: 0;
}

.tip-card.warning {
  border-left-color: #f59e0b;
}

.tip-card.success {
  border-left-color: #10b981;
}

.tip-icon {
  font-size: 1.5rem;
  line-height: 1;
  flex-shrink: 0;
}

.tip-content {
  flex: 1;
}

.tip-content strong {
  display: block;
  font-size: 0.875rem;
  color: var(--text-colour) !important;
  margin-bottom: 0.25rem;
}

.tip-content p {
  font-size: 0.75rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
  margin: 0;
  line-height: 1.4;
}

/* Performance Preview */
.performance-preview {
  background: var(--card-colour) !important;
  border: 1px solid var(--border-colour) !important;
  border-radius: 8px;
  padding: 1rem;
}

.performance-stats {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.perf-stat {
  text-align: center;
  padding: 0.75rem;
  background: var(--background-colour) !important;
  border-radius: 6px;
}

.perf-value {
  display: block;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-colour) !important;
  line-height: 1;
}

.perf-label {
  font-size: 0.75rem;
  color: var(--text-colour) !important;
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 0.25rem;
}

/* Error Message */
.error-message {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-align: center;
  color: var(--text-colour) !important;
  opacity: 0.7;
}

.error-message h3 {
  color: #ef4444;
  margin-bottom: 0.5rem;
}

.retry-button {
  margin-top: 1rem;
  padding: 0.5rem 1rem;
  background: #3b82f6;
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 500;
}

.retry-button:hover {
  background: #2563eb;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .array-designer {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto 1fr auto;
    height: auto;
    min-height: 70vh;
  }
  .designer-sidebar {
    grid-row: 4;
    border-left: none;
    border-top: 1px solid var(--border-colour) !important;
    flex-direction: row;
    overflow-x: auto;
  }
  .array-list,
  .performance-preview {
    min-width: 250px;
  }
  .designer-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    min-height: auto; /* Remove fixed min-height on mobile */
  }
  .toolbar-section {
    justify-content: center;
    flex-wrap: wrap;
  }
  /* Tool buttons row */
  .toolbar-section:first-child {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }
  .toolbar-section:first-child .tool-button {
    flex: none; /* Remove flex to work with grid */
  }
  .array-controls {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
  }
  .array-stats {
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
  }
}
@media (max-width: 768px) {
  .designer-toolbar {
    padding: 0.5rem;
    gap: 0.5rem;
  }
  .toolbar-section:first-child {
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem;
  }
  .tool-button {
    padding: 0.5rem 0.6rem;
    font-size: 0.8rem;
    min-height: 44px;
    gap: 0.3rem;
    white-space: nowrap;
  }
  .tool-icon {
    font-size: 0.9rem;
  }
  .orientation-label {
    font-size: 0.7rem !important;
  }
  .array-controls {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    padding: 0.5rem;
  }
  .array-controls label {
    justify-content: space-between;
    font-size: 0.85rem;
  }
  .array-controls input[type=range] {
    width: 100px;
    flex: 1;
  }
  .array-stats {
    justify-content: space-around;
    width: 100%;
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  .stat {
    flex: 1 1 30%;
    min-width: 60px;
  }
  .stat-value {
    font-size: 1rem;
  }
  .stat-label {
    font-size: 0.65rem;
  }
  .array-designer {
    min-height: 60vh;
    max-height: none; /* Remove max-height restriction on mobile */
  }
  .canvas-container {
    min-height: 450px; /* Larger minimum for better mobile experience */
  }
  .designer-canvas {
    min-height: 450px;
    touch-action: none; /* Override to prevent all gestures */
    -webkit-tap-highlight-color: transparent; /* Remove tap highlight on iOS */
  }
  .designer-toolbar {
    padding: 0.75rem;
  }
  .array-item {
    padding: 0.75rem;
    min-height: 44px; /* Better touch targets */
  }
  .array-item-header h4 {
    font-size: 0.9rem;
  }
  .array-stats .stat {
    font-size: 0.8rem;
  }
  .performance-preview {
    padding: 0.75rem;
  }
  .performance-preview h3 {
    font-size: 1rem;
  }
  .performance-stats {
    gap: 0.5rem;
  }
  .stat-label {
    font-size: 0.75rem;
  }
  .stat-value {
    font-size: 1.1rem;
  }
  /* Better touch targets for buttons and interactive elements */
  .delete-array-btn {
    width: 32px;
    height: 32px;
    font-size: 1.2rem;
  }
}
/* Extra small mobile devices */
@media (max-width: 480px) {
  .designer-toolbar {
    padding: 0.4rem;
    gap: 0.4rem;
  }
  .toolbar-section:first-child {
    grid-template-columns: 1fr 1fr;
    gap: 0.3rem;
  }
  .tool-button {
    padding: 0.4rem 0.5rem;
    font-size: 0.75rem;
    min-height: 48px;
    gap: 0.25rem;
  }
  .tool-icon {
    font-size: 0.85rem;
  }
  .orientation-label {
    font-size: 0.65rem !important;
  }
  .array-controls {
    padding: 0.4rem;
    gap: 0.4rem;
  }
  .array-controls label {
    font-size: 0.8rem;
  }
  .array-controls input[type=range] {
    width: 80px;
    flex: 1;
  }
  .array-controls span {
    min-width: 2.5rem;
    font-size: 0.85rem;
  }
  .array-controls input[type=number] {
    width: 50px;
    padding: 0.3rem;
    font-size: 0.85rem;
  }
  .canvas-container {
    min-height: 400px;
  }
  .designer-canvas {
    min-height: 400px;
  }
  .array-list,
  .performance-preview {
    min-width: 180px;
  }
  .array-item {
    padding: 0.5rem;
    min-height: 48px;
  }
  .array-stats {
    gap: 0.4rem;
  }
  .stat {
    min-width: 55px;
  }
  .stat-value {
    font-size: 0.95rem;
  }
  .stat-label {
    font-size: 0.6rem;
  }
  /* Stack toolbar sections vertically on very small screens */
  .toolbar-section {
    width: 100%;
  }
}
/* Animation Classes */
.array-item.highlight {
  animation: highlight 0.5s ease;
}

@keyframes highlight {
  0% {
    background: #fef3c7;
  }
  100% {
    background: white;
  }
}
.stat-value.updating {
  animation: pulse 0.3s ease;
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}
/* Drag and Drop States */
.array-designer.dragging {
  cursor: grabbing !important;
}

.array-designer.dragging * {
  cursor: grabbing !important;
}

/* Selection Indicators */
.array-item.selected::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: #3b82f6;
  border-radius: 0 2px 2px 0;
}

/* Tooltip Styles */
.array-tooltip {
  position: absolute;
  background: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 0.5rem;
  border-radius: 4px;
  font-size: 0.75rem;
  pointer-events: none;
  z-index: 1000;
  white-space: nowrap;
}

/* Loading States */
.array-designer.loading {
  opacity: 0.7;
  pointer-events: none;
}

.performance-stats.loading {
  position: relative;
  opacity: 0.7;
}

.performance-stats.loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 20px;
  height: 20px;
  border: 2px solid #e2e8f0;
  border-top: 2px solid #3b82f6;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

.loading-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
  border: 3px solid #e2e8f0;
  border-top: 3px solid #3b82f6;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
/* Visual feedback for array rotation */
.array-item.updating {
  background: linear-gradient(90deg, #f3f4f6, #dbeafe, #f3f4f6);
  background-size: 200% 100%;
  animation: shimmer 1s ease-in-out;
}

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
/* Compass and direction indicators */
.compass-indicator {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  padding: 8px;
  font-size: 10px;
  font-weight: 600;
  color: #374151;
  border: 1px solid #d1d5db;
}

/* Array rotation visual feedback */
.array-rotating {
  animation: rotateHighlight 0.5s ease-in-out;
}

@keyframes rotateHighlight {
  0% {
    box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
  }
  50% {
    box-shadow: 0 0 0 10px rgba(59, 130, 246, 0.1);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
  }
}
/* Energy Offset Display Styles */
.designer-offset-display {
  margin-bottom: 1rem;
  padding: 1rem;
  background: var(--background-colour) !important;
  border-radius: 8px;
}

.offset-circle {
  position: relative;
  width: 150px;
  height: 150px;
  margin: 0 auto 1rem;
}

.offset-svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.offset-bg {
  fill: none;
  stroke: var(--border-colour);
  stroke-width: 8;
}

.offset-progress {
  fill: none;
  stroke-width: 8;
  transition: stroke-dashoffset 0.5s ease, stroke 0.3s ease;
}

.offset-value {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

.offset-value span:first-child {
  display: block;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 0.25rem;
}

.offset-sublabel {
  display: block;
  font-size: 0.75rem;
  color: var(--text-colour);
  opacity: 0.7;
}

.offset-info {
  text-align: center;
}

.offset-message {
  font-size: 0.875rem;
  margin: 0;
  padding: 0.5rem;
  border-radius: 6px;
}

.offset-message.info {
  background: var(--background-colour);
  color: var(--text-colour);
}

.offset-message.partial {
  background: #fef3c7;
  color: #92400e;
}

.offset-message.success {
  background: #d1fae5;
  color: #065f46;
}

.offset-message.excess {
  background: #fee2e2;
  color: #991b1b;
}

.offset-message.calculating {
  background: var(--background-colour);
  color: var(--text-colour);
  opacity: 0.7;
  font-style: italic;
}

.offset-circle.calculating {
  animation: pulse 2s ease-in-out infinite;
}

@media (max-width: 768px) {
  .offset-circle {
    width: 120px;
    height: 120px;
  }
  .offset-value span:first-child {
    font-size: 1.5rem;
  }
  .offset-sublabel {
    font-size: 0.7rem;
  }
}
.public-navbar-clearance {
  height: 96px;
  pointer-events: none;
}

body[data-navigation-shell=public] {
  --page-sticky-navbar-offset: 100px;
  --progress-sticky-navbar-offset: 110px;
}

body[data-navigation-shell=staff] {
  --page-sticky-navbar-offset: 80px;
  --progress-sticky-navbar-offset: 80px;
}

@media (max-width: 991.98px) {
  .public-navbar-clearance {
    height: 80px;
  }
}
@media (max-width: 768px) {
  body[data-navigation-shell=public] {
    --page-sticky-navbar-offset: 80px;
    --progress-sticky-navbar-offset: 80px;
  }
}
@media screen and (max-width: 600px) {
  #lottie {
    display: none;
  }
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes loading-progress {
  0% {
    transform: translateX(-100%);
  }
  50% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(100%);
  }
}
.no-link {
  color: inherit;
  text-decoration: none;
}

.border-bottom {
  border-bottom: 1px solid #4e4e4e;
}

.rtl {
  direction: rtl;
}

.no-decoration {
  text-decoration: none;
  color: white;
}

.strikethrough {
  text-decoration: line-through;
}

.no-decoration:hover {
  text-decoration: none;
  color: white;
}

.no-decoration-dark {
  text-decoration: none;
  color: #4e4e4e;
}

.centered-content {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.centered-component {
  position: relative;
  border-top: 3px solid #4f4f4f; /* Full border */
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.centered-component.last {
  border-top: none; /* Remove full border */
}

.centered-component.last::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 50%; /* Half border */
  height: 3px; /* Border thickness */
  background-color: #4f4f4f; /* Border color */
}

.centered-componentb {
  position: relative;
  border-bottom: 3px solid #4f4f4f; /* Full border */
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.centered-componentb.last {
  border-bottom: none; /* Remove full border */
}

.centered-componentb.last::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 50%; /* Half border */
  height: 3px; /* Border thickness */
  background-color: #4f4f4f; /* Border color */
}

.systemcard {
  border-radius: 10px;
  background-color: #ffffff;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
  transition: box-shadow 0.2s ease-in-out, transform 0.2s ease-in-out;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 260px;
  margin-left: auto;
  margin-right: auto;
}

.systemcard:hover {
  box-shadow: 0 10px 20px 0 rgba(0, 0, 0, 0.3); /* Increase box shadow */
  background-color: #f7f7f7;
  transform: scale(1.02) rotate(1deg); /* Make the scale and rotation more subtle */
}

@media (max-width: 600px) { /* Adjust this value based on when you want the cards to stack */
  .systemcard {
    flex: 0 0 100%; /* This makes the cards take up the full width of the container on small screens */
    margin-left: auto;
    margin-right: auto;
  }
}
.collection-card {
  /* Base styles */
  position: relative;
  border-radius: 12px;
  min-width: 240px;
  height: 150px;
  flex-grow: 1;
  margin: 15px;
  overflow: hidden;
  /* Background handling */
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  /* Modern glass effect */
  background-color: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  /* Enhanced shadow */
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  /* Smooth transitions */
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  /* Text styles */
  color: inherit;
  text-decoration: none;
  /* Optional gradient overlay */
}
.collection-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.05) 100%);
  z-index: 1;
  transition: opacity 0.3s ease;
}
.collection-card {
  /* Hover effects */
}
.collection-card:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.collection-card:hover::after {
  opacity: 0.2;
}
.collection-card {
  /* Active state */
}
.collection-card:active {
  transform: translateY(-2px) scale(1);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.collection-card {
  /* Ensure content stays above overlay */
}
.collection-card * {
  position: relative;
  z-index: 2;
}
.collection-card {
  /* Media query for touch devices */
}
@media (hover: none) {
  .collection-card:hover {
    transform: none;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  }
}

.text-orange {
  color: #f47424;
}

.link {
  color: inherit;
  transition: all 0.3s ease;
  text-decoration: none;
}

.link:hover {
  color: #8CAAEE;
  transform: translateY(-2px);
}

.icon-interaction {
  transition: all 0.3s ease;
  text-decoration: none;
}

.icon-interaction:hover {
  transform: translateY(-2px);
}

body a:hover {
  color: #89B4FA;
  transition: all 0.3s ease;
}

.hero-text {
  animation: move-bg 15s linear infinite;
  background: -webkit-linear-gradient(left, #89B4FA, #F38BA8, #A6E3A1);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  font-family: "Quicksand", sans-serif;
  font-weight: 800;
  line-height: 1.15;
}

.collection-card:hover {
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
  transform: scale(1.05);
}

.collection-card .card-body {
  background: rgba(0, 0, 0, 0.1);
  padding: 10px;
  width: 100%;
  height: 100%;
  color: white;
}

.brandlogonew {
  width: auto;
  max-width: 150px;
  height: 50px;
  padding: 10px;
  background-color: white;
  border: 1px solid #f7f7f7;
  border-radius: 5px;
}

.toast {
  position: absolute;
  top: 0;
  right: 0;
  opacity: 1;
  z-index: 9999;
}

.brandlogo {
  width: 200px; /* You can adjust this according to your needs */
  height: auto; /* This will maintain the aspect ratio of the image */
}

.brandlogosm {
  width: 80px; /* You can adjust this according to your needs */
  height: auto; /* This will maintain the aspect ratio of the image */
}

.highlight {
  padding: 15px;
  border: 2px #335eea;
  border-bottom-style: solid;
  background-color: rgba(199, 199, 199, 0.1450980392);
  border-radius: 5px;
}

.dropdown-menu {
  max-height: 300px;
  overflow-y: auto;
  z-index: 1055 !important;
}
.dropdown-menu .dropdown-item.active {
  color: var(--scrollbar-colour) !important;
}
.dropdown-menu .dropdown-item.active:hover {
  background-color: var(--button-colour);
  color: var(--text-colour) !important;
}

.sticky-top {
  z-index: 999 !important;
}

.list-view-table .sticky-top {
  z-index: 999 !important;
}
.list-view-table .table tbody tr:hover {
  transform: none !important;
}
.list-view-table .table-hover > tbody > tr:hover > th,
.list-view-table .table-hover > tbody > tr:hover > td {
  background-color: var(--card-hover-colour, rgba(0, 0, 0, 0.025));
}

.workflow-header .dropdown-menu {
  z-index: 1060 !important;
}

@media (max-width: 767.98px) {
  .workflow-header {
    padding-top: 0.5rem !important;
    padding-bottom: 0 !important;
  }
  .workflow-title {
    font-size: 1.75rem !important;
  }
  .list-view-container {
    margin: 0.5rem !important;
  }
  .list-view-table th {
    padding: 0.4rem 0.5rem !important;
  }
  .list-view-table td {
    padding: 0.5rem !important;
  }
  .project-thumbnail, .project-thumbnail-placeholder {
    width: 40px !important;
    height: 40px !important;
  }
}
.full-width {
  width: 100%;
  border-radius: 10px; /* Add this to round the corners */
  overflow: hidden; /* Add this to ensure the rounded corners are visible */
}

.full-width td {
  padding: 10px; /* Add this to create padding on the cells */
}

.full-width tr:nth-child(even) {
  background-color: #fafafa;
}

.card.card-body {
  border-radius: 10px; /* Add this to round the corners of the card */
  overflow: hidden; /* Add this to ensure the rounded corners are visible */
}

.hidden-column {
  display: none;
}

.kanbancardscroll {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  background-color: rgba(255, 255, 255, 0);
  overflow-y: auto;
  white-space: nowrap;
  width: 100%;
  max-height: 65vh;
  contain: layout;
  transform: translateZ(0);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(155, 155, 155, 0.3) transparent;
}
.kanbancardscroll::-webkit-scrollbar {
  width: 6px;
}
.kanbancardscroll::-webkit-scrollbar-track {
  background: transparent;
}
.kanbancardscroll::-webkit-scrollbar-thumb {
  background: rgba(155, 155, 155, 0.3);
  border-radius: 3px;
}
.kanbancardscroll::-webkit-scrollbar-thumb:hover {
  background: rgba(155, 155, 155, 0.5);
}
@media (max-width: 768px) {
  .kanbancardscroll { /* Adjust breakpoint as needed */
    scroll-snap-align: center;
  }
}

.calendarscroll {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  background-color: rgba(255, 255, 255, 0);
  overflow-y: auto;
  white-space: nowrap;
  width: 100%;
  max-height: 100vh;
  /* Make scrollbar hardly visible */
}
.calendarscroll::-webkit-scrollbar {
  width: 3px;
}
.calendarscroll::-webkit-scrollbar-track {
  background: transparent;
}
.calendarscroll::-webkit-scrollbar-thumb {
  background: rgba(61, 61, 61, 0.1) !important;
}

.fakeinput {
  padding: 10px;
  border-style: solid;
  border-width: 1px;
  color: #4e4e4e;
  border-color: #dddddd;
  border-radius: 5px;
}

.profile-pic {
  height: 40px;
  width: 40px;
  border-radius: 100%;
  border-width: 1px;
  border-color: #dddddd;
  border-style: solid;
  padding: 2px;
  cursor: pointer;
}

.profile-pic-2 {
  height: 80px;
  width: 80px;
  border-radius: 100%;
  border-width: 1px;
  border-color: #dddddd;
  border-style: solid;
  padding: 2px;
}

.profile-pic-3 {
  height: 220px;
  width: 220px;
  border-radius: 30%;
  border-width: 1px;
  border-color: #dddddd;
  border-style: solid;
  padding: 2px;
}

.profile-pic-tiny {
  height: 20px;
  width: 20px;
  border-radius: 100%;
  border-width: 1px;
  border-color: #dddddd;
  border-style: solid;
  padding: 2px;
}

.comment-container {
  margin: 1rem 0;
  max-width: 85%;
}

.comment-metadata {
  font-size: 0.8rem;
  color: #666;
  margin: 0.3rem 0;
}
.comment-metadata.right {
  text-align: right;
}

.comment-images {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.comment-images.right {
  justify-content: flex-end;
}

.align-left {
  display: flex;
  justify-content: flex-start; /* Aligns content to the left */
  text-align: left;
}

.align-right {
  display: flex;
  justify-content: flex-end; /* Aligns content to the right */
  text-align: right;
}

.body {
  font-family: "Quicksand", sans-serif;
}

.justpeachy .image-mask {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  border-radius: 2px;
  left: 0;
  background: linear-gradient(to right, rgba(255, 255, 255, 0.952), rgba(255, 255, 255, 0.103));
  z-index: 1;
}

.justpeachy > * {
  position: relative;
  z-index: 2;
}

.custom-file-input {
  display: none;
}

.custom-file-upload {
  display: inline-block;
  cursor: pointer;
}

.smallcard {
  min-width: 35px;
  max-width: 200px;
  border-style: solid;
  border-radius: 5px;
  padding: 10px;
  border-color: #f7f7f7;
  background-color: #000;
  border-width: 1px;
  margin-bottom: 10px;
}

.style_image {
  box-shadow: rgba(0, 0, 0, 0.12) 0px 0px 30px 0px;
  border-radius: 100px;
  border-top-left-radius: 300px;
  max-width: 100%;
  height: auto;
}

.style_image_reversed {
  box-shadow: rgba(0, 0, 0, 0.12) 0px 0px 30px 0px;
  border-radius: 100px;
  border-top-left-radius: 300px;
  max-width: 100%;
  height: auto;
  border-top-right-radius: 300px;
}

/* Default height for small devices */
#intro-example {
  height: 400px;
}

/* Height for devices larger than 992px */
@media (min-width: 992px) {
  #intro-example {
    height: 800px;
  }
}
/* Default height for small devices */
#intro-example-small {
  height: 400px;
}

/* Height for devices larger than 992px */
@media (min-width: 992px) {
  #intro-example-small {
    height: 300px;
  }
}
/* Default height for small devices */
#intro-example-card {
  height: 400px;
}

/* Height for devices larger than 992px */
@media (min-width: 280px) {
  #intro-example-card {
    height: 200px;
  }
}
.layout {
  height: 400px;
  min-width: 280px;
  width: auto;
}

.rotate-small {
  transform: rotate(-1deg);
  transition: transform 0.3s ease;
}

.mention {
  font-weight: bold; /* Bold text */
  font-style: italic; /* Italic text */
}

.no-borders {
  border: none;
  border-collapse: collapse;
}

.no-borders td {
  border: none;
}

#loaderr {
  border: 16px solid #f3f3f3;
  border-radius: 50%;
  border-top: 16px solid #3498db;
  width: 10px;
  height: 10px;
  animation: spin 2s linear infinite;
  position: relative; /* Change this line */
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.switch-div {
  width: 50%;
}

@media only screen and (max-width: 800px) {
  .switch-div:first-child {
    display: none;
  }
  .switch-div {
    width: 100%;
  }
}
.switch-div2 {
  width: 70%;
}

@media only screen and (max-width: 600px) {
  .switch-div2 {
    width: 100%;
  }
}
.switch-div3 {
  width: 20%;
}

@media only screen and (max-width: 600px) {
  .switch-div3 {
    width: 100%;
  }
}
#intro-example2 {
  height: 800px;
}

#sidebar {
  width: 50px;
  transition: width 0.5s;
}

#sidebar:hover {
  width: 200px;
}

/* INFOBOX */
.infobox {
  background-color: #fffdf9;
  border-radius: 15px;
  border-style: solid;
  border-width: 1px;
  border-color: #f7f7f7;
  padding: 14px;
}

/* INFOBOX */
#leadboard {
  border-radius: 8px;
  border-style: solid;
  border-width: 1px;
  border-color: #f7f7f7;
  padding: 14px;
}

#alertbox {
  background-color: rgba(51, 94, 234, 0.1529411765);
  border-radius: 5px;
  padding: 10px;
}

.scrolling-wrapper-flexbox {
  scroll-snap-type: x mandatory;
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  cursor: grab;
}

.scrolling-wrapper-flexbox:active {
  cursor: grabbing;
}

.card {
  flex: 0 0 auto;
}

div.scrollmenu {
  overflow: auto;
  white-space: nowrap;
}

div.scrollmenu a {
  display: inline-block;
  text-align: center;
  padding: 14px;
  text-decoration: none;
}

@media (max-width: 600px) {
  #floating-menu {
    display: flex;
    gap: 10px;
    flex-direction: row;
    position: fixed;
    bottom: 2%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #fffdf9;
    padding: 10px;
    max-width: 320px;
    border-radius: 5px 5px 0px 0px;
    z-index: 10000;
    border-style: solid;
    border-width: 1px;
    border-color: #ddd;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    overflow-x: auto;
    white-space: nowrap;
  }
  #floating-menu p {
    margin: 0 0 10px 0;
    text-align: center;
  }
  #floating-menu a {
    color: #4e4e4e;
    text-decoration: none;
  }
}
@media (min-width: 601px) {
  #floating-menu {
    display: none;
  }
}
.scrolling-wrapper-flexbox {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
}
.scrolling-wrapper-flexbox .card {
  flex: 0 0 auto;
}

.mapcontainer {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding-top: 56.25%; /* 16:9 Aspect Ratio (divide 9 by 16 = 0.5625) */
}

/* Then style the iframe to fit in the container div with full height and width */
.responsive-iframe {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
}

.footer {
  margin-top: auto;
  left: 0;
  bottom: 0;
  width: 100%;
  background-color: red;
  color: white;
  text-align: center;
}

.map {
  height: 100%;
  width: 100%;
  border-radius: 10px;
}

/* CSS */
.button-4 {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #FAFBFC;
  border: 1px solid rgba(27, 31, 35, 0.15);
  border-radius: 6px;
  box-shadow: rgba(27, 31, 35, 0.04) 0 1px 0, rgba(255, 255, 255, 0.25) 0 1px 0 inset;
  box-sizing: border-box;
  color: #24292E;
  cursor: pointer;
  display: inline-block;
  font-family: -apple-system, system-ui, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  list-style: none;
  padding: 6px 16px;
  position: relative;
  transition: background-color 0.2s cubic-bezier(0.3, 0, 0.5, 1);
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  vertical-align: middle;
  white-space: nowrap;
  word-wrap: break-word;
}

.button-4:hover {
  background-color: #F3F4F6;
  text-decoration: none;
  transition-duration: 0.1s;
}

.button-4:disabled {
  background-color: #FAFBFC;
  border-color: rgba(27, 31, 35, 0.15);
  color: #959DA5;
  cursor: default;
}

.button-4:active {
  background-color: #EDEFF2;
  box-shadow: rgba(225, 228, 232, 0.2) 0 1px 0 inset;
  transition: none 0s;
}

.button-4:focus {
  outline: 1px transparent;
}

.button-4:before {
  display: none;
}

.button-4:-webkit-details-marker {
  display: none;
}

.mdui-input {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 50px;
  background-color: #fafafa;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 0 16px;
  font-size: 16px;
  line-height: 50px;
  color: #212121;
  cursor: text;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition: border-color 0.3s, box-shadow 0.3s;
}
.mdui-input:focus {
  border-color: #6200ea;
  box-shadow: 0 4px 8px rgba(98, 0, 234, 0.2);
  outline: none;
}
.mdui-input:hover {
  border-color: #bb86fc;
}

.mdui-select {
  position: relative;
  display: inline-flex;
  min-width: 10px;
  width: auto;
  max-width: 100%;
  height: 50px;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 0 16px;
  font-size: 16px;
  line-height: 50px;
  color: #333;
  cursor: pointer;
  flex-grow: 1;
  transition: all 0.3s ease;
}
.mdui-select:hover {
  border-color: #888;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.mdui-select:focus {
  outline: none;
  border-color: #007BFF;
}

.mdui-select::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid #666;
  transition: all 0.3s ease;
}

.input-group-append .mdui-btn {
  border: 1px solid #ccc;
  border-radius: 0 8px 8px 0;
  background-color: #fff;
  height: 50px;
  font-size: 16px;
  line-height: 50px;
  padding: 0 16px;
  cursor: pointer;
  transition: all 0.3s ease;
}
.input-group-append .mdui-btn:hover {
  border-color: #888;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.input-group-append .mdui-btn:focus {
  outline: none;
  border-color: #007BFF;
}

.mdui-select.open::after {
  transform: translateY(-50%) rotate(180deg);
}

.mdui-select.open .mdui-select-options {
  display: block;
}

.mdui-select-options {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  max-height: 200px;
  overflow-y: auto;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  z-index: 999;
  display: none;
}

.mdui-select-option {
  padding: 8px 12px;
  font-size: 14px;
  color: #333;
  cursor: pointer;
}

.mdui-select-option:hover {
  background-color: #f5f5f5;
}

.mdui-select-option.selected {
  background-color: #f0f0f0;
}

.leadbadge10 {
  padding: 3px;
  border-width: 1px;
  border-color: #335eea;
  border-radius: 3px;
  background-color: #ffffff;
  color: #335eea;
}

.leadbadge1 {
  padding: 3px;
  border-width: 1px;
  border-color: #f47424;
  border-radius: 3px;
  background-color: transparent;
  color: #f47424;
}

.weather {
  height: 40px;
  max-width: 100px;
  padding: 3px;
  border-style: solid;
  border-width: 1px;
  border-color: #f7f7f7;
  border-radius: 5px;
  background-color: #ffffff;
  color: #000000;
}

::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background-color: transparent !important;
  margin: 8px 0;
}

::-webkit-scrollbar-button {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  background: transparent !important;
}

::-webkit-scrollbar-button:start:decrement,
::-webkit-scrollbar-button:end:increment {
  display: none !important;
}

::-webkit-scrollbar-corner {
  background: transparent !important;
}

::-webkit-scrollbar-thumb {
  background-color: var(--scrollbar-colour) !important;
  border-radius: 8px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

::-webkit-scrollbar-thumb:hover {
  background-color: var(--secondary-colour) !important;
}

/* ===========================
   Mobile Bottom Navigation
   =========================== */
.mobile-bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 64px;
  background-color: var(--card-colour, #fcfcfc);
  border-top: 1px solid var(--border-colour, #dddddd);
  display: flex;
  justify-content: space-around;
  align-items: center;
  z-index: 1050;
  padding-bottom: env(safe-area-inset-bottom, 0);
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
}

.mobile-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: var(--text-colour, #4e4e4e);
  opacity: 0.7;
  transition: all 0.2s ease;
  padding: 8px 12px;
  border-radius: 8px;
  background: none;
  border: none;
  font-family: inherit;
  cursor: pointer;
  min-width: 60px;
}
.mobile-nav-item i {
  font-size: 1.25rem;
  margin-bottom: 2px;
}
.mobile-nav-item span {
  font-size: 0.65rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.mobile-nav-item:hover, .mobile-nav-item:focus {
  opacity: 1;
  color: var(--secondary-colour, #f47424);
}
.mobile-nav-item.active {
  opacity: 1;
  color: var(--secondary-colour, #f47424);
}
.mobile-nav-item.active i {
  transform: scale(1.1);
}

.mobile-nav-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  background-color: var(--secondary-colour, #f47424);
  color: #fff;
  font-size: 0.6rem;
  font-weight: 600;
  padding: 2px 5px;
  border-radius: 10px;
  min-width: 16px;
  text-align: center;
}

/* Mobile Menu Offcanvas */
.mobile-menu-offcanvas {
  height: auto !important;
  max-height: 70vh;
  border-radius: 16px 16px 0 0;
}
.mobile-menu-offcanvas .offcanvas-header {
  border-bottom: 1px solid var(--border-colour, #dddddd);
  padding: 1rem 1.5rem;
}
.mobile-menu-offcanvas .offcanvas-body {
  padding: 1rem;
}

.mobile-menu-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
}

.mobile-menu-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: var(--text-colour, #4e4e4e);
  padding: 1rem 0.5rem;
  border-radius: 12px;
  transition: all 0.2s ease;
  background-color: var(--background-colour, #fffdf9);
  border: 1px solid var(--border-colour, #dddddd);
}
.mobile-menu-item .mobile-menu-icon {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--card-colour, #fef7e6);
  border-radius: 12px;
  margin-bottom: 0.5rem;
}
.mobile-menu-item .mobile-menu-icon i {
  font-size: 1.25rem;
  color: var(--secondary-colour, #f47424);
}
.mobile-menu-item span {
  font-size: 0.7rem;
  font-weight: 500;
  text-align: center;
  line-height: 1.2;
}
.mobile-menu-item:hover, .mobile-menu-item:active {
  background-color: var(--card-colour, #fef7e6);
  border-color: var(--border-colour, #f47424);
  transform: translateY(-2px);
}

/* Add bottom padding to content when mobile nav is present */
@media (max-width: 991.98px) {
  .layoutcontent {
    padding-bottom: 80px;
  }
}
.newbadge {
  background-color: #f47424;
  border-radius: 7px;
  padding: 5px;
  margin: 5px;
  border-width: 0.1rem;
  color: white;
}

#BIGHERO {
  padding-top: 25px;
  padding-bottom: 55px;
  background: linear-gradient(90deg, rgb(244, 116, 36) 17%, rgb(237, 170, 8) 59%, rgb(204, 136, 40) 84%);
  border-radius: 0 0 50% 0%/50px;
}

.vicediv {
  background-image: linear-gradient(43deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%);
  width: 100%;
  height: 100px;
  border-radius: 50% 0 0% 0%/50px;
}

.whitebutton {
  border-style: solid;
  background-color: #000000;
  color: white;
  padding: 10px;
  border-color: white;
  border-radius: 5px;
}

.whitebutton:hover {
  background-color: #40068b;
}

.sticky-div {
  position: sticky;
  top: 0;
  height: 200px;
  width: 300px;
  padding-top: 75px;
  padding-right: 10px;
}

#floating-panel {
  position: absolute;
  top: 100px;
  left: 15px;
  z-index: 5;
  padding: 5px;
  text-align: center;
  font-family: "Roboto", "sans-serif";
  line-height: 30px;
  padding-left: 10px;
}

.perspective {
  perspective: 500px;
}

.cardtilt {
  transition: transform 1s ease;
}
.cardtilt:hover {
  transform: rotateY(-2deg);
}

.tiny-button {
  display: inline-block;
  width: 200px; /* Adjust width as needed */
  height: 50px; /* Adjust height as needed */
  background-color: transparent;
  border: none;
  cursor: pointer;
  opacity: 0.4; /* Make the button almost invisible */
}

.lightborder {
  padding: 10px;
  border-radius: 10px;
  border: 1px solid #dddddd;
}

.tiny-button:hover {
  opacity: 0.9; /* Make the button more visible when hovered */
}

.button-81 {
  background-color: #1a202c;
  border: none;
  border-radius: 0.8rem;
  box-sizing: border-box;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "Quicksand Light", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
  padding: 0.6rem 1.2rem;
  text-align: center;
  text-decoration: none;
  transition: all 0.2s ease-in-out;
  box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}
.button-81:disabled {
  background-color: #a0aec0;
  color: #718096;
  cursor: not-allowed;
}

.button-81:hover {
  background-color: #000;
  color: #fff;
  transform: scale(1.01);
}

@media (min-width: 768px) {
  .button-81 {
    font-size: 1.1rem;
    padding: 0.6rem 1.2rem;
  }
}
.reveal {
  opacity: 0;
  transform: scale(0.8) translateY(20%);
}

.reveal-animation {
  animation: slideZoomIn 1.2s ease-out forwards;
}

@keyframes slideZoomIn {
  0% {
    transform: scale(0.8) translateY(20%);
    opacity: 0;
  }
  100% {
    transform: scale(1) translateY(0);
    opacity: 1;
  }
}
.reveal-side {
  opacity: 0;
  transform: translateX(-100px);
  visibility: hidden;
}

.reveal-side-animation {
  animation: slideInFromLeft 0.8s ease forwards;
  visibility: visible;
}

@keyframes slideInFromLeft {
  0% {
    opacity: 0;
    transform: translateX(-100px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
.reveal-center {
  opacity: 0;
  transform: scale(1);
}

.reveal-center-animation {
  animation: pulsateIn 0.6s ease-out forwards;
}

@keyframes pulsateIn {
  0% {
    opacity: 0;
    transform: scale(0.95);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.02);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes glitch {
  0% {
    clip-path: var(--slice-1);
    transform: translate(-20px, -10px);
  }
  10% {
    clip-path: var(--slice-3);
    transform: translate(10px, 10px);
  }
  20% {
    clip-path: var(--slice-1);
    transform: translate(-10px, 10px);
  }
  30% {
    clip-path: var(--slice-3);
    transform: translate(0px, 5px);
  }
  40% {
    clip-path: var(--slice-2);
    transform: translate(-5px, 0px);
  }
  50% {
    clip-path: var(--slice-3);
    transform: translate(5px, 0px);
  }
  60% {
    clip-path: var(--slice-4);
    transform: translate(5px, 10px);
  }
  70% {
    clip-path: var(--slice-2);
    transform: translate(-10px, 10px);
  }
  80% {
    clip-path: var(--slice-5);
    transform: translate(20px, -10px);
  }
  90% {
    clip-path: var(--slice-1);
    transform: translate(-10px, 0px);
  }
  100% {
    clip-path: var(--slice-1);
    transform: translate(0);
  }
}
@media (min-width: 768px) {
  .button-49,
  .button-49:after {
    width: 80px;
    height: 32px;
    line-height: 32px;
  }
}
.tooltip-inner {
  background-color: #000000 !important;
  max-width: 450px !important;
  width: auto !important;
  color: #fff;
}

.collection-check-box input[type=checkbox] {
  display: none;
}

.collection-check-box input[type=checkbox]:checked + label {
  background-color: #f47424;
}

.collection-check-box label {
  padding: 10px;
  background-color: #757575;
  border-radius: 5px;
  margin: 5px;
  color: #f7f7f7;
  transition: background-color 0.3s ease;
}

.responsive-iframe1 {
  position: relative;
  overflow: hidden;
  padding-top: 56.25%; /* 16:9 Aspect Ratio */
}

.responsive-iframe1 iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.feature-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.feature-list li {
  margin-bottom: 10px; /* adjust as needed */
}

.sidebar {
  width: 50px;
  height: 100%;
  background-color: #f8fafc;
  border-radius: 3px;
  transition: width 0.5s;
  display: flex; /* Added this line */
  flex-direction: column; /* Added this line */
  justify-content: center; /* Added this line */
}

.sidebar:hover {
  width: 200px;
}

.sidebar a {
  padding-left: 10px;
  display: flex;
  align-items: center;
  height: 50px;
  color: #4e4e4e;
  text-decoration: none;
  transition: padding 0.5s;
}

.sidebar a .icon {
  margin: 0 10px;
}

.sidebar:hover a {
  padding-left: 10px;
}

.sidebar a .text {
  display: none;
  padding-left: 10px;
  transition: all 0.5s;
}

.sidebar:hover a .text {
  display: block;
}

.menu-toggle {
  position: fixed;
  bottom: 75px;
  right: 10px;
  display: none;
  border-radius: 50%; /* Makes the button circular */
  padding: 10px 20px; /* Adjust as needed */
}

.menu-toggle .bi {
  font-size: 1em; /* Makes the icon larger */
}

@media (min-width: 600px) {
  .menu {
    position: sticky;
    top: 125px;
    height: 500px;
    display: flex;
    flex-direction: column;
  }
}
@media (max-width: 599px) {
  .menu {
    position: fixed; /* Added this */
    top: 60px;
    padding: 15px;
    width: 100%; /* Added this */
    height: 100%; /* Added this */
    background-color: #fafafa;
    display: none;
    z-index: 1000; /* Added this */
  }
  .menu-toggle {
    display: inline-block;
    z-index: 1000; /* Added this */
    border-radius: 50%; /* Makes the button circular */
    padding: 10px 20px; /* Adjust as needed */
  }
}
.button-14 {
  display: inline-block;
  color: #fff;
  min-width: 200px;
  background-color: #0f172a;
  border: none;
  width: 100%;
  text-align: center;
  padding: 15px;
  border-radius: 5px;
  margin-top: 5px;
  box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2);
  transition: background-color 0.3s ease;
}

.button-14:hover {
  background-color: #000;
  color: white;
}

.button-15 {
  display: inline-block;
  color: white;
  min-width: 400px;
  background-color: #4e4e4e;
  text-align: center;
  padding: 15px;
  border-radius: 5px;
  margin-top: 5px;
  box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2); /* Add a light box shadow */
}

.current-stage {
  background-color: #f47424;
  padding: 5px 10px;
  border-radius: 5px;
  color: white;
}

.current-stage a {
  color: white;
}

.current-stage a:hover {
  color: white;
}

.big-beautiful-checkbox {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  width: 22px;
  height: 22px;
  border: 2px solid #e0e0e0;
  border-radius: 2px;
  background-color: white;
  cursor: pointer;
  position: relative;
  transition: all 0.2s ease;
}
.big-beautiful-checkbox:hover {
  border-color: #f47424;
  box-shadow: 0 0 0 3px rgba(244, 116, 36, 0.1);
}
.big-beautiful-checkbox:checked {
  background-color: #f47424;
  border-color: #f47424;
}
.big-beautiful-checkbox:checked::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 6px;
  height: 12px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  animation: checkmark 0.2s ease-in-out;
}
.big-beautiful-checkbox:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(244, 116, 36, 0.2);
}
.big-beautiful-checkbox:disabled {
  background-color: #f5f5f5;
  border-color: #ddd;
  cursor: not-allowed;
}

@keyframes checkmark {
  0% {
    transform: rotate(45deg) scale(0);
    opacity: 0;
  }
  100% {
    transform: rotate(45deg) scale(1);
    opacity: 1;
  }
}
@keyframes gentlePulse {
  0% {
    transform: scale(1);
    filter: drop-shadow(0 0 0 rgba(137, 180, 250, 0));
  }
  50% {
    transform: scale(1.08);
    filter: drop-shadow(0 0 6px rgba(137, 180, 250, 0.45));
  }
  100% {
    transform: scale(1);
    filter: drop-shadow(0 0 0 rgba(137, 180, 250, 0));
  }
}
.rmenu-toggle {
  position: fixed;
  bottom: 75px;
  right: 10px;
  display: none;
  border-radius: 50%; /* Makes the button circular */
  padding: 10px 20px; /* Adjust as needed */
}

.rmenu-toggle .bi {
  font-size: 1em; /* Makes the icon larger */
}

@media (min-width: 600px) {
  .rmenu {
    position: sticky;
    top: 125px;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
}
@media (max-width: 599px) {
  .rmenu {
    position: fixed; /* Added this */
    width: 100%; /* Added this */
    height: auto; /* Added this */
    background-color: #fafafa;
    display: none;
    z-index: 1000; /* Added this */
  }
  .rmenu-toggle {
    display: inline-block;
    z-index: 1000; /* Added this */
    border-radius: 50%; /* Makes the button circular */
    padding: 10px 20px; /* Adjust as needed */
  }
}
.big-poppy-input {
  width: 100%;
  font-size: 16px;
  padding: 15px;
  border: 2px solid #ccc;
  border-radius: 5px;
  background-color: #f5f5f5;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition: border-color 0.3s, box-shadow 0.3s;
}

.big-poppy-input:focus {
  border-color: #4e4e4e;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.big-poppy-input-2 {
  font-size: 16px;
  background-color: #f9f9f9;
  color: #333333;
  border-radius: 4px;
  border-style: solid;
  border-color: #e0e0e0;
  border-width: 1px;
  padding: 10px;
  width: 100%;
  max-width: 500px;
  margin-bottom: 10px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.progress-bar-2 {
  position: static;
  top: 0;
  left: 0;
  height: 0;
  width: 4px;
  border-radius: 5px;
  background-color: #335eea;
  transition: height 0.2s;
}

.dangerzone {
  padding: 10px;
  border-radius: 10px;
  color: white;
  background-image: linear-gradient(75deg, #FF9A8B 0%, #FF6A88 55%, #FF99AC 100%);
}

.justpeachy {
  padding: 10px;
  border-radius: 10px;
  background-color: #fef7e6;
}

.google-style-upload {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border: 1px dashed #c7c7c7;
  padding: 20px;
  border-radius: 10px;
  width: 100%;
  flex-grow: 1;
  cursor: pointer;
  background-color: #f2f2f2;
}

.google-style-upload:hover {
  border-color: #aaa;
  background-color: #eaeaea;
}

.google-style-upload .upload-icon {
  font-size: 24px;
  color: #ff0000;
  margin-bottom: 10px;
}

.google-style-upload .upload-text {
  font-size: 14px;
  color: #555;
}

.cover-image {
  width: 100%;
  height: 300px;
  border-radius: 10px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.rounded-right {
  border-radius: 0 10px 10px 0;
}

.rounded-left {
  border-radius: 10px 0px 0px 10px;
}

.funky {
  color: white;
  padding: 25px;
  background-color: #440044;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1500 1000'%3E%3Cdefs%3E%3Cg id='a789'%3E%3Ccircle fill='%234b0147' r='.5' /%3E%3Ccircle fill='%23510149' cx='20' r='1' /%3E%3Ccircle fill='%2358024b' cx='40' r='1.5' /%3E%3Ccircle fill='%235f034d' cx='60' r='2' /%3E%3Ccircle fill='%23660550' cx='80' r='2.5' /%3E%3Ccircle fill='%236c0752' cx='100' r='3' /%3E%3Ccircle fill='%23730953' cx='120' r='3.5' /%3E%3Ccircle fill='%237a0b55' cx='140' r='4' /%3E%3Ccircle fill='%23810e57' cx='160' r='4.5' /%3E%3Ccircle fill='%23881158' cx='180' r='5' /%3E%3Ccircle fill='%238e145a' cx='200' r='5.5' /%3E%3Ccircle fill='%2395175b' cx='220' r='6' /%3E%3Ccircle fill='%239c1b5c' cx='240' r='7' /%3E%3Ccircle fill='%23a31e5d' cx='260' r='7.5' /%3E%3Ccircle fill='%23a9215e' cx='280' r='8' /%3E%3Ccircle fill='%23b0255f' cx='300' r='8.5' /%3E%3Ccircle fill='%23b7295f' cx='320' r='9' /%3E%3Ccircle fill='%23bd2d60' cx='340' r='9.5' /%3E%3Ccircle fill='%23c43160' cx='360' r='10' /%3E%3Ccircle fill='%23ca3560' cx='380' r='10.5' /%3E%3Ccircle fill='%23d03961' cx='400' r='11' /%3E%3Ccircle fill='%23d63d61' cx='420' r='11.5' /%3E%3Ccircle fill='%23dd4261' cx='440' r='12' /%3E%3Ccircle fill='%23e34661' cx='460' r='12.5' /%3E%3Ccircle fill='%23e94b61' cx='480' r='13' /%3E%3Ccircle fill='%23ee5060' cx='500' r='13.5' /%3E%3Ccircle fill='%23f45560' cx='520' r='14' /%3E%3Ccircle fill='%23fa5a60' cx='540' r='14.5' /%3E%3Ccircle fill='%23FF5F5F' cx='560' r='15' /%3E%3Cpath fill='%23FF5F5F' d='M560-15h9999v30H560z' /%3E%3C/g%3E%3Cg id='b'%3E%3Cuse href='%23a'%3E%3C/use%3E%3Cuse y='20' href='%23a'%3E%3C/use%3E%3Cuse y='40' href='%23a'%3E%3C/use%3E%3Cuse y='60' href='%23a'%3E%3C/use%3E%3Cuse y='80' href='%23a'%3E%3C/use%3E%3C/g%3E%3Cg id='c'%3E%3Cuse href='%23b'%3E%3C/use%3E%3Cuse y='100' href='%23b'%3E%3C/use%3E%3Cuse y='200' href='%23b'%3E%3C/use%3E%3Cuse y='300' href='%23b'%3E%3C/use%3E%3Cuse y='400' href='%23b'%3E%3C/use%3E%3Cuse y='500' href='%23b'%3E%3C/use%3E%3C/g%3E%3C/defs%3E%3Cg transform='rotate(270 750 500)'%3E%3Cg transform='translate(750 250) rotate(90)'%3E%3Cuse transform='translate(0 600)' href='%23c'%3E%3C/use%3E%3Cuse href='%23c'%3E%3C/use%3E%3Cuse transform='translate(0 -600)' href='%23c'%3E%3C/use%3E%3Cuse transform='translate(0 -1200)' href='%23c'%3E%3C/use%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-size: cover;
}

.no-wrap {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nav-link,
.dropdown-toggle {
  position: relative;
  color: #335eea;
  text-decoration: none;
}

.nav-link::after,
.dropdown-toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(to right, #89b4fa 0%, #f38ba8 50%, #cba6f7 100%);
  transition: width 0.3s ease, left 0.3s ease;
}

.nav-link:hover::after,
.nav-link:focus::after,
.dropdown-toggle:hover::after,
.dropdown-toggle:focus::after {
  width: 100%;
  left: 0;
}

.maingrad {
  background: linear-gradient(90deg, rgb(244, 116, 36) 17%, rgb(237, 170, 8) 59%, rgb(204, 136, 40) 84%);
}

.darkgrad {
  background-image: linear-gradient(to right, #0f0c29, #302b63, #24243e);
}

.darkgrad2 {
  background: linear-gradient(to right, rgba(67, 67, 67, 0.3) 0%, rgba(0, 0, 0, 0.8) 100%);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.chart-container {
  width: 100%;
  overflow: hidden;
}
@media (max-width: 768px) {
  .chart-container {
    margin-bottom: 2rem;
  }
}

.rocket {
  background-image: url(/assets/design/launch-day-8cfcf9f0f65eafcbee3f16a485130ac25fee35fbef135b875a8d095d97d2bad1.svg);
  background-attachment: fixed;
  background-size: cover;
  padding: 25px;
  border-radius: 10px;
}

.rocket2 {
  background-color: #00bbff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='a' gradientUnits='objectBoundingBox' x1='0' y1='0' x2='100%25' y2='0'%3E%3Cstop offset='0.16' stop-color='%23cccccc'/%3E%3Cstop offset='0.5' stop-color='%23FFF'/%3E%3Cstop offset='1' stop-color='%23cccccc'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' gradientUnits='objectBoundingBox' x1='100%25' y1='0' x2='0' y2='0'%3E%3Cstop offset='0' stop-color='%23eeeeee'/%3E%3Cstop offset='1' stop-color='%23dddddd'/%3E%3C/linearGradient%3E%3ClinearGradient id='c' gradientUnits='userSpaceOnUse' x1='0' y1='465' x2='0' y2='316'%3E%3Cstop offset='0' stop-color='%23FFF'/%3E%3Cstop offset='0.5' stop-color='%2300bbff'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg stroke='%23abdcff' stroke-width='20'%3E%3Cpath fill='%23abdcff' d='M1228 900l-100 0l30-400l40 0z'/%3E%3C/g%3E%3Cg stroke='%23abdcff' stroke-width='10' stroke-miterlimit='10'%3E%3Cpath fill='%23FFF' d='M1531 635c-47.1 0-89.1 21.7-116.6 55.7C1385 673 1362 671 1331 698.4c-36-22.4-88-21.4-121.9 17.1c-23.1-13.5-41.1-15.5-65.6 4.6c-23.5-15.1-69.5-16.1-95.8 17.8C1028 726 997 733 987.3 760.8c-8.3-3.8-17.3-1.8-22.2 5c-33-29.8-61-30.8-92.5 0.4c-7.5-6.2-17.5-9.2-26.9-3.9c-9.5-23.3-38.5-38.3-67-21.9c-6.5-8.4-22.5-13.4-39.2-2.5C709 698 675 702 652.9 715.5C612 668 550 673 504.5 720.6C467 692 425 703 407.7 737.9C398 728 375 721 356 749.3c-11-19.3-29-21.3-47.5-12.7C284 688 243 672 187.6 690.7C160.1 656.7 118.1 635 71 635c-82.8 0-150 67.2-150 150v284h1760V785C1681 702.2 1613.8 635 1531 635z'/%3E%3C/g%3E%3Cpath fill='%23FFF' d='M1228 900l-100 0l30-400l40 0z'/%3E%3Cpath fill='%23D33' d='M1120.6 524c-1.2-5.2-7.4-7.4-11.7-4.3c-5.7 4.2-12.3 9.2-13.4 10.2c-14.8 14.5-25 34.5-29.7 54.6c-1.4 6-6.7 23.9-1.8 28.9c5.9 5.9 18.6-3.7 23.4-7c9.3-6.2 18.7-13.6 30.7-12.8c17.6 1.1 7.8-47.4 2.5-69.6z'/%3E%3Cpath fill='url(/%23a)' d='M1245.8 460.2c-0.1-74.7-35.3-160.5-70.9-160.5c-35.6 0-70.7 85.7-70.9 160.3c0 0.4 0 0.7 0.1 1.1l15.2 132.1h115.5c3-36 11-132.9 11-133z'/%3E%3Cpath fill='%23D33' d='M1235.5 524c1.2-5.2 7.4-7.4 11.6-4.3c5.7 4.2 12.3 9.2 13.4 10.2c14.7 14.5 24.9 34.5 29.6 54.6c1.4 6 6.7 23.9 1.8 28.9c-5.9 5.9-18.5-3.7-23.4-7c-9.3-6.2-18.6-13.6-30.7-12.8c-17.4 1.1-7.7-47.4-2.3-69.6z'/%3E%3Cpath fill='%23D33' d='M1119.3 593.2l1.6 13.6c0.5 4.7 4.5 8.2 9.1 8.2h94.5c4.9 0 8.9-3.8 9.2-8.6c0 0 0.4-5 1.1-13.2h-115.5z '/%3E%3Cpath fill='url(/%23b)' d='M1245.8 460.2c-0.1-74.7-35.3-160.5-70.9-160.5c-6 0 32.3 68.4 29.1 160.5c-0.4 13-8 99.5-11 133h41.7c3.1-36 11.1-132.9 11.1-133z'/%3E%3Cpath fill='%23c51523' d='M1193.1 593.2c-0.7 8.2-1.2 13.2-1.2 13.2c-0.3 4.9-4.3 8.6-9.2 8.6h41.8c4.9 0 8.9-3.8 9.2-8.6c0 0 0.4-5 1.1-13.2h-41.7z'/%3E%3Cpath fill='%23FFF' d='M1175 372.9c-20.7 0-37.5 16.8-37.5 37.5s16.8 37.5 37.5 37.5c20.7 0 37.5-16.8 37.5-37.5s-16.8-37.5-37.5-37.5z'/%3E%3Cpath fill='url(/%23c)' d='M1175 378.2c-17.8 0-32.3 14.5-32.3 32.3s14.4 32.3 32.3 32.3c17.8 0 32.3-14.5 32.3-32.3s-14.5-32.3-32.3-32.3z'/%3E%3Cpath fill='%230082c2' d='M1146.5 414.3c0-17.8 14.4-32.3 32.3-32.3c7.9 0 15.2 2.9 20.8 7.6c-5.9-7-14.8-11.4-24.6-11.4c-17.8 0-32.3 14.5-32.3 32.3c0 9.9 4.4 18.7 11.4 24.7c-4.7-5.7-7.6-13-7.6-20.9z'/%3E%3Cpath fill='%23D33' d='M1175 299c-15.5 0-30.9 16.2-43.3 40.7c12 2.3 27 3.6 43.3 3.6c16.3 0 31.4-1.4 43.3-3.6c-12.5-24.5-27.9-40.7-43.3-40.7z'/%3E%3Cpath fill='%23c51523' d='M1176.9 299.1c-3.4 15.1 7.2 29.7 11.6 43.9c11-0.5 21.2-1.7 29.7-3.3c-11.8-23.4-26.4-39.3-41.3-40.6z'/%3E%3Cg fill='none' stroke-width='1'%3E%3Cpath stroke-opacity='.1' stroke='%23000' stroke-linecap='round' d='M1116 556.4c0 0 47.8 4.2 64.7 4.2c16.9 0 56.3-4.2 56.3-4.2'/%3E%3Cpath stroke-opacity='.2' stroke='%23FFF' stroke-linecap='round' d='M1116 557.4c0 0 47.8 4.2 64.7 4.2c16.9 0 56.3-4.2 56.3-4.2'/%3E%3C/g%3E%3Cpath fill='%23FFF' fill-opacity='0.3' d='M1204 410c0-13.8-9.6-25.3-22.5-28.3v56.5c12.9-2.9 22.5-14.4 22.5-28.2z'/%3E%3C/svg%3E");
  background-attachment: fixed;
  background-size: cover;
  padding: 25px;
  border-radius: 10px;
}

.green {
  padding: 10px;
  border-radius: 10px;
  background-color: #85FFBD;
  background-image: linear-gradient(45deg, #85FFBD 0%, #FFFB7D 100%);
}

.vl {
  border-left: 1px solid #000;
  height: 500px;
}

@media (max-width: 700px) {
  .vl {
    display: none;
  }
}
.niceinfo {
  margin-top: 10px;
  margin-bottom: 10px;
  display: inline-flex;
  gap: 0.5rem;
  flex-direction: row;
  background-color: #f8fafc;
  padding: 8px;
  border-radius: 5px;
  border-style: solid;
  border-color: #ddd;
  border-width: 1px;
}

.niceinfov {
  margin-top: 10px;
  margin-bottom: 10px;
  display: inline-flex;
  gap: 0.5rem;
  flex-direction: column;
  background-color: #f8fafc;
  padding: 8px;
  border-radius: 5px;
  border-style: solid;
  border-color: #ddd;
  border-width: 1px;
}

.topnumbers {
  margin-top: 10px;
  margin-bottom: 10px;
  display: inline-flex;
  gap: 1rem;
  flex-direction: row;
  padding: 8px;
  border-right: 1px solid #ccc;
}

.lasttopnumber {
  margin-top: 10px;
  margin-bottom: 10px;
  display: inline-flex;
  gap: 1rem;
  flex-direction: row;
  padding: 8px;
}

.power {
  height: 60px;
  width: 60px;
  background-size: cover;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="%23F47424"><path d="M16.3 10.1c.5 0 1 .4 1 1 0 .3-.2.7-.6.9-4.2 2.6-6.8 7-6.8 12 0 7.7 6.3 14 14 14h.6c7.3-.3 13.3-6.5 13.4-13.7.1-4.9-2.3-9.4-6.5-12-.2-.3-.4-.6-.4-1 0-.7.6-1 1-1 .2 0 .4.1.6.2 4.7 3 7.5 8 7.5 13.5 0 8.8-7.2 16-16 16-.6 0-1.2 0-1.8-.1C14.6 39.1 8.5 32.7 8 25c-.4-6 2.6-11.7 7.8-14.8.2 0 .4-.1.5-.1m0-2c-.5 0-1 .1-1.5.4-5.6 3.4-9.2 9.6-8.8 16.7.5 8.6 7.3 15.8 15.9 16.7.7.1 1.4.1 2.1.1 9.9 0 18-8.1 18-18 0-6.4-3.3-12-8.4-15.2-.5-.3-1.1-.5-1.6-.5-1.6 0-3 1.2-3 3 0 1 .6 2 1.4 2.6 3.4 2.2 5.6 6 5.5 10.3-.1 6.3-5.2 11.5-11.5 11.8h-.5c-6.6 0-12-5.4-12-12 0-4.4 2.3-8.2 5.8-10.3.9-.6 1.5-1.5 1.5-2.6.1-1.7-1.3-3-2.9-3z"></path><path d="M24 26c-1.1 0-2-.9-2-2V8c0-1.1.9-2 2-2s2 .9 2 2v16c0 1.1-.9 2-2 2z" fill="%23696969"></path></svg>');
}

.safe {
  height: 60px;
  width: 60px;
  background-size: cover;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="%23F47424"><path d="M24 11c1.9 2.4 5.2 4.7 10.1 4.7.9 0 1.9-.1 2.9-.2-.1 4.9-.7 11.4-1.8 13.6-1.2 2.3-7.1 6.8-11.2 9.5-4.1-2.7-10-7.2-11.2-9.5-1.1-2.2-1.6-8.7-1.8-13.6 1 .2 2 .2 2.9.2 4.9.1 8.2-2.3 10.1-4.7m0-4s-2.1 6.8-10.1 6.8c-1.4 0-3.1-.2-4.9-.8 0 0 0 13 2 17s13 11 13 11 11-7 13-11 2-17 2-17c-1.8.5-3.5.8-4.9.8C26.1 13.8 24 7 24 7z"></path><path d="M32.9 22.5c.1-.9.1-1.8.1-2.5-7 0-9-4-9-4s-2 4-9 4c0 .2.1 5.5 1 7 1 2 8 7 8 7s7-5 8-7c.5-1.1.8-2.9.9-4.5zm-8.9 9V24h-6.7c-.1-.7-.2-1.4-.2-2.1 3.4-.4 5.6-1.7 6.9-2.8v5h6.7c-.1.9-.3 1.7-.5 2.1-.4.7-3.3 3.2-6.2 5.3z" fill="%23696969"></path></svg>');
}

.reliable {
  height: 60px;
  width: 60px;
  background-size: cover;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="%23F47424"><path d="M24 7.5l1.3 1.3c.8.8 1.8 1.2 2.8 1.2H30v1.9c0 1.1.4 2.1 1.2 2.8l1.3 1.3-1.3 1.3c-.8.8-1.2 1.8-1.2 2.8V22h-1.9c-1.1 0-2.1.4-2.8 1.2L24 24.5l-1.3-1.3c-.8-.8-1.8-1.2-2.8-1.2H18v-1.9c0-1.1-.4-2.1-1.2-2.8L15.5 16l1.3-1.3c.8-.8 1.2-1.8 1.2-2.8V10h1.9c1.1 0 2.1-.4 2.8-1.2L24 7.5m0-2c-.5 0-1 .2-1.4.6l-1.3 1.3c-.4.4-.9.6-1.4.6H18c-1.1 0-2 .9-2 2v1.9c0 .5-.2 1-.6 1.4l-1.3 1.3c-.8.8-.8 2 0 2.8l1.3 1.3c.4.4.6.9.6 1.4V22c0 1.1.9 2 2 2h1.9c.5 0 1 .2 1.4.6l1.3 1.3c.4.4.9.6 1.4.6s1-.2 1.4-.6l1.3-1.3c.4-.4.9-.6 1.4-.6H30c1.1 0 2-.9 2-2v-1.9c0-.5.2-1 .6-1.4l1.3-1.3c.8-.8.8-2 0-2.8l-1.3-1.3c-.4-.4-.6-.9-.6-1.4V10c0-1.1-.9-2-2-2h-1.9c-.5 0-1-.2-1.4-.6l-1.3-1.3c-.4-.4-.9-.6-1.4-.6z"></path><path d="M21.3 26.6c-.4-.4-.9-.6-1.4-.6H17l-4 15 5-3 4 4 1-14-1.7-1.4zM31 26h-2.9c-.5 0-1 .2-1.4.6L25 28l1 14 4-4 5 3-4-15z" fill="%23696969"></path></svg>');
}

.challenge {
  height: 60px;
  width: 60px;
  background-size: cover;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="%23F47424"><path d="M28 12V6l7 3z" fill="%234E4E4E"></path><path d="M42 39.4L28 18.5V6c0-.6-.4-1-1-1s-1 .4-1 1v12.5l-6.5 9.8-2.7-4c-.2-.3-.5-.4-.8-.4s-.6.1-.8.4L5 39.4c-.4.7 0 1.6.8 1.6h35.3c.8 0 1.3-.9.9-1.6zm-11.8-14L29 26.6l-2-2-2 2-1.2-1.2 3.2-4.8 3.2 4.8zM12.3 39H7.7L16 26.6l2.3 3.4-6 9zm2.4 0l7.9-11.9 2.3 2.3 2-2 2 2 2.3-2.3L39.3 39H14.7z"></path></svg>');
}

.sun {
  height: 60px;
  width: 60px;
  background-size: cover;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="%23F47424"><path d="M14.4 12.5c1.3-1.1 2.9-2 4.6-2.6l-4.4-2.4-.2 5zM21.3 9.3c.9-.2 1.8-.3 2.7-.3s1.8.1 2.7.3L24 5l-2.7 4.3zM29.1 9.9c1.7.6 3.3 1.6 4.7 2.8l-.3-5.2-4.4 2.4zM43 24l-4.3-2.7c.2.9.3 1.8.3 2.7 0 .9-.1 1.8-.3 2.7 1.7-1 4.3-2.7 4.3-2.7zM40.5 14.5l-5-.1c1.1 1.3 2 2.9 2.6 4.6l2.4-4.5zM12.5 14.4l-5 .1 2.4 4.4c.6-1.7 1.5-3.2 2.6-4.5zM7.5 33.5l5 .1c-1.1-1.3-2-2.9-2.6-4.6l-2.4 4.5zM9 24c0-.9.1-1.8.3-2.7L5 24l4.3 2.7c-.2-.9-.3-1.8-.3-2.7zM35.3 33.8l5-.1-2.3-4.5c-.6 1.7-1.5 3.3-2.7 4.6zM33.5 40.5l.1-5c-1.3 1.1-2.9 2-4.6 2.6l4.5 2.4zM21.3 38.7L24 43l2.7-4.3c-.9.2-1.8.3-2.7.3s-1.8-.1-2.7-.3zM14.5 40.5l4.4-2.4c-1.7-.6-3.3-1.6-4.7-2.8l.3 5.2z" fill="%234E4E4E"></path><path d="M24 13c6.1 0 11 4.9 11 11s-4.9 11-11 11-11-4.9-11-11 4.9-11 11-11m0-2c-7.2 0-13 5.8-13 13s5.8 13 13 13 13-5.8 13-13-5.8-13-13-13z"></path></svg>');
}

.search-big {
  width: 50%;
  padding: 5px;
  border: none;
  border-radius: 4px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  font-size: 16px;
  transition: box-shadow 0.3s ease;
  background-color: #f8f8f8;
  color: #666;
}
@media (max-width: 700px) {
  .search-big {
    width: 100% !important;
  }
}

.search-big::-moz-placeholder {
  color: #757575;
}

.search-big::placeholder {
  color: #757575;
}

.search-big:focus {
  outline: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  background-color: #f8f8f8;
}

.form-check-input-checkbox {
  display: none;
}

.form-check-input {
  border-radius: 5px;
  width: 20px;
  height: 20px;
  margin-top: -2px;
  margin-right: 5px;
  vertical-align: middle;
}

.button-mdui {
  display: inline-block;
  font-weight: 400;
  color: #212121;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  background-color: #fce2e2;
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.button-mdui:hover {
  color: #212121;
  background-color: #FF8C8C;
}

.button-mdui:active {
  color: #212121;
  background-color: #FF6B6B;
}

.boxshadowboxer {
  box-shadow: rgba(0, 0, 0, 0.07) 0px 2px 15px -3px, rgba(0, 0, 0, 0.04) 0px 10px 20px -2px;
}

.invoice-input {
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  padding: 10px;
  margin-bottom: 10px;
  width: 100%;
}

.blankbutton {
  background-color: transparent;
  color: var(--text-colour);
  border: none;
  padding: 0;
  margin: 0;
  transition: color 0.3s ease;
}

.blankbutton:hover {
  color: var(--interaction);
}

@media (min-width: 769px) {
  .hide-unless-mobile {
    display: none;
  }
}
.zoom:hover {
  transform: scale(1.5);
  transition: transform 0.2s;
}

.scrollable-modal-body {
  max-height: 600px;
  overflow-y: auto;
}

.image-container:hover .img-fluid {
  opacity: 0.5;
}

.image-container:hover .edit-icon {
  display: block;
}

.edit-icon {
  display: none;
  color: black;
  font-size: 2rem;
}

.selected-quote {
  border-left: 2px solid #747474 !important; /* Change this to the color you want */
  border-right: 2px solid #747474 !important; /* Change this to the color you want */
  background-color: #e4f1ff !important; /* Change this to the color you want */
  color: rgb(0, 0, 0) !important; /* You might want to change the text color if the background is dark */
}

.comment {
  border: 1px solid #ddd;
  border-radius: 5px;
  padding: 15px;
  margin-bottom: 20px;
}

.clear-input {
  height: 15px;
  border: none;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  padding: 7px;
  font-size: 12px;
  line-height: 1;
  transition: color 0.3s ease;
}

.clear-input:hover {
  color: #335eea; /* Change to desired hover color */
}

.clear-input:focus {
  outline: none;
}

.nav-icon {
  font-size: 1.5rem;
  color: #4e4e4e;
  padding: 12px;
  border-radius: 50%;
  background-color: transparent;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-right: 12px;
  text-decoration: none;
  position: relative;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.nav-icon:hover {
  background: linear-gradient(145deg, #f0f0f0, #ffffff);
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
  color: #335eea;
}
.nav-icon.active {
  color: #f47424;
  background: linear-gradient(145deg, #fff5f0, #ffffff);
  box-shadow: 0 2px 8px rgba(244, 116, 36, 0.2);
}
.nav-icon.active:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(244, 116, 36, 0.25);
}

.spinner {
  margin: 100px auto;
  width: 50px;
  height: 40px;
  text-align: center;
  font-size: 10px;
}

.spinner > div {
  background-color: #333;
  height: 100%;
  width: 6px;
  display: inline-block;
  animation: sk-stretchdelay 1.2s infinite ease-in-out;
}

.spinner .rect2 {
  animation-delay: -1.1s;
}

.spinner .rect3 {
  animation-delay: -1s;
}

.spinner .rect4 {
  animation-delay: -0.9s;
}

.spinner .rect5 {
  animation-delay: -0.8s;
}
@keyframes sk-stretchdelay {
  0%, 40%, 100% {
    transform: scaleY(0.4);
    -webkit-transform: scaleY(0.4);
  }
  20% {
    transform: scaleY(1);
    -webkit-transform: scaleY(1);
  }
}
.dropdown9 {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border: none;
  color: blue;
  text-decoration: underline;
  cursor: pointer;
}

.dropdown9:hover {
  color: darkblue;
}

.zoom-effect {
  transform: scale(2.2); /* Adjust as needed */
  transition: transform 0.2s; /* Animation */
}

.glitch-button {
  background-color: #ff5f5f;
  border: 1px solid #d5d9d9;
  border-radius: 8px;
  box-shadow: rgba(213, 217, 217, 0.5) 0 2px 5px 0;
  box-sizing: border-box;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  min-height: 30px;
  font-family: "Amazon Ember", sans-serif;
  font-size: 13px;
  line-height: 29px;
  padding: 0 10px 0 11px;
  position: relative;
  text-align: center;
  text-decoration: none;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  vertical-align: middle;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.glitch-button:after {
  --slice-0: inset(50% 50% 50% 50%);
  --slice-1: inset(80% -6px 0 0);
  --slice-2: inset(50% -6px 30% 0);
  --slice-3: inset(10% -6px 85% 0);
  --slice-4: inset(40% -6px 43% 0);
  --slice-5: inset(80% -6px 5% 0);
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ff5f5f;
  color: #fff;
  text-shadow: -3px -3px 0px #F8F005, 3px 3px 0px #00E6F6;
  clip-path: var(--slice-0);
}

.glitch-button:hover:after {
  animation: 1s glitch;
  animation-timing-function: steps(2, end);
}

@keyframes glitch {
  0% {
    clip-path: var(--slice-1);
    transform: translate(-20px, -10px);
  }
  10% {
    clip-path: var(--slice-3);
    transform: translate(10px, 10px);
  }
  20% {
    clip-path: var(--slice-1);
    transform: translate(-10px, 10px);
  }
  30% {
    clip-path: var(--slice-3);
    transform: translate(0px, 5px);
  }
  40% {
    clip-path: var(--slice-2);
    transform: translate(-5px, 0px);
  }
  50% {
    clip-path: var(--slice-3);
    transform: translate(5px, 0px);
  }
  60% {
    clip-path: var(--slice-4);
    transform: translate(5px, 10px);
  }
  70% {
    clip-path: var(--slice-2);
    transform: translate(-10px, 10px);
  }
  80% {
    clip-path: var(--slice-5);
    transform: translate(20px, -10px);
  }
  90% {
    clip-path: var(--slice-1);
    transform: translate(-10px, 0px);
  }
  100% {
    clip-path: var(--slice-1);
    transform: translate(0);
  }
}
.glitch-effect:after {
  --slice-0: inset(50% 50% 50% 50%);
  --slice-1: inset(80% -6px 0 0);
  --slice-2: inset(50% -6px 30% 0);
  --slice-3: inset(10% -6px 85% 0);
  --slice-4: inset(40% -6px 43% 0);
  --slice-5: inset(80% -6px 5% 0);
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ff5f5f;
  color: #fff;
  text-shadow: -3px -3px 0px #F8F005, 3px 3px 0px #00E6F6;
  clip-path: var(--slice-0);
}

.glitch-effect-light:after {
  background: #f7f7f7;
}

.glitch-effect-blue:after {
  background: #0000ff;
}

.glitch-effect:hover:after {
  animation: 1s glitch;
  animation-timing-function: steps(2, end);
}

@keyframes glitch {
  0% {
    clip-path: var(--slice-1);
    transform: translate(-20px, -10px);
  }
  10% {
    clip-path: var(--slice-3);
    transform: translate(10px, 10px);
  }
  20% {
    clip-path: var(--slice-1);
    transform: translate(-10px, 10px);
  }
  30% {
    clip-path: var(--slice-3);
    transform: translate(0px, 5px);
  }
  40% {
    clip-path: var(--slice-2);
    transform: translate(-5px, 0px);
  }
  50% {
    clip-path: var(--slice-3);
    transform: translate(5px, 0px);
  }
  60% {
    clip-path: var(--slice-4);
    transform: translate(5px, 10px);
  }
  70% {
    clip-path: var(--slice-2);
    transform: translate(-10px, 10px);
  }
  80% {
    clip-path: var(--slice-5);
    transform: translate(20px, -10px);
  }
  90% {
    clip-path: var(--slice-1);
    transform: translate(-10px, 0px);
  }
  100% {
    clip-path: var(--slice-1);
    transform: translate(0);
  }
}
.card-link {
  color: inherit;
}

.card-image-container {
  width: 100%;
  height: 80%;
  overflow: hidden;
  position: relative;
}

.card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 10px;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.card-link:hover .card-overlay {
  opacity: 1;
}

.download-btn {
  background: none;
  border: none;
  color: white;
}

.scroll-wrapper {
  display: flex;
  align-items: center;
  overflow: hidden;
  width: 100%;
  position: relative; /* Ensure buttons are positioned correctly */
}

.button-wrapper {
  display: inline-block;
  cursor: pointer;
}

.scroll-container {
  display: flex;
  overflow-x: auto;
  padding: 10px;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  gap: 1rem;
  align-items: stretch;
}

.scroll-container::-webkit-scrollbar {
  display: none; /* Hide scrollbar for Chrome, Safari, and Opera */
}

.scroll-container > div {
  flex: 0 0 auto;
  width: 240px; /* Fixed width for cards */
  min-width: 180px; /* Minimum width */
  max-width: 240px; /* Maximum width */
  transition: transform 0.3s ease;
  will-change: transform;
}

/* Override for equipment section only - allows larger cards */
#scrollContainer > div {
  width: auto; /* Allow natural sizing */
  min-width: 280px; /* Match equipment card minimum */
  max-width: 350px; /* Match equipment card maximum */
}

@media (max-width: 768px) {
  .scroll-container {
    padding: 0 10px; /* Ensure no additional padding on mobile */
    margin: 0 -10px; /* Adjust margin to fit container */
  }
  .scroll-container > div {
    margin-right: 5px; /* Adjust gap for mobile screen space */
  }
}
.googlechip {
  display: inline-block !important;
  padding: 10px;
  border-radius: 10px;
  background-color: #f8f8f8;
  margin-right: 10px;
  margin-bottom: 10px;
  transition: background-color 0.3s ease;
}

.custom-indicator {
  width: 10px;
  height: 10px;
  background-color: #e4d7d7;
  border-radius: 30%; /* make the indicators round */
  opacity: 0.5;
  border-style: solid;
  border-color: #567cf8;
  border-width: 1px;
  transition: opacity 0.6s ease, transform 0.6s ease; /* add transform to the transition */
  margin: 0 5px; /* add some space between the indicators */
}

.custom-indicator.active {
  opacity: 1;
  transform: scale(1.5); /* make the active indicator larger */
}

.styled-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

.styled-table thead th {
  padding: 5px;
}

.styled-table tbody tr:nth-child(even) {
  padding: 5px;
}

.bg-peach {
  background-color: #fffdf9;
  color: #4e4e4e;
  border-style: solid;
  border-color: #ddd;
  border-width: 1px;
}

.initially-hidden {
  visibility: hidden;
}

[data-controller=truncate].initialized .initially-hidden {
  visibility: visible;
}

.rtl {
  flex-direction: row-reverse;
}

.tiny-text {
  font-size: 12px;
}

.no-select {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.button-85 {
  padding: 0.5em 1em;
  border: none;
  outline: none;
  color: rgb(255, 255, 255);
  background: #111;
  cursor: pointer;
  position: relative;
  z-index: 0;
  border-radius: 10px;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}

.button-85:before {
  content: "";
  background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000);
  position: absolute;
  top: -2px;
  left: -2px;
  background-size: 400%;
  z-index: -1;
  filter: blur(5px);
  -webkit-filter: blur(5px);
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  animation: glowing-button-85 20s linear infinite;
  transition: opacity 0.3s ease-in-out;
  border-radius: 10px;
}

@keyframes glowing-button-85 {
  0% {
    background-position: 0 0;
  }
  50% {
    background-position: 400% 0;
  }
  100% {
    background-position: 0 0;
  }
}
.button-85:after {
  z-index: -1;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background: #222;
  left: 0;
  top: 0;
  border-radius: 10px;
}

@media (max-width: 1075px) {
  .go-solar .button-text {
    display: none;
  }
}
.button-23 {
  background-color: #FFFFFF;
  border: 1px solid #222222;
  border-radius: 8px;
  box-sizing: border-box;
  color: #222222;
  cursor: pointer;
  display: inline-block;
  font-family: "Quicksand", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  margin: 0;
  outline: none;
  padding: 13px 23px;
  position: relative;
  text-align: center;
  text-decoration: none;
  touch-action: manipulation;
  transition: box-shadow 0.2s, transform 0.1s;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  width: auto;
}

.button-23:focus-visible {
  box-shadow: #222222 0 0 0 2px, rgba(255, 255, 255, 0.8) 0 0 0 4px;
  transition: box-shadow 0.2s;
}

.button-23:active {
  background-color: #F7F7F7;
  border-color: #000000;
  transform: scale(0.96);
}

.button-23:disabled {
  border-color: #DDDDDD;
  color: #DDDDDD;
  cursor: not-allowed;
  opacity: 1;
}

.button-disabled {
  pointer-events: none;
  opacity: 0.6;
}

.horizontal-scroll-menu {
  display: flex;
  overflow-x: auto;
  gap: 5px;
  align-items: flex-start;
  white-space: nowrap;
  margin: 10px;
}

.horizontal-scroll-menu .list-menu-item:first-child {
  margin-left: auto;
}

.horizontal-scroll-menu .list-menu-item:last-child {
  margin-right: auto;
}

.horizontal-scroll-menu .list-menu-item {
  display: inline-block;
  padding: 7px;
  border: none;
  background-color: transparent;
  color: #567cf8;
  font-size: 16px;
  font-weight: light;
  text-decoration: underline;
  transition: color 0.3s ease;
}

.horizontal-scroll-menu .list-menu-item:hover {
  color: #335eea;
}

.spinner-loader {
  display: none;
  /* Example loader styling: spinning circle */
  border: 4px solid #f3f3f3;
  border-top: 4px solid #4e4e4e;
  border-radius: 75%;
  width: 30px;
  height: 30px;
  animation: spin 2s linear infinite;
  margin: auto;
}

.simple-select {
  background: none;
  border: none;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding: 6px;
  font-size: 1rem;
  color: inherit;
  cursor: pointer;
  padding-right: 24px;
}

.custom-select-wrapper {
  position: relative;
  display: inline-block;
}
.custom-select-wrapper select {
  width: 100%;
  padding-right: 28px;
}
.custom-select-wrapper .select-icon {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  font-size: 12px;
  color: #666;
  transition: transform 0.2s ease;
}
.custom-select-wrapper:hover .select-icon {
  color: #333;
}

.ribbon-box {
  position: relative;
}

.ribbon-box::before {
  content: "";
  position: absolute;
  top: 5px;
  right: 0;
  width: 4px;
  height: 14px;
  border-bottom-left-radius: 5px;
  border-top-left-radius: 5px;
  transform: rotate(0deg);
}

.form-control-title {
  font-size: 1.5em; /* Adjust as needed */
  border: none;
  border-bottom: 1px solid #f7f7f7; /* Adjust color as needed */
  outline: none;
}

.rtl {
  direction: rtl;
}

.layoutcontainer {
  display: flex;
  max-width: 100%;
  margin: auto;
  min-height: 90vh;
}

.layoutsidebar {
  width: 5%;
  min-width: 200px;
  padding: 5px;
  border-right: 1px solid #4e4e4e;
}

.layoutcontent {
  width: 95%;
  height: 100%;
}

.layoutcontent-full {
  width: 100%;
}

/* Hide the sidebar on mobile */
@media screen and (max-width: 576px) {
  .layoutsidebar {
    display: none;
  }
  .layoutcontent {
    width: 100%;
  }
}
.circular-icon {
  background: #fafafa;
  height: 25px;
  width: 25px;
  border-radius: 14px;
  padding: 6px;
  color: #000;
  box-shadow: 0 0 10px rgba(5, 18, 35, 0.1);
}

@keyframes joltInFromLeft {
  0% {
    transform: translateX(-50%);
    opacity: 0;
  }
  40% {
    transform: translateX(10%);
    opacity: 1;
  }
  60% {
    transform: translateX(-5%);
  }
  80% {
    transform: translateX(2%);
  }
  100% {
    transform: translateX(0);
  }
}
.animated-jolt-in {
  animation: joltInFromLeft 0.8s ease-out;
}

.fade-out {
  transition: opacity 1s ease-out;
  opacity: 0;
}

.card-wrapper-link {
  text-decoration: none;
  color: inherit;
}

.card-wrapper-link .card {
  cursor: pointer;
}

.suggestion-list {
  position: absolute; /* Ensure it's positioned relative to the container */
  z-index: 1000; /* Ensure it is above other elements */
  background: #fff; /* Background color for better visibility */
  border: 1px solid #ddd; /* Border to distinguish the list */
  list-style: none;
  padding: 0;
  margin: 0;
  width: auto; /* Ensure width is appropriate */
  max-width: 300px; /* A max-width for better presentation */
  max-height: 200px; /* Max height to prevent overflow */
  overflow-y: auto; /* Scroll if content exceeds max height */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Optional: for a subtle shadow */
  display: none; /* Only display when needed */
}

.suggestion-item {
  padding: 8px;
  cursor: pointer;
}

.suggestion-item:hover {
  background-color: #1a1a1a;
}

.tab-icon {
  color: #888;
  font-size: 0.9em;
  margin-left: 8px;
}

.layoutcontainer {
  display: flex;
  max-width: 100%;
  margin: auto;
  min-height: 100vh;
}

.layoutsidebar {
  width: 5%;
  min-width: 50px;
  padding: 5px;
}

.layoutcontent {
  width: 95%;
  height: 100%;
}

.layoutcontent-full {
  width: 100%;
}

/* Hide the sidebar on mobile */
@media screen and (max-width: 576px) {
  .layoutsidebar {
    display: none;
  }
  .layoutcontent {
    width: 100%;
  }
}
.loading {
  position: relative;
  font-size: smaller;
}

.loading:after {
  content: "Loading...";
  position: absolute;
  right: 0;
  bottom: 0;
  font-size: smaller;
  padding: 2px 5px;
  border-radius: 3px;
}

.done:after {
  content: "Done!";
  position: absolute;
  right: 0;
  bottom: 0;
  font-size: smaller;
  padding: 2px 5px;
  border-radius: 3px;
}

.loader {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100px; /* Adjust this as needed */
}

.hidden {
  display: none;
}

.skeleton {
  background-color: #eee;
  border-radius: 4px;
  background-image: linear-gradient(90deg, #eee 25%, #f5f5f5 50%, #eee 75%);
  background-size: 200% 100%;
  background-position: 100% 0;
  animation: skeleton-loading 1.5s infinite;
}

@keyframes skeleton-loading {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}
.skeleton-bar {
  background-color: #ddd;
  border-radius: 4px;
  background-image: linear-gradient(90deg, #ddd 25%, #e1e1e1 50%, #ddd 75%);
  background-size: 200% 100%;
  background-position: 100% 0;
  animation: skeleton-bar-loading 1.5s infinite;
}

@keyframes skeleton-bar-loading {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}
.progress-button {
  position: relative;
  display: inline-block;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid #dddddd;
  background-color: transparent;
  overflow: hidden;
}

.progress-button:before {
  content: "";
  position: absolute;
  top: -2px;
  left: -2px;
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  background-image: conic-gradient(rgba(50, 205, 50, 0.3) var(--completion, 0%), transparent 0%);
  z-index: -1;
  border-radius: 50%;
}

.gm-style-iw button.gm-ui-hover-effect {
  display: none !important;
}

@media (max-width: 768px) {
  #floating-info {
    display: none; /* Hides the floating div */
  }
}
/* Optional: Adjustments for the map on narrow screens */
@media (max-width: 768px) {
  #map {
    width: 100%; /* Ensure the map takes up the full width */
  }
}
.form-range::-webkit-slider-thumb {
  background-color: #f47424;
}

.form-range::-webkit-slider-runnable-track {
  background-color: #eee;
  border-radius: 5px;
}

.form-range::-webkit-slider-thumb:active {
  background-color: red;
}

.user-entries {
  border-left: 3px solid #e9ecef;
  padding-left: 8px;
}

.user-header {
  font-weight: 500;
  margin-bottom: 4px;
  color: #666;
}

.user-total {
  font-size: 0.9em;
  color: #666;
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px solid #eee;
}

.entry-item {
  font-size: 0.9em;
  padding: 2px 4px;
  background: rgba(0, 0, 0, 0.02);
  border-radius: 4px;
  margin-bottom: 2px;
}

.total-hours {
  margin-top: 12px;
  padding-top: 8px;
  border-top: 2px solid #eee;
  font-weight: bold;
}

.weekly-summary {
  background: rgba(0, 0, 0, 0.03);
  padding: 1rem;
  border-radius: 8px;
}

.weekly-summary h3 {
  margin: 0;
  font-size: 1.1rem;
}

.pay-rate-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.edit-pay-rate {
  opacity: 0;
  transition: opacity 0.2s;
}

.pay-rate-wrapper:hover .edit-pay-rate {
  opacity: 1;
}

.pay-rate-input {
  width: 80px;
  text-align: right;
}

.scroll-popup {
  position: fixed;
  bottom: 20px;
  left: 20px;
  background: white;
  padding: 20px;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  z-index: 1000;
  max-width: 300px;
  transform-origin: bottom left;
}
.scroll-popup.hidden {
  opacity: 0;
  transform: translateY(150px) rotate(-5deg) scale(0.8);
  pointer-events: none;
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
}
.scroll-popup:not(.hidden) {
  transform: translateY(0) rotate(0) scale(1);
  opacity: 1;
  animation: popup-glow 2s infinite alternate;
}
.scroll-popup .popup-content {
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.4s ease;
}
.scroll-popup:not(.hidden) .popup-content {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
}
.scroll-popup .close-popup {
  position: absolute;
  top: 0;
  color: #4e4e4e;
  right: 10px;
  border: none;
  background: none;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  opacity: 0.7;
}
.scroll-popup .close-popup:hover {
  transform: rotate(90deg) scale(1.2);
  opacity: 1;
}

@keyframes popup-glow {
  from {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
  }
  to {
    box-shadow: 0 8px 25px rgba(244, 116, 36, 0.2);
  }
}
.button-group-13 {
  display: inline-flex;
  border-radius: 8px;
  overflow: hidden;
}
.button-group-13 .button-13 {
  border-radius: 0;
  margin: 0;
}
.button-group-13 .button-13:first-child {
  border-top-left-radius: 8px;
  border-bottom-left-radius: 8px;
}
.button-group-13 .button-13:last-child {
  border-top-right-radius: 8px;
  border-bottom-right-radius: 8px;
  border-left: none;
}

.field_with_errors {
  display: contents;
}

.field_with_errors input,
.field_with_errors select,
.field_with_errors textarea {
  background-color: rgba(220, 53, 69, 0.1) !important; /* Bootstrap danger color with opacity */
  border-color: #dc3545 !important;
}

.field_with_errors .input-group-text {
  border-color: #dc3545 !important;
  background-color: rgba(220, 53, 69, 0.1) !important;
}

/* Ensure the input group border connection is seamless */
.field_with_errors .input-group .input-group-text {
  border-right: 1px solid #dc3545;
}

.field_with_errors .input-group .form-control {
  border-left: 0;
}

.calculator-cta {
  transition: transform 0.3s ease;
}

.calculator-cta:hover {
  transform: translateY(-5px);
}

.cta-overlay {
  background: linear-gradient(45deg, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.6));
  top: 0;
  left: 0;
}

.calculator-cta .fa-calculator-simple {
  filter: drop-shadow(0 0 10px rgba(244, 116, 36, 0.5));
}

@media (max-width: 768px) {
  .feature-list-container {
    height: 200px;
    overflow-y: auto;
    margin-bottom: 1rem;
  }
  .feature-list-container::-webkit-scrollbar {
    width: 4px;
  }
  .feature-list-container::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
  }
  .feature-list-container::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
  }
}

.review-wrapper {
  position: relative;
  width: 100%;
  max-width: 350px;
}
@media (max-width: 768px) {
  .review-wrapper {
    max-width: 280px;
  }
}

.review-container {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-right: 40px;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.review-container::-webkit-scrollbar {
  display: none;
}

.review-button-wrapper {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
}
.review-button-wrapper .blankbutton {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.review-button-wrapper .circular-icon {
  background: white;
  padding: 8px;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  font-size: 14px;
}

.racing-card {
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
}
.racing-card::before, .racing-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(130, 244, 36, 0.1) 50%, transparent 100%);
  transition: left 0.6s cubic-bezier(0.65, 0, 0.35, 1);
  z-index: 0;
}
.racing-card::after {
  transition-delay: 0.2s;
  background: linear-gradient(90deg, transparent 0%, rgba(201, 234, 51, 0.1) 50%, transparent 100%);
}
.racing-card:hover {
  transform: translateX(5px);
}
.racing-card:hover::before, .racing-card:hover::after {
  animation: raceAcross 1.2s cubic-bezier(0.65, 0, 0.35, 1);
}
.racing-card:hover::after {
  animation-delay: 0.2s;
}
.racing-card:hover .link {
  color: #DC8A78;
}
.racing-card:hover .fa-duotone {
  transform: translateX(5px) rotate(10deg);
}
.racing-card .link {
  position: relative;
  z-index: 1;
  transition: color 0.3s ease;
}
.racing-card .fa-duotone {
  transition: transform 0.3s ease;
}

@keyframes raceAcross {
  0% {
    left: -100%;
    opacity: 1;
  }
  100% {
    left: 100%;
    opacity: 0;
  }
}
/* More Section Styles */
.link.active {
  background-color: #1a73e8;
  border-radius: 4px;
  padding: 4px 8px;
  color: white;
}

.transition-opacity {
  transition: opacity 0.2s ease-in-out;
}

.opacity-0 {
  opacity: 0;
}

.opacity-100 {
  opacity: 1;
}

/* Social Sharing Buttons */
.copy-btn {
  cursor: pointer;
  padding: 0.5rem;
  border-radius: 50%;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  background-color: transparent;
  border: none;
}
.copy-btn:hover {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.copy-btn.bi-clipboard {
  color: #6c757d;
}
.copy-btn.bi-clipboard:hover {
  color: #495057;
  background-color: rgba(108, 117, 125, 0.1);
}
.copy-btn.bi-facebook {
  color: #3b5998;
}
.copy-btn.bi-facebook:hover {
  color: #2d4373;
  background-color: rgba(59, 89, 152, 0.1);
}
.copy-btn.bi-twitter {
  color: #1da1f2;
}
.copy-btn.bi-twitter:hover {
  color: #0c85d0;
  background-color: rgba(29, 161, 242, 0.1);
}
.copy-btn.bi-instagram {
  color: #e1306c;
}
.copy-btn.bi-instagram:hover {
  color: #c13584;
  background-color: rgba(225, 48, 108, 0.1);
}

.preview-container {
  position: relative;
  display: inline-block;
}

.preview-badges {
  position: absolute;
  bottom: 10px;
  right: 10px;
  display: flex;
  gap: 5px;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.preview-container:hover .preview-badges {
  opacity: 1;
}

.preview-badges .badge {
  font-size: 0.75rem;
  padding: 4px 8px;
  border-radius: 12px;
}

.preview-badges .badge i {
  font-size: 0.75rem;
  margin-right: 3px;
}

/* Custom styling for the navigation tabs */
#ev-management-tabs .nav-link {
  transition: all 0.3s ease;
  opacity: 0.7;
}

#ev-management-tabs .nav-link:hover {
  opacity: 1;
  transform: translateX(5px);
}

#ev-management-tabs .nav-link.active {
  opacity: 1;
  border-left: 4px solid #f47424 !important;
  background: linear-gradient(135deg, rgba(244, 116, 36, 0.15) 0%, rgba(244, 116, 36, 0.05) 100%);
}

.carousel-nav {
  opacity: 0.6;
  transition: opacity 0.3s ease;
  border-bottom: 2px solid transparent;
  padding-bottom: 5px;
}

.carousel-nav.active {
  opacity: 1;
  border-bottom: 2px solid #f47424;
}

/* QR Code Styling */
.qr-code-container {
  background: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 15px;
  text-align: center;
  max-width: 200px;
  margin: 0 auto;
}

.qr-code-container h6 {
  margin-bottom: 10px;
  color: #333;
  font-weight: 600;
}

.qr-code-container svg {
  width: 100%;
  height: auto;
  max-width: 150px;
  border: 1px solid #f0f0f0;
  border-radius: 4px;
}

.qr-code-container .qr-code-description {
  font-size: 12px;
  color: #666;
  margin-top: 8px;
}

.qr-code-container:hover {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.3s ease;
}

.messages-container {
  scroll-behavior: smooth;
}
.messages-container::-webkit-scrollbar {
  width: 6px;
}
.messages-container::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.05);
  border-radius: 3px;
}
.messages-container::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 3px;
}
.messages-container::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.3);
}

.message-item {
  animation: fadeInUp 0.3s ease;
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.message-avatar .avatar-placeholder {
  transition: all 0.3s ease;
}
.message-avatar .avatar-placeholder:hover {
  transform: scale(1.05);
}

.message-bubble {
  padding: 16px 20px;
  border-radius: 20px;
  position: relative;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(10px);
  transition: all 0.3s ease;
}
.message-bubble:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  transform: translateY(-1px);
}
.message-bubble.message-bubble-own {
  background: linear-gradient(135deg, var(--secondary-colour), var(--secondary-colour) dd) !important;
  color: var(--button-text) !important;
}
.message-bubble.message-bubble-own::after {
  content: "";
  position: absolute;
  bottom: 8px;
  right: -8px;
  width: 0;
  height: 0;
  border: 8px solid transparent;
  border-right: 0;
  margin-right: -8px;
  border-left-color: var(--secondary-colour) dd !important;
}
.message-bubble.message-bubble-own .text-muted {
  color: var(--button-text) !important;
  opacity: 0.8;
}
.message-bubble.message-bubble-own .badge {
  background: rgba(255, 255, 255, 0.2) !important;
  color: var(--button-text) !important;
  border: 1px solid var(--button-text) !important;
  opacity: 0.9;
}
.message-bubble.message-bubble-own .message-timestamp,
.message-bubble.message-bubble-own .message-read-status,
.message-bubble.message-bubble-own .document-file-size {
  color: var(--button-text) !important;
  opacity: 0.8;
}
.message-bubble.message-bubble-other {
  background: linear-gradient(135deg, var(--card-colour), var(--background-colour)) !important;
  border: 1px solid var(--border-colour) !important;
  color: var(--text-colour) !important;
}
.message-bubble.message-bubble-other::after {
  content: "";
  position: absolute;
  bottom: 8px;
  left: -8px;
  width: 0;
  height: 0;
  border: 8px solid transparent;
  border-left: 0;
  margin-left: -8px;
  border-right-color: var(--card-colour) !important;
}
.message-bubble.message-bubble-other .message-timestamp,
.message-bubble.message-bubble-other .message-read-status,
.message-bubble.message-bubble-other .document-file-size {
  color: var(--text-colour) !important;
  opacity: 0.7;
}

.message-form {
  backdrop-filter: blur(10px);
  border-radius: 25px;
  padding: 20px;
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08);
  background: var(--card-colour) f0 !important;
}
.message-form textarea {
  resize: none;
  border-radius: 20px;
  padding: 12px 20px;
  transition: all 0.3s ease;
}
.message-form textarea:focus {
  border-color: var(--secondary-colour) !important;
  box-shadow: 0 0 0 0.2rem var(--secondary-colour) 20 !important;
}
.message-form .file-upload-wrapper label {
  border-radius: 20px;
  margin-bottom: 0;
  padding: 12px;
  transition: all 0.3s ease;
}
.message-form .file-upload-wrapper label:hover {
  border-color: var(--secondary-colour) !important;
  background: var(--secondary-colour) 15 !important;
  opacity: 1;
}

.file-upload-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  background: transparent !important;
  border: 2px solid #dee2e6 !important;
  color: #6c757d !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  font-size: 18px !important;
  margin: 0 auto !important;
}
.file-upload-icon:hover {
  border-color: var(--secondary-colour) !important;
  background: var(--secondary-colour) 15 !important;
  color: var(--secondary-colour) !important;
  transform: scale(1.05) !important;
}
.file-upload-icon:active {
  transform: scale(0.95) !important;
}

.document-item {
  transition: all 0.3s ease;
  border-radius: 12px;
}
.document-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.messaging-header .client-status-badge {
  font-size: 10px;
}

.messaging-container .lightcard {
  border-radius: 20px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(10px);
}

.message-sending {
  opacity: 0.7;
}
.message-sending::after {
  content: "⏳";
  margin-left: 8px;
}

.message-delivered::after {
  content: "✓";
  margin-left: 8px;
  color: rgba(255, 255, 255, 0.6);
}

.message-new {
  animation: pulseNew 0.5s ease;
}
@keyframes pulseNew {
  0% {
    transform: scale(1);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  }
  50% {
    transform: scale(1.02);
    box-shadow: 0 6px 20px rgba(0, 123, 255, 0.2);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  }
}

.message-updated {
  animation: flashUpdate 1s ease;
}
@keyframes flashUpdate {
  0% {
    background-color: transparent;
  }
  50% {
    background-color: rgba(255, 235, 59, 0.3);
  }
  100% {
    background-color: transparent;
  }
}

.search-bar-container {
  backdrop-filter: blur(10px);
}
.search-bar-container .form-control {
  border: 1px solid #e0e0e0;
  transition: all 0.3s ease;
}
.search-bar-container .form-control:focus {
  border-color: #007bff;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.1);
}

.search-highlight {
  background-color: #fff3cd;
  color: #856404;
  padding: 2px 4px;
  border-radius: 3px;
  font-weight: 500;
}

.search-active-match {
  animation: searchPulse 1s ease;
}
@keyframes searchPulse {
  0% {
    background-color: transparent;
  }
  50% {
    background-color: rgba(0, 123, 255, 0.1);
  }
  100% {
    background-color: transparent;
  }
}

.message-input-area {
  backdrop-filter: blur(10px);
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  position: relative;
}
.message-input-area .message-input {
  border: 1px solid #e0e0e0;
  transition: all 0.3s ease;
}
.message-input-area .message-input:focus {
  border-color: #007bff;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.1);
}
.message-input-area .btn {
  transition: all 0.3s ease;
}
.message-input-area .btn:hover {
  transform: translateY(-1px);
}
.message-input-area .btn.btn-primary {
  background: linear-gradient(135deg, #007bff, #0056b3);
  border: none;
}
.message-input-area .btn.btn-primary:hover {
  background: linear-gradient(135deg, #0056b3, #004085);
}

@media (max-width: 767.98px) {
  .messaging-container {
    height: calc(100vh - 150px) !important;
  }
  .conversation-item {
    border-radius: 0 !important;
  }
  .conversation-item.has-unread {
    opacity: 1;
  }
  .offcanvas-body .conversations-list {
    max-height: none !important;
  }
}
@media (min-width: 768px) {
  .conversation-item:hover {
    opacity: 0.85;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: all 0.2s ease;
  }
}
.spin {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.template-popover {
  border-radius: 8px;
  border: 1px solid var(--border-colour, #dee2e6);
  background: var(--card-colour, #fff);
}
.template-popover::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 20px;
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 8px solid var(--border-colour, #dee2e6);
}
.template-popover::after {
  content: "";
  position: absolute;
  top: -7px;
  left: 21px;
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 7px solid var(--card-colour, #fff);
}

.save-status-indicator {
  min-width: 100px;
  text-align: right;
}

.alert.bg-theme {
  background-color: var(--card-colour) !important;
  border-color: var(--border-colour) !important;
  color: var(--text-colour) !important;
}

.emoji-picker {
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
}
.emoji-picker .emoji-btn {
  transition: all 0.2s ease;
}
.emoji-picker .emoji-btn:hover {
  background-color: #f8f9fa;
  transform: scale(1.2);
}

.typing-indicator {
  opacity: 0;
  animation: fadeIn 0.3s ease forwards;
}
@keyframes fadeIn {
  to {
    opacity: 1;
  }
}
.typing-indicator .typing-dots {
  display: flex;
  gap: 4px;
}
.typing-indicator .typing-dots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.4);
  animation: typingDot 1.4s infinite ease-in-out;
}
.typing-indicator .typing-dots span:nth-child(1) {
  animation-delay: -0.32s;
}
.typing-indicator .typing-dots span:nth-child(2) {
  animation-delay: -0.16s;
}
.typing-indicator .typing-dots span:nth-child(3) {
  animation-delay: 0s;
}
@keyframes typingDot {
  0%, 80%, 100% {
    transform: scale(0.8);
    opacity: 0.5;
  }
  40% {
    transform: scale(1);
    opacity: 1;
  }
}

.gif-picker {
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
}
.gif-picker .gif-picker-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  padding-bottom: 12px;
}
.gif-picker .gif-picker-header .form-control {
  transition: all 0.3s ease;
}
.gif-picker .gif-picker-header .form-control:focus {
  border-color: #007bff;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.1);
}
.gif-picker .gif-categories .btn {
  transition: all 0.3s ease;
}
.gif-picker .gif-categories .btn:hover {
  transform: translateY(-1px);
  background-color: #007bff;
  color: white;
}
.gif-picker .gif-results {
  background: #f8f9fa;
  border-radius: 8px;
}
.gif-picker .gif-results .gif-item img {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.gif-picker .gif-results .gif-item img:hover {
  box-shadow: 0 4px 16px rgba(0, 123, 255, 0.3);
}

.maplibregl-popup-content {
  background: var(--card-colour, #fff) !important;
  color: var(--text-colour, #333) !important;
  border: 1px solid var(--border-colour, #dee2e6);
  border-radius: var(--border-radius, 0.5rem);
  box-shadow: var(--box-shadow, 0 4px 16px rgba(0, 0, 0, 0.15));
  padding: 0;
}

.maplibregl-popup-anchor-bottom .maplibregl-popup-tip {
  border-top-color: var(--card-colour, #fff);
}

.maplibregl-popup-anchor-top .maplibregl-popup-tip {
  border-bottom-color: var(--card-colour, #fff);
}

.maplibregl-popup-anchor-left .maplibregl-popup-tip {
  border-right-color: var(--card-colour, #fff);
}

.maplibregl-popup-anchor-right .maplibregl-popup-tip {
  border-left-color: var(--card-colour, #fff);
}

.maplibregl-ctrl-group {
  background: var(--card-colour, #fff) !important;
  border: 1px solid var(--border-colour, #dee2e6) !important;
  box-shadow: var(--box-shadow, 0 0 4px rgba(0, 0, 0, 0.1)) !important;
}
.maplibregl-ctrl-group button {
  color: var(--text-colour, #333) !important;
}
.maplibregl-ctrl-group button + button {
  border-top-color: var(--border-colour, #dee2e6) !important;
}
.maplibregl-ctrl-group .maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon,
.maplibregl-ctrl-group .maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon {
  filter: var(--maplibre-icon-filter, none);
}

.maplibregl-ctrl button .maplibregl-ctrl-icon.fa-ctrl {
  background: none !important;
  filter: none !important;
  width: 100%;
  height: 100%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1;
  color: var(--text-colour, #333);
}
.maplibregl-ctrl button .maplibregl-ctrl-icon.fa-ctrl i, .maplibregl-ctrl button .maplibregl-ctrl-icon.fa-ctrl svg {
  font-size: 0.9rem;
  line-height: 1;
  width: 0.9rem;
  height: 0.9rem;
}

.maplibregl-ctrl-attrib {
  background: var(--card-colour, #fff) !important;
  color: var(--text-colour, #333) !important;
  font-size: 0.7rem !important;
}
.maplibregl-ctrl-attrib a {
  color: var(--text-colour, #333) !important;
}

[data-theme=dark] .maplibregl-ctrl-group button .maplibregl-ctrl-icon:not(.fa-ctrl) {
  filter: invert(1);
}

[data-theme=dark] .maplibregl-ctrl-attrib-button {
  filter: invert(1);
}

.dashboard-map-popup {
  padding: 0.5rem;
  color: var(--text-colour, #333);
}

.dashboard-map-popup-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
}

.dashboard-map-popup-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  flex-shrink: 0;
  background: var(--interaction, #28a745);
  color: #fff;
}

.dashboard-map-popup-title {
  font-weight: 600;
  font-size: 0.82rem;
  line-height: 1.2;
  color: var(--text-colour, #333);
}

.dashboard-map-popup-subtitle {
  font-size: 0.7rem;
  color: var(--text-colour, #666);
  opacity: 0.7;
}

.dashboard-map-popup-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 0.4rem;
}
.dashboard-map-popup-badges .badge {
  border: none;
  box-shadow: none;
  font-size: 0.65rem;
  padding: 0.2em 0.45em;
}

.dashboard-map-popup-info {
  margin-bottom: 0.4rem;
}

.dashboard-map-popup-info-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.72rem;
  line-height: 1.25;
  color: var(--text-colour, #666);
  margin-bottom: 0.15rem;
}
.dashboard-map-popup-info-row i {
  width: 12px;
  text-align: center;
  opacity: 0.6;
}

.dashboard-map-popup-chips {
  display: flex;
  gap: 0.35rem;
  margin-bottom: 0.4rem;
}

.dashboard-map-popup-chip {
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  font-size: 0.72rem;
  text-decoration: none;
  border: 1px solid var(--border-colour, #dee2e6);
  background: var(--secondary-colour, #f47424);
  color: #fff;
  transition: transform 0.15s ease, opacity 0.15s ease;
}
.dashboard-map-popup-chip:hover {
  transform: translateY(-1px);
  color: #fff;
}
.dashboard-map-popup-chip.is-empty {
  background: transparent;
  color: var(--text-colour, #666);
  opacity: 0.3;
  pointer-events: none;
}

.dashboard-map-popup-actions {
  display: flex;
  gap: 0.4rem;
  padding-top: 0.4rem;
  border-top: 1px solid var(--border-colour, #dee2e6);
}
.dashboard-map-popup-actions .button-13 {
  min-height: 26px;
  line-height: 1.1;
  padding: 0.25rem 0.6rem;
  font-size: 0.72rem;
  border-radius: 6px;
}

.dashboard-map-empty-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--card-colour, rgba(255, 255, 255, 0.9));
  border-radius: var(--border-radius, 0.5rem);
  z-index: 1;
}

.dashboard-map-empty-content {
  text-align: center;
  padding: 2rem;
  color: var(--text-colour, #333);
}

.dashboard-actions .dash-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: 50px;
  background: var(--card-colour, rgba(255, 255, 255, 0.06));
  color: var(--text-colour, inherit);
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  white-space: nowrap;
  transition: all 0.2s ease;
  backdrop-filter: blur(8px);
}
.dashboard-actions .dash-action-btn i {
  font-size: 0.95rem;
  opacity: 0.7;
}
.dashboard-actions .dash-action-btn:hover {
  background: var(--button-colour, rgba(255, 255, 255, 0.12));
  color: var(--body-colour, inherit);
  border-color: rgba(255, 255, 255, 0.15);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.dashboard-actions .dash-action-btn:hover i {
  opacity: 1;
}
.dashboard-actions .dash-action-btn:active {
  transform: translateY(0);
}
.dashboard-actions .dash-action-primary {
  background: linear-gradient(135deg, var(--button-colour), var(--interaction));
  color: var(--button-text);
  border-color: transparent;
}
.dashboard-actions .dash-action-primary i {
  opacity: 1;
}
.dashboard-actions .dash-action-primary:hover {
  color: #fff;
  filter: brightness(1.1);
  box-shadow: 0 4px 16px rgba(0, 130, 150, 0.35);
}
.dashboard-actions .dash-action-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.35rem;
  border-radius: 50px;
  background: var(--button-colour, #008296);
  color: var(--text-colour);
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1;
}

/* ============================================================================
   PROPOSAL DESIGN SECTION — array cards + option comparison table
   ============================================================================ */
.array-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 12px;
}

.array-card {
  padding: 16px;
}

.array-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border: 1px solid var(--border-colour, #dadada);
  border-radius: 50rem;
  font-size: 0.82rem;
  color: var(--text-colour, #4e4e4e);
  white-space: nowrap;
}
.array-chip i {
  color: var(--secondary-colour, #008296);
}

.array-share-track {
  height: 6px;
  border-radius: 3px;
  background-color: var(--border-colour, #e2e2e2);
  overflow: hidden;
}

.array-share-fill {
  height: 100%;
  border-radius: 3px;
  background-color: var(--production-colour, #74c69d);
}

.array-series-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  vertical-align: baseline;
  margin-right: 2px;
}

.array-chart-card {
  padding: 16px;
}

.chart-toggle-btn {
  padding: 4px 12px;
  font-size: 12px;
}

.comparison-card {
  padding: 0;
  overflow: hidden;
}

.comparison-scroll {
  overflow-x: auto;
}

.comparison-table {
  min-width: 640px;
  margin-bottom: 0;
}
.comparison-table th,
.comparison-table td {
  color: var(--text-colour, #4e4e4e) !important;
  border-color: var(--border-colour, #e2e2e2) !important;
  vertical-align: middle;
  padding: 12px 14px;
}
.comparison-table th:not(.selected-quote),
.comparison-table td:not(.selected-quote) {
  background-color: transparent !important;
}
.comparison-table thead th {
  border-bottom-width: 2px;
  vertical-align: top;
}
.comparison-table .comparison-option {
  min-width: 200px;
}
.comparison-table .comparison-metric {
  position: sticky;
  left: 0;
  z-index: 1;
  background-color: var(--card-colour, #ffffff) !important;
  white-space: nowrap;
}
.comparison-table .comparison-metric i {
  margin-right: 6px;
  color: var(--secondary-colour, #008296);
}

.option-thumb {
  display: block;
  width: 100%;
  max-width: 200px;
  height: auto;
  border-radius: var(--border-radius, 8px);
  border: 1px solid var(--border-colour, #dddddd);
}

/*# sourceMappingURL=data:application/json;base64,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QUNyQjtBQUNBO0VBQ0UsdUNBQXVDO0FBQ3pDOztBQUVBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQiwrQ0FBK0M7RUFDL0MsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixtREFBbUQ7QUFDckQ7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsd0JBQXdCO0VBQ3hCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsVUFBVTtFQUNWLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixnQkFBZ0I7QUFDbEI7QUFDQTs7RUFFRSw2Q0FBNkM7RUFDN0Msc0RBQXNEO0VBQ3RELHNCQUFzQjtFQUN0QixrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSx3Q0FBd0M7QUFDMUM7QUFDQTtFQUNFLHdCQUF3QjtFQUN4QixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLE9BQU87RUFDUCxVQUFVO0VBQ1Ysd0RBQXdEO0VBQ3hELG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLHVDQUF1QztBQUN6Qzs7QUFFQTtFQUNFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWix3Q0FBd0M7RUFDeEMsK0NBQStDO0FBQ2pEIiwiZmlsZSI6ImFwcGxpY2F0aW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1RdWlja3NhbmQ6d2dodEA0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwXCIpO1xuQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBsdXMrSmFrYXJ0YStTYW5zOndnaHRANTAwOzYwMDs3MDA7ODAwJmRpc3BsYXk9c3dhcFwiKTtcbi50b2dnbGUtc3dpdGNoLWNvbnRhaW5lciB7XG4gIC0tdG9nZ2xlLWxpZ2h0OiAjZjhmOWZhO1xuICAtLXRvZ2dsZS1kYXJrOiAjMjEyNTI5O1xuICAtLXRvZ2dsZS1zdW46ICNmZmQ0M2I7XG4gIC0tdG9nZ2xlLXNreTogIzRkYWJmNztcbiAgLS10b2dnbGUtd2lkdGg6IDMycHg7XG4gIC0tdG9nZ2xlLWhlaWdodDogMTZweDtcbiAgLS10b2dnbGUtcGFkZGluZzogMnB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnRvZ2dsZS1zd2l0Y2gtY29udGFpbmVyIC50b2dnbGUtc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogdmFyKC0tdG9nZ2xlLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS10b2dnbGUtaGVpZ2h0KTtcbn1cbi50b2dnbGUtc3dpdGNoLWNvbnRhaW5lciAudG9nZ2xlLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10b2dnbGUtZGFyayk7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tdG9nZ2xlLWhlaWdodCkgLyAyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcbn1cbi50b2dnbGUtc3dpdGNoLWNvbnRhaW5lciAudG9nZ2xlLWxhYmVsOmhvdmVyIHtcbiAgb3BhY2l0eTogMC45O1xufVxuLnRvZ2dsZS1zd2l0Y2gtY29udGFpbmVyIC50b2dnbGUtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udG9nZ2xlLXN3aXRjaC1jb250YWluZXIgLnRvZ2dsZS1pbnB1dDpjaGVja2VkIH4gLnNsaWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvZ2dsZS1za3kpO1xufVxuLnRvZ2dsZS1zd2l0Y2gtY29udGFpbmVyIC50b2dnbGUtaW5wdXQ6Y2hlY2tlZCB+IC5zbGlkZXI6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKHZhcigtLXRvZ2dsZS13aWR0aCkgLSB2YXIoLS10b2dnbGUtaGVpZ2h0KSArIHZhcigtLXRvZ2dsZS1wYWRkaW5nKSkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10b2dnbGUtc3VuKTtcbiAgYm94LXNoYWRvdzogMCAwIDJweCB2YXIoLS10b2dnbGUtc3VuKSwgMCAwIDVweCB2YXIoLS10b2dnbGUtc3VuKSwgaW5zZXQgMCAwIDAgMnB4IHZhcigtLXRvZ2dsZS1zdW4pO1xufVxuLnRvZ2dsZS1zd2l0Y2gtY29udGFpbmVyIC5zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tdG9nZ2xlLWhlaWdodCkgLyAyKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi50b2dnbGUtc3dpdGNoLWNvbnRhaW5lciAuc2xpZGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogdmFyKC0tdG9nZ2xlLXBhZGRpbmcpO1xuICBsZWZ0OiB2YXIoLS10b2dnbGUtcGFkZGluZyk7XG4gIHdpZHRoOiBjYWxjKHZhcigtLXRvZ2dsZS1oZWlnaHQpIC0gdmFyKC0tdG9nZ2xlLXBhZGRpbmcpICogMik7XG4gIGhlaWdodDogY2FsYyh2YXIoLS10b2dnbGUtaGVpZ2h0KSAtIHZhcigtLXRvZ2dsZS1wYWRkaW5nKSAqIDIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvZ2dsZS1kYXJrKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgNXB4IC0ycHggMHB4IDBweCB2YXIoLS10b2dnbGUtbGlnaHQpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4udHVyYm8tcHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW50ZXJhY3Rpb24sICM0MWU3ZjMpICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNHB4ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCA4cHggdmFyKC0taW50ZXJhY3Rpb24sICM0MWU3ZjMpO1xufVxuXG4jbmF2aWdhdGlvbi1sb2FkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAyMTQ3NDgzMDAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZS1pbjtcbn1cblxuI25hdmlnYXRpb24tbG9hZGVyW2RhdGEtYWN0aXZlPXRydWVdIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5uYXZpZ2F0aW9uLWxvYWRlcl9fYmFja2Ryb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2VmZjFmNSk7XG4gIG9wYWNpdHk6IDAuNzI7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xufVxuXG4ubmF2aWdhdGlvbi1sb2FkZXJfX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTRweDtcbiAgcGFkZGluZzogMjRweCAzMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI0U2RTlFRik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkY2UwZTgpO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LCAwcHggMHB4IDEwcHggcmdiYSgxNTYsIDE2MCwgMTc2LCAwLjMpKTtcbn1cblxuLm5hdmlnYXRpb24tbG9hZGVyX19zcGlubmVyIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDNweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW50ZXJhY3Rpb24sICM0MWU3ZjMpIDI1JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1pbnRlcmFjdGlvbiwgIzQxZTdmMyk7XG4gIGFuaW1hdGlvbjogbmF2aWdhdGlvbi1sb2FkZXItc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLm5hdmlnYXRpb24tbG9hZGVyX19sYWJlbCB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNGM0ZjY5KTtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG5Aa2V5ZnJhbWVzIG5hdmlnYXRpb24tbG9hZGVyLXNwaW4ge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm5hdmlnYXRpb24tbG9hZGVyX19zcGlubmVyIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xuICB9XG4gICNuYXZpZ2F0aW9uLWxvYWRlciB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLmRhc2hib2FyZC1oZXJvLWJveCB7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xufVxuXG4uZGFzaGJvYXJkLWhlcm8td2lkZ2V0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5kYXNoYm9hcmQtaGVyby13aWRnZXRzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxufVxuXG4uaGVyby13aWRnZXRzLWVkaXQge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC45O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcbn1cbi5oZXJvLXdpZGdldHMtZWRpdDpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWludGVyYWN0aW9uKTtcbn1cblxuLmhlcm8td2lkZ2V0cy1lbXB0eSB7XG4gIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC45O1xufVxuLmhlcm8td2lkZ2V0cy1lbXB0eTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWludGVyYWN0aW9uKTtcbn1cblxuLmRhc2hib2FyZC1oZXJvLWtwaXMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMTMwcHgsIDFmcikpO1xuICBnYXA6IDAuNzVyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5kYXNoYm9hcmQtaGVyby1rcGlzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMTMwcHgsIDFmcikpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLmRhc2hib2FyZC1oZXJvLWtwaXMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIH1cbn1cblxuLmhlcm8td2lkZ2V0LWNlbGwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5oZXJvLXdpZGdldC1jZWxsID4gLmhlcm8ta3BpLXRpbGUge1xuICBmbGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbn1cbi5oZXJvLXdpZGdldC1jZWxsLmhlcm8td2lkZ2V0LWNlbGwtLXdpZGUge1xuICBncmlkLWNvbHVtbjogc3BhbiAyO1xufVxuLmhlcm8td2lkZ2V0LWNlbGwuaGVyby1wbGFjZWhvbGRlciA+IC5oZXJvLWtwaS10aWxlIHtcbiAgb3BhY2l0eTogMC4zNTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLXByaW1hcnktY29sb3VyLCAjMDA3YmZmKTtcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xufVxuXG4uZGFzaGJvYXJkLWhlcm8ta3Bpcy5oZXJvLXNvcnRpbmcge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuLmhlcm8tZ2hvc3Qge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjAzKTtcbiAgYm94LXNoYWRvdzogMCAxMnB4IDI4cHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICBvcGFjaXR5OiAwLjk1O1xufVxuLmhlcm8tZ2hvc3QgLmhlcm8tZHJhZy1oYW5kbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uaGVyby1kcmFnLWhhbmRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0cHg7XG4gIHJpZ2h0OiA2cHg7XG4gIHotaW5kZXg6IDU7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgY3Vyc29yOiBncmFiO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cbi5oZXJvLWRyYWctaGFuZGxlOmFjdGl2ZSB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi5oZXJvLXdpZGdldC1jZWxsOmhvdmVyIC5oZXJvLWRyYWctaGFuZGxlIHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uaGVyby1kcmFnLWhhbmRsZTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oZXJvLWtwaS10aWxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuOHJlbSAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlO1xufVxuLmhlcm8ta3BpLXRpbGU6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5oZXJvLWtwaS10aWxlIC5oZXJvLWtwaS12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuLmhlcm8ta3BpLXRpbGUgLmhlcm8ta3BpLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBvcGFjaXR5OiAwLjc1O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICBtYXJnaW4tdG9wOiAwLjE1cmVtO1xufVxuLmhlcm8ta3BpLXRpbGUuaGVyby1rcGktdGlsZS0td2lkZSB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xufVxuLmhlcm8ta3BpLXRpbGUuaGVyby1rcGktdGlsZS0tdGV4dCAuaGVyby1rcGktdmFsdWUge1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuLmhlcm8ta3BpLXRpbGUgLmhlcm8ta3BpLXZhbHVlLS1zbSB7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmhlcm8ta3BpLXRpbGUtLWZvcmVjYXN0OmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLmhlcm8ta3BpLXRpbGUtLWZvcmVjYXN0IC5oZXJvLWZvcmVjYXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xufVxuLmhlcm8ta3BpLXRpbGUtLWZvcmVjYXN0IC5oZXJvLWZvcmVjYXN0LWRheSB7XG4gIGZsZXg6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjE1cmVtO1xufVxuLmhlcm8ta3BpLXRpbGUtLWZvcmVjYXN0IC5oZXJvLWZvcmVjYXN0LWRheSBpIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIG9wYWNpdHk6IDAuOTtcbn1cbi5oZXJvLWtwaS10aWxlLS1mb3JlY2FzdCAuaGVyby1mb3JlY2FzdC1kb3cge1xuICBmb250LXNpemU6IDAuNjhyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5oZXJvLWtwaS10aWxlLS1mb3JlY2FzdCAuaGVyby1mb3JlY2FzdC10ZW1wIHtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLmhlcm8ta3BpLXRpbGUtLWZvcmVjYXN0IC5mb3JlY2FzdC1yZWQgaSB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyLCAjZGMzNTQ1KTtcbn1cbi5oZXJvLWtwaS10aWxlLS1mb3JlY2FzdCAuZm9yZWNhc3QteWVsbG93IGkge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgI2ZmYzEwNyk7XG59XG4uaGVyby1rcGktdGlsZS0tZm9yZWNhc3QgLmZvcmVjYXN0LWdyZWVuIGkge1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXN1Y2Nlc3MsICMyOGE3NDUpO1xufVxuXG4uaGVyby1rcGktdGlsZS0td2Vlay1qb2JzOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuLmhlcm8ta3BpLXRpbGUtLXdlZWstam9icyAuaGVyby1mb3JlY2FzdC1kYXkge1xuICBwYWRkaW5nOiAwLjI1cmVtIDA7XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbn1cbi5oZXJvLWtwaS10aWxlLS13ZWVrLWpvYnMgLmhlcm8tZm9yZWNhc3QtZGF5IGkge1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIsICMwMDdiZmYpO1xufVxuLmhlcm8ta3BpLXRpbGUtLXdlZWstam9icyAuaGVyby1mb3JlY2FzdC1kYXktLWVtcHR5IHtcbiAgb3BhY2l0eTogMC40O1xufVxuLmhlcm8ta3BpLXRpbGUtLXdlZWstam9icyAuaGVyby1mb3JlY2FzdC1kYXktLWVtcHR5IGkge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5oZXJvLWtwaS10aWxlLS13ZWVrLWpvYnMgLmhlcm8tZm9yZWNhc3QtZGF5LS10b2RheSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMTIpO1xufVxuLmhlcm8ta3BpLXRpbGUtLXdlZWstam9icyAuaGVyby1mb3JlY2FzdC1kYXktLXRvZGF5IC5oZXJvLWZvcmVjYXN0LWRvdyB7XG4gIG9wYWNpdHk6IDE7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5oZXJvLWtwaS10aWxlLS1uZXdzOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLmhlcm8ta3BpLXRpbGUtLW5ld3MgLmhlcm8ta3BpLWxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xufVxuLmhlcm8ta3BpLXRpbGUtLW5ld3MgLmhlcm8tbmV3cy1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMzVyZW07XG59XG4uaGVyby1rcGktdGlsZS0tbmV3cyAuaGVyby1uZXdzLWxpbmsge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDAuODJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmhlcm8ta3BpLXRpbGUtLW5ld3MgLmhlcm8tbmV3cy1saW5rOjpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAoiBcIjtcbiAgb3BhY2l0eTogMC42O1xufVxuLmhlcm8ta3BpLXRpbGUtLW5ld3MgLmhlcm8tbmV3cy1saW5rOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5oZXJvLXdpZGdldHMtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC4xNXJlbTtcbiAgbWF4LWhlaWdodDogNTV2aDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmhlcm8td2lkZ2V0LW9wdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMC41NXJlbSAwLjZyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luOiAwO1xufVxuLmhlcm8td2lkZ2V0LW9wdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xMik7XG59XG5cbi5oZXJvLXdpZGdldC1vcHRpb24taW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5oZXJvLXdpZGdldHMtZ3JvdXAtdGl0bGUge1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgb3BhY2l0eTogMC41NTtcbiAgbWFyZ2luOiAwLjc1cmVtIDAgMC4yNXJlbTtcbn1cbi5oZXJvLXdpZGdldHMtZ3JvdXAtdGl0bGU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uZmMge1xuICAtLWZjLWJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tZmMtcGFnZS1iZy1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICAtLWZjLW5ldXRyYWwtYmctY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgLS1mYy1uZXV0cmFsLXRleHQtY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgLS1mYy1idXR0b24tYmctY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgLS1mYy1idXR0b24tYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1mYy1idXR0b24tdGV4dC1jb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICAtLWZjLWJ1dHRvbi1ob3Zlci1iZy1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICAtLWZjLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICAtLWZjLWJ1dHRvbi1hY3RpdmUtYmctY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICAtLWZjLWJ1dHRvbi1hY3RpdmUtYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgLS1mYy10b2RheS1iZy1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEyJSwgdHJhbnNwYXJlbnQpO1xuICAtLWZjLW5vdy1pbmRpY2F0b3ItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICAtLWZjLWV2ZW50LWJnLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgLS1mYy1ldmVudC1ib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICAtLWZjLWV2ZW50LXRleHQtY29sb3I6ICNmZmZmZmY7XG4gIC0tZmMtZXZlbnQtc2VsZWN0ZWQtb3ZlcmxheS1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAtLWZjLWxpc3QtZXZlbnQtaG92ZXItYmctY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uZmMgLmZjLWJ1dHRvbi1wcmltYXJ5IHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nOiAwLjRyZW0gMC44NXJlbSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbn1cbi5mYyAuZmMtYnV0dG9uLXByaW1hcnk6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDI1JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG4uZmMgLmZjLWJ1dHRvbi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpLmZjLWJ1dHRvbi1hY3RpdmUge1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLmZjIC5mYy1idXR0b24tZ3JvdXAgPiAuZmMtYnV0dG9uLXByaW1hcnkge1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG59XG4uZmMgLmZjLWJ1dHRvbi1ncm91cCA+IC5mYy1idXR0b24tcHJpbWFyeTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KSAhaW1wb3J0YW50O1xufVxuLmZjIC5mYy1idXR0b24tZ3JvdXAgPiAuZmMtYnV0dG9uLXByaW1hcnk6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpICFpbXBvcnRhbnQ7XG59XG4uZmMgLmZjLWJ1dHRvbi1ncm91cCA+IC5mYy1idXR0b24tcHJpbWFyeTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4ICFpbXBvcnRhbnQ7XG59XG4uZmMgLmZjLXRvb2xiYXItdGl0bGUge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5mYyAuZmMtdG9vbGJhci5mYy1oZWFkZXItdG9vbGJhciB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG4uZmMgLmZjLWNvbC1oZWFkZXItY2VsbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuLmZjIC5mYy1jb2wtaGVhZGVyLWNlbGwgLmZjLWNvbC1oZWFkZXItY2VsbC1jdXNoaW9uIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjRyZW07XG59XG4uZmMgLmZjLWRheWdyaWQtZGF5LW51bWJlciB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC40cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG4uZmMgLmZjLWRheWdyaWQtZGF5LWZyYW1lIHtcbiAgcGFkZGluZzogMDtcbn1cbi5mYyAuZmMtZGF5Z3JpZC1kYXktdG9wIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5mYyAuZmMtZGF5LXRvZGF5IC5mYy1kYXlncmlkLWRheS1udW1iZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDAuMjVyZW07XG59XG4uZmMgLmZjLWRheS1vdGhlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbi5mYyAuZmMtZGF5LW90aGVyIC5mYy1kYXlncmlkLWRheS1udW1iZXIge1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLmZjIC5mYy1kYXlncmlkLW1vcmUtbGluayB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5mYyAuZmMtZGF5Z3JpZC1tb3JlLWxpbms6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmZjLWV2ZW50IHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGN1cnNvcjogZ3JhYjtcbiAgdHJhbnNpdGlvbjogZmlsdGVyIDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuLmZjLWV2ZW50OmhvdmVyIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMDYpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG4uZmMtZXZlbnQuZmMtZXZlbnQtZHJhZ2dpbmcge1xuICBvcGFjaXR5OiAwLjc7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4uZmMtZXZlbnQgLmZjLWV2ZW50LW1haW4ge1xuICBwYWRkaW5nOiAwLjE4cmVtIDAuNHJlbTtcbn1cblxuLmZjLWRheWdyaWQtZXZlbnQuc3RhbmRhbG9uZS1ldmVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLmZjLWRheWdyaWQtZXZlbnQucHJvamVjdC1ldmVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWV2ZW50LWNvbG91ciwgIzIwYzk5Nyk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ldmVudC1jb2xvdXIsICMyMGM5OTcpIDcwJSwgYmxhY2spO1xufVxuXG4uZmMtZXZlbnQucGFzdC1ldmVudCB7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDAuNSk7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5mYy1ldmVudC5wYXN0LWV2ZW50IC5mYy1ldmVudC10aXRsZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuXG4uZmMtZXZlbnQudG9kYXktZXZlbnQge1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDM1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uZmMtZGF5Z3JpZC1ldmVudC5jYWxlbmRhci1zY2hlZHVsZS1ibG9jayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWV2ZW50LWNvbG91ciwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikpO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWV2ZW50LWNvbG91ciwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikpIDcwJSwgYmxhY2spO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZmMtZGF5Z3JpZC1ldmVudC5jYWxlbmRhci1zY2hlZHVsZS1ibG9jayAuZmMtZXZlbnQtdGl0bGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODA3XCI7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IFByb1wiO1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tcmlnaHQ6IDAuMzVyZW07XG4gIG9wYWNpdHk6IDAuODU7XG59XG4uZmMtZGF5Z3JpZC1ldmVudC5jYWxlbmRhci1zY2hlZHVsZS1ibG9jay5ibG9jay1zdGF0dXMtdGVudGF0aXZlIHtcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ldmVudC1jb2xvdXIsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpKSA3MCUsIHRyYW5zcGFyZW50KTtcbn1cbi5mYy1kYXlncmlkLWV2ZW50LmNhbGVuZGFyLXNjaGVkdWxlLWJsb2NrLmJsb2NrLXN0YXR1cy13ZWF0aGVyX3Bvc3Rwb25lZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50IDAgNnB4LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpIDZweCAxMnB4KTtcbn1cbi5mYy1kYXlncmlkLWV2ZW50LmNhbGVuZGFyLXNjaGVkdWxlLWJsb2NrLmJsb2NrLXN0YXR1cy1jb21wbGV0ZWQge1xuICBmaWx0ZXI6IHNhdHVyYXRlKDAuNSk7XG4gIG9wYWNpdHk6IDAuODU7XG59XG5cbi5mYy1saXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuLmZjLWxpc3QgLmZjLWxpc3QtZGF5LWN1c2hpb24ge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgOCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uZmMtbGlzdCAuZmMtbGlzdC1kYXktdGV4dCwgLmZjLWxpc3QgLmZjLWxpc3QtZGF5LXNpZGUtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uZmMtbGlzdCAuZmMtbGlzdC1ldmVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uZmMtbGlzdCAuZmMtbGlzdC1ldmVudCB0ZCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG4uZmMtbGlzdCAuZmMtbGlzdC1ldmVudCAuZmMtbGlzdC1ldmVudC10aW1lLCAuZmMtbGlzdCAuZmMtbGlzdC1ldmVudCAuZmMtbGlzdC1ldmVudC10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uZmMtbGlzdCAuZmMtbGlzdC1ldmVudCAuZmMtbGlzdC1ldmVudC10aXRsZSBhIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmZjLWxpc3QgLmZjLWxpc3QtZXZlbnQ6aG92ZXIgdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCk7XG59XG4uZmMtbGlzdCAuZmMtbGlzdC1ldmVudC1kb3Qge1xuICBib3JkZXItY29sb3I6IHZhcigtLWV2ZW50LWNvbG91ciwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikpO1xufVxuLmZjLWxpc3QgLmZjLWxpc3QtZW1wdHkge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi53b3JrZmxvdy1maWx0ZXItbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNjVyZW07XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLndvcmtmbG93LWZpbHRlci1sYWJlbDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKTtcbn1cbi53b3JrZmxvdy1maWx0ZXItbGFiZWwuYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uY29tcGFjdC1idG4ge1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5wcm9qZWN0LXNlYXJjaC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wcm9qZWN0LXNlYXJjaC1vdXRwdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDExMDA7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gIG1heC1oZWlnaHQ6IDI4MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5wcm9qZWN0LXJlc3VsdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwLjZyZW0gMC44NXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xMnMgZWFzZTtcbn1cbi5wcm9qZWN0LXJlc3VsdDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5wcm9qZWN0LXJlc3VsdDpob3ZlciwgLnByb2plY3QtcmVzdWx0LmhpZ2hsaWdodGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEyJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ucHJvamVjdC1yZXN1bHQtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC42cmVtO1xufVxuXG4ucHJvamVjdC1yZXN1bHQtaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB3aWR0aDogMThweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnByb2plY3QtcmVzdWx0LXRleHQgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wcm9qZWN0LXNlYXJjaC1tZXNzYWdlLFxuLnByb2plY3Qtc2VhcmNoLWxvYWRpbmcsXG4ucHJvamVjdC1zZWFyY2gtbm8tcmVzdWx0cyxcbi5wcm9qZWN0LXNlYXJjaC1lcnJvciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBwYWRkaW5nOiAwLjdyZW0gMC44NXJlbTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjc1O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmZjIC5mYy10b29sYmFyIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMC41cmVtO1xuICB9XG4gIC5mYyAuZmMtdG9vbGJhci10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gIH1cbiAgLmZjIC5mYy1idXR0b24tcHJpbWFyeSB7XG4gICAgcGFkZGluZzogMC4zcmVtIDAuNjVyZW0gIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgfVxuICAuZmMgLmZjLWV2ZW50IHtcbiAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgfVxufVxuLmJ1dHRvbi0xMyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmZmZmZiwgI2Y4ZjlmYSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogIzBmMTExMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWluLWhlaWdodDogMzBweDtcbiAgZm9udC1mYW1pbHk6IFwiQW1hem9uIEVtYmVyXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDI5cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xuICBpc29sYXRpb246IGlzb2xhdGU7XG4gIGNvbnRhaW46IGNvbnRlbnQ7XG4gIHotaW5kZXg6IDE7XG59XG4uYnV0dG9uLTEzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KSwgdHJhbnNwYXJlbnQpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uOiAwLjVzO1xuICB6LWluZGV4OiAxO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5idXR0b24tMTM6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDA4Mjk2LCAjMDBhMmJmLCAjMDA4Mjk2KTtcbiAgLXdlYmtpdC1tYXNrOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LCBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO1xuICBtYXNrOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LCBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO1xuICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gIG1hc2stY29tcG9zaXRlOiBleGNsdWRlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmJ1dHRvbi0xMzpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAxMzAsIDE1MCwgMC4xKSwgMCAzcHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2Y4ZjlmYSwgI2ZmZmZmZik7XG59XG4uYnV0dG9uLTEzOmhvdmVyOjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG4uYnV0dG9uLTEzOmhvdmVyOjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5idXR0b24tMTM6YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAxMzAsIDE1MCwgMC4xKSwgMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG5cbi5idXR0b24tMTM6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmJ1dHRvbi0xMzpmb2N1czo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uYnV0dG9uLTEzOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgY29sb3I6ICM4ODg4ODg7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGJvcmRlci1jb2xvcjogI2RkZGRkZDtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmJ1dHRvbi0xMzpkaXNhYmxlZDo6YmVmb3JlLCAuYnV0dG9uLTEzOmRpc2FibGVkOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgc2hpbW1lciB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxufVxuLmJ1dHRvbi0xMy1vdXRsaW5lIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDgyOTY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICMwMDgyOTY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIkFtYXpvbiBFbWJlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAyOXB4O1xuICBwYWRkaW5nOiAwIDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICBjb250YWluOiBjb250ZW50O1xuICB6LWluZGV4OiAxO1xufVxuLmJ1dHRvbi0xMy1vdXRsaW5lOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMCwgMTMwLCAxNTAsIDAuMiksIHRyYW5zcGFyZW50KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgdHJhbnNpdGlvbjogMC41cztcbiAgei1pbmRleDogMTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uYnV0dG9uLTEzLW91dGxpbmU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDA4Mjk2LCAjMDBhMmJmLCAjMDA4Mjk2KTtcbiAgLXdlYmtpdC1tYXNrOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LCBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO1xuICBtYXNrOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LCBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO1xuICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gIG1hc2stY29tcG9zaXRlOiBleGNsdWRlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5idXR0b24tMTMtb3V0bGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTMwLCAxNTAsIDAuMDUpO1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMTMwLCAxNTAsIDAuMSksIDAgM3B4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLmJ1dHRvbi0xMy1vdXRsaW5lOmhvdmVyOjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG4uYnV0dG9uLTEzLW91dGxpbmU6aG92ZXI6OmFmdGVyIHtcbiAgb3BhY2l0eTogMC4zO1xufVxuLmJ1dHRvbi0xMy1vdXRsaW5lOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMTMwLCAxNTAsIDAuMSksIDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLmJ1dHRvbi0xMy1vdXRsaW5lOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5idXR0b24tMTMtb3V0bGluZTpmb2N1czo6YWZ0ZXIge1xuICBvcGFjaXR5OiAwLjI7XG59XG4uYnV0dG9uLTEzLW91dGxpbmU6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM4ODg4ODg7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGJvcmRlci1jb2xvcjogIzg4ODg4ODtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmJ1dHRvbi0xMy1vdXRsaW5lOmRpc2FibGVkOjpiZWZvcmUsIC5idXR0b24tMTMtb3V0bGluZTpkaXNhYmxlZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWVudS1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM2Yzc1N2Q7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG4ubWVudS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogIzAwMDtcbn1cbi5tZW51LWJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmhlcm9fYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHBhZGRpbmc6IDEycHggMzJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICBjb250YWluOiBjb250ZW50O1xuICB6LWluZGV4OiAxO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5oZXJvX2J1dHRvbjpsaW5rLCAuaGVyb19idXR0b246dmlzaXRlZCB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5oZXJvX2J1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpIHNjYWxlKDEuMDIpO1xuICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uaGVyb19idXR0b246aG92ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyksIHRyYW5zcGFyZW50KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgYW5pbWF0aW9uOiBzaGluZSAxLjVzIGluZmluaXRlO1xufVxuLmhlcm9fYnV0dG9uOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpIHNjYWxlKDAuOTgpO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbkBrZXlmcmFtZXMgc2hpbmUge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cblxuLm1kdWktaWNvbixcbi5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDRweCA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ubWR1aS1pY29uOmhvdmVyLFxuLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cbi5tZHVpLWljb246YWN0aXZlLFxuLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuLm1kdWktaWNvbltkaXNhYmxlZF0sXG4uZHJvcGRvd24tdG9nZ2xlLXNwbGl0W2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5tZHVpLWljb25bZGlzYWJsZWRdOmhvdmVyLFxuLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdFtkaXNhYmxlZF06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uY29sb3ItcHJlc2V0LWJ0biB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuLmNvbG9yLXByZXNldC1idG46aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJvcmRlci1jb2xvcjogI2RlZTJlNjtcbn1cbi5jb2xvci1wcmVzZXQtYnRuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCAxMjMsIDI1NSwgMC4yNSk7XG59XG4uY29sb3ItcHJlc2V0LWJ0bjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4uY29sb3ItcHJlc2V0cyAuY29sb3ItcHJlc2V0LWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnZpZXctdG9nZ2xlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RkZGRkZCk7XG59XG4udmlldy10b2dnbGUgLnZpZXctdG9nZ2xlLWJ0biB7XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC42cmVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICM0ZTRlNGUpO1xuICBvcGFjaXR5OiAwLjY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG4udmlldy10b2dnbGUgLnZpZXctdG9nZ2xlLWJ0bjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZjVmNWY1KTtcbn1cbi52aWV3LXRvZ2dsZSAudmlldy10b2dnbGUtYnRuLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIsICM1QjYwNzgpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQsICNmZmZmZmYpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTU9ERVJOIEZMT0FUSU5HIFBJTEwgTkFWQkFSIFNUWUxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIE92ZXJyaWRlIGdsb2JhbCBsaW5rIHN0eWxlcyBmb3IgbmF2YmFyICovXG4ubW9kZXJuLWZsb2F0aW5nLW5hdmJhciBhLm5hdi1saW5rLW1vZGVybixcbi5tb2Rlcm4tZmxvYXRpbmctbmF2YmFyIC5uYXYtbGluay1tb2Rlcm4ge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLm1vZGVybi1mbG9hdGluZy1uYXZiYXIgYS5uYXYtbGluay1tb2Rlcm46aG92ZXIsXG4ubW9kZXJuLWZsb2F0aW5nLW5hdmJhciAubmF2LWxpbmstbW9kZXJuOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tb2Rlcm4tZmxvYXRpbmctbmF2YmFyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDIwcHg7XG4gIGxlZnQ6IDIlO1xuICByaWdodDogMiU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5tb2Rlcm4tZmxvYXRpbmctbmF2YmFyIHtcbiAgICB0b3A6IDEwcHg7XG4gICAgbGVmdDogMSU7XG4gICAgcmlnaHQ6IDElO1xuICB9XG59XG5cbi5uYXZiYXItY29udGFpbmVyIHtcbiAgLyogTGlnaHQgdGhlbWUgKENhdHBwdWNjaW4gTGF0dGUpICovXG4gIGJhY2tncm91bmQ6IHJnYigyMzksIDI0MSwgMjQ1KTsgLyogQmFzZSB3aXRoIHRyYW5zcGFyZW5jeSAqL1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1NiwgMTYwLCAxNzYsIDAuMik7IC8qIE92ZXJsYXkgMCAqL1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBwYWRkaW5nOiAxMnB4IDMycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAyMHB4O1xuICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoNzYsIDc5LCAxMDUsIDAuMSksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDUpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGFuaW1hdGlvbjogZmxvYXROYXZiYXIgNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG4ubmF2YmFyLWNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0ycHg7XG4gIGxlZnQ6IC0ycHg7XG4gIHJpZ2h0OiAtMnB4O1xuICBib3R0b206IC0ycHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMCwgMTMwLCAxNTAsIDAuMSksIHRyYW5zcGFyZW50LCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMSksIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogNTJweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2U7XG4gIHotaW5kZXg6IC0xO1xufVxuLm5hdmJhci1jb250YWluZXI6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMS4wMDUpO1xuICBib3gtc2hhZG93OiAwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4wOCksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLm5hdmJhci1jb250YWluZXI6aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIC5uYXZiYXItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAxMHB4IDI0cHg7XG4gICAgZ2FwOiAxNXB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGdhcDogMTBweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbG9hdE5hdmJhciB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgcm90YXRlKDAuMmRlZyk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCkgcm90YXRlKDBkZWcpO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpIHJvdGF0ZSgtMC4yZGVnKTtcbiAgfVxufVxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExFRlQgU0VDVElPTjogTE9HTyAmIFRIRU1FIFRPR0dMRVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5uYXZiYXItbGVmdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMjBweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1sZWZ0IHtcbiAgICBnYXA6IDEycHg7XG4gIH1cbn1cblxuLm5hdmJhci1icmFuZC1tb2Rlcm4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm5hdmJhci1icmFuZC1tb2Rlcm46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgwLCAxMzAsIDE1MCwgMC4xKSwgdHJhbnNwYXJlbnQpO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDAuNXMgZWFzZTtcbn1cbi5uYXZiYXItYnJhbmQtbW9kZXJuOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgY29sb3I6ICMxNzkyOTk7XG59XG4ubmF2YmFyLWJyYW5kLW1vZGVybjpob3Zlcjo6YmVmb3JlIHtcbiAgbGVmdDogMTAwJTtcbn1cbi5uYXZiYXItYnJhbmQtbW9kZXJuOmhvdmVyIC5uYXZiYXItYnJhbmQtdGV4dCB7XG4gIGFuaW1hdGlvbjogdGV4dEZsb2F0IDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDRweCByZ2JhKDIzLCAxNDYsIDE1MywgMC40KSk7XG59XG5Aa2V5ZnJhbWVzIHRleHRGbG9hdCB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgfVxufVxuLm5hdmJhci1icmFuZC1tb2Rlcm4gLm5hdmJhci1sb2dvIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItYnJhbmQtbW9kZXJuIC5uYXZiYXItbG9nbyB7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICB9XG59XG4ubmF2YmFyLWJyYW5kLW1vZGVybiAubmF2YmFyLWJyYW5kLXRleHQge1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBtYXJnaW46IDA7XG4gIC8qIExpZ2h0IHRoZW1lIChDYXRwcHVjY2luIExhdHRlKSAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTc5Mjk5LCAjNzI4N2ZkKTsgLyogVGVhbCB0byBMYXZlbmRlciAqL1xuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjIpKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWJyYW5kLW1vZGVybiAubmF2YmFyLWJyYW5kLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICB9XG59XG4ubmF2YmFyLWJyYW5kLW1vZGVybjpob3ZlciAubmF2YmFyLWxvZ28ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgyMywgMTQ2LCAxNTMsIDAuNCksIDAgMCAyMHB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjIpLCAwIDAgNDBweCByZ2JhKDIzLCAxNDYsIDE1MywgMC4xKTtcbiAgYW5pbWF0aW9uOiBsb2dvR2xvdyAycyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGU7XG59XG5Aa2V5ZnJhbWVzIGxvZ29HbG93IHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgyMywgMTQ2LCAxNTMsIDAuNCksIDAgMCAyMHB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjIpLCAwIDAgNDBweCByZ2JhKDIzLCAxNDYsIDE1MywgMC4xKTtcbiAgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMTE0LCAxMzUsIDI1MywgMC40KSwgMCAwIDI1cHggcmdiYSgxMTQsIDEzNSwgMjUzLCAwLjMpLCAwIDAgNTBweCByZ2JhKDExNCwgMTM1LCAyNTMsIDAuMik7XG4gIH1cbn1cblxuLyogVGhlbWUgVG9nZ2xlICovXG4udGhlbWUtdG9nZ2xlLW1vZGVybiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5tb2Rlcm4tdG9nZ2xlLXN3aXRjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuLm1vZGVybi10b2dnbGUtc3dpdGNoLnRvZ2dsaW5nIC50b2dnbGUtc2xpZGVyIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAwIDIwcHggcmdiYSgyMywgMTQ2LCAxNTMsIDAuNCk7XG59XG4ubW9kZXJuLXRvZ2dsZS1zd2l0Y2gudG9nZ2xpbmcgLnRvZ2dsZS10aHVtYiB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMCAxNXB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjUpO1xufVxuLm1vZGVybi10b2dnbGUtc3dpdGNoOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbn1cbi5tb2Rlcm4tdG9nZ2xlLXN3aXRjaDphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xufVxuXG4udG9nZ2xlLWNoZWNrYm94IHtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuLnRvZ2dsZS1zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFlMWUyZSwgIzMxMzI0NCk7XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4udG9nZ2xlLXRodW1iIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDNweDtcbiAgbGVmdDogM3B4O1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjllMmFmLCAjZmFiMzg3KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICMxZTFlMmU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIENvbnRhaW5lciBmb3IgYm90aCBpY29ucyAtIHBvc2l0aW9uZWQgYWJzb2x1dGVseSBmb3IgcGVyZmVjdCBjZW50ZXJpbmcgKi9cbn1cbi50b2dnbGUtdGh1bWIgLnN1bi1pY29uLFxuLnRvZ2dsZS10aHVtYiAubW9vbi1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTtcbn1cbi50b2dnbGUtdGh1bWIgLnN1bi1pY29uIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDE4MGRlZykgc2NhbGUoMC42KTtcbn1cbi50b2dnbGUtdGh1bWIgLm1vb24taWNvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgY29sb3I6ICMwMDFmNDc7XG4gIHRleHQtc2hhZG93OiAwIDAgNnB4IHJnYmEoMjAyLCAyMTEsIDI0NSwgMC40KTtcbn1cblxuLnRvZ2dsZS1jaGVja2JveDpjaGVja2VkICsgLnRvZ2dsZS1zbGlkZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjODliNGZhLCAjNzRjN2VjKTtcbn1cblxuLnRvZ2dsZS1jaGVja2JveDpjaGVja2VkICsgLnRvZ2dsZS1zbGlkZXIgLnRvZ2dsZS10aHVtYiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMHB4KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y5ZTJhZiwgI2YyY2RjZCk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMCAxNXB4IHJnYmEoMjQ5LCAyMjYsIDE3NSwgMC42KTtcbn1cbi50b2dnbGUtY2hlY2tib3g6Y2hlY2tlZCArIC50b2dnbGUtc2xpZGVyIC50b2dnbGUtdGh1bWIgLnN1bi1pY29uIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDBkZWcpIHNjYWxlKDEpO1xuICBjb2xvcjogI2RjOGE3ODtcbiAgdGV4dC1zaGFkb3c6IDAgMCA4cHggcmdiYSgyMjAsIDEzOCwgMTIwLCAwLjYpO1xufVxuLnRvZ2dsZS1jaGVja2JveDpjaGVja2VkICsgLnRvZ2dsZS1zbGlkZXIgLnRvZ2dsZS10aHVtYiAubW9vbi1pY29uIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC0xODBkZWcpIHNjYWxlKDAuNik7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDRU5URVIgU0VDVElPTjogTkFWSUdBVElPTiBMSU5LU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5uYXZiYXItY2VudGVyIHtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAubmF2YmFyLWNlbnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4ubmF2LWxpbmtzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICAvKiBMaWdodCB0aGVtZSAoQ2F0cHB1Y2NpbiBMYXR0ZSkgKi9cbiAgYmFja2dyb3VuZDogcmdiKDIyMCwgMjI0LCAyMzIpOyAvKiBTdXJmYWNlIDAgd2l0aCB0cmFuc3BhcmVuY3kgKi9cbiAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1NiwgMTYwLCAxNzYsIDAuMik7IC8qIE92ZXJsYXkgMCAqL1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuLm5hdi1saW5rLW1vZGVybiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAvKiBMaWdodCB0aGVtZSAoQ2F0cHB1Y2NpbiBMYXR0ZSkgKi9cbiAgY29sb3I6ICM0YzRmNjkgIWltcG9ydGFudDsgLyogVGV4dCAqL1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubmF2LWxpbmstbW9kZXJuIGkge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG59XG4ubmF2LWxpbmstbW9kZXJuIHNwYW4ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuLm5hdi1saW5rLW1vZGVybjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IC0xMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyksIHRyYW5zcGFyZW50KTtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjVzIGVhc2U7XG59XG4ubmF2LWxpbmstbW9kZXJuOmhvdmVyLCAubmF2LWxpbmstbW9kZXJuLmFjdGl2ZSB7XG4gIC8qIExpZ2h0IHRoZW1lIChDYXRwcHVjY2luIExhdHRlKSAtIE1hdGNoIGRyb3Bkb3duIGNvbG9ycyAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTc5Mjk5LCAjNzI4N2ZkKSAhaW1wb3J0YW50OyAvKiBUZWFsIHRvIExhdmVuZGVyICovXG4gIGNvbG9yOiAjZWZmMWY1ICFpbXBvcnRhbnQ7IC8qIEJhc2UgZm9yIGNvbnRyYXN0ICovXG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxLjA1KTtcbiAgYm94LXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDIzLCAxNDYsIDE1MywgMC4zKSwgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5uYXYtbGluay1tb2Rlcm46aG92ZXI6OmJlZm9yZSwgLm5hdi1saW5rLW1vZGVybi5hY3RpdmU6OmJlZm9yZSB7XG4gIGxlZnQ6IDEwMCU7XG59XG4ubmF2LWxpbmstbW9kZXJuOmhvdmVyIGksIC5uYXYtbGluay1tb2Rlcm4uYWN0aXZlIGkge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIGNvbG9yOiAjZWZmMWY1ICFpbXBvcnRhbnQ7XG59XG4ubmF2LWxpbmstbW9kZXJuOmhvdmVyIHNwYW4sIC5uYXYtbGluay1tb2Rlcm4uYWN0aXZlIHNwYW4ge1xuICBjb2xvcjogI2VmZjFmNSAhaW1wb3J0YW50O1xufVxuLm5hdi1saW5rLW1vZGVybi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTc5Mjk5LCAjNzI4N2ZkKSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2VmZjFmNSAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjQpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi5uYXYtbGluay1tb2Rlcm4uYWN0aXZlIGksIC5uYXYtbGluay1tb2Rlcm4uYWN0aXZlIHNwYW4ge1xuICBjb2xvcjogI2VmZjFmNSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRFJPUERPV04gU1RZTEVTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogTmVzdGVkIERyb3Bkb3duIFN0eWxlcyAqL1xuLmRyb3Bkb3duLW1lbnUtbmVzdGVkIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogLTEycHggIWltcG9ydGFudDtcbiAgbGVmdDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMnB4ICFpbXBvcnRhbnQ7IC8qIFJlZHVjZWQgZ2FwIGZvciBlYXNpZXIgY3Vyc29yIG1vdmVtZW50ICovXG4gIGJhY2tncm91bmQ6IHJnYigyMzksIDI0MSwgMjQ1KSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1NiwgMTYwLCAxNzYsIDAuMyk7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoNzYsIDc5LCAxMDUsIDAuMiksIDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTVweCkgc2NhbGUoMC45KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpLCB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTtcbiAgei1pbmRleDogOTk5OSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiAxMnB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5kcm9wZG93bi1tZW51LW5lc3RlZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIwcHg7XG4gIGxlZnQ6IC00cHg7IC8qIEFkanVzdGVkIGZvciBzbWFsbGVyIGdhcCAqL1xuICB3aWR0aDogOHB4OyAvKiBTbWFsbGVyIGFycm93IGZvciB0aWdodGVyIGZpdCAqL1xuICBoZWlnaHQ6IDhweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y5ZTJhZiwgI2RmOGUxZCk7IC8qIENhdHBwdWNjaW4gWWVsbG93IGFjY2VudCAqL1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGY4ZTFkOyAvKiBNYXRjaGluZyB5ZWxsb3cgYm9yZGVyICovXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgyMjMsIDE0MiwgMjksIDAuMyksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmRyb3Bkb3duLW1lbnUtbmVzdGVkIC5kcm9wZG93bi1pdGVtLW1vZGVybiB7XG4gIG1hcmdpbjogMnB4IDA7XG4gIGNvbG9yOiAjNGM0ZjY5O1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi5kcm9wZG93bi1tZW51LW5lc3RlZCAuZHJvcGRvd24taXRlbS1tb2Rlcm4gaSB7XG4gIGNvbG9yOiAjMTc5Mjk5O1xufVxuLmRyb3Bkb3duLW1lbnUtbmVzdGVkIC5kcm9wZG93bi1pdGVtLW1vZGVybjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjMsIDE0NiwgMTUzLCAwLjEpLCByZ2JhKDExNCwgMTM1LCAyNTMsIDAuMSkpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTc5Mjk5ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgyMywgMTQ2LCAxNTMsIDAuMyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xufVxuLmRyb3Bkb3duLW1lbnUtbmVzdGVkIC5kcm9wZG93bi1pdGVtLW1vZGVybjpob3ZlciBpIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHRyYW5zbGF0ZVkoLTFweCk7XG4gIGNvbG9yOiAjNzI4N2ZkICFpbXBvcnRhbnQ7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMTE0LCAxMzUsIDI1MywgMC4zKSk7XG59XG5cbi5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDJweCAwO1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAvKiBPdmVycmlkZSBkZWZhdWx0IGRyb3Bkb3duLWl0ZW0tbW9kZXJuIHN0eWxlcyBmb3IgbmVzdGVkIGNvbnRhaW5lcnMgKi9cbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG59XG4uZHJvcGRvd24taXRlbS1tb2Rlcm4uZHJvcGRvd24tbmVzdGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IC8qIFJlbW92ZSBzaGltbWVyIGVmZmVjdCBmcm9tIG91dGVyIGNvbnRhaW5lciAqL1xufVxuLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmRyb3Bkb3duLW5lc3RlZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDsgLyogUHJldmVudCBkb3VibGUgYmFja2dyb3VuZCBvbiBvdXRlciBjb250YWluZXIgKi9cbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7IC8qIFJlbW92ZSB0cmFuc2Zvcm0gZnJvbSBvdXRlciBjb250YWluZXIgKi9cbn1cbi5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQge1xuICAvKiBDcmVhdGUgaW52aXNpYmxlIGJyaWRnZSBhcmVhIGZvciBzbW9vdGggaG92ZXIgdHJhbnNpdGlvbnMgKi9cbn1cbi5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAtNnB4OyAvKiBCcmlkZ2UgdGhlIGdhcCAqL1xuICB3aWR0aDogOHB4OyAvKiBDb3ZlciB0aGUgZ2FwIGFyZWEgKi9cbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgei1pbmRleDogMTAwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmRyb3Bkb3duLW5lc3RlZCAuZHJvcGRvd24taXRlbS10cmlnZ2VyIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDEycHggMTZweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiAjNGM0ZjY5O1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQgLmRyb3Bkb3duLWl0ZW0tdHJpZ2dlciBpIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzE3OTI5OTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQgLmRyb3Bkb3duLWl0ZW0tdHJpZ2dlciAubmVzdGVkLWFycm93IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbiAgY29sb3I6ICM3Mjg3ZmQ7XG59XG4uZHJvcGRvd24taXRlbS1tb2Rlcm4uZHJvcGRvd24tbmVzdGVkOmhvdmVyID4gLmRyb3Bkb3duLWl0ZW0tdHJpZ2dlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjMsIDE0NiwgMTUzLCAwLjEpLCByZ2JhKDExNCwgMTM1LCAyNTMsIDAuMSkpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTc5Mjk5ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgyMywgMTQ2LCAxNTMsIDAuMyk7XG59XG4uZHJvcGRvd24taXRlbS1tb2Rlcm4uZHJvcGRvd24tbmVzdGVkOmhvdmVyID4gLmRyb3Bkb3duLWl0ZW0tdHJpZ2dlciBpIHtcbiAgY29sb3I6ICMxNzkyOTkgIWltcG9ydGFudDtcbn1cbi5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQ6aG92ZXIgPiAuZHJvcGRvd24taXRlbS10cmlnZ2VyIC5uZXN0ZWQtYXJyb3cge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIGNvbG9yOiAjNzI4N2ZkICFpbXBvcnRhbnQ7XG59XG4uZHJvcGRvd24taXRlbS1tb2Rlcm4uZHJvcGRvd24tbmVzdGVkOmhvdmVyID4gLmRyb3Bkb3duLW1lbnUtbmVzdGVkIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSBzY2FsZSgxKSAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQge1xuICAvKiBLZWVwIG5lc3RlZCBkcm9wZG93biBvcGVuIHdoZW4gaG92ZXJpbmcgb3ZlciB0aGUgbWVudSBpdHNlbGYgKi9cbn1cbi5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQgLmRyb3Bkb3duLW1lbnUtbmVzdGVkOmhvdmVyIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSBzY2FsZSgxKSAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLyogTWFpbiBEcm9wZG93biBTdHlsZXMgKi9cbi5uYXYtZHJvcGRvd24tbW9kZXJuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLm5hdi1kcm9wZG93bi1tb2Rlcm4gLmRyb3Bkb3duLWhvdmVyLWJyaWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAyMjBweDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDE2cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiA5OTk7XG59XG4ubmF2LWRyb3Bkb3duLW1vZGVybi5kcm9wZG93bi1vcGVuID4gLmRyb3Bkb3duLWhvdmVyLWJyaWRnZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLm5hdi1kcm9wZG93bi1tb2Rlcm4gLmRyb3Bkb3duLXRyaWdnZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5uYXYtZHJvcGRvd24tbW9kZXJuIC5kcm9wZG93bi10cmlnZ2VyIC5kcm9wZG93bi1hcnJvdyB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5uYXYtZHJvcGRvd24tbW9kZXJuIC5kcm9wZG93bi1tZW51LW1vZGVybiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyAxMnB4KTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIC8qIExpZ2h0IHRoZW1lIChDYXRwcHVjY2luIExhdHRlKSAqL1xuICBiYWNrZ3JvdW5kOiByZ2IoMjM5LCAyNDEsIDI0NSk7IC8qIEJhc2UgKi9cbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNTYsIDE2MCwgMTc2LCAwLjIpOyAvKiBPdmVybGF5IDAgKi9cbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDQwcHggcmdiYSg3NiwgNzksIDEwNSwgMC4xNSksIDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTBweCkgc2NhbGUoMC45NSk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSwgdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG4gIHotaW5kZXg6IDEwMDA7XG4gIG1pbi13aWR0aDogMjIwcHg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5uYXYtZHJvcGRvd24tbW9kZXJuIC5kcm9wZG93bi1tZW51LW1vZGVybjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC04cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBiYWNrZ3JvdW5kOiByZ2IoMjM5LCAyNDEsIDI0NSk7IC8qIEJhc2UgKi9cbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNTYsIDE2MCwgMTc2LCAwLjIpOyAvKiBPdmVybGF5IDAgKi9cbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbn1cbi5uYXYtZHJvcGRvd24tbW9kZXJuIC5kcm9wZG93bi1tZW51LW1vZGVybi5kcm9wZG93bi1tZW51LXJpZ2h0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cbi5uYXYtZHJvcGRvd24tbW9kZXJuIC5kcm9wZG93bi1tZW51LW1vZGVybi5kcm9wZG93bi1tZW51LXJpZ2h0OjpiZWZvcmUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMjRweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHJvdGF0ZSg0NWRlZyk7XG59XG4ubmF2LWRyb3Bkb3duLW1vZGVybi5kcm9wZG93bi1vcGVuIC5kcm9wZG93bi1tZW51LW1vZGVybiB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5uYXYtZHJvcGRvd24tbW9kZXJuLmRyb3Bkb3duLW9wZW4gLmRyb3Bkb3duLW1lbnUtbW9kZXJuLmRyb3Bkb3duLW1lbnUtcmlnaHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbn1cbi5uYXYtZHJvcGRvd24tbW9kZXJuLmRyb3Bkb3duLW9wZW4gLmRyb3Bkb3duLXRyaWdnZXIgLmRyb3Bkb3duLWFycm93IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cbi5uYXYtZHJvcGRvd24tbW9kZXJuLmFjdGl2ZSAuZHJvcGRvd24tdHJpZ2dlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxNzkyOTksICM3Mjg3ZmQpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZWZmMWY1ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgyMywgMTQ2LCAxNTMsIDAuNCksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuLm5hdi1kcm9wZG93bi1tb2Rlcm4uYWN0aXZlIC5kcm9wZG93bi10cmlnZ2VyIGksIC5uYXYtZHJvcGRvd24tbW9kZXJuLmFjdGl2ZSAuZHJvcGRvd24tdHJpZ2dlciBzcGFuIHtcbiAgY29sb3I6ICNlZmYxZjUgIWltcG9ydGFudDtcbn1cblxuLmRyb3Bkb3duLWl0ZW0tbW9kZXJuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLyogTGlnaHQgdGhlbWUgKENhdHBwdWNjaW4gTGF0dGUpICovXG4gIGNvbG9yOiAjNGM0ZjY5OyAvKiBUZXh0ICovXG4gIHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRyb3Bkb3duLWl0ZW0tbW9kZXJuIGkge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjMTc5Mjk5OyAvKiBUZWFsICovXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG4uZHJvcGRvd24taXRlbS1tb2Rlcm4gc3BhbiB7XG4gIGZsZXg6IDE7XG59XG4uZHJvcGRvd24taXRlbS1tb2Rlcm4gLmJhZGdlLWVuZGVkIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VmNDQ0NCwgI2RjMjYyNik7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIHBhZGRpbmc6IDJweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZHJvcGRvd24taXRlbS1tb2Rlcm46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgwLCAxMzAsIDE1MCwgMC4xKSwgdHJhbnNwYXJlbnQpO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDAuNHMgZWFzZTtcbn1cbi5kcm9wZG93bi1pdGVtLW1vZGVybjpob3ZlciB7XG4gIC8qIExpZ2h0IHRoZW1lIChDYXRwcHVjY2luIExhdHRlKSAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIzLCAxNDYsIDE1MywgMC4xKSwgcmdiYSgxMTQsIDEzNSwgMjUzLCAwLjEpKTsgLyogVGVhbCB0byBMYXZlbmRlciAqL1xuICBjb2xvcjogIzE3OTI5OTsgLyogVGVhbCAqL1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjMpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcbn1cbi5kcm9wZG93bi1pdGVtLW1vZGVybjpob3Zlcjo6YmVmb3JlIHtcbiAgbGVmdDogMTAwJTtcbn1cbi5kcm9wZG93bi1pdGVtLW1vZGVybjpob3ZlciBpIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHRyYW5zbGF0ZVkoLTFweCk7XG4gIGNvbG9yOiAjNzI4N2ZkOyAvKiBMYXZlbmRlciAqL1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDJweCByZ2JhKDExNCwgMTM1LCAyNTMsIDAuMykpO1xufVxuLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmhpZ2hsaWdodC1pdGVtIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMywgMTQ2LCAxNTMsIDAuMSksIHJnYmEoMTE0LCAxMzUsIDI1MywgMC4xKSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjMsIDE0NiwgMTUzLCAwLjIpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmhpZ2hsaWdodC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzE3OTI5OSwgIzcyODdmZCk7IC8qIFRlYWwgdG8gTGF2ZW5kZXIgKi9cbiAgY29sb3I6ICNlZmYxZjU7IC8qIEJhc2UgZm9yIGNvbnRyYXN0ICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpIHNjYWxlKDEuMDIpO1xufVxuLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmhpZ2hsaWdodC1pdGVtOmhvdmVyIGkge1xuICBjb2xvcjogI2VmZjFmNTtcbn1cblxuLmRyb3Bkb3duLWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjEpLCB0cmFuc3BhcmVudCk7XG4gIG1hcmdpbjogOHB4IDA7XG59XG5cbi8qIFF1b3RlIEl0ZW0gU3R5bGVzICovXG4ucXVvdGUtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogOHB4IDEycHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAycHggMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC41KTtcbn1cbi5xdW90ZS1pdGVtIC5xdW90ZS1pdGVtLW1haW4ge1xuICBmbGV4OiAxO1xufVxuLnF1b3RlLWl0ZW0gLnF1b3RlLWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuLnF1b3RlLWl0ZW0gLnF1b3RlLWRlbGV0ZS1idG4ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGNvbG9yOiAjZWY0NDQ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLnF1b3RlLWl0ZW0gLnF1b3RlLWRlbGV0ZS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi8qIE5hdmlnYXRpb24gQmFkZ2UgKi9cbi5uYXYtYmFkZ2Uge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZWY0NDQ0LCAjZGMyNjI2KTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgcGFkZGluZzogMnB4IDZweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgYW5pbWF0aW9uOiBwdWxzZSAycyBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUklHSFQgU0VDVElPTjogQ1RBIEJVVFRPTlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5uYXZiYXItcmlnaHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmN0YS1idXR0b24tbW9kZXJuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDEycHggMjBweDtcbiAgLyogTGlnaHQgdGhlbWUgKENhdHBwdWNjaW4gTGF0dGUpICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxNzkyOTksICM3Mjg3ZmQpOyAvKiBUZWFsIHRvIExhdmVuZGVyICovXG4gIGNvbG9yOiAjZWZmMWY1OyAvKiBCYXNlIGZvciBjb250cmFzdCAqL1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjMpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi5jdGEtYnV0dG9uLW1vZGVybjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IC0xMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIHRyYW5zcGFyZW50KTtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjVzIGVhc2U7XG59XG4uY3RhLWJ1dHRvbi1tb2Rlcm4gaSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5jdGEtYnV0dG9uLW1vZGVybjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxLjA1KTtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDIzLCAxNDYsIDE1MywgMC40KSwgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGNvbG9yOiAjZWZmMWY1ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuLmN0YS1idXR0b24tbW9kZXJuOmhvdmVyOjpiZWZvcmUge1xuICBsZWZ0OiAxMDAlO1xufVxuLmN0YS1idXR0b24tbW9kZXJuOmhvdmVyIHNwYW4ge1xuICBhbmltYXRpb246IHRleHRCb3VuY2UgMC42cyBlYXNlLWluLW91dDtcbn1cbi5jdGEtYnV0dG9uLW1vZGVybjpob3ZlciBpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgc2NhbGUoMS4xKTtcbn1cbkBrZXlmcmFtZXMgdGV4dEJvdW5jZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIH1cbn1cbi5jdGEtYnV0dG9uLW1vZGVybi5nby1zb2xhci1idG4ge1xuICAvKiBMaWdodCB0aGVtZSAoQ2F0cHB1Y2NpbiBMYXR0ZSkgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2RmOGUxZCwgI2ZlNjQwYik7IC8qIFllbGxvdyB0byBQZWFjaCAqL1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMjIzLCAxNDIsIDI5LCAwLjMpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi5jdGEtYnV0dG9uLW1vZGVybi5nby1zb2xhci1idG46aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMjIzLCAxNDIsIDI5LCAwLjQpLCAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5jdGEtYnV0dG9uLW1vZGVybi5nby1zb2xhci1idG46aG92ZXIgaSB7XG4gIGFuaW1hdGlvbjogbGlnaHRuaW5nIDAuNnMgZWFzZS1pbi1vdXQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmN0YS1idXR0b24tbW9kZXJuIHtcbiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRuaW5nIHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgc2NhbGUoMS4yKSByb3RhdGUoMTVkZWcpO1xuICB9XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTU9CSUxFIFNUWUxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5tb2JpbGUtbWVudS1idG4ge1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTAwMTsgLyogRW5zdXJlIGJ1dHRvbiBzdGF5cyBhYm92ZSBtb2JpbGUgbWVudSAqL1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAubW9iaWxlLW1lbnUtYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAzcHg7XG4gIH1cbn1cbi5tb2JpbGUtbWVudS1idG4gLmhhbWJ1cmdlci1saW5lIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTc5Mjk5LCAjNzI4N2ZkKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuLm1vYmlsZS1tZW51LWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xufVxuLm1vYmlsZS1tZW51LWJ0bjpob3ZlciAuaGFtYnVyZ2VyLWxpbmUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNzI4N2ZkLCAjMTc5Mjk5KTtcbn1cbi5tb2JpbGUtbWVudS1idG4uYWN0aXZlIC5oYW1idXJnZXItbGluZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZjQ0NDQsICNkYzI2MjYpO1xufVxuLm1vYmlsZS1tZW51LWJ0biB7XG4gIC8qIEZvY3VzIHN0YXRlIGZvciBhY2Nlc3NpYmlsaXR5ICovXG59XG4ubW9iaWxlLW1lbnUtYnRuOmZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHJnYmEoMjMsIDE0NiwgMTUzLCAwLjUpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ubW9iaWxlLW5hdi1jb2xsYXBzZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAxNnB4O1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTIwcHgpOyAvKiBQcmV2ZW50IGNvdmVyaW5nIGVudGlyZSBzY3JlZW4gKi9cbiAgb3ZlcmZsb3cteTogYXV0bzsgLyogRW5hYmxlIHNjcm9sbGluZyB3aGVuIGNvbnRlbnQgaXMgdG9vIHRhbGwgKi9cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAxcHgpIHtcbiAgLm1vYmlsZS1uYXYtY29sbGFwc2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubW9iaWxlLW5hdi1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogcmdiKDI1NSwgMjU1LCAyNTUpO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjEpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDE0MHB4KTsgLyogQWNjb3VudCBmb3IgbmF2YmFyIGhlaWdodCBhbmQgbWFyZ2lucyAqL1xuICBvdmVyZmxvdy15OiBhdXRvOyAvKiBFbmFibGUgc2Nyb2xsaW5nIGZvciBjb250ZW50ICovXG4gIC8qIEN1c3RvbSBzY3JvbGxiYXIgc3R5bGluZyAqL1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gIHNjcm9sbGJhci1jb2xvcjogcmdiYSgyMywgMTQ2LCAxNTMsIDAuMykgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjUpO1xufVxuLm1vYmlsZS1uYXYtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xufVxuLm1vYmlsZS1uYXYtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5tb2JpbGUtbmF2LWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyMywgMTQ2LCAxNTMsIDAuMyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5tb2JpbGUtbmF2LWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyMywgMTQ2LCAxNTMsIDAuNSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNT0JJTEUgTkFWSUdBVElPTiBTVFlMRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubW9iaWxlLW5hdi1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cbi5tb2JpbGUtbmF2LXNlY3Rpb246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tb2JpbGUtbmF2LWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogMTZweCAyMHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIzLCAxNDYsIDE1MywgMC4wOCksIHJnYmEoMTE0LCAxMzUsIDI1MywgMC4wOCkpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzLCAxNDYsIDE1MywgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGNvbG9yOiAjMmMyZjQwOyAvKiBNdWNoIGRhcmtlciB0ZXh0IGZvciBiZXR0ZXIgdmlzaWJpbGl0eSAqL1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubW9iaWxlLW5hdi1oZWFkZXIgaSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY29sb3I6ICMxNzkyOTk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ubW9iaWxlLW5hdi1oZWFkZXIgc3BhbiB7XG4gIGZsZXg6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IC8qIE1ha2UgdGV4dCBib2xkZXIgKi9cbn1cbi5tb2JpbGUtbmF2LWhlYWRlciAubW9iaWxlLWNoZXZyb24ge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjNzI4N2ZkO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuLm1vYmlsZS1uYXYtaGVhZGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogLTEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMjMsIDE0NiwgMTUzLCAwLjEpLCB0cmFuc3BhcmVudCk7XG4gIHRyYW5zaXRpb246IGxlZnQgMC40cyBlYXNlO1xufVxuLm1vYmlsZS1uYXYtaGVhZGVyOmhvdmVyLCAubW9iaWxlLW5hdi1oZWFkZXI6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIzLCAxNDYsIDE1MywgMC4xMiksIHJnYmEoMTE0LCAxMzUsIDI1MywgMC4xMikpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjI1KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgyMywgMTQ2LCAxNTMsIDAuMik7XG59XG4ubW9iaWxlLW5hdi1oZWFkZXI6aG92ZXI6OmJlZm9yZSwgLm1vYmlsZS1uYXYtaGVhZGVyOmZvY3VzOjpiZWZvcmUge1xuICBsZWZ0OiAxMDAlO1xufVxuLm1vYmlsZS1uYXYtaGVhZGVyOmhvdmVyIGksIC5tb2JpbGUtbmF2LWhlYWRlcjpmb2N1cyBpIHtcbiAgY29sb3I6ICM3Mjg3ZmQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cbi5tb2JpbGUtbmF2LWhlYWRlcjpob3ZlciBzcGFuLCAubW9iaWxlLW5hdi1oZWFkZXI6Zm9jdXMgc3BhbiB7XG4gIGNvbG9yOiAjMTc5Mjk5O1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjIpO1xufVxuLm1vYmlsZS1uYXYtaGVhZGVyOmhvdmVyIC5tb2JpbGUtY2hldnJvbiwgLm1vYmlsZS1uYXYtaGVhZGVyOmZvY3VzIC5tb2JpbGUtY2hldnJvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIGNvbG9yOiAjMTc5Mjk5O1xufVxuLm1vYmlsZS1uYXYtaGVhZGVyLm1vYmlsZS1uYXYtZGlyZWN0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLm1vYmlsZS1uYXYtaGVhZGVyLm1vYmlsZS1uYXYtZGlyZWN0OmhvdmVyIC5tb2JpbGUtY2hldnJvbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpICFpbXBvcnRhbnQ7XG59XG4ubW9iaWxlLW5hdi1oZWFkZXJbYXJpYS1leHBhbmRlZD10cnVlXSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjMsIDE0NiwgMTUzLCAwLjE1KSwgcmdiYSgxMTQsIDEzNSwgMjUzLCAwLjE1KSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyMywgMTQ2LCAxNTMsIDAuMyk7XG59XG4ubW9iaWxlLW5hdi1oZWFkZXJbYXJpYS1leHBhbmRlZD10cnVlXSAubW9iaWxlLWNoZXZyb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4ubW9iaWxlLW5hdi1zdWJtZW51IHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgcmdiYSgyMywgMTQ2LCAxNTMsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDAgMTJweCAxMnB4IDA7XG59XG5cbi5tb2JpbGUtbmF2LWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgbWFyZ2luOiA0cHggMDtcbiAgYmFja2dyb3VuZDogcmdiKDI0OCwgMjUwLCAyNTIpOyAvKiBNb3JlIHNvbGlkIGxpZ2h0IGJhY2tncm91bmQgKi9cbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDMsIDIxMywgMjI1LCAwLjgpOyAvKiBTdHJvbmdlciBib3JkZXIgKi9cbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgY29sb3I6ICMxZTI5M2I7IC8qIE11Y2ggZGFya2VyIHRleHQgZm9yIGJldHRlciByZWFkYWJpbGl0eSAqL1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubW9iaWxlLW5hdi1saW5rIGkge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjMTc5Mjk5O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLm1vYmlsZS1uYXYtbGluayBzcGFuIHtcbiAgZmxleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDsgLyogRW5zdXJlIGdvb2QgcmVhZGFiaWxpdHkgKi9cbn1cbi5tb2JpbGUtbmF2LWxpbms6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyMywgMTQ2LCAxNTMsIDAuMSksIHRyYW5zcGFyZW50KTtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjRzIGVhc2U7XG59XG4ubW9iaWxlLW5hdi1saW5rOmhvdmVyLCAubW9iaWxlLW5hdi1saW5rOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMywgMTQ2LCAxNTMsIDAuMDgpLCByZ2JhKDExNCwgMTM1LCAyNTMsIDAuMDgpKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzLCAxNDYsIDE1MywgMC4zKTtcbiAgY29sb3I6ICMxNzkyOTk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjE1KTtcbn1cbi5tb2JpbGUtbmF2LWxpbms6aG92ZXI6OmJlZm9yZSwgLm1vYmlsZS1uYXYtbGluazpmb2N1czo6YmVmb3JlIHtcbiAgbGVmdDogMTAwJTtcbn1cbi5tb2JpbGUtbmF2LWxpbms6aG92ZXIgaSwgLm1vYmlsZS1uYXYtbGluazpmb2N1cyBpIHtcbiAgY29sb3I6ICM3Mjg3ZmQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKSB0cmFuc2xhdGVZKC0xcHgpO1xufVxuLm1vYmlsZS1uYXYtbGluazpob3ZlciBzcGFuLCAubW9iaWxlLW5hdi1saW5rOmZvY3VzIHNwYW4ge1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjIpO1xufVxuLm1vYmlsZS1uYXYtbGluay5tb2JpbGUtbmF2LWxpbmstbmVzdGVkIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHJnYigyNDEsIDI0NSwgMjQ5KTsgLyogU2xpZ2h0bHkgZGlmZmVyZW50IG5lc3RlZCBiYWNrZ3JvdW5kICovXG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgcmdiYSgyMywgMTQ2LCAxNTMsIDAuMyk7XG59XG4ubW9iaWxlLW5hdi1saW5rLm1vYmlsZS1uYXYtbGluay1uZXN0ZWQ6aG92ZXIge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzcyODdmZDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEycHgpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjM2LCAyNDIsIDI0Nyk7XG59XG4ubW9iaWxlLW5hdi1saW5rLm1vYmlsZS1uYXYtaGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMywgMTQ2LCAxNTMsIDAuMSksIHJnYmEoMTE0LCAxMzUsIDI1MywgMC4xKSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjMsIDE0NiwgMTUzLCAwLjIpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLm1vYmlsZS1uYXYtbGluay5tb2JpbGUtbmF2LWhpZ2hsaWdodDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxNzkyOTksICM3Mjg3ZmQpO1xuICBjb2xvcjogI2VmZjFmNTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCkgc2NhbGUoMS4wMik7XG59XG4ubW9iaWxlLW5hdi1saW5rLm1vYmlsZS1uYXYtaGlnaGxpZ2h0OmhvdmVyIGksIC5tb2JpbGUtbmF2LWxpbmsubW9iaWxlLW5hdi1oaWdobGlnaHQ6aG92ZXIgc3BhbiB7XG4gIGNvbG9yOiAjZWZmMWY1O1xufVxuXG4ubW9iaWxlLW5hdi1uZXN0ZWQge1xuICBtYXJnaW46IDhweCAwO1xufVxuXG4ubW9iaWxlLW5hdi1uZXN0ZWQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjM2LCAyNDIsIDI0NywgMC45KTsgLyogQmV0dGVyIGxpZ2h0IGJhY2tncm91bmQgKi9cbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxODYsIDIwMSwgMjE5LCAwLjcpOyAvKiBTdHJvbmdlciBib3JkZXIgKi9cbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY29sb3I6ICMxZTI5M2I7IC8qIERhcmtlciB0ZXh0IGZvciBiZXR0ZXIgdmlzaWJpbGl0eSAqL1xuICBmb250LXdlaWdodDogNjAwOyAvKiBCb2xkZXIgdGV4dCAqL1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1vYmlsZS1uYXYtbmVzdGVkLWhlYWRlciBpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzE3OTI5OTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5tb2JpbGUtbmF2LW5lc3RlZC1oZWFkZXIgc3BhbiB7XG4gIGZsZXg6IDE7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IC8qIEVuc3VyZSBnb29kIHJlYWRhYmlsaXR5ICovXG59XG4ubW9iaWxlLW5hdi1uZXN0ZWQtaGVhZGVyIC5tb2JpbGUtY2hldnJvbi1uZXN0ZWQge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNzI4N2ZkO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuLm1vYmlsZS1uYXYtbmVzdGVkLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYigyMTksIDIzMiwgMjQ1KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzLCAxNDYsIDE1MywgMC4zKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG59XG4ubW9iaWxlLW5hdi1uZXN0ZWQtaGVhZGVyOmhvdmVyIGkge1xuICBjb2xvcjogIzcyODdmZDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbn1cbi5tb2JpbGUtbmF2LW5lc3RlZC1oZWFkZXI6aG92ZXIgLm1vYmlsZS1jaGV2cm9uLW5lc3RlZCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgY29sb3I6ICMxNzkyOTk7XG59XG4ubW9iaWxlLW5hdi1uZXN0ZWQtaGVhZGVyW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICBiYWNrZ3JvdW5kOiByZ2IoMjE5LCAyMzIsIDI0NSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyMywgMTQ2LCAxNTMsIDAuNCk7XG59XG4ubW9iaWxlLW5hdi1uZXN0ZWQtaGVhZGVyW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gLm1vYmlsZS1jaGV2cm9uLW5lc3RlZCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cblxuLm1vYmlsZS1uYXYtbmVzdGVkLXN1Ym1lbnUge1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCByZ2JhKDExNCwgMTM1LCAyNTMsIDAuMik7XG59XG5cbi5tb2JpbGUtbmF2LWJhZGdlIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VmNDQ0NCwgI2RjMjYyNik7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIHBhZGRpbmc6IDJweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLm1vYmlsZS1iYWRnZS1lbmRlZCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZjQ0NDQsICNkYzI2MjYpO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgcGFkZGluZzogMnB4IDZweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLm1vYmlsZS1xdW90ZS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW46IDRweCAwO1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgYmFja2dyb3VuZDogcmdiKDI0MSwgMjQ1LCAyNDkpOyAvKiBCZXR0ZXIgbGlnaHQgYmFja2dyb3VuZCAqL1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwMywgMjEzLCAyMjUsIDAuOCk7IC8qIFN0cm9uZ2VyIGJvcmRlciAqL1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGdhcDogOHB4O1xufVxuLm1vYmlsZS1xdW90ZS1pdGVtIC5tb2JpbGUtbmF2LWxpbmsge1xuICBmbGV4OiAxO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGNvbG9yOiAjMWUyOTNiOyAvKiBEYXJrZXIgdGV4dCB0byBtYXRjaCB0aGVtZSAqL1xufVxuLm1vYmlsZS1xdW90ZS1pdGVtIC5tb2JpbGUtbmF2LWxpbms6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcbn1cblxuLm1vYmlsZS1xdW90ZS1kZWxldGUtYnRuIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBjb2xvcjogI2VmNDQ0NDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ubW9iaWxlLXF1b3RlLWRlbGV0ZS1idG4gaSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tb2JpbGUtcXVvdGUtZGVsZXRlLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLm1vYmlsZS1uYXYtY3RhIHtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDIzLCAxNDYsIDE1MywgMC4yKTtcbn1cblxuLm1vYmlsZS1jdGEtYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDE2cHggMjRweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzE3OTI5OSwgIzcyODdmZCk7XG4gIGNvbG9yOiAjZWZmMWY1O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjMpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi5tb2JpbGUtY3RhLWJ1dHRvbiBpIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLm1vYmlsZS1jdGEtYnV0dG9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogLTEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgdHJhbnNwYXJlbnQpO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDAuNXMgZWFzZTtcbn1cbi5tb2JpbGUtY3RhLWJ1dHRvbjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxLjAyKTtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDIzLCAxNDYsIDE1MywgMC40KSwgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGNvbG9yOiAjZWZmMWY1O1xufVxuLm1vYmlsZS1jdGEtYnV0dG9uOmhvdmVyOjpiZWZvcmUge1xuICBsZWZ0OiAxMDAlO1xufVxuLm1vYmlsZS1jdGEtYnV0dG9uOmhvdmVyIGkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KSBzY2FsZSgxLjEpO1xufVxuLm1vYmlsZS1jdGEtYnV0dG9uLm1vYmlsZS1nby1zb2xhciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNkZjhlMWQsICNmZTY0MGIpO1xuICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMjIzLCAxNDIsIDI5LCAwLjMpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi5tb2JpbGUtY3RhLWJ1dHRvbi5tb2JpbGUtZ28tc29sYXI6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMjIzLCAxNDIsIDI5LCAwLjQpLCAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5tb2JpbGUtY3RhLWJ1dHRvbi5tb2JpbGUtZ28tc29sYXI6aG92ZXIgaSB7XG4gIGFuaW1hdGlvbjogbW9iaWxlTGlnaHRuaW5nIDAuNnMgZWFzZS1pbi1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgbW9iaWxlTGlnaHRuaW5nIHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpIHNjYWxlKDEuMSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KSBzY2FsZSgxLjMpIHJvdGF0ZSgxNWRlZyk7XG4gIH1cbn1cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUSEVNRSBBREFQVEFUSU9OU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbltkYXRhLXRoZW1lPWRhcmtdIC5uYXZiYXItY29udGFpbmVyIHtcbiAgLyogRGFyayB0aGVtZSAoQ2F0cHB1Y2NpbiBNb2NoYSkgKi9cbiAgYmFja2dyb3VuZDogcmdiKDMwLCAzMCwgNDYpOyAvKiBCYXNlIHdpdGggdHJhbnNwYXJlbmN5ICovXG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMDgsIDExMiwgMTM0LCAwLjMpOyAvKiBPdmVybGF5IDAgKi9cbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDE3LCAxNywgMjcsIDAuMyksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMiksIGluc2V0IDAgMXB4IDAgcmdiYSgyMDUsIDIxNCwgMjQ0LCAwLjEpOyAvKiBUZXh0IGNvbG9yIGZvciBpbm5lciBoaWdobGlnaHQgKi9cbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5uYXZiYXItY29udGFpbmVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMSksIHRyYW5zcGFyZW50LCByZ2JhKDE4MCwgMTkwLCAyNTQsIDAuMSksIHRyYW5zcGFyZW50KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5uYXYtbGlua3MtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogcmdiKDQ5LCA1MCwgNjgpOyAvKiBTdXJmYWNlIDEgKi9cbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDEwOCwgMTEyLCAxMzQsIDAuMyk7IC8qIE92ZXJsYXkgMCAqL1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjA1LCAyMTQsIDI0NCwgMC4wNSk7IC8qIFRleHQgY29sb3IgZm9yIGlubmVyIGhpZ2hsaWdodCAqL1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm5hdi1saW5rLW1vZGVybiB7XG4gIGNvbG9yOiAjY2RkNmY0ICFpbXBvcnRhbnQ7IC8qIFRleHQgKi9cbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7IC8qIEJldHRlciByZWFkYWJpbGl0eSAqL1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm5hdi1saW5rLW1vZGVybiBpLCBbZGF0YS10aGVtZT1kYXJrXSAubmF2LWxpbmstbW9kZXJuIHNwYW4ge1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm5hdi1saW5rLW1vZGVybjpob3ZlciwgW2RhdGEtdGhlbWU9ZGFya10gLm5hdi1saW5rLW1vZGVybi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjOTRlMmQ1LCAjYjRiZWZlKSAhaW1wb3J0YW50OyAvKiBUZWFsIHRvIExhdmVuZGVyICovXG4gIGNvbG9yOiAjMWUxZTJlICFpbXBvcnRhbnQ7IC8qIEJhc2UgZm9yIGNvbnRyYXN0ICovXG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgzMCwgMzAsIDQ2LCAwLjIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjMpLCAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm5hdi1saW5rLW1vZGVybjpob3ZlciBpLCBbZGF0YS10aGVtZT1kYXJrXSAubmF2LWxpbmstbW9kZXJuLmFjdGl2ZSBpIHtcbiAgY29sb3I6ICMxZTFlMmUgIWltcG9ydGFudDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5uYXYtbGluay1tb2Rlcm46aG92ZXIgc3BhbiwgW2RhdGEtdGhlbWU9ZGFya10gLm5hdi1saW5rLW1vZGVybi5hY3RpdmUgc3BhbiB7XG4gIGNvbG9yOiAjMWUxZTJlICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubmF2LWxpbmstbW9kZXJuLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM5NGUyZDUsICNiNGJlZmUpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMWUxZTJlICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgzMCwgMzAsIDQ2LCAwLjIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjQpLCBpbnNldCAwIDFweCAwIHJnYmEoMzAsIDMwLCA0NiwgMC4yKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5uYXYtbGluay1tb2Rlcm4uYWN0aXZlIGksIFtkYXRhLXRoZW1lPWRhcmtdIC5uYXYtbGluay1tb2Rlcm4uYWN0aXZlIHNwYW4ge1xuICBjb2xvcjogIzFlMWUyZSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLmRyb3Bkb3duLW1lbnUtbW9kZXJuIHtcbiAgYmFja2dyb3VuZDogcmdiKDMwLCAzMCwgNDYpOyAvKiBCYXNlICovXG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMDgsIDExMiwgMTM0LCAwLjMpOyAvKiBPdmVybGF5IDAgKi9cbiAgYm94LXNoYWRvdzogMCAxNnB4IDQwcHggcmdiYSgxNywgMTcsIDI3LCAwLjQpLCAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5kcm9wZG93bi1tZW51LW1vZGVybjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogcmdiKDMwLCAzMCwgNDYpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTA4LCAxMTIsIDEzNCwgMC4zKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5kcm9wZG93bi1pdGVtLW1vZGVybiB7XG4gIGNvbG9yOiAjY2RkNmY0OyAvKiBUZXh0ICovXG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLmRyb3Bkb3duLWl0ZW0tbW9kZXJuIGkge1xuICBjb2xvcjogIzk0ZTJkNTsgLyogVGVhbCBmb3IgaWNvbnMgKi9cbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCAycHggcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjMpKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5kcm9wZG93bi1pdGVtLW1vZGVybjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4xKSwgcmdiYSgxODAsIDE5MCwgMjU0LCAwLjEpKTtcbiAgY29sb3I6ICM5NGUyZDU7IC8qIFRlYWwgKi9cbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuNCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAuZHJvcGRvd24taXRlbS1tb2Rlcm46aG92ZXIgaSB7XG4gIGNvbG9yOiAjYjRiZWZlOyAvKiBMYXZlbmRlciAqL1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDNweCByZ2JhKDE4MCwgMTkwLCAyNTQsIDAuNCkpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgdHJhbnNsYXRlWSgtMXB4KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5kcm9wZG93bi1pdGVtLW1vZGVybi5oaWdobGlnaHQtaXRlbSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4xKSwgcmdiYSgxODAsIDE5MCwgMjU0LCAwLjEpKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmhpZ2hsaWdodC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzk0ZTJkNSwgI2I0YmVmZSk7XG4gIGNvbG9yOiAjMWUxZTJlOyAvKiBCYXNlIGZvciBjb250cmFzdCAqL1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmhpZ2hsaWdodC1pdGVtOmhvdmVyIGkge1xuICBjb2xvcjogIzFlMWUyZTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5uYXZiYXItYnJhbmQtbW9kZXJuOmhvdmVyIHtcbiAgY29sb3I6ICM5NGUyZDU7IC8qIFRlYWwgKi9cbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5uYXZiYXItYnJhbmQtbW9kZXJuOmhvdmVyIC5uYXZiYXItYnJhbmQtdGV4dCB7XG4gIGFuaW1hdGlvbjogdGV4dEZsb2F0IDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDZweCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuNikpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm5hdmJhci1icmFuZC1tb2Rlcm4gLm5hdmJhci1icmFuZC10ZXh0IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzk0ZTJkNSwgI2I0YmVmZSk7IC8qIFRlYWwgdG8gTGF2ZW5kZXIgKi9cbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDNweCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuNCkpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm5hdmJhci1icmFuZC1tb2Rlcm46aG92ZXIgLm5hdmJhci1sb2dvIHtcbiAgYW5pbWF0aW9uOiBsb2dvR2xvd0RhcmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGUgYWx0ZXJuYXRlO1xufVxuQGtleWZyYW1lcyBsb2dvR2xvd0Rhcmsge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuNCksIDAgMCAyMHB4IHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4yKSwgMCAwIDQwcHggcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjEpO1xuICB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgxODAsIDE5MCwgMjU0LCAwLjQpLCAwIDAgMjVweCByZ2JhKDE4MCwgMTkwLCAyNTQsIDAuMyksIDAgMCA1MHB4IHJnYmEoMTgwLCAxOTAsIDI1NCwgMC4yKTtcbiAgfVxufVxuW2RhdGEtdGhlbWU9ZGFya10gLmN0YS1idXR0b24tbW9kZXJuIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzk0ZTJkNSwgI2I0YmVmZSk7IC8qIFRlYWwgdG8gTGF2ZW5kZXIgKi9cbiAgY29sb3I6ICMxZTFlMmU7IC8qIEJhc2UgZm9yIGNvbnRyYXN0ICovXG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjMpLCBpbnNldCAwIDFweCAwIHJnYmEoMzAsIDMwLCA0NiwgMC4yKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5jdGEtYnV0dG9uLW1vZGVybjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjQpLCAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpLCBpbnNldCAwIDFweCAwIHJnYmEoMzAsIDMwLCA0NiwgMC4zKTtcbiAgY29sb3I6ICMxZTFlMmUgIWltcG9ydGFudDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5jdGEtYnV0dG9uLW1vZGVybi5nby1zb2xhci1idG4ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmFiMzg3LCAjZjllMmFmKTsgLyogUGVhY2ggdG8gWWVsbG93ICovXG4gIGNvbG9yOiAjMWUxZTJlICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgyNTAsIDE3OSwgMTM1LCAwLjMpLCBpbnNldCAwIDFweCAwIHJnYmEoMzAsIDMwLCA0NiwgMC4yKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5jdGEtYnV0dG9uLW1vZGVybi5nby1zb2xhci1idG46aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMjUwLCAxNzksIDEzNSwgMC40KSwgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgaW5zZXQgMCAxcHggMCByZ2JhKDMwLCAzMCwgNDYsIDAuMyk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogcmdiKDMwLCAzMCwgNDYpOyAvKiBCYXNlICovXG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMDgsIDExMiwgMTM0LCAwLjMpOyAvKiBPdmVybGF5IDAgKi9cbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDE3LCAxNywgMjcsIDAuMyksIGluc2V0IDAgMXB4IDAgcmdiYSgyMDUsIDIxNCwgMjQ0LCAwLjEpO1xuICAvKiBEYXJrIHRoZW1lIHNjcm9sbGJhciBzdHlsaW5nICovXG4gIHNjcm9sbGJhci1jb2xvcjogcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjMpIHJnYmEoNDksIDUwLCA2OCwgMC41KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogcmdiYSg0OSwgNTAsIDY4LCAwLjUpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMyk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAyMjYsIDIxMywgMC41KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIHtcbiAgLyogRGFyayBUaGVtZSBNb2JpbGUgTmF2aWdhdGlvbiBTdHlsZXMgKi9cbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4wNSksIHJnYmEoMTgwLCAxOTAsIDI1NCwgMC4wNSkpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMSk7XG4gIGNvbG9yOiAjY2RkNmY0OyAvKiBUZXh0ICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1oZWFkZXIgaSB7XG4gIGNvbG9yOiAjOTRlMmQ1OyAvKiBUZWFsICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1oZWFkZXIgLm1vYmlsZS1jaGV2cm9uIHtcbiAgY29sb3I6ICNiNGJlZmU7IC8qIExhdmVuZGVyICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1oZWFkZXI6aG92ZXIsIFtkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LWhlYWRlcjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4xKSwgcmdiYSgxODAsIDE5MCwgMjU0LCAwLjEpKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMik7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtaGVhZGVyOmhvdmVyIGksIFtkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LWhlYWRlcjpmb2N1cyBpIHtcbiAgY29sb3I6ICNiNGJlZmU7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1oZWFkZXI6aG92ZXIgc3BhbiwgW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtaGVhZGVyOmZvY3VzIHNwYW4ge1xuICBjb2xvcjogIzk0ZTJkNTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMik7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1oZWFkZXI6aG92ZXIgLm1vYmlsZS1jaGV2cm9uLCBbZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1oZWFkZXI6Zm9jdXMgLm1vYmlsZS1jaGV2cm9uIHtcbiAgY29sb3I6ICM5NGUyZDU7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1oZWFkZXJbYXJpYS1leHBhbmRlZD10cnVlXSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4xNSksIHJnYmEoMTgwLCAxOTAsIDI1NCwgMC4xNSkpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4zKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LXN1Ym1lbnUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtbGluayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDksIDUwLCA2OCwgMC43KTsgLyogU3VyZmFjZSAxICovXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTA4LCAxMTIsIDEzNCwgMC41KTsgLyogT3ZlcmxheSAwICovXG4gIGNvbG9yOiAjY2RkNmY0OyAvKiBUZXh0ICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1saW5rIGkge1xuICBjb2xvcjogIzk0ZTJkNTsgLyogVGVhbCAqL1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtbGluazpob3ZlciwgW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtbGluazpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4xKSwgcmdiYSgxODAsIDE5MCwgMjU0LCAwLjEpKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMik7XG4gIGNvbG9yOiAjOTRlMmQ1O1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4xNSk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1saW5rOmhvdmVyIGksIFtkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LWxpbms6Zm9jdXMgaSB7XG4gIGNvbG9yOiAjYjRiZWZlO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtbGluazpob3ZlciBzcGFuLCBbZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1saW5rOmZvY3VzIHNwYW4ge1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4yKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LWxpbmsubW9iaWxlLW5hdi1saW5rLW5lc3RlZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNjksIDcxLCA5MCwgMC44KTsgLyogU3VyZmFjZSAyICovXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMyk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1saW5rLm1vYmlsZS1uYXYtbGluay1uZXN0ZWQ6aG92ZXIge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2I0YmVmZTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LWxpbmsubW9iaWxlLW5hdi1oaWdobGlnaHQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMSksIHJnYmEoMTgwLCAxOTAsIDI1NCwgMC4xKSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4yKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LWxpbmsubW9iaWxlLW5hdi1oaWdobGlnaHQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjOTRlMmQ1LCAjYjRiZWZlKTtcbiAgY29sb3I6ICMxZTFlMmU7IC8qIEJhc2UgZm9yIGNvbnRyYXN0ICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1saW5rLm1vYmlsZS1uYXYtaGlnaGxpZ2h0OmhvdmVyIGksIFtkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LWxpbmsubW9iaWxlLW5hdi1oaWdobGlnaHQ6aG92ZXIgc3BhbiB7XG4gIGNvbG9yOiAjMWUxZTJlO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtbmVzdGVkLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNjksIDcxLCA5MCwgMC44KTsgLyogU3VyZmFjZSAyICovXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTA4LCAxMTIsIDEzNCwgMC41KTsgLyogT3ZlcmxheSAwICovXG4gIGNvbG9yOiAjY2RkNmY0OyAvKiBUZXh0ICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1uZXN0ZWQtaGVhZGVyIGkge1xuICBjb2xvcjogIzk0ZTJkNTsgLyogVGVhbCAqL1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtbmVzdGVkLWhlYWRlciAubW9iaWxlLWNoZXZyb24tbmVzdGVkIHtcbiAgY29sb3I6ICNiNGJlZmU7IC8qIExhdmVuZGVyICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1uZXN0ZWQtaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjA1KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMik7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW5hdi1uZXN0ZWQtaGVhZGVyOmhvdmVyIGkge1xuICBjb2xvcjogI2I0YmVmZTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbmF2LW5lc3RlZC1oZWFkZXI6aG92ZXIgLm1vYmlsZS1jaGV2cm9uLW5lc3RlZCB7XG4gIGNvbG9yOiAjOTRlMmQ1O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtbmVzdGVkLWhlYWRlclthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjA4KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMjUpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtbmVzdGVkLXN1Ym1lbnUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgxODAsIDE5MCwgMjU0LCAwLjIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtYmFkZ2Uge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjM4YmE4LCAjZWJhMGFjKTsgLyogUGluayB0byBNYXJvb24gKi9cbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtYmFkZ2UtZW5kZWQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjM4YmE4LCAjZWJhMGFjKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtcXVvdGUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDksIDUwLCA2OCwgMC45KTsgLyogU3VyZmFjZSAxICovXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTA4LCAxMTIsIDEzNCwgMC43KTsgLyogT3ZlcmxheSAwICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLXF1b3RlLWRlbGV0ZS1idG4ge1xuICBjb2xvcjogI2YzOGJhODsgLyogUGluayAqL1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1xdW90ZS1kZWxldGUtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDMsIDEzOSwgMTY4LCAwLjEpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1uYXYtY3RhIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1jdGEtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzk0ZTJkNSwgI2I0YmVmZSk7IC8qIFRlYWwgdG8gTGF2ZW5kZXIgKi9cbiAgY29sb3I6ICMxZTFlMmUgIWltcG9ydGFudDsgLyogQmFzZSBmb3IgY29udHJhc3QgKi9cbiAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMyksIGluc2V0IDAgMXB4IDAgcmdiYSgzMCwgMzAsIDQ2LCAwLjIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1jdGEtYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuNCksIDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMiksIGluc2V0IDAgMXB4IDAgcmdiYSgzMCwgMzAsIDQ2LCAwLjMpO1xuICBjb2xvcjogIzFlMWUyZTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtY3RhLWJ1dHRvbi5tb2JpbGUtZ28tc29sYXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmFiMzg3LCAjZjllMmFmKTsgLyogUGVhY2ggdG8gWWVsbG93ICovXG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgyNTAsIDE3OSwgMTM1LCAwLjMpLCBpbnNldCAwIDFweCAwIHJnYmEoMzAsIDMwLCA0NiwgMC4yKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtY3RhLWJ1dHRvbi5tb2JpbGUtZ28tc29sYXI6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMjUwLCAxNzksIDEzNSwgMC40KSwgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgaW5zZXQgMCAxcHggMCByZ2JhKDMwLCAzMCwgNDYsIDAuMyk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSB7XG4gIC8qIERhcmsgVGhlbWUgTW9iaWxlIE1lbnUgQnV0dG9uICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW1lbnUtYnRuIC5oYW1idXJnZXItbGluZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM5NGUyZDUsICNiNGJlZmUpOyAvKiBUZWFsIHRvIExhdmVuZGVyICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubW9iaWxlLW1lbnUtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDIyNiwgMjEzLCAwLjEpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1tZW51LWJ0bjpob3ZlciAuaGFtYnVyZ2VyLWxpbmUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjYjRiZWZlLCAjOTRlMmQ1KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2JpbGUtbWVudS1idG4uYWN0aXZlIC5oYW1idXJnZXItbGluZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmMzhiYTgsICNlYmEwYWMpOyAvKiBQaW5rIHRvIE1hcm9vbiAqL1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLm1vYmlsZS1tZW51LWJ0bjpmb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuNSk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubmF2LWJhZGdlIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2YzOGJhOCwgI2ViYTBhYyk7IC8qIFBpbmsgdG8gTWFyb29uICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAucXVvdGUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDksIDUwLCA2OCwgMC44KTsgLyogU3VyZmFjZSAxICovXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTA4LCAxMTIsIDEzNCwgMC41KTsgLyogT3ZlcmxheSAwICovXG59XG5bZGF0YS10aGVtZT1kYXJrXSAubmF2LWRyb3Bkb3duLW1vZGVybi5hY3RpdmUgLmRyb3Bkb3duLXRyaWdnZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjOTRlMmQ1LCAjYjRiZWZlKSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzFlMWUyZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMTQ4LCAyMjYsIDIxMywgMC40KSwgaW5zZXQgMCAxcHggMCByZ2JhKDMwLCAzMCwgNDYsIDAuMik7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAubmF2LWRyb3Bkb3duLW1vZGVybi5hY3RpdmUgLmRyb3Bkb3duLXRyaWdnZXIgaSwgW2RhdGEtdGhlbWU9ZGFya10gLm5hdi1kcm9wZG93bi1tb2Rlcm4uYWN0aXZlIC5kcm9wZG93bi10cmlnZ2VyIHNwYW4ge1xuICBjb2xvcjogIzFlMWUyZSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdGhlbWU9ZGFya10ge1xuICAvKiBEYXJrIHRoZW1lIG5lc3RlZCBkcm9wZG93biBzdHlsZXMgKi9cbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQgLmRyb3Bkb3duLWl0ZW0tdHJpZ2dlciB7XG4gIGNvbG9yOiAjY2RkNmY0ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmRyb3Bkb3duLW5lc3RlZCAuZHJvcGRvd24taXRlbS10cmlnZ2VyIGkge1xuICBjb2xvcjogIzk0ZTJkNSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmRyb3Bkb3duLW5lc3RlZCAuZHJvcGRvd24taXRlbS10cmlnZ2VyIC5uZXN0ZWQtYXJyb3cge1xuICBjb2xvcjogI2I0YmVmZSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmRyb3Bkb3duLW5lc3RlZCAuZHJvcGRvd24tbWVudS1uZXN0ZWQge1xuICBiYWNrZ3JvdW5kOiByZ2IoMzAsIDMwLCA0NikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDEwOCwgMTEyLCAxMzQsIDAuMyk7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoMTcsIDE3LCAyNywgMC40KSwgMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAuZHJvcGRvd24taXRlbS1tb2Rlcm4uZHJvcGRvd24tbmVzdGVkIC5kcm9wZG93bi1tZW51LW5lc3RlZDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y5ZTJhZiwgI2RmOGUxZCk7IC8qIFNhbWUgeWVsbG93IGFjY2VudCBmb3IgZGFyayB0aGVtZSAqL1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGY4ZTFkOyAvKiBNYXRjaGluZyB5ZWxsb3cgYm9yZGVyICovXG4gIHdpZHRoOiA4cHg7IC8qIE1hdGNoIGxpZ2h0IHRoZW1lIHNpemUgKi9cbiAgaGVpZ2h0OiA4cHg7XG4gIGxlZnQ6IC00cHg7IC8qIE1hdGNoIGxpZ2h0IHRoZW1lIHBvc2l0aW9uICovXG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDIyMywgMTQyLCAyOSwgMC40KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAuZHJvcGRvd24taXRlbS1tb2Rlcm4uZHJvcGRvd24tbmVzdGVkIC5kcm9wZG93bi1tZW51LW5lc3RlZCAuZHJvcGRvd24taXRlbS1tb2Rlcm4ge1xuICBjb2xvcjogI2NkZDZmNCAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQgLmRyb3Bkb3duLW1lbnUtbmVzdGVkIC5kcm9wZG93bi1pdGVtLW1vZGVybiBpIHtcbiAgY29sb3I6ICM5NGUyZDUgIWltcG9ydGFudDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQgLmRyb3Bkb3duLW1lbnUtbmVzdGVkIC5kcm9wZG93bi1pdGVtLW1vZGVybjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4xKSwgcmdiYSgxODAsIDE5MCwgMjU0LCAwLjEpKSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk0ZTJkNSAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMTQ4LCAyMjYsIDIxMywgMC40KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAuZHJvcGRvd24taXRlbS1tb2Rlcm4uZHJvcGRvd24tbmVzdGVkIC5kcm9wZG93bi1tZW51LW5lc3RlZCAuZHJvcGRvd24taXRlbS1tb2Rlcm46aG92ZXIgaSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKSB0cmFuc2xhdGVZKC0xcHgpO1xuICBjb2xvcjogI2I0YmVmZSAhaW1wb3J0YW50O1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDNweCByZ2JhKDE4MCwgMTkwLCAyNTQsIDAuNCkpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLmRyb3Bkb3duLWl0ZW0tbW9kZXJuLmRyb3Bkb3duLW5lc3RlZDpob3ZlciA+IC5kcm9wZG93bi1pdGVtLXRyaWdnZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMSksIHJnYmEoMTgwLCAxOTAsIDI1NCwgMC4xKSkgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NGUyZDUgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuNCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAuZHJvcGRvd24taXRlbS1tb2Rlcm4uZHJvcGRvd24tbmVzdGVkOmhvdmVyID4gLmRyb3Bkb3duLWl0ZW0tdHJpZ2dlciBpIHtcbiAgY29sb3I6ICM5NGUyZDUgIWltcG9ydGFudDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQ6aG92ZXIgPiAuZHJvcGRvd24taXRlbS10cmlnZ2VyIC5uZXN0ZWQtYXJyb3cge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIGNvbG9yOiAjYjRiZWZlICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAuZHJvcGRvd24taXRlbS1tb2Rlcm4uZHJvcGRvd24tbmVzdGVkIHtcbiAgLyogS2VlcCBuZXN0ZWQgZHJvcGRvd24gb3BlbiB3aGVuIGhvdmVyaW5nIG92ZXIgdGhlIG1lbnUgaXRzZWxmIGluIGRhcmsgdGhlbWUgKi9cbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5kcm9wZG93bi1pdGVtLW1vZGVybi5kcm9wZG93bi1uZXN0ZWQgLmRyb3Bkb3duLW1lbnUtbmVzdGVkOmhvdmVyIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSBzY2FsZSgxKSAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBST0pFQ1RTIEhPVkVSIFRSQVlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucHJvamVjdHMtbmF2LWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qIENyZWF0ZSBpbnZpc2libGUgYnJpZGdlIGFyZWEgYmV0d2VlbiBidXR0b24gYW5kIHRyYXkgKi9cbn1cbi5wcm9qZWN0cy1uYXYtaXRlbTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxMDAwO1xufVxuLnByb2plY3RzLW5hdi1pdGVtOmhvdmVyOjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnByb2plY3RzLW5hdi1pdGVtOmhvdmVyIC5wcm9qZWN0cy1ob3Zlci10cmF5IHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMXM7XG59XG5cbi5wcm9qZWN0cy1ob3Zlci10cmF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIDRweCk7IC8qIFJlZHVjZWQgZ2FwIGZyb20gOHB4IHRvIDRweCAqL1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC04cHgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogOHB4O1xuICBiYWNrZ3JvdW5kOiByZ2IoMjM5LCAyNDEsIDI0NSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTU2LCAxNjAsIDE3NiwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogMCAxMnB4IDMycHggcmdiYSg3NiwgNzksIDEwNSwgMC4xNSksIDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG4gIHotaW5kZXg6IDEwMDE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAvKiBDcmVhdGUgYW4gZXh0ZW5kZWQgaG92ZXIgYXJlYSBhYm92ZSB0aGUgdHJheSAqL1xufVxuLnByb2plY3RzLWhvdmVyLXRyYXk6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IC0xMHB4O1xuICByaWdodDogLTEwcHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucHJvamVjdHMtaG92ZXItdHJheTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5wcm9qZWN0cy1ob3Zlci10cmF5IHtcbiAgLyogQXJyb3cgcG9pbnRpbmcgdXAgKi9cbn1cbi5wcm9qZWN0cy1ob3Zlci10cmF5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTVweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYmFja2dyb3VuZDogcmdiKDIzOSwgMjQxLCAyNDUpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1NiwgMTYwLCAxNzYsIDAuMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cblxuLyogV2hlbiB0cmF5IGlzIHZpc2libGUsIGVuYWJsZSBwb2ludGVyIGV2ZW50cyAqL1xuLnByb2plY3RzLW5hdi1pdGVtOmhvdmVyIC5wcm9qZWN0cy1ob3Zlci10cmF5IHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5wcm9qZWN0LXZpZXctaWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyMCwgMjI0LCAyMzIsIDAuNSk7XG4gIGNvbG9yOiAjNGM0ZjY5O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucHJvamVjdC12aWV3LWljb24gaSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuLnByb2plY3Qtdmlldy1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogLTEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMjMsIDE0NiwgMTUzLCAwLjEpLCB0cmFuc3BhcmVudCk7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlO1xufVxuLnByb2plY3Qtdmlldy1pY29uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMywgMTQ2LCAxNTMsIDAuMTUpLCByZ2JhKDExNCwgMTM1LCAyNTMsIDAuMTUpKTtcbiAgY29sb3I6ICMxNzkyOTk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxLjEpO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMjMsIDE0NiwgMTUzLCAwLjIpO1xufVxuLnByb2plY3Qtdmlldy1pY29uOmhvdmVyOjpiZWZvcmUge1xuICBsZWZ0OiAxMDAlO1xufVxuLnByb2plY3Qtdmlldy1pY29uOmhvdmVyIGkge1xuICBjb2xvcjogIzE3OTI5OTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuLnByb2plY3Qtdmlldy1pY29uOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxLjA1KTtcbn1cblxuLyogRGFyayB0aGVtZSBzdHlsZXMgZm9yIHByb2plY3RzIGhvdmVyIHRyYXkgKi9cbltkYXRhLXRoZW1lPWRhcmtdIC5wcm9qZWN0cy1ob3Zlci10cmF5IHtcbiAgYmFja2dyb3VuZDogcmdiKDMwLCAzMCwgNDYpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTA4LCAxMTIsIDEzNCwgMC4zKTtcbiAgYm94LXNoYWRvdzogMCAxMnB4IDMycHggcmdiYSgxNywgMTcsIDI3LCAwLjMpLCAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5wcm9qZWN0cy1ob3Zlci10cmF5OjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiByZ2IoMzAsIDMwLCA0Nik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMDgsIDExMiwgMTM0LCAwLjMpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnByb2plY3Qtdmlldy1pY29uIHtcbiAgYmFja2dyb3VuZDogcmdiYSg0OSwgNTAsIDY4LCAwLjUpO1xuICBjb2xvcjogI2NkZDZmNDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5wcm9qZWN0LXZpZXctaWNvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTQ4LCAyMjYsIDIxMywgMC4xNSksIHJnYmEoMTgwLCAxOTAsIDI1NCwgMC4xNSkpO1xuICBjb2xvcjogIzk0ZTJkNTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDE0OCwgMjI2LCAyMTMsIDAuMik7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucHJvamVjdC12aWV3LWljb246aG92ZXIgaSB7XG4gIGNvbG9yOiAjOTRlMmQ1O1xufVxuXG4vKiBNb2JpbGU6IGhpZGUgdGhlIGhvdmVyIHRyYXkgb24gc21hbGwgc2NyZWVucyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wcm9qZWN0cy1ob3Zlci10cmF5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQU5JTUFUSU9OUyBBTkQgUEVSRk9STUFOQ0VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAubW9kZXJuLWZsb2F0aW5nLW5hdmJhcixcbiAgLm5hdmJhci1jb250YWluZXIsXG4gIC5uYXYtbGluay1tb2Rlcm4sXG4gIC5kcm9wZG93bi1tZW51LW1vZGVybixcbiAgLmN0YS1idXR0b24tbW9kZXJuIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLyogR1BVIEFjY2VsZXJhdGlvbiAqL1xuLm5hdmJhci1jb250YWluZXIsXG4ubmF2LWxpbmstbW9kZXJuLFxuLmRyb3Bkb3duLW1lbnUtbW9kZXJuLFxuLmN0YS1idXR0b24tbW9kZXJuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBlcnNwZWN0aXZlOiAxMDAwcHg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTQ1JPTExFRCBTVEFURSAmIEVYVFJBIEVGRkVDVFNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubW9kZXJuLWZsb2F0aW5nLW5hdmJhci5zY3JvbGxlZCAubmF2YmFyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgYm94LXNoYWRvdzogMCAxMnB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCkgc2NhbGUoMC45OCk7XG59XG5cbi8qIFBhcnRpY2xlIEVmZmVjdHMgKi9cbi5uYXZiYXItcGFydGljbGVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xufVxuXG4ucGFydGljbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwMDgyOTYsICMwMGEyYmYpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogZmxvYXQtcGFydGljbGUgMnMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgZmxvYXQtcGFydGljbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpIHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpIHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi5wYXJ0aWNsZTpudGgtY2hpbGQoMSkge1xuICBsZWZ0OiAyMCU7XG4gIGFuaW1hdGlvbi1kZWxheTogMHM7XG59XG5cbi5wYXJ0aWNsZTpudGgtY2hpbGQoMikge1xuICBsZWZ0OiA0MCU7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4ycztcbn1cblxuLnBhcnRpY2xlOm50aC1jaGlsZCgzKSB7XG4gIGxlZnQ6IDYwJTtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjRzO1xufVxuXG4ucGFydGljbGU6bnRoLWNoaWxkKDQpIHtcbiAgbGVmdDogODAlO1xuICBhbmltYXRpb24tZGVsYXk6IDAuNnM7XG59XG5cbi5wYXJ0aWNsZTpudGgtY2hpbGQoNSkge1xuICBsZWZ0OiA1MCU7XG4gIGFuaW1hdGlvbi1kZWxheTogMC44cztcbn1cblxuLyogUmlwcGxlIEVmZmVjdCAqL1xuLm5hdmJhci1yaXBwbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMTMwLCAxNTAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGFuaW1hdGlvbjogcmlwcGxlLWV4cGFuZCAwLjZzIGVhc2Utb3V0IGZvcndhcmRzO1xufVxuXG5Aa2V5ZnJhbWVzIHJpcHBsZS1leHBhbmQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMik7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyogRW5oYW5jZWQgaG92ZXIgc3RhdGVzICovXG4ubmF2LWRyb3Bkb3duLW1vZGVybi5kcm9wZG93bi1vcGVuIC5uYXYtbGluay1tb2Rlcm4ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA4Mjk2LCAjMDBhMmJmKTtcbiAgY29sb3I6IHdoaXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCkgc2NhbGUoMS4wMik7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgwLCAxMzAsIDE1MCwgMC4zKSwgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLyogQWRkaXRpb25hbCBNb2JpbGUgUmVzcG9uc2l2ZSBJbXByb3ZlbWVudHMgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubW9kZXJuLWZsb2F0aW5nLW5hdmJhciB7XG4gICAgdG9wOiA4cHg7XG4gIH1cbiAgLm5hdmJhci1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gIH1cbiAgLm5hdmJhci1icmFuZC1tb2Rlcm4gLm5hdmJhci1icmFuZC10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC50aGVtZS10b2dnbGUtbW9kZXJuIHtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICB9XG4gIC5tb2Rlcm4tdG9nZ2xlLXN3aXRjaCB7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICB9XG4gIC50b2dnbGUtdGh1bWIge1xuICAgIHdpZHRoOiAxOXB4O1xuICAgIGhlaWdodDogMTlweDtcbiAgICB0b3A6IDNweDtcbiAgICBsZWZ0OiAzcHg7XG4gIH1cbiAgLnRvZ2dsZS1jaGVja2JveDpjaGVja2VkICsgLnRvZ2dsZS1zbGlkZXIgLnRvZ2dsZS10aHVtYiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1cHgpO1xuICB9XG59XG4vKiBNb2JpbGUgTmF2aWdhdGlvbiBFbmhhbmNlbWVudCAqL1xuLm1vYmlsZS1uYXYtY29sbGFwc2Uuc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBUaGVtZS1zcGVjaWZpYyBlbmhhbmNlbWVudHMgKi9cbltkYXRhLXRoZW1lPWRhcmtdIC5tb2Rlcm4tZmxvYXRpbmctbmF2YmFyLnNjcm9sbGVkIC5uYXZiYXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogcmdiKDMwLCAzMCwgNDYpOyAvKiBCYXNlICovXG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMDgsIDExMiwgMTM0LCAwLjUpOyAvKiBPdmVybGF5IDAgKi9cbiAgYm94LXNoYWRvdzogMCAxMnB4IDQwcHggcmdiYSgxNywgMTcsIDI3LCAwLjQpLCAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjMpLCBpbnNldCAwIDFweCAwIHJnYmEoMjA1LCAyMTQsIDI0NCwgMC4yKTsgLyogVGV4dCBjb2xvciBmb3IgaW5uZXIgaGlnaGxpZ2h0ICovXG59XG5cbi8qIExpZ2h0IHRoZW1lIHNjcm9sbGVkIHN0YXRlICovXG4ubW9kZXJuLWZsb2F0aW5nLW5hdmJhci5zY3JvbGxlZCAubmF2YmFyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6IHJnYigyMzksIDI0MSwgMjQ1KTsgLyogQmFzZSAqL1xuICBib3gtc2hhZG93OiAwIDEycHggNDBweCByZ2JhKDc2LCA3OSwgMTA1LCAwLjIpLCAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA4KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSBzY2FsZSgwLjk4KTtcbn1cblxuLmF1dG9zYXZlLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5hdXRvc2F2ZS1zdGF0dXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTI1cHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIG9wYWNpdHk6IDAuODtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG4uYXV0b3NhdmUtc3RhdHVzOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxufVxuLmF1dG9zYXZlLXN0YXR1cy5zYXZpbmcgLmF1dG9zYXZlLWluZGljYXRvciB7XG4gIGFuaW1hdGlvbjogcHVsc2UgMS41cyBpbmZpbml0ZTtcbn1cblxuLmF1dG9zYXZlLXRvYXN0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDIwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgei1pbmRleDogMTA1MDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgb3BhY2l0eSAwLjNzIGVhc2U7XG59XG4uYXV0b3NhdmUtdG9hc3Quc2hvdyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgb3BhY2l0eTogMTtcbn1cbi5hdXRvc2F2ZS10b2FzdCAuYXV0b3NhdmUtdG9hc3QtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuLmF1dG9zYXZlLXRvYXN0IC5hdXRvc2F2ZS10b2FzdC1pY29uLnN1Y2Nlc3Mge1xuICBjb2xvcjogIzI4YTc0NTtcbn1cbi5hdXRvc2F2ZS10b2FzdCAuYXV0b3NhdmUtdG9hc3QtaWNvbi5lcnJvciB7XG4gIGNvbG9yOiAjZGMzNTQ1O1xufVxuLmF1dG9zYXZlLXRvYXN0IC5hdXRvc2F2ZS10b2FzdC1tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG5cbi5tYW51YWwtc2F2ZS1idG4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG4ubWFudWFsLXNhdmUtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbn1cbi5tYW51YWwtc2F2ZS1idG46YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XG59XG5cbi50cml4LWNvbnRlbnQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi50cml4LWNvbnRlbnQtd3JhcHBlciAuYXV0b3NhdmUtc3RhdHVzIHtcbiAgYm90dG9tOiAtMzBweDtcbn1cblxuLnN0YXR1cy1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiA0cHggMTRweDtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYW5pbWF0aW9uOiBzdGF0dXNTbGlkZUluIDAuMjVzIGVhc2Utb3V0O1xufVxuXG4uc3RhdHVzLXBpbGwtdHlwaW5nIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWludGVyYWN0aW9uKSA4JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0taW50ZXJhY3Rpb24pO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW50ZXJhY3Rpb24pIDE0LjUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5zdGF0dXMtcGlsbC1zYXZpbmcge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW50ZXJhY3Rpb24pIDglLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1pbnRlcmFjdGlvbik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pbnRlcmFjdGlvbikgMTQuNSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnN0YXR1cy1waWxsLXNhdmVkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4wODIzNTI5NDEyKTtcbiAgY29sb3I6ICMxNmEzNGE7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDE5NywgOTQsIDAuMTg4MjM1Mjk0MSk7XG59XG5cbi5zdGF0dXMtcGlsbC1lcnJvciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjZGMzNTQ1IDglLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiAjZGMzNTQ1O1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgI2RjMzU0NSAxOSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnN0YXR1cy1waWxsLWluZm8ge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW50ZXJhY3Rpb24pIDglLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1pbnRlcmFjdGlvbik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pbnRlcmFjdGlvbikgMTQuNSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnN0YXR1cy1waWxsLWZhZGUtb3V0IHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2U7XG59XG5cbkBrZXlmcmFtZXMgc3RhdHVzU2xpZGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDZweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG4udHlwaW5nLWRvdHMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZ2FwOiAzcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50eXBpbmctZG90cyBzcGFuIHtcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICBhbmltYXRpb246IHR5cGluZ0JvdW5jZSAxLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4udHlwaW5nLWRvdHMgc3BhbjpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XG59XG5cbi50eXBpbmctZG90cyBzcGFuOm50aC1jaGlsZCgzKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC40cztcbn1cblxuQGtleWZyYW1lcyB0eXBpbmdCb3VuY2Uge1xuICAwJSwgNjAlLCAxMDAlIHtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICAzMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICB9XG59XG4uc2F2ZS1zcGlubmVyIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IHNhdmVTcGluIDAuN3MgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHNhdmVTcGluIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi5zYXZlZC1jaGVjayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYW5pbWF0aW9uOiBzYXZlZFBvcCAwLjM1cyBlYXNlLW91dDtcbn1cblxuQGtleWZyYW1lcyBzYXZlZFBvcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4uY3VzdG9tLXVwbG9hZC1ib3gge1xuICB3aWR0aDogNTAwcHg7XG4gIGhlaWdodDogNTAwcHg7XG4gIGJvcmRlcjogM3B4IGRhc2hlZCAjZTBlMGUwO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLmN1c3RvbS11cGxvYWQtYm94OmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMGQ2ZWZkO1xuICBiYWNrZ3JvdW5kOiAjZjhmOWZhO1xufVxuXG4uY3VzdG9tLXVwbG9hZC1ib3g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi8J+TuCBTZWxlY3Qgb3IgRHJvcCBJbWFnZVwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBmb250LXNpemU6IDEuMmVtO1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY3VzdG9tLXVwbG9hZC1ib3guaGFzLWltYWdlOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY3VzdG9tLXVwbG9hZC1ib3ggaW5wdXRbdHlwZT1maWxlXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuXG4uaW1hZ2UtcHJldmlldy1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MDBweDtcbiAgaGVpZ2h0OiA1MDBweDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnJldmVydC1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTY7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiAxMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLnJldmVydC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vKiBQcm9maWxlIFBpY3R1cmUgSG92ZXIgT3ZlcmxheSBTdHlsZXMgKi9cbi5wcm9maWxlLXBpYy13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiAxMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wcm9maWxlLXBpYy1wbGFjZWhvbGRlciB7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiAxMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiAycHggZGFzaGVkICNkZWUyZTY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5wcm9maWxlLXBpYy13cmFwcGVyOmhvdmVyIC5wcm9maWxlLXBpYy1wbGFjZWhvbGRlciB7XG4gIGJvcmRlci1jb2xvcjogIzAwN2JmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzZjJmZDtcbn1cblxuLnByb2ZpbGUtcGljLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLnByb2ZpbGUtcGljLXdyYXBwZXI6aG92ZXIgLnByb2ZpbGUtcGljLW92ZXJsYXkge1xuICBvcGFjaXR5OiAxO1xufVxuXG4ucHJvZmlsZS1waWMtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ucHJvZmlsZS1waWMtdXBsb2FkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucHJvZmlsZS1waWMtYnRuIHtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnByb2ZpbGUtcGljLWJ0bi12aWV3IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4ucHJvZmlsZS1waWMtYnRuLXZpZXc6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1NmIzO1xuICBjb2xvcjogd2hpdGU7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLnByb2ZpbGUtcGljLWJ0bi1kZWxldGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMzNTQ1O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5wcm9maWxlLXBpYy1idG4tZGVsZXRlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M4MjMzMztcbiAgY29sb3I6IHdoaXRlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5wcm9maWxlLXBpYy1idG4gaSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLnVwbG9hZC1mb3JtIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnVwbG9hZC1pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnVwbG9hZC1pbnB1dDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtcGFnZSB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAycmVtKTtcbiAgbWF4LXdpZHRoOiAxMTgwcHg7XG4gIG1hcmdpbjogNy41cmVtIGF1dG8gNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMTcyMDMzKTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtaGVybyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIHBhZGRpbmc6IDAgMC4yNXJlbTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtZXllYnJvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjQ1cmVtO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzYzNjZmMSk7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTFlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtaGVybyBoMSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1mYW1pbHk6IFwiUGx1cyBKYWthcnRhIFNhbnNcIiwgdmFyKC0tZm9udC10eXBlLCBzYW5zLXNlcmlmKTtcbiAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA0dncsIDMuMjVyZW0pO1xuICBmb250LXdlaWdodDogODAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDQ1ZW07XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWhlcm8gcCB7XG4gIG1heC13aWR0aDogNjIwcHg7XG4gIG1hcmdpbjogMC42cmVtIDAgMDtcbiAgY29sb3I6IHZhcigtLXBhZ2UtbXV0ZWQtdGV4dCwgdmFyKC0tbXV0ZWQtdGV4dCwgIzY4NzM4NikpO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1tZW1iZXItbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiAwLjU1cmVtO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1tZW1iZXItbWV0YSBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40NXJlbTtcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZmUzZWIpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xuICBjb2xvcjogdmFyKC0tcGFnZS1tdXRlZC10ZXh0LCB2YXIoLS1tdXRlZC10ZXh0LCAjNjg3Mzg2KSk7XG4gIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtbWVtYmVyLW1ldGEgaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNjM2NmYxKTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtbGF5b3V0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNjVweCBtaW5tYXgoMCwgMWZyKTtcbiAgZ2FwOiAxLjVyZW07XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cblxuLmFjY291bnQtc2V0dGluZ3Mtc2lkZWJhciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RmZTNlYik7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDQwcHggcmdiYSgyMiwgMzEsIDQ5LCAwLjA3KTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtaWRlbnRpdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuODVyZW07XG4gIHBhZGRpbmc6IDEuNjVyZW0gMS4yNXJlbSAxLjRyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZmUzZWIpO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1pZGVudGl0eSA+IGRpdjpsYXN0LWNoaWxkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjJyZW07XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1pZGVudGl0eSBzdHJvbmcge1xuICBmb250LWZhbWlseTogXCJQbHVzIEpha2FydGEgU2Fuc1wiLCB2YXIoLS1mb250LXR5cGUsIHNhbnMtc2VyaWYpO1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWlkZW50aXR5IHNwYW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogdmFyKC0tcGFnZS1tdXRlZC10ZXh0LCB2YXIoLS1tdXRlZC10ZXh0LCAjNjg3Mzg2KSk7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWF2YXRhci5wcm9maWxlLXBpYy13cmFwcGVyLFxuLmFjY291bnQtc2V0dGluZ3MtYXZhdGFyIC5wcm9maWxlLXBpYy1wbGFjZWhvbGRlcixcbi5hY2NvdW50LXNldHRpbmdzLWF2YXRhciAucHJvZmlsZS1waWMtbGFyZ2Uge1xuICB3aWR0aDogMTA0cHg7XG4gIGhlaWdodDogMTA0cHg7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWF2YXRhci5wcm9maWxlLXBpYy13cmFwcGVyIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgNXB4IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKSwgMCAwIDAgNnB4IHZhcigtLWJvcmRlci1jb2xvdXIsICNkZmUzZWIpO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1hdmF0YXIgLnByb2ZpbGUtcGljLWxhcmdlIHtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWF2YXRhciAucHJvZmlsZS1waWMtcGxhY2Vob2xkZXIge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM2MzY2ZjEpLCB2YXIoLS1wcmltYXJ5LWNvbG91ciwgIzI5M2I4ZikpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IFwiUGx1cyBKYWthcnRhIFNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWF2YXRhciAucHJvZmlsZS1waWMtdXBsb2FkIGkge1xuICBtYXJnaW4tYm90dG9tOiAwLjM1cmVtO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWF2YXRhciAucHJvZmlsZS1waWMtdXBsb2FkIHNwYW4ge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1uYXYge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuM3JlbTtcbiAgcGFkZGluZzogMC43NXJlbTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtbmF2LWl0ZW0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIycHggMWZyIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC42NXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNzJyZW0gMC44cmVtO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tcGFnZS1tdXRlZC10ZXh0LCB2YXIoLS1tdXRlZC10ZXh0LCAjNjg3Mzg2KSk7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE4cyBlYXNlLCBjb2xvciAwLjE4cyBlYXNlLCB0cmFuc2Zvcm0gMC4xOHMgZWFzZTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtbmF2LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzYzNjZmMSkgNyUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMTcyMDMzKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLW5hdi1pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNjM2NmYxKSAxMiUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM2MzY2ZjEpO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1uYXYtaXRlbSA+IGk6Zmlyc3QtY2hpbGQge1xuICBmb250LXNpemU6IDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtbmF2LWFycm93IHtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBvcGFjaXR5OiAwLjU1O1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1jb250ZW50IHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1jYXJkIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RmZTNlYik7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDQwcHggcmdiYSgyMiwgMzEsIDQ5LCAwLjA3KTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtY2FyZC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAwLjlyZW07XG4gIHBhZGRpbmc6IDEuNnJlbSAxLjc1cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RmZTNlYik7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNjM2NmYxKSA1JSwgdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpKSwgdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpIDU1JSk7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWNhcmQtaWNvbixcbi5hY2NvdW50LXNldHRpbmdzLXByZWZlcmVuY2UtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzOHB4O1xuICBoZWlnaHQ6IDM4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNjM2NmYxKSAxMiUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM2MzY2ZjEpO1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWNhcmQtaWNvbi5pcy1kYW5nZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZGFuZ2VyLCAjZGMzNTQ1KSAxMSUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLWRhbmdlciwgI2RjMzU0NSk7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWNhcmQtaGVhZGVyIGgyIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogXCJQbHVzIEpha2FydGEgU2Fuc1wiLCB2YXIoLS1mb250LXR5cGUsIHNhbnMtc2VyaWYpO1xuICBmb250LXNpemU6IDEuMTVyZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWNhcmQtaGVhZGVyIHAge1xuICBtYXJnaW46IDAuMjhyZW0gMCAwO1xuICBjb2xvcjogdmFyKC0tcGFnZS1tdXRlZC10ZXh0LCB2YXIoLS1tdXRlZC10ZXh0LCAjNjg3Mzg2KSk7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1mb3JtIHtcbiAgcGFkZGluZzogMS43NXJlbTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtZmllbGQtZ3JpZCxcbi5hY2NvdW50LXNldHRpbmdzLXNlY3VyaXR5LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogMS4yNXJlbTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtZmllbGQge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuNDJyZW07XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWZpZWxkLXdpZGUge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtZmllbGQgbGFiZWwsXG4uYWNjb3VudC1zZXR0aW5ncy1wcmVmZXJlbmNlLWNvcHkgbGFiZWwge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzE3MjAzMyk7XG4gIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtaGVscCxcbi5hY2NvdW50LXNldHRpbmdzLXByZWZlcmVuY2UtY29weSBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiB2YXIoLS1wYWdlLW11dGVkLXRleHQsIHZhcigtLW11dGVkLXRleHQsICM2ODczODYpKTtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtZm9ybSAuZm9ybS1jb250cm9sIHtcbiAgbWluLWhlaWdodDogNDRweDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1ib3JkZXIsIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZmUzZWIpKTtcbiAgYm9yZGVyLXJhZGl1czogOXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kLCB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZikpO1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCwgdmFyKC0tdGV4dC1jb2xvdXIsICMxNzIwMzMpKTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtZm9ybSB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICBwYWRkaW5nOiAwLjhyZW0gMC45cmVtO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1mb3JtIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM2MzY2ZjEpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM2MzY2ZjEpIDE0JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1wZXJpY2xlcy1maWVsZCB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNjM2NmYxKSAyMiUsIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZmUzZWIpKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM2MzY2ZjEpIDQlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWZpZWxkLWhlYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDFyZW07XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWZpZWxkLWhlYWRpbmcgPiBpIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM2MzY2ZjEpO1xuICBmb250LXNpemU6IDEuMDVyZW07XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBtYXJnaW46IDEuNXJlbSAtMS43NXJlbSAtMS43NXJlbTtcbiAgcGFkZGluZzogMXJlbSAxLjc1cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RmZTNlYik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2Y3ZjhmYSkgNjAlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLXByZWZlcmVuY2UtbGlzdCB7XG4gIHBhZGRpbmc6IDEuNzVyZW0gMS43NXJlbSAwO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1kZXZpY2UsXG4uYWNjb3VudC1zZXR0aW5ncy10b2dnbGUtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC45cmVtO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGZlM2ViKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtcHJlZmVyZW5jZS1jb3B5IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjJyZW07XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLXByZWZlcmVuY2UtY29weSBzdHJvbmcge1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtZGV2aWNlLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1kZXZpY2UtYWN0aW9ucyBbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtZGV2aWNlLWFjdGlvbnMgLmJ1dHRvbi0xMyxcbi5hY2NvdW50LXNldHRpbmdzLWRldmljZS1hY3Rpb25zIC5idXR0b24tMTMtb3V0bGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLXByZWZlcmVuY2VzLWZvcm0ge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtdG9nZ2xlLXJvdyArIC5hY2NvdW50LXNldHRpbmdzLXRvZ2dsZS1yb3cge1xuICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy10b2dnbGUtcm93IC5mb3JtLWNoZWNrIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDIuN3JlbTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtdG9nZ2xlLXJvdyAuZm9ybS1jaGVjay1pbnB1dCB7XG4gIHdpZHRoOiAyLjI1cmVtO1xuICBoZWlnaHQ6IDEuMnJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1zZWN1cml0eS1ncmlkIHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbn1cblxuLmFjY291bnQtc2V0dGluZ3MtY29uZmlybWF0aW9uIHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RmZTNlYik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQteWVsbG93LCAjZjZjMzQ0KSA3JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1kYW5nZXItem9uZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxLjVyZW07XG4gIG1hcmdpbjogMS43NXJlbTtcbiAgcGFkZGluZzogMS4xNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRhbmdlciwgI2RjMzU0NSkgMzUlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kYW5nZXIsICNkYzM1NDUpIDUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWRhbmdlci16b25lID4gZGl2IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuXG4uYWNjb3VudC1zZXR0aW5ncy1kYW5nZXItem9uZSBzdHJvbmcge1xuICBmb250LXNpemU6IDAuODJyZW07XG59XG5cbi5hY2NvdW50LXNldHRpbmdzLWRhbmdlci16b25lIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tcGFnZS1tdXRlZC10ZXh0LCB2YXIoLS1tdXRlZC10ZXh0LCAjNjg3Mzg2KSk7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5hY2NvdW50LXNldHRpbmdzLXBhZ2Uge1xuICAgIG1hcmdpbi10b3A6IDYuNXJlbTtcbiAgfVxuICAuYWNjb3VudC1zZXR0aW5ncy1oZXJvIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5hY2NvdW50LXNldHRpbmdzLW1lbWJlci1tZXRhIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLmFjY291bnQtc2V0dGluZ3MtbGF5b3V0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxuICAuYWNjb3VudC1zZXR0aW5ncy1zaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9XG4gIC5hY2NvdW50LXNldHRpbmdzLWlkZW50aXR5IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5hY2NvdW50LXNldHRpbmdzLWF2YXRhci5wcm9maWxlLXBpYy13cmFwcGVyLFxuICAuYWNjb3VudC1zZXR0aW5ncy1hdmF0YXIgLnByb2ZpbGUtcGljLXBsYWNlaG9sZGVyLFxuICAuYWNjb3VudC1zZXR0aW5ncy1hdmF0YXIgLnByb2ZpbGUtcGljLWxhcmdlIHtcbiAgICB3aWR0aDogNjhweDtcbiAgICBoZWlnaHQ6IDY4cHg7XG4gIH1cbiAgLmFjY291bnQtc2V0dGluZ3MtbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gIH1cbiAgLmFjY291bnQtc2V0dGluZ3MtbmF2LWl0ZW0ge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5hY2NvdW50LXNldHRpbmdzLW5hdi1hcnJvdyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5hY2NvdW50LXNldHRpbmdzLXBhZ2Uge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICBtYXgtd2lkdGg6IDExODBweDtcbiAgICBtYXJnaW4tdG9wOiA1LjVyZW07XG4gIH1cbiAgLmFjY291bnQtc2V0dGluZ3MtaGVybyB7XG4gICAgZ2FwOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIH1cbiAgLmFjY291bnQtc2V0dGluZ3MtbWVtYmVyLW1ldGEgc3BhbiB7XG4gICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICB9XG4gIC5hY2NvdW50LXNldHRpbmdzLXNpZGViYXIsXG4gIC5hY2NvdW50LXNldHRpbmdzLWNhcmQge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbiAgLmFjY291bnQtc2V0dGluZ3MtbmF2LWl0ZW0ge1xuICAgIHBhZGRpbmc6IDAuNjVyZW0gMC43cmVtO1xuICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgfVxuICAuYWNjb3VudC1zZXR0aW5ncy1jYXJkLWhlYWRlcixcbiAgLmFjY291bnQtc2V0dGluZ3MtZm9ybSB7XG4gICAgcGFkZGluZzogMS4ycmVtO1xuICB9XG4gIC5hY2NvdW50LXNldHRpbmdzLWZpZWxkLWdyaWQsXG4gIC5hY2NvdW50LXNldHRpbmdzLXNlY3VyaXR5LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG4gIC5hY2NvdW50LXNldHRpbmdzLWZpZWxkLXdpZGUge1xuICAgIGdyaWQtY29sdW1uOiBhdXRvO1xuICB9XG4gIC5hY2NvdW50LXNldHRpbmdzLWFjdGlvbnMge1xuICAgIG1hcmdpbjogMS4yNXJlbSAtMS4ycmVtIC0xLjJyZW07XG4gICAgcGFkZGluZzogMC45cmVtIDEuMnJlbTtcbiAgfVxuICAuYWNjb3VudC1zZXR0aW5ncy1wcmVmZXJlbmNlLWxpc3Qge1xuICAgIHBhZGRpbmc6IDEuMnJlbSAxLjJyZW0gMDtcbiAgfVxuICAuYWNjb3VudC1zZXR0aW5ncy1kZXZpY2UsXG4gIC5hY2NvdW50LXNldHRpbmdzLXRvZ2dsZS1yb3cge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgfVxuICAuYWNjb3VudC1zZXR0aW5ncy1kZXZpY2UtYWN0aW9ucyxcbiAgLmFjY291bnQtc2V0dGluZ3MtdG9nZ2xlLXJvdyAuZm9ybS1jaGVjayB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgfVxuICAuYWNjb3VudC1zZXR0aW5ncy1kYW5nZXItem9uZSB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW46IDEuMnJlbTtcbiAgfVxufVxuLyogSW5zaWdodHMgcGFnZSBzdHlsZXMgKi9cbi8qIENhdGVnb3J5IGJhZGdlIHN0eWxlcyAqL1xuW2RhdGEtaW5zaWdodHMtc2VhcmNoLXRhcmdldD1jYXRlZ29yeV0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zNWVtIDAuNjVlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG5bZGF0YS1pbnNpZ2h0cy1zZWFyY2gtdGFyZ2V0PWNhdGVnb3J5XTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDc0LCAxMzQsIDIzMiwgMC4zKTtcbn1cblxuW2RhdGEtaW5zaWdodHMtc2VhcmNoLXRhcmdldD1jYXRlZ29yeV0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRhODZlODtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi8qIEFkZCBhIHN1YnRsZSBob3ZlciBlZmZlY3QgKi9cbltkYXRhLWluc2lnaHRzLXNlYXJjaC10YXJnZXQ9Y2F0ZWdvcnldOmhvdmVyIHtcbiAgb3BhY2l0eTogMC45O1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDMpO1xufVxuXG4vKiBMb2FkZXIgc3R5bGVzICovXG5bZGF0YS1pbnNpZ2h0cy1zZWFyY2gtdGFyZ2V0PWxvYWRlcl0ge1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi8qIEhpZGRlbiBjbGFzcyAqL1xuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLm5ld2NhcmQge1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uZXdjYXJkOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RiZGJmZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubGlnaHRjYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmbGV4LWdyb3c6IDE7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWNvbG9yOiAjZGFkYWRhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMTBweCByZ2JhKDE1NSwgMTU1LCAxNTUsIDAuMSk7XG59XG5cbi5saWdodGNhcmRuYiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogYXV0bztcbiAgZmxleC1ncm93OiAxO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogI2RhZGFkYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci13aWR0aDogMXB4O1xufVxuXG4uY29sdW1uY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZ3JvdzogMTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgcGFkZGluZzogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItY29sb3I6ICNkYWRhZGE7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDM1MHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5jb2x1bW5jYXJkIHsgLyogQWRqdXN0IGJyZWFrcG9pbnQgYXMgbmVlZGVkICovXG4gICAgc2Nyb2xsLXNuYXAtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4ubGlnaHRjYXJkaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGhlaWdodDogYXV0bztcbiAgZmxleC1ncm93OiAxO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogI2RhZGFkYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDEwcHggcmdiYSgxNTUsIDE1NSwgMTU1LCAwLjEpO1xufVxuXG4ubGlnaHRjYXJkaG5iIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC1ncm93OiAxO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogI2RhZGFkYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci13aWR0aDogMXB4O1xufVxuXG4ucXVvdGUtcm93LWl0ZW0ge1xuICBwYWRkaW5nOiAwLjZyZW0gMC43NXJlbSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLnF1b3RlLXJvdy1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIsICNmZWY3ZTYpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xufVxuXG4uc3RhdHVzLWRvdCB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZDogIzljYTNhZjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4uc3RhdHVzLWRvdC5zdGF0dXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzEwYjk4MTtcbiAgYm94LXNoYWRvdzogMCAwIDZweCByZ2JhKDE2LCAxODUsIDEyOSwgMC41KTtcbn1cbi5zdGF0dXMtZG90LnN0YXR1cy1pbmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICM2YjcyODA7XG59XG4uc3RhdHVzLWRvdC5zdGF0dXMtcGVuZGluZyB7XG4gIGJhY2tncm91bmQ6ICNmNTllMGI7XG4gIGFuaW1hdGlvbjogcHVsc2UtZ2xvdyAycyBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBwdWxzZS1nbG93IHtcbiAgMCUsIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCA0cHggcmdiYSgyNDUsIDE1OCwgMTEsIDAuNCk7XG4gIH1cbiAgNTAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMTJweCByZ2JhKDI0NSwgMTU4LCAxMSwgMC44KTtcbiAgfVxufVxuLnN5c3RlbS1zdGF0dXMtcGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG4gIHBhZGRpbmc6IDAuMnJlbSAwLjU1cmVtO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1waWxsLWNvbG9yLCAjNmI3MjgwKSAxMiUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXBpbGwtY29sb3IsICM2YjcyODApO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcGlsbC1jb2xvciwgIzZiNzI4MCkgMjUlLCB0cmFuc3BhcmVudCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc3lzdGVtLXN0YXR1cy1waWxsIGkge1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cbi5zeXN0ZW0tc3RhdHVzLXBpbGwuaXMtZmlsdGVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbn1cbi5zeXN0ZW0tc3RhdHVzLXBpbGwuaXMtZmlsdGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXBpbGwtY29sb3IpIDE4JSwgdHJhbnNwYXJlbnQpO1xufVxuLnN5c3RlbS1zdGF0dXMtcGlsbC5pcy1maWx0ZXIuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGlsbC1jb2xvcik7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1waWxsLWNvbG9yKTtcbn1cbi5zeXN0ZW0tc3RhdHVzLXBpbGwuaXMtZmlsdGVyLmFjdGl2ZSAuc3lzdGVtLXBpbGwtY291bnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5zeXN0ZW0tcGlsbC1jb3VudCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAxLjRlbTtcbiAgaGVpZ2h0OiAxLjRlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gIHBhZGRpbmc6IDAgMC40ZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1waWxsLWNvbG9yKTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDAuNjJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5zeXN0ZW0tcm93LWl0ZW0ge1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5zeXN0ZW0tcm93LWl0ZW06aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4uc3lzdGVtLXJvdy1kb3Qge1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnN5c3RlbS1yb3ctc2tlbGV0b24ge1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5za2VsZXRvbi1ib25lIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMSkgMCUsIHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4yKSA1MCUsIHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4xKSAxMDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gIGFuaW1hdGlvbjogc2tlbGV0b24tcHVsc2UgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG5Aa2V5ZnJhbWVzIHNrZWxldG9uLXB1bHNlIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xuICB9XG59XG4uc3lzdGVtLWZyZXNobmVzcy1pY29ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbn1cblxuLmZyZXNobmVzcy1pY29uIHtcbiAgLS1jOiAjNmI3MjgwO1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAyNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xuICBjb2xvcjogdmFyKC0tYyk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jKSAxNiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkpO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYykgMzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpO1xuICBjdXJzb3I6IGhlbHA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLCBib3gtc2hhZG93IDAuMTVzIGVhc2U7XG59XG4uZnJlc2huZXNzLWljb24gaSB7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbn1cbi5mcmVzaG5lc3MtaWNvbjpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jKSA0MCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnNlY3Rpb24tZXllYnJvdyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xNGVtO1xuICBjb2xvcjogI2Y0NzQyNDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuXG4ucHJvb2YtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMS43NXJlbSAxLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnByb29mLWNhcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2Y0NzQyNCAwJSwgI2ZmYjA2NiAxMDAlKTtcbiAgb3BhY2l0eTogMC44NTtcbn1cbi5wcm9vZi1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuICBib3gtc2hhZG93OiAwIDE0cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCB2YXIoLS1ib3gtc2hhZG93KTtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xufVxuLnByb29mLWNhcmQgLnByb29mLWNhcmQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMS44NXJlbTtcbiAgY29sb3I6ICNmNDc0MjQ7XG4gIG1hcmdpbi1ib3R0b206IDAuODVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnByb29mLWNhcmQgLnByb29mLWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLnByb29mLWNhcmQgLnByb29mLWNhcmQtYm9keSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuODU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuLnByb29mLWNhcmQgLnByb29mLWNhcmQtYm9keSBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAxO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnByb29mLWNhcmQgLnByb29mLWNhcmQtYm9keSBhIHtcbiAgY29sb3I6IHZhcigtLWludGVyYWN0aW9uKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4O1xufVxuLnByb29mLWNhcmQgLnByb29mLWNhcmQtZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogMS4xcmVtO1xuICBwYWRkaW5nLXRvcDogMC45cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi5wcm9vZi1jYXJkIC5wcm9vZi1jYXJkLWZvb3RlciBhIHtcbiAgY29sb3I6ICNmNDc0MjQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5wcm9vZi1jYXJkIC5wcm9vZi1jYXJkLWZvb3RlciBhOmhvdmVyIHtcbiAgY29sb3I6ICNmZmIwNjY7XG59XG5cbi5wcm9vZi1zdGF0IHtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2Y0NzQyNDtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG59XG4ucHJvb2Ytc3RhdCAucHJvb2Ytc3RhdC1zdWZmaXgge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLnByb29mLXN0YXQtbGFiZWwge1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmltcGFjdC13aWRnZXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBhZGRpbmc6IDEuNzVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xufVxuLmltcGFjdC13aWRnZXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2Y0NzQyNCAwJSwgI2ZmYjA2NiAxMDAlKTtcbiAgb3BhY2l0eTogMC44NTtcbiAgei1pbmRleDogMTtcbn1cbi5pbXBhY3Qtd2lkZ2V0OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMzAlO1xuICByaWdodDogLTEwJTtcbiAgd2lkdGg6IDYwJTtcbiAgaGVpZ2h0OiAxNjAlO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xOCkgMCUsIHRyYW5zcGFyZW50IDY1JSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwO1xufVxuLmltcGFjdC13aWRnZXQgLmltcGFjdC13aWRnZXQtZXllYnJvdyB7XG4gIGNvbG9yOiAjZjQ3NDI0O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuLmltcGFjdC13aWRnZXQgLmltcGFjdC13aWRnZXQtdGl0bGUge1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuLmltcGFjdC13aWRnZXQgLmltcGFjdC13aWRnZXQtc3ViIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC43O1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbn1cbi5pbXBhY3Qtd2lkZ2V0IC5pbXBhY3Qtd2lkZ2V0LXN0YXRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxNDBweCwgMWZyKSk7XG4gIGdhcDogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuLmltcGFjdC13aWRnZXQgLmltcGFjdC13aWRnZXQtc3RhdCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI3LCAxMjcsIDEyNywgMC4wNik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwYWRkaW5nOiAwLjg1cmVtIDAuOTVyZW07XG59XG4uaW1wYWN0LXdpZGdldCAuaW1wYWN0LXdpZGdldC1zdGF0IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMS4wNTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG59XG4uaW1wYWN0LXdpZGdldCAuaW1wYWN0LXdpZGdldC1zdGF0IC52YWx1ZSAudW5pdCB7XG4gIGNvbG9yOiAjZjQ3NDI0O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLmltcGFjdC13aWRnZXQgLmltcGFjdC13aWRnZXQtc3RhdCAubGFiZWwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xufVxuLmltcGFjdC13aWRnZXQgLmltcGFjdC13aWRnZXQtY2hhcnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMDQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMC42cmVtIDAuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuLmltcGFjdC13aWRnZXQgLmltcGFjdC13aWRnZXQtZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjc7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG59XG4uaW1wYWN0LXdpZGdldCAuaW1wYWN0LXdpZGdldC1saW5rIHtcbiAgY29sb3I6ICNmNDc0MjQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCByZ2JhKDI0NCwgMTE2LCAzNiwgMC41KTtcbiAgcGFkZGluZy1ib3R0b206IDFweDtcbiAgb3BhY2l0eTogMTtcbn1cbi5pbXBhY3Qtd2lkZ2V0IC5pbXBhY3Qtd2lkZ2V0LWxpbms6aG92ZXIge1xuICBjb2xvcjogI2ZmYjA2NjtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmYjA2Njtcbn1cblxuLmZlYXR1cmUtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgMWZyKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAzLjI1cmVtO1xuICBtYXJnaW46IDRyZW0gMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZmVhdHVyZS1yb3cge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgZ2FwOiAxLjc1cmVtO1xuICAgIG1hcmdpbjogMi41cmVtIDA7XG4gIH1cbn1cblxuLmZlYXR1cmUtcm93LXJldmVyc2UgLmZlYXR1cmUtcm93LW1lZGlhIHtcbiAgb3JkZXI6IDI7XG59XG4uZmVhdHVyZS1yb3ctcmV2ZXJzZSAuZmVhdHVyZS1yb3ctY29udGVudCB7XG4gIG9yZGVyOiAxO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5mZWF0dXJlLXJvdy1yZXZlcnNlIC5mZWF0dXJlLXJvdy1tZWRpYSB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLmZlYXR1cmUtcm93LXJldmVyc2UgLmZlYXR1cmUtcm93LWNvbnRlbnQge1xuICAgIG9yZGVyOiAyO1xuICB9XG59XG5cbi5mZWF0dXJlLXJvdy1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uZmVhdHVyZS1yb3ctbWVkaWEge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5mZWF0dXJlLXJvdy1leWVicm93IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTZlbTtcbiAgY29sb3I6ICNmNDc0MjQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNnJlbTtcbiAgb3BhY2l0eTogMC45NTtcbn1cblxuLmZlYXR1cmUtcm93LXRpdGxlIHtcbiAgZm9udC1zaXplOiBjbGFtcCgxLjU1cmVtLCAyLjZ2dywgMi4xcmVtKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5mZWF0dXJlLXJvdy1ib2R5IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS43O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjg4O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuLmZlYXR1cmUtcm93LWJvZHkgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5mZWF0dXJlLXJvdy1ib2R5Omxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5mZWF0dXJlLXJvdy1saXN0IHtcbiAgZm9udC1zaXplOiAwLjk3cmVtO1xuICBsaW5lLWhlaWdodDogMS43O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjg4O1xuICBwYWRkaW5nLWxlZnQ6IDEuMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5mZWF0dXJlLXJvdy1saXN0IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMC4zNXJlbTtcbn1cblxuLmZlYXR1cmUtcm93LWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNnJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tdG9wOiAwLjg1cmVtO1xufVxuXG4ubWVkaWEtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMDYpLCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuMiwgMC44LCAwLjIsIDEpLCBib3gtc2hhZG93IDAuNHMgY3ViaWMtYmV6aWVyKDAuMiwgMC44LCAwLjIsIDEpLCBib3JkZXItY29sb3IgMC4zcyBlYXNlO1xuICBpc29sYXRpb246IGlzb2xhdGU7XG59XG4ubWVkaWEtY2FyZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMzglO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuNTUpLCB0cmFuc3BhcmVudCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICB6LWluZGV4OiAxO1xufVxuLm1lZGlhLWNhcmQgLm1lZGlhLWNhcmQtaW1nLFxuLm1lZGlhLWNhcmQgLm1lZGlhLWNhcmQtdmlkZW8ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcbn1cbi5tZWRpYS1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICBib3gtc2hhZG93OiAwIDE4cHggNDRweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDRweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gIGJvcmRlci1jb2xvcjogI2Y0NzQyNDtcbn1cbi5tZWRpYS1jYXJkOmhvdmVyIC5tZWRpYS1jYXJkLWltZyxcbi5tZWRpYS1jYXJkOmhvdmVyIC5tZWRpYS1jYXJkLXZpZGVvIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KTtcbn1cbi5tZWRpYS1jYXJkOmhvdmVyOjphZnRlciB7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLm1lZGlhLWNhcmQtdGFnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEycHg7XG4gIHJpZ2h0OiAxMnB4O1xuICB6LWluZGV4OiA0O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjQ1cmVtO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIHBhZGRpbmc6IDVweCAxMXB4O1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UsIGJvcmRlci1jb2xvciAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG4ubWVkaWEtY2FyZC10YWcgaSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLm1lZGlhLWNhcmQtdGFnOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2Y0NzQyNDtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5yZXZpZXctY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBwYWRkaW5nOiAxLjY1cmVtIDEuNXJlbSAxLjRyZW07XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLCBib3gtc2hhZG93IDAuM3MgZWFzZSwgYm9yZGVyLWNvbG9yIDAuM3MgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xufVxuLnJldmlldy1jYXJkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAnFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC4yNXJlbTtcbiAgcmlnaHQ6IDFyZW07XG4gIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBzZXJpZjtcbiAgZm9udC1zaXplOiA2LjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2Y0NzQyNDtcbiAgb3BhY2l0eTogMC4wODtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDA7XG59XG4ucmV2aWV3LWNhcmQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAzNnB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgdmFyKC0tYm94LXNoYWRvdyk7XG4gIGJvcmRlci1jb2xvcjogI2Y0NzQyNDtcbn1cbi5yZXZpZXctY2FyZCA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5yZXZpZXctY2FyZC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnJldmlldy1jYXJkLXN0YXJzIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGdhcDogMnB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5yZXZpZXctY2FyZC1zdGFycyBpIHtcbiAgY29sb3I6ICNmNDc0MjQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5yZXZpZXctY2FyZC1zdGFycyBpLmVtcHR5IHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC4xODtcbn1cblxuLnJldmlldy1jYXJkLXNvdXJjZS1iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucmV2aWV3LWNhcmQtc291cmNlLWJhZGdlIGkge1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5yZXZpZXctY2FyZC1ib2R5IHtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW4tYm90dG9tOiAxLjE1cmVtO1xufVxuLnJldmlldy1jYXJkLWJvZHkgPiBkaXYge1xuICBtYXJnaW46IDA7XG59XG5cbi5yZXZpZXctY2FyZC10ZXh0IHtcbiAgZm9udC1zaXplOiAwLjk3cmVtO1xuICBsaW5lLWhlaWdodDogMS42NTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC45MjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ucmV2aWV3LWNhcmQtdGV4dC1lbXB0eSB7XG4gIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjU1O1xuICBtYXJnaW46IDA7XG59XG5cbi5yZXZpZXctY2FyZC1yZWFkbW9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBjb2xvcjogI2Y0NzQyNCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuODZyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4ucmV2aWV3LWNhcmQtcmVhZG1vcmU6aG92ZXIge1xuICBjb2xvcjogI2ZmYjA2NiAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5yZXZpZXctY2FyZC1yZWFkbW9yZSBpIHtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xufVxuXG4ucmV2aWV3LWNhcmQtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjg1cmVtO1xufVxuXG4ucmV2aWV3LWNhcmQtYXR0cmlidXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMXJlbTtcbn1cblxuLnJldmlldy1jYXJkLW5hbWUge1xuICBmb250LXNpemU6IDAuOTZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5yZXZpZXctY2FyZC1zeXN0ZW0tbWV0YSB7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC42NTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLnJldmlldy1jYXJkLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ucmV2aWV3LWNhcmQtYWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40cmVtO1xuICBwYWRkaW5nOiAwLjQ1cmVtIDAuOXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjgycmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UsIGJvcmRlci1jb2xvciAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5yZXZpZXctY2FyZC1hY3Rpb24gaSB7XG4gIGZvbnQtc2l6ZTogMC45MnJlbTtcbn1cbi5yZXZpZXctY2FyZC1hY3Rpb246aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG4gIGNvbG9yOiAjZjQ3NDI0ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLnJldmlldy1jYXJkLWFjdGlvbi0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICNmNDc0MjQ7XG4gIGJvcmRlci1jb2xvcjogI2Y0NzQyNDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi5yZXZpZXctY2FyZC1hY3Rpb24tLXByaW1hcnk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZiMDY2O1xuICBib3JkZXItY29sb3I6ICNmZmIwNjY7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5zeXN0ZW0taGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3gtc2hhZG93OiAwIDEycHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xufVxuLnN5c3RlbS1oZXJvOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IGF1dG8gMCAwIDA7XG4gIGhlaWdodDogNTUlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuNykgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTtcbn1cbi5zeXN0ZW0taGVybyAuY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNHB4O1xuICByaWdodDogMThweDtcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICB6LWluZGV4OiAzO1xuICBnYXA6IDRweDtcbn1cbi5zeXN0ZW0taGVybyAuY2Fyb3VzZWwtaW5kaWNhdG9ycyBidXR0b24ge1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2UsIGJhY2tncm91bmQgMC4yNXMgZWFzZTtcbiAgb3BhY2l0eTogMTtcbn1cbi5zeXN0ZW0taGVybyAuY2Fyb3VzZWwtaW5kaWNhdG9ycyBidXR0b24uYWN0aXZlIHtcbiAgd2lkdGg6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiAjZjQ3NDI0O1xufVxuXG4uc3lzdGVtLWhlcm8tb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMS43NXJlbTtcbiAgcmlnaHQ6IDEuNzVyZW07XG4gIGJvdHRvbTogMS41cmVtO1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5zeXN0ZW0taGVyby1vdmVybGF5IC5zeXN0ZW0taGVyby1vcnBoYW4tYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjU1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjg1cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMC44NXJlbTtcbiAgYmFja2dyb3VuZDogI2Y0NzQyNDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGN1cnNvcjogaGVscDtcbiAgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC40NSksIDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuLnN5c3RlbS1oZXJvLW92ZXJsYXkgLnN5c3RlbS1oZXJvLW9ycGhhbi1iYWRnZSBpIHtcbiAgZm9udC1zaXplOiAxLjA1cmVtO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5zeXN0ZW0taGVyby1vdmVybGF5IC5zeXN0ZW0taGVyby10aXRsZSB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCAzdncsIDIuMXJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gIG1hcmdpbjogMCAwIDAuNHJlbTtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnN5c3RlbS1oZXJvLW92ZXJsYXkgLnN5c3RlbS1oZXJvLW1ldGEge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KTtcbiAgZm9udC1zaXplOiAwLjkycmVtO1xuICBtYXJnaW46IDAgMCAwLjg1cmVtO1xufVxuLnN5c3RlbS1oZXJvLW92ZXJsYXkgLnN5c3RlbS1oZXJvLXN0YXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5zeXN0ZW0taGVyby1vdmVybGF5IC5zeXN0ZW0taGVyby1zdGF0IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40cmVtO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uc3lzdGVtLWhlcm8tb3ZlcmxheSAuc3lzdGVtLWhlcm8tc3RhdCBzdHJvbmcge1xuICBjb2xvcjogI2ZmYjA2NjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5zeXN0ZW0taGVyby1vdmVybGF5IC5zeXN0ZW0taGVyby1yZXZpZXcge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1hcmdpbi10b3A6IDAuODVyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjhyZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41NSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi5zeXN0ZW0taGVyby1vdmVybGF5IC5zeXN0ZW0taGVyby1yZXZpZXcgLnN0YXJzIGkge1xuICBjb2xvcjogI2Y0NzQyNDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5zeXN0ZW0taGVyby1vdmVybGF5IHtcbiAgICBsZWZ0OiAxcmVtO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGJvdHRvbTogMXJlbTtcbiAgfVxuICAuc3lzdGVtLWhlcm8tb3ZlcmxheSAuc3lzdGVtLWhlcm8tc3RhdHMge1xuICAgIGdhcDogMC4zNXJlbTtcbiAgfVxuICAuc3lzdGVtLWhlcm8tb3ZlcmxheSAuc3lzdGVtLWhlcm8tc3RhdCB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIHBhZGRpbmc6IDAuM3JlbSAwLjY1cmVtO1xuICB9XG59XG5cbi5zeXN0ZW0tYWN0aW9uLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuODVyZW0gMC4yNXJlbTtcbiAgbWFyZ2luOiAwLjVyZW0gMCAwLjI1cmVtO1xufVxuXG4uc3lzdGVtLWFjdGlvbi1ncm91cCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc3lzdGVtLWFjdGlvbi1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgd2lkdGg6IDM4cHg7XG4gIGhlaWdodDogMzhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDFyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE4cyBlYXNlLCBib3JkZXItY29sb3IgMC4xOHMgZWFzZSwgY29sb3IgMC4xOHMgZWFzZSwgdHJhbnNmb3JtIDAuMThzIGVhc2U7XG59XG4uc3lzdGVtLWFjdGlvbi1waWxsOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xuICBjb2xvcjogI2Y0NzQyNDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuLnN5c3RlbS1hY3Rpb24tcGlsbC5zeXN0ZW0tYWN0aW9uLXBpbGwtLXdpZGUge1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogMCAxcmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgaGVpZ2h0OiAzOHB4O1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGdhcDogMC40NXJlbTtcbn1cblxuLnN5c3RlbS1hY3Rpb24tbWV0YSB7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC43NTtcbiAgbWFyZ2luOiAwO1xufVxuLnN5c3RlbS1hY3Rpb24tbWV0YSBhIHtcbiAgY29sb3I6ICNmNDc0MjQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5zeXN0ZW0tYWN0aW9uLW1ldGEgYTpob3ZlciB7XG4gIGNvbG9yOiAjZmZiMDY2O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnN5c3RlbS10YWItYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjRyZW07XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgcGFkZGluZy1ib3R0b206IDAuNjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuLnN5c3RlbS10YWItYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGhlaWdodDogNHB4O1xufVxuLnN5c3RlbS10YWItYmFyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnN5c3RlbS10YWItYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnN5c3RlbS10YWItYmFyIHtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBwcm94aW1pdHk7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIH1cbn1cblxuLnN5c3RlbS10YWItaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMC42NXJlbSAxLjFyZW07XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNztcbiAgZm9udC1zaXplOiAwLjkycmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlO1xuICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XG59XG4uc3lzdGVtLXRhYi1pdGVtIGkge1xuICBmb250LXNpemU6IDFyZW07XG59XG4uc3lzdGVtLXRhYi1pdGVtOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjcsIDEyNywgMTI3LCAwLjA2KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zeXN0ZW0tdGFiLWl0ZW0uYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogI2Y0NzQyNDtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4yOCk7XG59XG4uc3lzdGVtLXRhYi1pdGVtLmFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNmZmIwNjY7XG4gIGJvcmRlci1jb2xvcjogI2ZmYjA2NjtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zeXN0ZW0taW5mby1jYWxsb3V0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMXJlbTtcbiAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4gIG1hcmdpbjogMi41cmVtIDAgMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG59XG4uc3lzdGVtLWluZm8tY2FsbG91dCAuc3lzdGVtLWluZm8tY2FsbG91dC1pY29uIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDQsIDExNiwgMzYsIDAuMSk7XG4gIGNvbG9yOiAjZjQ3NDI0O1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi5zeXN0ZW0taW5mby1jYWxsb3V0IC5zeXN0ZW0taW5mby1jYWxsb3V0LWJvZHkge1xuICBmbGV4LWdyb3c6IDE7XG59XG4uc3lzdGVtLWluZm8tY2FsbG91dCAuc3lzdGVtLWluZm8tY2FsbG91dC1ib2R5IC5zZWN0aW9uLWV5ZWJyb3cge1xuICBtYXJnaW4tYm90dG9tOiAwLjM1cmVtO1xufVxuLnN5c3RlbS1pbmZvLWNhbGxvdXQgLnN5c3RlbS1pbmZvLWNhbGxvdXQtYm9keSBwIHtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjg1O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBmb250LXNpemU6IDAuOTVyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgLnN5c3RlbS1pbmZvLWNhbGxvdXQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMS4xcmVtO1xuICB9XG59XG5cbi5hd2FyZHMtcGFuZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogNHJlbSAwO1xuICBwYWRkaW5nOiA0cmVtIDEuNXJlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNDUpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSwgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQ1KSAxcHgsIHRyYW5zcGFyZW50IDFweCksIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwZjE3MjkgMCUsICMxYTI3NDYgNjAlLCAjMmQzYTZiIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLXR4LWdyaWQtc2l6ZSwgNDJweCkgdmFyKC0tdHgtZ3JpZC1zaXplLCA0MnB4KSwgdmFyKC0tdHgtZ3JpZC1zaXplLCA0MnB4KSB2YXIoLS10eC1ncmlkLXNpemUsIDQycHgpLCAxMDAlIDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDYwcHggcmdiYSgxNSwgMjMsIDQxLCAwLjI1KSwgMCA4cHggMjBweCByZ2JhKDE1LCAyMywgNDEsIDAuMTUpO1xufVxuLmF3YXJkcy1wYW5lbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMCU7XG4gIGxlZnQ6IC0xMCU7XG4gIHdpZHRoOiA1NSU7XG4gIGhlaWdodDogMTYwJTtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgyNDQsIDExNiwgMzYsIDAuMTgpIDAlLCB0cmFuc3BhcmVudCA2NSUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5hd2FyZHMtcGFuZWw6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMCU7XG4gIHJpZ2h0OiAtMTAlO1xuICB3aWR0aDogNTUlO1xuICBoZWlnaHQ6IDE2MCU7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMTM4LCAxMDcsIDI1NSwgMC4xNCkgMCUsIHRyYW5zcGFyZW50IDY1JSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmF3YXJkcy1wYW5lbCA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG4uYXdhcmRzLXBhbmVsIC5zZWN0aW9uLWV5ZWJyb3cge1xuICBjb2xvcjogI2ZmYjA2Njtcbn1cbi5hd2FyZHMtcGFuZWwgLmF3YXJkcy1wYW5lbC10aXRsZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXdlaWdodDogODAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5hd2FyZHMtcGFuZWwgLmF3YXJkcy1wYW5lbC1sZWFkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43OCk7XG4gIG1heC13aWR0aDogNzYwcHg7XG4gIG1hcmdpbjogMCBhdXRvIDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmF3YXJkcy1wYW5lbCB7XG4gICAgcGFkZGluZzogMi41cmVtIDFyZW07XG4gICAgbWFyZ2luOiAyLjVyZW0gMDtcbiAgfVxufVxuXG4uYXdhcmRzLXRyb3BoeS1jYXNlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwODBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEuNzVyZW0gMnJlbTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGJveC1zaGFkb3c6IDAgMjRweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC4zMiksIDAgOHB4IDE4cHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cbi5hd2FyZHMtdHJvcGh5LWNhc2UgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYXdhcmRzLXRyb3BoeS1jYXNlIHtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gIH1cbn1cblxuLnN0YXQtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBwYWRkaW5nOiAxLjRyZW0gMXJlbSAxLjI1cmVtO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2UsIGJveC1zaGFkb3cgMC4yNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2U7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5zdGF0LWNhcmQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAyOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCksIHZhcigtLWJveC1zaGFkb3cpO1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG59XG4uc3RhdC1jYXJkIC5zdGF0LWNhcmQtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDUycHg7XG4gIGhlaWdodDogNTJweDtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDQsIDExNiwgMzYsIDAuMSk7XG4gIGNvbG9yOiAjZjQ3NDI0O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC44NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uc3RhdC1jYXJkIC5zdGF0LWNhcmQtaWNvbiBpbWcsXG4uc3RhdC1jYXJkIC5zdGF0LWNhcmQtaWNvbiBzdmcge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuLnN0YXQtY2FyZCAuc3RhdC1jYXJkLXZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogODAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cbi5zdGF0LWNhcmQgLnN0YXQtY2FyZC12YWx1ZSAudW5pdCB7XG4gIGNvbG9yOiAjZjQ3NDI0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwO1xufVxuLnN0YXQtY2FyZCAuc3RhdC1jYXJkLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cbi5zdGF0LWNhcmQgLnN0YXQtY2FyZC1tZXRhIHtcbiAgbWFyZ2luLXRvcDogMC43cmVtO1xuICBwYWRkaW5nLXRvcDogMC42cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLnN0YXQtY2FyZC0tY29tcGFjdCB7XG4gIHBhZGRpbmc6IDFyZW0gMC44NXJlbSAwLjk1cmVtO1xufVxuLnN0YXQtY2FyZC0tY29tcGFjdCAuc3RhdC1jYXJkLWljb24ge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBmb250LXNpemU6IDEuMTVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNTVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4uc3RhdC1jYXJkLS1jb21wYWN0IC5zdGF0LWNhcmQtdmFsdWUge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cblxuLmNvbnRhY3QtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBwYWRkaW5nOiAycmVtIDEuNXJlbTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLCBib3gtc2hhZG93IDAuMjVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uY29udGFjdC1jYXJkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogM3B4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmNDc0MjQgMCUsICNmZmIwNjYgMTAwJSk7XG4gIG9wYWNpdHk6IDAuODU7XG59XG4uY29udGFjdC1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuICBib3gtc2hhZG93OiAwIDE0cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCB2YXIoLS1ib3gtc2hhZG93KTtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xufVxuLmNvbnRhY3QtY2FyZCAuY29udGFjdC1jYXJkLWljb24ge1xuICBmb250LXNpemU6IDJyZW07XG4gIGNvbG9yOiAjZjQ3NDI0O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5jb250YWN0LWNhcmQgLmNvbnRhY3QtY2FyZC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuLmNvbnRhY3QtY2FyZCAuY29udGFjdC1jYXJkLXZhbHVlIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmNvbnRhY3QtY2FyZCAuY29udGFjdC1jYXJkLXZhbHVlIGEge1xuICBjb2xvcjogdmFyKC0taW50ZXJhY3Rpb24pO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcbn1cbi5jb250YWN0LWNhcmQgLmNvbnRhY3QtY2FyZC12YWx1ZSBhOmhvdmVyIHtcbiAgY29sb3I6ICNmNDc0MjQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uc29jaWFsLWljb24tbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgb3BhY2l0eTogMC45O1xufVxuLnNvY2lhbC1pY29uLWxpbms6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMS4xKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmluc2lnaHRzLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzMjBweCwgMWZyKSk7XG4gIGdhcDogMS41cmVtO1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG59XG5cbi5pbnNpZ2h0LWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZSwgYm94LXNoYWRvdyAwLjI1cyBlYXNlLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmluc2lnaHQtY2FyZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDNweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZjQ3NDI0IDAlLCAjZmZiMDY2IDEwMCUpO1xuICBvcGFjaXR5OiAwLjg1O1xuICB6LWluZGV4OiAyO1xufVxuLmluc2lnaHQtY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgYm94LXNoYWRvdzogMCAxNHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgdmFyKC0tYm94LXNoYWRvdyk7XG4gIGJvcmRlci1jb2xvcjogI2Y0NzQyNDtcbn1cbi5pbnNpZ2h0LWNhcmQ6aG92ZXIgLmluc2lnaHQtY2FyZC1tZWRpYSBpbWcsXG4uaW5zaWdodC1jYXJkOmhvdmVyIC5pbnNpZ2h0LWNhcmQtbWVkaWEgLmNvdmVyLWltYWdlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1tZWRpYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1tZWRpYSBpbWcsXG4uaW5zaWdodC1jYXJkIC5pbnNpZ2h0LWNhcmQtbWVkaWEgLmNvdmVyLWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSk7XG59XG4uaW5zaWdodC1jYXJkIC5pbnNpZ2h0LWNhcmQtYm9keSB7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1jYXRlZ29yaWVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuMzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1jYXRlZ29yaWVzIC5iYWRnZSB7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDQsIDExNiwgMzYsIDAuMSk7XG4gIGNvbG9yOiAjZjQ3NDI0O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZzogMC4yMnJlbSAwLjZyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2U7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1jYXRlZ29yaWVzIC5iYWRnZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjIpO1xufVxuLmluc2lnaHQtY2FyZCAuaW5zaWdodC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjE1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XG59XG4uaW5zaWdodC1jYXJkIC5pbnNpZ2h0LWNhcmQtdGl0bGUgYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC10aXRsZSBhOmhvdmVyIHtcbiAgY29sb3I6ICNmNDc0MjQ7XG59XG4uaW5zaWdodC1jYXJkIC5pbnNpZ2h0LWNhcmQtbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC43O1xufVxuLmluc2lnaHQtY2FyZCAuaW5zaWdodC1jYXJkLW1ldGEgLmluc2lnaHQtY2FyZC1hdXRob3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xufVxuLmluc2lnaHQtY2FyZCAuaW5zaWdodC1jYXJkLW1ldGEgLmluc2lnaHQtY2FyZC1hdXRob3IgaW1nIHtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1tZXRhIGkge1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgb3BhY2l0eTogMC42O1xufVxuLmluc2lnaHQtY2FyZCAuaW5zaWdodC1jYXJkLWV4Y2VycHQge1xuICBmb250LXNpemU6IDAuOTNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuODU7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1mb290ZXIge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLmluc2lnaHQtY2FyZC1taW5pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuODc1cmVtO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcGFkZGluZzogMC44NzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5pbnNpZ2h0LWNhcmQtbWluaTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZjQ3NDI0IDAlLCAjZmZiMDY2IDEwMCUpO1xuICBvcGFjaXR5OiAwLjg1O1xufVxuLmluc2lnaHQtY2FyZC1taW5pOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMSksIHZhcigtLWJveC1zaGFkb3cpO1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG59XG4uaW5zaWdodC1jYXJkLW1pbmkgLmluc2lnaHQtY2FyZC1taW5pLXRodW1iIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiA3MnB4O1xuICBoZWlnaHQ6IDcycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbn1cbi5pbnNpZ2h0LWNhcmQtbWluaSAuaW5zaWdodC1jYXJkLW1pbmktYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC4zcmVtO1xuICBtaW4td2lkdGg6IDA7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5pbnNpZ2h0LWNhcmQtbWluaSAuaW5zaWdodC1jYXJkLW1pbmktdGl0bGUge1xuICBmb250LXNpemU6IDAuOTJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICBsaW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmluc2lnaHQtY2FyZC1taW5pIC5pbnNpZ2h0LWNhcmQtbWluaS1tZXRhIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuLmluc2lnaHQtY2FyZC5pbnNpZ2h0LWNhcmQtLWRyYWZ0IHtcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNDQsIDExNiwgMzYsIDAuNTUpO1xufVxuLmluc2lnaHQtY2FyZCAuaW5zaWdodC1jYXJkLW1lZGlhLS1wbGFjZWhvbGRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xKSwgcmdiYSgyNTUsIDE3NiwgMTAyLCAwLjEpKTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1tZWRpYS0tcGxhY2Vob2xkZXIgaSB7XG4gIGZvbnQtc2l6ZTogMi42cmVtO1xuICBjb2xvcjogI2Y0NzQyNDtcbiAgb3BhY2l0eTogMC41NTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1yZWFkbW9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgY29sb3I6ICNmNDc0MjQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC44OHJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBnYXAgMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2U7XG59XG4uaW5zaWdodC1jYXJkIC5pbnNpZ2h0LWNhcmQtcmVhZG1vcmUgaSB7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1yZWFkbW9yZTpob3ZlciB7XG4gIGNvbG9yOiAjZmZiMDY2O1xuICBnYXA6IDAuNnJlbTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1yZWFkbW9yZTpob3ZlciBpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XG59XG4uaW5zaWdodC1jYXJkIC5pbnNpZ2h0LWNhcmQtYXV0aG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40cmVtO1xufVxuLmluc2lnaHQtY2FyZCAuaW5zaWdodC1jYXJkLWF1dGhvciBpbWcge1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuLmluc2lnaHQtY2FyZCAuaW5zaWdodC1jYXJkLWF1dGhvciBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5pbnNpZ2h0LWNhcmQgLmluc2lnaHQtY2FyZC1hdXRob3IgYTpob3ZlciB7XG4gIGNvbG9yOiAjZjQ3NDI0O1xufVxuLmluc2lnaHQtY2FyZCAuaW5zaWdodC1jYXJkLW1ldGEgaS5mYS1jaXJjbGUge1xuICBmb250LXNpemU6IDNweDtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uaW5zaWdodC1jYXJkLW1pbmktdGh1bWItLXBsYWNlaG9sZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjEyKSwgcmdiYSgyNTUsIDE3NiwgMTAyLCAwLjEyKSk7XG59XG4uaW5zaWdodC1jYXJkLW1pbmktdGh1bWItLXBsYWNlaG9sZGVyIGkge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgY29sb3I6ICNmNDc0MjQ7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmluc2lnaHRzLXNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbn1cblxuLmluc2lnaHRzLXNob3ctaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDEuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMzYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuaW5zaWdodHMtc2hvdy1oZXJvIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07XG4gICAgbWluLWhlaWdodDogMjgwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4uaW5zaWdodHMtc2hvdy1oZXJvLS13aXRoLWltYWdlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uaW5zaWdodHMtc2hvdy1oZXJvLS13aXRoLWltYWdlIC5pbnNpZ2h0cy1zaG93LWJhY2sge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbn1cbi5pbnNpZ2h0cy1zaG93LWhlcm8tLXdpdGgtaW1hZ2UgLmluc2lnaHRzLXNob3ctYmFjazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbn1cbi5pbnNpZ2h0cy1zaG93LWhlcm8tLXdpdGgtaW1hZ2UgLmluc2lnaHRzLXNob3ctdGl0bGUge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cbi5pbnNpZ2h0cy1zaG93LWhlcm8tLXdpdGgtaW1hZ2UgLmluc2lnaHRzLXNob3ctbWV0YSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpO1xufVxuLmluc2lnaHRzLXNob3ctaGVyby0td2l0aC1pbWFnZSAuaW5zaWdodHMtc2hvdy1jYXRlZ29yaWVzIC5iYWRnZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjk1KTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5pbnNpZ2h0cy1zaG93LWhlcm8tLXBsYWluIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5pbnNpZ2h0cy1zaG93LWhlcm8tLXBsYWluOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmNDc0MjQgMCUsICNmZmIwNjYgMTAwJSk7XG59XG4uaW5zaWdodHMtc2hvdy1oZXJvLS1wbGFpbjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTMwJTtcbiAgcmlnaHQ6IC0xMCU7XG4gIHdpZHRoOiA1NSU7XG4gIGhlaWdodDogMTYwJTtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgyNDQsIDExNiwgMzYsIDAuMTYpIDAlLCB0cmFuc3BhcmVudCA2NSUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmluc2lnaHRzLXNob3ctaGVyby1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODgwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAzcmVtIDJyZW0gMi4yNXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuaW5zaWdodHMtc2hvdy1oZXJvLWlubmVyIHtcbiAgICBwYWRkaW5nOiAycmVtIDEuMjVyZW0gMS41cmVtO1xuICB9XG59XG5cbi5pbnNpZ2h0cy1zaG93LWJhY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjQ1cmVtO1xuICBwYWRkaW5nOiAwLjRyZW0gMC44NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlO1xufVxuLmluc2lnaHRzLXNob3ctYmFjazpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NzQyNDtcbiAgY29sb3I6ICNmNDc0MjQ7XG59XG5cbi5pbnNpZ2h0cy1zaG93LWNhdGVnb3JpZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC4zNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC44NXJlbTtcbn1cbi5pbnNpZ2h0cy1zaG93LWNhdGVnb3JpZXMgLmJhZGdlIHtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xMik7XG4gIGNvbG9yOiAjZjQ3NDI0O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZzogMC4yOHJlbSAwLjdyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgYm9yZGVyOiBub25lO1xufVxuLmluc2lnaHRzLXNob3ctY2F0ZWdvcmllcyAuYmFkZ2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0NCwgMTE2LCAzNiwgMC4yMik7XG59XG5cbi5pbnNpZ2h0cy1zaG93LXRpdGxlIHtcbiAgZm9udC1zaXplOiBjbGFtcCgxLjg1cmVtLCA0dncsIDNyZW0pO1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cblxuLmluc2lnaHRzLXNob3ctbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjY1cmVtO1xuICBmb250LXNpemU6IDAuOTJyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuOTtcbn1cbi5pbnNpZ2h0cy1zaG93LW1ldGEgaS5mYS1jaXJjbGUge1xuICBmb250LXNpemU6IDRweDtcbiAgb3BhY2l0eTogMC41NTtcbn1cblxuLmluc2lnaHRzLXNob3ctYXV0aG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmluc2lnaHRzLXNob3ctYXV0aG9yIGltZyB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbn1cblxuLmluc2lnaHRzLXNob3ctdG9vbGJhciB7XG4gIG1heC13aWR0aDogODgwcHg7XG4gIG1hcmdpbjogMS4yNXJlbSBhdXRvIDA7XG4gIHBhZGRpbmc6IDAgMnJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuaW5zaWdodHMtc2hvdy10b29sYmFyIHtcbiAgICBwYWRkaW5nOiAwIDEuMjVyZW07XG4gIH1cbn1cblxuLmluc2lnaHRzLXNob3ctdG9vbGJhci1pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxcmVtO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xufVxuXG4uaW5zaWdodHMtc2hvdy1zaGFyZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLmluc2lnaHRzLXNob3ctc2hhcmUtbGFiZWwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbn1cblxuLmluc2lnaHRzLXNob3ctc2hhcmUtYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuLmluc2lnaHRzLXNob3ctc2hhcmUtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2Y0NzQyNDtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xuICBjb2xvcjogI2ZmZjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4uaW5zaWdodHMtc2hvdy1kcmFmdC1hbGVydCB7XG4gIG1heC13aWR0aDogODgwcHg7XG4gIG1hcmdpbjogMXJlbSBhdXRvIDA7XG4gIHBhZGRpbmc6IDAgMnJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuaW5zaWdodHMtc2hvdy1kcmFmdC1hbGVydCB7XG4gICAgcGFkZGluZzogMCAxLjI1cmVtO1xuICB9XG59XG5cbi5pbnNpZ2h0cy1zaG93LWxheW91dCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgMzIwcHg7XG4gIGdhcDogM3JlbTtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbjogMi4yNXJlbSBhdXRvIDA7XG4gIHBhZGRpbmc6IDAgMnJlbTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5pbnNpZ2h0cy1zaG93LWxheW91dCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICBnYXA6IDIuMjVyZW07XG4gICAgcGFkZGluZzogMCAxLjI1cmVtO1xuICB9XG59XG5cbi5pbnNpZ2h0cy1zaG93LXByb3NlIHtcbiAgbWF4LXdpZHRoOiA3MjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBmb250LXNpemU6IDEuMDc1cmVtO1xuICBsaW5lLWhlaWdodDogMS43NTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlID4gKiB7XG4gIG1hcmdpbi1ib3R0b206IDEuMTVlbTtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIGgxLCAuaW5zaWdodHMtc2hvdy1wcm9zZSBoMiwgLmluc2lnaHRzLXNob3ctcHJvc2UgaDMsIC5pbnNpZ2h0cy1zaG93LXByb3NlIGg0LCAuaW5zaWdodHMtc2hvdy1wcm9zZSBoNSwgLmluc2lnaHRzLXNob3ctcHJvc2UgaDYge1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG1hcmdpbi10b3A6IDJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42NWVtO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG4uaW5zaWdodHMtc2hvdy1wcm9zZSBoMSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIGgyIHtcbiAgZm9udC1zaXplOiAxLjY1cmVtO1xufVxuLmluc2lnaHRzLXNob3ctcHJvc2UgaDMge1xuICBmb250LXNpemU6IDEuMzVyZW07XG59XG4uaW5zaWdodHMtc2hvdy1wcm9zZSBoNCB7XG4gIGZvbnQtc2l6ZTogMS4xNXJlbTtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIHAge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjkyO1xufVxuLmluc2lnaHRzLXNob3ctcHJvc2UgYSB7XG4gIGNvbG9yOiAjZjQ3NDI0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweDtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIGE6aG92ZXIge1xuICBjb2xvcjogI2ZmYjA2Njtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uaW5zaWdodHMtc2hvdy1wcm9zZSBlbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIHVsLCAuaW5zaWdodHMtc2hvdy1wcm9zZSBvbCB7XG4gIHBhZGRpbmctbGVmdDogMS40ZW07XG59XG4uaW5zaWdodHMtc2hvdy1wcm9zZSB1bCBsaSwgLmluc2lnaHRzLXNob3ctcHJvc2Ugb2wgbGkge1xuICBtYXJnaW4tYm90dG9tOiAwLjQ1ZW07XG59XG4uaW5zaWdodHMtc2hvdy1wcm9zZSBibG9ja3F1b3RlIHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZjQ3NDI0O1xuICBtYXJnaW46IDEuNWVtIDA7XG4gIHBhZGRpbmc6IDAuMjVlbSAwIDAuMjVlbSAxLjI1ZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC44ODtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDQsIDExNiwgMzYsIDAuMDQpO1xuICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIGNvZGUge1xuICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMC45MmVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMTIpO1xuICBwYWRkaW5nOiAwLjE1ZW0gMC40ZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIHByZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI3LCAxMjcsIDEyNywgMC4wOCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwYWRkaW5nOiAxcmVtIDEuMTVyZW07XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMS41NTtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIHByZSBjb2RlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG59XG4uaW5zaWdodHMtc2hvdy1wcm9zZSBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgbWFyZ2luOiAxLjVlbSAwO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIGZpZ3VyZSB7XG4gIG1hcmdpbjogMS43NWVtIDA7XG59XG4uaW5zaWdodHMtc2hvdy1wcm9zZSBmaWd1cmUgZmlnY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC42NTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIGhyIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG1hcmdpbjogMi41ZW0gMDtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgbWFyZ2luOiAxLjVlbSAwO1xufVxuLmluc2lnaHRzLXNob3ctcHJvc2UgdGFibGUgdGgsIC5pbnNpZ2h0cy1zaG93LXByb3NlIHRhYmxlIHRkIHtcbiAgcGFkZGluZzogMC42cmVtIDAuODVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIHRhYmxlIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjcsIDEyNywgMTI3LCAwLjA2KTtcbn1cbi5pbnNpZ2h0cy1zaG93LXByb3NlIC5hdHRhY2htZW50IHtcbiAgbWFyZ2luOiAxLjVlbSAwO1xufVxuLmluc2lnaHRzLXNob3ctcHJvc2UgLmF0dGFjaG1lbnQgaW1nIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4uaW5zaWdodHMtc2hvdy1zaWRlYmFyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiB2YXIoLS1wYWdlLXN0aWNreS1uYXZiYXItb2Zmc2V0LCAxMDBweCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMS4yNXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuaW5zaWdodHMtc2hvdy1zaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9XG59XG5cbi5pbnNpZ2h0cy1zaG93LXNpZGViYXItYmxvY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmluc2lnaHRzLXNob3ctc2lkZWJhci1ibG9jazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZjQ3NDI0IDAlLCAjZmZiMDY2IDEwMCUpO1xuICBvcGFjaXR5OiAwLjg1O1xufVxuXG4uaW5zaWdodHMtc2hvdy1zaWRlYmFyLXRpdGxlIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xNGVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogI2Y0NzQyNDtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuLmluc2lnaHRzLXNob3ctc2lkZWJhci10ZXh0IHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuODtcbiAgbWFyZ2luLWJvdHRvbTogMC44NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmluc2lnaHRzLXNob3ctc2lkZWJhci1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuXG4uaW5zaWdodHMtc2hvdy1zdWJzY3JpYmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uaGVyby1zcGxpdCxcbi5mZWF0dXJlLXJvdyxcbi5wcm9vZi1jYXJkLFxuLnN0YXQtY2FyZCxcbi5jb250YWN0LWNhcmQsXG4ubWVkaWEtY2FyZCxcbi5yZXZpZXctY2FyZCxcbi5pbnNpZ2h0LWNhcmQsXG4uaW5zaWdodC1jYXJkLW1pbmksXG4uaW5zaWdodHMtc2hvdyxcbi5pbXBhY3Qtd2lkZ2V0IHtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5oZXJvLXNwbGl0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAycmVtIDAgNHJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdHJhbnNwYXJlbnQgNTUlLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgMTAwJSksIGxpbmVhci1ncmFkaWVudCh2YXIoLS10eC1ncmlkLWxpbmUsIHJnYmEoMTYsIDI0LCA0MCwgMC4wNDUpKSAxcHgsIHRyYW5zcGFyZW50IDFweCksIGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tdHgtZ3JpZC1saW5lLCByZ2JhKDE2LCAyNCwgNDAsIDAuMDQ1KSkgMXB4LCB0cmFuc3BhcmVudCAxcHgpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJSwgdmFyKC0tdHgtZ3JpZC1zaXplLCA0MnB4KSB2YXIoLS10eC1ncmlkLXNpemUsIDQycHgpLCB2YXIoLS10eC1ncmlkLXNpemUsIDQycHgpIHZhcigtLXR4LWdyaWQtc2l6ZSwgNDJweCk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLmhlcm8tc3BsaXQge1xuICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gIH1cbn1cblxuLmhlcm8tc3BsaXQtLW5hdmJhci1vdmVybGF5IHtcbiAgcGFkZGluZy10b3A6IDhyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLmhlcm8tc3BsaXQtLW5hdmJhci1vdmVybGF5IHtcbiAgICBwYWRkaW5nLXRvcDogNnJlbTtcbiAgfVxufVxuXG4uaGVyby1zcGxpdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC01MCU7XG4gIHJpZ2h0OiAtMjAlO1xuICB3aWR0aDogODAwcHg7XG4gIGhlaWdodDogODAwcHg7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjA4KSAwJSwgdHJhbnNwYXJlbnQgNzAlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5oZXJvLXNwbGl0OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtNDAlO1xuICBsZWZ0OiAtMTUlO1xuICB3aWR0aDogNjIwcHg7XG4gIGhlaWdodDogNjIwcHg7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjA1KSAwJSwgdHJhbnNwYXJlbnQgNzAlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDA7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAuaGVyby1zcGxpdDo6YmVmb3JlIHtcbiAgICBhbmltYXRpb246IGhlcm8tZ2xvdy1kcmlmdCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGUgYWx0ZXJuYXRlO1xuICB9XG4gIC5oZXJvLXNwbGl0OjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBoZXJvLWdsb3ctZHJpZnQgMThzIGVhc2UtaW4tb3V0IC00cyBpbmZpbml0ZSBhbHRlcm5hdGUtcmV2ZXJzZTtcbiAgfVxufVxuQGtleWZyYW1lcyBoZXJvLWdsb3ctZHJpZnQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zJSwgNCUsIDApO1xuICB9XG59XG4udHgtZ3JpZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnR4LWdyaWQgPiAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuXG4udHgtZ3JpZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh2YXIoLS10eC1ncmlkLWxpbmUsIHJnYmEoMTYsIDI0LCA0MCwgMC4wNDUpKSAxcHgsIHRyYW5zcGFyZW50IDFweCksIGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tdHgtZ3JpZC1saW5lLCByZ2JhKDE2LCAyNCwgNDAsIDAuMDQ1KSkgMXB4LCB0cmFuc3BhcmVudCAxcHgpO1xuICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLXR4LWdyaWQtc2l6ZSwgNDJweCkgdmFyKC0tdHgtZ3JpZC1zaXplLCA0MnB4KTtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA4OCUgNjglIGF0IDUwJSA0MiUsICMwMDAgMjIlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgbWFzay1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgODglIDY4JSBhdCA1MCUgNDIlLCAjMDAwIDIyJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG59XG5cbi5oZXJvLXNwbGl0IC5jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5oZXJvLXNwbGl0LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxLjFmcjtcbiAgZ2FwOiA0cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uaGVyby1zcGxpdCAuaGVyby1jb3B5IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LXdpZHRoOiA1NjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuXG4uaGVyby1zcGxpdCAuaGVyby1jb3B5IC5oZXJvLXRpdGxlLFxuLmhlcm8tc3BsaXQgLmhlcm8tY29weSAuaGVyby1zdWJ0aXRsZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5oZXJvLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFwiUGx1cyBKYWthcnRhIFNhbnNcIiwgXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA0LjV2dywgMy4yNXJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG4uaGVyby10aXRsZSAuZ3JhZGllbnQtdGV4dCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2Y0NzQyNCAwJSwgI2ZmYjA2NiAxMDAlKTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5oZXJvLXN1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjE1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjg1O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uaGVyby1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxcmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmhlcm8tc3RhZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG59XG5cbi5oZXJvLXN0YWdlID4gLmhlcm8tdmlzdWFsIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmhlcm8tcm90YXRvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLmhlcm8tcm90YXRvci1zdGFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmhlcm8tcm90YXRvci1zbGlkZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNjAwbXMgZWFzZSwgdHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmhlcm8tcm90YXRvci1zbGlkZS5pcy1hY3RpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5oZXJvLXJvdGF0b3ItY3RhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjZyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLmhlcm8tcm90YXRvci1jdGEge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG4uYnRuLWhlcm8ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMC41NXJlbTtcbiAgcGFkZGluZzogMC44NXJlbSAxLjc1cmVtO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjQ3NDI0IDAlLCAjZmZiMDY2IDEwMCUpO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3gtc2hhZG93OiAwIDRweCAxOHB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjMyKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpLCBib3gtc2hhZG93IDIwMG1zIGVhc2UsIGZpbHRlciAyMDBtcyBlYXNlO1xufVxuLmJ0bi1oZXJvIGkge1xuICBmb250LXNpemU6IDAuODVlbTtcbn1cbi5idG4taGVybzpob3ZlciwgLmJ0bi1oZXJvOmZvY3VzLXZpc2libGUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI4cHggcmdiYSgyNDQsIDExNiwgMzYsIDAuNDIpO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4wNSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiBub25lO1xufVxuLmJ0bi1oZXJvOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgYm94LXNoYWRvdzogMCAzcHggMTJweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4zNik7XG59XG5cbi5idG4taGVyby0tZ2hvc3Qge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmNDc0MjQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCAjZjQ3NDI0O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmJ0bi1oZXJvLS1naG9zdDpob3ZlciwgLmJ0bi1oZXJvLS1naG9zdDpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogI2Y0NzQyNDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xuICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjMyKTtcbiAgZmlsdGVyOiBub25lO1xufVxuXG4uaGVyby1yb3RhdG9yIC5oZXJvLXRpdGxlLFxuLmhlcm8tcm90YXRvciAuaGVyby1zdWJ0aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5oZXJvLWF3YXJkLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMS41cmVtO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmhlcm8tYXdhcmQtcm93LXRleHQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5oZXJvLWF3YXJkLWxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlO1xufVxuLmhlcm8tYXdhcmQtbGluazpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLmhlcm8tYXdhcmQtYmFkZ2Uge1xuICB3aWR0aDogMTEwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5oZXJvLXJvdGF0b3ItcmV2aWV3cyB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIHdpZHRoOiAxMDAlO1xufVxuLmhlcm8tcm90YXRvci1yZXZpZXdzIC5yZXZpZXctd3JhcHBlciB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5oZXJvLWF3YXJkLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBnYXA6IDFyZW07XG4gIH1cbiAgLmhlcm8tYXdhcmQtbGluayB7XG4gICAgb3JkZXI6IC0xO1xuICB9XG4gIC5oZXJvLWF3YXJkLWJhZGdlIHtcbiAgICB3aWR0aDogMTMwcHg7XG4gIH1cbn1cbi5oZXJvLXJvdGF0b3IgLmhlcm8tdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbi5oZXJvLXJvdGF0b3ItcGlwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDEuNXJlbSAwIDA7XG59XG5cbi5oZXJvLXJvdGF0b3ItcGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMC4zcmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI3LCAxMjcsIDEyNywgMC4xOCk7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IHdpZHRoIDQwMG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKSwgYmFja2dyb3VuZCAyMDBtcyBlYXNlO1xufVxuXG4uaGVyby1yb3RhdG9yLXBpcDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI3LCAxMjcsIDEyNywgMC4zMik7XG59XG5cbi5oZXJvLXJvdGF0b3ItcGlwLmlzLWFjdGl2ZSB7XG4gIHdpZHRoOiA0cmVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xOCk7XG59XG5cbi5oZXJvLXJvdGF0b3ItcGlwLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMDtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZjQ3NDI0IDAlLCAjZmZiMDY2IDEwMCUpO1xufVxuXG4uaGVyby1yb3RhdG9yLXBpcC5pcy1hY3RpdmUgLmhlcm8tcm90YXRvci1waXAtZmlsbCB7XG4gIGFuaW1hdGlvbjogaGVyby1yb3RhdG9yLWZpbGwgdmFyKC0tcm90YXRvci1pbnRlcnZhbCwgNTAwMG1zKSBsaW5lYXIgZm9yd2FyZHM7XG59XG5cbi5oZXJvLXJvdGF0b3IuaXMtcGF1c2VkIC5oZXJvLXJvdGF0b3ItcGlwLmlzLWFjdGl2ZSAuaGVyby1yb3RhdG9yLXBpcC1maWxsIHtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbn1cblxuQGtleWZyYW1lcyBoZXJvLXJvdGF0b3ItZmlsbCB7XG4gIGZyb20ge1xuICAgIHdpZHRoOiAwO1xuICB9XG4gIHRvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmhlcm8tcm90YXRvci1zbGlkZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICAuaGVyby1yb3RhdG9yLXBpcC1maWxsIHtcbiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLmhlcm8tc3BsaXQtLWJsZWVkIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmhlcm8tc3BsaXQtLWJsZWVkID4gLmhlcm8tc3BsaXQtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDIwcmVtLCAxZnIpIG1pbm1heCgyOHJlbSwgMS40ZnIpO1xuICBnYXA6IDNyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgLmhlcm8tc3BsaXQtLWJsZWVkID4gLmhlcm8tc3BsaXQtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMjByZW0sIDU0MHB4KSBtaW5tYXgoMCwgMWZyKTtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gMTI1MHB4KSAvIDIgKyAwLjc1cmVtKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG4uaGVyby1zcGxpdC0tYmxlZWQgLmhlcm8tY29weSB7XG4gIG1heC13aWR0aDogNTQwcHg7XG59XG5cbi5oZXJvLXNwbGl0LS1ibGVlZCAuaGVyby1zdGFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAzMnJlbTtcbn1cblxuLmhlcm8tc3BsaXQtLWJsZWVkIC5oZXJvLXN0YWdlID4gZGl2IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uaGVyby1zcGxpdC0tcmV2ZXJzZSA+IC5oZXJvLXNwbGl0LWdyaWQge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgyOHJlbSwgMS40ZnIpIG1pbm1heCgyMHJlbSwgMWZyKTtcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbn1cbi5oZXJvLXNwbGl0LS1yZXZlcnNlID4gLmhlcm8tc3BsaXQtZ3JpZCAuaGVyby1jb3B5IHtcbiAgb3JkZXI6IDI7XG59XG4uaGVyby1zcGxpdC0tcmV2ZXJzZSA+IC5oZXJvLXNwbGl0LWdyaWQgLmhlcm8tc3RhZ2Uge1xuICBvcmRlcjogMTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAuaGVyby1zcGxpdC0tcmV2ZXJzZSA+IC5oZXJvLXNwbGl0LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDIwcmVtLCA1NDBweCk7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMHZ3IC0gMTI1MHB4KSAvIDIgKyAwLjc1cmVtKTtcbiAgfVxufVxuLmhlcm8tc3BsaXQtLXJldmVyc2UgLmhlcm8tc2NlbmUtd3JhcCxcbi5oZXJvLXNwbGl0LS1yZXZlcnNlIC5oZXJvLW1lZGlhLXdyYXAge1xuICBib3JkZXItcmFkaXVzOiAwIDIwcHggMjBweCAwO1xufVxuXG4uaGVyby1zY2VuZS13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMzJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDIwcHggMCAwIDIwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgMzBweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC4xOCksIDAgOHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xufVxuXG4uaGVyby1zY2VuZS13cmFwID4gI2NhbnZhcy1jb250YWluZXIsXG4uaGVyby1zY2VuZS13cmFwID4gZGl2IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLmhlcm8tc2NlbmUtd3JhcCBjYW52YXMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG4uaGVyby1tZWRpYS13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDMycmVtO1xuICBib3JkZXItcmFkaXVzOiAyMHB4IDAgMCAyMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiAwIDMwcHggNjBweCByZ2JhKDAsIDAsIDAsIDAuMTgpLCAwIDhweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5oZXJvLW1lZGlhLXdyYXAgPiAubWVkaWEtY2FyZCxcbi5oZXJvLW1lZGlhLXdyYXAgPiBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uaGVyby1tZWRpYS13cmFwID4gLm1lZGlhLWNhcmQge1xuICBib3JkZXI6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uaGVyby1tZWRpYS13cmFwID4gLm1lZGlhLWNhcmQgLm1lZGlhLWNhcmQtaW1nLFxuLmhlcm8tbWVkaWEtd3JhcCA+IC5tZWRpYS1jYXJkIC5tZWRpYS1jYXJkLXZpZGVvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5oZXJvLXNwbGl0LS1pbmxpbmUge1xuICBwYWRkaW5nOiAzLjVyZW0gMCAzcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5oZXJvLXNwbGl0LS1pbmxpbmUge1xuICAgIHBhZGRpbmc6IDIuNXJlbSAwIDJyZW07XG4gIH1cbn1cblxuLmxzdi10b2dnbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC43NXJlbTtcbiAgcmlnaHQ6IDAuNzVyZW07XG4gIHdpZHRoOiAyLjI1cmVtO1xuICBoZWlnaHQ6IDIuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiAxMDtcbiAgb3BhY2l0eTogMC41NTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCBiYWNrZ3JvdW5kIDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAyMDBtcyBlYXNlO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5sc3YtdG9nZ2xlOmhvdmVyLFxuLmxzdi10b2dnbGU6Zm9jdXMtdmlzaWJsZSB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmxzdi10b2dnbGU6YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk0KTtcbn1cblxuLmxzdi1jaGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAuNzVyZW07XG4gIHJpZ2h0OiAzLjVyZW07XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgcGFkZGluZzogMCAwLjg1cmVtO1xuICBib3JkZXItcmFkaXVzOiAxLjEyNXJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgei1pbmRleDogMTA7XG4gIG9wYWNpdHk6IDAuNTU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgYmFja2dyb3VuZCAyMDBtcyBlYXNlO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmxzdi1jaGlwLXRpbWUge1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBvcGFjaXR5OiAwLjg1O1xufVxuXG4ubHN2LWNoaXAtd2VhdGhlciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi5sc3YtY2hpcC13ZWF0aGVyW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubHN2LWNoaXAtZGF0ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMC44NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmxzdi10b2dnbGU6aG92ZXIgfiAubHN2LWNoaXAge1xuICBvcGFjaXR5OiAxO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLmhlcm8tc3BsaXQge1xuICAgIHBhZGRpbmc6IDRyZW0gMCAzcmVtO1xuICAgIG92ZXJmbG93LXg6IGNsaXA7XG4gIH1cbiAgLmhlcm8tc3BsaXQtZ3JpZCxcbiAgLmhlcm8tc3BsaXQtLWJsZWVkID4gLmhlcm8tc3BsaXQtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICBnYXA6IDIuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgfVxuICAuaGVyby1zcGxpdCAuaGVyby1jb3B5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuICAuaGVyby1zcGxpdCAuaGVyby1jb3B5IC5oZXJvLXRpdGxlLFxuICAuaGVyby1zcGxpdCAuaGVyby1jb3B5IC5oZXJvLXN1YnRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICB9XG4gIC5oZXJvLXNwbGl0IC5oZXJvLWNvcHkgLmhlcm8tYWN0aW9ucyxcbiAgLmhlcm8tcm90YXRvci1jdGEge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIC5oZXJvLXNwbGl0LS1ibGVlZCAuaGVyby1zdGFnZSB7XG4gICAgbWluLWhlaWdodDogMjJyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmhlcm8tc2NlbmUtd3JhcCxcbiAgLmhlcm8tbWVkaWEtd3JhcCB7XG4gICAgbWluLWhlaWdodDogMjJyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3gtc2hhZG93OiAwIDE0cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xuICB9XG4gIC5oZXJvLXJvdGF0b3IsXG4gIC5oZXJvLXJvdGF0b3Itc3RhZ2UsXG4gIC5oZXJvLXJvdGF0b3Itc2xpZGUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cbiAgLmhlcm8tcm90YXRvci1waXBzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuLmZlYXR1cmUtcm93LXRpdGxlLFxuLnByb29mLWNhcmQtdGl0bGUsXG4uc3RhdC1jYXJkLXZhbHVlLFxuLmluc2lnaHQtY2FyZC10aXRsZSxcbi5pbnNpZ2h0cy1zaG93LXRpdGxlLFxuLnJldmlldy1jYXJkLW5hbWUsXG4uY29udGFjdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFwiUGx1cyBKYWthcnRhIFNhbnNcIiwgXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbn1cblxuLmN0YS1iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogNHJlbSAwO1xuICBwYWRkaW5nOiA1LjVyZW0gMS41cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBpc29sYXRpb246IGlzb2xhdGU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuY3RhLWJhbm5lciB7XG4gICAgcGFkZGluZzogMy41cmVtIDEuMjVyZW07XG4gICAgbWFyZ2luOiAzcmVtIDA7XG4gIH1cbn1cblxuLmN0YS1iYW5uZXItYmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAtMTtcbn1cbi5jdGEtYmFubmVyLWJnIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmN0YS1iYW5uZXItb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTUsIDE1LCAyMCwgMC44NSkgMCUsIHJnYmEoMTUsIDE1LCAyMCwgMC41NSkgNjAlLCByZ2JhKDE1LCAxNSwgMjAsIDAuNzUpIDEwMCUpLCByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDg1JSAwJSwgcmdiYSgyNDQsIDExNiwgMzYsIDAuMTgpIDAlLCB0cmFuc3BhcmVudCA1MCUpO1xufVxuXG4uY3RhLWJhbm5lci1vdmVybGF5OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSAxcHgsIHRyYW5zcGFyZW50IDFweCksIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSAxcHgsIHRyYW5zcGFyZW50IDFweCk7XG4gIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tdHgtZ3JpZC1zaXplLCA0MnB4KSB2YXIoLS10eC1ncmlkLXNpemUsIDQycHgpO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDkwJSA3MiUgYXQgNTAlIDM4JSwgIzAwMCAyMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICBtYXNrLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA5MCUgNzIlIGF0IDUwJSAzOCUsICMwMDAgMjAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbn1cblxuLmN0YS1iYW5uZXItY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uY3RhLWJhbm5lci1leWVicm93IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE2ZW07XG4gIGNvbG9yOiAjZmZiMDY2O1xuICBtYXJnaW4tYm90dG9tOiAwLjg1cmVtO1xufVxuXG4uY3RhLWJhbm5lci10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBsdXMgSmFrYXJ0YSBTYW5zXCIsIFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMS44NXJlbSwgNHZ3LCAyLjg1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICBtYXgtd2lkdGg6IDg1MHB4O1xufVxuLmN0YS1iYW5uZXItdGl0bGUgLmdyYWRpZW50LXRleHQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmNDc0MjQgMCUsICNmZmIwNjYgMTAwJSk7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uY3RhLWJhbm5lci1zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4wNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICBtYXgtd2lkdGg6IDcyMHB4O1xufVxuXG4uY3RhLWJhbm5lci1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAgMi4yNXJlbTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICBnYXA6IDAuNjVyZW0gMi41cmVtO1xuICBmb250LXNpemU6IDEuMDI1cmVtO1xuICBsaW5lLWhlaWdodDogMS41NTtcbiAgbWF4LXdpZHRoOiA5MDBweDtcbn1cbi5jdGEtYmFubmVyLWxpc3QgbGkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAwLjdyZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpO1xufVxuLmN0YS1iYW5uZXItbGlzdCA+IGxpID4gaS5mYS1jaGVjay1jaXJjbGUge1xuICBjb2xvcjogI2ZmYjA2NjtcbiAgbWFyZ2luLXRvcDogMC4zMnJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmbGV4LXNocmluazogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuY3RhLWJhbm5lci1saXN0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IDAuNTVyZW07XG4gIH1cbn1cblxuLmN0YS1iYW5uZXItbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzIpO1xuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2UsIGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG59XG4uY3RhLWJhbm5lci1saW5rOmhvdmVyLCAuY3RhLWJhbm5lci1saW5rOmZvY3VzLXZpc2libGUge1xuICBjb2xvcjogI2ZmYjA2NjtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmYjA2NjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xufVxuLmN0YS1iYW5uZXItbGluayBpIHtcbiAgZm9udC1zaXplOiAwLjc4ZW07XG4gIG9wYWNpdHk6IDAuODU7XG59XG5cbi5jdGEtYmFubmVyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNzVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmN0YS1iYW5uZXItY29udGVudC0tc3BsaXQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIG1pbm1heCgwLCAxZnIpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDNyZW07XG4gIG1heC13aWR0aDogMTIwMHB4O1xufVxuLmN0YS1iYW5uZXItY29udGVudC0tc3BsaXQgLmN0YS1iYW5uZXItbGlzdCB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBtYXJnaW4tYm90dG9tOiAxLjc1cmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5jdGEtYmFubmVyLWNvbnRlbnQtLXNwbGl0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIGdhcDogMnJlbTtcbiAgfVxufVxuXG4uY3RhLWJhbm5lci12aXN1YWwge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5wZWFrLWNoYXJ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMS41cmVtO1xuICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KTtcbn1cbi5wZWFrLWNoYXJ0IHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5wZWFrLWNoYXJ0IC5wYy1heGlzIHtcbiAgc3Ryb2tlOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgc3Ryb2tlLXdpZHRoOiAxLjU7XG59XG4ucGVhay1jaGFydCAucGMtZ3JpZCB7XG4gIHN0cm9rZTogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHN0cm9rZS13aWR0aDogMTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnBlYWstY2hhcnQgLnBjLWFyZWEge1xuICBmaWxsOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMTYpO1xuICBzdHJva2U6IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC41NSk7XG4gIHN0cm9rZS13aWR0aDogMjtcbiAgb3BhY2l0eTogMDtcbn1cbi5wZWFrLWNoYXJ0IC5wYy1zYXZlZCB7XG4gIGZpbGw6IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjI4KTtcbiAgc3Ryb2tlOiBub25lO1xuICBvcGFjaXR5OiAwO1xufVxuLnBlYWstY2hhcnQgLnBjLWxpbmUge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6ICNmNDc0MjQ7XG4gIHN0cm9rZS13aWR0aDogMztcbiAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuICBzdHJva2UtZGFzaGFycmF5OiAxMTAwO1xuICBzdHJva2UtZGFzaG9mZnNldDogMTEwMDtcbn1cbi5wZWFrLWNoYXJ0IC5wYy1jYXAge1xuICBzdHJva2U6ICNmNDc0MjQ7XG4gIHN0cm9rZS13aWR0aDogMS41O1xuICBzdHJva2UtZGFzaGFycmF5OiA1IDQ7XG59XG4ucGVhay1jaGFydCAucGMtcGVhayB7XG4gIHN0cm9rZTogcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjcpO1xuICBzdHJva2Utd2lkdGg6IDEuNTtcbiAgc3Ryb2tlLWRhc2hhcnJheTogNSA0O1xufVxuLnBlYWstY2hhcnQgLnBjLW1lYXN1cmUge1xuICBvcGFjaXR5OiAwO1xufVxuLnBlYWstY2hhcnQgLnBjLWJyYWNrZXQge1xuICBzdHJva2U6ICNmNDc0MjQ7XG4gIHN0cm9rZS13aWR0aDogMS41O1xuICBmaWxsOiBub25lO1xufVxuLnBlYWstY2hhcnQgLnBjLWxhYmVsIHtcbiAgZmlsbDogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucGVhay1jaGFydCAucGMtbGFiZWwtLW11dGVkIHtcbiAgZmlsbDogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5wZWFrLWNoYXJ0IC5wYy1sYWJlbC0tYWNjZW50IHtcbiAgZmlsbDogI2Y0NzQyNDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnBlYWstY2hhcnQuaW4tdmlldyAucGMtYXJlYSB7XG4gIGFuaW1hdGlvbjogcGNGYWRlIDAuN3MgZWFzZS1vdXQgMC4xcyBmb3J3YXJkcztcbn1cbi5wZWFrLWNoYXJ0LmluLXZpZXcgLnBjLWxpbmUge1xuICBhbmltYXRpb246IHBjRHJhdyAxLjVzIGVhc2Utb3V0IDAuNHMgZm9yd2FyZHM7XG59XG4ucGVhay1jaGFydC5pbi12aWV3IC5wYy1zYXZlZCB7XG4gIGFuaW1hdGlvbjogcGNGYWRlIDAuN3MgZWFzZS1vdXQgMS41cyBmb3J3YXJkcztcbn1cbi5wZWFrLWNoYXJ0LmluLXZpZXcgLnBjLW1lYXN1cmUge1xuICBhbmltYXRpb246IHBjRmFkZSAwLjdzIGVhc2Utb3V0IDJzIGZvcndhcmRzO1xufVxuXG4ucGVhay1jaGFydC0tb24tZGFyayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICBib3gtc2hhZG93OiAwIDI0cHggNjBweCByZ2JhKDAsIDAsIDAsIDAuMzIpLCAwIDhweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4yMik7XG59XG4ucGVhay1jaGFydC0tb24tZGFyayAucGMtYXhpcyB7XG4gIHN0cm9rZTogcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cbi5wZWFrLWNoYXJ0LS1vbi1kYXJrIC5wYy1ncmlkIHtcbiAgc3Ryb2tlOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIG9wYWNpdHk6IDE7XG59XG4ucGVhay1jaGFydC0tb24tZGFyayAucGMtYXJlYSB7XG4gIGZpbGw6IHJnYmEoOTAsIDkwLCA5MCwgMC4xNSk7XG4gIHN0cm9rZTogcmdiYSg5MCwgOTAsIDkwLCAwLjUpO1xufVxuLnBlYWstY2hhcnQtLW9uLWRhcmsgLnBjLXBlYWsge1xuICBzdHJva2U6IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG59XG4ucGVhay1jaGFydC0tb24tZGFyayAucGMtbGFiZWwge1xuICBmaWxsOiAjMWExYTFhO1xufVxuLnBlYWstY2hhcnQtLW9uLWRhcmsgLnBjLWxhYmVsLS1tdXRlZCB7XG4gIGZpbGw6ICM1NTU1NTU7XG4gIG9wYWNpdHk6IDE7XG59XG5cbkBrZXlmcmFtZXMgcGNEcmF3IHtcbiAgdG8ge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHBjRmFkZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi5wcm9kdWN0LXZpZXdlci1zdGFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAzMjBweDtcbiAgcGFkZGluZzogMS43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG59XG4ucHJvZHVjdC12aWV3ZXItc3RhZ2UgaW1nIHtcbiAgbWF4LWhlaWdodDogMzQwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4ucHJvZHVjdC12aWV3ZXItc3RhZ2UgaW1nLmlzLXN3YXBwaW5nIHtcbiAgYW5pbWF0aW9uOiBwY0ZhZGUgMC4zcyBlYXNlLW91dDtcbn1cblxuLnByb2R1Y3Qtdmlld2VyLXRodW1icyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjZyZW07XG4gIG1hcmdpbi10b3A6IDAuOXJlbTtcbn1cblxuLnByb2R1Y3Qtdmlld2VyLXRodW1iIHtcbiAgZmxleDogMSAxIDA7XG4gIG1pbi13aWR0aDogNjJweDtcbiAgbWF4LXdpZHRoOiAxMDBweDtcbiAgcGFkZGluZzogMC40cmVtIDAuNHJlbSAwLjNyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7XG59XG4ucHJvZHVjdC12aWV3ZXItdGh1bWIgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucHJvZHVjdC12aWV3ZXItdGh1bWIgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwLjNyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC42NTtcbn1cbi5wcm9kdWN0LXZpZXdlci10aHVtYjpob3ZlciwgLnByb2R1Y3Qtdmlld2VyLXRodW1iOmZvY3VzLXZpc2libGUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJvcmRlci1jb2xvcjogI2ZmYjA2NjtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5wcm9kdWN0LXZpZXdlci10aHVtYi5pcy1hY3RpdmUge1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjZjQ3NDI0O1xufVxuLnByb2R1Y3Qtdmlld2VyLXRodW1iLmlzLWFjdGl2ZSBzcGFuIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogU2NvcGVkIHJhZGlvIGJ1dHRvbiBzdHlsZXMgLSBleGNsdWRlcyB1dGlsaXR5IGNhcmRzLCBlcXVpcG1lbnQgY2FyZHMsIGFuZCBHcmFwZUpTIGVkaXRvciAqL1xuaW5wdXRbdHlwZT1yYWRpb106bm90KC51dGlsaXR5LXJhZGlvKTpub3QoLmVxdWlwbWVudC1yYWRpbykge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5pbnB1dFt0eXBlPXJhZGlvXTpub3QoLnV0aWxpdHktcmFkaW8pOm5vdCguZXF1aXBtZW50LXJhZGlvKSArIGxhYmVsOm5vdCgudXRpbGl0eS1sYWJlbCk6bm90KC5lcXVpcG1lbnQtbGFiZWwpIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEycHggMjRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiAjMmQzNzQ4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjAyKSwgMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wMik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuaW5wdXRbdHlwZT1yYWRpb106bm90KC51dGlsaXR5LXJhZGlvKTpub3QoLmVxdWlwbWVudC1yYWRpbykgKyBsYWJlbDpub3QoLnV0aWxpdHktbGFiZWwpOm5vdCguZXF1aXBtZW50LWxhYmVsKTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjIpLCByZ2JhKDI0NCwgMTE2LCAzNiwgMCkpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZTtcbn1cblxuaW5wdXRbdHlwZT1yYWRpb106bm90KC51dGlsaXR5LXJhZGlvKTpub3QoLmVxdWlwbWVudC1yYWRpbykgKyBsYWJlbDpub3QoLnV0aWxpdHktbGFiZWwpOm5vdCguZXF1aXBtZW50LWxhYmVsKTpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0NCwgMTE2LCAzNiwgMC40KTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xKSwgMCA4cHggMjRweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xKTtcbn1cblxuaW5wdXRbdHlwZT1yYWRpb106bm90KC51dGlsaXR5LXJhZGlvKTpub3QoLmVxdWlwbWVudC1yYWRpbykgKyBsYWJlbDpub3QoLnV0aWxpdHktbGFiZWwpOm5vdCguZXF1aXBtZW50LWxhYmVsKTpob3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuaW5wdXRbdHlwZT1yYWRpb106bm90KC51dGlsaXR5LXJhZGlvKTpub3QoLmVxdWlwbWVudC1yYWRpbyk6Y2hlY2tlZCArIGxhYmVsOm5vdCgudXRpbGl0eS1sYWJlbCk6bm90KC5lcXVpcG1lbnQtbGFiZWwpIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y0NzQyNCwgI2ZmOTM1Zik7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4yKSwgMCA4cHggMjRweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xNSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuaW5wdXRbdHlwZT1yYWRpb106bm90KC51dGlsaXR5LXJhZGlvKTpub3QoLmVxdWlwbWVudC1yYWRpbyk6Y2hlY2tlZCArIGxhYmVsOm5vdCgudXRpbGl0eS1sYWJlbCk6bm90KC5lcXVpcG1lbnQtbGFiZWwpOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwO1xufVxuXG4vKiBOZXV0cmFsaXplIHBpbGwgbGFiZWwgc3R5bGluZyBpbnNpZGUgR3JhcGVKUyDigJQgbGV0IF9ncmFwZXNqc19lZGl0b3Iuc2NzcyBoYW5kbGUgaXQgKi9cbi5ncmFwZXNqcy1lZGl0b3Itd3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXSArIGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBiYWNrZHJvcC1maWx0ZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmdyYXBlc2pzLWVkaXRvci13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dICsgbGFiZWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmdyYXBlc2pzLWVkaXRvci13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyBsYWJlbCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBUYWJiZWQgTmF2aWdhdGlvbiBTdHlsZXMgKi9cbi50YWJzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGdhcDogOHB4O1xufVxuXG4vKiBDdXN0b20gdGFiIHN0eWxpbmcgKi9cbi5jdXN0b20tdGFiIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGI3MjMwO1xufVxuXG4uY3VzdG9tLXRhYjpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci10b3AtY29sb3I6ICNkYjcyMzA7XG59XG5cbi5jdXN0b20tdGFiLmFjdGl2ZSB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmNDc0MjQ7XG59XG5cbi8qIFdyYXBwZXIgZm9yIHRhYiBuYXZpZ2F0aW9uICovXG4udGFicy1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGdhcDogMTBweDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG5cbi8qIFRhYiBjb250ZW50IGNvbnRhaW5lciAqL1xuLnRhYnMtY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi50YWItcGFuZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xufVxuXG4udGFiLXBhbmUuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDE7XG4gIGFuaW1hdGlvbjogZmFkZUluIDAuM3MgZWFzZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuOnJvb3Qge1xuICAtLXNpZGViYXItd2lkdGg6IDV2dztcbiAgLyogRGVmaW5lIHZhcmlhYmxlIGZvciBzaWRlYmFyIHdpZHRoICovXG4gIC0tdG9vbGJhci1oZWlnaHQ6IDUwcHg7XG59XG5cbiNjYW52YXMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgei1pbmRleDogYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuY2FudmFzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgLyogRGVmYXVsdCBjdXJzb3IgKi9cbn1cblxuY2FudmFzLmRyYXdpbmcge1xuICBjdXJzb3I6IGNyb3NzaGFpcjtcbiAgLyogQ3Vyc29yIGZvciBkcmF3aW5nIG1vZGUgKi9cbn1cblxuY2FudmFzLmNhbi1jbG9zZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogQ3Vyc29yIHdoZW4gY2FuIGNsb3NlIHBvbHlnb24gKi9cbn1cblxuLyogQ3VzdG9tIHBlbiBjdXJzb3IgZm9yIGRyYXdpbmcgbW9kZSAqL1xuLnBlbi1jdXJzb3Ige1xuICBjdXJzb3I6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPjxwYXRoIGQ9XCJNMTkgOWEyLjgyOCAyLjgyOCAwIDEgMSA0IDRMMTAuNSAyNCA3IDI1bDEuNS01TDE5IDl6XCIgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiYmxhY2tcIiBzdHJva2Utd2lkdGg9XCIxXCIvPjxsaW5lIHgxPVwiMTcuNVwiIHkxPVwiMTEuNVwiIHgyPVwiMjAuNVwiIHkyPVwiMTQuNVwiIHN0cm9rZT1cImJsYWNrXCIgc3Ryb2tlLXdpZHRoPVwiMC44XCIvPjxjaXJjbGUgY3g9XCI0XCIgY3k9XCIyOFwiIHI9XCIyLjVcIiBmaWxsPVwid2hpdGVcIiBzdHJva2U9XCIlMjMzMzNcIiBzdHJva2Utd2lkdGg9XCIxLjJcIi8+PC9zdmc+JykgNCAyOCwgY3Jvc3NoYWlyO1xufVxuXG4vKiBDdXN0b20gU3RyaW5naW5nIGN1cnNvciAtIGVsZWN0cmljYWwgcGx1ZyBpY29uIHdpdGggcG9pbnRlciAqL1xuLnN0cmluZ2luZy1jdXJzb3Ige1xuICBjdXJzb3I6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPiAgICAgICAgICAgIDxyZWN0IHg9XCIxMFwiIHk9XCIyXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjhcIiByeD1cIjJcIiBmaWxsPVwid2hpdGVcIiBzdHJva2U9XCIlMjMzMzNcIiBzdHJva2Utd2lkdGg9XCIxLjJcIi8+ICAgICAgICAgICAgPGxpbmUgeDE9XCIxNFwiIHkxPVwiMTBcIiB4Mj1cIjE0XCIgeTI9XCIxNVwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIvPiAgICAgICAgICAgIDxsaW5lIHgxPVwiMThcIiB5MT1cIjEwXCIgeDI9XCIxOFwiIHkyPVwiMTVcIiBzdHJva2U9XCIlMjMzMzNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiLz4gICAgICAgICAgICA8bGluZSB4MT1cIjE2XCIgeTE9XCIyXCIgeDI9XCIxNlwiIHkyPVwiLTFcIiBzdHJva2U9XCIlMjMzMzNcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIvPiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI0XCIgY3k9XCIyOFwiIHI9XCIyLjVcIiBmaWxsPVwid2hpdGVcIiBzdHJva2U9XCIlMjMzMzNcIiBzdHJva2Utd2lkdGg9XCIxLjJcIi8+ICAgICAgICAgICAgPC9zdmc+JykgNCAyOCwgY3Jvc3NoYWlyO1xufVxuXG4vKiBUcmVlIGN1cnNvcnMg4oCUIG9uZSBwZXIgdHJlZSB0eXBlICovXG4udHJlZS1jb25pZmVyLWN1cnNvciB7XG4gIGN1cnNvcjogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+ICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjVcIiB5PVwiMTlcIiB3aWR0aD1cIjNcIiBoZWlnaHQ9XCI0XCIgcng9XCIwLjVcIiBmaWxsPVwiJTIzOEI2OTE0XCIgc3Ryb2tlPVwiJTIzNTU0MDEwXCIgc3Ryb2tlLXdpZHRoPVwiMC41XCIvPiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgMSBMMyAxOSBIMjEgWlwiIGZpbGw9XCIlMjM0Y2FmNTBcIiBmaWxsLW9wYWNpdHk9XCIwLjg1XCIgc3Ryb2tlPVwiJTIzMmU3ZDMyXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPiAgICAgICAgICAgIDwvc3ZnPicpIDEyIDEyLCBjcm9zc2hhaXI7XG59XG5cbi50cmVlLWRlY2lkdW91cy1jdXJzb3Ige1xuICBjdXJzb3I6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPiAgICAgICAgICAgIDxyZWN0IHg9XCIxMC41XCIgeT1cIjE3XCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiNVwiIHJ4PVwiMC41XCIgZmlsbD1cIiUyMzhCNjkxNFwiIHN0cm9rZT1cIiUyMzU1NDAxMFwiIHN0cm9rZS13aWR0aD1cIjAuNVwiLz4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEwXCIgcj1cIjhcIiBmaWxsPVwiJTIzNjZiYjZhXCIgZmlsbC1vcGFjaXR5PVwiMC44NVwiIHN0cm9rZT1cIiUyMzJlN2QzMlwiIHN0cm9rZS13aWR0aD1cIjFcIi8+ICAgICAgICAgICAgPC9zdmc+JykgMTIgMTIsIGNyb3NzaGFpcjtcbn1cblxuLnRyZWUtY29sdW1uYXItY3Vyc29yIHtcbiAgY3Vyc29yOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj4gICAgICAgICAgICA8cmVjdCB4PVwiMTAuNVwiIHk9XCIyMFwiIHdpZHRoPVwiM1wiIGhlaWdodD1cIjNcIiByeD1cIjAuNVwiIGZpbGw9XCIlMjM4QjY5MTRcIiBzdHJva2U9XCIlMjM1NTQwMTBcIiBzdHJva2Utd2lkdGg9XCIwLjVcIi8+ICAgICAgICAgICAgPGVsbGlwc2UgY3g9XCIxMlwiIGN5PVwiMTFcIiByeD1cIjVcIiByeT1cIjEwXCIgZmlsbD1cIiUyMzQzYTA0N1wiIGZpbGwtb3BhY2l0eT1cIjAuODVcIiBzdHJva2U9XCIlMjMyZTdkMzJcIiBzdHJva2Utd2lkdGg9XCIxXCIvPiAgICAgICAgICAgIDwvc3ZnPicpIDEyIDEyLCBjcm9zc2hhaXI7XG59XG5cbi50cmVlLXZvbHVtZS1jdXJzb3Ige1xuICBjdXJzb3I6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPiAgICAgICAgICAgIDxyZWN0IHg9XCIxMC41XCIgeT1cIjE3XCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiNVwiIHJ4PVwiMC41XCIgZmlsbD1cIiUyMzhCNjkxNFwiIHN0cm9rZT1cIiUyMzU1NDAxMFwiIHN0cm9rZS13aWR0aD1cIjAuNVwiLz4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiMTJcIiByPVwiNVwiIGZpbGw9XCIlMjM1YjhhNGFcIiBmaWxsLW9wYWNpdHk9XCIwLjg1XCIgc3Ryb2tlPVwiJTIzMmU3ZDMyXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTZcIiBjeT1cIjExXCIgcj1cIjQuNVwiIGZpbGw9XCIlMjM1YjhhNGFcIiBmaWxsLW9wYWNpdHk9XCIwLjg1XCIgc3Ryb2tlPVwiJTIzMmU3ZDMyXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjdcIiByPVwiNVwiIGZpbGw9XCIlMjM1YjhhNGFcIiBmaWxsLW9wYWNpdHk9XCIwLjg1XCIgc3Ryb2tlPVwiJTIzMmU3ZDMyXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz4gICAgICAgICAgICA8L3N2Zz4nKSAxMiAxMiwgY3Jvc3NoYWlyO1xufVxuXG4vKiBTY3VscHQgbW9kZSBjdXJzb3IgLSBwYWludGJydXNoIHdpdGggZ3JlZW4gYnJpc3RsZXMsIHRpcCBpcyB0aGUgaG90c3BvdCAqL1xuLnNjdWxwdC1jdXJzb3Ige1xuICBjdXJzb3I6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkuNSAxLjUgTDIyLjUgNC41IEwxMiAxNSBMOSAxMiBaXCIgZmlsbD1cIiUyM2ExODg3ZlwiIHN0cm9rZT1cIiUyMzVkNDAzN1wiIHN0cm9rZS13aWR0aD1cIjAuOFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPiAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSAxMiBMMTIgMTUgTDkuNSAxNy41IEw2LjUgMTQuNSBaXCIgZmlsbD1cIiUyM2IwYmVjNVwiIHN0cm9rZT1cIiUyMzU0NmU3YVwiIHN0cm9rZS13aWR0aD1cIjAuOFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPiAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi41IDE0LjUgTDkuNSAxNy41IEM3LjUgMjEgNC41IDIyLjUgMS41IDIyLjUgQzIuNSAxOS41IDMuNSAxNy41IDYuNSAxNC41IFpcIiBmaWxsPVwiJTIzNWI4YTRhXCIgc3Ryb2tlPVwiJTIzMmU3ZDMyXCIgc3Ryb2tlLXdpZHRoPVwiMC44XCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+ICAgICAgICAgICAgPC9zdmc+JykgMiAyMiwgY3Jvc3NoYWlyO1xufVxuXG4vKiBDdXN0b20gV2FsbCBjdXJzb3IgLSBzaW1wbGUgYnJpY2sgd2FsbCB3aXRoIHBvaW50ZXIgKi9cbi53YWxsLWN1cnNvciB7XG4gIGN1cnNvcjogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+ICAgICAgICAgICAgPHJlY3QgeD1cIjdcIiB5PVwiNFwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjEuMlwiIHJ4PVwiMVwiLz4gICAgICAgICAgICA8bGluZSB4MT1cIjdcIiB5MT1cIjEwXCIgeDI9XCIyNVwiIHkyPVwiMTBcIiBzdHJva2U9XCIlMjMzMzNcIiBzdHJva2Utd2lkdGg9XCIxXCIvPiAgICAgICAgICAgIDxsaW5lIHgxPVwiN1wiIHkxPVwiMTZcIiB4Mj1cIjI1XCIgeTI9XCIxNlwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjFcIi8+ICAgICAgICAgICAgPGxpbmUgeDE9XCIxNlwiIHkxPVwiNFwiIHgyPVwiMTZcIiB5Mj1cIjEwXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz4gICAgICAgICAgICA8bGluZSB4MT1cIjExXCIgeTE9XCIxMFwiIHgyPVwiMTFcIiB5Mj1cIjE2XCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz4gICAgICAgICAgICA8bGluZSB4MT1cIjIxXCIgeTE9XCIxMFwiIHgyPVwiMjFcIiB5Mj1cIjE2XCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz4gICAgICAgICAgICA8bGluZSB4MT1cIjE2XCIgeTE9XCIxNlwiIHgyPVwiMTZcIiB5Mj1cIjIyXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNFwiIGN5PVwiMjhcIiByPVwiMi41XCIgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIvPiAgICAgICAgICAgIDwvc3ZnPicpIDQgMjgsIGNyb3NzaGFpcjtcbn1cblxuLyogQ3VzdG9tIGFubm90YXRpb24gY3Vyc29yIGZvciBhbm5vdGF0aW9uIG1vZGUgKi9cbi5hbm5vdGF0aW9uLWN1cnNvciB7XG4gIGN1cnNvcjogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cImJsYWNrXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+ICAgICAgICAgICAgPCEtLSBMYXJnZXIgY29tbWVudCBidWJibGUgLS0+ICAgICAgICAgICAgPHBhdGggZD1cIk0yOCAyMGEzIDMgMCAwIDEtMyAzSDEwbC02IDZWN2EzIDMgMCAwIDEgMy0zaDE4YTMgMyAwIDAgMSAzIDN6XCIvPiAgICAgICAgICAgIDwhLS0gTGFyZ2VyIGNpcmNsZSBpbnNpZGUgYnViYmxlIC0tPiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNlwiIGN5PVwiMTRcIiByPVwiNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiYmxhY2tcIiBzdHJva2Utd2lkdGg9XCIxXCIvPiAgICAgICAgICAgIDwvc3ZnPicpIDE2IDI4LCB0ZXh0O1xufVxuXG4vKiBTcXVhcmUgYW5ub3RhdGlvbiBjdXJzb3IgLSBtYXRjaGVzIGFubm90YXRpb24gY3Vyc29yIHN0eWxlICovXG4uYW5ub3RhdGlvbi1zcXVhcmUtY3Vyc29yIHtcbiAgY3Vyc29yOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiYmxhY2tcIiBzdHJva2Utd2lkdGg9XCIxXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj4gICAgICAgICAgICA8IS0tIExhcmdlciBjb21tZW50IGJ1YmJsZSAtLT4gICAgICAgICAgICA8cGF0aCBkPVwiTTI4IDIwYTMgMyAwIDAgMS0zIDNIMTBsLTYgNlY3YTMgMyAwIDAgMSAzLTNoMThhMyAzIDAgMCAxIDMgM3pcIi8+ICAgICAgICAgICAgPCEtLSBMYXJnZXIgc3F1YXJlIGluc2lkZSBidWJibGUgLS0+ICAgICAgICAgICAgPHJlY3QgeD1cIjEyXCIgeT1cIjEwXCIgd2lkdGg9XCI4XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiYmxhY2tcIiBzdHJva2Utd2lkdGg9XCIxXCIvPiAgICAgICAgICAgIDwvc3ZnPicpIDE2IDI4LCB0ZXh0O1xufVxuXG4vKiBUcmlhbmdsZSBhbm5vdGF0aW9uIGN1cnNvciAtIG1hdGNoZXMgYW5ub3RhdGlvbiBjdXJzb3Igc3R5bGUgKi9cbi5hbm5vdGF0aW9uLXRyaWFuZ2xlLWN1cnNvciB7XG4gIGN1cnNvcjogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cImJsYWNrXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+ICAgICAgICAgICAgPCEtLSBMYXJnZXIgY29tbWVudCBidWJibGUgLS0+ICAgICAgICAgICAgPHBhdGggZD1cIk0yOCAyMGEzIDMgMCAwIDEtMyAzSDEwbC02IDZWN2EzIDMgMCAwIDEgMy0zaDE4YTMgMyAwIDAgMSAzIDN6XCIvPiAgICAgICAgICAgIDwhLS0gTGFyZ2VyIHRyaWFuZ2xlIGluc2lkZSBidWJibGUgLS0+ICAgICAgICAgICAgPHBhdGggZD1cIk0xNiAxMCBMMTIgMTggTDIwIDE4IFpcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImJsYWNrXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz4gICAgICAgICAgICA8L3N2Zz4nKSAxNiAyOCwgdGV4dDtcbn1cblxuLyogQ3VzdG9tIFJlY3RhbmdsZSBjdXJzb3IgLSBpc29tZXRyaWMgZmxhdCBib3ggd2l0aCBwb2ludGVyICovXG4ucmVjdGFuZ2xlLWN1cnNvciB7XG4gIGN1cnNvcjogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+PHBhdGggZD1cIk0xOCAxNSBMMTggMjIgTDI2IDE4IEwyNiAxMSBaXCIgZmlsbD1cIiUyM2JiYlwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjFcIi8+PHBhdGggZD1cIk04IDIyIEwxOCAyMiBMMTggMTUgTDggMTUgWlwiIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjFcIi8+PHBhdGggZD1cIk04IDE1IEwxOCAxNSBMMjYgMTEgTDE2IDExIFpcIiBmaWxsPVwiJTIzZGRkXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48Y2lyY2xlIGN4PVwiNFwiIGN5PVwiMjhcIiByPVwiMi41XCIgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIvPjwvc3ZnPicpIDQgMjgsIGNyb3NzaGFpcjtcbn1cblxuLyogQ3VzdG9tIGRvcm1lciBjdXJzb3IgLSBpc29tZXRyaWMgZ2FibGUgZG9ybWVyLCByaWdodCBzaWRlIGFuZ2xlZCB1cCAob24gYSBzbG9wZSkgKi9cbi5kb3JtZXItY3Vyc29yIHtcbiAgY3Vyc29yOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj48cGF0aCBkPVwiTTE4IDE1IEwxOCAyMiBMMjYgMTEgWlwiIGZpbGw9XCIlMjNjY2NcIiBzdHJva2U9XCIlMjMzMzNcIiBzdHJva2Utd2lkdGg9XCIxXCIvPjxwYXRoIGQ9XCJNOCAyMiBMMTggMjIgTDE4IDE1IEwxMyAxMCBMOCAxNSBaXCIgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48cGF0aCBkPVwiTTggMTUgTDEzIDEwIEwyMSA2IEwxNiAxMSBaXCIgZmlsbD1cIiUyM2RkZFwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjFcIi8+PHBhdGggZD1cIk0xOCAxNSBMMTMgMTAgTDIxIDYgTDI2IDExIFpcIiBmaWxsPVwiJTIzYWFhXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48Y2lyY2xlIGN4PVwiNFwiIGN5PVwiMjhcIiByPVwiMi41XCIgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIvPjwvc3ZnPicpIDQgMjgsIGNyb3NzaGFpcjtcbn1cblxuLyogQ3VzdG9tIEhpcCBEb3JtZXIgY3Vyc29yIC0gaGlwIGRvcm1lciwgcmlnaHQgc2lkZSBhbmdsZWQgdXAgKG9uIGEgc2xvcGUpICovXG4uaGlwZG9ybWVyLWN1cnNvciB7XG4gIGN1cnNvcjogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+PHBhdGggZD1cIk0xNiAxNSBMMTYgMjIgTDI2IDExIFpcIiBmaWxsPVwiJTIzY2NjXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48cGF0aCBkPVwiTTggMjIgTDE2IDIyIEwxNiAxNSBMOCAxNSBaXCIgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48cGF0aCBkPVwiTTggMTUgTDE2IDE1IEwxMyA4IFpcIiBmaWxsPVwiJTIzZWVlXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48cGF0aCBkPVwiTTE2IDE1IEwyNiAxMSBMMjAgNSBMMTMgOCBaXCIgZmlsbD1cIiUyM2FhYVwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjFcIi8+PGNpcmNsZSBjeD1cIjRcIiBjeT1cIjI4XCIgcj1cIjIuNVwiIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjEuMlwiLz48L3N2Zz4nKSA0IDI4LCBjcm9zc2hhaXI7XG59XG5cbi8qIEN1c3RvbSBBLUZyYW1lIGN1cnNvciAtIGlzb21ldHJpYyBBLWZyYW1lIHdpdGggcG9pbnRlciAqL1xuLmFmcmFtZS1jdXJzb3Ige1xuICBjdXJzb3I6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPjxwYXRoIGQ9XCJNMTggMjIgTDI2IDE4IEwyMSA0IEwxMyA4IFpcIiBmaWxsPVwiJTIzOTk5XCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48cGF0aCBkPVwiTTggMjIgTDE4IDIyIEwxMyA4IFpcIiBmaWxsPVwid2hpdGVcIiBzdHJva2U9XCIlMjMzMzNcIiBzdHJva2Utd2lkdGg9XCIxXCIvPjxjaXJjbGUgY3g9XCI0XCIgY3k9XCIyOFwiIHI9XCIyLjVcIiBmaWxsPVwid2hpdGVcIiBzdHJva2U9XCIlMjMzMzNcIiBzdHJva2Utd2lkdGg9XCIxLjJcIi8+PC9zdmc+JykgNCAyOCwgY3Jvc3NoYWlyO1xufVxuXG4vKiBDdXN0b20gSGlwIFJvb2YgY3Vyc29yIC0gaXNvbWV0cmljIGhpcCByb29mIHdpdGggcG9pbnRlciAqL1xuLmhpcHJvb2YtY3Vyc29yIHtcbiAgY3Vyc29yOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj48cGF0aCBkPVwiTTE4IDE1IEwxOCAyMiBMMjYgMTggTDI2IDExIFpcIiBmaWxsPVwiJTIzY2NjXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48cGF0aCBkPVwiTTggMjIgTDE4IDIyIEwxOCAxNSBMOCAxNSBaXCIgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48cGF0aCBkPVwiTTggMTUgTDE2IDExIEwyMiA1IEwxMiA5IFpcIiBmaWxsPVwiJTIzZGRkXCIgc3Ryb2tlPVwiJTIzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48cGF0aCBkPVwiTTE4IDE1IEwyNiAxMSBMMjIgNSBMMTIgOSBaXCIgZmlsbD1cIiUyM2FhYVwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjFcIi8+PHBhdGggZD1cIk04IDE1IEwxOCAxNSBMMTIgOSBaXCIgZmlsbD1cIiUyM2VlZVwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjFcIi8+PGNpcmNsZSBjeD1cIjRcIiBjeT1cIjI4XCIgcj1cIjIuNVwiIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjEuMlwiLz48L3N2Zz4nKSA0IDI4LCBjcm9zc2hhaXI7XG59XG5cbi8qIEN1c3RvbSBTbWFydCBEcmF3IGN1cnNvciAtIHBlbiB3aXRoIGJsdWUgaG90IHNwb3QgKi9cbi5zbWFydHJvb2YtY3Vyc29yIHtcbiAgY3Vyc29yOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj48cGF0aCBkPVwiTTE5IDlhMi44MjggMi44MjggMCAxIDEgNCA0TDEwLjUgMjQgNyAyNWwxLjUtNUwxOSA5elwiIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cImJsYWNrXCIgc3Ryb2tlLXdpZHRoPVwiMVwiLz48bGluZSB4MT1cIjE3LjVcIiB5MT1cIjExLjVcIiB4Mj1cIjIwLjVcIiB5Mj1cIjE0LjVcIiBzdHJva2U9XCJibGFja1wiIHN0cm9rZS13aWR0aD1cIjAuOFwiLz48Y2lyY2xlIGN4PVwiNFwiIGN5PVwiMjhcIiByPVwiMi41XCIgZmlsbD1cIiUyMzRBOTBEOVwiIHN0cm9rZT1cIiUyMzMzM1wiIHN0cm9rZS13aWR0aD1cIjEuMlwiLz48L3N2Zz4nKSA0IDI4LCBjcm9zc2hhaXI7XG59XG5cbiN0b29sYmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IHZhcigtLXRvb2xiYXItaGVpZ2h0KTtcbiAgcGFkZGluZzogMTBweCAxNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHotaW5kZXg6IDEwMDE7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xufVxuXG4udG9vbGJhci1sZWZ0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udG9vbGJhci1yaWdodCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1uYXYtdGV4dCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXR5cGUpO1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtaW4td2lkdGg6IGF1dG87XG4gIGhlaWdodDogMzRweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycywgY29sb3IgMC4ycztcbn1cblxuLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbi5idXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24taG92ZXIpO1xufVxuXG4vKiBBcHBseS10by1hbGwgc3RyaXAg4oCUIGJ1aWx0IGJ5IHRoZSBidW5kbGUsIHNsaWRlcyBpbiB1bmRlciBhIGRyb3Bkb3duXG4gICBhZnRlciBhIGNoYW5nZSB0byBvZmZlciBhcHBseWluZyBpdCB0byBhbGwgcG9seWdvbnMuICovXG4uYXBwbHktYWxsLXN0cmlwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgcGFkZGluZzogNXB4IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24taG92ZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzLCA3cHgpO1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGFuaW1hdGlvbjogYXBwbHktYWxsLXNsaWRlLWluIDAuMThzIGVhc2Utb3V0O1xufVxuXG4uYXBwbHktYWxsLXN0cmlwLnZpc2libGUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uYXBwbHktYWxsLXN0cmlwLWJ0biB7XG4gIGZsZXg6IDE7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1idXR0b24tcmFkaXVzLCA3cHgpIC0gMnB4KTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5hcHBseS1hbGwtc3RyaXAtYnRuOmhvdmVyIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMTUpO1xufVxuXG4uYXBwbHktYWxsLXN0cmlwLWJ0bjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY3Vyc29yOiB3YWl0O1xufVxuXG4uYXBwbHktYWxsLXN0cmlwLW1zZyB7XG4gIGZsZXg6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmFwcGx5LWFsbC1zdHJpcC1tc2c6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYXBwbHktYWxsLXN0cmlwLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMCAzcHg7XG59XG5cbi5hcHBseS1hbGwtc3RyaXAtY2xvc2U6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuXG5Aa2V5ZnJhbWVzIGFwcGx5LWFsbC1zbGlkZS1pbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuLyogV2FsbCBmZWF0dXJlIHBhbGV0dGUg4oCUIGNhcmRzIGFyZSBidWlsdCBieSB0aGUgYnVuZGxlIGZyb20gaXRzIGl0ZW1cbiAgIHJlZ2lzdHJ5OyB0aGUgaG9zdCBvbmx5IHByb3ZpZGVzIHRoZSBlbXB0eSAjd2FsbC1mZWF0dXJlLXBhbGV0dGUgZGl2LiAqL1xuLndhbGwtZmVhdHVyZS1wYWxldHRlIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgZ2FwOiA2cHg7XG59XG5cbi53YWxsLWZlYXR1cmUtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiA2cHggNHB4IDVweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cywgN3B4KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ud2FsbC1mZWF0dXJlLWNhcmQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG59XG5cbi53YWxsLWZlYXR1cmUtY2FyZC5hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1idXR0b24taG92ZXIpO1xufVxuXG4ud2FsbC1mZWF0dXJlLWNhcmQtdGh1bWIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0NHB4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLndhbGwtZmVhdHVyZS1jYXJkLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMS4xO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uYnV0dG9uIGkge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi8qIERlc2lnbi10b29sIG9mZmNhbnZhc2VzICh0aGUgY3VzdG9tIGAub2ZmY2FudmFzLmxpZ2h0Y2FyZGAgcGFuZWxzIOKAlFxuICAgc3VyZmFjZSBpbnNwZWN0b3IsIHRyZWUgY29udHJvbHMg4oCUIHRoYXQgaGF2ZSBubyBCb290c3RyYXAgZGlyZWN0aW9uXG4gICBjbGFzcykuIFNjb3BlZCB0byAjY2FudmFzLWNvbnRhaW5lciBzbyB0aGlzIGZpdC1jb250ZW50L3NsaWRlLWluXG4gICBiZWhhdmlvdXIgbmV2ZXIgbGVha3MgdG8gYXBwLXdpZGUgb2ZmY2FudmFzZXMgKGluYm94LCBtb2JpbGUgbWVudSxcbiAgIHByb2R1Y3QgcGlja2VycywgZXRjLiksIHdoaWNoIHN0YXkgZnVsbCBoZWlnaHQgdmlhIEJvb3RzdHJhcC9NREIuICovXG4jY2FudmFzLWNvbnRhaW5lciAub2ZmY2FudmFzIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHJpZ2h0OiAtNDAwcHg7XG4gIHdpZHRoOiA0MDBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4IDAgMCA1cHg7XG4gIC8qIEZpdCBjb250ZW50OyBzY3JvbGwgb25seSBpZiB0aGUgcGFuZWwgZ2VudWluZWx5IG91dGdyb3dzIHRoZSB2aWV3cG9ydC5cbiAgICAgTmV2ZXIgcGluIHRvIGZ1bGwgaGVpZ2h0IOKAlCB0aGF0IGxlYXZlcyBlbXB0eSBzcGFjZSBiZWxvdyBzaG9ydCBjb250ZW50LlxuICAgICBNREIncyBiYXNlIC5vZmZjYW52YXMgKGxvYWRlZCBhZnRlciBhcHBsaWNhdGlvbi5jc3MpIHNldHMgYm90dG9tOjAgYXQgZXF1YWxcbiAgICAgc3BlY2lmaWNpdHksIHdoaWNoIHdvdWxkIHJlLXN0cmV0Y2ggdGhlIHBhbmVsIHRvcOKGkmJvdHRvbSBhbmQgZGVmZWF0XG4gICAgIGhlaWdodDphdXRvLCBzbyByZWxlYXNlIHRoZSBib3R0b20gYW5jaG9yIHdpdGggIWltcG9ydGFudC4gKi9cbiAgaGVpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDI4cHgpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIHRyYW5zaXRpb246IHJpZ2h0IDAuM3MgZWFzZTtcbiAgei1pbmRleDogOTk5O1xuICBib3gtc2hhZG93OiAtMnB4IDAgNXB4IHZhcigtLWJveHNoYWRvdyk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuI2NhbnZhcy1jb250YWluZXIgLm9mZmNhbnZhcyB7XG4gIHRvcDogdmFyKC0tdG9vbGJhci1oZWlnaHQpO1xuICBib3R0b206IGF1dG87XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS10b29sYmFyLWhlaWdodCkgLSAxNHB4KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuI2NhbnZhcy1jb250YWluZXIgLm9mZmNhbnZhcy5zaG93IHtcbiAgcmlnaHQ6IDA7XG59XG5cbi8qIOKUgOKUgCBQb2x5Z29uIGluc3BlY3RvciDigJQgcmVmaW5lZCB0byBtYXRjaCB0aGUgRGVzaWduIEFzc2lzdGFudCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIEEgZmxvYXRpbmcsIHJvdW5kZWQsIHRoZW1lZCBjYXJkIHdpdGggYSBzdGlja3kgaGVhZGVyLCBhbiBhY2NlbnQgdGl0bGVcbiAgIGljb24gYW5kIHNlZ21lbnRlZCBtb2RlIHRhYnMuIEV2ZXJ5dGhpbmcgaXMgc2NvcGVkIHRvICNwb2x5Z29uLWNvbnRyb2xzXG4gICAoYW5kIHVzZXMgdGhlIHNhbWUgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIGFzIC5kYS0qIHNvIGl0IHRyYWNrcyB0aGVcbiAgIGFjdGl2ZSB0aGVtZSksIGxlYXZpbmcgdGhlIHRyZWUgb2ZmY2FudmFzIGFzIHRoZSBzdGFuZGFyZCBzaWRlIHBhbmVsLlxuICAgQm90aCBzZWxlY3RvcnMgYXJlIGxpc3RlZCBzbyB0aGUgY2FyZCB3aW5zIHdoZXRoZXIgb3Igbm90IGl0IGlzIG5lc3RlZFxuICAgaW5zaWRlICNjYW52YXMtY29udGFpbmVyLiBUaGUgdHJlZSBpbnNwZWN0b3IgZ2V0cyB0aGUgc2FtZSBzaGVsbC4gKi9cbiNjYW52YXMtY29udGFpbmVyICNwb2x5Z29uLWNvbnRyb2xzLFxuI2NhbnZhcy1jb250YWluZXIgI3RyZWUtY29udHJvbHMsXG4jcG9seWdvbi1jb250cm9scyxcbiN0cmVlLWNvbnRyb2xzIHtcbiAgdG9wOiAxNHB4O1xuICAvKiBGaXQgY29udGVudCBpbnN0ZWFkIG9mIHBpbm5pbmcgdG9wK2JvdHRvbSAod2hpY2ggZm9yY2VkIGZ1bGwgaGVpZ2h0KTsgY2FwXG4gICAgIHRvIHRoZSB2aWV3cG9ydCBzbyBpdCBzY3JvbGxzIG9ubHkgd2hlbiB0aGUgY29udGVudCBpcyBnZW51aW5lbHkgdGFsbC5cbiAgICAgUmVsZWFzZSBNREIncyBiYXNlIGJvdHRvbTowIHNvIGhlaWdodDphdXRvIGNhbiBzaHJpbmsgdG8gY29udGVudC4gKi9cbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDI4cHgpO1xuICByaWdodDogLTQ2MHB4O1xuICB3aWR0aDogMzgwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xuICBwYWRkaW5nOiAwIDAgMTRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDQ4cHggdmFyKC0tYm94c2hhZG93KTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC4zMnMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpLCBvcGFjaXR5IDAuMzJzIGVhc2U7XG59XG5cbiNjYW52YXMtY29udGFpbmVyICNwb2x5Z29uLWNvbnRyb2xzLnNob3csXG4jY2FudmFzLWNvbnRhaW5lciAjdHJlZS1jb250cm9scy5zaG93LFxuI3BvbHlnb24tY29udHJvbHMuc2hvdyxcbiN0cmVlLWNvbnRyb2xzLnNob3cge1xuICByaWdodDogMTRweDtcbiAgb3BhY2l0eTogMTtcbn1cblxuI3BvbHlnb24tY29udHJvbHM6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuI3RyZWUtY29udHJvbHM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDlweDtcbn1cblxuI3BvbHlnb24tY29udHJvbHM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuI3RyZWUtY29udHJvbHM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjcm9sbGJhci1jb2xvdXIpIDU1JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4vKiBTdGlja3ksIHRoZW1lZCBoZWFkZXIgd2l0aCBhbiBhY2NlbnQgdGl0bGUgaWNvbiAqL1xuI3BvbHlnb24tY29udHJvbHMgLm9mZmNhbnZhcy1oZWFkZXIsXG4jdHJlZS1jb250cm9scyAub2ZmY2FudmFzLWhlYWRlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgei1pbmRleDogNTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4IDE0cHggMCAwO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAub2ZmY2FudmFzLXRpdGxlLWdyb3VwLFxuI3RyZWUtY29udHJvbHMgLm9mZmNhbnZhcy10aXRsZS1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOXB4O1xuICBtaW4td2lkdGg6IDA7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5vZmZjYW52YXMtdGl0bGUtZ3JvdXAgPiBpLFxuI3RyZWUtY29udHJvbHMgLm9mZmNhbnZhcy10aXRsZS1ncm91cCA+IGkge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5vZmZjYW52YXMtdGl0bGUsXG4jdHJlZS1jb250cm9scyAub2ZmY2FudmFzLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAuY2xvc2UtYnV0dG9uLFxuI3RyZWUtY29udHJvbHMgLmNsb3NlLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBvcGFjaXR5OiAwLjc7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIG9wYWNpdHkgMC4xNXMgZWFzZTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLmNsb3NlLWJ1dHRvbjpob3ZlcixcbiN0cmVlLWNvbnRyb2xzIC5jbG9zZS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiBDb25zaXN0ZW50IGd1dHRlcnM6IHBhZCB0aGUgdG9wLWxldmVsIHNlY3Rpb25zLCBub3QgdGhlIG5lc3RlZCBvbmVzICovXG4jcG9seWdvbi1jb250cm9scyA+IC5zZWN0aW9uLWNvbnRlbnQsXG4jcG9seWdvbi1jb250cm9scyA+ICNlZGl0LXBvbHlnb24tc2VjdGlvbixcbiNwb2x5Z29uLWNvbnRyb2xzID4gI3BhbmVsLW1vZGUtc2VjdGlvbixcbiNwb2x5Z29uLWNvbnRyb2xzID4gI29ic3RydWN0aW9uLW1vZGUtc2VjdGlvbixcbiN0cmVlLWNvbnRyb2xzID4gI3RyZWUtbm8tc2VsZWN0aW9uLFxuI3RyZWUtY29udHJvbHMgPiAjdHJlZS1zZWxlY3Rpb24tY29udHJvbHMge1xuICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE0cHg7XG59XG5cbi8qIFRyZWUgaW5zdHJ1Y3Rpb24gY2FsbG91dCDigJQgc29mdGVuIHRoZSBzb2xpZCBpbmZvIGJsb2NrIGludG8gYSB0aW50ZWRcbiAgIHN1cmZhY2Ugc28gaXQgcmVhZHMgYXMgcGFydCBvZiB0aGUgcmVmaW5lZCBjYXJkICovXG4jdHJlZS1jb250cm9scyAudHJlZS1pbnN0cnVjdGlvbi1ib3gge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbm90aWZpY2F0aW9uLWluZm8pIDEyJSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbm90aWZpY2F0aW9uLWluZm8pIDM1JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtYXJnaW4tdG9wOiAxMnB4O1xufVxuXG4jdHJlZS1jb250cm9scyAudHJlZS1pbnN0cnVjdGlvbi1ib3ggaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuI3RyZWUtY29udHJvbHMgPiAjdHJlZS1zZWxlY3Rpb24tY29udHJvbHMge1xuICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLmluZm8tcGFuZWwge1xuICBtYXJnaW46IDEycHggMDtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgI3BvbHlnb24tZGltZW5zaW9ucyAuaW5mby1zZWN0aW9uIHtcbiAgcGFkZGluZzogNnB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA1JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLmRlZmF1bHQtbWVzc2FnZSB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA2cHggMDtcbn1cblxuLm9mZmNhbnZhcy1oZWFkZXIge1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm9mZmNhbnZhcy1ib2R5IHtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbnRyb2wtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbi5jb250cm9sLWdyb3VwIGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLnBpdGNoLXNsaWRlciB7XG4gIG1heC13aWR0aDogMTAwcHg7XG59XG5cbi5waXRjaC1mcmFjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgbWluLXdpZHRoOiAxMDBweDtcbn1cblxuLnBpdGNoLWZyYWN0aW9uIGlucHV0IHtcbiAgd2lkdGg6IDUwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5waXRjaC1mcmFjdGlvbiBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLmNsb3NlLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRlbGV0ZS1idXR0b24ge1xuICB3aWR0aDogODAlO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuXG4uZGVsZXRlLWJ1dHRvbjpob3ZlciB7XG4gIGNvbG9yOiAjYjkxYzFjO1xufVxuXG4jc2hhZG93LWNvbnRyb2xzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwcHg7XG4gIGxlZnQ6IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB6LWluZGV4OiA5MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbiNzaGFkb3ctaW5mbyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29udHJvbHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMTBweDtcbiAgLyogVXNlIHRoZSB2YXJpYWJsZSBwbHVzIG1hcmdpbiAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIHotaW5kZXg6IDkwMDtcbn1cblxuLnNoYWRvdy1jb250cm9scyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIHotaW5kZXg6IDkwMDtcbn1cblxuLyogSW1hZ2VyeSBTb3VyY2UgQ29udHJvbHMgKi9cbi5pbWFnZXJ5LXNvdXJjZS1jb250cm9scyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogSW1hZ2VyeSBTZWxlY3Rpb24gTW9kYWwgKi9cbiNpbWFnZXJ5LXNlbGVjdGlvbi1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIHotaW5kZXg6IDEwMDAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG59XG5cbiNpbWFnZXJ5LXNlbGVjdGlvbi1tb2RhbCAubW9kYWwtZGlhbG9nIHtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgd2lkdGg6IDkwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4jaW1hZ2VyeS1zZWxlY3Rpb24tbW9kYWwgLm1vZGFsLWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4jaW1hZ2VyeS1zZWxlY3Rpb24tbW9kYWwgLmZvcm0tc2VsZWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtYmFja2dyb3VuZCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtYm9yZGVyKTtcbiAgY29sb3I6IHZhcigtLWlucHV0LXRleHQpO1xufVxuXG4jaW1hZ2VyeS1zZWxlY3Rpb24tbW9kYWwgLmZvcm0tc2VsZWN0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1mb2N1cy1ib3JkZXIpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlucHV0LWZvY3VzLWJvcmRlcikgMjUlLCB0cmFuc3BhcmVudCk7XG59XG5cbiNpbWFnZXJ5LXNlbGVjdGlvbi1tb2RhbCAuZm9ybS1zZWxlY3Qgb3B0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uaW1hZ2VyeS1wYW4tY29udHJvbHMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuI2ltYWdlcnktcHJldmlldy1jb250YWluZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuI2ltYWdlcnktbG9hZGluZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbiNpbWFnZXJ5LWVtcHR5LXN0YXRlIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xuICBtYXJnaW46IDFyZW0gMDtcbn1cblxuLmJ1dHRvbi1ncm91cCAuYnV0dG9uIHtcbiAgZmxleDogMTtcbn1cblxuLmluZm8tcGFuZWwge1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG5cbi5zZWN0aW9uLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgbWFyZ2luOiAxLjVyZW0gMCAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5zZWN0aW9uLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwLjFyZW0gMDtcbn1cblxuLmFjdGlvbi1idXR0b25zIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG59XG5cbi5hY3Rpb24tYnV0dG9ucyBidXR0b24ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnNvbGFyLXBhbmVsLWNvbnRyb2xzIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLnNvbGFyLXBhbmVsLWNvbnRyb2xzIGgzIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLnNvbGFyLXBhbmVsLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG59XG5cbi5zb2xhci1wYW5lbC1idXR0b25zIGJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc29sYXItcGFuZWwtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xufVxuXG4uc29sYXItcGFuZWwtYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbn1cblxuLm9ic3RydWN0aW9uLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbn1cblxuLm9ic3RydWN0aW9uLWFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbi5wYW5lbC1jb25maWctZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbn1cblxuLnBhbmVsLWNvbmZpZy1pdGVtIHtcbiAgZmxleDogMTtcbn1cblxuLnBhbmVsLWJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucGFuZWwtZGVsZXRlIHtcbiAgYmFja2dyb3VuZDogI2RjMjYyNjtcbn1cblxuLnBhbmVsLWRlbGV0ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNiOTFjMWM7XG59XG5cbi8qIE5ldyBzdHlsZXMgZm9yIHBvbHlnb24gaW5mb3JtYXRpb24gKi9cbi5pbmZvLXNlY3Rpb24ge1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5pbmZvLXNlY3Rpb24gaDQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5pbmZvLXNlY3Rpb24gcCB7XG4gIG1hcmdpbjogNXB4IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmRpbWVuc2lvbnMtbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5kaW1lbnNpb25zLWxpc3QgbGkge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi8qIFNlZ21lbnRlZCBtb2RlL3RhYiBiYXIg4oCUIFN1cmZhY2UgwrcgUGFuZWxzIMK3IE9ic3RydWN0aW9ucyAqL1xuI3BvbHlnb24tY29udHJvbHMgLm1vZGUtdG9nZ2xlLWJ1dHRvbnMsXG4jdHJlZS1jb250cm9scyAubW9kZS10b2dnbGUtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNHB4O1xuICBtYXJnaW46IDEycHggMCA4cHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA3JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5tb2RlLXRvZ2dsZS1idXR0b25zIC5idXR0b24sXG4jdHJlZS1jb250cm9scyAubW9kZS10b2dnbGUtYnV0dG9ucyAuYnV0dG9uIHtcbiAgZmxleDogMTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDhweCA2cHg7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5tb2RlLWJ1dHRvbixcbiN0cmVlLWNvbnRyb2xzIC5tb2RlLWJ1dHRvbiB7XG4gIGdhcDogNnB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzLCBjb2xvciAwLjE1cywgYm94LXNoYWRvdyAwLjE1cztcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLm1vZGUtYnV0dG9uOmhvdmVyLFxuI3RyZWUtY29udHJvbHMgLm1vZGUtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA4JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAubW9kZS1idXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuXG4jZWRpdC1wb2x5Z29uLXNlY3Rpb24gLmRlbGV0ZS1idXR0b24ge1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBTb2xhciBwcm9kdWN0aW9uIGluZm8gc3R5bGVzICovXG4jc29sYXItcHJvZHVjdGlvbi1pbmZvIGg0IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ubG9zc2VzLWluZm8ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGhlaWdodDogMTI1cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5sb3NzLWl0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi8qIFBWIFdhdHRzIEluZm8gU3R5bGVzICovXG4ucHYtd2F0dHMtaW5mbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMCU7XG4gIGxlZnQ6IDEwcHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXR5cGUpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2FyZC1jb2xvdXIpIDg1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHotaW5kZXg6IDk5MDtcbn1cblxuLnB2LXdhdHRzLWluZm8gaDQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5lbGVjdHJpY2FsLXJlYWRpbmVzcyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLyogUmVzdWx0cyByb3cgc2hvd2luZyBvbmx5IHRoZSBhY3RpdmUtbW9kZSBjaGlwIChubyBwYW5lbHMgeWV0KSDigJQgZHJvcCB0aGVcbiAgIGNoaXAtcm93IHRvcCBtYXJnaW4gc28gdGhlIGxvbmUgYmFkZ2UgaXNuJ3Qgc3RyYW5kZWQuICovXG4uZGEtcmVzdWx0cy5tb2RlLW9ubHkgLmVsZWN0cmljYWwtcmVhZGluZXNzIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmVsZWN0cmljYWwtcmVhZGluZXNzLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAzcHggN3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jYXJkLWNvbG91cikgNzIlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uZWxlY3RyaWNhbC1yZWFkaW5lc3MtY2hpcDpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjEyKTtcbn1cblxuLmVsZWN0cmljYWwtcmVhZGluZXNzLWNoaXA6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLmVsZWN0cmljYWwtcmVhZGluZXNzLWNoaXAgc3BhbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZWxlY3RyaWNhbC1yZWFkaW5lc3MtY2hpcC5yZWFkeSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXN1Y2Nlc3MpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQ2LCAyMDQsIDExMywgMC4xNCk7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tc3VjY2Vzcyk7XG59XG5cbi5lbGVjdHJpY2FsLXJlYWRpbmVzcy1jaGlwLndhcm4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDMsIDE1NiwgMTgsIDAuMTQpO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXdhcm5pbmcpO1xufVxuXG4uZWxlY3RyaWNhbC1yZWFkaW5lc3MtY2hpcC5lbXB0eSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTIyLCAxMzAsIDE0NSwgMC4xMik7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLyogT3J0aG8gQ29udGV4dCBNZW51IFN0eWxlcyAqL1xuLm9ydGhvLWNvbnRleHQtbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHZhcigtLWJveHNoYWRvdyk7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBtaW4td2lkdGg6IDE4MHB4O1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG59XG5cbi8qIFR3by1jb2x1bW4gY29tcGFjdCBncmlkIGZvciBhY3Rpb24gYnV0dG9ucyAqL1xuLm9ydGhvLWNvbnRleHQtbWVudS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDFweDtcbiAgcGFkZGluZzogNHB4IDRweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LWdyaWQgLm9ydGhvLWNvbnRleHQtbWVudS1pdGVtIHtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtaGVhZGVyIHtcbiAgcGFkZGluZzogNHB4IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiBkdXJpbmcgZHJhZyAqL1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LWhlYWRlci5kcmFnZ2luZyB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LWNsb3NlLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtY2xvc2UtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LWl0ZW0ge1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1pdGVtLWhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LWljb24ge1xuICB3aWR0aDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBTdHlsZXMgZm9yIHRoZSBzbGlkZXIgc2VjdGlvbiBpbiBvcnRobyBjb250ZXh0IG1lbnUgKi9cbi5vcnRoby1jb250ZXh0LW1lbnUtc2xpZGVyLXNlY3Rpb24ge1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LXNsaWRlci1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LXNsaWRlci1jb250YWluZXIge1xuICBwYWRkaW5nOiAwIDJweDtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1zbGlkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiA1cHggMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi8qIE9ydGhvIGNvbnRleHQgbWVudSBwaXRjaCBpbnB1dHMgKi9cbi5vcnRoby1jb250ZXh0LW1lbnUtcGl0Y2gtaW5wdXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgbWluLXdpZHRoOiAxNDBweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LXBpdGNoLXNsaWRlciB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogNjBweDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1waXRjaC1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtcGl0Y2gtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtcGl0Y2gtZnJhY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBhZGRpbmc6IDFweCAzcHg7XG4gIG1pbi13aWR0aDogODBweDtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1waXRjaC1mcmFjdGlvbiBpbnB1dCB7XG4gIHdpZHRoOiA1MHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtcGl0Y2gtZnJhY3Rpb24gc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1kZWdyZWVzLWlucHV0IHtcbiAgd2lkdGg6IDQycHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nOiAxcHggM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cik7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtaW5wdXQtZ3JvdXAtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBtYXJnaW4tbGVmdDogMXB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtc3VibGFiZWwge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LXN0YWNrLW5hdiB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtbmF2LWJ0biB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xufVxuLm9ydGhvLWNvbnRleHQtbWVudS1uYXYtYnRuIGkge1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtc3RhY2stbGFiZWwge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjtcbiAgZmxleDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBFZGdlIGxlbmd0aCBtZW51IOKAlCBpbmZvIGNoaXBzLCBmbGF0L3N1cmZhY2UgZW50cnksIGNvbXBhY3QgYWN0aW9ucyAqL1xuLmVkZ2UtaW5mby1jaGlwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5lZGdlLWluZm8tY2hpcCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDNweCA3cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmVkZ2Utc2xvcGUtY2hpcCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qIEZsYXQvU3VyZmFjZSBlbnRyeSBzZWxlY3RvciDigJQgc2lkZXMgc2hvdyB0aGVpciBjdXJyZW50IHZhbHVlOyB0aGVcbiAgIGFjdGl2ZSBzaWRlIChzd2l0Y2ggcG9zaXRpb24pIGlzIHRoZSBmcmFtZSB0aGUgaW5wdXQgZWRpdHMuICovXG4uZWRnZS1sZW5ndGgtbW9kZS1yb3cge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5lZGdlLW1vZGUtc2lkZSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjQ1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xufVxuLmVkZ2UtbW9kZS1zaWRlIC5lZGdlLW1vZGUtdmFsdWUge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLmVkZ2UtbW9kZS1zaWRlLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5lZGdlLWxlbmd0aC1pbnB1dC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xufVxuXG4vKiBIaWRlIG51bWJlciBzcGlubmVycyBvbiB0aGUgY29tcGFjdCBtZW51IGlucHV0cyAqL1xuLm9ydGhvLWNvbnRleHQtbWVudS1kZWdyZWVzLWlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLm9ydGhvLWNvbnRleHQtbWVudS1kZWdyZWVzLWlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtZGVncmVlcy1pbnB1dCB7XG4gIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxuLmVkZ2UtYWN0aW9uLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNnB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLmVkZ2UtYWN0aW9uLXJvdyAuYnV0dG9uLTEzLW91dGxpbmUge1xuICBmbGV4OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4jZWRnZS13YWxsLXRvZ2dsZS1idG4uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2U3NGMzYztcbiAgYm9yZGVyLWNvbG9yOiAjZTc0YzNjO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnNjZW5lLW5vdGlmaWNhdGlvbiB7XG4gIHBhZGRpbmc6IDE1cHggMjVweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC10eXBlKTtcbn1cblxuLnNjZW5lLW5vdGlmaWNhdGlvbi1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogIzI4YTc0NTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzI4YTc0NTtcbn1cblxuLnNjZW5lLW5vdGlmaWNhdGlvbi1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6ICNkYzM1NDU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkYzM1NDU7XG59XG5cbi8qIEZlZWRiYWNrIHRvYXN0IOKAlCBhbmNob3JlZCB0byB0aGUgRGVzaWduIEFzc2lzdGFudCAocG9zaXRpb25lZCBpbiBKUyBieVxuICAgVUlIZWxwZXIuc2hvd05vdGlmaWNhdGlvbikgc28gbWVzc2FnZXMgYXBwZWFyIHdoZXJlIHRoZSB1c2VyIGlzIGxvb2tpbmcuXG4gICBTdHlsZWQgdG8gbWF0Y2ggdGhlIGFzc2lzdGFudDsgdGhlIHR5cGUgYWNjZW50ICsgaWNvbiBjYXJyeSBzZXZlcml0eS4gKi9cbi5kZXNpZ24tdG9vbC1ub3RpZmljYXRpb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDIwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTFweCAxNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLW5vdGlmaWNhdGlvbi1pbmZvKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yMnMgZWFzZSwgdHJhbnNmb3JtIDAuMjJzIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgc2NhbGUoMC45OCk7XG4gIGZvbnQtc2l6ZTogMTIuNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIG92ZXJmbG93OiBoaWRkZW47IC8qIGNsaXAgdGhlIGNvdW50ZG93biBiYXIgdG8gdGhlIHJvdW5kZWQgY29ybmVycyAqL1xuICAvKiBIaWRkZW4gKG9wYWNpdHk6MCkgdG9hc3QgbXVzdCBub3QgaW50ZXJjZXB0IGNsaWNrcyDigJQgaXQgc3RheXMgbW91bnRlZCBhbmRcbiAgICAgZml4ZWQtcG9zaXRpb25lZCBvdmVyIHRoZSBhc3Npc3RhbnQuIEludGVyYWN0aXZpdHkgaXMgZW5hYmxlZCBvbmx5IGluIHRoZVxuICAgICAudmlzaWJsZSBzdGF0ZSBiZWxvdy4gKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5kZXNpZ24tdG9vbC1ub3RpZmljYXRpb24udmlzaWJsZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgYW5pbWF0aW9uOiBkdG4tcHVsc2UgMS4xcyBlYXNlLW91dCAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgLyogaG92ZXItdG8tcGF1c2UgKyBjbG9zZSBidXR0b24gd2hpbGUgc2hvd24gKi9cbn1cblxuLmRlc2lnbi10b29sLW5vdGlmaWNhdGlvbiAuZHRuLWljb24ge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWluZm8pO1xufVxuXG4uZGVzaWduLXRvb2wtbm90aWZpY2F0aW9uIC5kdG4tbXNnIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4vKiBEaXNtaXNzIGJ1dHRvbiDigJQgc2l0cyB0byB0aGUgcmlnaHQgb2YgdGhlIG1lc3NhZ2UgKi9cbi5kZXNpZ24tdG9vbC1ub3RpZmljYXRpb24gLmR0bi1jbG9zZSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2MCUsIHRyYW5zcGFyZW50KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBtYXJnaW46IC0ycHggLTZweCAtMnB4IDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uZGVzaWduLXRvb2wtbm90aWZpY2F0aW9uIC5kdG4tY2xvc2U6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuXG4vKiBDb3VudGRvd24gYmFyIOKAlCBzaHJpbmtzIHRvIGVtcHR5IG92ZXIgdGhlIHRvYXN0J3MgbGlmZXRpbWUgKEpTLWRyaXZlbixcbiAgIHBhdXNlcyBvbiBob3ZlcikuIEFjY2VudCBjb2xvdXIgdHJhY2tzIHRoZSBzZXZlcml0eSB0eXBlLiAqL1xuLmRlc2lnbi10b29sLW5vdGlmaWNhdGlvbiAuZHRuLXByb2dyZXNzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogM3B4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm90aWZpY2F0aW9uLWluZm8pO1xuICBvcGFjaXR5OiAwLjg1O1xufVxuXG4vKiBGYWxsYmFjayBkb2NrZWQgcG9zaXRpb24gd2hlbiB0aGUgYXNzaXN0YW50IGlzbid0IG9uIHNjcmVlbiAqL1xuLmRlc2lnbi10b29sLW5vdGlmaWNhdGlvbi5kdG4tZmxvYXRpbmcge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMjBweDtcbiAgYm90dG9tOiAyMHB4O1xuICB0b3A6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDMyMHB4O1xufVxuXG4vKiBBIG9uZS1zaG90IHJpbmcgcHVsc2UgdG8gY2F0Y2ggdGhlIGV5ZSBvbiBhcHBlYXJhbmNlICovXG5Aa2V5ZnJhbWVzIGR0bi1wdWxzZSB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNSksIDAgMCAwIDAgdmFyKC0tZHRuLWdsb3csIHJnYmEoOTIsIDE1OCwgMjU1LCAwLjUpKTtcbiAgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNSksIDAgMCAwIDlweCByZ2JhKDAsIDAsIDAsIDApO1xuICB9XG59XG4vKiBUeXBlIGFjY2VudHMg4oCUIGxlZnQgc3RyaXBlLCBpY29uIGNvbG91ciwgYW5kIHB1bHNlIGdsb3cgKi9cbi5ub3RpZmljYXRpb24taW5mbyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24taW5mbyk7XG4gIC0tZHRuLWdsb3c6IHJnYmEoOTIsIDE1OCwgMjU1LCAwLjUpO1xufVxuLm5vdGlmaWNhdGlvbi1pbmZvIC5kdG4taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24taW5mbyk7XG59XG4ubm90aWZpY2F0aW9uLWluZm8gLmR0bi1wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGlmaWNhdGlvbi1pbmZvKTtcbn1cblxuLm5vdGlmaWNhdGlvbi1zdWNjZXNzIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1zdWNjZXNzKTtcbiAgLS1kdG4tZ2xvdzogcmdiYSgxMDIsIDE4NywgMTA2LCAwLjUpO1xufVxuLm5vdGlmaWNhdGlvbi1zdWNjZXNzIC5kdG4taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tc3VjY2Vzcyk7XG59XG4ubm90aWZpY2F0aW9uLXN1Y2Nlc3MgLmR0bi1wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGlmaWNhdGlvbi1zdWNjZXNzKTtcbn1cblxuLm5vdGlmaWNhdGlvbi13YXJuaW5nIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nKTtcbiAgLS1kdG4tZ2xvdzogcmdiYSgyNTUsIDE2NywgMzgsIDAuNTUpO1xufVxuLm5vdGlmaWNhdGlvbi13YXJuaW5nIC5kdG4taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24td2FybmluZyk7XG59XG4ubm90aWZpY2F0aW9uLXdhcm5pbmcgLmR0bi1wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nKTtcbn1cblxuLyogVGhlIGRlc2lnbiB0b29sIGVtaXRzIHRoZSAnZXJyb3InIHR5cGU7IHBvd2VybGlseSdzIHRoZW1lIG5hbWVzIHRoaXMgY29sb3VyXG4gICAtLW5vdGlmaWNhdGlvbi1kYW5nZXIgKG1hdGNoaW5nIGl0cyBvd24gLnRvYXN0LW5vdGljZS0tZGFuZ2VyKS4gKi9cbi5ub3RpZmljYXRpb24tZXJyb3Ige1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG4gIC0tZHRuLWdsb3c6IHJnYmEoMjM5LCA4MywgODAsIDAuNTUpO1xufVxuLm5vdGlmaWNhdGlvbi1lcnJvciAuZHRuLWljb24ge1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG59XG4ubm90aWZpY2F0aW9uLWVycm9yIC5kdG4tcHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbn1cblxuLyogR2xvYmFsIGJ1c3kgbG9hZGVyIOKAlCBzYW1lIHRvYXN0IGNocm9tZSwgc3Bpbm5pbmcgaWNvbiwgbm8gY291bnRkb3duICovXG4uZGVzaWduLXRvb2wtbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbi1sb2FkaW5nIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1pbmZvKTtcbiAgLS1kdG4tZ2xvdzogcmdiYSg5MiwgMTU4LCAyNTUsIDAuNSk7XG59XG4uZGVzaWduLXRvb2wtbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbi1sb2FkaW5nIC5kdG4taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24taW5mbyk7XG4gIGFuaW1hdGlvbjogZHRuLXNwaW4gMC45cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgZHRuLXNwaW4ge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyogUGFuZWwgbW9kZSBzdGF0dXMgc3R5bGluZyAqL1xuLnBhbmVsLW1vZGUtc3RhdHVzIHtcbiAgcGFkZGluZzogOHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIFRvb2xiYXIgdmFyaWFudCBvZiBwYW5lbCBtb2RlIHN0YXR1cyAqL1xuI3BhbmVsLW1vZGUtaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDZweCA2cHg7XG4gIG1hcmdpbjogMCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgZ2FwOiA2cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5wYW5lbC1tb2RlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGUyYzQ7XG4gIC8qIEdyZWVuIGZvciBwYW5lbCBtb2RlICovXG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnRyZWUtbW9kZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ4YTRlO1xuICAvKiBHcmVlbi10aW50ZWQgZm9yIHRyZWUgbW9kZSAqL1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5zdHJpbmdpbmctbW9kZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiO1xuICAvKiBCbHVlIGZvciBzdHJpbmdpbmcgbW9kZSAqL1xuICBjb2xvcjogd2hpdGU7XG4gIGFuaW1hdGlvbjogc3RyaW5naW5nLXB1bHNlIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi5wYW5lbC1tb2RlLWluYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDdkYTtcbiAgY29sb3I6ICM3MjFjMjQ7XG59XG5cbi5vYnN0cnVjdGlvbi1tb2RlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZDdlMTQ7XG4gIC8qIE9yYW5nZSBmb3Igb2JzdHJ1Y3Rpb24gbW9kZSAqL1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi8qIFN0cmluZ2luZyBtb2RlIHVzZXMgdGhlIHNoYXJlZCBwYW5lbC1tb2RlLWluZGljYXRvciAqL1xuLnN0cmluZ2luZy1tb2RlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7XG4gIC8qIEJsdWUgZm9yIHN0cmluZ2luZyBtb2RlICovXG4gIGNvbG9yOiB3aGl0ZTtcbiAgYW5pbWF0aW9uOiBzdHJpbmdpbmctcHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLyogVGFiIHN0eWxlcyAqL1xuLyogUmVmaW5lZCB1bmRlcmxpbmUgdGFicyDigJQgY29tcGFjdCB0ZXh0IHdpdGggYW4gYWNjZW50IHVuZGVybGluZSBvbiB0aGUgYWN0aXZlXG4gICBvbmUsIHNoYXJpbmcgdGhlIERBJ3MgdHlwZSBzY2FsZSBpbnN0ZWFkIG9mIGNodW5reSBmaWxsZWQgYnV0dG9ucy4gKi9cbi5wdi13YXR0cy10YWJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweCAxNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBwYWRkaW5nOiAwIDJweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4ucHYtd2F0dHMtdGFiIHtcbiAgcGFkZGluZzogNnB4IDA7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbi5wdi13YXR0cy10YWI6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ucHYtd2F0dHMtdGFiLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4vKiBTdGF0IGNhcmRzIGdyaWQgKi9cbi5vdmVydmlldy1zdGF0cy1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ub3ZlcnZpZXctc3RhdC1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiAxMHB4IDExcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDYlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuLm92ZXJ2aWV3LXN0YXQtY2FyZCAuc3RhdC1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cbi5vdmVydmlldy1zdGF0LWNhcmQgLnN0YXQtbGFiZWwgaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgb3BhY2l0eTogMC44NTtcbn1cbi5vdmVydmlldy1zdGF0LWNhcmQgLnN0YXQtdmFsdWUtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDRweDtcbn1cbi5vdmVydmlldy1zdGF0LWNhcmQgLnN0YXQtdmFsdWUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4ub3ZlcnZpZXctc3RhdC1jYXJkIC5zdGF0LXVuaXQge1xuICBmb250LXNpemU6IDExcHg7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLm92ZXJ2aWV3LXN0YXQtY2FyZC0td2lkZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5vdmVydmlldy1zdGF0LWNhcmQtLXdpZGUgLnN0YXQtdmFsdWUge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi8qIE9mZnNldCBnYXVnZSAqL1xuLm9mZnNldC1nYXVnZSB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm9mZnNldC1nYXVnZS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5vZmZzZXQtZ2F1Z2UtbGFiZWwge1xuICBmb250LXdlaWdodDogNTAwO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5vZmZzZXQtZ2F1Z2UtdmFsdWUge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5vZmZzZXQtZ2F1Z2UtdmFsdWUgLnN0YXQtdmFsdWUge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi5vZmZzZXQtZ2F1Z2UtdmFsdWUgLnN0YXQtdW5pdCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLm9mZnNldC1iYXItdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ub2Zmc2V0LWJhci1maWxsIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2VmNjQ2MSwgI2Y1YTYyMyA0MCUsICM0ZWNkYzQgNzUlLCAjMmVjYzcxKTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC40cyBlYXNlO1xufVxuXG4ub2Zmc2V0LWVtcHR5IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLm9mZnNldC1lbXB0eS10ZXh0IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi8qIEFycmF5IGRldGFpbCBzdHlsaW5nICovXG4uYXJyYXktZGV0YWlsIHtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5hcnJheS1kZXRhaWwgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi8qIEFycmF5IGl0ZW0gc3R5bGVzICovXG4ucG9seWdvbi1hcnJheS1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xufVxuXG4ucG9seWdvbi1hcnJheS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ucG9seWdvbi1hcnJheS1pdGVtIGg1IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5jbGljay1oaW50IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi8qIE1ha2UgdGhlIGFycmF5cyBsaXN0IHNjcm9sbGFibGUgaWYgdGhlcmUgYXJlIG1hbnkgYXJyYXlzICovXG4jYXJyYXlzLXRhYiB7XG4gIG1heC1oZWlnaHQ6IDQwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4jcG9seWdvbi1hcnJheXMtbGlzdCB7XG4gIG1heC1oZWlnaHQ6IDM1MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4vKiBCb3R0b20gb2ZmY2FudmFzIOKAlCBzaGFyZWQgYnkgdGhlIG1vYmlsZSBtZW51IChzaGFyZWQvX21vYmlsZV9ib3R0b21fbmF2KSAqL1xuLm9mZmNhbnZhcy1ib3R0b20ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogLTMwMHB4O1xuICAvKiBTdGFydCBvZmYtc2NyZWVuIGF0IHRoZSBib3R0b20gKi9cbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzAwcHg7XG4gIC8qIEFkanVzdCBoZWlnaHQgYXMgbmVlZGVkICovXG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdHJhbnNpdGlvbjogYm90dG9tIDAuM3MgZWFzZTtcbiAgei1pbmRleDogMTAwMDtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5vZmZjYW52YXMtYm90dG9tLnNob3cge1xuICBib3R0b206IDA7XG59XG5cbi8qIE1vZGFsIFN0eWxlcyAqL1xuLmhlbHAtdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4vKiBNb250aGx5IGlucHV0cyBncmlkIGxheW91dCAqL1xuLm1vbnRobHktaW5wdXRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgZ2FwOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4ubW9udGgtaW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubW9udGgtaW5wdXQgbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4ubW9udGgtaW5wdXQgaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogOHB4O1xufVxuXG4vKiBQViBXYXR0cyBtb2RhbCDigJQgYmFja2Ryb3AgKyBjZW50ZXJpbmcgKGJ1bmRsZSBvcGVucyB2aWEgcmF3IGRpc3BsYXk6YmxvY2ssIG5vdCBCb290c3RyYXAncyBtb2RhbCBBUEkpICovXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIHotaW5kZXg6IDEwMDAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG59XG5cbi8qIENhcCBtb2RhbCBoZWlnaHQgYW5kIHNjcm9sbCB0aGUgYm9keS4gUG9wb3ZlcnMgbGl2ZSBvdXRzaWRlIC5tb2RhbC1ib2R5XG4gKiAoc2libGluZ3Mgb2YgaXQgdW5kZXIgLm1vZGFsLWNvbnRlbnQpIHNvIHRoZXkgc3RheSBwaW5uZWQgdG8gdGhlIHRyaWdnZXJcbiAqIGNvb3JkcyBhbmQgZG9uJ3Qgc2Nyb2xsIHdpdGggdGhlIGNvbnRlbnQgdW5kZXJuZWF0aCB0aGVtLiAqL1xuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLm1vZGFsLWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbiNwdndhdHRzLXNldHRpbmdzLW1vZGFsIC5wdndhdHRzLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cblxuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLnB2d2F0dHMtaWNvbi1idG4ge1xuICBmbGV4OiAwIDAgMzhweDtcbiAgd2lkdGg6IDM4cHg7XG4gIG1pbi1oZWlnaHQ6IDM4cHg7XG4gIGhlaWdodDogMzhweDtcbiAgcGFkZGluZzogMDtcbn1cblxuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLnB2d2F0dHMtc2lkZS10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbiNwdndhdHRzLXNldHRpbmdzLW1vZGFsIC5wdndhdHRzLXRvZ2dsZS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA2MCUsIHRyYW5zcGFyZW50KTtcbn1cblxuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLnB2d2F0dHMtdG9nZ2xlLXJvdyAuY29tcGFjdC10b2dnbGUge1xuICBmbGV4LXNocmluazogMDtcbn1cblxuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLnB2d2F0dHMtdG9nZ2xlLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cblxuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLnB2d2F0dHMtdG9nZ2xlLXRleHQgLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi8qIFBWIFdhdHRzIG1vZGFsIOKAlCBwb3BvdmVycyAoYWxiZWRvIHByZXNldHMsIGxvc3MgY2FsY3VsYXRvcikgKi9cbiNwdndhdHRzLXNldHRpbmdzLW1vZGFsIC5wdndhdHRzLXBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG1pbi13aWR0aDogMjU1cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCB2YXIoLS1ib3hzaGFkb3cpO1xuICBwYWRkaW5nOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAucHJlc2V0LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAucHJlc2V0LXNlY3Rpb24ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luOiAxMHB4IDAgNHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG59XG5cbiNwdndhdHRzLXNldHRpbmdzLW1vZGFsIC5wcmVzZXQtc2VjdGlvbjpmaXJzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbiNwdndhdHRzLXNldHRpbmdzLW1vZGFsIC5hbGJlZG8tcHJlc2V0LW9wdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgbWFyZ2luOiAycHggMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAuYWxiZWRvLXByZXNldC1vcHRpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAubG9zcy1jYWxjLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIGdhcDogOHB4O1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAubG9zcy1jYWxjLWdyaWQgbGFiZWwge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAubG9zcy1jYWxjLXRvdGFsIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4udGFiLXNwYWNlciB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cblxuLyogTWFwIHZpZXcgY29udGFpbmVyIHN0eWxlcyAqL1xuI21hcC12aWV3LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2MHB4O1xuICByaWdodDogMTBweDtcbiAgd2lkdGg6IDQwMHB4O1xuICBoZWlnaHQ6IDMwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHotaW5kZXg6IDgwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCA0cHggMjBweCB2YXIoLS1ib3hzaGFkb3cpO1xuICBkaXNwbGF5OiBub25lO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzLCBoZWlnaHQgMC4zcztcbn1cblxuI21hcC12aWV3LWNvbnRhaW5lci5leHBhbmRlZCB7XG4gIHdpZHRoOiA2MDBweDtcbiAgaGVpZ2h0OiA0NTBweDtcbn1cblxuI21hcC12aWV3LWNvbnRhaW5lciAuY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDVweDtcbiAgcmlnaHQ6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogODAxO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG59XG5cbiNtYXAtdmlldy1jb250YWluZXIgLmNsb3NlLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbiNtYXAtdmlldy1jb250YWluZXIgLm1hcC12aWV3LWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogODAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG59XG5cbiNtYXAtdmlldy1jb250YWluZXIgLm1hcC12aWV3LWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbiN0b2dnbGUtdmlldy1idXR0b24ge1xuICB0b3A6IDVweDtcbiAgbGVmdDogNXB4O1xufVxuXG4jZ29vZ2xlLW1hcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbiNzdHJlZXQtdmlldy1wYW5vcmFtYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmNhbnZhcy5jYWxpYnJhdGlvbi1tb2RlIHtcbiAgY3Vyc29yOiBjcm9zc2hhaXIgIWltcG9ydGFudDtcbiAgLyogQ3Vyc29yIGZvciBjYWxpYnJhdGlvbiBtb2RlIC0gd2l0aCAhaW1wb3J0YW50ICovXG59XG5cbi5tcHAtZGlzcGxheSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuXG4vKiBTdHlsaW5nIGZvciB0aGUgTVBQIHdhcm5pbmcgaWNvbiAqL1xuI21wcC13YXJuaW5nLWljb24ge1xuICBhbmltYXRpb246IHB1bHNlIDEuNXMgaW5maW5pdGU7XG4gIHRleHQtc2hhZG93OiAwIDAgNXB4IHJnYmEoMjU1LCAxOTMsIDcsIDAuNik7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4vKiBEaXN0YW5jZSBMYWJlbCBTdHlsZXMgKi9cbi5kaXN0YW5jZS1sYWJlbCB7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG59XG5cbi5kaXN0YW5jZS1sYWJlbC1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgwLCAwLCAwLCAwLjgxKSAwJSwgcmdiYSgyMCwgMjAsIDIwLCAwLjgxKSAxMDAlKTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICBib3gtc2hhZG93OiAwIDNweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC40KSwgMCAycHggN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1pbi13aWR0aDogMzBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uZGlzdGFuY2UtbGFiZWwtY29udGVudDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpLCB0cmFuc3BhcmVudCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZGlzdGFuY2UtdGV4dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xufVxuXG4uZGlzdGFuY2UtbGFiZWwgKyBzdmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuLmRpc3RhbmNlLWxhYmVsICsgc3ZnIHBhdGgge1xuICBzdHJva2U6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgc3Ryb2tlLXdpZHRoOiAyO1xuICBmaWxsOiBub25lO1xuICBzdHJva2UtZGFzaGFycmF5OiA2LCA0O1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSk7XG4gIGFuaW1hdGlvbjogZGFzaE1vdmUgMnMgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGRhc2hNb3ZlIHtcbiAgdG8ge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZGlzdGFuY2UtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuICAuZGlzdGFuY2UtbGFiZWwtY29udGVudCB7XG4gICAgcGFkZGluZzogMnB4IDRweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgbWluLXdpZHRoOiAyNnB4O1xuICB9XG59XG4uZGltZW5zaW9uLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA1cHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmNvbG9yLW9wdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG59XG5cbi5jb2xvci1vcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5jb2xvci1vcHRpb246aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5cbi5jb2xvci1vcHRpb24uc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG59XG5cbi5jb2xvci1wcmV2aWV3IHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4jcGFuZWwtY29sb3JzLW1vZGFsIC5wYW5lbC1jb2xvcnMtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gIGdhcDogMTZweDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG4jcGFuZWwtY29sb3JzLW1vZGFsIC5wYW5lbC1jb2xvcnMtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogMTZweDtcbiAgbWFyZ2luOiAwO1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXNlY3Rpb25fX2hlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbn1cbiNwYW5lbC1jb2xvcnMtbW9kYWwgLnBhbmVsLWNvbG9ycy1zZWN0aW9uX19pY29uIHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXNlY3Rpb25fX3RleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXNlY3Rpb25fX3RpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXNlY3Rpb25fX3N1YnRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbiNwYW5lbC1jb2xvcnMtbW9kYWwgLnBhbmVsLWNvbG9ycy1zd2F0Y2hlcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogOHB4O1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXN3YXRjaGVzIC5jb2xvci1vcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAxMHB4IDhweDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXN3YXRjaGVzIC5jb2xvci1vcHRpb246aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cbiNwYW5lbC1jb2xvcnMtbW9kYWwgLnBhbmVsLWNvbG9ycy1zd2F0Y2hlcyAuY29sb3Itb3B0aW9uLnNlbGVjdGVkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgaW5zZXQ7XG59XG4jcGFuZWwtY29sb3JzLW1vZGFsIC5wYW5lbC1jb2xvcnMtc3dhdGNoZXMgLmNvbG9yLXByZXZpZXcge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG4jcGFuZWwtY29sb3JzLW1vZGFsIC5wYW5lbC1jb2xvcnMtc3dhdGNoZXMgLmNvbG9yLW9wdGlvbiBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG5cbi8qIEZ1biBMb2FkaW5nIEFuaW1hdGlvbiBTdHlsZXMgKi9cbi5mdW4tbG9hZGluZy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIHotaW5kZXg6IDMwMDA7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIHNhbnMtc2VyaWY7XG59XG5cbi5mdW4tbG9hZGluZy1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgcGFkZGluZzogMzJweDtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgd2lkdGg6IDkwJTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgbWluLXdpZHRoOiAzNTBweDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xufVxuXG4uZnVuLWxvYWRpbmctaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xufVxuXG4uZnVuLWxvYWRpbmctaWNvbiB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgYW5pbWF0aW9uOiBzcGluIDNzIGxpbmVhciBpbmZpbml0ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZnVuLWxvYWRpbmctdGl0bGUge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xufVxuXG4uZnVuLWxvYWRpbmctY2hlY2tsaXN0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLmZ1bi1sb2FkaW5nLXN0ZXAge1xuICBwYWRkaW5nOiA0cHggMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbn1cblxuLmZ1bi1sb2FkaW5nLXN0ZXAtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLmZ1bi1sb2FkaW5nLXN0ZXAuY29tcGxldGVkIC5mdW4tbG9hZGluZy1zdGVwLXRleHQge1xuICBjb2xvcjogI2M1MzAyMjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1zaGFkb3c6IDAgMCA4cHggcmdiYSgzNCwgMTk3LCA5NCwgMC4zKTtcbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qIEFubm90YXRpb24gQ29udGV4dCBNZW51IFN0eWxlcyAqL1xuLmFubm90YXRpb24tY29udGV4dC1tZW51IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggdmFyKC0tYm94c2hhZG93KTtcbiAgei1pbmRleDogMTAwMDE7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXR5cGUpO1xuICBtaW4td2lkdGg6IDEyMHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYW5ub3RhdGlvbi1jb250ZXh0LW1lbnUtaXRlbSB7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG59XG5cbi5hbm5vdGF0aW9uLWNvbnRleHQtbWVudS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuXG4uYW5ub3RhdGlvbi1jb250ZXh0LW1lbnUtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uYW5ub3RhdGlvbi1jb250ZXh0LW1lbnUtaXRlbS5kZWxldGUge1xuICBjb2xvcjogI2RjMzU0NTtcbn1cblxuLmFubm90YXRpb24tY29udGV4dC1tZW51LWl0ZW0uZGVsZXRlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWJlZTtcbn1cblxuLmFubm90YXRpb24tdG9vbGJhci1jb2xvciB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLmFubm90YXRpb24tdG9vbGJhci1jb2xvcjo6LXdlYmtpdC1jb2xvci1zd2F0Y2gtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4uYW5ub3RhdGlvbi10b29sYmFyLWNvbG9yOjotd2Via2l0LWNvbG9yLXN3YXRjaCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBsb2FkaW5nLXByb2dyZXNzIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxufVxuLyogQ2FudmFzL0ltYWdlIFRvcCBJbmRpY2F0b3IgLSBGaXhlZCBwb3NpdGlvbiBzaG93aW5nIGltYWdlIG9yaWVudGF0aW9uICovXG4uY29tcGFzcy1jYW52YXMtaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDVweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGNvbG9yOiByZ2JhKDEwMCwgMjAwLCAyNTUsIDAuOSk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwgMCwgMCwgMC44KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogNTtcbn1cblxuI3NsZC1jYW52YXMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbiNzbGQtdG9vbGJhciB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBmbGV4LXNocmluazogMDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHotaW5kZXg6IDkwMDtcbn1cblxuI3NsZC10b29sYmFyIC5idXR0b246aG92ZXIsXG4jc2xkLXRvb2xiYXIgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbiNzbGQtdG9vbGJhciAudG9vbGJhci1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbiNzbGQtdG9vbGJhciAudG9vbGJhci1ncm91cDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbiNzbGQtdG9vbGJhciAudG9vbGJhci1ncm91cDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zcC1wYWlyIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtcGFpciBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGFjY2VudC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtcGFpciBpbnB1dFt0eXBlPXJhbmdlXTpkaXNhYmxlZCxcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLXBhaXIgaW5wdXRbdHlwZT1yYW5nZV06ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbmRpdi5teFBvcHVwTWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwNjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IHZhcigtLWgtb2Zmc2V0KSB2YXIoLS12LW9mZnNldCkgdmFyKC0tYmx1ci1yYWRpdXMpIHZhcigtLWJveHNoYWRvdyk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNHB4IDA7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHRib2R5IHRyLFxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHRib2R5IHRyOm50aC1jaGlsZChvZGQpLFxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHRib2R5IHRkIHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG59XG5kaXYubXhQb3B1cE1lbnUgdGFibGUubXhQb3B1cE1lbnUgdGQubXhQb3B1cE1lbnVJY29uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmRpdi5teFBvcHVwTWVudSB0YWJsZS5teFBvcHVwTWVudSB0ci5teFBvcHVwTWVudUl0ZW0gdGQsXG5kaXYubXhQb3B1cE1lbnUgdGFibGUubXhQb3B1cE1lbnUgdHIubXhQb3B1cE1lbnVJdGVtSG92ZXIgdGQge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmRpdi5teFBvcHVwTWVudSB0YWJsZS5teFBvcHVwTWVudSB0ci5teFBvcHVwTWVudUl0ZW06aG92ZXIsXG5kaXYubXhQb3B1cE1lbnUgdGFibGUubXhQb3B1cE1lbnUgdHIubXhQb3B1cE1lbnVJdGVtSG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpICFpbXBvcnRhbnQ7XG59XG5kaXYubXhQb3B1cE1lbnUgdGFibGUubXhQb3B1cE1lbnUgdHIubXhQb3B1cE1lbnVJdGVtOmhvdmVyIHRkLFxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHRyLm14UG9wdXBNZW51SXRlbUhvdmVyIHRkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpICFpbXBvcnRhbnQ7XG59XG5kaXYubXhQb3B1cE1lbnUgdGFibGUubXhQb3B1cE1lbnUgdHI6bm90KC5teFBvcHVwTWVudUl0ZW0pOm5vdCgubXhQb3B1cE1lbnVJdGVtSG92ZXIpIHRkIHtcbiAgcGFkZGluZzogMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGZvbnQtc2l6ZTogMDtcbn1cbmRpdi5teFBvcHVwTWVudSB0YWJsZS5teFBvcHVwTWVudSBociB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBtYXJnaW46IDRweCA4cHg7XG4gIGhlaWdodDogMDtcbn1cblxuLyogU0xEIENvbnRleHQgaWNvbnMgb24gc2VsZWN0ZWQgdmVydGV4ICovXG4jc2xkLWNvbnRleHQtaWNvbnMge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG59XG5cbi5zbGQtY3R4LWljb24ge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcywgYmFja2dyb3VuZCAwLjFzO1xuICB6LWluZGV4OiA1MDtcbn1cbi5zbGQtY3R4LWljb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xufVxuXG4vKiBQbGFuc2V0IFNMRCBwYWdlIGVkaXQgYnV0dG9uICovXG4ucGxhbnNldC1zbGQtZWRpdC1idG4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTJweDtcbiAgcmlnaHQ6IDEycHg7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiA2cHggMTRweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24taG92ZXIpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucGxhbnNldC1zbGQtZWRpdC1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xufVxuXG4vKiBTTEQgc2hhcGUgcGlja2VyIHBvcG92ZXIgKHNob3duIHdoZW4gY2xpY2tpbmcgKyBidXR0b25zIG9uIHNlbGVjdGVkIHZlcnRleCkgKi9cbiNzbGQtc2hhcGUtcGlja2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggdmFyKC0tYm94c2hhZG93KTtcbiAgcGFkZGluZzogNHB4IDA7XG4gIG1pbi13aWR0aDogMTMwcHg7XG4gIHotaW5kZXg6IDIwMDtcbn1cblxuLnNsZC1waWNrZXItaXRlbSB7XG4gIHBhZGRpbmc6IDVweCAxMnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnNsZC1waWNrZXItaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLm14UnViYmVyYmFuZCB7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogcmdiYSg3NCwgMTU4LCAyNTUsIDAuMSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLyogU0xEIE1pbmltYXAgKi9cbiNzbGQtbWluaW1hcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAzMHB4O1xuICByaWdodDogMjMwcHg7XG4gIHdpZHRoOiAxNjBweDtcbiAgaGVpZ2h0OiAxMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgei1pbmRleDogMTAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4jc2xkLW1pbmltYXAgc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyogU0xEIFN0YXR1cyBCYXIgKi9cbiNzbGQtc3RhdHVzLWJhciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgcGFkZGluZzogMnB4IDEycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTZweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBTTEQgU2lkZWJhciAqL1xuI3NsZC1zaWRlYmFyIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxMDA7XG59XG5cbi5zbGQtc2lkZWJhci1ib2R5IHtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogOHB4O1xufVxuXG4uc2xkLXNpZGViYXItc2VhcmNoIHtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNsZC1zaWRlYmFyLXNlYXJjaCBpbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA1cHggOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnNsZC1zaWRlYmFyLXNlYXJjaCBpbnB1dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5zbGQtZHJhZy1pdGVtIHtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGN1cnNvcjogZ3JhYjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMsIGJvcmRlci1jb2xvciAwLjE1cztcbn1cblxuLnNsZC1kcmFnLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4uc2xkLXNoYXBlLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cblxuLnNsZC1zaGFwZS1wcmV2aWV3IHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zbGQtc2hhcGUtY2F0IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC44cHg7XG4gIGNvbG9yOiAjNjY2O1xuICBwYWRkaW5nOiAxMHB4IDAgNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLnNsZC1zaGFwZS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLnNsZC1zaWRlYmFyLXRvZ2dsZS1idG4ge1xuICB3aWR0aDogMjBweDtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uc2xkLXNpZGViYXItdG9nZ2xlLWJ0bjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG59XG5cbi8qIFJpZ2h0IHByb3BlcnRpZXMgcGFuZWwgKi9cbiNzbGQtcHJvcHMtc2lkZWJhciB7XG4gIHdpZHRoOiAyMjBweDtcbiAgbWluLXdpZHRoOiAyMjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2xkLXByb3BzLWhlYWRlciB7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjhweDtcbiAgY29sb3I6ICM4ODg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbiNzbGQtcHJvcHMtc2lkZWJhciAuc2xkLXBhbmVsIHtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogOHB4O1xufVxuXG4uc2xkLXByb3BzLWVtcHR5IHtcbiAgY29sb3I6ICM2NjY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyNHB4IDhweDtcbn1cblxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zcC1yb3csXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyIC5zcC1yb3cge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLWxhYmVsLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtbGFiZWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLXZhbHVlLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtdmFsdWUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zcC1pbnB1dCxcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtaW5wdXQ6Zm9jdXMsXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyIC5zcC1pbnB1dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtZm9jdXMtYm9yZGVyKTtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtcGFpcixcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLXBhaXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zcC1wYWlyIGxhYmVsLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtcGFpciBsYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB3aWR0aDogMTRweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLW51bSxcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLW51bSB7XG4gIHdpZHRoOiA1NnB4O1xuICBwYWRkaW5nOiAzcHggNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLWlucHV0LXRleHQpO1xuICBmb250LXNpemU6IDExcHg7XG59XG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLW51bTpmb2N1cyxcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLW51bTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtZm9jdXMtYm9yZGVyKTtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtY29sb3IsXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyIC5zcC1jb2xvciB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cyk7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLXNlbGVjdCxcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zcC1zZWxlY3Q6Zm9jdXMsXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyIC5zcC1zZWxlY3Q6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0LWZvY3VzLWJvcmRlcik7XG59XG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLXdpZGUsXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyIC5zcC13aWRlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLXJhbmdlLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtcmFuZ2Uge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IDRweDtcbiAgYWNjZW50LWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtcmFuZ2UtdmFsLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtcmFuZ2UtdmFsIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHdpZHRoOiAzMnB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIERyYXcgVG9vbHMgQ29udGV4dCBNZW51ICovXG4uZHJhdy10b29scy1jb250ZXh0LW1lbnUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuNCksIDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgaW5zZXQ7XG4gIHotaW5kZXg6IDEwMDAxO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC10eXBlKTtcbiAgbWluLXdpZHRoOiAxODBweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRyYXctdG9vbHMtY29udGV4dC1tZW51LWhlYWRlciB7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uZHJhdy10b29scy1jb250ZXh0LW1lbnUtY2xvc2Uge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwIDJweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5kcmF3LXRvb2xzLWNvbnRleHQtbWVudS1jbG9zZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLmRyYXctdG9vbHMtY29udGV4dC1tZW51LWl0ZW0ge1xuICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZHJhdy10b29scy1jb250ZXh0LW1lbnUtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbi5kcmF3LXRvb2xzLWNvbnRleHQtbWVudS1pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgcGFkZGluZy1sZWZ0OiAxMXB4O1xufVxuXG4uZHJhdy10b29scy1jb250ZXh0LW1lbnUtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG5cbi5kcmF3LXRvb2xzLWNvbnRleHQtbWVudS1pY29uIHtcbiAgd2lkdGg6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi5kcmF3LXRvb2xzLWNvbnRleHQtbWVudS1sYWJlbCB7XG4gIGZsZXg6IDE7XG59XG5cbi8qIFBsYW5zZXQgZWRpdG9yIHRvb2xiYXIgKG1heEdyYXBoLWJhc2VkIFdZU0lXWUcgZWRpdG9yKSAqL1xuI3BsYW5zZXQtZWRpdG9yLXRvb2xiYXIge1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgei1pbmRleDogOTAwO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggdmFyKC0tYm94c2hhZG93KTtcbn1cblxuI3BsYW5zZXQtZWRpdG9yLXRvb2xiYXIgLmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIG1pbi13aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAzMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbn1cblxuI3BsYW5zZXQtZWRpdG9yLXRvb2xiYXIgLmJ1dHRvbiBpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4jcGxhbnNldC1lZGl0b3ItdG9vbGJhciAudG9vbGJhci1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAwIDhweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuI3BsYW5zZXQtZWRpdG9yLXRvb2xiYXIgLnRvb2xiYXItZ3JvdXA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4vKiDilIDilIDilIAgTW9kZSBTd2l0Y2hlciAoc2hhcmVkIGJldHdlZW4gU0xEIGFuZCBwbGFuc2V0IGVkaXRvciB0b29sYmFycykg4pSA4pSA4pSAICovXG4jcGxhbnNldC1lZGl0b3ItdG9vbGJhciAudG9vbGJhci1ncm91cC5tb2RlLXN3aXRjaGVyLFxuI3NsZC10b29sYmFyIC50b29sYmFyLWdyb3VwLm1vZGUtc3dpdGNoZXIge1xuICBnYXA6IDJweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbiNwbGFuc2V0LWVkaXRvci10b29sYmFyIC5tb2RlLXN3aXRjaGVyIC5idXR0b24sXG4jc2xkLXRvb2xiYXIgLm1vZGUtc3dpdGNoZXIgLmJ1dHRvbiB7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbiNwbGFuc2V0LWVkaXRvci10b29sYmFyIC5tb2RlLXN3aXRjaGVyIC5idXR0b246aG92ZXIsXG4jc2xkLXRvb2xiYXIgLm1vZGUtc3dpdGNoZXIgLmJ1dHRvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbiNwbGFuc2V0LWVkaXRvci10b29sYmFyIC5tb2RlLXN3aXRjaGVyIC5idXR0b24uYWN0aXZlLFxuI3NsZC10b29sYmFyIC5tb2RlLXN3aXRjaGVyIC5idXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dCk7XG4gIG9wYWNpdHk6IDE7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuI3BsYW5zZXQtZWRpdG9yLXRvb2xiYXIgLm1vZGUtc3dpdGNoZXIgLmJ1dHRvbi5hY3RpdmU6aG92ZXIsXG4jc2xkLXRvb2xiYXIgLm1vZGUtc3dpdGNoZXIgLmJ1dHRvbi5hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLyog4pSA4pSA4pSAIFBsYW5zZXQgcGFnZSBzaWRlYmFyIChtdWx0aS1wYWdlIHRodW1ibmFpbCBuYXZpZ2F0aW9uKSDilIDilIDilIAgKi9cbiNwbGFuc2V0LXBhZ2Utc2lkZWJhciB7XG4gIHdpZHRoOiAxNDBweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDEycHggOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG59XG5cbi5wbGFuc2V0LXBhZ2UtdGh1bWIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDRweDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbn1cblxuLnBsYW5zZXQtcGFnZS10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5wbGFuc2V0LXBhZ2UtdGh1bWIuYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMTIpO1xufVxuXG4ucGxhbnNldC1wYWdlLXRodW1iIGNhbnZhcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCAxcHggNHB4IHZhcigtLWJveHNoYWRvdyk7XG59XG5cbi5wbGFuc2V0LXBhZ2UtdGh1bWItbGFiZWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucGxhbnNldC1wYWdlLXRodW1iLmFjdGl2ZSAucGxhbnNldC1wYWdlLXRodW1iLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4vKiBQbGFuc2V0IHBhZ2VzIGNvbnRhaW5lciAqL1xuI3BsYW5zZXQtcGFnZXMtY29udGFpbmVyIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wbGFuc2V0LXBhZ2UtY2FudmFzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi8qIFBsYW5zZXQgcmlnaHQgc2lkZWJhciDigJQgcHJvcGVydHkgZWRpdG9yICsgc2hhcGVzIHBhbGV0dGUgKi9cbiNwbGFuc2V0LXByb3BzLXNpZGViYXIge1xuICB3aWR0aDogMjIwcHg7XG4gIG1pbi13aWR0aDogMjIwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnBsYW5zZXQtcHJvcHMtaGVhZGVyIHtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuOHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5wbGFuc2V0LXByb3BzLWJvZHkge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiA4cHg7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5wbGFuc2V0LXByb3BzLWVtcHR5IHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMjRweCA4cHg7XG59XG5cbi5wbGFuc2V0LXNoYXBlcy1wYWxldHRlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1heC1oZWlnaHQ6IDI4MHB4O1xufVxuXG4vKiBTaGFwZXMgcGFsZXR0ZSAqL1xuLnBsYW5zZXQtc2hhcGVzLWhpbnQge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIHBhZGRpbmc6IDZweCAxMHB4IDRweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ucGxhbnNldC1zaGFwZS1pdGVtIHtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IGdyYWI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzLCBib3JkZXItY29sb3IgMC4xcztcbn1cblxuLnBsYW5zZXQtc2hhcGUtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5wbGFuc2V0LXNoYXBlLWl0ZW06YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMTUpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4vKiDilIDilIDilIAgUGxhbiBTZXQgV2l6YXJkIE1vZGFsIOKUgOKUgOKUgCAqL1xuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXdpemFyZC1tb2RhbC1jb250ZW50IHtcbiAgbWF4LXdpZHRoOiA3NjBweDtcbiAgbWF4LWhlaWdodDogODV2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5tb2RhbC1ib2R5IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXRhYi1zdHJpcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXRhYiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpIHZhcigtLWJ1dHRvbi1yYWRpdXMpIDAgMDtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXRhYjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXRhYi5hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXRhYi1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNwbGFuc2V0LXdpemFyZC1tb2RhbCAucGxhbnNldC10YWItcGFuZWwuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNwbGFuc2V0LXdpemFyZC1tb2RhbCAucGxhbnNldC1zaGVldC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDhweCA2cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbiNwbGFuc2V0LXdpemFyZC1tb2RhbCAucGxhbnNldC1zaGVldC1yb3c6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbiNwbGFuc2V0LXdpemFyZC1tb2RhbCAucGxhbnNldC1zaGVldC1yb3cuZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ1O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtc2hlZXQtcm93IGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgbWFyZ2luOiAwO1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXNoZWV0LXJvdyAucHMtY29kZSB7XG4gIGZsZXg6IDAgMCA0OHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXNoZWV0LXJvdyAucHMtdGl0bGUge1xuICBmbGV4OiAxIDEgYXV0bztcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXNoZWV0LXJvdyAucHMtbm90ZSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtcmV2LWhlYWRlciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTBweCAxMTBweCAxZnIgMzJweDtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDAgMCA0cHggMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtcmV2LXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTBweCAxMTBweCAxZnIgMzJweDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDRweCAwO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtcmV2LXJvdyBpbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLWlucHV0LXRleHQpO1xuICBwYWRkaW5nOiA0cHggNnB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbiNwbGFuc2V0LXdpemFyZC1tb2RhbCAucGxhbnNldC1yZXYtcm93IC5wbGFuc2V0LXJldi1yZW1vdmUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXJldi1yb3cgLnBsYW5zZXQtcmV2LXJlbW92ZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbn1cblxuLyogRmx5b3V0IHBhbmVscyDigJQgYW5jaG9yZWQgdG8gdGhlIHJpZ2h0IG9mIHRoZSBEZXNpZ24gQXNzaXN0YW50IGJ5XG4gICBVSUhlbHBlci50b2dnbGVCb3R0b21CYXJQYW5lbCgpOyB0aGUgdG9wL2xlZnQgaGVyZSBhcmUgSlMtb3ZlcnJpZGRlblxuICAgZmFsbGJhY2tzICh1c2VkIGlmIHNjcmlwdGluZyBoYXNuJ3QgcG9zaXRpb25lZCB0aGUgcGFuZWwgeWV0KS4gKi9cbi5ib3R0b20tYmFyLXBhbmVsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDIwcHg7XG4gIGxlZnQ6IDI5OHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI4cHggcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgLyogRml4ZWQgd2lkdGg6IGNvbnRlbnQgKGUuZy4gd2VhdGhlciB0ZXh0KSBtdXN0IG5ldmVyIHJlc2l6ZSB0aGVcbiAgICAgcGFuZSDigJQgYSB3aWR0aCBjaGFuZ2UgbWlkLWRyYWcgbWFrZXMgc2xpZGVyIHRodW1icyBqdW1wLiAqL1xuICB3aWR0aDogNDIwcHg7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDI0cHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjRweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5ib3R0b20tYmFyLXBhbmVsLnNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmJvdHRvbS1iYXItcGFuZWwtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5ib3R0b20tYmFyLXBhbmVsLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuXG4uYm90dG9tLWJhci1wYW5lbC10aXRsZSBpIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4uYm90dG9tLWJhci1wYW5lbC1jbG9zZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBwYWRkaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xufVxuXG4uYm90dG9tLWJhci1wYW5lbC1jbG9zZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5ib3R0b20tYmFyLXNsaWRlci1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi5ib3R0b20tYmFyLXNsaWRlci1yb3c6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5ib3R0b20tYmFyLXNsaWRlci1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWluLXdpZHRoOiA4MHB4O1xufVxuXG4vKiBGaXhlZCBsYWJlbCB3aWR0aCBpbiB0aGUgc2hhZG93IHBhbmUgc28gdGhlIHNsaWRlciB0cmFjayBuZXZlclxuICAgcmVzaXplcyAodGh1bWIganVtcGluZyBtaWQtZHJhZykgYXMgXCJTZWFzb246IFN1bW1lciAoSnVuIDIxKVwiXG4gICBjaGFuZ2VzIGxlbmd0aDsgYWxzbyBrZWVwcyBib3RoIHNsaWRlcnMgdGhlIHNhbWUgbGVuZ3RoLiAqL1xuI3NoYWRvdy1wYW5lbCAuYm90dG9tLWJhci1zbGlkZXItbGFiZWwge1xuICB3aWR0aDogMTUwcHg7XG4gIGZsZXg6IG5vbmU7XG59XG5cbi5ib3R0b20tYmFyLXNsaWRlci1sYWJlbCBzcGFuIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmJvdHRvbS1iYXItc2xpZGVyIHtcbiAgZmxleDogMTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uYm90dG9tLWJhci1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5ib3R0b20tYmFyLXNsaWRlcjo6LW1vei1yYW5nZS10aHVtYiB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4uYm90dG9tLWJhci1wbGF5LWJ0biB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uYm90dG9tLWJhci1wbGF5LWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi8qIFNlY3Rpb24gY2FyZCAmIHRpdGxlIGZvciBsaWRhciBwYW5lbCAqL1xuLmJvdHRvbS1iYXItc2VjdGlvbi10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICBtYXJnaW46IDEycHggMCA2cHg7XG59XG5cbi5ib3R0b20tYmFyLXNlY3Rpb24tY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4uYm90dG9tLWJhci1jb250cm9scy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbn1cbi5ib3R0b20tYmFyLWNvbnRyb2xzLXJvdyA+IGJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMjhweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4uYm90dG9tLWJhci1jb250cm9scy1yb3cgPiBzZWxlY3QsXG4uYm90dG9tLWJhci1jb250cm9scy1yb3cgPiBkaXYge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi8qIGZvcm0tY29udHJvbCBvdmVycmlkZXMgaW5zaWRlIGJvdHRvbS1iYXIgcGFuZWxzICovXG4uYm90dG9tLWJhci1wYW5lbCAuZm9ybS1jb250cm9sIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDExcHg7XG59XG4uYm90dG9tLWJhci1wYW5lbCAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEodmFyKC0tc2Vjb25kYXJ5LWNvbG91ci1yZ2IpLCAwLjE1KTtcbn1cbi5ib3R0b20tYmFyLXBhbmVsIC5mb3JtLWNvbnRyb2wgb3B0aW9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4vKiBELXBhZCBsYXlvdXQgZm9yIGxpZGFyIHBvc2l0aW9uICovXG4uYm90dG9tLWJhci1kcGFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uYm90dG9tLWJhci1kcGFkLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG59XG5cbi5ib3R0b20tYmFyLWRpdmlkZXItdmVydGljYWwge1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBtYXJnaW46IDAgNHB4O1xufVxuXG4uYm90dG9tLWJhci1vZmZzZXQtZGlzcGxheSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA2cHg7XG59XG5cbi8qIE5vcnRoIFJvdGF0aW9uIENvbnRyb2wgU3R5bGVzIC0gaW5zaWRlIHRoZSBOb3J0aCBmbHlvdXQgcGFuZWwgKi9cbi5ub3J0aC1vZmZzZXQtc2VjdGlvbiB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5ub3J0aC1vZmZzZXQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xufVxuXG4ubm9ydGgtb2Zmc2V0LWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG59XG5cbi5ub3J0aC1vZmZzZXQtdGl0bGUge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubm9ydGgtb2Zmc2V0LXRvZ2dsZS1pY29uIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4ubm9ydGgtb2Zmc2V0LXRvZ2dsZS1pY29uLmV4cGFuZGVkIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLm5vcnRoLW9mZnNldC1jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi8qIEJvdHRvbSBiYXIgcGFuZWwgbm9ydGggY29udHJvbHMgcm93ICovXG4ubm9ydGgtY29udHJvbHMtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG59XG5cbi5ub3J0aC1idG4ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4ubm9ydGgtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbn1cblxuLm5vcnRoLWJ0bjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4ubm9ydGgtdmFsdWUge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1mYW1pbHk6IFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogNTBweDtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5ub3J0aC1yb3RhdGlvbi1idG4ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLm5vcnRoLXJvdGF0aW9uLWJ0bi1zbWFsbCB7XG4gIHBhZGRpbmc6IDZweCA4cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLm5vcnRoLXJvdGF0aW9uLWJ0bi1sYXJnZSB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5ub3J0aC1yb3RhdGlvbi1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xufVxuXG4ubm9ydGgtcm90YXRpb24tYnRuOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5ub3J0aC1yb3RhdGlvbi12YWx1ZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1mYW1pbHk6IFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogNDBweDtcbn1cblxuLm5vcnRoLXJvdGF0aW9uLXJlc2V0IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5ub3J0aC1yb3RhdGlvbi1yZXNldDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCA3NywgNzcsIDAuMik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDc3LCA3NywgMC42KTtcbiAgY29sb3I6ICNmZjZiNmI7XG59XG5cbi8qIFN0cmluZ2luZyBVSSBPdmVybGF5IFBhbmVsIFN0eWxlcyAqL1xuLnN0cmluZ2luZy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDgwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICB6LWluZGV4OiAxMDAwMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnN0cmluZ2luZy1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIG1pbi13aWR0aDogMzAwcHg7XG4gIG1heC13aWR0aDogMzQwcHg7XG4gIG1heC1oZWlnaHQ6IDgwdmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggdmFyKC0tYm94c2hhZG93KTtcbn1cblxuLnN0cmluZ2luZy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xufVxuXG4uc3RyaW5naW5nLWhlYWRlciBoNSB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnN0cmluZ2luZy1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5zdHJpbmdpbmctaGVhZGVyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbn1cblxuLnN0cmluZ2luZy1oZWFkZXItYnRuIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cywgYm9yZGVyLWNvbG9yIDAuMTVzO1xufVxuXG4uc3RyaW5naW5nLWhlYWRlci1idG46aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLW5hdi10ZXh0LWhvdmVyKTtcbn1cblxuLmludmVydGVyLW1vZGUtdGFicyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogLTEwcHggLTEycHggMTBweCAtMTJweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uaW52ZXJ0ZXItbW9kZS10YWIge1xuICBmbGV4OiAxO1xuICBwYWRkaW5nOiAxMnB4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cywgYm9yZGVyLWNvbG9yIDAuMTVzO1xufVxuXG4uaW52ZXJ0ZXItbW9kZS10YWI6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uaW52ZXJ0ZXItbW9kZS10YWIuYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uaW52ZXJ0ZXItbW9kZS10YWI6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiA4cHggMCAwIDA7XG59XG5cbi5pbnZlcnRlci1tb2RlLXRhYjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCA4cHggMCAwO1xufVxuXG4uc3RyaW5naW5nLXNlbGVjdG9ycyB7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uc3RyaW5naW5nLWNoaXAtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA2cHg7XG59XG5cbi5zdHJpbmdpbmctY2hpcC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNHB4O1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIGZsZXg6IDE7XG59XG5cbi5zdHJpbmdpbmctY2hpcC1yb3c6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc3RyaW5naW5nLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc3RyaW5naW5nLWNoaXA6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLW5hdi10ZXh0LWhvdmVyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xufVxuXG4uc3RyaW5naW5nLWNoaXAuYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uc3RyaW5naW5nLWNoaXAgLmNoaXAtY291bnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMCA1cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uc3RyaW5naW5nLWNoaXAuYWN0aXZlIC5jaGlwLWNvdW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnN0cmluZ2luZy1jaGlwIC5jaGlwLWNvbG9yIHtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zdHJpbmdpbmctY2hpcC1kZWxldGUge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBwYWRkaW5nOiA0cHggN3B4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMsIGJvcmRlci1jb2xvciAwLjE1cztcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cblxuLnN0cmluZ2luZy1jaGlwLWRlbGV0ZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbn1cblxuLnN0cmluZ2luZy1jaGlwLWFkZCB7XG4gIGJvcmRlci1zdHlsZTogZGFzaGVkO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLnN0cmluZ2luZy1jaGlwLWFkZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyKSwgMC4xKTtcbn1cblxuLmJyYW5jaGluZy1jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBtYXJnaW46IDJweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cywgYmFja2dyb3VuZCAwLjE1cywgY29sb3IgMC4xNXM7XG59XG5cbi5icmFuY2hpbmctY2hpcDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbmF2LXRleHQtaG92ZXIpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xufVxuXG4uYnJhbmNoaW5nLWNoaXAuYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGlwLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0KTtcbn1cblxuLmJyYW5jaGluZy1jaGlwLm92ZXJsb2FkZWQge1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjMxLCA3NiwgNjAsIDAuMTIpO1xufVxuXG4uYnJhbmNoaW5nLWNoaXAtZGVsZXRlIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmJyYW5jaGluZy1jaGlwLWRlbGV0ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIFN0cmluZ2luZyBpbnZlcnRlciBwYW5lcyDigJQgcG9zaXRpb25lZCBiZXNpZGUgcGFuZWwgY2x1c3RlcnMgaW4gb3J0aG8gKi9cbi5zdHJpbmdpbmctaW52LXBhbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBwYWRkaW5nOiA2cHggMDtcbiAgbWluLXdpZHRoOiAxMzBweDtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIodmFyKC0tYmx1ci1yYWRpdXMpKTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHZhcigtLWJveHNoYWRvdyk7XG59XG5cbi5zaXAtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIGN1cnNvcjogbW92ZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5zaXAtaGVhZGVyLmRyYWdnaW5nIHtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyKSwgMC4xNSk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4uc2lwLWhlYWRlci1tZXRhIHtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnNpcC1oZWFkZXItY291bnRlciB7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnNpcC1oZWFkZXItdGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxNjBweDtcbn1cblxuLnNpcC1uYXYge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzLCBjb2xvciAwLjEycztcbn1cblxuLnNpcC1uYXY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uc2lwLW5hdjpkaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uc2lwLW1wcHQge1xuICBwYWRkaW5nOiAzcHggMTBweCAxcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4zcHg7XG59XG5cbi5zaXAtc3RyaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDNweCAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnM7XG59XG5cbi5zaXAtc3RyaW5nOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbn1cblxuLnNpcC1zdHJpbmcuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyKSwgMC4xOCk7XG59XG5cbi5zaXAtY29sb3Ige1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNpcC1uYW1lIHtcbiAgZmxleDogMTtcbn1cblxuLnNpcC1jb3VudCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uc2lwLXN0cmluZy5hY3RpdmUgLnNpcC1jb3VudCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi8qIFN0cmluZ2luZyBwcm9ncmVzcyBiYXIgKi9cbi5zdHJpbmdpbmctcHJvZ3Jlc3MtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLnN0cmluZ2luZy1wcm9ncmVzcy1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLnN0cmluZ2luZy1wcm9ncmVzcy10cmFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGhlaWdodDogNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc3RyaW5naW5nLXByb2dyZXNzLWZpbGwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGVhc2U7XG59XG5cbi5zdHJpbmdpbmctcHJvZ3Jlc3MtY291bnRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tdG9wOiAycHg7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi8qIEF1dG8tc3RyaW5nIHNlY3Rpb24gKi9cbi5zdHJpbmdpbmctYXV0by1zdW1tYXJ5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgcGFkZGluZzogMnB4IDA7XG59XG5cbi5zdHJpbmdpbmctYXV0by1ib2R5IHtcbiAgcGFkZGluZzogNHB4IDAgMnB4O1xufVxuXG4uc3RyaW5naW5nLWF1dG8tbm90ZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nKTtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc3RyaW5naW5nLWF1dG8tY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuXG4uc3RyaW5naW5nLWF1dG8tbGFiZWwge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnN0cmluZ2luZy1hdXRvLXRvZ2dsZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnN0cmluZ2luZy1hdXRvLWJ0biB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDExcHg7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLnN0cmluZ2luZy1hdXRvLWNhcGFjaXR5IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc3RyaW5naW5nLWRvbmUtYnRuIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zdHJpbmdpbmctc2VsZWN0b3Itcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLnN0cmluZ2luZy1zZWxlY3Rvci1yb3cgbGFiZWwge1xuICBtaW4td2lkdGg6IDYwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnN0cmluZ2luZy1zZWxlY3Rvci1yb3cgc2VsZWN0IHtcbiAgZmxleDogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBhZGRpbmc6IDVweCA4cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnN0cmluZ2luZy1zZWxlY3Rvci1yb3cgc2VsZWN0OmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLnN0cmluZ2luZy1pbmZvIHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBwYWRkaW5nOiA2cHggMTBweDtcbn1cblxuLnN0cmluZ2luZy1pbmZvLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG4uc3RyaW5naW5nLWluZm8tcm93Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uc3RyaW5naW5nLXJhdGlvIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nLXRvcDogNHB4O1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uc3RyaW5naW5nLXJhdGlvIHNwYW46bGFzdC1jaGlsZCB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tc3VjY2Vzcyk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLnN0cmluZ2luZy1pbnN0cnVjdGlvbnMge1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5zdHJpbmdpbmctaW5zdHJ1Y3Rpb25zIHAge1xuICBtYXJnaW46IDVweCAwO1xufVxuXG4uc3RyaW5naW5nLWluc3RydWN0aW9ucyBrYmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG59XG5cbi5zdHJpbmdpbmctYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbn1cblxuLnN0cmluZ2luZy1hY3Rpb25zIGJ1dHRvbiB7XG4gIGZsZXg6IDE7XG59XG5cbi5zdHJpbmdpbmctd2FybmluZ3Mge1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIHBhZGRpbmc6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4uc3RyaW5naW5nLXdhcm5pbmdzLWhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXdhcm5pbmcpO1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLnN0cmluZ2luZy13YXJuaW5nLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiA0cHggNnB4O1xuICBtYXJnaW46IDRweCAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGdhcDogMnB4O1xufVxuXG4uc3RyaW5naW5nLXdhcm5pbmctZGFuZ2VyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyMzEsIDc2LCA2MCwgMC4yKTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbn1cblxuLnN0cmluZ2luZy13YXJuaW5nLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0MywgMTU2LCAxOCwgMC4yKTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1ub3RpZmljYXRpb24td2FybmluZyk7XG59XG5cbi5zdHJpbmdpbmctd2FybmluZy1pbmZvIHtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMik7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5zdHJpbmdpbmctd2FybmluZy1sZXZlbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi5zdHJpbmdpbmctd2FybmluZy1tZXNzYWdlIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLyogU3RyaW5naW5nIHByb2dyZXNzIGJ1dHRvbiBzdHlsZXMgKi9cbiNzdHJpbmdpbmctcHJvZ3Jlc3MtY29udGFpbmVyIC5idXR0b24tMTMge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4jc3RyaW5naW5nLXByb2dyZXNzLWNvbnRhaW5lciAuYnV0dG9uLTEzOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4vKiBTdHJpbmdpbmcgaWNvbiBidXR0b24gc3R5bGVzIChpbmxpbmUgd2l0aCB0aXRsZSkgKi9cbi5zdHJpbmdpbmctaWNvbi1idG4ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDEycHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zdHJpbmdpbmctaWNvbi1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLnN0cmluZ2luZy1pY29uLWJ0bjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4uc3RyaW5naW5nLWljb24tYnRuIGkge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogQ29tcGFjdCB0aGVtZS1hd2FyZSB0b2dnbGUgKi9cbi5jb21wYWN0LXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmNvbXBhY3QtdG9nZ2xlIGlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uY29tcGFjdC10b2dnbGUtc2xpZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uY29tcGFjdC10b2dnbGUtc2xpZGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGxlZnQ6IDJweDtcbiAgdG9wOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cbi5jb21wYWN0LXRvZ2dsZSBpbnB1dDpjaGVja2VkICsgLmNvbXBhY3QtdG9nZ2xlLXNsaWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4uY29tcGFjdC10b2dnbGUgaW5wdXQ6Y2hlY2tlZCArIC5jb21wYWN0LXRvZ2dsZS1zbGlkZXI6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMnB4KTtcbn1cblxuLmNvbXBhY3QtdG9nZ2xlIGlucHV0OmZvY3VzLXZpc2libGUgKyAuY29tcGFjdC10b2dnbGUtc2xpZGVyIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4vKiBUaGVtZWQgcmFkaW8g4oCUIHRoZSByb3VuZCBzaWJsaW5nIG9mIC5jb21wYWN0LXRvZ2dsZS4gUmVwbGFjZXMgdGhlIGJyb3dzZXJcbiAgIGRlZmF1bHQgKHdoaXRlIGRpc2Mgb24gZGFyayBjYXJkcykgYW55d2hlcmUgYSBmb3JtIG9mZmVycyBhIHJhZGlvIGNob2ljZS4gKi9cbi5wbC1yYWRpbyB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgbWFyZ2luOiAwO1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbn1cblxuLnBsLXJhZGlvOmNoZWNrZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLnBsLXJhZGlvOmNoZWNrZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuLnBsLXJhZGlvOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi8qIERyYXcgQnV0dG9uIEhvdmVyIEZseW91dCAqL1xuLmRyYXctYnV0dG9uLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kcmF3LWNhcmV0IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG59XG5cbi5kcmF3LWhvdmVyLWZseW91dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCB2YXIoLS1ib3hzaGFkb3cpO1xuICBtaW4td2lkdGg6IDE3MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC10eXBlKTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZSwgdmlzaWJpbGl0eSAwLjE1cyBlYXNlLCB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbiAgei1pbmRleDogMTAwMDAwO1xufVxuXG4uZHJhdy1idXR0b24td3JhcHBlcjpob3ZlciAuZHJhdy1ob3Zlci1mbHlvdXQge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5kcmF3LWhvdmVyLWZseW91dC1pdGVtIHtcbiAgcGFkZGluZzogOXB4IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uZHJhdy1ob3Zlci1mbHlvdXQtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbi5kcmF3LWhvdmVyLWZseW91dC1pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgcGFkZGluZy1sZWZ0OiAxMXB4O1xufVxuXG4uZHJhdy1ob3Zlci1mbHlvdXQtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG5cbi5kcmF3LWhvdmVyLWZseW91dC1pY29uIHtcbiAgd2lkdGg6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi5kcmF3LWhvdmVyLWZseW91dC1sYWJlbCB7XG4gIGZsZXg6IDE7XG59XG5cbi8qIE1vbnRobHkgUHJvZHVjdGlvbiBDaGFydCAqL1xuLm1vbnRobHktY2hhcnQtc2VjdGlvbiB7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tb250aGx5LWNoYXJ0LXRvZ2dsZSB7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ubW9udGhseS1jaGFydC10b2dnbGU6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubW9udGhseS1jaGFydC10b2dnbGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4ubW9udGhseS1jaGFydC1jaGV2cm9uIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLm1vbnRobHktY2hhcnQtc2VjdGlvbltvcGVuXSAubW9udGhseS1jaGFydC1jaGV2cm9uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLm1vbnRobHktY2hhcnQtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMTJweCAxMHB4IDhweCAxMHB4O1xufVxuXG4ubW9udGhseS1jaGFydC1sZWdlbmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxNHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLm1vbnRobHktY2hhcnQtbGVnZW5kLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbn1cblxuLm1vbnRobHktY2hhcnQtbGVnZW5kLXN3YXRjaCB7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLm1vbnRobHktY2hhcnQtYmFycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZ2FwOiAycHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIHBhZGRpbmc6IDAgMnB4O1xufVxuXG4ubW9udGhseS1iYXItZ3JvdXAge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGdhcDogMXB4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb250aGx5LWJhci13cmFwcGVyIHtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ubW9udGhseS1iYXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMnB4O1xuICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgZWFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubW9udGhseS1iYXI6aG92ZXIge1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5tb250aGx5LWJhci10b29sdGlwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IGNhbGMoMTAwJSArIDRweCk7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBwYWRkaW5nOiAzcHggNnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgei1pbmRleDogMTA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubW9udGhseS1iYXI6aG92ZXIgLm1vbnRobHktYmFyLXRvb2x0aXAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1vbnRobHktY2hhcnQtbGFiZWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAycHg7XG4gIHBhZGRpbmc6IDRweCAycHggMCAycHg7XG59XG5cbi5tb250aGx5LWNoYXJ0LWxhYmVsIHtcbiAgZmxleDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDlweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLm1vbnRobHktY2hhcnQtdG90YWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG59XG5cbi8qIEJhc2VsaW5lIFdpZGdldCAoY2VudGVyZWQgcG9seWdvbiBVSSBpbiBvcnRobyBtb2RlKSAqL1xuLmJhc2VsaW5lLXdpZGdldCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogODAwO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LWFycm93IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAxMXB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDExcHggMTFweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggdmFyKC0tYm94c2hhZG93KTtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzLCBiYWNrZ3JvdW5kIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzLCBib3gtc2hhZG93IDAuMnM7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtYXJyb3cubmVhcmJ5IHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIG9wYWNpdHk6IDAuOTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LWFycm93OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDZweCB2YXIoLS1ib3hzaGFkb3cpO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LWFycm93LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtYXJyb3cgc3ZnIHtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtYXJyb3cgc3ZnIHBhdGgge1xuICBmaWxsOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtYXJyb3cuYWN0aXZlIHN2ZyBwYXRoIHtcbiAgZmlsbDogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LWFycm93OmhvdmVyIHN2ZyBwYXRoIHtcbiAgZmlsbDogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LWFycm93LmFjdGl2ZTpob3ZlciBzdmcgcGF0aCB7XG4gIGZpbGw6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LW1lbnUtYnRuIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBoZWlnaHQ6IDIycHg7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogM3B4O1xuICBwYWRkaW5nOiAwIDdweDtcbiAgYm9yZGVyLXJhZGl1czogMTFweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAxcHggNHB4IHZhcigtLWJveHNoYWRvdyk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdHlwZSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMsIGJvcmRlci1jb2xvciAwLjEycywgYm94LXNoYWRvdyAwLjEycztcbn1cblxuLyogUXVpY2stYWN0aW9uIHNob3J0Y3V0IGJ1dHRvbnMgKHBhbmVscyAvIG9ic3RydWN0aW9ucykgKi9cbi5iYXNlbGluZS13aWRnZXQtcXVpY2stYnRuIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IHZhcigtLWgtb2Zmc2V0KSB2YXIoLS12LW9mZnNldCkgdmFyKC0tYmx1ci1yYWRpdXMpIHZhcigtLWJveHNoYWRvdyk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgb3BhY2l0eTogMC44O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzLCBib3JkZXItY29sb3IgMC4xNXMsIGNvbG9yIDAuMTVzLCBib3gtc2hhZG93IDAuMTVzO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LXF1aWNrLWJ0bjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAxcHggNnB4IHJnYmEoMCwgMTcwLCAyNTUsIDAuMyk7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtcXVpY2stYnRuLmRlbGV0ZTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbiAgYm94LXNoYWRvdzogMCAxcHggNnB4IHJnYmEoMjU1LCA3NywgNzksIDAuMyk7XG59XG5cbi8qIEluZm8gbGFiZWwgKHNsb3BlICsgZGlyZWN0aW9uIHRleHQpICovXG4uYnctaW5mby1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMnB4O1xufVxuXG4vKiBJbnZlcnRlZCBzbG9wZSBpbmRpY2F0b3Ig4oCUIG9ubHkgc2hvd24gd2hlbiBpbnZlcnRlZCAqL1xuLmJ3LWludmVydC1pY29uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG5cbi5idy1pbnZlcnQtaWNvbiBzdmcge1xuICB3aWR0aDogN3B4O1xuICBoZWlnaHQ6IDdweDtcbn1cblxuLmJ3LWludmVydC1pY29uIHN2ZyBwYXRoIHtcbiAgZmlsbDogIzAwYWFmZjtcbn1cblxuLmJhc2VsaW5lLXdpZGdldC1tZW51LWJ0bi5zbWFydCAuYnctaW52ZXJ0LWljb24gc3ZnIHBhdGgge1xuICBmaWxsOiAjYjA4OGY5O1xufVxuXG4vKiBDaGV2cm9uIGluZGljYXRpbmcgY2xpY2thYmxlIG1lbnUgKi9cbi5idy1jaGV2cm9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgb3BhY2l0eTogMC40O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTJzO1xufVxuXG4uYnctY2hldnJvbiBzdmcge1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDEwcHg7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtbWVudS1idG46aG92ZXIgLmJ3LWNoZXZyb24ge1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtbWVudS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4vKiBDb21wYWN0IHRpZXIg4oCUIHNtYWxsIHBvbHlnb246IHNsaW1tZXIgcGlsbCwgY2hldnJvbiBoaWRkZW4gKi9cbi5iYXNlbGluZS13aWRnZXQtbWVudS1idG4uY29tcGFjdCB7XG4gIGhlaWdodDogMTZweDtcbiAgcGFkZGluZzogMCA1cHg7XG4gIGdhcDogMnB4O1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLmJhc2VsaW5lLXdpZGdldC1tZW51LWJ0bi5jb21wYWN0IC5idy1jaGV2cm9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTWluaSB0aWVyIOKAlCB0aW55IHBvbHlnb246IGRvdC1tZW51IGJ1dHRvbiBvbmx5LCBsYWJlbCBoaWRkZW4gKi9cbi5iYXNlbGluZS13aWRnZXQtbWVudS1idG4ubWluaSB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LW1lbnUtYnRuLm1pbmkgLmJ3LWluZm8tbGFiZWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LW1lbnUtYnRuLm1pbmkgLmJ3LWNoZXZyb24ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4vKiBQb2x5Z29uIE11bHRpLVNlbGVjdCBVSSAqL1xuI3BvbHlnb24tbXVsdGktc2VsZWN0LXVpIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDgwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB6LWluZGV4OiAxMDAwMTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtaW4td2lkdGg6IDMyMHB4O1xuICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHZhcigtLWJveHNoYWRvdyk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LWhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LWhlYWRlciBpLmZhLWRyYXctcG9seWdvbiB7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1oZWFkZXIgYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3Qtc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1oZWlnaHQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1oZWlnaHQtaGVhZGVyID4gbGFiZWwge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5oZWlnaHQtbW9kZS10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgcGFkZGluZzogMnB4O1xufVxuXG4uaGVpZ2h0LW1vZGUtYnRuIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5oZWlnaHQtbW9kZS1idG4uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3Qtc2xpZGVyLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3Qtc2xpZGVyLXJvdyBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogNHB4O1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3Qtc2xpZGVyLXJvdyBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICB3aWR0aDogNjBweDtcbiAgcGFkZGluZzogNHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4jaGVpZ2h0LW1vZGUtaW5mbyB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC41O1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1hbGlnbiB7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LWFsaWduIGxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1hbGlnbiBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIG1hcmdpbjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3Qtc2VjdGlvbiA+IGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3QtcGl0Y2gtaW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LXBpdGNoLWlucHV0IGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gIHdpZHRoOiA0MHB4O1xuICBwYWRkaW5nOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LXBpdGNoLWlucHV0IHNwYW4ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuI211bHRpLXBvbHlnb24tc2xvcGUge1xuICB3aWR0aDogNTVweDtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDJweDtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LWFjdGlvbnMgYnV0dG9uIHtcbiAgZmxleDogMTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIEtleWJvYXJkIEhpbnRzIGluIFNoYWRvdyBDb250cm9scyAqL1xuLyogRGVzaWduIEFzc2lzdGFudCDigJQgdW5pZmllZCBndWlkZWQgc3RlcHBlciArIGNvbnRleHR1YWwgaGVscGVyIChib3R0b20tbGVmdCkgKi9cbi8qIFRoZSB0b29sYmFyIGlzIHJldGlyZWQg4oCUIGV2ZXJ5dGhpbmcgbGl2ZXMgaW4gdGhlIERlc2lnbiBBc3Npc3RhbnQuIEl0IHN0YXlzXG4gICBpbiB0aGUgRE9NIGFzIGEgc2V0IG9mIHByb3h5IHRhcmdldHMgdGhlIGJ1bmRsZSBjbGlja3MgYnkgaWQuXG4gICAhaW1wb3J0YW50IG92ZXJyaWRlcyB0aGUgaW5saW5lIGRpc3BsYXkgdG9nZ2xlcyBpbiB0aGUgU0xEL3BsYW5zZXQgY29udHJvbGxlcnMuICovXG4jdG9vbGJhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogRGVzaWduIEFzc2lzdGFudCDigJQgdG9wLWxlZnQsIHR1Y2tlZCB1bmRlciB0aGUgY29tcGFzcywgb3BlbnMgZG93bndhcmQgKi9cbiNkZXNpZ24tYXNzaXN0YW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIwcHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHdpZHRoOiAyODZweDtcbiAgLyogSGFyZC1jYXAgdGhlIHdob2xlIHBhbmUgdG8gdGhlIHZpZXdwb3J0IHNvIGl0IGNhbiBuZXZlciBydW4gb2ZmIHRoZSBib3R0b21cbiAgICAgKHRvcCBvZmZzZXQgKyBhIHNtYWxsIG1hcmdpbikuIFRoZSBib2R5IGZsZXhlcy9zY3JvbGxzIHdpdGhpbi4gKi9cbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQwcHgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG4gIHotaW5kZXg6IDkwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5kYS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMTBweCAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICAvKiBTdWJ0bGUgdGhlbWVkIGRpdmlkZXIgc2VwYXJhdGluZyB0aGUgaGVhZGVyIGZyb20gdGhlIHRvb2xzL3N0ZXBzIGJlbG93ICovXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLyogQ29tcGFzcyBjdWJlIOKAlCBlbWJlZGRlZCBmbHVzaCBpbiB0aGUgaGVhZGVyLCBsZWFkaW5nIHRoZSB2aWV3IGJ1dHRvbnMuIFRoZVxuICAgY3ViZSArIHJpbmcgY2FudmFzZXMgYXJlIGluamVjdGVkIGJ5IFRocmVlRENvbXBhc3M7IG5vIGNocm9tZSBzbyB0aGUgcGFuZWxcbiAgIHJlYWRzIHRocm91Z2ggaXQuICovXG4uZGEtaGVhZGVyLWNvbXBhc3Mge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG59XG5cbi5kYS10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogN3B4O1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kYS10aXRsZSBpIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLyogUHJvbW90ZWQgZGVkaWNhdGVkLXZpZXcgYnV0dG9ucyAoU0xELCBQbGFuIFNldCkgc2l0IHdoZXJlIHRoZSB0aXRsZSB3YXMuICovXG4uZGEtaGVhZGVyLXZpZXdzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIC8qIGZsZXgtc2hyaW5rOjAgc28gU0xEL1BsYW4gU2V0IGljb25zIG5ldmVyIHNocmluayBiZWxvdyB0aGVpciBib3ggYW5kIHNwaWxsXG4gICAgIG92ZXIgdGhlIGFjdGlvbiBpY29uczsgaGVhZGVyIGNvbXBhY3Rpb24ga2VlcHMgdGhlIG5hcnJvdyByb3cgZml0dGluZy4gKi9cbiAgZmxleC1zaHJpbms6IDA7XG59XG4uZGEtaGVhZGVyLXZpZXdzIC5kYS1hY3Rpb24ge1xuICBwYWRkaW5nOiA0cHggNnB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kYS1jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIG9wYWNpdHkgMC4xNXMgZWFzZTtcbn1cblxuLmRhLWNvbGxhcHNlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbn1cblxuI2Rlc2lnbi1hc3Npc3RhbnQuY29sbGFwc2VkIC5kYS1jb2xsYXBzZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG59XG5cbiNkZXNpZ24tYXNzaXN0YW50LmNvbGxhcHNlZCAuZGEtYm9keSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIOKUgOKUgCBCYXIgbGF5b3V0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgRHJhZ2dpbmcgdGhlIHdpZHRoIGhhbmRsZSBwYXN0IHRoZSBkb2NrIHRocmVzaG9sZCBzbmFwcyB0aGUgcGFuZSBpbnRvIGFcbiAgIHNpbmdsZS1yb3cgdG9vbGJhciBzcGFubmluZyB0aGUgdG9wIG9mIHRoZSBjYW52YXMgKHNhbWUgRE9NLCByb3dcbiAgIGRpcmVjdGlvbikuIENsaWNraW5nIHRoZSBoZWFkZXIvY2hldnJvbiB1bmRvY2tzIGJhY2sgdG8gdGhlIGV4cGFuZGVkXG4gICBwYW5lbDsgZHJhZ2dpbmcgdGhlIGhhbmRsZSBsZWZ0IHVuZG9ja3MgY29sbGFwc2VkLiBSb3cgb3JkZXI6IGhlYWRlclxuICAgYmxvY2sgwrcgcXVpY2sgbW9kZXMgwrcgc3VtbWFyeS9jaGlwczsgdGhlIHNjYWxlIHJ1bGVyIGhhbmdzIGNlbnRlcmVkXG4gICBiZWxvdzsgdGhlIGRvY2sgZ2hvc3QgcHJldmlld3MgdGhlIGxheW91dCBhIHJlbGVhc2UgY29tbWl0cyB0by4gKi9cbiNkZXNpZ24tYXNzaXN0YW50LmRhLWJhciB7XG4gIHJpZ2h0OiAxMHB4O1xuICB3aWR0aDogYXV0bztcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLyogVGhlIHNjYWxlIHJ1bGVyIGhhbmdzIGJlbG93IHRoZSBiYXIgYXMgYSB0YWIg4oCUIGRvbid0IGNsaXAgaXQuIChUaGVcbiAgICAgc2Nyb2xsYWJsZSBib2R5IGlzIGRpc3BsYXk6bm9uZSBoZXJlLCBzbyBub3RoaW5nIGVsc2UgY2FuIHNwaWxsLikgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI4cyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSk7XG59XG5cbi8qIFdoaWxlIGEgdG9wLWFuY2hvcmVkIGVkaXRvciBwYW5lIChwb2x5Z29uL3RyZWUgcHJvcGVydGllcywgc3RyaW5naW5nLFxuICAgYnJhbmNoaW5nKSBpcyBvcGVuLCB0aGUgYmFyIHR1Y2tzIHVwIGZsdXNoIHdpdGggdGhlIGNhbnZhcyBlZGdlIOKAlCBzdGlsbFxuICAgZnVsbHkgdmlzaWJsZSBhbmQgY2xpY2thYmxlIOKAlCBhbmQgdGhlIHBhbmVzIGJlbG93IHN0YXJ0IGJlbmVhdGggaXRzXG4gICB0dWNrZWQgYm90dG9tIGVkZ2UuICovXG4jZGVzaWduLWFzc2lzdGFudC5kYS1iYXIuZGEtYmFyLXlpZWxkIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNnB4KTtcbn1cblxuLyogSW4gYmFyIGxheW91dCB0aGUgZWRpdG9yIHBhbmVzIG9wZW4gYmVsb3cgdGhlICh0dWNrZWQpIGJhciBpbnN0ZWFkIG9mXG4gICBvdmVybGFwcGluZyBpdHMgcmlnaHQgZW5kLiBUaGUgZHJhdzNkIGNhbnZhcyBpcyBmdWxsLWJsZWVkICgxMDB2aCwgdG9wIDApLFxuICAgc28gdGhlIHR1Y2tlZCBiYXIgYm90dG9tIGlzIOKJiCA3MnB4IHZpZXdwb3J0IOKAlCBzYW1lIGJhbmQgYXMgdGhlIGhhcm5lc3MuICovXG5ib2R5OmhhcygjZGVzaWduLWFzc2lzdGFudC5kYS1iYXIpICNjYW52YXMtY29udGFpbmVyIC5vZmZjYW52YXMge1xuICB0b3A6IDgwcHg7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XG59XG5cbmJvZHk6aGFzKCNkZXNpZ24tYXNzaXN0YW50LmRhLWJhcikgLnN0cmluZ2luZy1vdmVybGF5IHtcbiAgdG9wOiA4MHB4O1xufVxuXG4vKiBTbmFwIG1vbWVudCBvbmx5IOKAlCBsaXZlIHdpZHRoIGRyYWdzIHN0YXkgMToxIHdpdGggdGhlIGN1cnNvci4gKi9cbiNkZXNpZ24tYXNzaXN0YW50LmRhLXNuYXAge1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI4cyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSksIHRyYW5zZm9ybSAwLjI4cyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSk7XG59XG5cbi8qIERyYWctZ2hvc3Q6IHdoaWxlIGEgaGFuZGxlIGRyYWcgaXMgaGVsZCBwYXN0IHRoZSBkb2NrL3VuZG9jayBhcm1cbiAgIGRpc3RhbmNlLCB0aGlzIG91dGxpbmUgKGNyZWF0ZWQgYnkgdGhlIGJ1bmRsZSBvbiBkb2N1bWVudC5ib2R5KVxuICAgcHJldmlld3MgdGhlIGxheW91dCBhIHJlbGVhc2UgY29tbWl0cyB0by4gKi9cbi5kYS1kb2NrLWdob3N0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IDEuNXB4IGRhc2hlZCByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC42NSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMsIDEycHgpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4wNyk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAvKiBBYm92ZSB0aGUgcGFuZSAoOTAwKTogdGhlIHVuZG9jayBwcmV2aWV3IG92ZXJsYXBzIHRoZSBiYXIsIGFuZCB0aGVcbiAgICAgZGFzaGVkIG91dGxpbmUgbXVzdCBzdGF5IHJlYWRhYmxlIG9uIHRvcCBvZiBpdC4gKi9cbiAgei1pbmRleDogOTAxO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuXG4uZGEtZG9jay1naG9zdC52aXNpYmxlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIC5kYS10b29scyB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbiNkZXNpZ24tYXNzaXN0YW50LmRhLWJhciAuZGEtcXVpY2stbW9kZXMge1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG59XG5cbiNkZXNpZ24tYXNzaXN0YW50LmRhLWJhciAuZGEtcmVzdWx0cyB7XG4gIG9yZGVyOiAyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4vKiBBIGNsb3NlZCByZXN1bHRzIHJvdyBtdXN0IGZyZWUgaXRzIGhvcml6b250YWwgc3BhY2UgaW4gdGhlIGJhciDigJQgdGhlXG4gICBwYW5lbCdzIG1heC1oZWlnaHQgY29sbGFwc2Ugb25seSBmcmVlcyB2ZXJ0aWNhbCBzcGFjZS4gKi9cbiNkZXNpZ24tYXNzaXN0YW50LmRhLWJhciAuZGEtcmVzdWx0czpub3QoLmlzLW9wZW4pIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIC5kYS1yZXN1bHRzLmlzLW9wZW4ge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBwYWRkaW5nOiAwIDEycHg7XG59XG5cbiNkZXNpZ24tYXNzaXN0YW50LmRhLWJhciAuZGEtcmVzdWx0cy10b2dnbGUge1xuICB3aWR0aDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIC5lbGVjdHJpY2FsLXJlYWRpbmVzcyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xufVxuXG4vKiBUaGUgcnVsZXIgbGVhdmVzIHRoZSByb3cgYW5kIGhhbmdzIGNlbnRlcmVkIHVuZGVyIHRoZSBiYXIg4oCUIHJvdyB3aWR0aCBpc1xuICAgdGhlIGJhcidzIHNjYXJjZXN0IHJlc291cmNlLCBvZmZjYW52YXMgZWRpdG9ycyBvd24gdGhlIHJpZ2h0IGJhbmQgYmVsb3dcbiAgIGl0LCBhbmQgdGhlIG5vdGlmaWNhdGlvbiB0b2FzdCBvd25zIHRoZSBsZWZ0LiAqL1xuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIC5zY2FsZS1ydWxlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyA2cHgpO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4vKiBUaGUgYWN0aXZlIHF1aWNrLW1vZGUgYnV0dG9uIGluIHRoZSBzYW1lIHJvdyBhbHJlYWR5IGNhcnJpZXMgdGhlIG1vZGVcbiAgIGhpZ2hsaWdodCwgc28gdGhlIGJhZGdlIHNsaW1zIHRvIGl0cyBjb2xvcmVkIGljb24gY2hpcC4gKi9cbiNkZXNpZ24tYXNzaXN0YW50LmRhLWJhciAuZGEtbW9kZS1pbmRpY2F0b3IgLmRhLW1vZGUtbGFiZWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBCYXIgc3BhY2UgcHJvdmlzaW9uczogYXMgdGhlIHZpZXdwb3J0IHRpZ2h0ZW5zLCBzaGVkIHdvcmRzIGJlZm9yZVxuICAgY2hyb21lIOKAlCBxdWljay1tb2RlIHdvcmRzIGFuZCB0aGUgbG9uZyBzdW1tYXJ5IHNlZ21lbnRzIGdvIGZpcnN0LCB0aGVuXG4gICBzaG9ydGN1dCBrZXlzIGFuZCByZWFkaW5lc3MtY2hpcCB0ZXh0LiBVbnRpbCBwYW5lbHMgZXhpc3RcbiAgIChgZGEtbm8tcGFuZWxzYCkgdGhlIHN1bW1hcnkvY2hpcHMvU0xEL1BsYW4tU2V0IGFyZSBhbGwgaGlkZGVuLCBzbyB0aGVcbiAgIHJvdyBoYXMgcm9vbSB0byBrZWVwIGZ1bGwgbGFiZWxzIG11Y2ggbG9uZ2VyIOKAlCBvbmx5IHRoZSBzbWFsbCBmaW5hbFxuICAgdGllciBhcHBsaWVzIHRvIGFuIGVtcHR5IHNjZW5lLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDE1MDBweCkge1xuICAjZGVzaWduLWFzc2lzdGFudC5kYS1iYXI6bm90KC5kYS1uby1wYW5lbHMpIC5kYS1xdWljay1tb2RlcyAuZGEtZ2xvYmFsLXdvcmQsXG4gICNkZXNpZ24tYXNzaXN0YW50LmRhLWJhcjpub3QoLmRhLW5vLXBhbmVscykgLmRhLXN1bS13aWRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gICNkZXNpZ24tYXNzaXN0YW50LmRhLWJhcjpub3QoLmRhLW5vLXBhbmVscykgLmRhLXN1bS1taWQsXG4gICNkZXNpZ24tYXNzaXN0YW50LmRhLWJhcjpub3QoLmRhLW5vLXBhbmVscykgLmRhLXF1aWNrLW1vZGVzIC5kYS1nbG9iYWwtbGFiZWwsXG4gICNkZXNpZ24tYXNzaXN0YW50LmRhLWJhcjpub3QoLmRhLW5vLXBhbmVscykgLmVsZWN0cmljYWwtcmVhZGluZXNzLWNoaXAgc3BhbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjZGVzaWduLWFzc2lzdGFudC5kYS1iYXI6bm90KC5kYS1uby1wYW5lbHMpIC5kYS1xdWljay1tb2RlcyAuZGEtZ2xvYmFsLWJ0biB7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICNkZXNpZ24tYXNzaXN0YW50LmRhLWJhciAuZGEtcXVpY2stbW9kZXMgLmRhLWdsb2JhbC1sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjZGVzaWduLWFzc2lzdGFudC5kYS1iYXIgLmRhLXF1aWNrLW1vZGVzIC5kYS1nbG9iYWwtYnRuIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG4uZGEtYm9keSB7XG4gIC8qIFNtYWxsIHRvcCBnYXAgc28gdGhlIGZpcnN0IHN0ZXAgaXNuJ3QgZmx1c2ggYWdhaW5zdCB0aGUgdG9vbHMgZGl2aWRlciAqL1xuICBwYWRkaW5nOiAxMHB4IDEycHggMTJweDtcbiAgLyogQ29udGVudC1oZWlnaHQgbm9ybWFsbHk7IHNocmlua3MgKyBzY3JvbGxzIG9ubHkgd2hlbiB0aGUgY2FwcGVkIHBhbmUgd291bGRcbiAgICAgb3RoZXJ3aXNlIG92ZXJmbG93IOKAlCBzbyBubyB3YXN0ZWQgZW1wdHkgc3BhY2UgZWl0aGVyLiAqL1xuICBmbGV4OiAwIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5kYS1ib2R5Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA2cHg7XG59XG4uZGEtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uZGEtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLmRhLXN0ZXBzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDAgOHB4O1xuICBwYWRkaW5nOiAwO1xufVxuXG4uZGEtc3RlcCB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4uZGEtc3RlcC1oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDVweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kYS1zdGVwLWhlYWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xufVxuXG4uZGEtc3RlcC1udW0ge1xuICBmbGV4OiAwIDAgMThweDtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmRhLXN0ZXAtbGFiZWwge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4uZGEtc3RlcC10aWNrIHtcbiAgY29sb3I6IHZhcigtLXByb2R1Y3Rpb24tY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uZGEtc3RlcC5hY3RpdmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5kYS1zdGVwLmFjdGl2ZSAuZGEtc3RlcC1oZWFkIHtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMTIpO1xufVxuXG4uZGEtc3RlcC5hY3RpdmUgLmRhLXN0ZXAtbnVtIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dCk7XG59XG5cbi5kYS1zdGVwLmFjdGl2ZSAuZGEtc3RlcC1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5kYS1zdGVwLmRvbmUgLmRhLXN0ZXAtbnVtIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJvZHVjdGlvbi1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tcHJvZHVjdGlvbi10ZXh0KTtcbn1cblxuLmRhLXN0ZXAuZG9uZSAuZGEtc3RlcC10aWNrIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmRhLXN0ZXAuc3VnZ2VzdGVkIC5kYS1zdGVwLW51bSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC41KTtcbn1cblxuLmRhLXN0ZXAuc3VnZ2VzdGVkIC5kYS1zdGVwLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZGEtc3RhZ2UtcGFuZWwge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiA0cHggNnB4IDhweCA5cHg7XG59XG5cbi5kYS1zdGFnZS1wYW5lbC5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmRhLWluc3RydWN0aW9uIHtcbiAgbWFyZ2luOiAwIDAgOHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjc7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG4uZGEtaW5zdHJ1Y3Rpb24gc3Ryb25nIHtcbiAgb3BhY2l0eTogMTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmRhLWxlZ2VuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogN3B4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjc7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLmRhLXN3YXRjaCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogNHB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi5kYS1zd2F0Y2guYmFzZWxpbmUge1xuICBiYWNrZ3JvdW5kOiAjZmY4YzAwO1xufVxuXG4uZGEtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA2cHg7XG59XG5cbi5kYS1hY3Rpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbi5kYS1hY3Rpb246aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4vKiBBY3Rpb24gYnV0dG9ucyBjb2xsYXBzZSB0byBpY29ucyAob25lIHJvdyk7IGxhYmVsICsgc2hvcnRjdXQgYXBwZWFyIHdoZW4gd2lkZSAqL1xuLmRhLWFjdGlvbi1sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kYS13aWRlIC5kYS1hY3Rpb24tbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi8qIFNob3J0Y3V0IGhpbnQgb24gYWN0aW9uIGJ1dHRvbnMg4oCUIHJldmVhbGVkIG9ubHkgd2hlbiB0aGUgcGFuZSBpcyB3aWRlICovXG4uZGEtYWN0aW9uLWtleSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kYS1taWQgLmRhLWFjdGlvbiAuZGEtYWN0aW9uLWtleSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgcGFkZGluZzogMCA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWtiZC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1rYmQtdGV4dCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWtiZC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IHZhcigtLWtiZC1zaGFkb3cpO1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLyogRGVkaWNhdGVkIHZpZXdzIChTTEQsIFBsYW4gU2V0KSDigJQgYWNjZW50ZWQgKHRoZXkgb3BlbiBmdWxsLXNjcmVlblxuICAgZGVzdGluYXRpb25zIHJhdGhlciB0aGFuIGZpcmluZyBhIHF1aWNrIGFjdGlvbik7IGxhYmVscyBmb2xsb3cgd2lkdGggdGllci4gKi9cbi5kYS1hY3Rpb24tdmlldyB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuNDUpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLmRhLWFjdGlvbi12aWV3IGkge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG4uZGEtYWN0aW9uLXZpZXc6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLmRhLWFjdGlvbi12aWV3OmhvdmVyIGkge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG4uZGEtYWN0aW9uLXZpZXcgLmRhLWFjdGlvbi1sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFNMRCAvIFBsYW4gU2V0IHJldmVhbCB0aGVpciB3b3JkcyBvbmx5IGF0IHRoZSB3aWRlIHRpZXIuIFdpdGggdGhlIGNvbXBhc3MgaW5cbiAgIHRoZSBoZWFkZXIsIG5hcnJvd2VyIHdpZHRocyBuZWVkIHRoZSByb29tIGZvciB0aGUgYWN0aW9uIGljb25zLCBzbyBrZWVwIHRoZXNlXG4gICBpY29uLW9ubHkgKHRoZXkgY2FycnkgdG9vbHRpcHMpIHVudGlsIHRoZXJlJ3Mgc3BhY2UuICovXG4uZGEtd2lkZSAuZGEtYWN0aW9uLXZpZXcgLmRhLWFjdGlvbi1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLyogXCJEb2N1bWVudHNcIiBleHBvcnQgZHJvcGRvd24gdHJpZ2dlciAoUmVwb3J0IC8gQk9NIC8gQ0FEIGxpdmUgaW5zaWRlIGl0KSAqL1xuLmRhLWV4cG9ydC1tZW51IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLmRhLWV4cG9ydC1tZW51IC5kYS1hY3Rpb24tZXhwb3J0IHtcbiAgZmxleDogMTtcbn1cblxuLmRhLWV4cG9ydC1jYXJldCB7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuXG4uZGEtZXhwb3J0LW1lbnUub3BlbiAuZGEtZXhwb3J0LWNhcmV0IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLmRhLW5lZWRzLXNlbGVjdGlvbi1tc2cge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW46IDhweCAwIDA7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24td2FybmluZyk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLmRhLXN0YWdlLXBhbmVsLmJsb2NrZWQgLmRhLW5lZWRzLXNlbGVjdGlvbi1tc2cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogU3RhZ2UtZ2xvYmFsIGFjdGlvbnMgKGUuZy4gQXV0byBkZXNpZ24pIHdvcmsgYWNyb3NzIGZhY2V0cyBhbmQgc3RheVxuICAgYWN0aXZlIHdoaWxlIHRoZSBzdGFnZSdzIHBlci1mYWNldCBhY3Rpb25zIGF3YWl0IGEgc2VsZWN0aW9uLiAqL1xuLmRhLXN0YWdlLXBhbmVsLmJsb2NrZWQgLmRhLWFjdGlvbjpub3QoW2RhdGEtc3RhZ2UtZ2xvYmFsXSkge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi8qIFBlci1zdGFnZSB0aXBzLCBncm91cGVkIGluIG9uZSBib3JkZXJlZCBib3ggd2l0aCBhIGRvbWVkIGJ1bGIgdGFiLiAqL1xuLmRhLWhpbnRzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDVweDtcbiAgbWFyZ2luOiAxOHB4IDAgNnB4O1xuICBwYWRkaW5nOiAxMHB4IDlweCA3cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbn1cblxuLyogQSBkb21lZCB0YWIgb24gdGhlIHRvcC1sZWZ0OiBpdHMgdG9wICsgc2lkZSBib3JkZXJzIGNvbnRpbnVlIHRoZSBib3ggZnJhbWUgdXBcbiAgIGFuZCBvdmVyIHRoZSBidWxiLCB0aGVuIGJhY2sgZG93biB0byB0aGUgdG9wIGVkZ2UuIEl0cyBjYXJkLWNvbG91cmVkIGZpbGwgbWFza3NcbiAgIHRoZSBzdHJhaWdodCB0b3AgYm9yZGVyIHJ1bm5pbmcgYmVuZWF0aCBpdC4gKi9cbi5kYS1oaW50cy10YWIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTE0cHg7XG4gIGxlZnQ6IDlweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAxNnB4IDE2cHggMCAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiAjZjZjNDUzO1xuICBmb250LXNpemU6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uZGEtdGlwIHtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2MiUsIHRyYW5zcGFyZW50KTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4uZGEtdGlwIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qIEhvc3Qtc3dhcHBhYmxlIGNvcHk6IHNob3duIG9ubHkgd2hpbGUgbm8gTGlkYXIvRFNNIGlzIGxvYWRlZC4gKi9cbi5kYS10aXAtbm9saWRhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNkZXNpZ24tYXNzaXN0YW50LmRhLW5vLWRzbSAuZGEtdGlwLW5vbGlkYXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogSW52ZXJzZTogYSB0aXAgcmVsZXZhbnQgb25seSB3aGVuIExpZGFyIElTIGxvYWRlZCDigJQgaGlkZGVuIHdpdGhvdXQgaXQuICovXG4jZGVzaWduLWFzc2lzdGFudC5kYS1uby1kc20gLmRhLXRpcC1saWRhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kYS13YXJuaW5nIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbjogMCAwIDEwcHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICAvKiBTbGlnaHQgdHJhbnNwYXJlbmN5IHNvZnRlbnMgdGhlIGZpbGwgd2l0aG91dCBkcm9wcGluZyBlbm91Z2ggY29udHJhc3RcbiAgICAgdG8gbWFrZSB0aGUgcGFpcmVkIHRleHQgY29sdW1uIGhhcmQgdG8gcmVhZC4gKi9cbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1ub3RpZmljYXRpb24td2FybmluZy1yZ2IpLCAwLjkpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nLXJnYiksIDAuOSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgLyogUGFpcmVkIHRleHQgY29sdW1uIGZyb20gdGhlIHRoZW1lIHNvIGNvcHkgc3RheXMgcmVhZGFibGUgb24gdGhlIGZpbGwuICovXG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24td2FybmluZy10ZXh0KTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4uZGEtd2FybmluZyA+IGkge1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXdhcm5pbmctdGV4dCk7XG59XG5cbi8qIENyZWFzZWQgZ2VvbWV0cnkgaXMgbW9yZSBzZXZlcmUgdGhhbiBhIG1pc3BsYWNlZCBiYXNlbGluZSDigJQgZGFuZ2VyIGNvbG91ci4gKi9cbi5kYS13YXJuaW5nLmNyZWFzZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlci1yZ2IpLCAwLjcpO1xuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlci1yZ2IpLCAwLjkpO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlci10ZXh0KTtcbn1cblxuLmRhLXdhcm5pbmcuY3JlYXNlID4gaSB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyLXRleHQpO1xufVxuXG4uZGEtd2FybmluZy5jcmVhc2UgLmRhLXdhcm5pbmctYnRuIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyLXRleHQpO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlci10ZXh0KTtcbn1cblxuLmRhLXdhcm5pbmcuY3JlYXNlIC5kYS13YXJuaW5nLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yOCk7XG59XG5cbi5kYS13YXJuaW5nIHNwYW4ge1xuICBmbGV4OiAxO1xufVxuXG4uZGEtd2FybmluZyBzdHJvbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLmRhLXdhcm5pbmctYnRuIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nLXRleHQpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24td2FybmluZy10ZXh0KTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kYS13YXJuaW5nLWJ0bjpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjEyKTtcbn1cblxuLmRhLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmRhLWdsb2JhbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNnB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5kYS1oZWFkZXItYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogM3B4O1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5kYS1oZWFkZXItYWN0aW9ucyAuZGEtZ2xvYmFsLWJ0biB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG59XG5cbi8qIEdyb3VwIGJyZWFrIGFmdGVyIHRoZSBkZXN0cnVjdGl2ZSBsZWFkIGJ1dHRvbiDigJQgdGhlIGdhcCBrZWVwcyB0aGVcbiAgIHRyYXNoIHZpc3VhbGx5IChhbmQgcGh5c2ljYWxseSkgYXBhcnQgZnJvbSB0aGUgc2F2ZSBjbHVzdGVyLiAqL1xuLmRhLWhlYWRlci1hY3Rpb25zIC5kYS1kYW5nZXIge1xuICBtYXJnaW4tcmlnaHQ6IDlweDtcbn1cblxuLyogQXV0by1zYXZlIHNuYXBzaG90IGRvdCDigJQgdGhlIGJ1bmRsZSBmbGFzaGVzICN1bmRvLXNuYXBzaG90LWZsYXNoIChsYXp5XG4gICBnZXRFbGVtZW50QnlJZCkgd2hlbmV2ZXIgYSBzY2VuZSBzbmFwc2hvdCBpcyBzYXZlZDsgaXQgbGl2ZXMgaW5zaWRlIHRoZVxuICAgRGVzaWduIEFzc2lzdGFudCdzIGhlYWRlciB1bmRvIGJ1dHRvbi4gKi9cbi5kYS1oZWFkZXItYWN0aW9ucyAuZGEtZ2xvYmFsLWJ0bltkYXRhLWFjdGlvbj11bmRvXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI3VuZG8tc25hcHNob3QtZmxhc2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMXB4O1xuICByaWdodDogMXB4O1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEwMCwgMTgwLCAyNTUsIDApO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuI3VuZG8tc25hcHNob3QtZmxhc2guZmxhc2gge1xuICBhbmltYXRpb246IHVuZG9Eb3QgMC44cyBlYXNlLW91dCBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyB1bmRvRG90IHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTAwLCAxODAsIDI1NSwgMC45KTtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwMCwgMTgwLCAyNTUsIDApO1xuICB9XG59XG4vKiBBY3RpdmUtbW9kZSBiYWRnZSBpbiB0aGUgaGVhZGVyIChpY29uIGFsd2F5czsgbGFiZWwgd2hlbiB3aWRlKSAqL1xuLyogQWN0aXZlLW1vZGUgYmFkZ2Ug4oCUIHNpdHMgaW4gdGhlIGVsZWN0cmljYWwtcmVhZGluZXNzIHJvdyBhcyBhIHNvbGlkIGFjY2VudCBjaGlwXG4gICAobWF0Y2hlcyB0aGUgY2hpcCBwaWxsIHNoYXBlOyBpdHMgY29sb3VyIG1hcmtzIHRoZSBsaXZlIG1vZGUpLiAqL1xuLmRhLW1vZGUtaW5kaWNhdG9yIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kYS1tb2RlLWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGEtZ2xvYmFsLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uZGEtZ2xvYmFsLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCk7XG59XG5cbi8qIERyYWctdG8tcmVzaXplIGhhbmRsZSBvbiB0aGUgcmlnaHQgZWRnZSAqL1xuLmRhLXJlc2l6ZS1oYW5kbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiA3cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgY3Vyc29yOiBldy1yZXNpemU7XG59XG5cbi5kYS1yZXNpemUtaGFuZGxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMjUpO1xufVxuXG4vKiBXaWRlIG1vZGUgKGRyYWdnZWQgcGFzdCB0aHJlc2hvbGQpOiBpY29uLW9ubHkgZ2xvYmFscyByZXZlYWwgbGFiZWxzICsga2V5cyAqL1xuLmRhLWdsb2JhbC1sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kYS1nbG9iYWwtbGFiZWwga2JkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0ta2JkLWJnKTtcbiAgY29sb3I6IHZhcigtLWtiZC10ZXh0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0ta2JkLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogdmFyKC0ta2JkLXNoYWRvdyk7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLyogR2xvYmFsczogaWNvbiDihpIgaWNvbiArIGtiZCAobWlkLCBvbmx5IHRob3NlIHdpdGggYSBzaG9ydGN1dCkg4oaSIGljb24gKyB3b3JkICsga2JkICh3aWRlKSAqL1xuLmRhLW1pZCAuZGEtZ2xvYmFscyAuZGEtZ2xvYmFsLWJ0bjpoYXMoa2JkKSB7XG4gIHdpZHRoOiBhdXRvO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHBhZGRpbmc6IDAgOXB4O1xuICBnYXA6IDZweDtcbiAgaGVpZ2h0OiAyOHB4O1xufVxuXG4uZGEtbWlkIC5kYS1nbG9iYWxzIC5kYS1nbG9iYWwtYnRuOmhhcyhrYmQpIC5kYS1nbG9iYWwtbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLyogSW4gdGhlIHB1cmUgbWlkZGxlIHRpZXIsIHRoZSBzaG9ydGN1dCBzaG93cyBidXQgdGhlIHdvcmQgaXMgaGlkZGVuICovXG4uZGEtbWlkOm5vdCguZGEtd2lkZSkgLmRhLWdsb2JhbHMgLmRhLWdsb2JhbC1idG46aGFzKGtiZCkgLmRhLWdsb2JhbC13b3JkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRhLXdpZGUgLmRhLWdsb2JhbHMgLmRhLWdsb2JhbC1idG4ge1xuICB3aWR0aDogYXV0bztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBwYWRkaW5nOiAwIDlweDtcbiAgZ2FwOiA2cHg7XG4gIGhlaWdodDogMjhweDtcbn1cblxuLmRhLXdpZGUgLmRhLWdsb2JhbHMgLmRhLWdsb2JhbC1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4vKiBUb29sIGJ1dHRvbnMgKG1pbmktdG9vbGJhcikg4oCUIHNob3duIGluIEJPVEggdGhlIGNvbGxhcHNlZCBhbmQgdGhlIGV4cGFuZGVkXG4gICBwYW5lLCBwaW5uZWQgbmVhciB0aGUgdG9wLiBMYWJlbGVkIGJ1dHRvbnMgYnkgZGVmYXVsdDsgdGhlIGNvbnRhaW5lciBxdWVyeVxuICAgYmVsb3cgY29sbGFwc2VzIHRoZW0gdG8gaWNvbi1vbmx5IHdoZW5ldmVyIHRoZSBwYW5lIGlzIHRvbyBuYXJyb3cgdG8ga2VlcCB0aGVcbiAgIHdob2xlIHJvdyBvbiBhIHNpbmdsZSBsaW5lLiAqL1xuLmRhLXRvb2xzIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLmRhLXF1aWNrLW1vZGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIE1vZGUgdG9nZ2xlczogaWNvbiAobmFycm93KSDihpIgaWNvbiArIGtiZCAobWlkKSDihpIgaWNvbiArIHdvcmQgKyBrYmQgKHdpZGUpICovXG4uZGEtcXVpY2stbW9kZXMgLmRhLWdsb2JhbC1idG4ge1xuICB3aWR0aDogMjhweDtcbiAgbWluLXdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uZGEtcXVpY2stbW9kZXMgLmRhLWdsb2JhbC1sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kYS1xdWljay1tb2RlcyAuZGEtZ2xvYmFsLWJ0bi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4xOCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5kYS1taWQgLmRhLXF1aWNrLW1vZGVzIC5kYS1nbG9iYWwtYnRuIHtcbiAgd2lkdGg6IGF1dG87XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgcGFkZGluZzogMCA5cHg7XG4gIGdhcDogNnB4O1xufVxuXG4uZGEtbWlkIC5kYS1xdWljay1tb2RlcyAuZGEtZ2xvYmFsLWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5kYS1taWQ6bm90KC5kYS13aWRlKSAuZGEtcXVpY2stbW9kZXMgLmRhLWdsb2JhbC13b3JkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogV2lkZSBlbm91Z2ggZm9yIHdvcmRzIOKAlCBsZXQgdGhlIHJvdyB3cmFwIHJhdGhlciB0aGFuIGNsaXAgKi9cbi5kYS13aWRlIC5kYS1xdWljay1tb2RlcyB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qIE92ZXJmbG93ICjii68pIG1lbnUg4oCUIGZpeGVkLXBvc2l0aW9uZWQgaW4gSlMgc28gb3ZlcmZsb3c6aGlkZGVuIHdvbid0IGNsaXAgaXQgKi9cbi5kYS1tb3JlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZGEtbW9yZS1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgbWluLXdpZHRoOiAxNzBweDtcbiAgcGFkZGluZzogNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB6LWluZGV4OiA5MDU7XG59XG5cbi5kYS1tb3JlLm9wZW4gLmRhLW1vcmUtbWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5kYS1tZW51LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDZweCA4cHg7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDExcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRhLW1lbnUtaXRlbSBpIHtcbiAgd2lkdGg6IDE2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uZGEtbWVudS1pdGVtIGtiZCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1rYmQtYmcpO1xuICBjb2xvcjogdmFyKC0ta2JkLXRleHQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1rYmQtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiB2YXIoLS1rYmQtc2hhZG93KTtcbiAgcGFkZGluZzogMCA0cHg7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuXG4uZGEtbWVudS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbn1cblxuLyogQ29sbGFwc2libGUgcm93LCBhbmltYXRlZCByYXRoZXIgdGhhbiBkaXNwbGF5LXRvZ2dsZWQgc28gaXQgZG9lc24ndCBmbGF0LWppdHRlclxuICAgYXMgdGhlIG1vZGUgY2hpcCByZXZlYWxzL2hpZGVzIGJldHdlZW4gdG9vbCBzd2FwcyBiZWZvcmUgcGFuZWxzIGV4aXN0LiBCYXNlIHN0YXRlXG4gICBpcyBjb2xsYXBzZWQgKG5vIGZpcnN0LXBhaW50IGZsYXNoKTsgLmlzLW9wZW4gZXhwYW5kcyBpdC4gRmFzdCwgd2l0aCBvcGFjaXR5XG4gICBlYXNpbmcgdGhlIGhlaWdodCBjaGFuZ2UuICovXG4uZGEtcmVzdWx0cyB7XG4gIC8qIEZpeGVkIGNocm9tZSBhYm92ZSB0aGUgc2Nyb2xsYWJsZSAuZGEtYm9keSDigJQgbmV2ZXIgbGV0IHRoZSBmbGV4IGNvbHVtblxuICAgICBzaHJpbmsgaXQsIG9yIGl0cyBvdmVyZmxvdzpoaWRkZW4gc2hhdmVzIHRoZSBjaGlwIGJvdHRvbXMuICovXG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXgtaGVpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBwYWRkaW5nOiAwIDEycHg7XG4gIGJvcmRlci1ib3R0b206IDAgc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMTZzIGVhc2UsIG9wYWNpdHkgMC4xM3MgZWFzZSwgcGFkZGluZy10b3AgMC4xNnMgZWFzZSwgcGFkZGluZy1ib3R0b20gMC4xNnMgZWFzZSwgYm9yZGVyLWJvdHRvbS13aWR0aCAwLjE2cyBlYXNlO1xufVxuXG4uZGEtcmVzdWx0cy5pcy1vcGVuIHtcbiAgbWF4LWhlaWdodDogMTYwcHg7XG4gIG9wYWNpdHk6IDE7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLmRhLWdsb2JhbC1idG4uZGEtZGFuZ2VyOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIpO1xufVxuXG4uZGEtcmVzdWx0cy10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDExcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRhLXJlc3VsdHMtdG9nZ2xlOmhvdmVyIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMTIpO1xufVxuXG4uZGEtcmVzdWx0cy1zdW1tYXJ5IHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qIFN1bW1hcnkgcmV2ZWFscyBtb3JlIHZhbHVlcyBhcyB0aGUgcGFuZSB3aWRlbnMgKHBhbmVscyArIG9mZnNldCBhbHdheXMpICovXG4uZGEtc3VtLW1pZCxcbi5kYS1zdW0td2lkZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kYS1taWQgLmRhLXN1bS1taWQge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5kYS13aWRlIC5kYS1zdW0td2lkZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLmRhLXJlc3VsdHMtY2hldnJvbiB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cblxuLyogVW5mb2xkZWQgaW50byB0aGUgUHJvZHVjdGlvbiB2aWV3OiBjaGV2cm9uIHBvaW50cyBiYWNrIChsZWZ0KSDigJQgY2xpY2sgdGhlXG4gICBzdW1tYXJ5IGFnYWluIHRvIHJldHVybiB0byB0aGUgZGVzaWduIHN0ZXBwZXIuICovXG4uZGEtcmVzdWx0cy10b2dnbGUub3BlbiAuZGEtcmVzdWx0cy1jaGV2cm9uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLyog4pSA4pSAIEJvZHkgdmlld3M6IERlc2lnbiDih4QgUHJvZHVjdGlvbiBzd2FwIGluIHBsYWNlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgVGhlIGhlYWRlciwgc3VtbWFyeS90b2dnbGUsIGFuZCByZXNpemUgaGFuZGxlIHN0YXkgbW91bnRlZCBhY3Jvc3MgYm90aCxcbiAgIHNvIFNhdmUvVW5kby9SZWRvIGFuZCByZXNpemluZyB3b3JrIHdoaWxlIHZpZXdpbmcgcHJvZHVjdGlvbi4gKi9cbi5kYS12aWV3IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtdmlldy1kZXNpZ24gLmRhLXZpZXctZGVzaWduLFxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtdmlldy1wcm9kdWN0aW9uIC5kYS12aWV3LXByb2R1Y3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogUXVpY2stbW9kZSB0b29sYmFyIGJlbG9uZ3MgdG8gdGhlIGRlc2lnbiB3b3JrZmxvdyDigJQgaGlkZSBpdCB3aGlsZSBicm93c2luZ1xuICAgcHJvZHVjdGlvbiAodW5sZXNzIGNvbGxhcHNlZCwgd2hlcmUgaXQgc3RheXMgYSBnbGFuY2VhYmxlIHF1aWNrLWFjdGlvbiBzdHJpcCkuICovXG4jZGVzaWduLWFzc2lzdGFudC5kYS12aWV3LXByb2R1Y3Rpb246bm90KC5jb2xsYXBzZWQpIC5kYS10b29scyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qICNwdi13YXR0cy1pbmZvIGlzIGFic29sdXRlLXBvc2l0aW9uZWQgYXMgYSBzdGFuZGFsb25lIHBhbmVsIGJ5IGRlZmF1bHQ7XG4gICBuZXV0cmFsaXNlIHRoYXQgbm93IHRoYXQgaXQncyBkb2NrZWQgaW5zaWRlIHRoZSBhc3Npc3RhbnQgYm9keS4gKi9cbi5kYS12aWV3LXByb2R1Y3Rpb24gLnB2LXdhdHRzLWluZm8ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi8qIFJlYWQtb25seSB2aWV3ZXI6IHRoZSBhc3Npc3RhbnQgYmVjb21lcyBhIHBsYWluIHByb2R1Y3Rpb24gcGFuZWwgKG5vIGVkaXRvclxuICAgY2hyb21lKSwgcmVwbGFjaW5nIHRoZSBvbGQgc3RhbmRhbG9uZSBmbHlvdXQuIFRoZSBTeXN0ZW0gc3ViLXRhYiAocmVuZGVyZWRcbiAgIG9ubHkgYnkgdGhlIGVkaXRvcidzIERlc2lnbkFzc2lzdGFudCkgaGFzIG5vIG1lYW5pbmcgdGhlcmUsIHNvIGRyb3AgaXQgdG9vLiAqL1xuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtcmVhZG9ubHkgLmRhLWhlYWRlcixcbiNkZXNpZ24tYXNzaXN0YW50LmRhLXJlYWRvbmx5IC5kYS1yZXN1bHRzLFxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtcmVhZG9ubHkgLmRhLXRvb2xzLFxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtcmVhZG9ubHkgLmRhLXJlc2l6ZS1oYW5kbGUsXG4jZGVzaWduLWFzc2lzdGFudC5kYS1yZWFkb25seSAucHYtd2F0dHMtdGFiW2RhdGEtdGFiPWJhdHRlcnldLFxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtcmVhZG9ubHkgLnB2LXdhdHRzLXRhYltkYXRhLXRhYj1ib3NdLFxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtcmVhZG9ubHkgI21hcC1zY2FsZS1ydWxlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIOKUgOKUgCBTeXN0ZW0gc3ViLXRhYjogQk9NICsgYmF0dGVyeSBzdW1tYXJ5IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmRhLXN5c3RlbSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmRhLXN5cy1zZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogMTRweDtcbn1cblxuLmRhLXN5cy1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuXG4uZGEtc3lzLXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbjogMCAwIDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uZGEtc3lzLXRpdGxlIGkge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5kYS1zeXMtdGl0bGUgLmRhLXN5cy1zcmMge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZm9udC1zaXplOiA5cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbn1cblxuLmRhLXN5cy1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgZ2FwOiA2cHg7XG59XG5cbiNkZXNpZ24tYXNzaXN0YW50LmRhLW1pZCAuZGEtc3lzLWdyaWQsXG4jZGVzaWduLWFzc2lzdGFudC5kYS13aWRlIC5kYS1zeXMtZ3JpZCB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG59XG5cbi5kYS1zeXMtc3RhdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogN3B4IDhweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG59XG5cbi8qIFJhaWwtcGllY2VzIGNhcmQ6IHN0YWNrIGJhZGdlICsgaG92ZXIgcG9wb3ZlciB3aXRoIHRoZSBwZXItbGVuZ3RoIHNwbGl0ICovXG4uZGEtc3lzLXN0YXQtLXBvcCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmRhLXN5cy1iYWRnZSB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGEtc3lzLXBvcCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICBsZWZ0OiAwO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDU7XG4gIHBhZGRpbmc6IDZweCA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC40NSk7XG59XG5cbi5kYS1zeXMtc3RhdC0tcG9wOmhvdmVyIC5kYS1zeXMtcG9wIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5kYS1zeXMtcG9wLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxMnB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5kYS1zeXMtc3RhdCAudiB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG59XG5cbi5kYS1zeXMtc3RhdCAudiBzbWFsbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuXG4uZGEtc3lzLXN0YXQgLmsge1xuICBtYXJnaW4tdG9wOiAycHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uZGEtc3lzLWNoYXJ0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDhweDtcbiAgaGVpZ2h0OiA4NnB4O1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuICBwYWRkaW5nLXRvcDogNnB4O1xufVxuXG4uZGEtc3lzLWNoYXJ0IC5jb2wge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBnYXA6IDRweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZGEtc3lzLWNoYXJ0IC5iYXIge1xuICB3aWR0aDogNjglO1xuICBtaW4taGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcbn1cblxuLmRhLXN5cy1jaGFydCAuY29sLXZhbCB7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uZGEtc3lzLWNoYXJ0IC5jb2wtbGJsIHtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLmRhLXN5cy1jYXAge1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5kYS1zeXMtYmFua3Mge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xufVxuXG4uZGEtc3lzLWJhbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5kYS1zeXMtYmFuayAubXV0ZWQge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi5kYS1zeXMtZW1wdHkge1xuICBwYWRkaW5nOiA4cHggMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi5kYS1zeXMtYnRuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgcGFkZGluZzogN3B4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDclLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kYS1zeXMtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSAxMyUsIHRyYW5zcGFyZW50KTtcbn1cblxuLyogSW5saW5lIHJhY2tpbmcgY29uZmlnIChCYWxhbmNlIG9mIFN5c3RlbSB0YWIpICovXG4uZGEtYm9zLWNvbmZpZyB7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5kYS1ib3MtZmllbGQge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uZGEtYm9zLWdyaWQyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDEwcHg7XG59XG5cbi5kYS1ib3MtZmllbGQgbGFiZWwsXG4uZGEtYm9zLWZsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uZGEtYm9tLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDZweCA4cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNiUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5kYS1ib20taW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4uZGEtYm9zLWZsYWJlbCBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4vKiBSYWlsLWxlbmd0aCB0b2dnbGUgY2hpcHMg4oCUIGVuYWJsZWQgbGVuZ3RocyB0aGUgb3B0aW1pemVyIG1peGVzLiAqL1xuLmRhLWJvbS1jaGlwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA2cHg7XG59XG5cbi5kYS1ib20tY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA0JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGEtYm9tLWNoaXAgc21hbGwge1xuICBmb250LXNpemU6IDlweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uZGEtYm9tLWNoaXA6aG92ZXIge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4xNSk7XG59XG5cbi5kYS1ib20tY2hpcC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTYlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5kYS1ib20tY2hpcC5hY3RpdmUgc21hbGwge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbiNrZXlib2FyZC1oaW50cyB7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLmtiZC1oaW50cy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbn1cblxuLmtiZC1oaW50cy10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG5cbi5rYmQtdGFiLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMnB4O1xufVxuXG4ua2JkLXRhYiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMnB4IDZweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMsIGJhY2tncm91bmQgMC4xNXMsIG9wYWNpdHkgMC4xNXM7XG59XG5cbi5rYmQtdGFiOmhvdmVyIHtcbiAgb3BhY2l0eTogMC44O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xufVxuXG4ua2JkLXRhYi5hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tc2Vjb25kYXJ5LWNvbG91ci1yZ2IpLCAwLjEyKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4yNSk7XG59XG5cbi5rYmQtaGludC10ZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogNnB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmtiZC1oaW50LXRleHQgaSB7XG4gIGNvbG9yOiB2YXIoLS1wcm9kdWN0aW9uLWNvbG91cik7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ua2JkLWhpbnRzLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDNweDtcbiAgLyogQ29tcGFjdCBieSBkZWZhdWx0OyBzaWxreS1leHBhbmRzIG9uIGhvdmVyLCBzY3JvbGxhYmxlIGZvciBtb3JlIHRpcHMgKi9cbiAgbWF4LWhlaWdodDogOTJweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjRzIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbn1cbi5rYmQtaGludHMtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xufVxuLmtiZC1oaW50cy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5rYmQtaGludHMtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLmRhLWxvd2VyLmhpbnRzLW9wZW4gLmtiZC1oaW50cy1saXN0IHtcbiAgbWF4LWhlaWdodDogMzIwcHg7XG59XG5cbi5rYmQtaGludC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC44O1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4ua2JkLWhpbnQta2V5cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBmbGV4LXNocmluazogMDtcbiAgbWluLXdpZHRoOiA3MHB4O1xufVxuXG4ua2JkLWtleSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tbmF2LXRleHQpO1xuICBwYWRkaW5nOiAxcHggNXB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC10eXBlKTtcbiAgbWluLXdpZHRoOiAxOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ua2JkLXBsdXMge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjQ7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuXG4ua2JkLWRlc2Mge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjY7XG4gIGZsZXg6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIFRyZWUgTXVsdGktU2VsZWN0IFVJICovXG4jdHJlZS1tdWx0aXNlbGVjdC1wYW5lbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA4MHB4O1xuICByaWdodDogMjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgcGFkZGluZzogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgei1pbmRleDogMTAwMDE7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWluLXdpZHRoOiAzMjBweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCB2YXIoLS1ib3hzaGFkb3cpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1oZWFkZXIgZGl2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnRyZWUtbXVsdGktc2VsZWN0LWhlYWRlciBpLmZhLXRyZWUge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLnRyZWUtbXVsdGktc2VsZWN0LWhlYWRlciBidXR0b24ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE4cHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuXG4udHJlZS1tdWx0aS1zZWxlY3Qtc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1zZWN0aW9uID4gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1zZWN0aW9uIGlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBvdXRsaW5lOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1zZWN0aW9uIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1zZWN0aW9uIHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRyZWUtbXVsdGktc2VsZWN0LXNlY3Rpb24gc2VsZWN0IG9wdGlvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnRyZWUtbXVsdGktc2VsZWN0LXZhcmlhbmNlIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tc2Vjb25kYXJ5LWNvbG91ci1yZ2IpLCAwLjA4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xufVxuXG4udHJlZS12YXJpYW5jZS10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnRyZWUtdmFyaWFuY2UtdG9nZ2xlIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRyZWUtdmFyaWFuY2UtdG9nZ2xlIHNwYW4ge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4jdHJlZS12YXJpYW5jZS1jb250cm9scyB7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuXG4udHJlZS12YXJpYW5jZS1zbGlkZXIge1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG5cbi50cmVlLXZhcmlhbmNlLXNsaWRlcjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnRyZWUtdmFyaWFuY2Utc2xpZGVyIGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi50cmVlLXZhcmlhbmNlLXNsaWRlciBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnRyZWUtbXVsdGktc2VsZWN0LWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbn1cblxuLnRyZWUtbXVsdGktc2VsZWN0LWFjdGlvbnMgYnV0dG9uIHtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycztcbn1cblxuLnRyZWUtaW5zdHJ1Y3Rpb24tYm94IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm90aWZpY2F0aW9uLWluZm8pO1xuICBib3JkZXI6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWluZm8tdGV4dCk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi50cmVlLWJhY2stYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogNHB4IDA7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xufVxuXG4udHJlZS1iYWNrLWJ1dHRvbjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLmJhc2VsaW5lLXdpZGdldC1tZW51LWJ0bi5zbWFydCB7XG4gIGJvcmRlci1jb2xvcjogI2IwODhmOTtcbiAgY29sb3I6ICM3YzVjYmY7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtbWVudS1idG4uc21hcnQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICM5OTY2ZmY7XG4gIGNvbG9yOiAjNWEzZDllO1xufVxuXG4uc25hcC1ndWlkZS1tYXJrZXItYWxpZ24gLnNuYXAtZ3VpZGUtbGFiZWwtY29udGVudCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNlODM5ZjA7XG4gIC8qIE1hZ2VudGEgZm9yIG1hcmtlciBhbGlnbm1lbnQgc25hcHMgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMzIsIDU3LCAyNDAsIDAuMTUpIDAlLCByZ2JhKDIwLCAyMCwgMjAsIDAuODEpIDEwMCUpO1xufVxuXG4vKiBEb2NrZWQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgRGVzaWduIEFzc2lzdGFudDsgc2NhbGVSdWxlci5qcyBmbGlwcyBkaXNwbGF5IGluIG9ydGhvICovXG4uc2NhbGUtcnVsZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXR5cGUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nOiA4cHggMTJweDtcbn1cblxuLnJ1bGVyLWJhciB7XG4gIHdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5ydWxlci1iYXI6OmJlZm9yZSxcbi5ydWxlci1iYXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMnB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4ucnVsZXItYmFyOjpiZWZvcmUge1xuICBsZWZ0OiAwO1xufVxuXG4ucnVsZXItYmFyOjphZnRlciB7XG4gIHJpZ2h0OiAwO1xufVxuXG4ucnVsZXItbGFiZWwge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5ydWxlci1sYWJlbCAuZmVldCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG59XG5cbi8qIFRyZWUgQnV0dG9uIEhvdmVyIEZseW91dCAqL1xuLnRyZWUtYnV0dG9uLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50cmVlLWNhcmV0IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG59XG5cbi50cmVlLWhvdmVyLWZseW91dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCB2YXIoLS1ib3hzaGFkb3cpO1xuICBtaW4td2lkdGg6IDE3MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC10eXBlKTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZSwgdmlzaWJpbGl0eSAwLjE1cyBlYXNlLCB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbiAgei1pbmRleDogMTAwMDAwO1xufVxuXG4udHJlZS1idXR0b24td3JhcHBlcjpob3ZlciAudHJlZS1ob3Zlci1mbHlvdXQge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi50cmVlLWhvdmVyLWZseW91dC1pdGVtIHtcbiAgcGFkZGluZzogOXB4IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4udHJlZS1ob3Zlci1mbHlvdXQtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbi50cmVlLWhvdmVyLWZseW91dC1pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgcGFkZGluZy1sZWZ0OiAxMXB4O1xufVxuXG4udHJlZS1ob3Zlci1mbHlvdXQtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG5cbi50cmVlLWhvdmVyLWZseW91dC1pY29uIHtcbiAgd2lkdGg6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi50cmVlLWhvdmVyLWZseW91dC1sYWJlbCB7XG4gIGZsZXg6IDE7XG59XG5cbi50cmVlLWhvdmVyLWZseW91dC1kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgbWFyZ2luOiA0cHggMDtcbn1cblxuLyogT3B0aW9ucyBwYW5lbCBzdHlsZXMgKi9cbi5vcHRpb25zLXRvZ2dsZS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDJweCAwO1xufVxuXG4ub3B0aW9ucy10b2dnbGUtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm9wdGlvbnMtcHJlc2V0LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNnB4O1xufVxuXG4ub3B0aW9ucy1wcmVzZXQtYnRuIHtcbiAgZmxleDogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgcGFkZGluZzogNXB4IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5vcHRpb25zLXByZXNldC1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4ub3B0aW9ucy1wcmVzZXQtYnRuLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tc2Vjb25kYXJ5LWNvbG91ci1yZ2IpLCAwLjE4KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLyog4pSA4pSAIFNvbGFyIE1ldHJpY3MgQ3Vyc29yIFRvb2x0aXAg4pSA4pSAICovXG4uc29sYXItbWV0cmljcy10b29sdGlwIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjg4KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMTBweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgbWluLXdpZHRoOiAyNDBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnNtdC1oZWFkZXIge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG5cbi5zbXQtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDIwcHg7XG59XG5cbi5zbXQtbGFiZWwge1xuICBjb2xvcjogIzk5OTtcbn1cblxuLnNtdC12YWx1ZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zbXQtZGl2aWRlciB7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBtYXJnaW46IDVweCAwO1xufVxuXG4uc210LWdyYWRlLWV4Y2VsbGVudCB7XG4gIGNvbG9yOiAjNGFkZTgwO1xufVxuXG4uc210LWdyYWRlLWdvb2Qge1xuICBjb2xvcjogI2EzZTYzNTtcbn1cblxuLnNtdC1ncmFkZS1mYWlyIHtcbiAgY29sb3I6ICNmYmJmMjQ7XG59XG5cbi5zbXQtZ3JhZGUtcG9vciB7XG4gIGNvbG9yOiAjZjg3MTcxO1xufVxuXG4uc210LXNvdXJjZSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG5cbi5zbXQtZG91Z2hudXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIGdhcDogNnB4O1xuICBtYXJnaW46IDZweCAwIDRweDtcbn1cblxuLnNtdC1kb3VnaG51dC1jb2wge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uc210LWRvdWdobnV0LWtleSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICNlZWU7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xufVxuXG4uc210LWRvdWdobnV0LWRlc2Mge1xuICBmb250LXNpemU6IDlweDtcbiAgY29sb3I6ICM4ODg7XG59XG5cbi8qIOKUgOKUgCBXZWF0aGVyIGluZm8gcm93IGluIHNoYWRvdyBwYW5lbCDilIDilIAgKi9cbi5ib3R0b20tYmFyLXdlYXRoZXItcm93IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBtYXJnaW46IDhweCAwIDEycHggMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA2cHg7XG59XG5cbi8qIENvbmRpdGlvbiBhbmQgc3RhdHMgc3RhY2sgaW4gZml4ZWQgcm93cyDigJQgYSBzaWRlLWJ5LXNpZGUgbGF5b3V0XG4gICByZS13cmFwcyBhcyBsYWJlbCBsZW5ndGhzIGNoYW5nZSBwZXIgZGF5LCBqb2x0aW5nIHRoZSBwYW5lIGhlaWdodC4gKi9cbi53ZWF0aGVyLWluZm8tY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDZweDtcbn1cblxuLndlYXRoZXItaWNvbi1zZWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLndlYXRoZXItaWNvbi1zZWN0aW9uIGkge1xuICBmb250LXNpemU6IDE4cHg7XG4gIHdpZHRoOiAyNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi53ZWF0aGVyLXN0YXRzLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLndlYXRoZXItc3RhdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi53ZWF0aGVyLXN0YXQgaSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ud2VhdGhlci1oaW50IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIC8qIFJlc2VydmUgdHdvIGxpbmVzIHNvIGhpbnQgbGVuZ3RoIGNhbid0IGNoYW5nZSB0aGUgcGFuZSBoZWlnaHQgKi9cbiAgbWluLWhlaWdodDogMjZweDtcbn1cblxuLyogV2VhdGhlciBzdW1tYXJ5IGdyaWQgKGlycmFkaWFuY2UgcGFuZWwpICovXG4ud2VhdGhlci1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDhweCAxNnB4O1xufVxuXG4ud2VhdGhlci1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4ud2VhdGhlci1zZWN0aW9uLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLndlYXRoZXItcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAycHggMDtcbn1cblxuLndlYXRoZXItcm93IHNwYW46bGFzdC1jaGlsZCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi8qIOKUgOKUgCBDb25maWcgbW9kYWwgdGFicy9jYXJkcyAoU0xEICsgQmF0dGVyeSBkaWFsb2dzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5jZmctdGFicyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5jZmctdGFiIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC42NTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5jZmctdGFiLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uY2ZnLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI4MHB4LCAxZnIpKTtcbiAgZ2FwOiAxNHB4O1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG59XG5cbi5jZmctY2FyZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwYWRkaW5nOiAxNHB4IDE2cHg7XG59XG5cbi5jZmctY2FyZCA+IGgzIHtcbiAgbWFyZ2luOiAwIDAgMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5jZmctY2FyZC1oaW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgb3BhY2l0eTogMC42O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4uY2ZnLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxMnB4O1xuICBtYXJnaW46IDEwcHggMDtcbn1cblxuLmNmZy1yb3ctdGV4dCB7XG4gIGZsZXg6IDE7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLmNmZy1yb3ctdGV4dCAuaGVscC10ZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5iYXQtc3BlYy1jYXJkIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcbiAgZ2FwOiA0cHggMTRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBtYXJnaW46IDEwcHggMDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYmF0LXNwZWMtY2FyZCAuc3BlYy1sYWJlbCB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmJhdC1zcGVjLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTRweDtcbn1cblxuLmJhdC1zcGVjLXJvdyAuYmF0LXNwZWMtY2FyZCB7XG4gIGZsZXg6IDEgMSA1MCU7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmJhdC1zcGVjLXJvdyAuZm9ybS1ncm91cCB7XG4gIGZsZXg6IDEgMSA1MCU7XG4gIG1pbi13aWR0aDogMDtcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbi5jZmctc3VtbWFyeSB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbjogMTRweCAwIDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoNzQsIDE1OCwgMjU1LCAwLjA4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg3NCwgMTU4LCAyNTUsIDAuMyk7XG59XG5cbi5jZmctc3VtbWFyeS53YXJuIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyMzAsIDE2NywgMCwgMC4xKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzMCwgMTY3LCAwLCAwLjUpO1xufVxuXG4vKiBBZHZhbmNlZCBkaXNjbG9zdXJlIGluc2lkZSBhIGNhcmQg4oCUIHR1Y2tzIHNjYXJ5IGNvZGUtZGV0YWlsIGZpZWxkcyBhd2F5ICovXG4uY2ZnLWFkdmFuY2VkIHtcbiAgbWFyZ2luLXRvcDogMTJweDtcbn1cblxuLmNmZy1hZHZhbmNlZCA+IHN1bW1hcnkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgb3BhY2l0eTogMC42NTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uY2ZnLWFkdmFuY2VkID4gc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jZmctYWR2YW5jZWQgPiBzdW1tYXJ5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIuKWuFwiO1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuXG4uY2ZnLWFkdmFuY2VkW29wZW5dID4gc3VtbWFyeSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5jZmctYWR2YW5jZWRbb3Blbl0gPiBzdW1tYXJ5OjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbi5jZmctYWR2YW5jZWQgPiBzdW1tYXJ5OmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogQSB3aG9sZSBjZmctY2FyZCBtYWRlIGNvbGxhcHNpYmxlOiB0aGUgc3VtbWFyeSBzdGFuZHMgaW4gZm9yIHRoZSBoMyAqL1xuZGV0YWlscy5jZmctY2FyZCA+IHN1bW1hcnkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5cbmRldGFpbHMuY2ZnLWNhcmQgPiBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZGV0YWlscy5jZmctY2FyZCA+IHN1bW1hcnk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4pa4XCI7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgb3BhY2l0eTogMC42O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbn1cblxuZGV0YWlscy5jZmctY2FyZFtvcGVuXSA+IHN1bW1hcnk6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cblxuLyogQmF0dGVyeSBiYW5rIHJvd3MgaW4gdGhlIEJhdHRlcnkgU3RvcmFnZSBkaWFsb2cgKi9cbi5iYXQtYmFuay1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uYmF0LWJhbmstcm93IHNlbGVjdCB7XG4gIGZsZXg6IDI7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmJhdC1iYW5rLXJvdyBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICBmbGV4OiAwIDAgNjRweDtcbn1cblxuLmJhdC1iYW5rLXJvdyAuYnV0dG9uIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xufVxuXG4uYmF0LWFuYWx5c2lzLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTJweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpO1xufVxuXG4uYmF0LWFuYWx5c2lzLWhlcm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmJhdC1hbmFseXNpcy1oZXJvIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMC42NTtcbn1cblxuLmJhdC1hbmFseXNpcy1oZXJvIHN0cm9uZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5iYXQtYW5hbHlzaXMtc291cmNlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4zNSk7XG59XG5cbi5iYXQtYW5hbHlzaXMtc291cmNlLmhvdXJseSB7XG4gIGNvbG9yOiAjMGY3YTNiO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQ3LCAxNjQsIDkyLCAwLjEyKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDQ3LCAxNjQsIDkyLCAwLjMpO1xufVxuXG4uYmF0LWFuYWx5c2lzLXNvdXJjZS5tb250aGx5IHtcbiAgY29sb3I6ICM5YTZhMDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjMwLCAxNjcsIDAsIDAuMTIpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjMwLCAxNjcsIDAsIDAuMzUpO1xufVxuXG4uYmF0LWFuYWx5c2lzLXN0YXRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xuICBnYXA6IDhweDtcbn1cblxuLmJhdC1hbmFseXNpcy1zdGF0IHtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDc0LCAxNTgsIDI1NSwgMC4wOCk7XG4gIHBhZGRpbmc6IDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYmF0LWFuYWx5c2lzLXN0YXQgc3Ryb25nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLmJhdC1hbmFseXNpcy1zdGF0IHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMC42NTtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuXG4uYmF0LXJlYWRpbmVzcy1jaGlwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5iYXQtcmVhZGluZXNzLWNoaXAge1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMTIpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMjUpO1xufVxuXG4uYmF0LXJlYWRpbmVzcy1jaGlwLnJlYWR5IHtcbiAgY29sb3I6ICMwZjdhM2I7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDcsIDE2NCwgOTIsIDAuMTIpO1xuICBib3JkZXItY29sb3I6IHJnYmEoNDcsIDE2NCwgOTIsIDAuMyk7XG59XG5cbi5iYXQtcmVhZGluZXNzLWNoaXAud2FybiB7XG4gIGNvbG9yOiAjOWE2YTAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIzMCwgMTY3LCAwLCAwLjEyKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzMCwgMTY3LCAwLCAwLjM1KTtcbn1cblxuLmJhdC1hbmFseXNpcy1iYWNrdXAge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogMTBweDtcbiAgbWFyZ2luLXRvcDogMTJweDtcbn1cblxuLmJhdC1hbmFseXNpcy1iYWNrdXAgZGl2IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uYmF0LWFuYWx5c2lzLWJhY2t1cCBzcGFuLCAuYmF0LWFuYWx5c2lzLWJhY2t1cCBzbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcGFjaXR5OiAwLjY1O1xufVxuXG4uYmF0LWFuYWx5c2lzLWJhY2t1cCBzdHJvbmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtYXJnaW46IDJweCAwO1xufVxuXG4uYmF0LXZhbHVlLXBhbmVsIHtcbiAgbWFyZ2luLXRvcDogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg0NywgMTY0LCA5MiwgMC4yOCk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSg0NywgMTY0LCA5MiwgMC4wOCk7XG59XG5cbi5iYXQtdmFsdWUtdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uYmF0LXZhbHVlLXRpdGxlIHNwYW4ge1xuICBvcGFjaXR5OiAwLjc7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5iYXQtdmFsdWUtdGl0bGUgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAxN3B4O1xufVxuXG4uYmF0LXZhbHVlLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogOHB4O1xufVxuXG4uYmF0LXZhbHVlLWdyaWQgZGl2IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoNDcsIDE2NCwgOTIsIDAuMik7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmJhdC12YWx1ZS1ncmlkIHN0cm9uZywgLmJhdC12YWx1ZS1ncmlkIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmJhdC12YWx1ZS1ncmlkIHNwYW4ge1xuICBvcGFjaXR5OiAwLjY1O1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG5cbi5iYXQtYmFuay1jYXJkcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTgwcHgsIDFmcikpO1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLXRvcDogMTJweDtcbn1cblxuLmJhdC1iYW5rLWNhcmQge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMjUpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjA2KTtcbn1cblxuLmJhdC1iYW5rLWNhcmQgc3Ryb25nLCAuYmF0LWJhbmstY2FyZCBzcGFuLCAuYmF0LWJhbmstY2FyZCBzbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYmF0LWJhbmstY2FyZCBzcGFuLCAuYmF0LWJhbmstY2FyZCBzbWFsbCB7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLmJhdC1zZWFzb24tdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgbWFyZ2luLXRvcDogMTJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYmF0LXNlYXNvbi10YWJsZSB0aCwgLmJhdC1zZWFzb24tdGFibGUgdGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmc6IDZweCA0cHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uYmF0LXNlYXNvbi10YWJsZSB0aDpmaXJzdC1jaGlsZCwgLmJhdC1zZWFzb24tdGFibGUgdGQ6Zmlyc3QtY2hpbGQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uYmF0LWFuYWx5c2lzLW5vdGUge1xuICBtYXJnaW46IDEwcHggMCAwO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5iYXQtYW5hbHlzaXMtd2FybmluZ3Mge1xuICBtYXJnaW46IDEwcHggMCAwO1xuICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gIGNvbG9yOiAjYjU3OTAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmJhdC1hbmFseXNpcy1zdGF0cyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG4gIC5iYXQtYW5hbHlzaXMtYmFja3VwIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxuICAuYmF0LXZhbHVlLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxuICAuYmF0LWFuYWx5c2lzLWhlcm8ge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cbi8qIOKUgOKUgCBEZXNpZ24gQXNzaXN0YW50IGNvbnRyYXN0IHR1bmluZyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIFRoZSBicmFuZCAtLWJ1dHRvbi1ob3ZlciBhbmQgdGhlIGZpeGVkIC0tc2Vjb25kYXJ5LWNvbG91ciB0aW50IHJlbmRlclxuICAgYXMgbGlnaHQgcGVhY2gvcGluayB3YXNoZXMgb24gdGhlIGRhcmsgYXNzaXN0YW50IGNhcmQsIHNvIHRoZSBsaWdodFxuICAgLS10ZXh0LWNvbG91ciBvbiB0b3AgcmVhZHMgbG93LWNvbnRyYXN0ICh3b3JzdCBvbiB0aGUgcHJvZHVjdGlvbiBzdW1tYXJ5XG4gICBiYXIg4oCUIGl0cyA6aG92ZXIgYnJpZ2h0bmVzcyBmaWx0ZXIgbWFkZSBpdCBsaWdodGVyIHN0aWxsIOKAlCBhbmQgdGhlXG4gICBhY3RpdmUgc3RlcCkuIFRoZXNlIGRhLSogc3VyZmFjZXMgYXJlIHN1YnRsZSBlbGV2YXRpb25zLCBub3QgYnJhbmRcbiAgIGJ1dHRvbnMsIHNvIHBhaW50IHRoZW0gd2l0aCBhIG5ldXRyYWwgdGludCBkZXJpdmVkIGZyb20gLS10ZXh0LWNvbG91cjpcbiAgIGl0IGFsd2F5cyBzaXRzIG9uZSBzdGVwIG9mZiB0aGUgY2FyZCBhbmQga2VlcHMgdGV4dCBsZWdpYmxlIHVuZGVyIGFueVxuICAgdGhlbWUuIEFwcGVuZGVkIGxhc3Qgc28gaXQgd2lucyBvdmVyIHRoZSBiYXNlIC5kYS0qIHJ1bGVzLiAqL1xuLmRhLXJlc3VsdHMtdG9nZ2xlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA3JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uZGEtcmVzdWx0cy10b2dnbGU6aG92ZXIge1xuICBmaWx0ZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMTMlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5kYS1zdGVwLWhlYWQ6aG92ZXIsXG4uZGEtYWN0aW9uOmhvdmVyLFxuLmRhLWdsb2JhbC1idG46aG92ZXIsXG4uZGEtbWVudS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSAxMCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLyogQWN0aXZlIHN0ZXA6IGtlZXAgdGhlIGFjY2VudCBsZWZ0LWJvcmRlciBhcyB0aGUgY3VlLCBkcm9wIHRoZSBwaW5rIHdhc2ggKi9cbi5kYS1zdGVwLmFjdGl2ZSAuZGEtc3RlcC1oZWFkIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA5JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4vKiBGYWNldCBxdWljay1hY3Rpb25zIChSb3RhdGUgwrcgQXV0byDCtyBDYW5vcHkgwrcgRGVsZXRlKSDigJQgb25lIGZ1bGwtd2lkdGhcbiAgIHJvdyBvZiBjb21wYWN0LCB1bmlmb3JtIGljb24gdGlsZXMgaW5zdGVhZCBvZiBsb3VkIHNvbGlkLXBlYWNoIGJ1dHRvbnMgKi9cbiNwb2x5Z29uLWNvbnRyb2xzIC5mYWNldC1hY3Rpb24tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbjogMTJweDtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLmZhY2V0LWFjdGlvbi1idG4ge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgcGFkZGluZzogOXB4IDRweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTAuNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAuZmFjZXQtYWN0aW9uLWJ0biBpIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5mYWNldC1hY3Rpb24tYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSAxMiUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLmZhY2V0LWFjdGlvbi1idG4tLWRhbmdlcjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIpIDEyJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4vKiBQbGFjZSBwYW5lbHMvb2JzdHJ1Y3Rpb25zIHRvZ2dsZXMgaW50byBhbiBhY3RpdmUgXCJwbGFjaW5nXCIgc3RhdGUgKHRoZSBidW5kbGVcbiAgIGFkZHMgLnNvbGFyLXBhbmVsLWFjdGl2ZSAvIC5vYnN0cnVjdGlvbi1hY3RpdmUgYW5kIHN3YXBzIHRoZSBsYWJlbCB0b1xuICAgXCJFeGl0IChlc2MpXCIpIOKAlCBzaG93IGl0IGFzIGEgZmlsbGVkIGFjY2VudCB0aWxlIHdpdGggcHJvcGVyIGNvbnRyYXN0IHRleHRcbiAgIGluc3RlYWQgb2YgdGhlIGdsb2JhbCBwZWFjaC1vbi13aGl0ZSB0cmVhdG1lbnQgKi9cbiNwb2x5Z29uLWNvbnRyb2xzIC5mYWNldC1hY3Rpb24tYnRuLnNvbGFyLXBhbmVsLWFjdGl2ZSxcbiNwb2x5Z29uLWNvbnRyb2xzIC5mYWNldC1hY3Rpb24tYnRuLm9ic3RydWN0aW9uLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQpO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAuZmFjZXQtYWN0aW9uLWJ0bi5zb2xhci1wYW5lbC1hY3RpdmU6aG92ZXIsXG4jcG9seWdvbi1jb250cm9scyAuZmFjZXQtYWN0aW9uLWJ0bi5vYnN0cnVjdGlvbi1hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOTYpO1xufVxuXG4vKiBUaGUgZmFjZXQtZGltZW5zaW9ucyBibG9jayBpcyBoaWRkZW4gb24gdGhlIFBhbmVscy9PYnN0cnVjdGlvbnMgdGFicywgd2hpY2hcbiAgIGxlZnQgaXRzIHdyYXBwZXIgKyBzdGFja2VkIG1hcmdpbnMgYXMgYSB3aWRlIGVtcHR5IGdhcCBhYm92ZSB0aGUgYWN0aW9uIHJvdy5cbiAgIENvbGxhcHNlIHRoZSBlbXB0eSB3cmFwcGVyIGFuZCB0aWdodGVuIHRoZSBhY3Rpb24gcm93J3MgdG9wIG1hcmdpbiB0aGVyZS4gKi9cbiNwb2x5Z29uLWNvbnRyb2xzID4gLnNlY3Rpb24tY29udGVudDpoYXMoPiAjcG9seWdvbi1kaW1lbnNpb25zKSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgI3BhbmVsLW1vZGUtc2VjdGlvbiAuZmFjZXQtYWN0aW9uLXJvdyxcbiNwb2x5Z29uLWNvbnRyb2xzICNvYnN0cnVjdGlvbi1tb2RlLXNlY3Rpb24gLmZhY2V0LWFjdGlvbi1yb3cge1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi8qIFBhbmVscyB0YWIg4oCUIHByb2R1Y3Rpb24gc3VtbWFyeSBjYXJkIChtYXRjaGVzIHRoZSBTdXJmYWNlIHRhYidzIGNhcmQgc29cbiAgIHRoZSB0YWJzIHJlYWQgYXMgb25lIGZhbWlseTsgcmVwbGFjZXMgdGhlIGNyYW1wZWQgYmFkZ2UgZmxleC13cmFwKSAqL1xuI3BvbHlnb24tY29udHJvbHMgLnByb2QtY2FyZCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXRvcDogMTRweDtcbiAgcGFkZGluZzogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNSUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2QtdGl0bGUge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjZweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2Qtc2V0dGluZ3MtYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAyNnB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLXNldHRpbmdzLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLXN0YXRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDhweDtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2Qtc3RhdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgOSUsIHRyYW5zcGFyZW50KTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2Qtc3RhdC1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICBmb250LXNpemU6IDEwLjVweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAucHJvZC1zdGF0LXZhbHVlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAucHJvZC1kdWFsLXRpbHQge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAucHJvZC1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDZweCAxNnB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBmb250LXNpemU6IDExLjVweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2QtbWV0YS1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xufVxuXG4jcG9seWdvbi1jb250cm9scyAucHJvZC1tZXRhLWl0ZW0gPiBpIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjg1O1xufVxuXG4vKiBDb2xsYXBzaWJsZSBhbmFseXRpY3MgKi9cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLWFuYWx5dGljcyB7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLWFuYWx5dGljcy10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLWFuYWx5dGljcy1jaGV2IHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2QtYW5hbHl0aWNzLXRvZ2dsZVthcmlhLWV4cGFuZGVkPXRydWVdIC5wcm9kLWFuYWx5dGljcy1jaGV2IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2QtZGl2aWRlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgbWFyZ2luOiA4cHggMDtcbn1cblxuLyog4pSA4pSAIFByaW1hcnktc3VyZmFjZSB0ZXh0IHJldHVuaW5nIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgVGhlc2UgY29udGFpbmVycyBzaXQgb24gdmFyKC0tcHJpbWFyeS1jb2xvdXIpLCB0aGUgbmF2aWdhdGlvbiBzdXJmYWNlLlxuICAgLS10ZXh0LWNvbG91ciBhbmQgLS1tdXRlZC10ZXh0IGFyZSB0dW5lZCBhZ2FpbnN0IHRoZSBQQUdFIGFuZCBDQVJEXG4gICBiYWNrZ3JvdW5kcywgc28gb24gdGhlIG5hdiBzdXJmYWNlIHRoZXkgcmVhZCBkaW0gb3IgdW5yZWFkYWJsZSB3aGVuZXZlclxuICAgYSBjb21wYW55J3MgbmF2IGRpZmZlcnMgZnJvbSBpdHMgcGFnZSBwYWxldHRlLiBSZW1hcHBpbmcgdGhlIHZhcmlhYmxlc1xuICAgaGVyZSByZXR1bmVzIGV2ZXJ5IGRlc2NlbmRhbnQ6IHByaW1hcnkgdGV4dCBiZWNvbWVzIG5hdl90ZXh0ICh0aGUgcGFpclxuICAgdGhlIFRoZW1lIG1vZGVsIHZhbGlkYXRlcyBmb3IgY29udHJhc3QpIGFuZCBtdXRlZCB0ZXh0IGJlY29tZXMgYSBkaW1tZWRcbiAgIG5hdl90ZXh0IGRlcml2ZWQgZnJvbSB0aGUgc2FtZSBiYXNlLCBzbyBpdCB0cmFja3MgZXZlcnkgdGhlbWUuIENhcmRcbiAgIHN1cmZhY2VzIGluc2lkZSB0aGUgRGVzaWduIEFzc2lzdGFudCAoZmx5b3V0cywgcGFuZWxzIG9uXG4gICB2YXIoLS1jYXJkLWNvbG91cikpIGludGVudGlvbmFsbHkga2VlcCB0aGUgcGFnZS10dW5lZCB2YXJpYWJsZXMuICovXG4jdG9vbGJhcixcbiNjYW52YXMtY29udGFpbmVyIC5vZmZjYW52YXMsXG4ub2ZmY2FudmFzLWJvdHRvbSxcbiNpbWFnZXJ5LXNlbGVjdGlvbi1tb2RhbCAuZm9ybS1zZWxlY3Qgb3B0aW9uLFxuI3NsZC10b29sYmFyLFxuI3NsZC1zdGF0dXMtYmFyLFxuI3NsZC1zaWRlYmFyLFxuI3NsZC1wcm9wcy1zaWRlYmFyLFxuLnNsZC1zaWRlYmFyLXRvZ2dsZS1idG4sXG4uZHJhdy10b29scy1jb250ZXh0LW1lbnUtaGVhZGVyLFxuI3BsYW5zZXQtZWRpdG9yLXRvb2xiYXIsXG4jcGxhbnNldC1wYWdlLXNpZGViYXIsXG4uYm90dG9tLWJhci1wbGF5LWJ0bixcbi5ub3J0aC1idG4sXG4uc3RyaW5naW5nLWNoaXAuYWN0aXZlLFxuLmhlaWdodC1tb2RlLXRvZ2dsZSxcbiN0cmVlLW11bHRpc2VsZWN0LXBhbmVsIHtcbiAgLS10ZXh0LWNvbG91cjogdmFyKC0tbmF2LXRleHQpO1xuICAtLW11dGVkLXRleHQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1uYXYtdGV4dCkgNjUlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi8qIENhcmQgc3ViLXN1cmZhY2VzIG5lc3RlZCBpbnNpZGUgdGhlIHJlbWFwcGVkIHByaW1hcnkgcGFuZWxzIHJldHVybiB0byB0aGVcbiAgIHBhZ2UtdHVuZWQgdGV4dCBjb2xvdXJzIChhIG5vLW9wIHdoZXJldmVyIHRoZSBwYXJlbnQgd2Fzbid0IHJlbWFwcGVkKS4gKi9cbiN0cmVlLWNvbnRyb2xzIC5vZmZjYW52YXMtaGVhZGVyLFxuI3NsZC1zaGFwZS1waWNrZXIsXG4uc2xkLXNpZGViYXItc2VhcmNoLFxuLnNsZC1kcmFnLWl0ZW0sXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyLFxuLnN0cmluZ2luZy1wYW5lbCxcbi5zdHJpbmdpbmctY2hpcCxcbi5zdHJpbmdpbmctaW52LXBhbmUsXG4uc3RyaW5naW5nLWluZm8sXG4uc3RyaW5naW5nLXdhcm5pbmdzLFxuLnN0cmluZ2luZy1pbnN0cnVjdGlvbnMga2JkLFxuLnN0cmluZ2luZy1zZWxlY3Rvci1yb3cgc2VsZWN0LFxuLnRyZWUtbXVsdGktc2VsZWN0LXNlY3Rpb24gaW5wdXQsXG4udHJlZS1tdWx0aS1zZWxlY3Qtc2VjdGlvbiBzZWxlY3Qge1xuICAtLXRleHQtY29sb3VyOiB2YXIoLS1wYWdlLXRleHQtY29sb3VyKTtcbiAgLS1tdXRlZC10ZXh0OiB2YXIoLS1wYWdlLW11dGVkLXRleHQpO1xufVxuXG4vKiA9PT09PSBXQVRUU0FQUC1PTkxZIChub3QgaW4gcG93ZXJsaWx5IOKAlCByZS1hZGQgYWZ0ZXIgYW55IHdob2xlc2FsZSBjb3B5KSA9PT09PVxuICAgVGhlIGdsb2JhbCBgLmRvbmU6OmFmdGVyIHsgY29udGVudDogXCJEb25lIVwiIH1gIC8gYC5sb2FkaW5nOjphZnRlcmBcbiAgIGxvYWRpbmctaW5kaWNhdG9yIHV0aWxpdHkgaW4gY3VzdG9tLnNjc3MgbGVha3MgaW50byB0aGUgYXNzaXN0YW50IGJlY2F1c2VcbiAgIGNvbXBsZXRlZCBzdGVwcyB1c2UgYC5kb25lYCwgYW5kIHRoZSB1bnBvc2l0aW9uZWQgc3RlcCBsZXRzIHRoYXQgYWJzb2x1dGVcbiAgIHBzZXVkbyBlc2NhcGUgdG8gdGhlIHBhbmVsJ3MgYm90dG9tLXJpZ2h0IGNvcm5lci4gU3VwcHJlc3MgaXQg4oCUIHRoZVxuICAgc3RlcHBlciBzaG93cyBpdHMgb3duIGdyZWVuIHRpY2suICovXG4jZGVzaWduLWFzc2lzdGFudCAuZG9uZTo6YWZ0ZXIsXG4jZGVzaWduLWFzc2lzdGFudCAubG9hZGluZzo6YWZ0ZXIge1xuICBjb250ZW50OiBub25lO1xufVxuXG4vKiBSZWRkaXQtc3R5bGUgVGhyZWFkZWQgQ29tbWVudHMgKi9cbi5jb21tZW50LXRocmVhZCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cblxuLmNvbW1lbnQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwLjc1cmVtIDA7XG59XG5cbi5jb21tZW50LWNvbnRlbnQge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uY29tbWVudC1tZXRhZGF0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLmNvbW1lbnQtYXV0aG9yIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICMxYTFhMWI7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xufVxuXG4uY29tbWVudC10aW1lIHtcbiAgY29sb3I6ICM3ODdjN2U7XG59XG5cbi5jb21tZW50LWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNzVyZW07XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLmNvbW1lbnQtYWN0aW9uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogIzg3OGE4YztcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMC4yNXJlbSAwO1xufVxuXG4uY29tbWVudC1hY3Rpb246aG92ZXIge1xuICBjb2xvcjogIzAwNzlkMztcbn1cblxuLmNvbW1lbnQtYWN0aW9uIGkge1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG59XG5cbi8qIE5lc3RlZCBjb21tZW50cyAqL1xuLnJlcGxpZXMge1xuICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZWRlZmYxO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG59XG5cbi8qIEluZGVudGF0aW9uIGxldmVscyBmb3IgZGVlcCBuZXN0aW5nICovXG4ucmVwbGllcyAucmVwbGllcyB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG59XG5cbi5yZXBsaWVzIC5yZXBsaWVzIC5yZXBsaWVzIHtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XG59XG5cbi5yZXBsaWVzIC5yZXBsaWVzIC5yZXBsaWVzIC5yZXBsaWVzIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07XG59XG5cbi8qIFJlcGx5IGZvcm0gKi9cbi5yZXBseS1mb3JtIHtcbiAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xufVxuXG4ucmVwbHktZm9ybS5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogQ29tbWVudCBmb3JtIGF0IHRoZSB0b3AgbGV2ZWwgKi9cbi5jb21tZW50LWZvcm0tY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbi5wcm9maWxlLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cblxuLnByb2ZpbGUtcGljIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLyogQ29tbWVudCBidWJibGUgcmVtb3ZlZCBhcyB3ZSdyZSB1c2luZyBhIG1vcmUgUmVkZGl0LWxpa2UgZmxhdCBzdHlsZSAqL1xuLyogVGhyZWFkZWQgQ29tbWVudHMgKi9cbi5yZXBsaWVzIHtcbiAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZTBlMGUwO1xufVxuXG4ucmVwbHktZm9ybSB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmNvbW1lbnQtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLyogTWVudGlvbnMgKi9cbi5zdWdnZXN0aW9uLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5zdWdnZXN0aW9uLWl0ZW0ge1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc3VnZ2VzdGlvbi1pdGVtOmhvdmVyLFxuLnN1Z2dlc3Rpb24taXRlbS5oaWdobGlnaHRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG5cbkBrZXlmcmFtZXMgc2hpbW1lciB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHNrZXdYKC0yMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpIHNrZXdYKC0yMGRlZyk7XG4gIH1cbn1cbi8qIFN1biBTaGltbWVyIEVmZmVjdCBmb3IgSGVybyBTZWN0aW9ucyAqL1xuQGtleWZyYW1lcyBzdW5TaGltbWVyIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuICA5MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi5zdW4tc2hpbW1lci1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IC0xMDAlO1xuICB3aWR0aDogMzAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc3VuLXNoaW1tZXItb3ZlcmxheSB7XG4gICAgbGVmdDogLTUwJTtcbiAgICB3aWR0aDogMjAwJTtcbiAgfVxufVxuXG4uc3VuLXNoaW1tZXItb3ZlcmxheS5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAzNSUsIHJnYmEoMjU1LCAyMjMsIDAsIDAuMTUpIDQ1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDUwJSwgcmdiYSgyNTUsIDIyMywgMCwgMC4xNSkgNTUlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDY1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcbiAgYW5pbWF0aW9uOiBzdW5TaGltbWVyIDEycyBpbmZpbml0ZSBlYXNlLWluLW91dCAycztcbiAgbWl4LWJsZW5kLW1vZGU6IG92ZXJsYXk7XG59XG5cbi5zdW4tc2hpbW1lci1vdmVybGF5LnNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgNDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDYwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcbiAgYW5pbWF0aW9uOiBzdW5TaGltbWVyIDEycyBpbmZpbml0ZSBlYXNlLWluLW91dCA4cztcbiAgbWl4LWJsZW5kLW1vZGU6IHNvZnQtbGlnaHQ7XG59XG5cbi5yYXRlLXNjaGVkdWxlLWJ1aWxkZXIge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnJhdGUtcGFsZXR0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5yYXRlLXBhbGV0dGUtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnJhdGUtcGFsZXR0ZS1jYXJkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG59XG5cbi5yYXRlLXBhbGV0dGUtY2FyZC5hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgyNDQsIDExNiwgMzYsIDAuMik7XG59XG5cbi5yYXRlLXBhbGV0dGUtY29sb3Ige1xuICB3aWR0aDogOHB4O1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnJhdGUtcGFsZXR0ZS1maWVsZHMge1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbiAgZmxleC1ncm93OiAxO1xufVxuXG4ucmF0ZS1wYWxldHRlLW5hbWUge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ucmF0ZS1wYWxldHRlLW5hbWU6Zm9jdXMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5yYXRlLXBhbGV0dGUtcmF0ZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbn1cblxuLnJhdGUtcGFsZXR0ZS1yYXRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycHg7XG59XG5cbi5yYXRlLXBhbGV0dGUtcmF0ZSAucmF0ZS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvcGFjaXR5OiAwLjU7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnJhdGUtcGFsZXR0ZS1yYXRlIC5yYXRlLWRvbGxhciB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgb3BhY2l0eTogMC41O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ucmF0ZS1wYWxldHRlLWlucHV0IHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB3aWR0aDogNTVweDtcbiAgcGFkZGluZzogMDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnJhdGUtcGFsZXR0ZS1pbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLnJhdGUtcGFsZXR0ZS1pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbi5yYXRlLXBhbGV0dGUtaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cblxuLnJhdGUtcGFsZXR0ZS1pbnB1dFt0eXBlPW51bWJlcl0ge1xuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxuLnJhdGUtcGFsZXR0ZS1yZW1vdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMnB4O1xuICByaWdodDogMnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMnB4IDVweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzO1xufVxuXG4ucmF0ZS1wYWxldHRlLXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuODtcbiAgY29sb3I6ICNlZjQ0NDQ7XG59XG5cbi5yYXRlLXBhbGV0dGUtYWRkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICBtaW4td2lkdGg6IDcwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGdhcDogMnB4O1xufVxuXG4ucmF0ZS1wYWxldHRlLWFkZDpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLnJhdGUtZ3JpZCB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5yYXRlLWdyaWQtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA3MHB4IHJlcGVhdCgyNCwgMWZyKTtcbn1cblxuLnJhdGUtZ3JpZC1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLnJhdGUtZ3JpZC1oZWFkZXIgLnJhdGUtZ3JpZC1ob3VyLWxhYmVsIHtcbiAgZm9udC1zaXplOiA5cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogNHB4IDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLnJhdGUtZ3JpZC1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLnJhdGUtZ3JpZC1jZWxsIHtcbiAgaGVpZ2h0OiAyOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHggMDtcbiAgY3Vyc29yOiBjcm9zc2hhaXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcztcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xufVxuXG4ucmF0ZS1ncmlkLWNlbGw6aG92ZXIge1xuICBvcGFjaXR5OiAwLjc1O1xufVxuXG4ucmF0ZS1ncmlkLWNlbGwuZmlsbGVkIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuXG4ucmF0ZS1lcmFzZXIuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgei1pbmRleDogMTtcbn1cblxuLmZsb2F0aW5nLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDFyZW0gMXJlbSAwLjc1cmVtIDFyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlcjogMnB4IHNvbGlkO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuLmZsb2F0aW5nLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5mbG9hdGluZy1pbnB1dDpmb2N1cyB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tY2FyZC1jb2xvdXIpLCB2YXIoLS1jYXJkLWNvbG91cikpIHBhZGRpbmctYm94LCBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjODlCNEZBLCAjRjM4QkE4LCAjQTZFM0ExKSBib3JkZXItYm94O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG4uZmxvYXRpbmctaW5wdXQ6dmFsaWQsIC5mbG9hdGluZy1pbnB1dDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSB7XG4gIHBhZGRpbmctdG9wOiAxLjRyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjZyZW07XG59XG5cbi5mbG9hdGluZy1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMXJlbTtcbiAgdG9wOiAxcmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHotaW5kZXg6IDM7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwIDAuMjVyZW07XG59XG4uZmxvYXRpbmctaW5wdXQ6Zm9jdXMgKyAuZmxvYXRpbmctbGFiZWwsIC5mbG9hdGluZy1pbnB1dDp2YWxpZCArIC5mbG9hdGluZy1sYWJlbCwgLmZsb2F0aW5nLWlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgLmZsb2F0aW5nLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjVyZW0pIHNjYWxlKDAuODUpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjODlCNEZBLCAjRjM4QkE4KTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBwYWRkaW5nOiAwIDAuNXJlbTtcbn1cblxuLmZsb2F0aW5nLWlucHV0LXNlbGVjdCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9J25vbmUnIHZpZXdCb3g9JzAgMCAyMCAyMCclM2UlM2NwYXRoIHN0cm9rZT0nJTIzOWNhM2FmJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMS41JyBkPSdtNiA4IDQgNCA0LTQnLyUzZSUzYy9zdmclM2VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDFyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEuMjVyZW0gMS4yNXJlbTtcbiAgcGFkZGluZy1yaWdodDogM3JlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC1zZWxlY3Q6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nbm9uZScgdmlld0JveD0nMCAwIDIwIDIwJyUzZSUzY3BhdGggc3Ryb2tlPSclMjM4OUI0RkEnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdtNiA4IDQgNCA0LTQnLyUzZSUzYy9zdmclM2VcIik7XG59XG5cbi5mbG9hdGluZy1pbnB1dC1udW1iZXI6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIC5mbG9hdGluZy1pbnB1dC1udW1iZXI6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cbi5mbG9hdGluZy1pbnB1dC1udW1iZXJbdHlwZT1udW1iZXJdIHtcbiAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG59XG5cbi5mbG9hdGluZy1pbnB1dC1oZWxwZXIge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG9wYWNpdHk6IDA7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41cmVtKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi5mbG9hdGluZy1pbnB1dC1oZWxwZXIuc2hvdyB7XG4gIG9wYWNpdHk6IDE7XG4gIG1heC1oZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuLmZsb2F0aW5nLWlucHV0LWhlbHBlci5keW5hbWljIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjA4KSwgcmdiYSgyNDMsIDEzOSwgMTY4LCAwLjA4KSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgbWF4LWhlaWdodDogMTUwcHg7XG4gIGFuaW1hdGlvbjogc2xpZGVJblVwIDAuNHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi5mbG9hdGluZy1pbnB1dC1oZWxwZXIuZHluYW1pYyBzcGFuIHtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5mbG9hdGluZy1pbnB1dC1oZWxwZXIuZHluYW1pYyBzdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWNvbG9yLCAjODlCNEZBKTtcbn1cbi5mbG9hdGluZy1pbnB1dC1oZWxwZXIuZHluYW1pYyBpIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIG1pbi13aWR0aDogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmZsb2F0aW5nLWlucHV0LWhlbHBlci5zdWNjZXNzLmR5bmFtaWMge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDE2NiwgMjI3LCAxNjEsIDAuMSksIHJnYmEoMTM3LCAxODAsIDI1MCwgMC4xKSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxNjYsIDIyNywgMTYxLCAwLjMpO1xufVxuLmZsb2F0aW5nLWlucHV0LWhlbHBlci5zdWNjZXNzLmR5bmFtaWMgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3MtY29sb3IsICNBNkUzQTEpO1xufVxuXG4uZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uIC5mbG9hdGluZy1pbnB1dCB7XG4gIHBhZGRpbmctbGVmdDogM3JlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC13aXRoLWljb24gLmZsb2F0aW5nLWxhYmVsIHtcbiAgbGVmdDogM3JlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC13aXRoLWljb24gLmZsb2F0aW5nLWlucHV0LWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDFyZW07XG4gIHRvcDogMXJlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB6LWluZGV4OiA0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uIC5mbG9hdGluZy1pbnB1dDpmb2N1cyB+IC5mbG9hdGluZy1pbnB1dC1pY29uIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuXG4uZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uLXJpZ2h0IC5mbG9hdGluZy1pbnB1dCB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogM3JlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC13aXRoLWljb24tcmlnaHQgLmZsb2F0aW5nLWxhYmVsIHtcbiAgbGVmdDogMXJlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC13aXRoLWljb24tcmlnaHQgLmZsb2F0aW5nLWlucHV0LWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxcmVtO1xuICBsZWZ0OiBhdXRvO1xuICB0b3A6IDFyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgei1pbmRleDogNDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmZsb2F0aW5nLWlucHV0LXdpdGgtaWNvbi1yaWdodCAuZmxvYXRpbmctaW5wdXQ6Zm9jdXMgfiAuZmxvYXRpbmctaW5wdXQtaWNvbiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLnNtYWxsIC5mbG9hdGluZy1pbnB1dCB7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbSAwLjVyZW0gMXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5zbWFsbCAuZmxvYXRpbmctbGFiZWwge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICB0b3A6IDAuNzVyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAuc21hbGwgLmZsb2F0aW5nLWlucHV0OmZvY3VzICsgLmZsb2F0aW5nLWxhYmVsLFxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLnNtYWxsIC5mbG9hdGluZy1pbnB1dDp2YWxpZCArIC5mbG9hdGluZy1sYWJlbCxcbi5mbG9hdGluZy1pbnB1dC1ncm91cC5zbWFsbCAuZmxvYXRpbmctaW5wdXQ6bm90KDpwbGFjZWhvbGRlci1zaG93bikgKyAuZmxvYXRpbmctbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNHJlbSkgc2NhbGUoMC44KTtcbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5zbWFsbC5mbG9hdGluZy1pbnB1dC13aXRoLWljb24gLmZsb2F0aW5nLWlucHV0LWljb24ge1xuICB0b3A6IDAuNzVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5zbWFsbC5mbG9hdGluZy1pbnB1dC13aXRoLWljb24tcmlnaHQgLmZsb2F0aW5nLWlucHV0LWljb24ge1xuICB0b3A6IDAuNzVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbn1cblxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLmxhcmdlIC5mbG9hdGluZy1pbnB1dCB7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMS4yNXJlbSAxcmVtIDEuMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAubGFyZ2UgLmZsb2F0aW5nLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgdG9wOiAxLjI1cmVtO1xuICBsZWZ0OiAxLjI1cmVtO1xufVxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLmxhcmdlIC5mbG9hdGluZy1pbnB1dDpmb2N1cyArIC5mbG9hdGluZy1sYWJlbCxcbi5mbG9hdGluZy1pbnB1dC1ncm91cC5sYXJnZSAuZmxvYXRpbmctaW5wdXQ6dmFsaWQgKyAuZmxvYXRpbmctbGFiZWwsXG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAubGFyZ2UgLmZsb2F0aW5nLWlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgLmZsb2F0aW5nLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjZyZW0pIHNjYWxlKDAuODUpO1xufVxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLmxhcmdlLmZsb2F0aW5nLWlucHV0LXdpdGgtaWNvbiAuZmxvYXRpbmctaW5wdXQtaWNvbiB7XG4gIHRvcDogMS4yNXJlbTtcbiAgbGVmdDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjc1cmVtO1xufVxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLmxhcmdlLmZsb2F0aW5nLWlucHV0LXdpdGgtaWNvbiAuZmxvYXRpbmctaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDMuNXJlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5sYXJnZS5mbG9hdGluZy1pbnB1dC13aXRoLWljb24gLmZsb2F0aW5nLWxhYmVsIHtcbiAgbGVmdDogMy41cmVtO1xufVxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLmxhcmdlLmZsb2F0aW5nLWlucHV0LXdpdGgtaWNvbi1yaWdodCAuZmxvYXRpbmctaW5wdXQtaWNvbiB7XG4gIHRvcDogMS4yNXJlbTtcbiAgcmlnaHQ6IDEuMjVyZW07XG4gIGxlZnQ6IGF1dG87XG4gIGhlaWdodDogMS43NXJlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5sYXJnZS5mbG9hdGluZy1pbnB1dC13aXRoLWljb24tcmlnaHQgLmZsb2F0aW5nLWlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogMy41cmVtO1xufVxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLmxhcmdlLmZsb2F0aW5nLWlucHV0LXdpdGgtaWNvbi1yaWdodCAuZmxvYXRpbmctbGFiZWwge1xuICBsZWZ0OiAxLjI1cmVtO1xufVxuXG4uZmxvYXRpbmctaW5wdXQtbG9hZGluZyAuZmxvYXRpbmctaW5wdXQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSkgMjUlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpIDc1JSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBhbmltYXRpb246IHNoaW1tZXIgMnMgaW5maW5pdGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5Aa2V5ZnJhbWVzIHNoaW1tZXIge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZ3JhZGllbnRTaGlmdCB7XG4gIDAlLCAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7XG4gIH1cbiAgNTAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcbiAgfVxufVxuQGtleWZyYW1lcyBzbGlkZUluVXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMykgMCUsIHRyYW5zcGFyZW50IDcwJSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxO1xufVxuXG4uZmxvYXRpbmctaW5wdXQ6Zm9jdXMgfiAuZmxvYXRpbmctaW5wdXQtZ3JvdXA6OmJlZm9yZSxcbi5mbG9hdGluZy1pbnB1dC1ncm91cDpmb2N1cy13aXRoaW46OmJlZm9yZSB7XG4gIHdpZHRoOiAxMjAlO1xuICBoZWlnaHQ6IDEyMCU7XG4gIG9wYWNpdHk6IDA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZmxvYXRpbmctaW5wdXQtZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIH1cbiAgLmZsb2F0aW5nLWlucHV0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5mbG9hdGluZy1pbnB1dCxcbiAgLmZsb2F0aW5nLWxhYmVsLFxuICAuZmxvYXRpbmctaW5wdXQtaGVscGVyLFxuICAuZmxvYXRpbmctaW5wdXQtaWNvbiB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICAuZmxvYXRpbmctaW5wdXQtZ3JvdXA6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnBhYy1jb250YWluZXIge1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDhweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxMDAwICFpbXBvcnRhbnQ7XG59XG4ucGFjLWNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjODlCNEZBLCAjRjM4QkE4LCAjQTZFM0ExLCAjODlCNEZBKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gIGFuaW1hdGlvbjogZ3JhZGllbnRTaGlmdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLnBhYy1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiA0cHggMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAxMnB4IDE2cHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjk1cmVtICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbn1cbi5wYWMtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC4wOCkgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCkgIWltcG9ydGFudDtcbn1cbi5wYWMtaXRlbS5wYWMtaXRlbS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTM3LCAxODAsIDI1MCwgMC4xNSksIHJnYmEoMjQzLCAxMzksIDE2OCwgMC4xNSkpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2cHgpICFpbXBvcnRhbnQ7XG59XG5cbi5wYWMtaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDIwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAycHggIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG59XG4ucGFjLWljb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi8J+TjVwiO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDAuMyk7XG59XG5cbi5wYWMtaXRlbTpob3ZlciAucGFjLWljb246OmJlZm9yZSxcbi5wYWMtaXRlbS1zZWxlY3RlZCAucGFjLWljb246OmJlZm9yZSB7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDApO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5wYWMtbWF0Y2hlZCB7XG4gIGNvbG9yOiAjODlCNEZBICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbn1cblxuLnBhYy1pdGVtLXF1ZXJ5IHtcbiAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnBhYy1jb250YWluZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgfVxuICAucGFjLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDE2cHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnBhYy1pdGVtIHtcbiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBhYy1pdGVtOmhvdmVyLCAucGFjLWl0ZW0ucGFjLWl0ZW0tc2VsZWN0ZWQge1xuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYWMtY29udGFpbmVyOjpiZWZvcmUge1xuICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBTRUxFQ1QyIFNUWUxJTkcgLSBCb290c3RyYXAgZm9ybS1jb250cm9sIG1hdGNoaW5nICovXG4uc2VsZWN0Mi1jb250YWluZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbi8qIFByZXZlbnQgaG9yaXpvbnRhbCBzY3JvbGwgZnJvbSBzZWxlY3QyIGRyb3Bkb3ducyAqL1xuLnNlbGVjdDItY29udGFpbmVyLS1vcGVuICsgLnNlbGVjdDItY29udGFpbmVyLS1kcm9wZG93biB7XG4gIG1heC13aWR0aDogMTAwdncgIWltcG9ydGFudDtcbn1cblxuLyogRW5zdXJlIGRyb3Bkb3ducyBpbnNpZGUgbW9kYWxzIGFuZCBjb250YWluZXJzIHJlc3BlY3QgYm91bmRhcmllcyAqL1xuLm1vZGFsIC5zZWxlY3QyLWNvbnRhaW5lcixcbi5jYXJkIC5zZWxlY3QyLWNvbnRhaW5lcixcbi5saWdodGNhcmQgLnNlbGVjdDItY29udGFpbmVyLFxuLmxpZ2h0Y2FyZG5iIC5zZWxlY3QyLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4ubW9kYWwgLnNlbGVjdDItZHJvcGRvd24sXG4uY2FyZCAuc2VsZWN0Mi1kcm9wZG93bixcbi5saWdodGNhcmQgLnNlbGVjdDItZHJvcGRvd24sXG4ubGlnaHRjYXJkbmIgLnNlbGVjdDItZHJvcGRvd24ge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogY2FsYygxLjVlbSArIDAuNzVyZW0gKyAycHgpICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4vKiBPdmVycmlkZSBTZWxlY3QyJ3MgZGVmYXVsdCB3aGl0ZSBiYWNrZ3JvdW5kIGFuZCBzdHlsaW5nICovXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCxcbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZTpiZWZvcmUsXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogRW5zdXJlIG5vIHdlaXJkIFNlbGVjdDIgZGVmYXVsdCBzdHlsaW5nICovXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIGZpbHRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC4zNzVyZW0gMi41cmVtIDAuMzc1cmVtIDAuNzVyZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuNSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBmbGV4OiAxICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG4gIGhlaWdodDogY2FsYygxLjVlbSArIDAuNzVyZW0pICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIHRvcDogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogMjBweCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cgYiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXdpZHRoOiA0cHggNHB4IDAgNHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljLnNlbGVjdDItY29udGFpbmVyLS1mb2N1cyAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1oLW9mZnNldCkgdmFyKC0tdi1vZmZzZXQpIHZhcigtLWJsdXItcmFkaXVzKSB2YXIoLS1ib3hzaGFkb3cpICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWRyb3Bkb3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHZhcigtLWgtb2Zmc2V0KSB2YXIoLS12LW9mZnNldCkgdmFyKC0tYmx1ci1yYWRpdXMpIHZhcigtLWJveHNoYWRvdykgIWltcG9ydGFudDtcbiAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAycmVtKSAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4vKiBFbnN1cmUgZHJvcGRvd24gY29udGFpbmVyIGhhcyBwcm9wZXIgei1pbmRleCAtIGZvcmNlIGxvd2VyIHRoYW4gb2ZmLWNhbnZhcyAqL1xuLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIHtcbiAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24ge1xuICB6LWluZGV4OiAxMDYwICFpbXBvcnRhbnQ7XG59XG5cbi8qIEZvcmNlIHotaW5kZXggZXZlbiB3aGVuIFNlbGVjdDIgYWRkcyBpbmxpbmUgc3R5bGVzICovXG4uc2VsZWN0Mi1kcm9wZG93bltzdHlsZSo9ei1pbmRleF0ge1xuICB6LWluZGV4OiAxMDYwICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lcltzdHlsZSo9ei1pbmRleF0ge1xuICB6LWluZGV4OiAxMDYwICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRhcmdldCBhbnkgU2VsZWN0MiBlbGVtZW50cyB0aGF0IG1pZ2h0IGdldCBoaWdoZXIgei1pbmRleCAqL1xuLnNlbGVjdDItZHJvcGRvd24sXG4uc2VsZWN0Mi1kcm9wZG93bi0tYmVsb3csXG4uc2VsZWN0Mi1kcm9wZG93bi0tYWJvdmUge1xuICB6LWluZGV4OiAxMDYwICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW0gIWltcG9ydGFudDtcbiAgY2xlYXI6IGJvdGggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGluaGVyaXQgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbjpob3Zlcixcbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbjpmb2N1cyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLWhpZ2hsaWdodGVkIHtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItcmVzdWx0cyB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25zIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLXNlYXJjaCB7XG4gIHBhZGRpbmc6IDhweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW0gIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuNSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQgIWltcG9ydGFudDtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmZvY3VzIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4yNSkgIWltcG9ydGFudDtcbn1cblxuLyogRW5zdXJlIHNlYXJjaCBmaWVsZCBpcyBhY2Nlc3NpYmxlIGFuZCBub3QgYmxvY2tlZCAqL1xuLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQgIWltcG9ydGFudDtcbiAgLW1vei11c2VyLXNlbGVjdDogdGV4dCAhaW1wb3J0YW50O1xuICAtbXMtdXNlci1zZWxlY3Q6IHRleHQgIWltcG9ydGFudDtcbiAgdXNlci1zZWxlY3Q6IHRleHQgIWltcG9ydGFudDtcbiAgY3Vyc29yOiB0ZXh0ICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDYwICFpbXBvcnRhbnQ7XG59XG5cbi8qIEVuc3VyZSBzZWFyY2ggZHJvcGRvd24gY29udGFpbmVyIGlzIGFjY2Vzc2libGUgKi9cbi5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogYXV0byAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1zZWFyY2gtLWRyb3Bkb3duIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xuICBtaW4taGVpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogdGV4dCAhaW1wb3J0YW50O1xufVxuXG4vKiBDbGVhci9kZXNlbGVjdCBidXR0b24gc3R5bGluZyAqL1xuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2xlYXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICByaWdodDogMjVweCAhaW1wb3J0YW50O1xuICB0b3A6IDUwJSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNiAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhcjpob3ZlciB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkYzM1NDUgIWltcG9ydGFudDtcbn1cblxuLyogTVVMVEktU0VMRUNUIFNUWUxJTkcgKi9cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMS41ZW0gKyAwLjc1cmVtICsgMnB4KSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4xNXMgZWFzZS1pbi1vdXQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC4zNzVyZW0gMC43NXJlbSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHRleHQgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljLnNlbGVjdDItY29udGFpbmVyLS1mb2N1cyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHZhcigtLWgtb2Zmc2V0KSB2YXIoLS12LW9mZnNldCkgdmFyKC0tYmx1ci1yYWRpdXMpIHZhcigtLWJveHNoYWRvdykgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGxpc3Qtc3R5bGU6IG5vbmUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi8qIENob2ljZSBpdGVtcyAoc2VsZWN0ZWQgcGlsbHMgd2l0aCBncmFkaWVudCkgKi9cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHJpbWFyeS1jb2xvdXIpLCByZ2JhKHZhcigtLXByaW1hcnktY29sb3VyLXJnYiwgNjYsIDE2NSwgMjQ1KSwgMC44KSkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcHJpbWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cykgKiAwLjc1KSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMC4xMjVyZW0gMC4yNXJlbSAwLjEyNXJlbSAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbiAgZ2FwOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlX19kaXNwbGF5IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlX19yZW1vdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjggIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFyZW0gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlX19yZW1vdmU6aG92ZXIge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjIwLCA1MywgNjksIDAuOCkgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmUgc2VhcmNoIGZpZWxkIC0gY29tcGxldGVseSBpbnZpc2libGUsIGJsZW5kIHdpdGggY29udGFpbmVyICovXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWFyY2gtLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VhcmNoLS1pbmxpbmUgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogNWVtICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICByZXNpemU6IG5vbmUgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuZGl2W2RhdGEtY29udHJvbGxlcio9YXV0b2NvbXBsZXRlXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm5hdmJhci1zZWFyY2gtaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjc1cmVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpICFpbXBvcnRhbnQ7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNTBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwIDNyZW0gMCAxcmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC45NXJlbSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm5hdmJhci1zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuOCAhaW1wb3J0YW50O1xufVxuLm5hdmJhci1zZWFyY2gtaW5wdXQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjQpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KSAhaW1wb3J0YW50O1xufVxuLm5hdmJhci1zZWFyY2gtaW5wdXQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjYpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMTM3LCAxODAsIDI1MCwgMC4yKSAhaW1wb3J0YW50O1xufVxuXG4uc2VhcmNoLWtiZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDQwcHg7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgZm9udC1mYW1pbHk6IFwiU0YgTW9ub1wiLCBcIk1vbmFjb1wiLCBcIk1lbmxvXCIsIFwiQ29uc29sYXNcIiwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xufVxuLnNlYXJjaC1rYmQgLnNlYXJjaC1rYmQtbW9kaWZpZXIge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5uYXZiYXItc2VhcmNoLWlucHV0OmhvdmVyIH4gLnNlYXJjaC1rYmQge1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi5uYXZiYXItc2VhcmNoLWlucHV0ICsgLnNlYXJjaC1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMC43NXJlbTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9J25vbmUnIHZpZXdCb3g9JzAgMCAyNCAyNCcgc3Ryb2tlPSclMjM5Y2EzYWYnJTNlJTNjcGF0aCBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nTTIxIDIxbC02LTZtMi01YTcgNyAwIDExLTE0IDAgNyA3IDAgMDExNCAweicvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4ubmF2YmFyLXNlYXJjaC1pbnB1dDpob3ZlciArIC5zZWFyY2gtaWNvbixcbi5uYXZiYXItc2VhcmNoLWlucHV0OmZvY3VzICsgLnNlYXJjaC1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9J25vbmUnIHZpZXdCb3g9JzAgMCAyNCAyNCcgc3Ryb2tlPSclMjM4OUI0RkEnJTNlJTNjcGF0aCBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nTTIxIDIxbC02LTZtMi01YTcgNyAwIDExLTE0IDAgNyA3IDAgMDExNCAweicvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuZGl2W2RhdGEtYXV0b2NvbXBsZXRlLXRhcmdldD1vdXRwdXRdIHtcbiAgLS1zZWFyY2gtYmc6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgLS1zZWFyY2gtdGV4dDogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICAtLXNlYXJjaC1tdXRlZDogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIC0tc2VhcmNoLWhvdmVyOiByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMTIpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2VhcmNoLWJnKSAhaW1wb3J0YW50O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHggIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiA3MHZoO1xufVxuQG1lZGlhIChtaW4taGVpZ2h0OiA2ODZweCkge1xuICBkaXZbZGF0YS1hdXRvY29tcGxldGUtdGFyZ2V0PW91dHB1dF0ge1xuICAgIG1heC1oZWlnaHQ6IDQ4MHB4O1xuICB9XG59XG5kaXZbZGF0YS1hdXRvY29tcGxldGUtdGFyZ2V0PW91dHB1dF06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzg5QjRGQSwgI0YzOEJBOCwgI0E2RTNBMSwgIzg5QjRGQSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBhbmltYXRpb246IGdyYWRpZW50U2hpZnQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5zZWFyY2gtc2VjdGlvbi1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogNnB4IDE0cHggMnB4O1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICBjb2xvcjogdmFyKC0tc2VhcmNoLW11dGVkKTtcbiAgb3BhY2l0eTogMC44O1xufVxuLnNlYXJjaC1zZWN0aW9uLWhlYWRlciBpIHtcbiAgY29sb3I6ICM4OUI0RkE7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLnNlYXJjaC1yZXN1bHQtdGV4dCBtYXJrIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjI1KTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IDAgMXB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5zZWFyY2gtcmVzdWx0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xuICBtYXJnaW46IDAgNnB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzIGVhc2UgIWltcG9ydGFudDtcbn1cbi5zZWFyY2gtcmVzdWx0OmhvdmVyLCAuc2VhcmNoLXJlc3VsdC5oaWdobGlnaHRlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlYXJjaC1ob3ZlcikgIWltcG9ydGFudDtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuLnNlYXJjaC1yZXN1bHQtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuXG4uc2VhcmNoLXJlc3VsdC1pY29uIHtcbiAgY29sb3I6ICM4OUI0RkEgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjg1cmVtICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNlYXJjaC1yZXN1bHQtdGV4dCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi5zZWFyY2gtcmVzdWx0LXRleHQgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXNlYXJjaC10ZXh0KSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuODJyZW0gIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uc2VhcmNoLXJlc3VsdC10ZXh0IHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLXNlYXJjaC1tdXRlZCkgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjcycmVtICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuOCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5zZWFyY2gtcmVzdWx0LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEwcHg7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5zZWFyY2gtcmVzdWx0LXJvdyBzdHJvbmcge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5zZWFyY2gtcmVzdWx0LW1ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgZ2FwOiA2cHg7XG4gIGZvbnQtc2l6ZTogMC42NnJlbTtcbiAgY29sb3I6IHZhcigtLXNlYXJjaC1tdXRlZCk7XG4gIG9wYWNpdHk6IDAuOTtcbn1cbi5zZWFyY2gtcmVzdWx0LW1ldGEgaSB7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5zZWFyY2gtcmVzdWx0LWF1dGhvciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2VhcmNoLXJlc3VsdC10aW1lIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5zZWFyY2gtcmVzdWx0LXBpbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgN3B4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5zZWFyY2gtcmVzdWx0LXBpbGwtLXNpZ25lZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTY2LCAyMjcsIDE2MSwgMC4xNSk7XG4gIGNvbG9yOiAjYTZlM2ExO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTY2LCAyMjcsIDE2MSwgMC4zNSk7XG59XG4uc2VhcmNoLXJlc3VsdC1waWxsLS1zZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjE1KTtcbiAgY29sb3I6ICM4OWI0ZmE7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjM1KTtcbn1cbi5zZWFyY2gtcmVzdWx0LXBpbGwtLWRyYWZ0IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDksIDIyNiwgMTc1LCAwLjEyKTtcbiAgY29sb3I6ICNmOWUyYWY7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNDksIDIyNiwgMTc1LCAwLjMpO1xufVxuLnNlYXJjaC1yZXN1bHQtcGlsbC0taW5mbyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC4xKTtcbiAgY29sb3I6IHZhcigtLXNlYXJjaC1tdXRlZCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjI1KTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5zZWFyY2gtc2VjdGlvbi1jb3VudCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nOiAwIDZweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC4xMik7XG4gIGNvbG9yOiAjODlCNEZBO1xuICBmb250LXNpemU6IDAuNjVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4uc2VhcmNoLXJlc3VsdC1nbyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBjb2xvcjogdmFyKC0tc2VhcmNoLW11dGVkKTtcbiAgb3BhY2l0eTogMDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG59XG5cbi5zZWFyY2gtcmVzdWx0OmhvdmVyIC5zZWFyY2gtcmVzdWx0LWdvLFxuLnNlYXJjaC1yZXN1bHQuaGlnaGxpZ2h0ZWQgLnNlYXJjaC1yZXN1bHQtZ28ge1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5zZWFyY2gtY2hpcC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAycHggMTRweCA2cHg7XG59XG5cbi5zZWFyY2gtY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgcGFkZGluZzogMnB4IDlweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTM3LCAxODAsIDI1MCwgMC4yNSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC4wNik7XG4gIGNvbG9yOiB2YXIoLS1zZWFyY2gtbXV0ZWQpO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xufVxuLnNlYXJjaC1jaGlwIGkge1xuICBmb250LXNpemU6IDAuNnJlbTtcbiAgY29sb3I6ICM4OUI0RkE7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5zZWFyY2gtY2hpcDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMTIpO1xuICBjb2xvcjogdmFyKC0tc2VhcmNoLXRleHQpO1xufVxuXG4uc2VhcmNoLWZvb3RlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJvdHRvbTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgcGFkZGluZzogNHB4IDE0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlYXJjaC1iZyk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMTUpO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjY2cmVtO1xuICBjb2xvcjogdmFyKC0tc2VhcmNoLW11dGVkKTtcbn1cbi5zZWFyY2gtZm9vdGVyIGtiZCB7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTM3LCAxODAsIDI1MCwgMC4zKTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjA4KTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbn1cbi5zZWFyY2gtZm9vdGVyIC5zZWFyY2gtZm9vdGVyLXNjb3BlIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGNvbG9yOiAjODlCNEZBO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uc2VhcmNoLWxvYWRpbmcsXG4uc2VhcmNoLWVycm9yLFxuLnNlYXJjaC1uby1yZXN1bHRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCkgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuLnNlYXJjaC1sb2FkaW5nIGksXG4uc2VhcmNoLWVycm9yIGksXG4uc2VhcmNoLW5vLXJlc3VsdHMgaSB7XG4gIGNvbG9yOiAjODlCNEZBICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuXG4uc2VhcmNoLWxvYWRpbmcgaSB7XG4gIGFuaW1hdGlvbjogYm91bmNlIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG4gIH1cbn1cbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi5sb2FkaW5nLXJlc3VsdHMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ubG9hZGluZy1yZXN1bHRzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIi5cIjtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIGFuaW1hdGlvbjogZG90cyAwLjlzIGluZmluaXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuXG5Aa2V5ZnJhbWVzIGRvdHMge1xuICAwJSwgMjAlIHtcbiAgICBjb250ZW50OiBcIi5cIjtcbiAgICBvcGFjaXR5OiAwLjM7XG4gIH1cbiAgNDAlIHtcbiAgICBjb250ZW50OiBcIi4uXCI7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG4gIDYwJSwgMTAwJSB7XG4gICAgY29udGVudDogXCIuLi5cIjtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLXNlYXJjaC1pbnB1dCB7XG4gICAgaGVpZ2h0OiAyLjVyZW0gIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwIDIuNXJlbSAwIDAuODc1cmVtICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnNlYXJjaC1pY29uIHtcbiAgICByaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDFyZW0gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuc2VhcmNoLWtiZCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5zZWFyY2gtcmVzdWx0IHtcbiAgICBwYWRkaW5nOiA0cHggOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDRweCAhaW1wb3J0YW50O1xuICB9XG4gIC5zZWFyY2gtcmVzdWx0LWljb24ge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxNXB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnNlYXJjaC1yZXN1bHQtY29udGVudCB7XG4gICAgZ2FwOiA4cHggIWltcG9ydGFudDtcbiAgfVxuICAuc2VhcmNoLXJlc3VsdC10ZXh0IHN0cm9uZyB7XG4gICAgZm9udC1zaXplOiAwLjhyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuc2VhcmNoLXJlc3VsdC10ZXh0IHNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuN3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIGRpdltkYXRhLWF1dG9jb21wbGV0ZS10YXJnZXQ9b3V0cHV0XSB7XG4gICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogMzAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuLnNlYXJjaC1hdXRvY29tcGxldGUtZHJvcGRvd24gKixcbi5zZWxlY3QyLWRyb3Bkb3duICoge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWRyb3Bkb3duLnNlbGVjdDItZHJvcGRvd24tLWJlbG93IHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbiAgei1pbmRleDogOTk5OSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlW2FyaWEtb3ducyo9Z2xvYmFsLXNlYXJjaF0ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMy41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5xdW90ZS1zZWFyY2gtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5kaXZbZGF0YS1xdW90ZS1zZWFyY2gtdGFyZ2V0PW91dHB1dF0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwNjA7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTZweCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy15OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDMwMHB4O1xufVxuZGl2W2RhdGEtcXVvdGUtc2VhcmNoLXRhcmdldD1vdXRwdXRdOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM4OUI0RkEsICNGMzhCQTgsICNBNkUzQTEsICM4OUI0RkEpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiBncmFkaWVudFNoaWZ0IDNzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICB6LWluZGV4OiAxO1xufVxuXG4ucXVvdGUtcmVzdWx0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEycHggMTZweDtcbiAgbWFyZ2luOiA0cHggOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDVweCkgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KSAhaW1wb3J0YW50O1xufVxuLnF1b3RlLXJlc3VsdDpob3ZlciwgLnF1b3RlLXJlc3VsdC5oaWdobGlnaHRlZCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTM3LCAxODAsIDI1MCwgMC4xNSksIHJnYmEoMjQzLCAxMzksIDE2OCwgMC4xNSkpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjQpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG5cbi5xdW90ZS1yZXN1bHQtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbn1cblxuLnF1b3RlLXJlc3VsdC1pY29uIHtcbiAgY29sb3I6ICM4OUI0RkEgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjFyZW0gIWltcG9ydGFudDtcbiAgd2lkdGg6IDIwcHggIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucXVvdGUtcmVzdWx0LXRleHQge1xuICBmbGV4OiAxO1xufVxuLnF1b3RlLXJlc3VsdC10ZXh0IHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLnF1b3RlLXJlc3VsdC10ZXh0IHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC44NXJlbSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjggIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5xdW90ZS1zZWFyY2gtbG9hZGluZyxcbi5xdW90ZS1zZWFyY2gtZXJyb3IsXG4ucXVvdGUtc2VhcmNoLW5vLXJlc3VsdHMsXG4ucXVvdGUtc2VhcmNoLW1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuOTVyZW07XG59XG4ucXVvdGUtc2VhcmNoLWxvYWRpbmcgaSxcbi5xdW90ZS1zZWFyY2gtZXJyb3IgaSxcbi5xdW90ZS1zZWFyY2gtbm8tcmVzdWx0cyBpLFxuLnF1b3RlLXNlYXJjaC1tZXNzYWdlIGkge1xuICBjb2xvcjogIzg5QjRGQSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cblxuLnF1b3RlLXNlYXJjaC1sb2FkaW5nIGkge1xuICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnF1b3RlLXJlc3VsdCB7XG4gICAgcGFkZGluZzogMTBweCAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAycHggNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnF1b3RlLXJlc3VsdC1pY29uIHtcbiAgICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTZweCAhaW1wb3J0YW50O1xuICB9XG4gIC5xdW90ZS1yZXN1bHQtY29udGVudCB7XG4gICAgZ2FwOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnF1b3RlLXJlc3VsdC10ZXh0IHN0cm9uZyB7XG4gICAgZm9udC1zaXplOiAwLjlyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucXVvdGUtcmVzdWx0LXRleHQgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgZGl2W2RhdGEtcXVvdGUtc2VhcmNoLXRhcmdldD1vdXRwdXRdIHtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBCYWRnZSBtYXJraW5nIGNhdGFsb2cgZmllbGRzIHRoZSAzRCBkZXNpZ24gdG9vbCByZXF1aXJlcyAoU0xEIGdlbmVyYXRpb24pICovXG4uZHQtcmVxdWlyZWQtYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICNmNDc0MjQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjZjQ3NDI0KTtcbiAgb3BhY2l0eTogMC44NTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBoZWxwO1xufVxuXG4vKiBCYWRnZSBtYXJraW5nIGNhdGFsb2cgZmllbGRzIHRoZSBSYWlscyBiYXR0ZXJ5IGFuYWx5c2lzIHJlcXVpcmVzICovXG4uYmEtcmVxdWlyZWQtYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1jb2xvdXIsICMzYWEwYTApO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hY2NlbnQtY29sb3VyLCAjM2FhMGEwKTtcbiAgb3BhY2l0eTogMC44NTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBoZWxwO1xufVxuXG4vKiBGbG9hdGluZyBleHBhbmRhYmxlIG1lbnUgKi9cbi5mbG9hdGluZy1tZW51IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMTZweDtcbiAgYm90dG9tOiAxNnB4O1xuICB6LWluZGV4OiAxMDUwO1xufVxuXG4uZmxvYXRpbmctbWVudV9fdG9nZ2xlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ5ZDk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmxvYXRpbmctbWVudV9fcGFuZWwge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1pbi13aWR0aDogMjIwcHg7XG4gIG1heC13aWR0aDogMjgwcHg7XG4gIG1heC1oZWlnaHQ6IDYwdmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG59XG5cbi5mbG9hdGluZy1tZW51X19pdGVtIHtcbiAgcGFkZGluZzogMnB4IDA7XG59XG5cbi5mbG9hdGluZy1tZW51X19pdGVtIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMzM1ZWVhO1xufVxuXG4uZmxvYXRpbmctbWVudS5pcy1vcGVuIC5mbG9hdGluZy1tZW51X19wYW5lbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ua2FuYmFuLWJvYXJkIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xufVxuLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbnMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGdhcDogMXJlbTtcbiAgbWluLXdpZHRoOiBmaXQtY29udGVudDtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4ua2FuYmFuLWJvYXJkIC5rYW5iYW4tY29sdW1uLXdyYXBwZXIge1xuICBmbGV4OiAwIDAgYXV0bztcbn1cbi5rYW5iYW4tYm9hcmQgLmthbmJhbi1jb2x1bW4ge1xuICB3aWR0aDogMjgwcHg7XG4gIG1pbi13aWR0aDogMjgwcHg7XG4gIG1heC13aWR0aDogMjgwcHg7XG59XG4ua2FuYmFuLWJvYXJkIC5rYW5iYW4tY29sdW1uIC5rYW5iYW4taGVhZGVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzO1xufVxuLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbiAua2FuYmFuLWJvZHkge1xuICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgbWF4LWhlaWdodDogNzB2aDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzO1xufVxuLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbi5kcmFnLW92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQwLCAxNjcsIDY5LCAwLjEpO1xuICBib3JkZXI6IDJweCBkYXNoZWQgIzI4YTc0NTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbi5kcmFnLW92ZXIgLmthbmJhbi1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQwLCAxNjcsIDY5LCAwLjEpICFpbXBvcnRhbnQ7XG59XG4ua2FuYmFuLWJvYXJkIC5rYW5iYW4tY29sdW1uLnN0YWdlLWRyYWctb3ZlciB7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCAjMDA3YmZmO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMDUpO1xufVxuLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbi5jb2x1bW4tZHJhZy1vdmVyIHtcbiAgYm9yZGVyOiAycHggZGFzaGVkICMwMDdiZmY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC4wNSk7XG59XG4ua2FuYmFuLWJvYXJkIC5rYW5iYW4tY29sdW1uLmNvbHVtbi1kcmFnZ2luZyB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMmRlZyk7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4ua2FuYmFuLWJvYXJkIC5rYW5iYW4tY29sdW1uLmNvbHVtbi1kcmFnLW92ZXIge1xuICBib3JkZXI6IDJweCBkYXNoZWQgIzAwN2JmZjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjA1KTtcbn1cbi5rYW5iYW4tYm9hcmQgLmNvbHVtbi1kcmFnLWhhbmRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuLmthbmJhbi1ib2FyZCAuY29sdW1uLWRyYWctaGFuZGxlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5rYW5iYW4tYm9hcmQgLmNvbHVtbi1kcmFnLWhhbmRsZTphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLmthbmJhbi1ib2FyZCB7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuLmthbmJhbi1ib2FyZDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBoZWlnaHQ6IDhweDtcbn1cbi5rYW5iYW4tYm9hcmQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBtYXJnaW46IDAgMXJlbTtcbn1cbi5rYW5iYW4tYm9hcmQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogI2MxYzFjMTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmthbmJhbi1ib2FyZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjYThhOGE4O1xufVxuLmthbmJhbi1ib2FyZDo6YmVmb3JlLCAua2FuYmFuLWJvYXJkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAyMHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xufVxuLmthbmJhbi1ib2FyZDo6YmVmb3JlIHtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCksIHRyYW5zcGFyZW50KTtcbiAgb3BhY2l0eTogMDtcbn1cbi5rYW5iYW4tYm9hcmQ6OmFmdGVyIHtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCksIHRyYW5zcGFyZW50KTtcbiAgb3BhY2l0eTogMDtcbn1cbi5rYW5iYW4tYm9hcmQuc2Nyb2xsYWJsZS1sZWZ0OjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuLmthbmJhbi1ib2FyZC5zY3JvbGxhYmxlLXJpZ2h0OjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5xdW90ZS1jYXJkIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycywgYm94LXNoYWRvdyAwLjJzO1xuICBtaW4td2lkdGg6IDI1MHB4ICFpbXBvcnRhbnQ7XG59XG4ucXVvdGUtY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4ucXVvdGUtY2FyZDpob3ZlciAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5xdW90ZS1jYXJkLmRyYWdnaW5nIHtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cbi5xdW90ZS1jYXJkIC5jYXJkLXRpdGxlLWZpZWxkIHtcbiAgcGFkZGluZy1yaWdodDogMi41cmVtO1xufVxuLnF1b3RlLWNhcmQgLmNhcmQtdGl0bGUtZmllbGQgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGh5cGhlbnM6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4ucXVvdGUtY2FyZC5qdXN0LW1vdmVkIHtcbiAgYW5pbWF0aW9uOiBqdXN0TW92ZWQgMXMgZWFzZS1vdXQ7XG59XG4ucXVvdGUtY2FyZCAubW92ZS1kcmFnLWJ0biB7XG4gIGN1cnNvcjogZ3JhYjtcbiAgb3BhY2l0eTogMC44O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5xdW90ZS1jYXJkIC5tb3ZlLWRyYWctYnRuOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4ucXVvdGUtY2FyZCAubW92ZS1kcmFnLWJ0bjphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4ucXVvdGUtY2FyZCAubW92ZS1kcmFnLWJ0biBpIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnF1b3RlLWNhcmQgLm1vdmUtZHJhZy1idG4gaTpmaXJzdC1jaGlsZCB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5xdW90ZS1jYXJkIC5tb3ZlLWRyYWctYnRuOmhvdmVyIGk6Zmlyc3QtY2hpbGQge1xuICBvcGFjaXR5OiAxO1xufVxuXG5Aa2V5ZnJhbWVzIGp1c3RNb3ZlZCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoNDAsIDE2NywgNjksIDAuNSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGRyb3BJbmRpY2F0b3Ige1xuICAwJSB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDAuOCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzdWNjZXNzUHVsc2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAzKTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoNDAsIDE2NywgNjksIDAuMyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGRyb3Bab25lUHVsc2Uge1xuICAwJSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDA1NmIzO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAua2FuYmFuLWJvYXJkIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbiB7XG4gICAgd2lkdGg6IDI4MHB4O1xuICAgIG1pbi13aWR0aDogMjgwcHg7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbiAgfVxuICAua2FuYmFuLWJvYXJkIC5rYW5iYW4tYm9keSB7XG4gICAgbWluLWhlaWdodDogMzAwcHg7XG4gIH1cbiAgLm1vYmlsZS1jb250cm9scy1jb250YWluZXIgLnZpZXctc3dpdGNoZXIgLmNvbXBhY3QtYnRuIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtaW4td2lkdGg6IDQ0cHg7XG4gICAgbWluLWhlaWdodDogNDRweDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1vYmlsZS1jb250cm9scy1jb250YWluZXIgLnZpZXctc3dpdGNoZXIgLmNvbXBhY3QtYnRuIGkge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5tb2JpbGUtY29udHJvbHMtY29udGFpbmVyIC52aWV3LXN3aXRjaGVyIC5jb21wYWN0LWJ0bjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMzAsIDE1MCwgMC4xKTtcbiAgfVxuICAubW9iaWxlLWNvbnRyb2xzLWNvbnRhaW5lciAudmlldy1zd2l0Y2hlci1kcm9wZG93biAuZHJvcGRvd24gLmJ1dHRvbi0xMyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgLm1vYmlsZS1jb250cm9scy1jb250YWluZXIgLndvcmtmbG93LWFjdGlvbnMge1xuICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgfVxuICAubW9iaWxlLWNvbnRyb2xzLWNvbnRhaW5lciAud29ya2Zsb3ctYWN0aW9ucyAuY29tcGFjdC1idG4ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1pbi13aWR0aDogNDRweDtcbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICB9XG4gIC5xdW90ZS1jYXJkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgLnF1b3RlLWNhcmQgLm1vdmUtZHJhZy1idG4ge1xuICAgIGZvbnQtc2l6ZTogMC42NXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC40cmVtICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG4gIC5xdW90ZS1jYXJkIC5tb3ZlLWRyYWctYnRuOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLnF1b3RlLWNhcmQgLm1vdmUtZHJhZy1idG4gaSB7XG4gICAgZm9udC1zaXplOiAwLjZyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5rYW5iYW4tYm9hcmQgLmthbmJhbi1jb2x1bW4ge1xuICAgIHdpZHRoOiAyODBweDtcbiAgICBtaW4td2lkdGg6IDI4MHB4O1xuICAgIG1heC13aWR0aDogMjgwcHg7XG4gIH1cbiAgLmthbmJhbi1ib2FyZCAua2FuYmFuLWhlYWRlciB7XG4gICAgcGFkZGluZzogMC43NXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5rYW5iYW4tYm9hcmQgLmthbmJhbi1oZWFkZXIgaDUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuICAua2FuYmFuLWJvYXJkIC5rYW5iYW4tYm9keSB7XG4gICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnF1b3RlLWNhcmQgLmNhcmQtYm9keSB7XG4gICAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnF1b3RlLWNhcmQgLmNhcmQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICB9XG4gIC5xdW90ZS1jYXJkIC5tb3ZlLXF1b3RlLWJ0biB7XG4gICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICAgIHBhZGRpbmc6IDAuMTVyZW0gMC4zcmVtO1xuICB9XG4gIC5tb2JpbGUtY29udHJvbHMtY29udGFpbmVyIC52aWV3LXN3aXRjaGVyIC5jb21wYWN0LWJ0biB7XG4gICAgbWluLXdpZHRoOiA0MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMC4zNzVyZW0gMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgfVxuICAubW9iaWxlLWNvbnRyb2xzLWNvbnRhaW5lciAudmlldy1zd2l0Y2hlciAuY29tcGFjdC1idG4gaSB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgfVxuICAubW9iaWxlLWNvbnRyb2xzLWNvbnRhaW5lciAud29ya2Zsb3ctYWN0aW9ucyB7XG4gICAgZ2FwOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgfVxuICAubW9iaWxlLWNvbnRyb2xzLWNvbnRhaW5lciAud29ya2Zsb3ctYWN0aW9ucyAuY29tcGFjdC1idG4ge1xuICAgIG1pbi13aWR0aDogNDBweDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAuMzc1cmVtIDAuNXJlbTtcbiAgfVxuICAubW9iaWxlLWNvbnRyb2xzLWNvbnRhaW5lciAud29ya2Zsb3ctYWN0aW9ucyAuY29tcGFjdC1idG4gc3BhbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4ud29ya2Zsb3ctaGVhZGVyIC53b3JrZmxvdy1hY3Rpb25zIHtcbiAgZ2FwOiAwLjVyZW07XG59XG4ud29ya2Zsb3ctaGVhZGVyIC53b3JrZmxvdy1hY3Rpb25zIC5idG4ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWdyaWQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA0MDBweDtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZHMtbGF5ZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTtcbiAgZ2FwOiAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZHMtbGF5ZXIgLndvcmtmbG93LWNhcmQtd3JhcHBlci5wcmV2aWV3LW1vdmluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjA7XG59XG4ud29ya2Zsb3dzLWdyaWQgLmRyb3Atem9uZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC4wNSk7XG4gIGJvcmRlcjogM3B4IGRhc2hlZCAjMDA3YmZmO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgei1pbmRleDogLTE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLndvcmtmbG93cy1ncmlkIC5kcm9wLXpvbmUuYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogNTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMDgpO1xuICBib3JkZXItY29sb3I6ICMwMDU2YjM7XG4gIGFuaW1hdGlvbjogZHJvcFpvbmVQdWxzZSAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlIGFsdGVybmF0ZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggOHB4IHJnYmEoMCwgMTIzLCAyNTUsIDAuMSk7XG59XG4ud29ya2Zsb3dzLWdyaWQgLmRyb3Atem9uZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJEcm9wIGhlcmVcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgY29sb3I6ICMwMDdiZmY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDEyMywgMjU1LCAwLjIpO1xufVxuLndvcmtmbG93cy1ncmlkIC5kcm9wLXpvbmUuYWN0aXZlOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkLXdyYXBwZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQtd3JhcHBlci5kcmFnZ2luZyB7XG4gIG9wYWNpdHk6IDAuMztcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgei1pbmRleDogMTAwMDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZC13cmFwcGVyLnByZXZpZXctbW92aW5nIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICB6LWluZGV4OiAyMDtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZC13cmFwcGVyLndpbGwtbW92ZSAud29ya2Zsb3ctY2FyZCB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gIG9wYWNpdHk6IDAuNztcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmYzEwNztcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDI1NSwgMTkzLCA3LCAwLjMpO1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkLXdyYXBwZXIuc3VjY2Vzcy1tb3ZlIC53b3JrZmxvdy1jYXJkIHtcbiAgYW5pbWF0aW9uOiBzdWNjZXNzUHVsc2UgMC42cyBlYXNlLW91dDtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB6LWluZGV4OiAxNTtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCAuZHJhZy1oYW5kbGUsIC53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCAuZHJhZy1oYW5kbGUtc3ByZWFkc2hlZXQge1xuICBjdXJzb3I6IGdyYWI7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkIC5kcmFnLWhhbmRsZTpob3ZlciwgLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkIC5kcmFnLWhhbmRsZS1zcHJlYWRzaGVldDpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQgLmRyYWctaGFuZGxlOmFjdGl2ZSwgLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkIC5kcmFnLWhhbmRsZS1zcHJlYWRzaGVldDphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkIC5kcmFnLWhhbmRsZS1jZWxsIHtcbiAgd2lkdGg6IDUwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCAuZHJhZy1oYW5kbGUtY2VsbCAuZHJhZy1oYW5kbGUtc3ByZWFkc2hlZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCAuZHJhZy1oYW5kbGUtY2VsbCAuZHJhZy1oYW5kbGUtc3ByZWFkc2hlZXQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkIC53b3JrZmxvdy1jb2xvci1pbmRpY2F0b3Ige1xuICBmbGV4LXNocmluazogMDtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCAud29ya2Zsb3ctYWN0aW9ucyAubWR1aS1pY29uIHtcbiAgb3BhY2l0eTogMC43O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQgLndvcmtmbG93LWFjdGlvbnMgLm1kdWktaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQgLndvcmtmbG93LWFjdGlvbnMgLm1kdWktaWNvbi50ZXh0LWRhbmdlcjpob3ZlciB7XG4gIGNvbG9yOiAjZGMzNTQ1ICFpbXBvcnRhbnQ7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQgLnBvc2l0aW9uLWluZGljYXRvciB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgb3BhY2l0eTogMC42O1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1wbGFjZWhvbGRlciAuYm9yZGVyLWRhc2hlZCB7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCAjZGVlMmU2ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLndvcmtmbG93LXZpc3VhbC1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0td29ya2Zsb3ctY29sb3VyKSAxNCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS13b3JrZmxvdy1jb2xvdXIpO1xufVxuXG4ud29ya2Zsb3ctaGVhZGVyLXZpc3VhbCB7XG4gIHdpZHRoOiA0NnB4O1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGZsZXg6IDAgMCA0NnB4O1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbi53b3JrZmxvdy1pY29uLW9wdGlvbnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCg0NHB4LCAxZnIpKTtcbiAgZ2FwOiA4cHg7XG4gIG1heC13aWR0aDogNTYwcHg7XG59XG4ud29ya2Zsb3ctaWNvbi1vcHRpb25zIC53b3JrZmxvdy1pY29uLW9wdGlvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luOiAwO1xufVxuLndvcmtmbG93LWljb24tb3B0aW9ucyAud29ya2Zsb3ctaWNvbi1vcHRpb24gaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLndvcmtmbG93LWljb24tb3B0aW9ucyAud29ya2Zsb3ctaWNvbi1vcHRpb24gc3BhbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cywgYmFja2dyb3VuZC1jb2xvciAwLjE1cywgY29sb3IgMC4xNXM7XG59XG4ud29ya2Zsb3ctaWNvbi1vcHRpb25zIC53b3JrZmxvdy1pY29uLW9wdGlvbiBpbnB1dDpjaGVja2VkICsgc3BhbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbn1cbi53b3JrZmxvdy1pY29uLW9wdGlvbnMgLndvcmtmbG93LWljb24tb3B0aW9uIGlucHV0OmZvY3VzLXZpc2libGUgKyBzcGFuIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ud29ya2Zsb3ctaW1hZ2UtY3VycmVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbn1cbi53b3JrZmxvdy1pbWFnZS1jdXJyZW50IGltZyB7XG4gIHdpZHRoOiA1NnB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5jb2xvci1wcmVzZXQtYnRuIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG4uY29sb3ItcHJlc2V0LWJ0bjpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgYm9yZGVyLWNvbG9yOiAjZGVlMmU2O1xufVxuLmNvbG9yLXByZXNldC1idG46Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6ICMwMDdiZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsIDEyMywgMjU1LCAwLjI1KTtcbn1cbi5jb2xvci1wcmVzZXQtYnRuOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5jb2xvci1wcmVzZXRzIC5jb2xvci1wcmVzZXQtYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uc3RhZ2UtZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICBtaW4td2lkdGg6IDIwMHB4O1xufVxuLnN0YWdlLWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1oZWFkZXIge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbn1cbi5zdGFnZS1kcm9wZG93biAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG4uc3RhZ2UtZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gIHdpZHRoOiAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uc3RhZ2UtZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0udGV4dC1kYW5nZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyMCwgNTMsIDY5LCAwLjEpO1xufVxuLnN0YWdlLWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLnRleHQtd2FybmluZzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxOTMsIDcsIDAuMSk7XG59XG5cbi5xdW90ZS1tb3ZlLWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgbWluLXdpZHRoOiAxODBweDtcbiAgYm94LXNoYWRvdzogMCAwLjVyZW0gMXJlbSByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLnF1b3RlLW1vdmUtZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucXVvdGUtbW92ZS1kcm9wZG93biAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSB7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xufVxuLnF1b3RlLW1vdmUtZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjEpO1xufVxuLnF1b3RlLW1vdmUtZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gIHdpZHRoOiAxOHB4O1xufVxuXG4ua2FuYmFuLWVtcHR5LXN0YXRlIC5lbXB0eS1pY29uIHtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBvcGFjaXR5OiAwLjU7XG59XG4ua2FuYmFuLWVtcHR5LXN0YXRlIC5lbXB0eS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLmthbmJhbi1lbXB0eS1zdGF0ZSAuZW1wdHktZGVzY3JpcHRpb24ge1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5zdGFnZS1jb3VudGVyIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBvcGFjaXR5OiAwLjg7XG59XG4uc3RhZ2UtY291bnRlci5oYXMtcXVvdGVzIHtcbiAgb3BhY2l0eTogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmthbmJhbi1ub3RpZmljYXRpb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMjBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG1pbi13aWR0aDogMzAwcHg7XG4gIGFuaW1hdGlvbjogc2xpZGVJblJpZ2h0IDAuM3MgZWFzZS1vdXQ7XG59XG4ua2FuYmFuLW5vdGlmaWNhdGlvbi5zbGlkZS1vdXQge1xuICBhbmltYXRpb246IHNsaWRlT3V0UmlnaHQgMC4zcyBlYXNlLWluO1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4ucXVvdGUtbW92ZS1tb2RhbCAud29ya2Zsb3ctaXRlbSwgLnF1b3RlLW1vdmUtbW9kYWwgLnN0YWdlLWl0ZW0sIC5idWxrLW1vdmUtbW9kYWwgLndvcmtmbG93LWl0ZW0sIC5idWxrLW1vdmUtbW9kYWwgLnN0YWdlLWl0ZW0ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5xdW90ZS1tb3ZlLW1vZGFsIC53b3JrZmxvdy1pdGVtOmhvdmVyOm5vdCguc2VsZWN0ZWQpOm5vdCguZGlzYWJsZWQpLCAucXVvdGUtbW92ZS1tb2RhbCAuc3RhZ2UtaXRlbTpob3Zlcjpub3QoLnNlbGVjdGVkKTpub3QoLmRpc2FibGVkKSwgLmJ1bGstbW92ZS1tb2RhbCAud29ya2Zsb3ctaXRlbTpob3Zlcjpub3QoLnNlbGVjdGVkKTpub3QoLmRpc2FibGVkKSwgLmJ1bGstbW92ZS1tb2RhbCAuc3RhZ2UtaXRlbTpob3Zlcjpub3QoLnNlbGVjdGVkKTpub3QoLmRpc2FibGVkKSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4ucXVvdGUtbW92ZS1tb2RhbCAud29ya2Zsb3ctaXRlbS5zZWxlY3RlZCwgLnF1b3RlLW1vdmUtbW9kYWwgLnN0YWdlLWl0ZW0uc2VsZWN0ZWQsIC5idWxrLW1vdmUtbW9kYWwgLndvcmtmbG93LWl0ZW0uc2VsZWN0ZWQsIC5idWxrLW1vdmUtbW9kYWwgLnN0YWdlLWl0ZW0uc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci13aWR0aDogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5xdW90ZS1tb3ZlLW1vZGFsIC53b3JrZmxvdy1pdGVtLmRpc2FibGVkLCAucXVvdGUtbW92ZS1tb2RhbCAuc3RhZ2UtaXRlbS5kaXNhYmxlZCwgLmJ1bGstbW92ZS1tb2RhbCAud29ya2Zsb3ctaXRlbS5kaXNhYmxlZCwgLmJ1bGstbW92ZS1tb2RhbCAuc3RhZ2UtaXRlbS5kaXNhYmxlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC41O1xufVxuLnF1b3RlLW1vdmUtbW9kYWwgLmN1cnJlbnQtc2VsZWN0aW9uLCAuYnVsay1tb3ZlLW1vZGFsIC5jdXJyZW50LXNlbGVjdGlvbiB7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLnF1b3RlLW1vdmUtbW9kYWwgLndvcmtmbG93cy1jb250YWluZXIsIC5xdW90ZS1tb3ZlLW1vZGFsIC5zdGFnZXMtY29udGFpbmVyLCAuYnVsay1tb3ZlLW1vZGFsIC53b3JrZmxvd3MtY29udGFpbmVyLCAuYnVsay1tb3ZlLW1vZGFsIC5zdGFnZXMtY29udGFpbmVyIHtcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gIHBhZGRpbmc6IDFyZW07XG59XG4ucXVvdGUtbW92ZS1tb2RhbCAud29ya2Zsb3ctc3RhdHMgLmJhZGdlLCAucXVvdGUtbW92ZS1tb2RhbCAuc3RhZ2Utc3RhdHMgLmJhZGdlLCAuYnVsay1tb3ZlLW1vZGFsIC53b3JrZmxvdy1zdGF0cyAuYmFkZ2UsIC5idWxrLW1vdmUtbW9kYWwgLnN0YWdlLXN0YXRzIC5iYWRnZSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cbi5xdW90ZS1tb3ZlLW1vZGFsIC5tb2RhbC1jb250ZW50LCAuYnVsay1tb3ZlLW1vZGFsIC5tb2RhbC1jb250ZW50IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAuNXJlbSAxcmVtIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4ucXVvdGUtbW92ZS1tb2RhbCAubW9kYWwtaGVhZGVyIC5tb2RhbC10aXRsZSwgLmJ1bGstbW92ZS1tb2RhbCAubW9kYWwtaGVhZGVyIC5tb2RhbC10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucXVvdGUtbW92ZS1tb2RhbCAubW9kYWwtYm9keSwgLmJ1bGstbW92ZS1tb2RhbCAubW9kYWwtYm9keSB7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbn1cbi5xdW90ZS1tb3ZlLW1vZGFsIC5tb2RhbC1mb290ZXIsIC5idWxrLW1vdmUtbW9kYWwgLm1vZGFsLWZvb3RlciB7XG4gIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xufVxuLnF1b3RlLW1vdmUtbW9kYWwgLm1vZGFsLWZvb3RlciAuYnV0dG9uLTEzLCAucXVvdGUtbW92ZS1tb2RhbCAubW9kYWwtZm9vdGVyIC5idXR0b24tMTMtb3V0bGluZSwgLmJ1bGstbW92ZS1tb2RhbCAubW9kYWwtZm9vdGVyIC5idXR0b24tMTMsIC5idWxrLW1vdmUtbW9kYWwgLm1vZGFsLWZvb3RlciAuYnV0dG9uLTEzLW91dGxpbmUge1xuICBtaW4td2lkdGg6IDEyMHB4O1xufVxuXG4uc3RhZ2Utc3RhdHMgLnN0YWdlLXN0YXRzLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDYwcHgsIDFmcikpO1xuICBnYXA6IDAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuLnN0YWdlLXN0YXRzIC5zdGFnZS1zdGF0cy1ncmlkIC5zdGF0LWl0ZW0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC4xMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG4uc3RhZ2Utc3RhdHMgLnN0YWdlLXN0YXRzLWdyaWQgLnN0YXQtaXRlbSAuc3RhdC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgb3BhY2l0eTogMC44O1xuICBtYXJnaW4tYm90dG9tOiAwLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5zdGFnZS1zdGF0cyAuc3RhZ2Utc3RhdHMtZ3JpZCAuc3RhdC1pdGVtIC5zdGF0LXZhbHVlIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5zdGFnZS1zdGF0cyAudGV4dC1tdXRlZC5zbWFsbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0biB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC4zNzVyZW07XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3BhY2l0eTogMC43O1xufVxuLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cbi5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0biAuc29ydC1pbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTJweDtcbiAgcmlnaHQ6IC0ycHg7XG4gIGZvbnQtc2l6ZTogOHB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG59XG4uc3RhZ2Utc29ydC1jb250cm9scyAuc29ydC1idG4gLnNvcnQtaW5kaWNhdG9yOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbi5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0bi5zb3J0LWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICBvcGFjaXR5OiAxO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuLnNvcnQtYWN0aXZlIC5zb3J0LWluZGljYXRvciB7XG4gIG9wYWNpdHk6IDE7XG59XG4uc3RhZ2Utc29ydC1jb250cm9scyAuc29ydC1idG4uc29ydC1hY3RpdmUuc29ydC1hc2MgLnNvcnQtaW5kaWNhdG9yOjphZnRlciB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgY3VycmVudENvbG9yO1xufVxuLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuLnNvcnQtYWN0aXZlLnNvcnQtZGVzYyAuc29ydC1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCBjdXJyZW50Q29sb3I7XG59XG4uc3RhZ2Utc29ydC1jb250cm9scyAuc29ydC1idG4gaSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5zdGFnZS1zdGF0cyAuc3RhZ2Utc3RhdHMtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDAuMjVyZW07XG4gIH1cbiAgLnN0YWdlLXN0YXRzIC5zdGFnZS1zdGF0cy1ncmlkIC5zdGF0LWl0ZW0ge1xuICAgIHBhZGRpbmc6IDAuMnJlbSAwLjFyZW07XG4gIH1cbiAgLnN0YWdlLXN0YXRzIC5zdGFnZS1zdGF0cy1ncmlkIC5zdGF0LWl0ZW0gLnN0YXQtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC41NXJlbTtcbiAgfVxuICAuc3RhZ2Utc3RhdHMgLnN0YWdlLXN0YXRzLWdyaWQgLnN0YXQtaXRlbSAuc3RhdC12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICB9XG4gIC5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0biB7XG4gICAgcGFkZGluZzogMC4ycmVtIDAuM3JlbTtcbiAgICBtaW4td2lkdGg6IDI4cHg7XG4gIH1cbiAgLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuIGkge1xuICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5zdGFnZS1zdGF0cyAuc3RhZ2Utc3RhdHMtZ3JpZCAuc3RhdC1pdGVtIC5zdGF0LWxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjFyZW07XG4gIH1cbiAgLnN0YWdlLXN0YXRzIC5zdGFnZS1zdGF0cy1ncmlkIC5zdGF0LWl0ZW0gLnN0YXQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICB9XG4gIC5zdGFnZS1zb3J0LWNvbnRyb2xzIHtcbiAgICBnYXA6IDJweDtcbiAgfVxuICAuc3RhZ2Utc29ydC1jb250cm9scyAuc29ydC1idG4ge1xuICAgIHBhZGRpbmc6IDAuMTVyZW0gMC4yNXJlbTtcbiAgICBtaW4td2lkdGg6IDI2cHg7XG4gIH1cbiAgLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuIGkge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucXVvdGUtY2FyZCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICAucXVvdGUtY2FyZC5qdXN0LW1vdmVkIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICMyOGE3NDU7XG4gIH1cbiAgLmthbmJhbi1ub3RpZmljYXRpb24ge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuICAuc3RhZ2Utc29ydC1jb250cm9scyAuc29ydC1idG4ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbiAgLnN0YWdlLXN0YXRzIC5zdGF0LWl0ZW0ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbnRoLnNvcnRhYmxlLWhlYWRlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuICBwYWRkaW5nOiAwLjg3NXJlbSAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG50aC5zb3J0YWJsZS1oZWFkZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG50aC5zb3J0YWJsZS1oZWFkZXIgLnNvcnQtaW5kaWNhdG9ycyB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICBtaW4td2lkdGg6IDE2cHg7XG59XG50aC5zb3J0YWJsZS1oZWFkZXIgLnNvcnQtaW5kaWNhdG9ycyAuc29ydC1hc2MsXG50aC5zb3J0YWJsZS1oZWFkZXIgLnNvcnQtaW5kaWNhdG9ycyAuc29ydC1kZXNjIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAwLjY7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcbn1cbnRoLnNvcnRhYmxlLWhlYWRlciAuc29ydC1pbmRpY2F0b3JzIC5zb3J0LWFzYy5hY3RpdmUsXG50aC5zb3J0YWJsZS1oZWFkZXIgLnNvcnQtaW5kaWNhdG9ycyAuc29ydC1kZXNjLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgb3BhY2l0eTogMTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbn1cbnRoLnNvcnRhYmxlLWhlYWRlcjpob3ZlciAuc29ydC1pbmRpY2F0b3JzIHtcbiAgb3BhY2l0eTogMTtcbn1cbnRoLnNvcnRhYmxlLWhlYWRlci5zb3J0ZWQtYXNjLCB0aC5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWRlc2Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbn1cbnRoLnNvcnRhYmxlLWhlYWRlci5zb3J0ZWQtYXNjIC5zb3J0LWluZGljYXRvcnMsIHRoLnNvcnRhYmxlLWhlYWRlci5zb3J0ZWQtZGVzYyAuc29ydC1pbmRpY2F0b3JzIHtcbiAgb3BhY2l0eTogMTtcbn1cbnRoLnNvcnRhYmxlLWhlYWRlci5zb3J0ZWQtYXNjIGksIHRoLnNvcnRhYmxlLWhlYWRlci5zb3J0ZWQtZGVzYyBpIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG50aC5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWFzYyBpOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZVwiICFpbXBvcnRhbnQ7XG59XG50aC5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWRlc2MgaTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGRcIiAhaW1wb3J0YW50O1xufVxudGguc29ydGFibGUtaGVhZGVyLnNvcnRpbmcgLnNvcnQtaW5kaWNhdG9ycyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbmJ1dHRvbi5zb3J0YWJsZS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuYnV0dG9uLnNvcnRhYmxlLWhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMDA3YmZmO1xufVxuYnV0dG9uLnNvcnRhYmxlLWhlYWRlci5zb3J0ZWQtYXNjLCBidXR0b24uc29ydGFibGUtaGVhZGVyLnNvcnRlZC1kZXNjIHtcbiAgY29sb3I6ICMwMDdiZmY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5idXR0b24uc29ydGFibGUtaGVhZGVyIGkge1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG59XG5idXR0b24uc29ydGFibGUtaGVhZGVyOmhvdmVyIGkge1xuICBjb2xvcjogIzAwN2JmZjtcbn1cblxuLnNwcmVhZHNoZWV0LXRhYmxlIHRoZWFkLmJnLXRoZW1lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtdGhlbWUpICFpbXBvcnRhbnQ7XG59XG4uc3ByZWFkc2hlZXQtdGFibGUgdGhlYWQuYmctdGhlbWUgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy10aGVtZSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnNwcmVhZHNoZWV0LXRhYmxlIC5xdW90ZS1yb3cge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbn1cbi5zcHJlYWRzaGVldC10YWJsZSAucXVvdGUtcm93OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC4wMik7XG59XG4uc3ByZWFkc2hlZXQtdGFibGUgLnF1b3RlLXJvdy5kcmFnZ2luZyB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbn1cblxuLmNvbHVtbi1jb25maWctbW9kYWwgLm1vZGFsLWNvbnRlbnQsIC5jYXJkLWZpZWxkcy1tb2RhbCAubW9kYWwtY29udGVudCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwLjVyZW0gMXJlbSByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLm1vZGFsLWhlYWRlciwgLmNhcmQtZmllbGRzLW1vZGFsIC5tb2RhbC1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAubW9kYWwtaGVhZGVyIC5tb2RhbC10aXRsZSwgLmNhcmQtZmllbGRzLW1vZGFsIC5tb2RhbC1oZWFkZXIgLm1vZGFsLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNDk1MDU3KTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5tb2RhbC1oZWFkZXIgLmJ0bi1jbG9zZSwgLmNhcmQtZmllbGRzLW1vZGFsIC5tb2RhbC1oZWFkZXIgLmJ0bi1jbG9zZSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIG9wYWNpdHk6IDAuNztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICM0OTUwNTcpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLm1vZGFsLWhlYWRlciAuYnRuLWNsb3NlOmhvdmVyLCAuY2FyZC1maWVsZHMtbW9kYWwgLm1vZGFsLWhlYWRlciAuYnRuLWNsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICNmNDc0MjQpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLm1vZGFsLWJvZHksIC5jYXJkLWZpZWxkcy1tb2RhbCAubW9kYWwtYm9keSB7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5tb2RhbC1mb290ZXIsIC5jYXJkLWZpZWxkcy1tb2RhbCAubW9kYWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xuICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4tbGlzdCwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4tbGlzdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1heC1oZWlnaHQ6IDMwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2Y4ZjlmYSk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1saXN0Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCAjZjFmMWYxKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4tbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY3JvbGxiYXItY29sb3VyLCAjYzFjMWMxKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4tbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjYThhOGE4KTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSB7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBjdXJzb3I6IGdyYWI7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW06bGFzdC1jaGlsZCwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbTpob3ZlciwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZjhmOWZhKTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbS5zZWxlY3RlZCwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbS5zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZTdmM2ZmKTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjMDA3YmZmKTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbS5kcmFnZ2luZywgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbS5kcmFnZ2luZyB7XG4gIG9wYWNpdHk6IDAuNDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMmRlZyk7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1hY3Rpb24tYnRuLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0biB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWFjdGlvbi1idG4uYWRkLWJ0biwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWFjdGlvbi1idG4uYWRkLWJ0biB7XG4gIGNvbG9yOiAjMjhhNzQ1O1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0bi5hZGQtYnRuOmhvdmVyLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0bi5hZGQtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSg0MCwgMTY3LCA2OSwgMC4xKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0bi5yZW1vdmUtYnRuLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0bi5yZW1vdmUtYnRuIHtcbiAgY29sb3I6ICNkYzM1NDU7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1hY3Rpb24tYnRuLnJlbW92ZS1idG46aG92ZXIsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1hY3Rpb24tYnRuLnJlbW92ZS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyMCwgNTMsIDY5LCAwLjEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1hY3Rpb24tYnRuIGksIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1hY3Rpb24tYnRuIGkge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5kcmFnLWhhbmRsZSwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSAuZHJhZy1oYW5kbGUge1xuICBvcGFjaXR5OiAwLjY7XG4gIGN1cnNvcjogZ3JhYjtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuZHJhZy1oYW5kbGU6aG92ZXIsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0gLmRyYWctaGFuZGxlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDdiZmYpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5kcmFnLWhhbmRsZTphY3RpdmUsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0gLmRyYWctaGFuZGxlOmFjdGl2ZSB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1pbmZvLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4taW5mbyB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWluZm8gLmNvbHVtbi1sYWJlbCwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWluZm8gLmNvbHVtbi1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIxMjUyOSk7XG4gIG1hcmdpbi1ib3R0b206IDAuMTI1cmVtO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4taW5mbyAuY29sdW1uLW1ldGEsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1pbmZvIC5jb2x1bW4tbWV0YSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNmM3NTdkKTtcbiAgb3BhY2l0eTogMC44O1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLnByZXNldC1zZWN0aW9uLCAuY2FyZC1maWVsZHMtbW9kYWwgLnByZXNldC1zZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtdGl0bGUsIC5jYXJkLWZpZWxkcy1tb2RhbCAucHJlc2V0LXNlY3Rpb24gLnByZXNldC10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzQ5NTA1Nyk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAucHJlc2V0LXNlY3Rpb24gLnByZXNldC10aXRsZSBpLCAuY2FyZC1maWVsZHMtbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtdGl0bGUgaSB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzAwN2JmZik7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAucHJlc2V0LXNlY3Rpb24gLnByZXNldC1idXR0b25zLCAuY2FyZC1maWVsZHMtbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAucHJlc2V0LXNlY3Rpb24gLnByZXNldC1idXR0b25zIC5wcmVzZXQtYnRuLCAuY2FyZC1maWVsZHMtbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtYnV0dG9ucyAucHJlc2V0LWJ0biB7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgd2hpdGUpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICM0OTUwNTcpO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAucHJlc2V0LXNlY3Rpb24gLnByZXNldC1idXR0b25zIC5wcmVzZXQtYnRuOmhvdmVyLCAuY2FyZC1maWVsZHMtbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtYnV0dG9ucyAucHJlc2V0LWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDdiZmYpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyLCB3aGl0ZSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzAwN2JmZik7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5wcmVzZXQtc2VjdGlvbiAucHJlc2V0LWJ1dHRvbnMgLnByZXNldC1idG46YWN0aXZlLCAuY2FyZC1maWVsZHMtbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtYnV0dG9ucyAucHJlc2V0LWJ0bjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuc2VsZWN0ZWQtY291bnQsIC5jYXJkLWZpZWxkcy1tb2RhbCAuc2VsZWN0ZWQtY291bnQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzAwN2JmZik7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuYWN0aW9uLWJ1dHRvbnMsIC5jYXJkLWZpZWxkcy1tb2RhbCAuYWN0aW9uLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGJldHdlZW47XG4gIGdhcDogMC43NXJlbTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5hY3Rpb24tYnV0dG9ucyAuYnRuLCAuY2FyZC1maWVsZHMtbW9kYWwgLmFjdGlvbi1idXR0b25zIC5idG4ge1xuICBtaW4td2lkdGg6IDEyMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmFjdGlvbi1idXR0b25zIC5idG4uYnRuLW91dGxpbmUsIC5jYXJkLWZpZWxkcy1tb2RhbCAuYWN0aW9uLWJ1dHRvbnMgLmJ0bi5idG4tb3V0bGluZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzZjNzU3ZCk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuYWN0aW9uLWJ1dHRvbnMgLmJ0bi5idG4tb3V0bGluZTpob3ZlciwgLmNhcmQtZmllbGRzLW1vZGFsIC5hY3Rpb24tYnV0dG9ucyAuYnRuLmJ0bi1vdXRsaW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIsICNmOGY5ZmEpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDdiZmYpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzAwN2JmZik7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuYWN0aW9uLWJ1dHRvbnMgLmJ0bi5idG4tcHJpbWFyeSwgLmNhcmQtZmllbGRzLW1vZGFsIC5hY3Rpb24tYnV0dG9ucyAuYnRuLmJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzAwN2JmZik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzAwN2JmZik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIsIHdoaXRlKTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5hY3Rpb24tYnV0dG9ucyAuYnRuLmJ0bi1wcmltYXJ5OmhvdmVyLCAuY2FyZC1maWVsZHMtbW9kYWwgLmFjdGlvbi1idXR0b25zIC5idG4uYnRuLXByaW1hcnk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIsICMwMDU2YjMpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1ob3ZlciwgIzAwNTZiMyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4tZHJvcC16b25lLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1kcm9wLXpvbmUge1xuICBtaW4taGVpZ2h0OiAycHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIG9wYWNpdHk6IDA7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWRyb3Atem9uZS5hY3RpdmUsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWRyb3Atem9uZS5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBtaW4taGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDdiZmYpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG1hcmdpbjogMC4yNXJlbSAwO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmVtcHR5LWNvbHVtbi1saXN0LCAuY2FyZC1maWVsZHMtbW9kYWwgLmVtcHR5LWNvbHVtbi1saXN0IHtcbiAgcGFkZGluZzogMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICM2Yzc1N2QpO1xuICBvcGFjaXR5OiAwLjc7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuZW1wdHktY29sdW1uLWxpc3QgaSwgLmNhcmQtZmllbGRzLW1vZGFsIC5lbXB0eS1jb2x1bW4tbGlzdCBpIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5lbXB0eS1jb2x1bW4tbGlzdCBwLCAuY2FyZC1maWVsZHMtbW9kYWwgLmVtcHR5LWNvbHVtbi1saXN0IHAge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5jb2x1bW4tY29uZmlnLW1vZGFsIC5tb2RhbC1kaWFsb2csXG4gIC5jYXJkLWZpZWxkcy1tb2RhbCAubW9kYWwtZGlhbG9nIHtcbiAgICBtYXJnaW46IDFyZW07XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG4gIC5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4tbGlzdCxcbiAgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4tbGlzdCB7XG4gICAgbWF4LWhlaWdodDogMjUwcHg7XG4gIH1cbiAgLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtLFxuICAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIHtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gIH1cbiAgLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4taW5mbyAuY29sdW1uLWxhYmVsLFxuICAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4taW5mbyAuY29sdW1uLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICB9XG4gIC5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWluZm8gLmNvbHVtbi1tZXRhLFxuICAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4taW5mbyAuY29sdW1uLW1ldGEge1xuICAgIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICB9XG4gIC5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWFjdGlvbi1idG4sXG4gIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1hY3Rpb24tYnRuIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gIH1cbiAgLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0biBpLFxuICAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0biBpIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gIH1cbiAgLmNvbHVtbi1jb25maWctbW9kYWwgLnByZXNldC1idXR0b25zIC5wcmVzZXQtYnRuLFxuICAuY2FyZC1maWVsZHMtbW9kYWwgLnByZXNldC1idXR0b25zIC5wcmVzZXQtYnRuIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gIH1cbn1cbi5zcHJlYWRzaGVldC10YWJsZS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogMCA0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wNyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zcHJlYWRzaGVldC10YWJsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBhdXRvO1xuICBtaW4td2lkdGg6IG1heC1jb250ZW50O1xufVxuLnNwcmVhZHNoZWV0LXRhYmxlIHRib2R5IHRyOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLnNwcmVhZHNoZWV0LXRhYmxlIC5zdGFnZS1oZWFkZXItcm93IC5kcm9wZG93bi1tZW51IHtcbiAgei1pbmRleDogMTA1MCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbn1cblxuLnRhYmxlID4gOm5vdChjYXB0aW9uKSA+ICogPiAqIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xufVxuXG4uc3ByZWFkc2hlZXQtdGFibGUgdGgge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZTJlNiAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc3ByZWFkc2hlZXQtdGFibGUgdGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RlZTJlNjtcbn1cblxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IHRoLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xufVxuXG4udGFibGUgdGguc29ydGFibGUtaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG59XG5cbi5zcHJlYWRzaGVldC10YWJsZSB0aGVhZCB0aCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc3ByZWFkc2hlZXQtdGFibGUgdGhlYWQgdGg6bm90KC5zb3J0YWJsZS1oZWFkZXIpIHtcbiAgcGFkZGluZzogMC43NXJlbTtcbn1cblxuLnN0YWdlLWhlYWRlci1yb3cge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5zdGFnZS1oZWFkZXItcm93IHRkIHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5xdW90ZS1yb3cge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBjdXJzb3I6IG1vdmU7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4ucXVvdGUtcm93OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG4ucXVvdGUtcm93LmRyYWdnaW5nIHtcbiAgb3BhY2l0eTogMC42O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxZGVnKTtcbn1cbi5xdW90ZS1yb3cuZHJvcC10YXJnZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQwLCAxNjcsIDY5LCAwLjEpO1xuICBib3JkZXItbGVmdC1jb2xvcjogIzI4YTc0NTtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDtcbn1cbi5xdW90ZS1yb3cgdGQge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RlZTJlNjtcbn1cblxuLmRyYWctaGFuZGxlLXNwcmVhZHNoZWV0IHtcbiAgY3Vyc29yOiBncmFiO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uZHJhZy1oYW5kbGUtc3ByZWFkc2hlZXQ6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjEpO1xufVxuLmRyYWctaGFuZGxlLXNwcmVhZHNoZWV0OmFjdGl2ZSB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMik7XG59XG5cbi5lbXB0eS1zdGFnZS1yb3cgdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDIpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi51bmFzc2lnbmVkLXF1b3RlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE5MywgNywgMC4wMik7XG59XG5cbi52aWV3LXN3aXRjaGVyIC5idXR0b24tMTMsXG4udmlldy1zd2l0Y2hlciAuYnV0dG9uLTEzLW91dGxpbmUge1xuICBtYXJnaW46IDAuMjVyZW07XG59XG5cbi5zdGFnZS1jb3VudCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG59XG5cbi5tb3ZlLXF1b3RlLWJ0biB7XG4gIG9wYWNpdHk6IDAuNztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG4ubW92ZS1xdW90ZS1idG46aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMSk7XG59XG5cbi5zb3J0YWJsZS1oZWFkZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuICBwYWRkaW5nOiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc29ydGFibGUtaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc29ydGFibGUtaGVhZGVyID4gZGl2IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogYXV0bztcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xufVxuXG4uc29ydGFibGUtaGVhZGVyIC5kLWZsZXgge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5zb3J0YWJsZS1oZWFkZXIgc3BhbiB7XG4gIGZsZXg6IDE7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4uc29ydC1pbmRpY2F0b3JzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3BhY2l0eTogMC40O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbn1cbi5zb3J0LWluZGljYXRvcnMgLnNvcnQtYXNjIHtcbiAgbWFyZ2luLWJvdHRvbTogLTJweDtcbn1cbi5zb3J0LWluZGljYXRvcnMgLnNvcnQtZGVzYyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4uc29ydC1pbmRpY2F0b3JzIGkge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4uc29ydC1pbmRpY2F0b3JzIC5hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNvcnRhYmxlLWhlYWRlcjpob3ZlciAuc29ydC1pbmRpY2F0b3JzIHtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uc29ydGFibGUtaGVhZGVyLnNvcnRpbmcgLnNvcnQtaW5kaWNhdG9ycyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uc3ByZWFkc2hlZXQtdGFibGUgdGhbc3R5bGUqPXdpZHRoXSB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uc3ByZWFkc2hlZXQtdGFibGUgdGgge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnNvcnRhYmxlLWhlYWRlciA+IGRpdi5kLWZsZXgge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XG4gIGdhcDogMC41cmVtO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5zb3J0YWJsZS1oZWFkZXIgPiBkaXYuZC1mbGV4ID4gc3BhbiB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc29ydC1pbmRpY2F0b3JzIHtcbiAgZmxleDogMCAwIGF1dG8gIWltcG9ydGFudDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNwcmVhZHNoZWV0LXRhYmxlIHRoZWFkIHRoLFxuICAuc3ByZWFkc2hlZXQtdGFibGUgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICB9XG4gIC52aWV3LXN3aXRjaGVyIHtcbiAgICBvcmRlcjogLTE7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAud29ya2Zsb3ctaGVhZGVyIC5tb2JpbGUtY29udHJvbHMtY29udGFpbmVyIC5kLWZsZXgge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxufVxuLyogRGVuc2UsIHNoYXJlZCB3b3Jrc3BhY2UgY2hyb21lIGZvciBldmVyeSB3b3JrZmxvdyB2aWV3LiAqL1xuLmNybS13b3Jrc3BhY2Uge1xuICAtLWNybS1ib3JkZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgMTQlLCB0cmFuc3BhcmVudCk7XG4gIC0tY3JtLW11dGVkOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpIDYyJSwgdHJhbnNwYXJlbnQpO1xuICAtLWNybS1zdXJmYWNlOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIC0tY3JtLXN1YnRsZTogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKSA5MCUsIHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSk7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmNybS13b3Jrc3BhY2UtaGVhZGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAyNTtcbiAgcGFkZGluZzogMC42NXJlbSAxcmVtIDAuNTVyZW07XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2ZmZikgOTQlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0td29ya2Zsb3ctY29sb3VyKSAzMiUsIHZhcigtLWNybS1ib3JkZXIpKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0td29ya2Zsb3ctY29sb3VyKSA4MiUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpO1xufVxuXG4uY3JtLXdvcmtzcGFjZS10b3BsaW5lLFxuLmNybS13b3Jrc3BhY2UtbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjY1cmVtO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jcm0td29ya3NwYWNlLXRvcGxpbmUge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5jcm0td29ya3NwYWNlLWlkZW50aXR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjZyZW07XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmNybS13b3Jrc3BhY2UtbWFya2VyIHtcbiAgd2lkdGg6IDNweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4uY3JtLXdvcmtzcGFjZS10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuMDVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLXRyaWdnZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLXRyaWdnZXI6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLXRyaWdnZXIgLmNybS13b3Jrc3BhY2UtdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jcm0td29ya2Zsb3ctc3dpdGNoZXItdHJpZ2dlciAuY3JtLXdvcmtzcGFjZS10aXRsZSBzcGFuIHtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci10cmlnZ2VyIGkge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41NXJlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbi5jcm0td29ya2Zsb3ctc3dpdGNoZXItdHJpZ2dlcjpob3ZlciBpLFxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci10cmlnZ2VyOmZvY3VzLXZpc2libGUgaSB7XG4gIGNvbG9yOiB2YXIoLS13b3JrZmxvdy1jb2xvdXIpO1xufVxuXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyW29wZW5dIC5jcm0td29ya2Zsb3ctc3dpdGNoZXItdHJpZ2dlciA+IGkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgMC4zNXJlbSk7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAzNDBweDtcbiAgbWluLXdpZHRoOiAyMzBweDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMjBweCk7XG4gIHBhZGRpbmc6IDAuM3JlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlcltvcGVuXSA+IC5jcm0td29ya2Zsb3ctc3dpdGNoZXItbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLW1lbnUgLmNybS13b3JrZmxvdy1zd2l0Y2hlci1vcHRpb24ge1xuICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogOHB4IG1pbm1heCgwLCAxZnIpIDE0cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41NXJlbTtcbiAgcGFkZGluZzogMC40NXJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSAhaW1wb3J0YW50O1xufVxuXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLW9wdGlvbi5hY3RpdmUsXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLW9wdGlvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0td29ya2Zsb3ctY29sb3VyKSA5JSwgdmFyKC0tY3JtLXN1cmZhY2UpKTtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci1tYXJrZXIge1xuICBncmlkLWNvbHVtbjogMTtcbiAgZ3JpZC1yb3c6IDE7XG4gIHdpZHRoOiA3cHg7XG4gIGhlaWdodDogMjZweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zd2l0Y2hlci1jb2xvdXIpO1xufVxuXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLWNvcHkge1xuICBncmlkLWNvbHVtbjogMjtcbiAgZ3JpZC1yb3c6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci1jb3B5IHN0cm9uZyxcbi5jcm0td29ya2Zsb3ctc3dpdGNoZXItY29weSBzbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci1jb3B5IHN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDY1MDtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci1jb3B5IHNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMC4wNXJlbTtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci1jaGVjayB7XG4gIGdyaWQtY29sdW1uOiAzO1xuICBncmlkLXJvdzogMTtcbiAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS13b3JrZmxvdy1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNjVyZW07XG59XG5cbi5jcm0td29ya3NwYWNlLWRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luOiAwLjFyZW0gMCAwO1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNybS13b3Jrc3BhY2UtbmF2IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tdG9wOiAwLjU1cmVtO1xufVxuXG4uY3JtLXZpZXctc3dpdGNoZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMnB4O1xuICBnYXA6IDFweDtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jcm0tc3VidGxlKTtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xufVxuXG4uY3JtLXZpZXctc3dpdGNoZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNybS12aWV3LW9wdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBtaW4taGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiAwLjNyZW0gMC42cmVtO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCkgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY3JtLXZpZXctb3B0aW9uOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXdvcmtmbG93LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXdvcmtmbG93LWNvbG91cikgNiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLmNybS12aWV3LW9wdGlvbi5pcy1hY3RpdmUge1xuICBjb2xvcjogdmFyKC0td29ya2Zsb3ctY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0td29ya2Zsb3ctY29sb3VyKSA5JSwgdmFyKC0tY3JtLXN1cmZhY2UpKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMnB4IDAgdmFyKC0td29ya2Zsb3ctY29sb3VyKSwgMCAxcHggM3B4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgMTAlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5jcm0tdmlldy1vcHRpb24gaSB7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbn1cblxuLmNybS13b3Jrc3BhY2UtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4xNXJlbTtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi5jcm0td29ya3NwYWNlLWFjdGlvbnMgLm1kdWktaWNvbiB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIG1pbi13aWR0aDogMzJweDtcbn1cblxuLmNybS13b3Jrc3BhY2UtbWVudSB7XG4gIG1pbi13aWR0aDogMTkwcHg7XG4gIHBhZGRpbmc6IDAuM3JlbTtcbn1cblxuLmNybS13b3Jrc3BhY2UtbWVudSAuZHJvcGRvd24taXRlbSB7XG4gIHBhZGRpbmc6IDAuNDVyZW0gMC41NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5jcm0td29ya3NwYWNlLW1lbnUgLmRyb3Bkb3duLWl0ZW0gaSB7XG4gIHdpZHRoOiAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jcm0tYXNzaWduZWUtY291bnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTJweDtcbiAgcmlnaHQ6IC0ycHg7XG4gIG1pbi13aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBwYWRkaW5nOiAwIDNweDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsICNmZmYpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktdGV4dC1jb2xvdXIsICNmZmYpO1xuICBmb250LXNpemU6IDAuNTNyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jcm0tYXNzaWduZWUtbWVudSB7XG4gIHdpZHRoOiAyODBweDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIHBhZGRpbmc6IDAuMzVyZW07XG59XG5cbi5jcm0tYXNzaWduZWUtaGVhZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMC4zNXJlbSAwLjQ1cmVtIDAuNDVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSk7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmNybS1hc3NpZ25lZS1oZWFkaW5nIHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbn1cblxuLmNybS1hc3NpZ25lZS1saXN0IHtcbiAgbWF4LWhlaWdodDogMjgwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5jcm0tYXNzaWduZWUtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMHB4IG1pbm1heCgwLCAxZnIpIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiAwLjNyZW0gMC40cmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5jcm0tYXNzaWduZWUtcm93OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY3JtLXN1YnRsZSk7XG59XG5cbi5jcm0tYXNzaWduZWUtYXZhdGFyIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jcm0tc3VidGxlKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmNybS1hc3NpZ25lZS1hdmF0YXIgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5jcm0tYXNzaWduZWUtbmFtZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSk7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jcm0tYXNzaWduZWUtcm9sZSB7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNnJlbTtcbn1cblxuLmNybS1hc3NpZ25lZS1lbXB0eSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBwYWRkaW5nOiAwLjc1cmVtIDAuNDVyZW07XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpO1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLmNybS1hc3NpZ25lZS1mb290ZXIge1xuICBtYXJnaW4tdG9wOiAwLjNyZW07XG4gIHBhZGRpbmctdG9wOiAwLjNyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyKTtcbn1cblxuLmNybS1hc3NpZ25lZS1mb290ZXIgLmRyb3Bkb3duLWl0ZW0ge1xuICBwYWRkaW5nOiAwLjQ1cmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xufVxuXG4uY3JtLXdvcmtzcGFjZS1ib2R5IHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4vKiBLYW5iYW46IG1vcmUgaW5mb3JtYXRpb24gYW5kIG1vcmUgY29sdW1ucyBhYm92ZSB0aGUgZm9sZC4gKi9cbi5jcm0td29ya3NwYWNlIC5rYW5iYW4tYm9hcmQge1xuICBwYWRkaW5nOiAwLjY1cmVtIDFyZW0gMXJlbSAhaW1wb3J0YW50O1xufVxuXG4uY3JtLXdvcmtzcGFjZSAua2FuYmFuLWNvbHVtbnMtY29udGFpbmVyIHtcbiAgZ2FwOiAwLjY1cmVtO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmNybS13b3Jrc3BhY2UgLmthbmJhbi1jb2x1bW4td3JhcHBlciB7XG4gIG1pbi13aWR0aDogMjY4cHg7XG4gIHdpZHRoOiAyNjhweDtcbn1cblxuLmNybS13b3Jrc3BhY2UgLmthbmJhbi1jb2x1bW4ge1xuICB3aWR0aDogMjY4cHg7XG4gIG1pbi13aWR0aDogMjY4cHg7XG4gIG1heC13aWR0aDogMjY4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNybS1zdWJ0bGUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uY3JtLXdvcmtzcGFjZSAua2FuYmFuLWhlYWRlciB7XG4gIHBhZGRpbmc6IDAuNjVyZW0gMC43cmVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwICFpbXBvcnRhbnQ7XG59XG5cbi5jcm0td29ya3NwYWNlIC5rYW5iYW4taGVhZGVyIGg1IHtcbiAgZm9udC1zaXplOiAwLjgycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLmNybS13b3Jrc3BhY2UgLmthbmJhbi1oZWFkZXIgLnN0YWdlLWNvdW50ZXIsXG4uY3JtLXdvcmtzcGFjZSAua2FuYmFuLWhlYWRlciAuc3RhZ2UtcHJvYmFiaWxpdHkge1xuICBmb250LXNpemU6IDAuNjVyZW07XG59XG5cbi5jcm0td29ya3NwYWNlIC5rYW5iYW4tYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEyMHB4ICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyNDVweCk7XG4gIHBhZGRpbmc6IDAuNDVyZW0gIWltcG9ydGFudDtcbn1cblxuLmNybS13b3Jrc3BhY2UgLnF1b3RlLWNhcmQge1xuICBtYXJnaW4tYm90dG9tOiAwLjRyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgOCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuXG4uY3JtLXdvcmtzcGFjZSAucXVvdGUtY2FyZCAuY2FyZC1pbWFnZS1maWVsZCBpbWcge1xuICBoZWlnaHQ6IDc2cHg7XG59XG5cbi5jcm0td29ya3NwYWNlIC5xdW90ZS1jYXJkIC5jYXJkLWZpZWxkLWl0ZW0ge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5jcm0td29ya3NwYWNlIC5zdGFnZS1zb3J0LWNvbnRyb2xzIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi5jcm0td29ya3NwYWNlIC5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0biB7XG4gIHdpZHRoOiAyN3B4O1xuICBoZWlnaHQ6IDI3cHg7XG59XG5cbi8qIFNwcmVhZHNoZWV0IGFuZCBsaXN0IHNoYXJlIGNvbXBhY3QgdGFibGUtbGlrZSByaHl0aG0uICovXG4uY3JtLXdvcmtzcGFjZSAuc3ByZWFkc2hlZXQtY29udGFpbmVyLFxuLmNybS13b3Jrc3BhY2UgLmxpc3Qtdmlldy1jb250YWluZXIsXG4uY3JtLXdvcmtzcGFjZSAuY29sbGFib3JhdGlvbi12aWV3LWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW0gMXJlbSAhaW1wb3J0YW50O1xufVxuXG4uY3JtLXdvcmtzcGFjZSAuc3ByZWFkc2hlZXQtdGFibGUtY29udGFpbmVyIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uY3JtLXdvcmtzcGFjZSAuc3ByZWFkc2hlZXQtdGFibGUgdGgge1xuICBwYWRkaW5nOiAwLjQ4cmVtIDAuNTVyZW07XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xufVxuXG4uY3JtLXdvcmtzcGFjZSAuc3ByZWFkc2hlZXQtdGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjQycmVtIDAuNTVyZW07XG4gIGZvbnQtc2l6ZTogMC43NnJlbTtcbn1cblxuLmNybS13b3Jrc3BhY2UgLnNwcmVhZHNoZWV0LXRhYmxlIC5zdGFnZS1oZWFkZXItcm93IHRkIHtcbiAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5jcm0td29ya3NwYWNlIC5zcHJlYWRzaGVldC10YWJsZSAuc3RhZ2UtaGVhZGVyLXJvdyBoNSB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cblxuLmNybS13b3Jrc3BhY2UgLnNwcmVhZHNoZWV0LXRhYmxlIHRoLnNvcnRhYmxlLWhlYWRlcjpob3Zlcixcbi5jcm0td29ya3NwYWNlIC5zcHJlYWRzaGVldC10YWJsZSB0aC5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWFzYyxcbi5jcm0td29ya3NwYWNlIC5zcHJlYWRzaGVldC10YWJsZSB0aC5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWRlc2Mge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDclLCB2YXIoLS1jYXJkLWNvbG91cikpICFpbXBvcnRhbnQ7XG59XG5cbi5jcm0td29ya3NwYWNlIC5zcHJlYWRzaGVldC10YWJsZS50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIucXVvdGUtcm93OmhvdmVyID4gdGQge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNiUsIHZhcigtLWNhcmQtY29sb3VyKSkgIWltcG9ydGFudDtcbn1cblxuLmNybS13b3Jrc3BhY2UgLnNwcmVhZHNoZWV0LXRhYmxlLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5zdGFnZS1oZWFkZXItcm93OmhvdmVyID4gdGQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uY3JtLXdvcmtzcGFjZSAuc3ByZWFkc2hlZXQtdGFibGUgdGJvZHkgdHI6aG92ZXIge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5zcHJlYWRzaGVldC1zdGFnZS1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLmNybS1saXN0LXRvb2xiYXIge1xuICBwYWRkaW5nOiAwLjU1cmVtIDAuNjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMC41NXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uY3JtLWxpc3Qtdmlldy10b2dnbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICBnYXA6IDA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG59XG5cbi5jcm0tbGlzdC12aWV3LWJ1dHRvbiB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY3JtLWxpc3Qtdmlldy1idXR0b246aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpO1xufVxuXG4uY3JtLWxpc3Qtdmlldy1idXR0b24uYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLXdvcmtmbG93LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS13b3JrZmxvdy1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uY3JtLWxpc3Qtdmlldy1idXR0b24gaSB7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuNHJlbTtcbn1cblxuLndvcmtmbG93LXF1b3RlLWl0ZW0ge1xuICBtaW4td2lkdGg6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNybS1zdXJmYWNlKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG59XG5cbi53b3JrZmxvdy1xdW90ZS1pdGVtOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0td29ya2Zsb3ctY29sb3VyKSA0OCUsIHZhcigtLWNybS1ib3JkZXIpKTtcbiAgYm94LXNoYWRvdzogMCAzcHggMTBweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpIDklLCB0cmFuc3BhcmVudCk7XG59XG5cbi53b3JrZmxvdy1xdW90ZS1saW5rIHtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi53b3JrZmxvdy1xdW90ZS1pbWFnZSxcbi53b3JrZmxvdy1xdW90ZS1pbWFnZS1wbGFjZWhvbGRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY3JtLXN1YnRsZSk7XG59XG5cbi53b3JrZmxvdy1xdW90ZS1pbWFnZS1wbGFjZWhvbGRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkKTtcbn1cblxuLndvcmtmbG93LXF1b3RlLXByaW1hcnkge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi53b3JrZmxvdy1xdW90ZS1uYW1lIHtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpO1xuICBmb250LXNpemU6IDAuODJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLndvcmtmbG93LXF1b3RlLWFkZHJlc3Mge1xuICBtYXJnaW46IDAuMTJyZW0gMCAwO1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLndvcmtmbG93LXN0YWdlLXBpbGwge1xuICAtLXN0YWdlLWNvbG91cjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMjJyZW0gMC40NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXN0YWdlLWNvbG91cikgMzAlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc3RhZ2UtY29sb3VyKSA5JSwgdmFyKC0tY3JtLXN1cmZhY2UpKTtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ud29ya2Zsb3ctc3RhZ2UtZG90IHtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc3RhZ2UtY29sb3VyKTtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi53b3JrZmxvdy1zdGFnZS1waWxsLmlzLXVuYXNzaWduZWQge1xuICAtLXN0YWdlLWNvbG91cjogI2I4ODIwMDtcbn1cblxuLndvcmtmbG93LXF1b3RlLWZpZWxkcyB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLndvcmtmbG93LXF1b3RlLWZpZWxkIHtcbiAgbWluLXdpZHRoOiAwO1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLndvcmtmbG93LXF1b3RlLWZpZWxkIC5jYXJkLWZpZWxkLWl0ZW0ge1xuICBtYXJnaW46IDA7XG59XG5cbi53b3JrZmxvdy1xdW90ZS11cGRhdGVkIHtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi53b3JrZmxvdy1xdW90ZS11cGRhdGVkIHNwYW4sXG4ud29ya2Zsb3ctcXVvdGUtdXBkYXRlZCBzdHJvbmcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLndvcmtmbG93LXF1b3RlLXVwZGF0ZWQgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLndvcmtmbG93LXF1b3RlLWNoZXZyb24ge1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG59XG5cbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC53b3JrZmxvdy1xdW90ZS1saW5rIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzOHB4IG1pbm1heCgxNTBweCwgMS40ZnIpIG1pbm1heCgxMTBweCwgMC42NWZyKSBtaW5tYXgoMTgwcHgsIDFmcikgNzJweCAxNHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuN3JlbTtcbiAgbWluLWhlaWdodDogNTRweDtcbiAgcGFkZGluZzogMC40MnJlbSAwLjY1cmVtO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAud29ya2Zsb3ctcXVvdGUtaW1hZ2UsXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAud29ya2Zsb3ctcXVvdGUtaW1hZ2UtcGxhY2Vob2xkZXIge1xuICB3aWR0aDogMzhweDtcbiAgaGVpZ2h0OiAzOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC53b3JrZmxvdy1xdW90ZS1maWVsZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC53b3JrZmxvdy1xdW90ZS1maWVsZCB7XG4gIGZsZXg6IDEgMSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMzBweCwgMWZyKSk7XG4gIGdhcDogMC43cmVtO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLWl0ZW06aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAud29ya2Zsb3ctcXVvdGUtbGluayB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwidmlzdWFsIHZpc3VhbFwiIFwicHJpbWFyeSBzdGFnZVwiIFwiZmllbGRzIGZpZWxkc1wiIFwidXBkYXRlZCBhcnJvd1wiO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNjVyZW07XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDAuNjVyZW07XG59XG5cbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAud29ya2Zsb3ctcXVvdGUtdmlzdWFsIHtcbiAgZ3JpZC1hcmVhOiB2aXN1YWw7XG59XG5cbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAud29ya2Zsb3ctcXVvdGUtaW1hZ2UsXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLWltYWdlLXBsYWNlaG9sZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAud29ya2Zsb3ctcXVvdGUtaW1hZ2UtcGxhY2Vob2xkZXIgaSB7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLXByaW1hcnkge1xuICBncmlkLWFyZWE6IHByaW1hcnk7XG4gIHBhZGRpbmctbGVmdDogMC43cmVtO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLXN0YWdlIHtcbiAgZ3JpZC1hcmVhOiBzdGFnZTtcbiAgcGFkZGluZy1yaWdodDogMC43cmVtO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAud29ya2Zsb3ctcXVvdGUtZmllbGRzIHtcbiAgZ3JpZC1hcmVhOiBmaWVsZHM7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgZ2FwOiAwLjM1cmVtIDAuN3JlbTtcbiAgcGFkZGluZzogMC42cmVtIDAuN3JlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG59XG5cbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAud29ya2Zsb3ctcXVvdGUtdXBkYXRlZCB7XG4gIGdyaWQtYXJlYTogdXBkYXRlZDtcbiAgcGFkZGluZy1sZWZ0OiAwLjdyZW07XG59XG5cbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAud29ya2Zsb3ctcXVvdGUtY2hldnJvbiB7XG4gIGdyaWQtYXJlYTogYXJyb3c7XG4gIHBhZGRpbmctcmlnaHQ6IDAuN3JlbTtcbn1cblxuLyogU2hhcmVkIHF1b3RlIGNhcmQ6IHF1b3RlcyBpbmRleCBhbmQgd29ya2Zsb3cgbGlzdCB1c2UgdGhlIHNhbWUgaW5mb3JtYXRpb24gaGllcmFyY2h5LiAqL1xuLnF1b3RlLWxpc3QtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLXdpZHRoOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyLCB2YXIoLS1ib3JkZXItY29sb3VyKSk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY3JtLXN1cmZhY2UsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBib3gtc2hhZG93IDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeS1jb2xvdXIpIDQ1JSwgdmFyKC0tY3JtLWJvcmRlciwgdmFyKC0tYm9yZGVyLWNvbG91cikpKTtcbiAgYm94LXNoYWRvdzogMCAzcHggMTBweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDklLCB0cmFuc3BhcmVudCk7XG59XG5cbi5jcm0td29ya3NwYWNlIC5xdW90ZS1saXN0LWNhcmQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS13b3JrZmxvdy1jb2xvdXIpIDQ4JSwgdmFyKC0tY3JtLWJvcmRlcikpO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19saW5rIHtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLFxuLnF1b3RlLWxpc3QtY2FyZF9faW1hZ2UtcGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jcm0tc3VidGxlLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikpO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19pbWFnZS1wbGFjZWhvbGRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkLCB2YXIoLS10ZXh0LWNvbG91cikpO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX3ByaW1hcnkge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX25hbWUge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19hZGRyZXNzIHtcbiAgbWFyZ2luOiAwLjEycmVtIDAgMDtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCwgdmFyKC0tdGV4dC1jb2xvdXIpKTtcbiAgb3BhY2l0eTogMC43O1xuICBmb250LXNpemU6IDAuNjhyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19jbGllbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjhyZW07XG4gIG1hcmdpbjogMC4xOHJlbSAwIDA7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQsIHZhcigtLXRleHQtY29sb3VyKSk7XG4gIGZvbnQtc2l6ZTogMC42NHJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX2NsaWVudCBpIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fYmFkZ2VzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjIycmVtO1xuICBwYWRkaW5nOiAwLjE2cmVtIDAuMzVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wcmltYXJ5LWNvbG91cikgMjUlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXByaW1hcnktY29sb3VyKSA4JSwgdmFyKC0tY3JtLXN1cmZhY2UsIHZhcigtLWNhcmQtY29sb3VyKSkpO1xuICBmb250LXNpemU6IDAuNThyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX2JhZGdlLmlzLXNpZ25lZCB7XG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzLWNvbG91ciwgIzE4Nzk0ZSk7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXN1Y2Nlc3MtY29sb3VyLCAjMTg3OTRlKSAzMCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fYmFkZ2UuaXMtaW5jb21wbGV0ZSB7XG4gIGNvbG9yOiB2YXIoLS1kYW5nZXItY29sb3VyLCAjYjQyMzE4KTtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZGFuZ2VyLWNvbG91ciwgI2I0MjMxOCkgMjUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX2JhZGdlLmlzLW11dGVkIHtcbiAgb3BhY2l0eTogMC42NTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fc3RhZ2UtcGlsbCB7XG4gIC0tc3RhZ2UtY29sb3VyOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC4yMnJlbSAwLjQ1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc3RhZ2UtY29sb3VyKSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zdGFnZS1jb2xvdXIpIDklLCB2YXIoLS1jcm0tc3VyZmFjZSwgdmFyKC0tY2FyZC1jb2xvdXIpKSk7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX3N0YWdlLXBpbGwgPiBzcGFuIHtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc3RhZ2UtY29sb3VyKTtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX3N0YWdlLXBpbGwuaXMtdW5hc3NpZ25lZCB7XG4gIC0tc3RhZ2UtY29sb3VyOiAjYjg4MjAwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19maWVsZHMge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX2ZpZWxkIHtcbiAgbWluLXdpZHRoOiAwO1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fZmllbGQgLmNhcmQtZmllbGQtaXRlbSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fdXBkYXRlZCB7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQsIHZhcigtLXRleHQtY29sb3VyKSk7XG4gIG9wYWNpdHk6IDAuNztcbiAgZm9udC1zaXplOiAwLjYycmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fdXBkYXRlZCBzcGFuLFxuLnF1b3RlLWxpc3QtY2FyZF9fdXBkYXRlZCBzdHJvbmcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fdXBkYXRlZCBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19jaGV2cm9uIHtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCwgdmFyKC0tdGV4dC1jb2xvdXIpKTtcbiAgb3BhY2l0eTogMC43O1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fYWN0aW9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB0b3A6IDAuMzVyZW07XG4gIHJpZ2h0OiAwLjM1cmVtO1xuICB6LWluZGV4OiAzO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19hY3Rpb25zIC5tZHVpLWljb24ge1xuICB3aWR0aDogMjdweDtcbiAgaGVpZ2h0OiAyN3B4O1xuICBtaW4td2lkdGg6IDI3cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jcm0tc3VyZmFjZSwgdmFyKC0tY2FyZC1jb2xvdXIpKSA4OCUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLXJvdyAucXVvdGUtbGlzdC1jYXJkX19hY3Rpb25zIHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAxLjhyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZC0tcm93IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHotaW5kZXg6IDA7XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLXJvdzpoYXMoLmRyb3Bkb3duLW1lbnUuc2hvdykge1xuICB6LWluZGV4OiAxMTAwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1yb3cgLmRyb3Bkb3duLW1lbnUuc2hvdyB7XG4gIHotaW5kZXg6IDExMDEgIWltcG9ydGFudDtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZC0tY2FyZCxcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1jYXJkOmhvdmVyLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmU6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLWNhcmQgLnF1b3RlLWxpc3QtY2FyZF9fbGluayxcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2xpbmsge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG87XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwidmlzdWFsIHZpc3VhbFwiIFwicHJpbWFyeSBzdGFnZVwiIFwiYmFkZ2VzIGJhZGdlc1wiIFwiZmllbGRzIGZpZWxkc1wiIFwidXBkYXRlZCBhcnJvd1wiO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNnJlbTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDAuNjVyZW07XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLWNhcmQgLnF1b3RlLWxpc3QtY2FyZF9fdmlzdWFsLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9fdmlzdWFsIHtcbiAgZ3JpZC1hcmVhOiB2aXN1YWw7XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLWNhcmQgLnF1b3RlLWxpc3QtY2FyZF9faW1hZ2UsXG4ucXVvdGUtbGlzdC1jYXJkLS1jYXJkIC5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLXBsYWNlaG9sZGVyLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9faW1hZ2UsXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSAucXVvdGUtbGlzdC1jYXJkX19pbWFnZS1wbGFjZWhvbGRlciB7XG4gIGhlaWdodDogMTEycHg7XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLWNhcmQgLnF1b3RlLWxpc3QtY2FyZF9fcHJpbWFyeSxcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX3ByaW1hcnkge1xuICBncmlkLWFyZWE6IHByaW1hcnk7XG4gIHBhZGRpbmctbGVmdDogMC43cmVtO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1jYXJkIC5xdW90ZS1saXN0LWNhcmRfX3N0YWdlLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9fc3RhZ2Uge1xuICBncmlkLWFyZWE6IHN0YWdlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjdyZW07XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZC0tY2FyZCAucXVvdGUtbGlzdC1jYXJkX19iYWRnZXMsXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSAucXVvdGUtbGlzdC1jYXJkX19iYWRnZXMge1xuICBncmlkLWFyZWE6IGJhZGdlcztcbiAgcGFkZGluZzogMCAwLjdyZW07XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLWNhcmQgLnF1b3RlLWxpc3QtY2FyZF9fZmllbGRzLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9fZmllbGRzIHtcbiAgZ3JpZC1hcmVhOiBmaWVsZHM7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgZ2FwOiAwLjM1cmVtIDAuN3JlbTtcbiAgcGFkZGluZzogMC42cmVtIDAuN3JlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIsIHZhcigtLWJvcmRlci1jb2xvdXIpKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIsIHZhcigtLWJvcmRlci1jb2xvdXIpKTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZC0tY2FyZCAucXVvdGUtbGlzdC1jYXJkX191cGRhdGVkLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9fdXBkYXRlZCB7XG4gIGdyaWQtYXJlYTogdXBkYXRlZDtcbiAgcGFkZGluZy1sZWZ0OiAwLjdyZW07XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLWNhcmQgLnF1b3RlLWxpc3QtY2FyZF9fY2hldnJvbixcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2NoZXZyb24ge1xuICBncmlkLWFyZWE6IGFycm93O1xuICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgcGFkZGluZy1yaWdodDogMC43cmVtO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1yb3cgLnF1b3RlLWxpc3QtY2FyZF9fbGluayxcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9fbGluayB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzhweCBtaW5tYXgoMTQwcHgsIDEuMjVmcikgbWlubWF4KDE1MHB4LCBhdXRvKSBtaW5tYXgoMTA1cHgsIDAuNTVmcikgbWlubWF4KDEyMHB4LCAwLjc1ZnIpIDcycHggMTRweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjY1cmVtO1xuICBtaW4taGVpZ2h0OiA1NHB4O1xuICBwYWRkaW5nOiAwLjQycmVtIDAuNjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLFxuLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLXBsYWNlaG9sZGVyLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSAucXVvdGUtbGlzdC1jYXJkX19pbWFnZSxcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9faW1hZ2UtcGxhY2Vob2xkZXIge1xuICB3aWR0aDogMzhweDtcbiAgaGVpZ2h0OiAzOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLXJvdyAucXVvdGUtbGlzdC1jYXJkX19maWVsZHMsXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2ZpZWxkcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5xdW90ZS1saXN0LWNhcmRfX2ZpZWxkLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSAucXVvdGUtbGlzdC1jYXJkX19maWVsZCB7XG4gIGZsZXg6IDEgMSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBDb2xsYWJvcmF0aW9uIHJlYWRzIGxpa2UgYSBmb2N1c2VkIHRlYW0gY29uc29sZSwgbm90IHR3byBmbG9hdGluZyBjYXJkcy4gKi9cbi5jcm0tY29sbGFib3JhdGlvbi1ncmlkIHtcbiAgLS1icy1ndXR0ZXIteDogLjc1cmVtO1xuICAtLWJzLWd1dHRlci15OiAuNzVyZW07XG59XG5cbi5jcm0tY29sbGFib3JhdGlvbi1wYW5lbCB7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDE5MHB4KSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiA1MjBweDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNybS1zdXJmYWNlKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNybS1jb252ZXJzYXRpb24gPiB0dXJiby1mcmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLmNybS1jb2xsYWJvcmF0aW9uLWhlYWRlciB7XG4gIG1pbi1oZWlnaHQ6IDU4cHg7XG4gIHBhZGRpbmc6IDAuNjVyZW0gMC44cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuXG4uY3JtLWNvbGxhYm9yYXRpb24tdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44NnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG5cbi5jcm0tY29sbGFib3JhdGlvbi1zdWJ0aXRsZSB7XG4gIG1hcmdpbjogMC4xcmVtIDAgMDtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC42NnJlbTtcbn1cblxuLmNybS1wYXJ0aWNpcGFudHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtO1xufVxuXG4uY3JtLXBhcnRpY2lwYW50LWF2YXRhcixcbi5jcm0tcGFydGljaXBhbnQtbW9yZSB7XG4gIHdpZHRoOiAyN3B4O1xuICBoZWlnaHQ6IDI3cHg7XG4gIG1hcmdpbi1yaWdodDogLTZweDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY3JtLXN1cmZhY2UpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNybS1zdWJ0bGUpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjYzcmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY3JtLXBhcnRpY2lwYW50LWF2YXRhciBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLmNybS1wYXJ0aWNpcGFudC1tb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG91ciwgI2ZmZik7XG59XG5cbi5jcm0tbWVzc2FnZS1zdHJlYW0ge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgcGFkZGluZzogMXJlbSAxLjFyZW0gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJhY2tncm91bmQtY29sb3VyLCAjZmZmKSA0NSUsIHZhcigtLWNybS1zdXJmYWNlKSk7XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbn1cblxuLmNybS1tZXNzYWdlIHtcbiAgbWFyZ2luOiAwIDAgMC44NXJlbTtcbn1cblxuLmNybS1tZXNzYWdlLWxheW91dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDAuNTVyZW07XG59XG5cbi5jcm0tbWVzc2FnZS1sYXlvdXQuaXMtb3duIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4uY3JtLW1lc3NhZ2UtYXZhdGFyLWltYWdlLFxuLmNybS1tZXNzYWdlLWF2YXRhci1wbGFjZWhvbGRlciB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5jcm0tbWVzc2FnZS1hdmF0YXItcGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG91ciwgI2ZmZik7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtYnViYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogbWluKDcyJSwgNjIwcHgpO1xuICBwYWRkaW5nOiAwLjU1cmVtIDAuN3JlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY3JtLXN1cmZhY2UpO1xuICBib3gtc2hhZG93OiAwIDFweCAycHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSA1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtYnViYmxlLW93biB7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXByaW1hcnktY29sb3VyKSAyOCUsIHZhcigtLWNybS1ib3JkZXIpKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXByaW1hcnktY29sb3VyKSA3JSwgdmFyKC0tY3JtLXN1cmZhY2UpKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpICFpbXBvcnRhbnQ7XG59XG5cbi5jcm0tbWVzc2FnZSAubWVzc2FnZS1idWJibGUtb3duOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmNybS1tZXNzYWdlIC5tZXNzYWdlLWJ1YmJsZTpob3ZlciB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmNybS1tZXNzYWdlIC5tZXNzYWdlLWJ1YmJsZS1vd24gLnRleHQtbXV0ZWQge1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkKSAhaW1wb3J0YW50O1xufVxuXG4uY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtaGVhZGVyIHtcbiAgZ2FwOiAwLjhyZW07XG59XG5cbi5jcm0tbWVzc2FnZSAubWVzc2FnZS1oZWFkZXIgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAwLjY5cmVtO1xufVxuXG4uY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtaGVhZGVyIHNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi5jcm0tbWVzc2FnZSAubWVzc2FnZS1jb250ZW50IHtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xuICBsaW5lLWhlaWdodDogMS40Mjtcbn1cblxuLmNybS1tZXNzYWdlIC5tZXNzYWdlLWNvbnRlbnQgPiBkaXYsXG4uY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtY29udGVudCBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtYWN0aW9ucyB7XG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuXG4uY3JtLW1lc3NhZ2U6aG92ZXIgLm1lc3NhZ2UtYWN0aW9ucyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jcm0tbWVzc2FnZSAubWVzc2FnZS1hY3Rpb25zIC5tZHVpLWljb24ge1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBtaW4td2lkdGg6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbn1cblxuLmNybS1jb2xsYWJvcmF0aW9uLWVtcHR5IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyODBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jcm0tY29sbGFib3JhdGlvbi1lbXB0eSBpIHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNjVyZW07XG59XG5cbi5jcm0tY29sbGFib3JhdGlvbi1lbXB0eSBoMyB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLmNybS1jb2xsYWJvcmF0aW9uLWVtcHR5IHAge1xuICBtYXJnaW46IDAuMjVyZW0gMCAwO1xuICBmb250LXNpemU6IDAuNzJyZW07XG59XG5cbi5jcm0tbWVzc2FnZS1jb21wb3NlciB7XG4gIHBhZGRpbmc6IDAuNjVyZW0gMC43NXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG59XG5cbi5jcm0tY29tcG9zZXItc3VyZmFjZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZ2FwOiAwLjRyZW07XG4gIHBhZGRpbmc6IDAuM3JlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY3JtLXN1YnRsZSk7XG59XG5cbi5jcm0tY29tcG9zZXItaW5wdXQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uY3JtLWNvbXBvc2VyLWlucHV0IC5tZXNzYWdlLWlucHV0IHtcbiAgbWluLWhlaWdodDogMzRweDtcbiAgbWF4LWhlaWdodDogMTMwcHg7XG4gIHBhZGRpbmc6IDAuNDVyZW0gMC41NXJlbTtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xufVxuXG4uY3JtLWNvbXBvc2VyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMDVyZW07XG59XG5cbi5jcm0tY29tcG9zZXItYWN0aW9ucyAubWR1aS1pY29uLFxuLmNybS1jb21wb3Nlci1hY3Rpb25zIC5maWxlLXVwbG9hZC13cmFwcGVyIGxhYmVsIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbWluLXdpZHRoOiAzMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmNybS1zZW5kLWJ1dHRvbiB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3VyLCAjZmZmKTtcbn1cblxuLmNybS1maWxlcy1oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAwIGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAwLjQ1cmVtO1xufVxuXG4uY3JtLWZpbGUtdGFicyB7XG4gIGdhcDogMC4ycmVtO1xuICBtYXJnaW4tdG9wOiAwLjY1cmVtO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbn1cblxuLmNybS1maWxlLXRhYnMgLm5hdi1pdGVtIHtcbiAgZmxleDogMSAxIDA7XG59XG5cbi5jcm0tZmlsZS10YWIge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMjhweDtcbiAgcGFkZGluZzogMC4zMnJlbSAwLjI1cmVtO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC42NnJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jcm0tZmlsZS10YWI6aG92ZXIge1xuICBjb2xvcjogdmFyKC0td29ya2Zsb3ctY29sb3VyKTtcbn1cblxuLmNybS1maWxlLXRhYi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0td29ya2Zsb3ctY29sb3VyKSA5JSwgdmFyKC0tY3JtLXN1YnRsZSkpO1xuICBjb2xvcjogdmFyKC0td29ya2Zsb3ctY29sb3VyKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMnB4IDAgdmFyKC0td29ya2Zsb3ctY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uY3JtLWZpbGUtdGFiOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0td29ya2Zsb3ctY29sb3VyKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbn1cblxuLmNybS1maWxlcy1jb250ZW50IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5jcm0tZmlsZXMtY29udGVudCAudGFiLXBhbmUge1xuICBwYWRkaW5nOiAwLjdyZW0gIWltcG9ydGFudDtcbn1cblxuLmNybS1maWxlcy1jb250ZW50IC5kb2N1bWVudHMtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBnYXA6IDAuNHJlbTtcbn1cblxuLmNybS1maWxlLXVwbG9hZCB7XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjdyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyKTtcbn1cblxuLmNybS1maWxlLXVwbG9hZC1mb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG59XG5cbi5jcm0tZmlsZS11cGxvYWQtZm9ybSAuZm9ybS1jb250cm9sIHtcbiAgbWluLXdpZHRoOiAwO1xuICBmb250LXNpemU6IDAuNjhyZW07XG59XG5cbi5jcm0tZmlsZS11cGxvYWQtZm9ybSAuYnV0dG9uLTEzIHtcbiAgbWluLXdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwLjQycmVtIDAuNnJlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5jcm0td29ya3NwYWNlLWhlYWRlciB7XG4gICAgcGFkZGluZzogMC41NXJlbSAwLjY1cmVtO1xuICB9XG4gIC5jcm0td29ya3NwYWNlLWRlc2NyaXB0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5jcm0td29ya3NwYWNlLW5hdiB7XG4gICAgZ2FwOiAwLjM1cmVtO1xuICB9XG4gIC5jcm0tdmlldy1vcHRpb24ge1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIG1pbi13aWR0aDogMzRweDtcbiAgICBwYWRkaW5nOiAwLjNyZW07XG4gIH1cbiAgLmNybS12aWV3LW9wdGlvbiBzcGFuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5jcm0td29ya3NwYWNlIC5rYW5iYW4tYm9hcmQsXG4gIC5jcm0td29ya3NwYWNlIC5zcHJlYWRzaGVldC1jb250YWluZXIsXG4gIC5jcm0td29ya3NwYWNlIC5saXN0LXZpZXctY29udGFpbmVyLFxuICAuY3JtLXdvcmtzcGFjZSAuY29sbGFib3JhdGlvbi12aWV3LWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMC41NXJlbSAwLjY1cmVtIDAuNzVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY3JtLXdvcmtzcGFjZSAua2FuYmFuLWNvbHVtbi13cmFwcGVyIHtcbiAgICBtaW4td2lkdGg6IDI1MnB4O1xuICAgIHdpZHRoOiAyNTJweDtcbiAgfVxuICAuY3JtLXdvcmtzcGFjZSAua2FuYmFuLWNvbHVtbiB7XG4gICAgd2lkdGg6IDI1MnB4O1xuICAgIG1pbi13aWR0aDogMjUycHg7XG4gICAgbWF4LXdpZHRoOiAyNTJweDtcbiAgfVxuICAuY3JtLXdvcmtzcGFjZSAua2FuYmFuLWJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDExMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDIwNXB4KTtcbiAgfVxuICAuY3JtLWNvbGxhYm9yYXRpb24tcGFuZWwge1xuICAgIGhlaWdodDogNjh2aCAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDQ0MHB4O1xuICB9XG4gIC5jcm0tZmlsZXMtcGFuZWwge1xuICAgIGhlaWdodDogNTh2aCAhaW1wb3J0YW50O1xuICB9XG4gIC5jcm0tbWVzc2FnZSAubWVzc2FnZS1idWJibGUge1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzhweCk7XG4gIH1cbiAgLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLndvcmtmbG93LXF1b3RlLWxpbmsge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzRweCBtaW5tYXgoMTIwcHgsIDFmcikgYXV0byAxMnB4O1xuICAgIGdhcDogMC41cmVtO1xuICB9XG4gIC53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC53b3JrZmxvdy1xdW90ZS1pbWFnZSxcbiAgLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLndvcmtmbG93LXF1b3RlLWltYWdlLXBsYWNlaG9sZGVyIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gIH1cbiAgLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLndvcmtmbG93LXF1b3RlLWZpZWxkcyxcbiAgLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLndvcmtmbG93LXF1b3RlLXVwZGF0ZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5xdW90ZS1saXN0LWNhcmRfX2xpbmssXG4gIC53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9fbGluayB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNHB4IG1pbm1heCgxMTBweCwgMWZyKSBhdXRvIDEycHg7XG4gICAgZ2FwOiAwLjVyZW07XG4gIH1cbiAgLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLFxuICAucXVvdGUtbGlzdC1jYXJkLS1yb3cgLnF1b3RlLWxpc3QtY2FyZF9faW1hZ2UtcGxhY2Vob2xkZXIsXG4gIC53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9faW1hZ2UsXG4gIC53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9faW1hZ2UtcGxhY2Vob2xkZXIge1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgfVxuICAucXVvdGUtbGlzdC1jYXJkLS1yb3cgLnF1b3RlLWxpc3QtY2FyZF9fYmFkZ2VzLFxuICAucXVvdGUtbGlzdC1jYXJkLS1yb3cgLnF1b3RlLWxpc3QtY2FyZF9fZmllbGRzLFxuICAucXVvdGUtbGlzdC1jYXJkLS1yb3cgLnF1b3RlLWxpc3QtY2FyZF9fdXBkYXRlZCxcbiAgLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSAucXVvdGUtbGlzdC1jYXJkX19iYWRnZXMsXG4gIC53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9fZmllbGRzLFxuICAud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX3VwZGF0ZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5zY2hlZHVsZS1wYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjBweCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zY2hlZHVsZS1wYWdlIC5zY2hlZHVsZS1oZWFkZXIge1xuICBmbGV4LXNocmluazogMDtcbn1cbi5zY2hlZHVsZS1wYWdlIC5zY2hlZHVsZS1ib2R5IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyODBweCAxZnI7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBnYXA6IDFyZW07XG4gIHBhZGRpbmc6IDFyZW07XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5zY2hlZHVsZS1iYWNrbG9nIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzIGVhc2UsIGJveC1zaGFkb3cgMC4xMnMgZWFzZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuLnNjaGVkdWxlLWJhY2tsb2cuZHJvcC10YXJnZXQge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LXllbGxvdykgMTUlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggdmFyKC0tYWNjZW50LXllbGxvdyk7XG59XG4uc2NoZWR1bGUtYmFja2xvZ1tidXN5XTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQwJSAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBhbmltYXRpb246IHNjaGVkdWxlLWJhY2tsb2ctbG9hZGluZyAxLjFzIGxpbmVhciBpbmZpbml0ZTtcbiAgei1pbmRleDogMjtcbn1cbi5zY2hlZHVsZS1iYWNrbG9nW2J1c3ldIC5zY2hlZHVsZS1iYWNrbG9nLWxpc3Qge1xuICBvcGFjaXR5OiAwLjU1O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuLnNjaGVkdWxlLWJhY2tsb2cgLnNjaGVkdWxlLWJhY2tsb2ctaGVhZGVyIHtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jYXJkLWNvbG91cikgNzAlLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikpO1xufVxuLnNjaGVkdWxlLWJhY2tsb2cgLnNjaGVkdWxlLWJhY2tsb2ctbGlzdCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGZsZXg6IDE7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbn1cbi5zY2hlZHVsZS1iYWNrbG9nIC5zY2hlZHVsZS1iYWNrbG9nLXBhZ3kge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2FyZC1jb2xvdXIpIDcwJSwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpKTtcbn1cbi5zY2hlZHVsZS1iYWNrbG9nIC5zY2hlZHVsZS1iYWNrbG9nLXBhZ3kgLnNjaGVkdWxlLXBhZ3ktYnRuIHtcbiAgcGFkZGluZzogMC4xNXJlbSAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cbi5zY2hlZHVsZS1iYWNrbG9nIC5zY2hlZHVsZS1iYWNrbG9nLXBhZ3kgLnNjaGVkdWxlLXBhZ3ktYnRuLmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNjaGVkdWxlLWRpc2NvdmVyeS1yYWlsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogMDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xufVxuXG4uc2NoZWR1bGUtZGlzY292ZXJ5LWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNjVyZW0gMC43NXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2FyZC1jb2xvdXIpIDcwJSwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpKTtcbn1cbi5zY2hlZHVsZS1kaXNjb3ZlcnktaGVhZGVyID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnNjaGVkdWxlLWRpc2NvdmVyeS1oZWFkZXIgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuLnNjaGVkdWxlLWRpc2NvdmVyeS1oZWFkZXIgc21hbGwge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbn1cblxuLnNjaGVkdWxlLWRpc2NvdmVyeS1xdWV1ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGZsZXg6IDE7XG59XG4uc2NoZWR1bGUtZGlzY292ZXJ5LXF1ZXVlIC5zY2hlZHVsZS1iYWNrbG9nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5zY2hlZHVsZS1kaXNjb3ZlcnktcXVldWVbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zY2hlZHVsZS1wYWdlLmlzLXNjaGVkdWxlLW1hcC12aWV3IC5zY2hlZHVsZS1ib2R5IHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMzYwcHgsIDMwdncpIG1pbm1heCgwLCAxZnIpO1xufVxuXG5Aa2V5ZnJhbWVzIHNjaGVkdWxlLWJhY2tsb2ctbG9hZGluZyB7XG4gIGZyb20ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00MCUgMDtcbiAgfVxuICB0byB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTQwJSAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNjaGVkdWxlLWJsb2NrLXNhdmluZyB7XG4gIDAlLCAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC41NTtcbiAgfVxufVxuLnNjaGVkdWxlLWJhY2tsb2ctY2FyZC1iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMnJlbTtcbiAgcGFkZGluZzogMC4xcmVtIDAuNHJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1ncmVlbikgMTglLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtZ3JlZW4pO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWdyZWVuKSAzNSUsIHRyYW5zcGFyZW50KTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zY2hlZHVsZS1iYWNrbG9nLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGN1cnNvcjogZ3JhYjtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuLnNjaGVkdWxlLWJhY2tsb2ctY2FyZCAuZmxleC1ncm93LTEge1xuICBtaW4td2lkdGg6IDA7XG59XG4uc2NoZWR1bGUtYmFja2xvZy1jYXJkIC50ZXh0LXRydW5jYXRlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5zY2hlZHVsZS1iYWNrbG9nLWNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uc2NoZWR1bGUtYmFja2xvZy1jYXJkLmlzLWRyYWdnaW5nIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLnNjaGVkdWxlLWJhY2tsb2ctY2FyZCAuc2NoZWR1bGUtc3RhZ2UtcGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xuICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi5zY2hlZHVsZS1ncmlkLXdyYXAge1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4uc2NoZWR1bGUtZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG4uc2NoZWR1bGUtZ3JpZCB0aCwgLnNjaGVkdWxlLWdyaWQgdGQge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5zY2hlZHVsZS1ncmlkIHRoZWFkIHRoIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2FyZC1jb2xvdXIpIDcwJSwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyO1xuICBwYWRkaW5nOiAwLjU1cmVtIDAuNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLnNjaGVkdWxlLWdyaWQgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5zY2hlZHVsZS1ncmlkIHRib2R5IHRkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1jb3JuZXIge1xuICB3aWR0aDogMjAwcHg7XG4gIG1pbi13aWR0aDogMjAwcHg7XG59XG4uc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtZGF5LWhlYWRlciB7XG4gIG1pbi13aWR0aDogMTYwcHg7XG59XG4uc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtZGF5LWhlYWRlci50b2RheSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQteWVsbG93KSAyNSUsIHZhcigtLWNhcmQtY29sb3VyKSkgIWltcG9ydGFudDtcbn1cbi5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1kYXktaGVhZGVyIC5zY2hlZHVsZS1kYXktbmFtZSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xufVxuLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWRheS1oZWFkZXIgLnNjaGVkdWxlLWRheS1udW0ge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtY3Jldy1jZWxsIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC42cmVtIDAuNzVyZW07XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1jcmV3LWNlbGwgLnNjaGVkdWxlLWNyZXctcGRmIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIHBhZGRpbmc6IDAuMnJlbTtcbn1cbi5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1jcmV3LWNlbGwgLnNjaGVkdWxlLWNyZXctcGRmOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtY2VsbCB7XG4gIHBhZGRpbmc6IDAuNHJlbTtcbiAgbWluLWhlaWdodDogOTZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMgZWFzZSwgYm94LXNoYWRvdyAwLjEycyBlYXNlO1xufVxuLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWNlbGwgLnNjaGVkdWxlLWRyaXZlLXRpbWUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAwLjI1cmVtO1xuICBwYWRkaW5nOiAwLjE4cmVtIDAuNHJlbTtcbiAgbWFyZ2luOiAwLjE1cmVtIDAuMnJlbTtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDYlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAzNSUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBjdXJzb3I6IGhlbHA7XG59XG4uc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtY2VsbC5kcm9wLXRhcmdldCB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDE1JSwgdmFyKC0tY2FyZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbn1cbi5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1lbXB0eS1yb3cge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgcGFkZGluZzogMnJlbTtcbn1cblxuLnNjaGVkdWxlLWJsb2NrIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNyZXctY29sb3VyKSAxOCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tY3Jldy1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMzVyZW07XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMTVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnNjaGVkdWxlLWJsb2NrLmlzLXNhdmluZyB7XG4gIGFuaW1hdGlvbjogc2NoZWR1bGUtYmxvY2stc2F2aW5nIDEuMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNjaGVkdWxlLWJsb2NrIHtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjEycyBlYXNlLCB0cmFuc2Zvcm0gMC4xMnMgZWFzZSwgb3BhY2l0eSAwLjEycyBlYXNlO1xufVxuLnNjaGVkdWxlLWJsb2NrLmlzLW11bHRpLWRheSB7XG4gIHotaW5kZXg6IDI7XG4gIGJvcmRlci1yaWdodDogMXB4IGRhc2hlZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY3Jldy1jb2xvdXIpIDYwJSwgdHJhbnNwYXJlbnQpO1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1ibG9jay1yZXNpemUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjdXJzb3I6IGNvbC1yZXNpemU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB6LWluZGV4OiA0O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzIGVhc2U7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLXJlc2l6ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHdpZHRoOiAzcHg7XG4gIGhlaWdodDogMjRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY3Jldy1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xMnMgZWFzZTtcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtYmxvY2stcmVzaXplLXJpZ2h0IHtcbiAgcmlnaHQ6IC0ycHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1ibG9jay1yZXNpemUtcmlnaHQ6OmFmdGVyIHtcbiAgcmlnaHQ6IDFweDtcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtYmxvY2stcmVzaXplOmhvdmVyOjphZnRlciB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5zY2hlZHVsZS1ibG9jay5pcy1yZXNpemluZyB7XG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIHotaW5kZXg6IDU7XG59XG4uc2NoZWR1bGUtYmxvY2sge1xuICBib3JkZXItdG9wOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2NoZWR1bGUtYmxvY2suaXMtbm90aWZpZWQge1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zY2hlZHVsZS1nb29kKTtcbn1cbi5zY2hlZHVsZS1ibG9jay5pcy1wZW5kaW5nLW5vdGlmaWNhdGlvbiB7XG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXNjaGVkdWxlLXdhcm4pO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtd2FybikgOCUsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jcmV3LWNvbG91cikgMTglLCB2YXIoLS1jYXJkLWNvbG91cikpKTtcbn1cbi5zY2hlZHVsZS1ibG9jay5oYXMtYmFkLXdlYXRoZXI6OmJlZm9yZSwgLnNjaGVkdWxlLWJsb2NrLmhhcy13YXJuLXdlYXRoZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDhweCA4cHg7XG4gIGFuaW1hdGlvbjogc2NoZWR1bGUtcmFpbi1kcmlmdCAxLjZzIGxpbmVhciBpbmZpbml0ZTtcbiAgei1pbmRleDogMDtcbn1cbi5zY2hlZHVsZS1ibG9jay5oYXMtYmFkLXdlYXRoZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMTA1ZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCA1cHgsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS1iYWQpIDU1JSwgdHJhbnNwYXJlbnQpIDVweCwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLWJhZCkgNTUlLCB0cmFuc3BhcmVudCkgNnB4KTtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnNjaGVkdWxlLWJsb2NrLmhhcy13YXJuLXdlYXRoZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMTA1ZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCA2cHgsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS13YXJuKSA1MCUsIHRyYW5zcGFyZW50KSA2cHgsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS13YXJuKSA1MCUsIHRyYW5zcGFyZW50KSA3cHgpO1xuICBvcGFjaXR5OiAwLjI7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMi4ycztcbn1cbi5zY2hlZHVsZS1ibG9jay5oYXMtYmFkLXdlYXRoZXIgPiAqLCAuc2NoZWR1bGUtYmxvY2suaGFzLXdhcm4td2VhdGhlciA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG4uc2NoZWR1bGUtYmxvY2s6aG92ZXIge1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KTtcbn1cbi5zY2hlZHVsZS1ibG9jay5pcy1kcmFnZ2luZyB7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5zY2hlZHVsZS1ibG9jay5zdGF0dXMtdGVudGF0aXZlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50IDZweCwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2JSwgdHJhbnNwYXJlbnQpIDZweCwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2JSwgdHJhbnNwYXJlbnQpIDhweCk7XG59XG4uc2NoZWR1bGUtYmxvY2suc3RhdHVzLWNhbmNlbGxlZCwgLnNjaGVkdWxlLWJsb2NrLnN0YXR1cy13ZWF0aGVyX3Bvc3Rwb25lZCB7XG4gIG9wYWNpdHk6IDAuNTU7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLXRvcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAwLjRyZW07XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLWFkZHJlc3Mge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtYmxvY2stbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDAuMTVyZW0gMC40cmVtO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1ibG9jay1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLXNlcCB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtYmxvY2stdHlwZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWRyYWctaGFuZGxlIHtcbiAgY3Vyc29yOiBncmFiO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHBhZGRpbmc6IDAgMC4ycmVtO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtZHJhZy1oYW5kbGU6YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtZHJhZy1oYW5kbGU6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1ibG9jay1mb290IHtcbiAgbWFyZ2luLXRvcDogMC4xNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuMnJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uc2NoZWR1bGUtcGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBwYWRkaW5nOiAwLjE1cmVtIDAuNTVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmbGV4LXNocmluazogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5zY2hlZHVsZS1waWxsLnNjaGVkdWxlLXBpbGwtbXV0ZWQge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMTIlLCB0cmFuc3BhcmVudCk7XG59XG4uc2NoZWR1bGUtcGlsbC5zY2hlZHVsZS1waWxsLWdyZWVuIHtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLWdvb2QpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS1nb29kLWJnKTtcbn1cbi5zY2hlZHVsZS1waWxsLnNjaGVkdWxlLXBpbGwtbGF2ZW5kZXIge1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgMTglLCB0cmFuc3BhcmVudCk7XG59XG4uc2NoZWR1bGUtcGlsbC5zY2hlZHVsZS1waWxsLXllbGxvdyB7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS13YXJuKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtd2Fybi1iZyk7XG59XG4uc2NoZWR1bGUtcGlsbC5zY2hlZHVsZS1waWxsLWRhbmdlciB7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS1iYWQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS1iYWQtYmcpO1xufVxuXG4uc2NoZWR1bGUtbmVhcmJ5LXNlY3Rpb24ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbi5zY2hlZHVsZS1uZWFyYnktbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC40cmVtO1xuICBtYXgtaGVpZ2h0OiAyNDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnNjaGVkdWxlLW5lYXJieS1yb3cge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC41cmVtIDAuN3JlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA5MiUsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjEycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTJzIGVhc2U7XG59XG4uc2NoZWR1bGUtbmVhcmJ5LXJvdzpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgOCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG5cbi5zY2hlZHVsZS1uZWFyYnktcm93LWhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuXG4uc2NoZWR1bGUtbmVhcmJ5LWRpc3RhbmNlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuMDVyZW0gMC40NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDE4JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uc2NoZWR1bGUtbmVhcmJ5LW5hbWUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnNjaGVkdWxlLW5lYXJieS1hZGRyZXNzIHtcbiAgbWFyZ2luLXRvcDogMC4xNXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5zY2hlZHVsZS1uZWFyYnktYmxvY2tzIHtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC4zcmVtO1xufVxuLnNjaGVkdWxlLW5lYXJieS1ibG9ja3MgLnNjaGVkdWxlLW5lYXJieS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG4gIHBhZGRpbmc6IDAuMXJlbSAwLjQ1cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtZ29vZC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS1nb29kKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zY2hlZHVsZS1uZWFyYnktZW1wdHkge1xuICBtYXJnaW4tdG9wOiAwLjRyZW07XG59XG5cbmJvZHkuc2NoZWR1bGUtaXMtZHJhZ2dpbmcgLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWRheS1oZWFkZXIud2VhdGhlci1oaW50LWdyZWVuIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLWdvb2QpIDMwJSwgdmFyKC0tY2FyZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0zcHggMCB2YXIoLS1zY2hlZHVsZS1nb29kKTtcbn1cbmJvZHkuc2NoZWR1bGUtaXMtZHJhZ2dpbmcgLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWRheS1oZWFkZXIud2VhdGhlci1oaW50LXllbGxvdyB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS13YXJuKSAzMCUsIHZhcigtLWNhcmQtY29sb3VyKSkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtM3B4IDAgdmFyKC0tc2NoZWR1bGUtd2Fybik7XG59XG5ib2R5LnNjaGVkdWxlLWlzLWRyYWdnaW5nIC5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1kYXktaGVhZGVyLndlYXRoZXItaGludC1yZWQge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtYmFkKSAzMCUsIHZhcigtLWNhcmQtY29sb3VyKSkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtM3B4IDAgdmFyKC0tc2NoZWR1bGUtYmFkKTtcbn1cbmJvZHkuc2NoZWR1bGUtaXMtZHJhZ2dpbmcgLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWRheS1oZWFkZXIud2VhdGhlci1oaW50LXVua25vd24ge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDglLCB2YXIoLS1jYXJkLWNvbG91cikpICFpbXBvcnRhbnQ7XG59XG5ib2R5LnNjaGVkdWxlLWlzLWRyYWdnaW5nIC5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1jZWxsLndlYXRoZXItaGludC1ncmVlbiB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS1nb29kKSA4JSwgdmFyKC0tY2FyZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xufVxuYm9keS5zY2hlZHVsZS1pcy1kcmFnZ2luZyAuc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtY2VsbC53ZWF0aGVyLWhpbnQteWVsbG93IHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLXdhcm4pIDglLCB2YXIoLS1jYXJkLWNvbG91cikpICFpbXBvcnRhbnQ7XG59XG5ib2R5LnNjaGVkdWxlLWlzLWRyYWdnaW5nIC5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1jZWxsLndlYXRoZXItaGludC1yZWQge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtYmFkKSA4JSwgdmFyKC0tY2FyZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xufVxuXG5ib2R5LnNjaGVkdWxlLWlzLWRyYWdnaW5nIC5zY2hlZHVsZS1kYXktaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuYm9keS5zY2hlZHVsZS1pcy1kcmFnZ2luZyAuc2NoZWR1bGUtZGF5LWhlYWRlcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNHB4O1xuICByaWdodDogNnB4O1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgb3BhY2l0eTogMC44NTtcbn1cbmJvZHkuc2NoZWR1bGUtaXMtZHJhZ2dpbmcgLnNjaGVkdWxlLWRheS1oZWFkZXIud2VhdGhlci1oaW50LWdyZWVuOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjQgMjQnPjxjaXJjbGUgY3g9JzEyJyBjeT0nMTInIHI9JzUnIGZpbGw9JyUyMzE1ODAzZCcvPjxnIHN0cm9rZT0nJTIzMTU4MDNkJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCc+PHBhdGggZD0nTTEyIDN2MicvPjxwYXRoIGQ9J00xMiAxOXYyJy8+PHBhdGggZD0nTTMgMTJoMicvPjxwYXRoIGQ9J00xOSAxMmgyJy8+PHBhdGggZD0nTTUuNiA1LjZsMS40IDEuNCcvPjxwYXRoIGQ9J00xNyAxN2wxLjQgMS40Jy8+PHBhdGggZD0nTTUuNiAxOC40bDEuNC0xLjQnLz48cGF0aCBkPSdNMTcgN2wxLjQtMS40Jy8+PC9nPjwvc3ZnPlwiKTtcbn1cbmJvZHkuc2NoZWR1bGUtaXMtZHJhZ2dpbmcgLnNjaGVkdWxlLWRheS1oZWFkZXIud2VhdGhlci1oaW50LXllbGxvdzo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDI0IDI0Jz48cGF0aCBmaWxsPSclMjNiNDUzMDknIGQ9J003IDE4YTUgNSAwIDAxMC0xMCA2IDYgMCAwMTExLjUgMUE0LjUgNC41IDAgMDExOCAxOHonLz48L3N2Zz5cIik7XG59XG5ib2R5LnNjaGVkdWxlLWlzLWRyYWdnaW5nIC5zY2hlZHVsZS1kYXktaGVhZGVyLndlYXRoZXItaGludC1yZWQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCc+PHBhdGggZmlsbD0nJTIzYjkxYzFjJyBkPSdNNyAxNmE1IDUgMCAwMTAtMTAgNiA2IDAgMDExMS41IDFBNC41IDQuNSAwIDAxMTggMTZ6Jy8+PGcgc3Ryb2tlPSclMjNiOTFjMWMnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJz48cGF0aCBkPSdNOSAxOWwtMSAyJy8+PHBhdGggZD0nTTEzIDE5bC0xIDInLz48cGF0aCBkPSdNMTcgMTlsLTEgMicvPjwvZz48L3N2Zz5cIik7XG59XG5cbi5zY2hlZHVsZS1ibG9jay5pcy1mb2N1c2VkLXByb2plY3Qge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDI1JSwgdHJhbnNwYXJlbnQpO1xufVxuLnNjaGVkdWxlLWJsb2NrLmlzLWRpbW1lZCB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4uc2NoZWR1bGUtYmxvY2suaXMtc2VsZWN0ZWQge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tc2NoZWR1bGUtZ29vZCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS1nb29kKSAxOCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLWNoZWNrYm94IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjEycyBlYXNlLCBjb2xvciAwLjEycyBlYXNlO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtYmxvY2stY2hlY2tib3ggLnNjaGVkdWxlLWJsb2NrLWNoZWNrYm94LWZpbGxlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLWNoZWNrYm94OmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uc2NoZWR1bGUtYmxvY2s6aG92ZXIgLnNjaGVkdWxlLWJsb2NrLWNoZWNrYm94IHtcbiAgb3BhY2l0eTogMC45O1xufVxuLnNjaGVkdWxlLWJsb2NrLmlzLXNlbGVjdGVkIC5zY2hlZHVsZS1ibG9jay1jaGVja2JveCB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS1nb29kKTtcbn1cbi5zY2hlZHVsZS1ibG9jay5pcy1zZWxlY3RlZCAuc2NoZWR1bGUtYmxvY2stY2hlY2tib3ggLnNjaGVkdWxlLWJsb2NrLWNoZWNrYm94LWVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zY2hlZHVsZS1ibG9jay5pcy1zZWxlY3RlZCAuc2NoZWR1bGUtYmxvY2stY2hlY2tib3ggLnNjaGVkdWxlLWJsb2NrLWNoZWNrYm94LWZpbGxlZCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLnNjaGVkdWxlLXNlbGVjdGlvbi1iYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogLTEwMHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuICB6LWluZGV4OiAxMDgwO1xuICB0cmFuc2l0aW9uOiBib3R0b20gMC4xOHMgZWFzZTtcbn1cbi5zY2hlZHVsZS1zZWxlY3Rpb24tYmFyLmlzLXZpc2libGUge1xuICBib3R0b206IDEuNXJlbTtcbn1cbi5zY2hlZHVsZS1zZWxlY3Rpb24tYmFyIC5zY2hlZHVsZS1zZWxlY3Rpb24tY291bnQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIHBhZGRpbmc6IDAgMC41cmVtO1xufVxuLnNjaGVkdWxlLXNlbGVjdGlvbi1iYXIgLnNjaGVkdWxlLXNlbGVjdGlvbi1zdGF0dXMge1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiAxNDBweDtcbn1cbi5zY2hlZHVsZS1zZWxlY3Rpb24tYmFyIC5idXR0b24tMTMtb3V0bGluZSB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC43cmVtO1xufVxuXG4uc2NoZWR1bGUtY29udGV4dC1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBub25lO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4td2lkdGg6IDE4MHB4O1xuICBwYWRkaW5nOiAwLjM1cmVtIDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICB6LWluZGV4OiAxMDkwO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG4uc2NoZWR1bGUtY29udGV4dC1tZW51LmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnNjaGVkdWxlLWNvbnRleHQtbWVudSAuc2NoZWR1bGUtY29udGV4dC1tZW51LWhlYWRlciB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC44NXJlbTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cbi5zY2hlZHVsZS1jb250ZXh0LW1lbnUgLnNjaGVkdWxlLWNvbnRleHQtbWVudS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjg1cmVtO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlO1xufVxuLnNjaGVkdWxlLWNvbnRleHQtbWVudSAuc2NoZWR1bGUtY29udGV4dC1tZW51LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAxMiUsIHRyYW5zcGFyZW50KTtcbn1cbi5zY2hlZHVsZS1jb250ZXh0LW1lbnUgLnNjaGVkdWxlLWNvbnRleHQtbWVudS1pdGVtLmlzLWN1cnJlbnQge1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5zY2hlZHVsZS1jb250ZXh0LW1lbnUgLnNjaGVkdWxlLWNvbnRleHQtbWVudS1kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBtYXJnaW46IDAuMjVyZW0gMDtcbn1cbi5zY2hlZHVsZS1jb250ZXh0LW1lbnUgLnNjaGVkdWxlLWNvbnRleHQtbWVudS1kYW5nZXIge1xuICBjb2xvcjogdmFyKC0tZGFuZ2VyKTtcbn1cbi5zY2hlZHVsZS1jb250ZXh0LW1lbnUgLnNjaGVkdWxlLWNvbnRleHQtbWVudS1kYW5nZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZGFuZ2VyKSAxMiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnNjaGVkdWxlLXZpZXctdG9nZ2xlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGdhcDogMC4yNXJlbTtcbn1cbi5zY2hlZHVsZS12aWV3LXRvZ2dsZSAuc2NoZWR1bGUtdmlldy1idG4ge1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi5zY2hlZHVsZS12aWV3LXRvZ2dsZSAuc2NoZWR1bGUtdmlldy1idG4uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuXG4uc2NoZWR1bGUtcmFpbC10YWJzIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBnYXA6IDAuMTVyZW07XG4gIHBhZGRpbmc6IDAuMTVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbi5zY2hlZHVsZS1yYWlsLXRhYnMgYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4yNXJlbTtcbiAgcGFkZGluZzogMC4yOHJlbSAwLjRyZW07XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDY1MDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNjaGVkdWxlLXJhaWwtdGFicyBidXR0b24uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5zY2hlZHVsZS1tYXAtcGFuZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGZsZXg6IDE7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uc2NoZWR1bGUtbWFwLXBhbmVsW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2NoZWR1bGUtbWFwLWFuY2hvciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNDVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjY1cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDEwJSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbn1cbi5zY2hlZHVsZS1tYXAtYW5jaG9yW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnNjaGVkdWxlLW1hcC1hbmNob3IgPiBpIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uc2NoZWR1bGUtbWFwLWFuY2hvciA+IGRpdiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5zY2hlZHVsZS1tYXAtYW5jaG9yIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLnNjaGVkdWxlLW1hcC1hbmNob3Igc3Ryb25nIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5zY2hlZHVsZS1tYXAtYW5jaG9yIHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuNjdyZW07XG59XG4uc2NoZWR1bGUtbWFwLWFuY2hvciBidXR0b24sXG4uc2NoZWR1bGUtbWFwLWFuY2hvciArIC5zY2hlZHVsZS1tYXAtY2FuZGlkYXRlIGJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLnNjaGVkdWxlLW1hcC13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5zY2hlZHVsZS1tYXAtY2FudmFzIHtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMjcwcHg7XG4gIG1heC1oZWlnaHQ6IDM4dmg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc2NoZWR1bGUtbWFwLXN0YXR1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0cmVtO1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDQ7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjU1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG4uc2NoZWR1bGUtbWFwLXN0YXR1c1toaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnNjaGVkdWxlLW1hcC1yZXN1bHRzLWhlYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjY1cmVtIDAuMjVyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG4uc2NoZWR1bGUtbWFwLXJlc3VsdHMtaGVhZGluZyBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNzZyZW07XG59XG5cbi5zY2hlZHVsZS1tYXAtcmVzdWx0cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4zcmVtO1xuICBtaW4taGVpZ2h0OiA5MHB4O1xuICBtYXgtaGVpZ2h0OiAyNDBweDtcbiAgcGFkZGluZzogMC4zcmVtIDAuNDVyZW0gMC41NXJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnNjaGVkdWxlLW1hcC1yZXN1bHQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40NXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNDVyZW0gMC41cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zY2hlZHVsZS1tYXAtcmVzdWx0OmhvdmVyLCAuc2NoZWR1bGUtbWFwLXJlc3VsdC5pcy1zZWxlY3RlZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgOCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG4uc2NoZWR1bGUtbWFwLXJlc3VsdCA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICBkaXNwbGF5OiBncmlkO1xuICBtaW4td2lkdGg6IDA7XG59XG4uc2NoZWR1bGUtbWFwLXJlc3VsdCBzdHJvbmcge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnNjaGVkdWxlLW1hcC1yZXN1bHQgc21hbGwsXG4uc2NoZWR1bGUtbWFwLXJlc3VsdCA+IHNwYW46bGFzdC1jaGlsZCB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xufVxuLnNjaGVkdWxlLW1hcC1yZXN1bHQgPiBzcGFuOmxhc3QtY2hpbGQge1xuICBtYXgtd2lkdGg6IDE0NXB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGUge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuNDVyZW07XG4gIHBhZGRpbmc6IDAuNnJlbTtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkIHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAtOHB4IDIwcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA5JSwgdHJhbnNwYXJlbnQpO1xufVxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGVbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zY2hlZHVsZS1tYXAtY2FuZGlkYXRlLWhlYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDAuNXJlbTtcbn1cbi5zY2hlZHVsZS1tYXAtY2FuZGlkYXRlLWhlYWRpbmcgPiBkaXYge1xuICBkaXNwbGF5OiBncmlkO1xuICBtaW4td2lkdGg6IDA7XG59XG4uc2NoZWR1bGUtbWFwLWNhbmRpZGF0ZS1oZWFkaW5nIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uc2NoZWR1bGUtbWFwLWNhbmRpZGF0ZS1oZWFkaW5nIHN0cm9uZyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc2NoZWR1bGUtbWFwLWNhbmRpZGF0ZS1oZWFkaW5nIHNtYWxsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuNjVyZW07XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGUtaGVhZGluZyBidXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi5zY2hlZHVsZS1tYXAtY2FuZGlkYXRlLW1ldHJpY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC4zcmVtO1xufVxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGUtbWV0cmljcyBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4yNXJlbTtcbiAgcGFkZGluZzogMC4ycmVtIDAuMzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG4uc2NoZWR1bGUtbWFwLWNhbmRpZGF0ZS1tZXRyaWNzIGkge1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbn1cblxuLnNjaGVkdWxlLW1hcC1zdWdnZXN0aW9ucyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xufVxuLnNjaGVkdWxlLW1hcC1zdWdnZXN0aW9ucyA+IHNwYW4ge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG4uc2NoZWR1bGUtbWFwLXN1Z2dlc3Rpb25zIGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAwLjRyZW07XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC40MnJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNjRyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uc2NoZWR1bGUtbWFwLXN1Z2dlc3Rpb25zIGJ1dHRvbjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbn1cbi5zY2hlZHVsZS1tYXAtc3VnZ2VzdGlvbnMgYnV0dG9uIHNwYW4ge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnNjaGVkdWxlLW1hcC1zdWdnZXN0aW9ucyBidXR0b24gc21hbGwge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uc2NoZWR1bGUtbWFwLWNhbmRpZGF0ZS1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjM1cmVtO1xufVxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGUtYWN0aW9ucyAuYnV0dG9uLTEzLFxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGUtYWN0aW9ucyAuYnV0dG9uLTEzLW91dGxpbmUge1xuICBmbGV4OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xufVxuXG4uc2NoZWR1bGUtbWFwLWFuY2hvci1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc2NoZWR1bGUtbWFwLWFuY2hvci1idG46aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbn1cblxuLmlzLW1hcC1wbGFjZW1lbnQtYWN0aXZlIC5zY2hlZHVsZS1jZWxsIHtcbiAgY3Vyc29yOiBjb3B5O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgMzUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5pcy1tYXAtcGxhY2VtZW50LWFjdGl2ZSAuc2NoZWR1bGUtY2VsbC5pcy1tYXAtcGxhY2VtZW50LWhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgMTIlLCB2YXIoLS1jYXJkLWNvbG91cikpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTA1MHB4KSB7XG4gIC5zY2hlZHVsZS1wYWdlLmlzLXNjaGVkdWxlLW1hcC12aWV3IC5zY2hlZHVsZS1ib2R5IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM0MHB4IG1pbm1heCgwLCAxZnIpO1xuICB9XG59XG4uc2NoZWR1bGUtbWFwLWVtcHR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDkwcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuLnNjaGVkdWxlLW1hcC1lbXB0eSBpIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5zY2hlZHVsZS1tYXAtcGluIHtcbiAgLS1waW4tY29sb3I6ICMyOGE3NDU7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKSk7XG59XG4uc2NoZWR1bGUtbWFwLXBpbiBpIHtcbiAgY29sb3I6IHZhcigtLXBpbi1jb2xvcik7XG4gIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5zY2hlZHVsZS1tYXAtcGluIC5zY2hlZHVsZS1tYXAtcGluLWNvdW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDRweDtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1waW4tY29sb3IpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcbn1cbi5zY2hlZHVsZS1tYXAtcGluLmlzLWJhY2tsb2cge1xuICBvcGFjaXR5OiAwLjg1O1xufVxuLnNjaGVkdWxlLW1hcC1waW4uaXMtYmFja2xvZyBpIHtcbiAgY29sb3I6ICM5Y2EzYWY7XG59XG5cbi5zY2hlZHVsZS1tYXAtbGVnZW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDAuNzVyZW07XG4gIGxlZnQ6IDAuNzVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjRyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBwYWRkaW5nOiAwLjRyZW0gMC43NXJlbTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbWF4LXdpZHRoOiA2MCU7XG4gIHotaW5kZXg6IDU7XG59XG4uc2NoZWR1bGUtbWFwLWxlZ2VuZCAuc2NoZWR1bGUtbWFwLWxlZ2VuZC1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4yNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zY2hlZHVsZS1tYXAtbGVnZW5kIC5zY2hlZHVsZS1tYXAtbGVnZW5kLWl0ZW0gLmRvdCB7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnNjaGVkdWxlLW1hcC1sZWdlbmQgLnNjaGVkdWxlLW1hcC1sZWdlbmQtaXRlbSAuZG90LmlzLWJhY2tsb2cge1xuICBiYWNrZ3JvdW5kOiAjOWNhM2FmO1xufVxuXG4ubWFwbGlicmVnbC1wb3B1cC1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xuICBwYWRkaW5nOiAxMnB4IDE0cHggIWltcG9ydGFudDtcbn1cblxuLm1hcGxpYnJlZ2wtcG9wdXAtdGlwIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ubWFwbGlicmVnbC1wb3B1cC1jbG9zZS1idXR0b24ge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xufVxuXG4uc2NoZWR1bGUtbWFwLXBvcHVwIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5zY2hlZHVsZS1tYXAtcG9wdXAgLnNjaGVkdWxlLW1hcC1wb3B1cC1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtYWRkcmVzcyB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLnNjaGVkdWxlLW1hcC1wb3B1cCAuc2NoZWR1bGUtbWFwLXBvcHVwLW1ldGEge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cbi5zY2hlZHVsZS1tYXAtcG9wdXAgLnNjaGVkdWxlLW1hcC1wb3B1cC1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG4gIG1hcmdpbjogNnB4IDA7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4MHB4IDFmciBhdXRvO1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcImRhdGUgY3JldyBzdGF0dXNcIiBcInR5cGUgdHlwZSB0eXBlXCI7XG4gIGNvbHVtbi1nYXA6IDZweDtcbiAgcGFkZGluZzogNHB4IDZweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLXJvdy1jb2xvciwgdmFyKC0tc2NoZWR1bGUtZ29vZCkpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2FyZC1jb2xvdXIpIDgwJSwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpKTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLnNjaGVkdWxlLW1hcC1wb3B1cCAuc2NoZWR1bGUtbWFwLXBvcHVwLXJvdyAuc2NoZWR1bGUtbWFwLXBvcHVwLWRhdGUge1xuICBncmlkLWFyZWE6IGRhdGU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtcm93IC5zY2hlZHVsZS1tYXAtcG9wdXAtY3JldyB7XG4gIGdyaWQtYXJlYTogY3JldztcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zY2hlZHVsZS1tYXAtcG9wdXAgLnNjaGVkdWxlLW1hcC1wb3B1cC1yb3cgLnNjaGVkdWxlLW1hcC1wb3B1cC1zdGF0dXMge1xuICBncmlkLWFyZWE6IHN0YXR1cztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBwYWRkaW5nOiAxcHggNnB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cbi5zY2hlZHVsZS1tYXAtcG9wdXAgLnNjaGVkdWxlLW1hcC1wb3B1cC1yb3cgLnNjaGVkdWxlLW1hcC1wb3B1cC1zdGF0dXMuc3RhdHVzLXRlbnRhdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMTIlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cbi5zY2hlZHVsZS1tYXAtcG9wdXAgLnNjaGVkdWxlLW1hcC1wb3B1cC1yb3cgLnNjaGVkdWxlLW1hcC1wb3B1cC1zdGF0dXMuc3RhdHVzLWNvbmZpcm1lZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLWdvb2QtYmcpO1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtZ29vZCk7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtcm93IC5zY2hlZHVsZS1tYXAtcG9wdXAtc3RhdHVzLnN0YXR1cy1jb21wbGV0ZWQge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAxOCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtcm93IC5zY2hlZHVsZS1tYXAtcG9wdXAtc3RhdHVzLnN0YXR1cy1jYW5jZWxsZWQsIC5zY2hlZHVsZS1tYXAtcG9wdXAgLnNjaGVkdWxlLW1hcC1wb3B1cC1yb3cgLnNjaGVkdWxlLW1hcC1wb3B1cC1zdGF0dXMuc3RhdHVzLXdlYXRoZXJfcG9zdHBvbmVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtYmFkLWJnKTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLWJhZCk7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtcm93IC5zY2hlZHVsZS1tYXAtcG9wdXAtdHlwZSB7XG4gIGdyaWQtYXJlYTogdHlwZTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDExcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luLXRvcDogNnB4O1xufVxuXG4uc2NoZWR1bGUtbGFzdC1maW5hbGl6ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC42cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cbi5zY2hlZHVsZS1sYXN0LWZpbmFsaXplZC5zY2hlZHVsZS1sYXN0LWZpbmFsaXplZC1lbXB0eSB7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS13YXJuKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtd2Fybi1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2NoZWR1bGUtd2Fybi1ib3JkZXIpO1xufVxuXG4uc2NoZWR1bGUtc3luYy1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNjaGVkdWxlLXdhcm4tYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4td2lkdGg6IDIyMHB4O1xufVxuLnNjaGVkdWxlLXN5bmMtYmFyIC5zY2hlZHVsZS1zeW5jLWJhci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgd2lkdGg6IHZhcigtLXN5bmMtcGVyY2VudCwgMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS13YXJuKSAyOCUsIHRyYW5zcGFyZW50KSwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLXdhcm4pIDE0JSwgdHJhbnNwYXJlbnQpKTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC40cyBlYXNlO1xuICB6LWluZGV4OiAwO1xufVxuLnNjaGVkdWxlLXN5bmMtYmFyIC5zY2hlZHVsZS1zeW5jLWJhci1sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLXdhcm4pO1xufVxuLnNjaGVkdWxlLXN5bmMtYmFyLmlzLWVtcHR5IHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDYlLCB0cmFuc3BhcmVudCk7XG59XG4uc2NoZWR1bGUtc3luYy1iYXIuaXMtY29tcGxldGUge1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtZ29vZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLWdvb2QtYmcpO1xuICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS1nb29kKSAzNSUsIHRyYW5zcGFyZW50KTtcbiAgYW5pbWF0aW9uOiBzY2hlZHVsZS1zeW5jLWNlbGVicmF0ZSAwLjZzIGVhc2Utb3V0O1xufVxuLnNjaGVkdWxlLXN5bmMtYmFyLmlzLWNvbXBsZXRlIGkge1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbkBrZXlmcmFtZXMgc2NoZWR1bGUtcmFpbi1kcmlmdCB7XG4gIGZyb20ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxuICB0byB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLThweCA4cHg7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2NoZWR1bGUtc3luYy1jZWxlYnJhdGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS1nb29kKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cbi5zY2hlZHVsZS1wYWdlLFxuLnNjaGVkdWxlLWZpbmFsaXplIHtcbiAgLS1zY2hlZHVsZS13YXJuOiAjYjQ1MzA5O1xuICAtLXNjaGVkdWxlLXdhcm4tYmc6IHJnYmEoMjE3LCAxMTksIDYsIDAuMTQpO1xuICAtLXNjaGVkdWxlLXdhcm4tYm9yZGVyOiByZ2JhKDIxNywgMTE5LCA2LCAwLjQwKTtcbiAgLS1zY2hlZHVsZS1nb29kOiAjMTU4MDNkO1xuICAtLXNjaGVkdWxlLWdvb2QtYmc6IHJnYmEoMjIsIDE2MywgNzQsIDAuMTQpO1xuICAtLXNjaGVkdWxlLWJhZDogI2I5MWMxYztcbiAgLS1zY2hlZHVsZS1iYWQtYmc6IHJnYmEoMjIwLCAzOCwgMzgsIDAuMTQpO1xufVxuXG5ib2R5W2RhdGEtdGhlbWU9ZGFya10gLnNjaGVkdWxlLXBhZ2UsXG5ib2R5W2RhdGEtdGhlbWU9ZGFya10gLnNjaGVkdWxlLWZpbmFsaXplIHtcbiAgLS1zY2hlZHVsZS13YXJuOiAjZmJiZjI0O1xuICAtLXNjaGVkdWxlLXdhcm4tYmc6IHJnYmEoMjUxLCAxOTEsIDM2LCAwLjE4KTtcbiAgLS1zY2hlZHVsZS13YXJuLWJvcmRlcjogcmdiYSgyNTEsIDE5MSwgMzYsIDAuNDApO1xuICAtLXNjaGVkdWxlLWdvb2Q6ICM0YWRlODA7XG4gIC0tc2NoZWR1bGUtZ29vZC1iZzogcmdiYSg3NCwgMjIyLCAxMjgsIDAuMTgpO1xuICAtLXNjaGVkdWxlLWJhZDogI2Y4NzE3MTtcbiAgLS1zY2hlZHVsZS1iYWQtYmc6IHJnYmEoMjQ4LCAxMTMsIDExMywgMC4xOCk7XG59XG5cbi5zY2hlZHVsZS13ZWF0aGVyLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4ycmVtO1xuICBwYWRkaW5nOiAwLjA1cmVtIDAuMzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IDAuNjJyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc2NoZWR1bGUtd2VhdGhlci1iYWRnZS5ncmVlbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLWdvb2QtYmcpO1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtZ29vZCk7XG59XG4uc2NoZWR1bGUtd2VhdGhlci1iYWRnZS55ZWxsb3cge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS13YXJuLWJnKTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLXdhcm4pO1xufVxuLnNjaGVkdWxlLXdlYXRoZXItYmFkZ2UucmVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtYmFkLWJnKTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLWJhZCk7XG59XG4uc2NoZWR1bGUtd2VhdGhlci1iYWRnZS51bmtub3duLCAuc2NoZWR1bGUtd2VhdGhlci1iYWRnZS5ncmF5IHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuLnNjaGVkdWxlLXdlYXRoZXItYmFkZ2UgLnNjaGVkdWxlLXdlYXRoZXItdGVtcCxcbi5zY2hlZHVsZS13ZWF0aGVyLWJhZGdlIC5zY2hlZHVsZS13ZWF0aGVyLXBvcCB7XG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCI7XG59XG4uc2NoZWR1bGUtd2VhdGhlci1iYWRnZSAuc2NoZWR1bGUtd2VhdGhlci10ZW1wIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5zY2hlZHVsZS13ZWF0aGVyLWJhZGdlIC5zY2hlZHVsZS13ZWF0aGVyLXBvcCB7XG4gIG9wYWNpdHk6IDAuODU7XG59XG5cbiNzY2hlZHVsZUVkaXRNb2RhbCAubW9kYWwtY29udGVudCxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLm1vZGFsLWNvbnRlbnQsXG4jc2NoZWR1bGVSdWxlc01vZGFsIC5tb2RhbC1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG59XG4jc2NoZWR1bGVFZGl0TW9kYWwgLm1vZGFsLWhlYWRlcixcbiNzY2hlZHVsZUVkaXRNb2RhbCAubW9kYWwtZm9vdGVyLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCAubW9kYWwtaGVhZGVyLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCAubW9kYWwtZm9vdGVyLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAubW9kYWwtaGVhZGVyLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAubW9kYWwtZm9vdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuI3NjaGVkdWxlRWRpdE1vZGFsIC5tb2RhbC10aXRsZSxcbiNzY2hlZHVsZUVkaXRNb2RhbCAuZm9ybS1sYWJlbCxcbiNzY2hlZHVsZUVkaXRNb2RhbCAuZm9ybS1jaGVjay1sYWJlbCxcbiNzY2hlZHVsZUVkaXRNb2RhbCBsYWJlbCxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLm1vZGFsLXRpdGxlLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCAuZm9ybS1sYWJlbCxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLmZvcm0tY2hlY2stbGFiZWwsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIGxhYmVsLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAubW9kYWwtdGl0bGUsXG4jc2NoZWR1bGVSdWxlc01vZGFsIC5mb3JtLWxhYmVsLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAuZm9ybS1jaGVjay1sYWJlbCxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgbGFiZWwge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4jc2NoZWR1bGVFZGl0TW9kYWwgLmZvcm0tY29udHJvbCxcbiNzY2hlZHVsZUVkaXRNb2RhbCAuZm9ybS1zZWxlY3QsXG4jc2NoZWR1bGVFZGl0TW9kYWwgdGV4dGFyZWEsXG4jc2NoZWR1bGVFZGl0TW9kYWwgaW5wdXRbdHlwZT10ZXh0XSxcbiNzY2hlZHVsZUVkaXRNb2RhbCBpbnB1dFt0eXBlPXNlYXJjaF0sXG4jc2NoZWR1bGVFZGl0TW9kYWwgaW5wdXRbdHlwZT1lbWFpbF0sXG4jc2NoZWR1bGVFZGl0TW9kYWwgaW5wdXRbdHlwZT1udW1iZXJdLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCAuZm9ybS1jb250cm9sLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCAuZm9ybS1zZWxlY3QsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIHRleHRhcmVhLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCBpbnB1dFt0eXBlPXRleHRdLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCBpbnB1dFt0eXBlPXNlYXJjaF0sXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIGlucHV0W3R5cGU9ZW1haWxdLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCBpbnB1dFt0eXBlPW51bWJlcl0sXG4jc2NoZWR1bGVSdWxlc01vZGFsIC5mb3JtLWNvbnRyb2wsXG4jc2NoZWR1bGVSdWxlc01vZGFsIC5mb3JtLXNlbGVjdCxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgdGV4dGFyZWEsXG4jc2NoZWR1bGVSdWxlc01vZGFsIGlucHV0W3R5cGU9dGV4dF0sXG4jc2NoZWR1bGVSdWxlc01vZGFsIGlucHV0W3R5cGU9c2VhcmNoXSxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgaW5wdXRbdHlwZT1lbWFpbF0sXG4jc2NoZWR1bGVSdWxlc01vZGFsIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0KSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0LWJvcmRlcikgIWltcG9ydGFudDtcbn1cbiNzY2hlZHVsZUVkaXRNb2RhbCAuZm9ybS1jb250cm9sOmZvY3VzLFxuI3NjaGVkdWxlRWRpdE1vZGFsIC5mb3JtLXNlbGVjdDpmb2N1cyxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLmZvcm0tY29udHJvbDpmb2N1cyxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLmZvcm0tc2VsZWN0OmZvY3VzLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAuZm9ybS1jb250cm9sOmZvY3VzLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAuZm9ybS1zZWxlY3Q6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0LWZvY3VzLWJvcmRlcikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDI1JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG4jc2NoZWR1bGVFZGl0TW9kYWwgLmZvcm0tdGV4dCxcbiNzY2hlZHVsZUVkaXRNb2RhbCBzbWFsbCxcbiNzY2hlZHVsZUVkaXRNb2RhbCAudGV4dC1tdXRlZCxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLmZvcm0tdGV4dCxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgc21hbGwsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIC50ZXh0LW11dGVkLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAuZm9ybS10ZXh0LFxuI3NjaGVkdWxlUnVsZXNNb2RhbCBzbWFsbCxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgLnRleHQtbXV0ZWQge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCkgIWltcG9ydGFudDtcbn1cbiNzY2hlZHVsZUVkaXRNb2RhbCAuYnRuLWNsb3NlLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCAuYnRuLWNsb3NlLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAuYnRuLWNsb3NlIHtcbiAgb3BhY2l0eTogMC43O1xufVxuI3NjaGVkdWxlRWRpdE1vZGFsIC5idG4tY2xvc2U6aG92ZXIsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIC5idG4tY2xvc2U6aG92ZXIsXG4jc2NoZWR1bGVSdWxlc01vZGFsIC5idG4tY2xvc2U6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuXG5ib2R5W2RhdGEtdGhlbWU9ZGFya10gI3NjaGVkdWxlRWRpdE1vZGFsIC5idG4tY2xvc2UsXG5ib2R5W2RhdGEtdGhlbWU9ZGFya10gI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCAuYnRuLWNsb3NlIHtcbiAgZmlsdGVyOiBpbnZlcnQoMSkgZ3JheXNjYWxlKDEwMCUpO1xufVxuXG4uc2NoZWR1bGUtY3Jldy1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuXG4uc2NoZWR1bGUtY3Jldy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjEycyBlYXNlLCBib3JkZXItY29sb3IgMC4xMnMgZWFzZSwgdHJhbnNmb3JtIDAuMTJzIGVhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5zY2hlZHVsZS1jcmV3LXJvdzpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDYlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG4uc2NoZWR1bGUtY3Jldy1yb3cuaXMtZHJhZ2dpbmcge1xuICBvcGFjaXR5OiAwLjU7XG59XG4uc2NoZWR1bGUtY3Jldy1yb3cuZHJvcC1hYm92ZTo6YmVmb3JlLCAuc2NoZWR1bGUtY3Jldy1yb3cuZHJvcC1iZWxvdzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuLnNjaGVkdWxlLWNyZXctcm93LmRyb3AtYWJvdmU6OmJlZm9yZSB7XG4gIHRvcDogLTFweDtcbn1cbi5zY2hlZHVsZS1jcmV3LXJvdy5kcm9wLWJlbG93OjphZnRlciB7XG4gIGJvdHRvbTogLTFweDtcbn1cbi5zY2hlZHVsZS1jcmV3LXJvdyAuc2NoZWR1bGUtY3Jldy1yb3ctaGFuZGxlIHtcbiAgY3Vyc29yOiBncmFiO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHBhZGRpbmc6IDAgMC4yNXJlbTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uc2NoZWR1bGUtY3Jldy1yb3cgLnNjaGVkdWxlLWNyZXctcm93LWhhbmRsZTphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLnNjaGVkdWxlLWNyZXctcm93IC5zY2hlZHVsZS1jcmV3LXJvdy1oYW5kbGU6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLnNjaGVkdWxlLWNyZXctcm93IC5taW4td2lkdGgtMCB7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5zY2hlZHVsZS1jcmV3LXJvdyAuc2NoZWR1bGUtY3Jldy1yb3ctYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4yNXJlbTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4uc2NoZWR1bGUtY3Jldy1yb3cgLnNjaGVkdWxlLWNyZXctcm93LWFjdGlvbnMgLmJ1dHRvbi0xMy1vdXRsaW5lIHtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjU1cmVtO1xufVxuXG4uc2NoZWR1bGUtY2FyZC1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjRyZW07XG4gIGxlZnQ6IDAuNHJlbTtcbiAgei1pbmRleDogMTU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMnJlbTtcbiAgcGFkZGluZzogMC4xNXJlbSAwLjQ1cmVtO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWdyZWVuKSAyMCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtZ3JlZW4pO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWdyZWVuKSA0MCUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uc2NoZWR1bGUtY2FyZC1iYWRnZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtZ3JlZW4pIDMwJSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1ncmVlbikgIWltcG9ydGFudDtcbn1cbi5zY2hlZHVsZS1jYXJkLWJhZGdlIC5zY2hlZHVsZS1jYXJkLWJhZGdlLWNvdW50IHtcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIjtcbn1cblxuLnNjaGVkdWxlLXRpbWVsaW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjRyZW07XG59XG4uc2NoZWR1bGUtdGltZWxpbmUgLnNjaGVkdWxlLXRpbWVsaW5lLXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTZweCAyOHB4IDFmcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjZyZW0gMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA5MCUsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSk7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1yb3ctY29sb3VyLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpKTtcbn1cbi5zY2hlZHVsZS10aW1lbGluZSAuc2NoZWR1bGUtdGltZWxpbmUtcm93LmlzLWV2ZW50IHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uc2NoZWR1bGUtdGltZWxpbmUgLnNjaGVkdWxlLXRpbWVsaW5lLWRhdGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnNjaGVkdWxlLXRpbWVsaW5lIC5zY2hlZHVsZS10aW1lbGluZS1kYXRlIC5kYXkge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5zY2hlZHVsZS10aW1lbGluZSAuc2NoZWR1bGUtdGltZWxpbmUtZGF0ZSAuZG93LCAuc2NoZWR1bGUtdGltZWxpbmUgLnNjaGVkdWxlLXRpbWVsaW5lLWRhdGUgLm1vbnRoIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG59XG4uc2NoZWR1bGUtdGltZWxpbmUgLnNjaGVkdWxlLXRpbWVsaW5lLWljb24ge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnNjaGVkdWxlLXRpbWVsaW5lIC5zY2hlZHVsZS10aW1lbGluZS1yb3cuaXMtYmxvY2sgLnNjaGVkdWxlLXRpbWVsaW5lLWljb24ge1xuICBjb2xvcjogdmFyKC0tcm93LWNvbG91ciwgdmFyKC0tYWNjZW50LWdyZWVuKSk7XG59XG5cbi5zY2hlZHVsZS1maW5hbGl6ZS1ydWxlcy1ib2R5IHtcbiAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5zY2hlZHVsZS1maW5hbGl6ZS1ydWxlcy10YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplLXJ1bGVzLXRhYmxlIHRoZWFkIHRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjZyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uc2NoZWR1bGUtZmluYWxpemUtcnVsZXMtdGFibGUgdGJvZHkgdGQge1xuICBwYWRkaW5nOiAwLjQ1cmVtIDAuNnJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZS1ydWxlcy10YWJsZSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLnNjaGVkdWxlLWZpbmFsaXplIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcnVsZXMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcnVsZXMgc3VtbWFyeSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcnVsZXMgc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXJ1bGVzW29wZW5dIHN1bW1hcnkge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXVudG91Y2hlZCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA0JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtdW50b3VjaGVkLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI2MHB4LCAxZnIpKTtcbiAgZ2FwOiAwLjVyZW07XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXVudG91Y2hlZC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMC40cmVtIDAuNnJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtdW50b3VjaGVkLWl0ZW0gLmNvdW50IHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjA1cmVtO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1pbi13aWR0aDogMmNoO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS11bnRvdWNoZWQtaXRlbSAubGFiZWwge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLWFjdGlvbnMtdGV4dCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMjQwcHg7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLWNvdW50cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC40cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXNlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDFyZW0gMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA5MiUsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjEycyBlYXNlO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1yb3c6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSA4JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcm93IGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcm93IC5zY2hlZHVsZS1maW5hbGl6ZS1yb3ctYm9keSB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcm93IC5zY2hlZHVsZS1maW5hbGl6ZS1yb3ctbWV0YSB7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBtYXJnaW4tdG9wOiAwLjE1cmVtO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1yb3ctYmF0Y2hlZCAuc2NoZWR1bGUtZmluYWxpemUtdmlzaXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC4zNXJlbTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBwYWRkaW5nOiAwLjE1cmVtIDA7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXJvdy1iYXRjaGVkIC5zY2hlZHVsZS1maW5hbGl6ZS12aXNpdC1wcmltYXJ5IHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcm93LWJhdGNoZWQgLnNjaGVkdWxlLWZpbmFsaXplLXZpc2l0LW1hcmtlciB7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgd2lkdGg6IDAuOXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcm93LWJhdGNoZWQgLnNjaGVkdWxlLWZpbmFsaXplLXZpc2l0LWRhdGUge1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1yb3ctYmF0Y2hlZCAuc2NoZWR1bGUtZmluYWxpemUtdmlzaXRzLW90aGVycyB7XG4gIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgcGFkZGluZzogMC40cmVtIDAuNXJlbSAwLjJyZW07XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgNDAlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDQlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1yb3ctYmF0Y2hlZCAuc2NoZWR1bGUtZmluYWxpemUtdmlzaXRzLW90aGVycy1sYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJvdHRvbTogMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpIDYwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uc2NoZWR1bGUtbm90aWZ5LXBpbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjI1cmVtO1xuICBwYWRkaW5nOiAwLjA1cmVtIDAuNHJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc2NoZWR1bGUtbm90aWZ5LXBpbGwuc2NoZWR1bGUtbm90aWZ5LXBpbGwtcGVuZGluZyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLXdhcm4tYmcpO1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtd2Fybik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNjaGVkdWxlLXdhcm4tYm9yZGVyKTtcbiAgYW5pbWF0aW9uOiBzY2hlZHVsZS1ub3RpZnktcHVsc2UgMi40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbi5zY2hlZHVsZS1ub3RpZnktcGlsbC5zY2hlZHVsZS1ub3RpZnktcGlsbC1zeW5jZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS1nb29kLWJnKTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLWdvb2QpO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtZ29vZCkgMzUlLCB0cmFuc3BhcmVudCk7XG59XG5cbkBrZXlmcmFtZXMgc2NoZWR1bGUtbm90aWZ5LXB1bHNlIHtcbiAgMCUsIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgdmFyKC0tc2NoZWR1bGUtd2Fybi1ib3JkZXIpO1xuICB9XG4gIDUwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS13YXJuKSAyMiUsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuLnNjaGVkdWxlLWJsb2NrLWV2ZW50cyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMTVyZW07XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xuICBmb250LXNpemU6IDAuNjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDAgMC4zcmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgMTQlLCB0cmFuc3BhcmVudCk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uc2NoZWR1bGUtZGF5LWFnZ3JlZ2F0ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgcGFkZGluZzogMC4wNXJlbSAwLjQ1cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG59XG4uc2NoZWR1bGUtZGF5LWFnZ3JlZ2F0ZS5ncmVlbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLWdvb2QtYmcpO1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtZ29vZCk7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLWdvb2QpIDM1JSwgdHJhbnNwYXJlbnQpO1xufVxuLnNjaGVkdWxlLWRheS1hZ2dyZWdhdGUueWVsbG93IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtd2Fybi1iZyk7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS13YXJuKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zY2hlZHVsZS13YXJuLWJvcmRlcik7XG59XG4uc2NoZWR1bGUtZGF5LWFnZ3JlZ2F0ZS5yZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS1iYWQtYmcpO1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtYmFkKTtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtYmFkKSAzNSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIHBhZGRpbmc6IDAuODVyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgNSUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWhlYWRlciBhIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1oZWFkZXIgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LXNrZWxldG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjRyZW07XG4gIHBhZGRpbmc6IDAuMjVyZW0gMDtcbn1cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1za2VsZXRvbiAuc2tlbGV0b24tcm93IHtcbiAgaGVpZ2h0OiAwLjg1cmVtO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tdXRlZC10ZXh0KSAxMiUsIHRyYW5zcGFyZW50KSwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW11dGVkLXRleHQpIDIyJSwgdHJhbnNwYXJlbnQpLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbXV0ZWQtdGV4dCkgMTIlLCB0cmFuc3BhcmVudCkpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiBzY2hlZHVsZS1za2VsZXRvbi1zaGltbWVyIDEuNHMgbGluZWFyIGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtYWxlcnQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS1iYWQtYmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtYmFkKSA0MCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLWJhZCk7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE4MHB4LCAxZnIpKTtcbiAgZ2FwOiAwLjc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtbGFiZWwge1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWV2ZW50cyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjNyZW07XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtZXZlbnRzIGxpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1ldmVudHMgbGkgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1ldmVudC1kYXRlIHtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBtaW4td2lkdGg6IDkwcHg7XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtZXZlbnRzIGxpIC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtZXZlbnQtdGl0bGUge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWNvbW1lbnQge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2FyZC1jb2xvdXIpIDgwJSwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nOiAwLjVyZW0gMC43cmVtO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtY29tbWVudCA+IGRpdjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1lcnJvciB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1lcnJvciBhIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG5Aa2V5ZnJhbWVzIHNjaGVkdWxlLXNrZWxldG9uLXNoaW1tZXIge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7XG4gIH1cbn1cbi5wcm9qZWN0LXNob3ctbGF5b3V0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMjBweCAxZnI7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwic2lkZWJhciBtYWluXCI7XG4gIGdhcDogMXJlbTtcbiAgbWF4LXdpZHRoOiAxNDAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxcmVtIDFyZW0gMnJlbTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucHJvamVjdC1zaG93LWxheW91dC5zaWRlYmFyLWlzLWNvbGxhcHNlZCB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNjRweCAxZnI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTE5OS45OHB4KSB7XG4gIC5wcm9qZWN0LXNob3ctbGF5b3V0IHtcbiAgICBnYXA6IDAuNzVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucHJvamVjdC1zaG93LWxheW91dCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJtYWluXCI7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMC43NXJlbSAxLjVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAucHJvamVjdC1zaG93LWxheW91dCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNXJlbSAxcmVtO1xuICB9XG59XG5cbi5wcm9qZWN0LXRhYi1jb250ZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnByb2plY3QtdGFiLWNvbnRleHQgLnByb2plY3QtdGFiLWNvbnRleHQtYmFjayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucHJvamVjdC10YWItY29udGV4dCAucHJvamVjdC10YWItY29udGV4dC1iYWNrOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgMTAlLCB0cmFuc3BhcmVudCk7XG59XG4ucHJvamVjdC10YWItY29udGV4dCAucHJvamVjdC10YWItY29udGV4dC1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5wcm9qZWN0LXRhYi1jb250ZXh0IC5wcm9qZWN0LXRhYi1jb250ZXh0LWFkZHJlc3Mge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjc7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5wcm9qZWN0LXNpZGViYXIge1xuICBncmlkLWFyZWE6IHNpZGViYXI7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMC43NXJlbTtcbiAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTtcbiAgd2lkdGg6IDIyMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5wcm9qZWN0LXNpZGViYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5wcm9qZWN0LXNpZGViYXIuaXMtY29sbGFwc2VkIHtcbiAgd2lkdGg6IDY0cHg7XG59XG4ucHJvamVjdC1zaWRlYmFyLmlzLWNvbGxhcHNlZCAuc2lkZWJhci1uYXYtbGFiZWwsXG4ucHJvamVjdC1zaWRlYmFyLmlzLWNvbGxhcHNlZCAuc2lkZWJhci1uYXYtY291bnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnByb2plY3Qtc2lkZWJhci5pcy1jb2xsYXBzZWQgLnNpZGViYXItdG9nZ2xlLWJ0biAuYmkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4uc2lkZWJhci10b2dnbGUtYnRuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cbi5zaWRlYmFyLXRvZ2dsZS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAxMCUsIHRyYW5zcGFyZW50KTtcbn1cbi5zaWRlYmFyLXRvZ2dsZS1idG4gLmJpIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cblxuLnNpZGViYXItbmF2IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC4yNXJlbTtcbn1cblxuLnNpZGViYXItbmF2LWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zaWRlYmFyLW5hdi1saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNjI1cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gIG1pbi1oZWlnaHQ6IDQ0cHg7XG59XG4uc2lkZWJhci1uYXYtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDglLCB0cmFuc3BhcmVudCk7XG59XG4uc2lkZWJhci1uYXYtbGluay5hY3RpdmUsIC5zaWRlYmFyLW5hdi1saW5rLm1lbnUtYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDEyJSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5zaWRlYmFyLW5hdi1saW5rLmFjdGl2ZTo6YmVmb3JlLCAuc2lkZWJhci1uYXYtbGluay5tZW51LWJ1dHRvbi5hY3RpdmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwLjM3NXJlbTtcbiAgYm90dG9tOiAwLjM3NXJlbTtcbiAgd2lkdGg6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogMCAycHggMnB4IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uc2lkZWJhci1uYXYtbGluayAuc2lkZWJhci1uYXYtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICB3aWR0aDogMS41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnNpZGViYXItbmF2LWxpbmsgLnNpZGViYXItbmF2LWxhYmVsIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5zaWRlYmFyLW5hdi1saW5rIC5zaWRlYmFyLW5hdi1jb3VudCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzc1cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucHJvamVjdC1zaWRlYmFyLWRyYXdlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDEwNDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5wcm9qZWN0LXNpZGViYXItZHJhd2VyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLnByb2plY3Qtc2lkZWJhci1kcmF3ZXIuaXMtb3BlbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnByb2plY3Qtc2lkZWJhci1kcmF3ZXIuaXMtb3BlbiAuZHJhd2VyLWJhY2tkcm9wIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4ucHJvamVjdC1zaWRlYmFyLWRyYXdlci5pcy1vcGVuIC5kcmF3ZXItcGFuZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbi5kcmF3ZXItYmFja2Ryb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZHJhd2VyLXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDI2MHB4O1xuICBtYXgtd2lkdGg6IDgwdnc7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDFyZW07XG4gIGdhcDogMC41cmVtO1xufVxuLmRyYXdlci1wYW5lbCAuZHJhd2VyLWNsb3NlIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uZHJhd2VyLXBhbmVsIC5kcmF3ZXItbmF2IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMjVyZW07XG59XG5cbi5kcmF3ZXItbmF2LWxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMC42MjVyZW0gMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtaW4taGVpZ2h0OiA0OHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG59XG4uZHJhd2VyLW5hdi1saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgOCUsIHRyYW5zcGFyZW50KTtcbn1cbi5kcmF3ZXItbmF2LWxpbmsuYWN0aXZlLCAuZHJhd2VyLW5hdi1saW5rLm1lbnUtYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDEyJSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5kcmF3ZXItbmF2LWxpbmsuYWN0aXZlOjpiZWZvcmUsIC5kcmF3ZXItbmF2LWxpbmsubWVudS1idXR0b24uYWN0aXZlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMC41cmVtO1xuICBib3R0b206IDAuNXJlbTtcbiAgd2lkdGg6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogMCAycHggMnB4IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uZHJhd2VyLW5hdi1saW5rIC5kcmF3ZXItbmF2LWljb24ge1xuICBmb250LXNpemU6IDEuMTVyZW07XG4gIHdpZHRoOiAxLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kcmF3ZXItbmF2LWxpbmsgLmRyYXdlci1uYXYtY291bnQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nOiAwLjE1cmVtIDAuNHJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ucHJvamVjdC1tYWluIHtcbiAgZ3JpZC1hcmVhOiBtYWluO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXJlbTtcbn1cblxuLnByb2plY3QtaGVyby1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG59XG5cbi5wcm9qZWN0LWhlcm8taW5uZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMyMHB4IDFmcjtcbiAgZ2FwOiAxcmVtO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTkuOThweCkge1xuICAucHJvamVjdC1oZXJvLWlubmVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI2MHB4IDFmcjtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wcm9qZWN0LWhlcm8taW5uZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gICAgZ2FwOiAwLjc1cmVtO1xuICB9XG59XG5cbi5wcm9qZWN0LWhlcm8tY292ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBtaW4taGVpZ2h0OiAxODBweDtcbiAgbWF4LWhlaWdodDogMjIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnByb2plY3QtaGVyby1jb3ZlciBpbWcsIC5wcm9qZWN0LWhlcm8tY292ZXIgLnByb2plY3QtaGVyby1jb3Zlci1wbGFjZWhvbGRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5wcm9qZWN0LWhlcm8tY292ZXIgLnByb2plY3QtaGVyby1jb3Zlci1wbGFjZWhvbGRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjM1O1xuICBmb250LXNpemU6IDNyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnByb2plY3QtaGVyby1jb3ZlciB7XG4gICAgbWluLWhlaWdodDogMTYwcHg7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gIH1cbn1cblxuLnByb2plY3QtaGVyby1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnByb2plY3QtaGVyby10b3Atcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuXG4ucHJvamVjdC1oZXJvLWxlZnQge1xuICBtaW4td2lkdGg6IDA7XG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLnByb2plY3QtaGVyby1yaWdodCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucHJvamVjdC1oZXJvLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG59XG5cbi5wcm9qZWN0LWhlcm8tc2lkZS1pbmZvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5wcm9qZWN0LWhlcm8tc2lkZS1pbmZvIC5wcm9qZWN0LWhlcm8td2F0Y2hlcnMge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ucHJvamVjdC1oZXJvLXRpdGxlLWdyb3VwIHtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMzc1cmVtO1xufVxuXG4ucHJvamVjdC1oZXJvLW5hbWUtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnByb2plY3QtaGVyby1iYWNrLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgb3BhY2l0eSAwLjE1cyBlYXNlO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnByb2plY3QtaGVyby1iYWNrLWJ0bjpob3ZlciwgLnByb2plY3QtaGVyby1iYWNrLWJ0bjpmb2N1cyB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDEyJSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ucHJvamVjdC1oZXJvLW5hbWUge1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjM1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtYXJnaW46IDAgMCAwLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnByb2plY3QtaGVyby1uYW1lIHtcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG4gIH1cbn1cblxuLnByb2plY3QtaGVyby1hZGRyZXNzIHtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuODtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM3NXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnByb2plY3QtaGVyby1hZGRyZXNzIGEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnByb2plY3QtaGVyby1hZGRyZXNzIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnByb2plY3QtaGVyby1hY3Rpb25zLWRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnByb2plY3QtaGVyby10b3Atcm93IC5wcm9ncmVzcy1idXR0b24ge1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHotaW5kZXg6IGF1dG87XG4gIGlzb2xhdGlvbjogYXV0bztcbiAgY29udGFpbjogbm9uZTtcbn1cbi5wcm9qZWN0LWhlcm8tdG9wLXJvdyAucHJvZ3Jlc3MtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4ucHJvamVjdC1oZXJvLXRvcC1yb3cgLnByb2dyZXNzLWJ1dHRvbjo6YmVmb3JlIHtcbiAgei1pbmRleDogLTE7XG59XG5cbi5wcm9qZWN0LWhlcm8tcGxhbnBlcm1pdCB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjg1O1xufVxuXG4ucHJvamVjdC1oZXJvLXN0YXR1cy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ucHJvamVjdC1oZXJvLXdhdGNoZXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM3NXJlbTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cbi5wcm9qZWN0LWhlcm8td2F0Y2hlcnMgLndhdGNoZXItYXZhdGFyLXN0YWNrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5wcm9qZWN0LWhlcm8td2F0Y2hlcnMgLndhdGNoZXItYXZhdGFyLXN0YWNrIC53YXRjaGVyLWF2YXRhciB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuLnByb2plY3QtaGVyby13YXRjaGVycyAud2F0Y2hlci1hdmF0YXItc3RhY2sgLndhdGNoZXItYXZhdGFyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ucHJvamVjdC1oZXJvLXdhdGNoZXJzIC53YXRjaGVyLWF2YXRhci1zdGFjayAud2F0Y2hlci1hdmF0YXI6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIHotaW5kZXg6IDI7XG59XG4ucHJvamVjdC1oZXJvLXdhdGNoZXJzIC53YXRjaGVyLWF2YXRhci1zdGFjayAud2F0Y2hlci1tb3JlIHtcbiAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gIGhlaWdodDogMjhweDtcbiAgcGFkZGluZzogMCAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY2FyZC1jb2xvdXIpO1xufVxuXG4ucHJvamVjdC1oZXJvLWxhYmVscyB7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG5cbi5wcm9qZWN0LWRlc2lnbi1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xufVxuXG4uZGVzaWduLXN0YXRpYy1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgbWluLWhlaWdodDogMjgwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmRlc2lnbi1zdGF0aWMtY2FyZCBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogNDIwcHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGVzaWduLXN0YXRpYy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlO1xufVxuLmRlc2lnbi1zdGF0aWMtb3ZlcmxheTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG59XG5cbi5kZXNpZ24tc3RhdGljLWNhcHRpb24ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cblxuLnNjZW5lLXZpZXdlci1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuc2NlbmUtdmlld2VyLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAzNjBweDtcbiAgfVxufVxuXG4ucHJvamVjdC10YWItY29udGVudCAudGFiLXBhbmUge1xuICBkaXNwbGF5OiBub25lO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG59XG4ucHJvamVjdC10YWItY29udGVudCAudGFiLXBhbmUuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDE7XG4gIGFuaW1hdGlvbjogcHJvamVjdEZhZGVJbiAwLjI1cyBlYXNlO1xufVxuXG5Aa2V5ZnJhbWVzIHByb2plY3RGYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuLnByb2plY3QtZ2VuZXJhbC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wcm9qZWN0LWdlbmVyYWwtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbn1cblxuLnByb2plY3QtaW5mby1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4ucHJvamVjdC1pbmZvLWNhcmQuc3Bhbi0yIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAucHJvamVjdC1pbmZvLWNhcmQuc3Bhbi0yIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAxO1xuICB9XG59XG4ucHJvamVjdC1pbmZvLWNhcmQgLmNhcmQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgZ2FwOiAwLjc1cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4ucHJvamVjdC1pbmZvLWNhcmQgLmNhcmQtaGVhZGVyIC5jYXJkLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5wcm9qZWN0LWluZm8tY2FyZCAuY2FyZC1oZWFkZXIgLmNhcmQtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xufVxuLnByb2plY3QtaW5mby1jYXJkIC5jYXJkLWJvZHkge1xuICBwYWRkaW5nOiAxcmVtO1xuICBmbGV4OiAxO1xufVxuLnByb2plY3QtaW5mby1jYXJkIC5pbmZvLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cbi5wcm9qZWN0LWluZm8tY2FyZCAuaW5mby1yb3c6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ucHJvamVjdC1pbmZvLWNhcmQgLmluZm8tcm93IC5pbmZvLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNTU7XG59XG4ucHJvamVjdC1pbmZvLWNhcmQgLmluZm8tcm93IC5pbmZvLXZhbHVlIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnByb2plY3QtaW5mby1jYXJkIC5pbmZvLXJvdyAuaW5mby12YWx1ZSAuYmxhbmtidXR0b24ge1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLndhdGNoZXItY2FyZC1ib2R5IC53YXRjaGVyLXN0YWNrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cbi53YXRjaGVyLWNhcmQtYm9keSAud2F0Y2hlci1zdGFjayAud2F0Y2hlci1hdmF0YXIge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNhcmQtY29sb3VyKTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG59XG4ud2F0Y2hlci1jYXJkLWJvZHkgLndhdGNoZXItc3RhY2sgLndhdGNoZXItYXZhdGFyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ud2F0Y2hlci1jYXJkLWJvZHkgLndhdGNoZXItc3RhY2sgLndhdGNoZXItYXZhdGFyOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICB6LWluZGV4OiAyO1xufVxuLndhdGNoZXItY2FyZC1ib2R5IC53YXRjaGVyLXN0YWNrIC53YXRjaGVyLW1vcmUge1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIGhlaWdodDogMzJweDtcbiAgcGFkZGluZzogMCAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNhcmQtY29sb3VyKTtcbn1cbi53YXRjaGVyLWNhcmQtYm9keSAud2F0Y2hlci1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLm1vYmlsZS1uYXYtdHJpZ2dlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDE2cHg7XG4gIGJvdHRvbTogY2FsYyg2NHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkgKyAxNnB4KTtcbiAgd2lkdGg6IDU2cHg7XG4gIGhlaWdodDogNTZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgei1pbmRleDogMTA0MDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UsIGZpbHRlciAwLjE1cyBlYXNlO1xufVxuLm1vYmlsZS1uYXYtdHJpZ2dlcjpob3ZlciwgLm1vYmlsZS1uYXYtdHJpZ2dlcjpmb2N1cyB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjA4KTtcbiAgY29sb3I6ICNmZmY7XG59XG4ubW9iaWxlLW5hdi10cmlnZ2VyOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5wcm9qZWN0LXNob3ctYmFjay1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xufVxuLnByb2plY3Qtc2hvdy1iYWNrLWJ0bjpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjEpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpO1xufVxuXG4ucXVvdGUtc2hvdy1sYXlvdXQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIyMHB4IDFmcjtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJzaWRlYmFyIG1haW5cIjtcbiAgZ2FwOiAxcmVtO1xuICBtYXgtd2lkdGg6IDE0MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDFyZW0gMXJlbSAycmVtO1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5xdW90ZS1zaG93LWxheW91dC5zaWRlYmFyLWlzLWNvbGxhcHNlZCB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNjRweCAxZnI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTE5OS45OHB4KSB7XG4gIC5xdW90ZS1zaG93LWxheW91dCB7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnF1b3RlLXNob3ctbGF5b3V0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcIm1haW5cIjtcbiAgICBnYXA6IDAuNzVyZW07XG4gICAgcGFkZGluZzogMC43NXJlbSAwLjc1cmVtIDEuNXJlbTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5xdW90ZS1zaG93LWxheW91dCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNXJlbSAxcmVtO1xuICB9XG59XG5cbi5xdW90ZS1zaWRlYmFyIHtcbiAgZ3JpZC1hcmVhOiBzaWRlYmFyO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDgwcHg7XG4gIGFsaWduLXNlbGY6IHN0YXJ0O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7XG4gIHdpZHRoOiAyMjBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucXVvdGUtc2lkZWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnF1b3RlLXNpZGViYXIuaXMtY29sbGFwc2VkIHtcbiAgd2lkdGg6IDY0cHg7XG59XG4ucXVvdGUtc2lkZWJhci5pcy1jb2xsYXBzZWQgLnNpZGViYXItbmF2LWxhYmVsLFxuLnF1b3RlLXNpZGViYXIuaXMtY29sbGFwc2VkIC5zaWRlYmFyLW5hdi1jb3VudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucXVvdGUtc2lkZWJhci5pcy1jb2xsYXBzZWQgLnNpZGViYXItdG9nZ2xlLWJ0biAuYmkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4ucXVvdGUtc2lkZWJhci1kcmF3ZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAxMDQwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucXVvdGUtc2lkZWJhci1kcmF3ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4ucXVvdGUtc2lkZWJhci1kcmF3ZXIuaXMtb3BlbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnF1b3RlLXNpZGViYXItZHJhd2VyLmlzLW9wZW4gLmRyYXdlci1iYWNrZHJvcCB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnF1b3RlLXNpZGViYXItZHJhd2VyLmlzLW9wZW4gLmRyYXdlci1wYW5lbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLnF1b3RlLW1haW4ge1xuICBncmlkLWFyZWE6IG1haW47XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4ucXVvdGUtdGFiLWNvbnRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4ucXVvdGUtdGFiLWNvbnRleHQgLnF1b3RlLXRhYi1jb250ZXh0LWJhY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnF1b3RlLXRhYi1jb250ZXh0IC5xdW90ZS10YWItY29udGV4dC1iYWNrOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgMTAlLCB0cmFuc3BhcmVudCk7XG59XG4ucXVvdGUtdGFiLWNvbnRleHQgLnF1b3RlLXRhYi1jb250ZXh0LW5hbWUge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbWluLXdpZHRoOiAwO1xufVxuLnF1b3RlLXRhYi1jb250ZXh0IC5xdW90ZS10YWItY29udGV4dC1hY3Rpb25zIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucXVvdGUtbWFpbjpoYXMoI292ZXJ2aWV3LnRhYi1wYW5lLmFjdGl2ZSkgLnF1b3RlLXRhYi1jb250ZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnF1b3RlLWFjdGlvbnMgYS5iYWRnZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnF1b3RlLWFjdGlvbnMtZmxvYXRpbmcge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogODBweDtcbiAgcmlnaHQ6IDE2cHg7XG4gIHotaW5kZXg6IDEwMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucXVvdGUtYWN0aW9ucy1mbG9hdGluZyB7XG4gICAgdG9wOiA3NnB4O1xuICAgIHJpZ2h0OiAxMnB4O1xuICB9XG59XG5cbiNxdW90ZVRhYnNDb250ZW50IC50YWItcGFuZS5hY3RpdmUge1xuICBhbmltYXRpb246IHF1b3RlRmFkZUluIDAuMjVzIGVhc2U7XG59XG5cbkBrZXlmcmFtZXMgcXVvdGVGYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4ucXVvdGUtcGlja2VyLWRpYWxvZyB7XG4gIC0tcXVvdGUtcGlja2VyLW1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzcmVtKTtcbn1cblxuLnF1b3RlLXBpY2tlci1tb2RhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1heC1oZWlnaHQ6IHZhcigtLXF1b3RlLXBpY2tlci1tYXgtaGVpZ2h0KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xdW90ZS1waWNrZXItbW9kYWwgLm1vZGFsLWJvZHkge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xdW90ZS1waWNrZXItbW9kYWwgPiBmb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAxIGF1dG87XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5xdW90ZS1waWNrZXItdG9vbGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC44NXJlbTtcbn1cbi5xdW90ZS1waWNrZXItdG9vbGJhciAudGV4dC1tdXRlZCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucXVvdGUtcGlja2VyLXRvb2xiYXItY29tcGFjdCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMzVyZW07XG59XG5cbi5xdW90ZS1waWNrZXItc2VhcmNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xufVxuLnF1b3RlLXBpY2tlci1zZWFyY2ggaSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMC44NXJlbTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQsICM2Yzc1N2QpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMjtcbn1cbi5xdW90ZS1waWNrZXItc2VhcmNoIC5mb3JtLWNvbnRyb2wge1xuICBtaW4taGVpZ2h0OiAyLjM1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDIuMzVyZW07XG59XG5cbi5xdW90ZS1waWNrZXItbGlzdCB7XG4gIG1heC1oZWlnaHQ6IDU0dmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG59XG5cbi5xdW90ZS1waWNrZXItbGlzdC1zcGxpdCB7XG4gIG1heC1oZWlnaHQ6IDM2dmg7XG59XG5cbkBtZWRpYSAobWluLWhlaWdodDogOTYzcHgpIHtcbiAgLnF1b3RlLXBpY2tlci1saXN0IHtcbiAgICBtYXgtaGVpZ2h0OiA1MjBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4taGVpZ2h0OiAxMDU2cHgpIHtcbiAgLnF1b3RlLXBpY2tlci1saXN0LXNwbGl0IHtcbiAgICBtYXgtaGVpZ2h0OiAzODBweDtcbiAgfVxufVxuLnF1b3RlLXBpY2tlci1yb3cge1xuICBtYXJnaW4tYm90dG9tOiAwLjU1cmVtO1xuICBwYWRkaW5nOiAwLjhyZW0gMC45cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcbn1cbi5xdW90ZS1waWNrZXItcm93OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDYlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDIwJSwgdHJhbnNwYXJlbnQpO1xufVxuLnF1b3RlLXBpY2tlci1yb3cgLmlucHV0LWdyb3VwIHtcbiAgZmxleDogMCAwIDEyMHB4O1xufVxuLnF1b3RlLXBpY2tlci1yb3cgLmN1c3RvbS1jaGVja2JveCB7XG4gIGZsZXg6IDAgMCAyMHB4O1xufVxuLnF1b3RlLXBpY2tlci1yb3cgLm1pbi13aWR0aC0wIHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ucXVvdGUtcGlja2VyLWxhYmVsIHtcbiAgbWluLXdpZHRoOiAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbn1cbi5xdW90ZS1waWNrZXItbGFiZWwgc3Ryb25nIHtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi5xdW90ZS1waWNrZXItZW1wdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1pbi1oZWlnaHQ6IDhyZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucXVvdGUtcGlja2VyLWZvb3RlciB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nLXRvcDogMC44NXJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gIC5xdW90ZS1waWNrZXItZGlhbG9nIHtcbiAgICBtYXJnaW46IDAuNzVyZW07XG4gIH1cbiAgLnF1b3RlLXBpY2tlci10b29sYmFyIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMC40cmVtO1xuICB9XG4gIC5xdW90ZS1waWNrZXItcm93IHtcbiAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICB9XG4gIC5xdW90ZS1waWNrZXItcm93ID4gLmQtZmxleCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5xdW90ZS1waWNrZXItcm93IC5pbnB1dC1ncm91cCB7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4ucHJvZHVjdHMtc2hvdy1sYXlvdXQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIyMHB4IDFmcjtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJzaWRlYmFyIG1haW5cIjtcbiAgZ2FwOiAxcmVtO1xuICBtYXgtd2lkdGg6IDE0MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDFyZW0gMXJlbSAycmVtO1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wcm9kdWN0cy1zaG93LWxheW91dC5zaWRlYmFyLWlzLWNvbGxhcHNlZCB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNjRweCAxZnI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTE5OS45OHB4KSB7XG4gIC5wcm9kdWN0cy1zaG93LWxheW91dCB7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnByb2R1Y3RzLXNob3ctbGF5b3V0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcIm1haW5cIjtcbiAgICBnYXA6IDAuNzVyZW07XG4gICAgcGFkZGluZzogMC43NXJlbSAwLjc1cmVtIDEuNXJlbTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wcm9kdWN0cy1zaG93LWxheW91dCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNXJlbSAxcmVtO1xuICB9XG59XG5cbi5wcm9kdWN0cy1zaWRlYmFyIHtcbiAgZ3JpZC1hcmVhOiBzaWRlYmFyO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IHZhcigtLXBhZ2Utc3RpY2t5LW5hdmJhci1vZmZzZXQsIDEwMHB4KTtcbiAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTtcbiAgd2lkdGg6IDIyMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5wcm9kdWN0cy1zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4ucHJvZHVjdHMtc2lkZWJhci5pcy1jb2xsYXBzZWQge1xuICB3aWR0aDogNjRweDtcbn1cbi5wcm9kdWN0cy1zaWRlYmFyLmlzLWNvbGxhcHNlZCAuc2lkZWJhci1uYXYtbGFiZWwsXG4ucHJvZHVjdHMtc2lkZWJhci5pcy1jb2xsYXBzZWQgLnNpZGViYXItbmF2LWNvdW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wcm9kdWN0cy1zaWRlYmFyLmlzLWNvbGxhcHNlZCAuc2lkZWJhci10b2dnbGUtYnRuIC5iaSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbi5wcm9kdWN0cy1zaWRlYmFyLWRyYXdlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDEwNDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5wcm9kdWN0cy1zaWRlYmFyLWRyYXdlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5wcm9kdWN0cy1zaWRlYmFyLWRyYXdlci5pcy1vcGVuIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4ucHJvZHVjdHMtc2lkZWJhci1kcmF3ZXIuaXMtb3BlbiAuZHJhd2VyLWJhY2tkcm9wIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4ucHJvZHVjdHMtc2lkZWJhci1kcmF3ZXIuaXMtb3BlbiAuZHJhd2VyLXBhbmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4ucHJvZHVjdHMtbWFpbiB7XG4gIGdyaWQtYXJlYTogbWFpbjtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFyZW07XG59XG5cbi5wcm9kdWN0cy1zaWRlYmFyIHN2Zy5zaWRlYmFyLW5hdi1pY29uLFxuLnByb2R1Y3RzLXNpZGViYXIgc3ZnLmRyYXdlci1uYXYtaWNvbixcbi5wcm9kdWN0cy1zaWRlYmFyLWRyYXdlciBzdmcuc2lkZWJhci1uYXYtaWNvbixcbi5wcm9kdWN0cy1zaWRlYmFyLWRyYXdlciBzdmcuZHJhd2VyLW5hdi1pY29uIHtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi53b3JrZmxvdy1zdGF0dXMtY2FyZCB7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tYnMtcHJpbWFyeSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDsgLyogUmVkdWNlZCBwYWRkaW5nIGZvciBjb21wYWN0bmVzcyAqL1xufVxuXG4uYmFkZ2VzLWNvbnRhaW5lciAuYmFkZ2Uge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG4uYmFkZ2VzLWNvbnRhaW5lciAuYmFkZ2U6aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xufVxuXG4uY29tcGFjdC1wcm9ncmVzcyB7XG4gIG1pbi13aWR0aDogMTUwcHg7XG59XG4uY29tcGFjdC1wcm9ncmVzcyAucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi8qIFRvZ2dsZSBidXR0b24gc3R5bGluZyAqL1xuLndvcmtmbG93LXRvZ2dsZSB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG4ud29ya2Zsb3ctdG9nZ2xlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbn1cbi53b3JrZmxvdy10b2dnbGUgaSB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi8qIEV4cGFuZGFibGUgc2VjdGlvbiBzdHlsaW5nICovXG4ud29ya2Zsb3ctZGV0YWlscy1leHBhbmRhYmxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGVhc2UsIG9wYWNpdHkgMC4zcyBlYXNlO1xufVxuXG4ud29ya2Zsb3ctZGV0YWlsZWQtaW5mbyB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmRldGFpbGVkLXByb2dyZXNzIC5wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWVjZWY7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLyogVW5hc3NpZ25lZCBjb21wYWN0IHN0YXRlICovXG4udW5hc3NpZ25lZC1jb21wYWN0IHtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMC41cmVtIDA7XG59XG4udW5hc3NpZ25lZC1jb21wYWN0IGkge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbi8qIFF1aWNrIG1vdmUgYnV0dG9ucyAqL1xuLnF1aWNrLW1vdmUtYnRuIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5xdWljay1tb3ZlLWJ0bjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLyogQW5pbWF0aW9uIGltcHJvdmVtZW50cyAqL1xuLndvcmtmbG93LXN0YXR1cy1jYXJkICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKiBSZXNwb25zaXZlIGFkanVzdG1lbnRzICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLndvcmtmbG93LXN1bW1hcnkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgICBnYXA6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuYmFkZ2VzLWNvbnRhaW5lciB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5jb21wYWN0LXByb2dyZXNzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gIH1cbiAgLndvcmtmbG93LWFjdGlvbnMge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgfVxufVxuLmdvb2dsZS1zdHlsZS11cGxvYWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3JkZXI6IDJweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiAzMnB4IDI0cHg7XG4gIG1pbi1oZWlnaHQ6IDEyMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA1JSwgdHJhbnNwYXJlbnQpIDAlLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeS1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpIDEwMCUpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1pbi1vdXQ7XG59XG5cbi5nb29nbGUtc3R5bGUtdXBsb2FkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXByaW1hcnktY29sb3VyKSAyMCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgYm94LXNoYWRvdzogdmFyKC0taC1vZmZzZXQpIHZhcigtLXYtb2Zmc2V0KSB2YXIoLS1ibHVyLXJhZGl1cykgdmFyKC0tYm94c2hhZG93KTtcbn1cblxuLmdvb2dsZS1zdHlsZS11cGxvYWQ6aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5nb29nbGUtc3R5bGUtdXBsb2FkLmRyYWctb3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wcmltYXJ5LWNvbG91cikgMzAlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xuICBib3gtc2hhZG93OiAwIDhweCAyNXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAyNSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLmdvb2dsZS1zdHlsZS11cGxvYWQuZHJhZy1vdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZCAudXBsb2FkLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5nb29nbGUtc3R5bGUtdXBsb2FkIC51cGxvYWQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogNDhweDtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNjAlLCB0cmFuc3BhcmVudCk7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZDpob3ZlciAudXBsb2FkLWljb24ge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLmdvb2dsZS1zdHlsZS11cGxvYWQgLnVwbG9hZC10ZXh0IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5nb29nbGUtc3R5bGUtdXBsb2FkIC51cGxvYWQtc3VidGV4dCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNzAlLCB0cmFuc3BhcmVudCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5nb29nbGUtc3R5bGUtdXBsb2FkIC51cGxvYWQtZm9ybWF0cyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNTAlLCB0cmFuc3BhcmVudCk7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpIDgwJSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMpICogMC43NSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xufVxuXG4jdXBsb2FkTW9kYWwubW9kYWwgLm1vZGFsLWRpYWxvZyAubW9kYWwtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuI3VwbG9hZE1vZGFsIC51cGxvYWQtbW9kYWwtYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4jdXBsb2FkTW9kYWwgLnVwbG9hZC1maWxlLWl0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpIDUwJSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG5cbi51cGxvYWQtbW9kYWwtY29udGVudCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1ib3JkZXItcmFkaXVzKSAqIDEuNSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDYwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udXBsb2FkLW1vZGFsLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMzJweCAzMnB4IDI0cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wcmltYXJ5LWNvbG91cikgMTUlLCB2YXIoLS1jYXJkLWNvbG91cikpIDAlLCB2YXIoLS1jYXJkLWNvbG91cikgMTAwJSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYm9yZGVyLWNvbG91cikgNTAlLCB0cmFuc3BhcmVudCk7XG59XG5cbi51cGxvYWQtbW9kYWwtaWNvbiB7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDY0cHg7XG4gIG1hcmdpbjogMCBhdXRvIDE2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBhbmltYXRpb246IHVwbG9hZC1wdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnVwbG9hZC1tb2RhbC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgbWFyZ2luOiAwIDAgOHB4O1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4udXBsb2FkLW1vZGFsLXN1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA3MCUsIHRyYW5zcGFyZW50KTtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4udXBsb2FkLW1vZGFsLWJvZHkge1xuICBwYWRkaW5nOiAyNHB4IDMycHggMzJweDtcbn1cblxuLnVwbG9hZC1wcm9ncmVzcy1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4udXBsb2FkLXByb2dyZXNzLWJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOHB4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYm9yZGVyLWNvbG91cikgMzAlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLnVwbG9hZC1wcm9ncmVzcy1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDAlLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgODAlLCAjZmZmZmZmKSAxMDAlKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGVhc2U7XG4gIGFuaW1hdGlvbjogdXBsb2FkLXByb2dyZXNzLXNoaW1tZXIgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi51cGxvYWQtcHJvZ3Jlc3MtZ2xvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwMCU7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDUwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gIGFuaW1hdGlvbjogdXBsb2FkLXByb2dyZXNzLWdsb3cgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi51cGxvYWQtcHJvZ3Jlc3MtdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnVwbG9hZC1wZXJjZW50YWdlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi51cGxvYWQtc3RhdHVzIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA3MCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnVwbG9hZC1maWxlLWxpc3Qge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4udXBsb2FkLWZpbGUtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEycHggMTZweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJvcmRlci1jb2xvdXIpIDMwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4udXBsb2FkLWZpbGUtaWNvbiB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cykgKiAwLjc1KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmb250LXNpemU6IDE4cHg7XG4gIG1hcmdpbi1yaWdodDogMTJweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi51cGxvYWQtZmlsZS1pbmZvIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4udXBsb2FkLWZpbGUtbmFtZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnVwbG9hZC1maWxlLXNpemUge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDYwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4udXBsb2FkLWZpbGUtc3RhdHVzIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xufVxuXG4udXBsb2FkLXNwaW5uZXIge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMjAlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IHVwbG9hZC1zcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLnVwbG9hZC10aXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG59XG5cbi51cGxvYWQtdGlwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2MCUsIHRyYW5zcGFyZW50KTtcbn1cbi51cGxvYWQtdGlwIGkge1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbkBrZXlmcmFtZXMgdXBsb2FkLXB1bHNlIHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNDAlLCB0cmFuc3BhcmVudCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDhweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuQGtleWZyYW1lcyB1cGxvYWQtcHJvZ3Jlc3Mtc2hpbW1lciB7XG4gIDAlLCAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC44O1xuICB9XG59XG5Aa2V5ZnJhbWVzIHVwbG9hZC1wcm9ncmVzcy1nbG93IHtcbiAgMCUge1xuICAgIGxlZnQ6IC0xMDAlO1xuICB9XG4gIDEwMCUge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdXBsb2FkLXNwaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLnVwbG9hZC1maWxlLWl0ZW0uc3VjY2VzcyAudXBsb2FkLWZpbGUtaWNvbiB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjMTBiOTgxIDEwJSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogIzEwYjk4MTtcbn1cbi51cGxvYWQtZmlsZS1pdGVtLnN1Y2Nlc3MgLnVwbG9hZC1maWxlLXN0YXR1cyB7XG4gIGNvbG9yOiAjMTBiOTgxO1xuICBmb250LXNpemU6IDE0cHg7XG59XG4udXBsb2FkLWZpbGUtaXRlbS5zdWNjZXNzIC51cGxvYWQtZmlsZS1zdGF0dXM6OmFmdGVyIHtcbiAgY29udGVudDogXCLinJNcIjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi51cGxvYWQtZmlsZS1pdGVtLmVycm9yIHtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgI2VmNDQ0NCAzMCUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsICNlZjQ0NDQgNSUsIHRyYW5zcGFyZW50KTtcbn1cbi51cGxvYWQtZmlsZS1pdGVtLmVycm9yIC51cGxvYWQtZmlsZS1pY29uIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsICNlZjQ0NDQgMTAlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiAjZWY0NDQ0O1xufVxuLnVwbG9hZC1maWxlLWl0ZW0uZXJyb3IgLnVwbG9hZC1maWxlLXN0YXR1cyB7XG4gIGNvbG9yOiAjZWY0NDQ0O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4udXBsb2FkLWZpbGUtaXRlbS5lcnJvciAudXBsb2FkLWZpbGUtc3RhdHVzOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi4pyXXCI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ubW9kYmFyLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMTVweDtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzBweCk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzMHB4KTtcbiAgd2lkdGg6IDcwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHZhcigtLWNhcmQtY29sb3VyKSwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpKTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogMCAxMnB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMDgpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubW9kYmFyLWNvbnRhaW5lci5tb2RiYXItZXhwYW5kZWQge1xuICB3aWR0aDogMjQwcHg7XG59XG4ubW9kYmFyLWNvbnRhaW5lci5tb2RiYXItZXhwYW5kZWQgLm1vZGJhci1sYWJlbCB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5tb2RiYXItY29udGFpbmVyLm1vZGJhci1jb2xsYXBzZWQgLm1vZGJhci1sYWJlbCB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLm1vZGJhci10b2dnbGUge1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cblxuLm1vZGJhci10b2dnbGUtYnRuIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5tb2RiYXItdG9nZ2xlLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLm1vZGJhci10b2dnbGUtYnRuOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG4ubW9kYmFyLXRvZ2dsZS1idG4gaSB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1vZGJhci1uYXYge1xuICBmbGV4OiAxO1xuICBwYWRkaW5nOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC8qIEN1c3RvbSBzY3JvbGxiYXIgZm9yIHRoZSBuYXZpZ2F0aW9uIGFyZWEgKi9cbn1cbi5tb2RiYXItbmF2Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA0cHg7XG59XG4ubW9kYmFyLW5hdjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5tb2RiYXItbmF2Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG4ubW9kYmFyLW5hdjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1vZGJhci1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLm1vZGJhci1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcbn1cbi5tb2RiYXItaXRlbTphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHRyYW5zbGF0ZVgoMnB4KTtcbn1cblxuLm1vZGJhci1saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMTJweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDUycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cbi5tb2RiYXItbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xufVxuLm1vZGJhci1saW5rOmZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ubW9kYmFyLWljb24ge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ubW9kYmFyLWljb24gaSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5tb2RiYXItaWNvbiBsb3JkLWljb24ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4ubW9kYmFyLWxhYmVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ubW9kYmFyLWJhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgcmlnaHQ6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMpICogMik7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWluLXdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlO1xufVxuLm1vZGJhci1iYWRnZS5tb2RiYXItYmFkZ2Utd2FybmluZyB7XG4gIGJhY2tncm91bmQ6ICNmYmJjMDQ7XG4gIGNvbG9yOiAjMWExYTFhO1xufVxuXG4ubW9kYmFyLWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgdmFyKC0tYm9yZGVyLWNvbG91ciksIHRyYW5zcGFyZW50KTtcbiAgbWFyZ2luOiA4cHggMTJweDtcbn1cblxuLm1vZGJhci1ib3R0b20ge1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG59XG5cbi5tb2RiYXItcHJvZmlsZS1waWMge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG59XG4ubW9kYmFyLWl0ZW0uYWN0aXZlIC5tb2RiYXItbGluayB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpLCB2YXIoLS1idXR0b24taG92ZXIpKTtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNTA7XG59XG4ubW9kYmFyLWl0ZW0uYWN0aXZlIC5tb2RiYXItbGluayAubW9kYmFyLWljb24gaSB7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xufVxuXG4ubGF5b3V0Y29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuLmxheW91dHNpZGViYXIge1xuICBmbGV4LXNocmluazogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi5sYXlvdXRzaWRlYmFyLm1vZGJhciB7XG4gIHdpZHRoOiA5MHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLmxheW91dHNpZGViYXIubW9kYmFyIC5tb2RiYXItY29udGFpbmVyLm1vZGJhci1leHBhbmRlZCB+ICoge1xuICBtYXJnaW4tbGVmdDogMTYwcHg7XG59XG5cbi5sYXlvdXRjb250ZW50IHtcbiAgZmxleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ubGF5b3V0c2lkZWJhci5tb2RiYXIubW9kYmFyLWxheW91dC1leHBhbmRlZCB7XG4gIHdpZHRoOiAyNjBweDtcbn1cblxuLmxheW91dGNvbnRhaW5lci5tb2RiYXItbGF5b3V0LWV4cGFuZGVkIC5sYXlvdXRjb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5tb2RiYXItY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmxheW91dHNpZGViYXIubW9kYmFyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmxheW91dGNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAubW9kYmFyLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDYwcHg7XG4gIH1cbiAgLm1vZGJhci1jb250YWluZXIubW9kYmFyLWV4cGFuZGVkIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gIH1cbiAgLm1vZGJhci1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG59XG5AbWVkaWEgKHByZWZlcnMtY29udHJhc3Q6IGhpZ2gpIHtcbiAgLm1vZGJhci1jb250YWluZXIge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAubW9kYmFyLWxpbmsge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG4gIC5tb2RiYXItbGluazpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAubW9kYmFyLWNvbnRhaW5lcixcbiAgLm1vZGJhci1saW5rLFxuICAubW9kYmFyLWxhYmVsLFxuICAubW9kYmFyLXRvZ2dsZS1idG4sXG4gIC5tb2RiYXItaWNvbiBpIHtcbiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5pbmJveC1vZmZjYW52YXMge1xuICB3aWR0aDogbWluKDEwMHZ3LCA2MjBweCkgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDB2dztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5pbmJveC1vZmZjYW52YXMgLmluYm94LWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG59XG4uaW5ib3gtb2ZmY2FudmFzIC5pbmJveC1wYW5lbHMge1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xufVxuLmluYm94LW9mZmNhbnZhcyAuaW5ib3gtcGFuZWxzID4gZGl2IHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5pbmJveC1vZmZjYW52YXMgLmluYm94LXBhbmVscyA+IGRpdi5zaG93LmFjdGl2ZSwgLmluYm94LW9mZmNhbnZhcyAuaW5ib3gtcGFuZWxzID4gZGl2W3N0eWxlKj1cImRpc3BsYXk6IGJsb2NrXCJdIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xufVxuLmluYm94LW9mZmNhbnZhcyAuaW5ib3gtcGFuZS1ib2R5IHtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogMXJlbTtcbn1cbi5pbmJveC1vZmZjYW52YXMgLmluYm94LXBhbmUtZm9vdGVyIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyB7XG4gIC0tbXNnLWJvcmRlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSAxNCUsIHRyYW5zcGFyZW50KTtcbiAgLS1tc2ctbXV0ZWQ6IHZhcigtLW11dGVkLXRleHQsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgNjglLCB0cmFuc3BhcmVudCkpO1xuICB3aWR0aDogbWluKDEwMHZ3LCA2MjBweCkgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDB2dztcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4udW5pZmllZC1pbmJveC1vZmZjYW52YXMgaSB7XG4gIC0tZmEtcHJpbWFyeS1jb2xvcjogY3VycmVudENvbG9yO1xuICAtLWZhLXNlY29uZGFyeS1jb2xvcjogY3VycmVudENvbG9yO1xuICAtLWZhLXByaW1hcnktb3BhY2l0eTogMTtcbiAgLS1mYS1zZWNvbmRhcnktb3BhY2l0eTogLjQ7XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAubWR1aS1pY29uIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC5pbmJveC1oZWFkZXIge1xuICBwYWRkaW5nOiAwLjU1cmVtIDAuNzVyZW0gMDtcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC5pbmJveC10aXRsZS1yb3cge1xuICBtaW4taGVpZ2h0OiAzNHB4O1xuICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAub2ZmY2FudmFzLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4udW5pZmllZC1pbmJveC1vZmZjYW52YXMgLmluYm94LWlkZW50aXR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC5pbmJveC1pZGVudGl0eS1pY29uIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEyJSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC5pbmJveC1pZGVudGl0eSAub2ZmY2FudmFzLXRpdGxlIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC5pbmJveC1pZGVudGl0eSBkaXYgPiBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDAuMTJyZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjU2cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4udW5pZmllZC1pbmJveC1vZmZjYW52YXMgLmluYm94LXRhYnMge1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC5pbmJveC10YWJzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAuaW5ib3gtdGFicyAubmF2LWl0ZW0ge1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC5pbmJveC10YWJzIC5uYXYtbGluayB7XG4gIHdpZHRoOiBhdXRvO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAuaW5ib3gtdGFiLWNvbnRlbnQge1xuICBmbGV4OiAxIDEgMDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udW5pZmllZC1pbmJveC1vZmZjYW52YXMgLnRhYi1wYW5lIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4udW5pZmllZC1pbmJveC1vZmZjYW52YXMgLm1lc3NhZ2luZy1pbmJveC1wYW5lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1lc3NhZ2luZy1pbmJveC1wYW5lIHR1cmJvLWZyYW1lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLm1lc3NhZ2luZy1odWItY29udHJvbGxlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMDtcbn1cblxuYm9keTpoYXMoLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzLnNob3cpIC5hc3Npc3RhbnQtd2lkZ2V0IHtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1odWItbG9hZGluZyB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1zaGVsbCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTkwcHggbWlubWF4KDAsIDFmcik7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLm1lc3NhZ2luZy1odWItcmFpbCB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5tZXNzYWdpbmctaHViLXJhaWwtaGVhZGVyIHtcbiAgbWluLWhlaWdodDogNTVweDtcbiAgcGFkZGluZzogMC42NXJlbSAwLjZyZW0gMC40cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5tZXNzYWdpbmctaHViLXJhaWwtaGVhZGVyIGgyIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1yYWlsLWhlYWRlciBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDAuMXJlbTtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1pY29uIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm1lc3NhZ2luZy1odWItaWNvbi5pcy1hY3RpdmUsXG4ubWVzc2FnaW5nLWh1Yi1pY29uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDklLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1uZXctbWVudSB7XG4gIHdpZHRoOiAyNTVweDtcbn1cblxuLm1lc3NhZ2luZy1odWItc2VhcmNoIHtcbiAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjQ1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1zZWFyY2ggaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNjdyZW07XG59XG5cbi5tZXNzYWdpbmctaHViLWZpbHRlcnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuMTVyZW07XG4gIHBhZGRpbmc6IDAgMXJlbSAwLjQ1cmVtIDAuNXJlbTtcbiAgc2Nyb2xsLXBhZGRpbmctaW5saW5lOiAwLjVyZW0gMXJlbTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1maWx0ZXJzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tZXNzYWdpbmctaHViLWZpbHRlcnMgYnV0dG9uIHtcbiAgcGFkZGluZzogMC4yMnJlbSAwLjM1cmVtO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTVyZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZXNzYWdpbmctaHViLWZpbHRlcnMgYnV0dG9uLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1zaG9ydGN1dCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjBweCBtaW5tYXgoMCwgMWZyKSAxMnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG4gIG1hcmdpbjogMCAwLjRyZW0gMC40cmVtO1xuICBwYWRkaW5nOiAwLjM4cmVtIDAuNHJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3Rvcnktc2hvcnRjdXQ6aG92ZXIsXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1zaG9ydGN1dC5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgOCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LXNob3J0Y3V0ID4gaTpsYXN0LWNoaWxkIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41NXJlbTtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3Rvcnktc2hvcnRjdXQgPiBpOmZpcnN0LWNoaWxkLFxuLm1lc3NhZ2luZy1odWItc2VhcmNoID4gaSxcbi5tZXNzYWdpbmctZGlyZWN0b3J5LXNlYXJjaCA+IGkge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWxpc3Qge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLWhlaWdodDogMDtcbiAgcGFkZGluZzogMCAwLjM1cmVtIDAuNXJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24taXRlbSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzBweCBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNDVyZW07XG4gIHBhZGRpbmc6IDAuNDJyZW0gMC4zNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24taXRlbTpob3Zlcixcbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWl0ZW0uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDklLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWF2YXRhciB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEyJSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1hdmF0YXIuaXMtZGlyZWN0IHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1jb3B5IHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1jb3B5IHN0cm9uZyxcbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWNvcHkgc21hbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWNvcHkgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xuICBmb250LXdlaWdodDogNjUwO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1jb3B5IHNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMC4wOHJlbTtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41N3JlbTtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24taXRlbS5oYXMtdW5yZWFkIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbi5tZXNzYWdpbmctdW5yZWFkLWJhZGdlIHtcbiAgbWluLXdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBib3JkZXItcmFkaXVzOiA5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjUzcmVtO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi10aHJlYWQge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtaGVhZGVyIHtcbiAgbWluLWhlaWdodDogNTVweDtcbiAgcGFkZGluZzogMC41NXJlbSAwLjdyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1oZWFkZXIgaDMge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtaGVhZGVyIHAge1xuICBtYXJnaW46IDAuMXJlbSAwIDA7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTlyZW07XG59XG5cbi5tZXNzYWdpbmctcGlubmVkLXBhbmVsIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctcGlubmVkLXBhbmVsIHN1bW1hcnkge1xuICBwYWRkaW5nOiAwLjM4cmVtIDAuNjVyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNnJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ubWVzc2FnaW5nLXBpbm5lZC1wYW5lbCBzdW1tYXJ5IGkge1xuICBtYXJnaW4tcmlnaHQ6IDAuM3JlbTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLXBpbm5lZC1wYW5lbCA+IGRpdiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4ycmVtO1xuICBwYWRkaW5nOiAwIDAuNXJlbSAwLjQ1cmVtO1xufVxuXG4ubWVzc2FnaW5nLXBpbm5lZC1wYW5lbCA+IGRpdiBidXR0b24ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gIGdhcDogMC40cmVtO1xuICBwYWRkaW5nOiAwLjNyZW0gMC40cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAwLjU4cmVtO1xufVxuXG4ubWVzc2FnaW5nLXBpbm5lZC1wYW5lbCA+IGRpdiBidXR0b24gc3BhbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtbWVzc2FnZXMge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMC40cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjY1cmVtO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UuaXMtb3duIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtYXZhdGFyIHtcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogMjVweDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tbmF2LXRleHQpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1hdmF0YXIgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1tYWluIHtcbiAgbWF4LXdpZHRoOiA3OCU7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLW1ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xNXJlbTtcbiAgZm9udC1zaXplOiAwLjU2cmVtO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtbWV0YSB0aW1lIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS5pcy1vd24gLm1lc3NhZ2luZy1tZXNzYWdlLW1ldGEge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtYnViYmxlIHtcbiAgcGFkZGluZzogMC40OHJlbSAwLjU4cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBsaW5lLWhlaWdodDogMS40MjtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS5pcy1vd24gLm1lc3NhZ2luZy1tZXNzYWdlLWJ1YmJsZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA4JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMjglLCB2YXIoLS1tc2ctYm9yZGVyKSk7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1idWJibGUgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1lc3NhZ2luZy1yZXBseS1yZWZlcmVuY2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xuICBwYWRkaW5nOiAwLjNyZW0gMC40cmVtO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA2JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1lc3NhZ2luZy1yZXBseS1yZWZlcmVuY2Ugc3Ryb25nLFxuLm1lc3NhZ2luZy1yZXBseS1yZWZlcmVuY2Ugc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuNTdyZW07XG59XG5cbi5tZXNzYWdpbmctcmVwbHktcmVmZXJlbmNlIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjA4cmVtO1xuICBtYXJnaW4tdG9wOiAwLjE1cmVtO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZTpob3ZlciAubWVzc2FnaW5nLW1lc3NhZ2UtYWN0aW9ucyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS5pcy1vd24gLm1lc3NhZ2luZy1tZXNzYWdlLWFjdGlvbnMge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtYWN0aW9ucyBidXR0b24ge1xuICB3aWR0aDogMjNweDtcbiAgaGVpZ2h0OiAyM3B4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNnJlbTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLWFjdGlvbnMgYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgOCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLmlzLWhpZ2hsaWdodGVkIC5tZXNzYWdpbmctbWVzc2FnZS1idWJibGUge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1maWxlcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4yNXJlbTtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xuICBwYWRkaW5nLXRvcDogMC40cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1maWxlcyBhIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLWVtcHR5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMC4yNXJlbTtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1lbXB0eSBpIHtcbiAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtZW1wdHkgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3Rvcnkge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgcGFkZGluZzogMC43cmVtO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1zZWFyY2gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgcGFkZGluZzogMC40NXJlbSAwLjU1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3Rvcnktc2VhcmNoIGlucHV0IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LWxpc3Qge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuM3JlbTtcbiAgbWFyZ2luLXRvcDogMC42NXJlbTtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3RvcnktcGVyc29uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzRweCBtaW5tYXgoMCwgMWZyKSBhdXRvIDE4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41NXJlbTtcbiAgcGFkZGluZzogMC40OHJlbSAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1wZXJzb246aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLW1zZy1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LWF2YXRhciB7XG4gIHdpZHRoOiAzNHB4O1xuICBoZWlnaHQ6IDM0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE0JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1hdmF0YXIgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LWNvcHkge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LWNvcHkgc3Ryb25nLFxuLm1lc3NhZ2luZy1kaXJlY3RvcnktY29weSBzbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3RvcnktY29weSBzdHJvbmcge1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3RvcnktY29weSBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNThyZW07XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LWFjdGl2aXR5IHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41NXJlbTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3RvcnktYWN0aXZpdHkuaXMtb25saW5lOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogNnB4O1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm90aWZpY2F0aW9uLXN1Y2Nlc3MpO1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1wZXJzb24gPiBpIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xufVxuXG4ubWVzc2FnaW5nLXR5cGluZyB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNnJlbTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtY29tcG9zZXIge1xuICBwYWRkaW5nOiAwLjU1cmVtIDAuNjVyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbn1cblxuLm1lc3NhZ2luZy1yZXBseS1jb250ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICBwYWRkaW5nOiAwLjNyZW0gMC40cmVtO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNyUsIHRyYW5zcGFyZW50KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjU4cmVtO1xufVxuXG4ubWVzc2FnaW5nLXJlcGx5LWNvbnRleHQgYnV0dG9uIHtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLWNvbXBvc2VyIGZvcm0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGdhcDogMC4zcmVtO1xuICBwYWRkaW5nOiAwLjI4cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLWNvbXBvc2VyIHRleHRhcmVhIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMzBweDtcbiAgbWF4LWhlaWdodDogMTEwcHg7XG4gIHBhZGRpbmc6IDAuNHJlbTtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuICByZXNpemU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLm1lc3NhZ2luZy1hdHRhY2gtYnV0dG9uLFxuLm1lc3NhZ2luZy1zZW5kLWJ1dHRvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1lc3NhZ2luZy1hdHRhY2gtYnV0dG9uIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4ubWVzc2FnaW5nLXNlbmQtYnV0dG9uIHtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLW1lbnRpb24tbWVudSB7XG4gIG1heC1oZWlnaHQ6IDI0MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ubWVzc2FnaW5nLW1lbnRpb24tbWVudSAuZHJvcGRvd24taXRlbSB7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gIC5tZXNzYWdpbmctaHViLXNoZWxsIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDExMnB4IG1pbm1heCgwLCAxZnIpO1xuICB9XG4gIC5tZXNzYWdpbmctaHViLXJhaWwtaGVhZGVyIHNwYW4sXG4gIC5tZXNzYWdpbmctY29udmVyc2F0aW9uLWNvcHkgc21hbGwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm1lc3NhZ2luZy1jb252ZXJzYXRpb24taXRlbSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNnB4IG1pbm1heCgwLCAxZnIpO1xuICB9XG4gIC5tZXNzYWdpbmctY29udmVyc2F0aW9uLWF2YXRhciB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICB9XG4gIC5tZXNzYWdpbmctdW5yZWFkLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tZXNzYWdpbmctbWVzc2FnZS1tYWluIHtcbiAgICBtYXgtd2lkdGg6IDg4JTtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBTbGFjay1sZXZlbCBtZXNzYWdpbmcgb3ZlcmhhdWw6IGZ1bGwgcGFnZSwgcHJlc2VuY2UsIHJlYWN0aW9ucywgICAgICovXG4vKiB0aHJlYWRzLCBzYXZlZC9waW5zL2ZpbGVzIHBhbmVsLCBQZXJpY2xlcywgc2VhcmNoLCBzY2hlZHVsaW5nLiAgICAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tZXNzYWdpbmctaHViLWNvbnRyb2xsZXIuaXMtZnVsbC1wYWdlIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDk4cHgpO1xuICBtaW4taGVpZ2h0OiA0ODBweDtcbiAgbWFyZ2luOiAwLjg1cmVtIDFyZW0gMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlciwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSAxNCUsIHRyYW5zcGFyZW50KSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1jb250cm9sbGVyIHtcbiAgLS1tc2ctYm9yZGVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpIDE0JSwgdHJhbnNwYXJlbnQpO1xuICAtLW1zZy1tdXRlZDogdmFyKC0tbXV0ZWQtdGV4dCwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSA2OCUsIHRyYW5zcGFyZW50KSk7XG59XG5cbi5pcy1mdWxsLXBhZ2UgLm1lc3NhZ2luZy1odWItc2hlbGwge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI4MHB4IG1pbm1heCgwLCAxZnIpO1xufVxuXG4uaXMtZnVsbC1wYWdlIC5tZXNzYWdpbmctY29udmVyc2F0aW9uLWNvcHkgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAwLjc0cmVtO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1yb290IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1yb290IC5tZXNzYWdpbmctaHViLXRocmVhZCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tZXNzYWdpbmctaHViLXNoZWxsID4gLm1lc3NhZ2luZy10aHJlYWQtcm9vdCB7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5tZXNzYWdpbmctaHViLXJhaWwtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zcmVtO1xufVxuXG4vKiBTZXR0aW5ncyBkcm9wZG93bjogY29tcGFjdCwgdGhlbWVkLCBhbmQgaW1tdW5lIHRvIHRoZSBnbG9iYWwgYnV0dG9uLTEzXG4gICBzaXppbmcgKG1kYiBsb2FkcyBhZnRlciBhcHBsaWNhdGlvbi5jc3MsIGhlbmNlIHRoZSAhaW1wb3J0YW50cykuICovXG4ubWVzc2FnaW5nLXNldHRpbmdzLW1lbnUge1xuICB3aWR0aDogMjY1cHg7XG4gIHBhZGRpbmc6IDAuNTVyZW0gMC43NXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC4yMik7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbn1cblxuLm1lc3NhZ2luZy1zZXR0aW5ncy1zZWN0aW9uIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjRyZW07XG4gIHBhZGRpbmc6IDAuNDVyZW0gMDtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xuICBqdXN0aWZ5LWl0ZW1zOiBzdGFydDtcbn1cblxuLm1lc3NhZ2luZy1zZXR0aW5ncy1zZWN0aW9uICsgLm1lc3NhZ2luZy1zZXR0aW5ncy1zZWN0aW9uIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xufVxuXG4ubWVzc2FnaW5nLXNldHRpbmdzLXNlY3Rpb24gPiBzdHJvbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM3JlbTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLXNldHRpbmdzLXNlY3Rpb24gPiBzdHJvbmcgaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi5tZXNzYWdpbmctc2V0dGluZ3Mtc2VjdGlvbiBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLm1lc3NhZ2luZy1zZXR0aW5ncy1tZW51IC5idXR0b24tMTMsXG4ubWVzc2FnaW5nLXNldHRpbmdzLW1lbnUgLmJ1dHRvbi0xMy1vdXRsaW5lIHtcbiAgcGFkZGluZzogMC4yOHJlbSAwLjZyZW0gIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjU4cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHggIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjNyZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIGxldHRlci1zcGFjaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIGRpc3BsYXkgIWltcG9ydGFudCBhYm92ZSB3b3VsZCBkZWZlYXQgdGhlIGhpZGRlbiBhdHRyaWJ1dGUgKHdlYiBwdXNoXG4gICBlbmFibGUvZGlzYWJsZSB0b2dnbGUpLCBzbyByZXN0b3JlIGl0IGV4cGxpY2l0bHkuICovXG4ubWVzc2FnaW5nLXNldHRpbmdzLW1lbnUgLmJ1dHRvbi0xM1toaWRkZW5dLFxuLm1lc3NhZ2luZy1zZXR0aW5ncy1tZW51IC5idXR0b24tMTMtb3V0bGluZVtoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ubWVzc2FnaW5nLXNldHRpbmdzLW1lbnUgLmJ1dHRvbi0xMyBpLFxuLm1lc3NhZ2luZy1zZXR0aW5ncy1tZW51IC5idXR0b24tMTMtb3V0bGluZSBpIHtcbiAgZm9udC1zaXplOiAwLjU4cmVtO1xufVxuXG4ubWVzc2FnaW5nLXNldHRpbmdzID4gLm1lc3NhZ2luZy1odWItaWNvbjpmb2N1cyxcbi5tZXNzYWdpbmctc2V0dGluZ3MgPiAubWVzc2FnaW5nLWh1Yi1pY29uLnNob3cge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgOSUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLXN0YXR1cy1pbmRpY2F0b3Ige1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIG1heC13aWR0aDogMTUwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWVzc2FnaW5nLWRuZC1pbmRpY2F0b3Ige1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXdhcm5pbmcsICNkOTc3MDYpO1xuICBmb250LXNpemU6IDAuNThyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5tZXNzYWdpbmctc3RhdHVzLXBhbmVsIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjM1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC40cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctc3RhdHVzLXF1aWNrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjJyZW07XG59XG5cbi5tZXNzYWdpbmctc3RhdHVzLXF1aWNrIGJ1dHRvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4ubWVzc2FnaW5nLXN0YXR1cy1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjNyZW07XG59XG5cbi5tZXNzYWdpbmctZG5kLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC4yNXJlbTtcbn1cblxuLm1lc3NhZ2luZy1kbmQtYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2Utc2VhcmNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWVzc2FnaW5nLXNlYXJjaC1yZXN1bHRzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiA0MDtcbiAgbWF4LWhlaWdodDogMzIwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjE2KTtcbn1cblxuLm1lc3NhZ2luZy1zZWFyY2gtcmVzdWx0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjFyZW07XG4gIHBhZGRpbmc6IDAuNDVyZW0gMC41NXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xufVxuXG4ubWVzc2FnaW5nLXNlYXJjaC1yZXN1bHQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgOCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1lc3NhZ2luZy1zZWFyY2gtcmVzdWx0IHN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xufVxuXG4ubWVzc2FnaW5nLXNlYXJjaC1yZXN1bHQgc3BhbiB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lc3NhZ2luZy1zZWFyY2gtcmVzdWx0IHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41MnJlbTtcbn1cblxuLm1lc3NhZ2luZy1zZWFyY2gtZW1wdHkge1xuICBwYWRkaW5nOiAwLjZyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNjJyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4yNXJlbTtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1ldGEgdGltZSB7XG4gIGZvbnQtc2l6ZTogMC41MnJlbTtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tbWV0YSBpIHtcbiAgZm9udC1zaXplOiAwLjU1cmVtO1xufVxuXG4ubWVzc2FnaW5nLWRvY2stb3BlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWl0ZW06aG92ZXIgLm1lc3NhZ2luZy1kb2NrLW9wZW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5tZXNzYWdpbmctZG9jay1vcGVuOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1pdGVtLmlzLW11dGVkIC5tZXNzYWdpbmctY29udmVyc2F0aW9uLWNvcHkgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWF2YXRhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWF2YXRhciBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbn1cblxuLm1lc3NhZ2luZy1wcmVzZW5jZS1kb3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtMnB4O1xuICBib3R0b206IC0ycHg7XG4gIHdpZHRoOiA5cHg7XG4gIGhlaWdodDogOXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSAyNSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1lc3NhZ2luZy1wcmVzZW5jZS1kb3QuaXMtb25saW5lIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm90aWZpY2F0aW9uLXN1Y2Nlc3MsICMxNmEzNGEpO1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1hdmF0YXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tZXNzYWdpbmctbmV3LWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMC42cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctbmV3LWdyb3VwIHN1bW1hcnkge1xuICBwYWRkaW5nOiAwLjVyZW0gMC42cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMC42NnJlbTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1uZXctZ3JvdXAgc3VtbWFyeSBpIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjNyZW07XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1uZXctZ3JvdXAgZm9ybSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC40cmVtO1xuICBwYWRkaW5nOiAwIDAuNnJlbSAwLjZyZW07XG59XG5cbi5tZXNzYWdpbmctbmV3LWdyb3VwLW1lbWJlcnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxNDBweCwgMWZyKSk7XG4gIGdhcDogMC4ycmVtO1xuICBtYXgtaGVpZ2h0OiAxODBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm1lc3NhZ2luZy1uZXctZ3JvdXAtbWVtYmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBwYWRkaW5nOiAwLjJyZW0gMC4zcmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMC42NHJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWVzc2FnaW5nLW5ldy1ncm91cC1tZW1iZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNyUsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1lc3NhZ2luZy1pbnZpdGUtbWVtYmVycyBmb3JtIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjRyZW07XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWVzc2FnaW5nLWludml0ZS1tZW1iZXItbGlzdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4xNXJlbTtcbiAgbWF4LWhlaWdodDogMTYwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tZXNzYWdpbmctaW52aXRlLW1lbWJlcnMgLmJ1dHRvbi0xMyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1oZWFkZXItYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zcmVtO1xufVxuXG4ubWVzc2FnaW5nLXRvcGljIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1lbnUge1xuICB3aWR0aDogMjg1cHg7XG4gIHBhZGRpbmc6IDAuNTVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tbWVudSAubWVzc2FnaW5nLXNldHRpbmdzLXNlY3Rpb24ge1xuICBnYXA6IDAuMnJlbTtcbiAgcGFkZGluZzogMC4ycmVtIDAgMC40NXJlbTtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tbWVudSAubWVzc2FnaW5nLXNldHRpbmdzLXNlY3Rpb24gPiBzdHJvbmcge1xuICBwYWRkaW5nOiAwIDAuNHJlbSAwLjJyZW07XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1lbnUgLmRyb3Bkb3duLWl0ZW0ge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtc2l6ZTogMC42NHJlbTtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tbWVudSAubWVzc2FnaW5nLW1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMThweCBtaW5tYXgoMCwgMWZyKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjQ1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC40MnJlbSAwLjQ1cmVtICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1lbnUgLm1lc3NhZ2luZy1tZW51LWl0ZW0gPiBpIHtcbiAgd2lkdGg6IDE4cHg7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1lbnUgLm1lc3NhZ2luZy1tZW51LWl0ZW0gPiBzcGFuIHtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuMDhyZW07XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1lbnUgLm1lc3NhZ2luZy1tZW51LWl0ZW0gc3Ryb25nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC42NHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1tZW51IC5tZXNzYWdpbmctbWVudS1pdGVtIHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuNTRyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1tZW51IC5tZXNzYWdpbmctbWVudS1pdGVtLmlzLWFjdGl2ZSA+IGkge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1lbnUgLmRyb3Bkb3duLWl0ZW0uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1lbnUgZm9ybSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLm1lc3NhZ2luZy1jYXRjaC11cCB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1jYXRjaC11cC1iYW5uZXIge1xuICBtYXJnaW46IDAuNXJlbSAwLjY1cmVtIDA7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjZyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAzNSUsIHZhcigtLW1zZy1ib3JkZXIpKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNyUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGZvbnQtc2l6ZTogMC42NnJlbTtcbn1cblxuLm1lc3NhZ2luZy1jYXRjaC11cC1oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG59XG5cbi5tZXNzYWdpbmctY2F0Y2gtdXAtaGVhZCBpIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLWNhdGNoLXVwLWhlYWQgYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLWNhdGNoLXVwLWJvZHkge1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ubWVzc2FnaW5nLXVucmVhZC1kaXZpZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1hcmdpbjogMC41cmVtIDA7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyLCAjZGMyNjI2KTtcbiAgZm9udC1zaXplOiAwLjU1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xufVxuXG4ubWVzc2FnaW5nLXVucmVhZC1kaXZpZGVyOjpiZWZvcmUsIC5tZXNzYWdpbmctdW5yZWFkLWRpdmlkZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZmxleDogMSAxIGF1dG87XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlciwgI2RjMjYyNikgNDUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdpbmctbmV3LXBpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogOTJweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHotaW5kZXg6IDg7XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjdyZW07XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQpO1xuICBmb250LXNpemU6IDAuNnJlbTtcbiAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMjIpO1xufVxuXG4ubWVzc2FnaW5nLWJvdC1iYWRnZSB7XG4gIHBhZGRpbmc6IDAuMDVyZW0gMC4zcmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNSUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLm1lc3NhZ2luZy1lZGl0ZWQtYmFkZ2Uge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjUzcmVtO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWVzc2FnaW5nLWVkaXRlZC1iYWRnZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5tZXNzYWdpbmctZm9yd2FyZGVkIHtcbiAgbWFyZ2luLWJvdHRvbTogMC4zNXJlbTtcbiAgcGFkZGluZzogMC4zcmVtIDAuNDVyZW07XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA2JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ubWVzc2FnaW5nLWZvcndhcmRlZCBzbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjU0cmVtO1xufVxuXG4ubWVzc2FnaW5nLWZvcndhcmRlZCBibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwLjE1cmVtIDAgMDtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtY29udGVudCAubWVzc2FnaW5nLW1lbnRpb24ge1xuICBwYWRkaW5nOiAwLjA0cmVtIDAuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE0JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1jb250ZW50IHByZSB7XG4gIG1hcmdpbjogMC4zcmVtIDA7XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA4JSwgdHJhbnNwYXJlbnQpO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1jb250ZW50IGNvZGUge1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1jb250ZW50IHVsLCAubWVzc2FnaW5nLW1lc3NhZ2UtY29udGVudCBvbCB7XG4gIG1hcmdpbjogMC4ycmVtIDA7XG4gIHBhZGRpbmctbGVmdDogMS4xcmVtO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtY29udGVudCBibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwLjJyZW0gMDtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLWZpbGUtaW1hZ2UgaW1nIHtcbiAgbWF4LXdpZHRoOiAyNDBweDtcbiAgbWF4LWhlaWdodDogMTgwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tZXNzYWdpbmctZmlsZS1saW5rIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zcmVtO1xufVxuXG4ubWVzc2FnaW5nLWZpbGUtbGluayBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtZmlsZXMgYXVkaW8ge1xuICBtYXgtd2lkdGg6IDI0MHB4O1xuICBoZWlnaHQ6IDMycHg7XG59XG5cbi5tZXNzYWdpbmctbGluay1wcmV2aWV3IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICBnYXA6IDAuNXJlbTtcbiAgbWFyZ2luLXRvcDogMC40NXJlbTtcbiAgcGFkZGluZzogMC40cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubWVzc2FnaW5nLWxpbmstcHJldmlldzpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDQwJSwgdmFyKC0tbXNnLWJvcmRlcikpO1xufVxuXG4ubWVzc2FnaW5nLWxpbmstcHJldmlldyBpbWcge1xuICB3aWR0aDogNjRweDtcbiAgaGVpZ2h0OiA2NHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4ubWVzc2FnaW5nLWxpbmstcHJldmlldy1jb3B5IHtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuMXJlbTtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xufVxuXG4ubWVzc2FnaW5nLWxpbmstcHJldmlldy1jb3B5IHN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZXNzYWdpbmctbGluay1wcmV2aWV3LWNvcHkgc3BhbiB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTdyZW07XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZXNzYWdpbmctbGluay1wcmV2aWV3LWNvcHkgc21hbGwge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG59XG5cbi5tZXNzYWdpbmctcmVhY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuMnJlbTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLmlzLW93biAubWVzc2FnaW5nLXJlYWN0aW9ucyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5tZXNzYWdpbmctcmVhY3Rpb24tY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMnJlbTtcbiAgcGFkZGluZzogMC4xcmVtIDAuMzVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNnJlbTtcbn1cblxuLm1lc3NhZ2luZy1yZWFjdGlvbi1jaGlwIHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41M3JlbTtcbn1cblxuLm1lc3NhZ2luZy1yZWFjdGlvbi1jaGlwLmlzLW1pbmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdpbmctcmVhY3Rpb24tY2hpcDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjNyZW07XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gIHBhZGRpbmc6IDAuMTVyZW0gMC40NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjU4cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1jaGlwOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDglLCB0cmFuc3BhcmVudCk7XG59XG5cbi8qIFRoZSBwZXItbWVzc2FnZSBcIm1vcmVcIiBtZW51OiB0aGVtZWQgbGlrZSB0aGUgcmVzdCBvZiB0aGUgaHViLCBub3RcbiAgIEJvb3RzdHJhcC9NREIgZGVmYXVsdHMuICovXG4ubWVzc2FnaW5nLW1vcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLWFjdGlvbnMgLm1lc3NhZ2luZy1tb3JlID4gYnV0dG9uIHtcbiAgd2lkdGg6IDIzcHg7XG4gIGhlaWdodDogMjNweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1hY3Rpb25zIC5tZXNzYWdpbmctbW9yZSA+IGJ1dHRvbjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDglLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdpbmctbW9yZSA+IGJ1dHRvbjo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWVzc2FnaW5nLW1vcmUgLmRyb3Bkb3duLW1lbnUge1xuICBtaW4td2lkdGg6IDE3NXB4O1xuICBwYWRkaW5nOiAwLjNyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDI2cHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cblxuLm1lc3NhZ2luZy1tb3JlIC5kcm9wZG93bi1pdGVtIHtcbiAgcGFkZGluZzogMC4zMnJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjYzcmVtO1xufVxuXG4ubWVzc2FnaW5nLW1vcmUgLmRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgOSUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1tb3JlIC5kcm9wZG93bi1pdGVtIGkge1xuICB3aWR0aDogMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjNyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLW1vcmUgLmRyb3Bkb3duLWl0ZW06aG92ZXIgaSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4ubWVzc2FnaW5nLWRhbmdlciB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyLCAjZGMyNjI2KSAhaW1wb3J0YW50O1xufVxuXG4ubWVzc2FnaW5nLXNlZW4tbWFya2VyIHtcbiAgbWFyZ2luOiAtMC4zNXJlbSAwIDAuNTVyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTJyZW07XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1wYW5lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAxMjtcbiAgd2lkdGg6IG1pbigzNDBweCwgOTIlKTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3gtc2hhZG93OiAtOHB4IDAgMjJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1wYW5lbCBoZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuNTVyZW0gMC42NXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtcGFuZWwtYm9keSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAwLjZyZW07XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS5pbi10aHJlYWQtcGFuZWwgLm1lc3NhZ2luZy1tZXNzYWdlLWFjdGlvbnMge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UuaW4tdGhyZWFkLXBhbmVsIC5tZXNzYWdpbmctbWVzc2FnZS1tYWluIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4ubWVzc2FnaW5nLW1vZGFsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMzA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzUpO1xufVxuXG4ubWVzc2FnaW5nLW1vZGFsLWNhcmQge1xuICB3aWR0aDogbWluKDQyMHB4LCA5MiUpO1xuICBtYXgtaGVpZ2h0OiA4NCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAxOHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4ubWVzc2FnaW5nLW1vZGFsLWNhcmQgaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwLjZyZW0gMC43cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbn1cblxuLm1lc3NhZ2luZy1tb2RhbC1ib2R5IHtcbiAgcGFkZGluZzogMC43cmVtO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBmb250LXNpemU6IDAuNjZyZW07XG59XG5cbi5tZXNzYWdpbmctbW9kYWwtZm9ybSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC41cmVtO1xufVxuXG4ubWVzc2FnaW5nLW1vZGFsLWZvcm0gdGV4dGFyZWEge1xuICBtaW4taGVpZ2h0OiA2MHB4O1xufVxuXG4ubWVzc2FnaW5nLWV4dHJhY3Qtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICBnYXA6IDAuNXJlbTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBwYWRkaW5nOiAwLjRyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1lc3NhZ2luZy1leHRyYWN0LXJvdyBzcGFuIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjFyZW07XG59XG5cbi5tZXNzYWdpbmctZXh0cmFjdC1yb3cgc21hbGwge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy1lZGl0LWhpc3Rvcnkge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLm1lc3NhZ2luZy1lZGl0LWhpc3RvcnktZW50cnkge1xuICBwYWRkaW5nOiAwLjRyZW0gMC41cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ubWVzc2FnaW5nLWVkaXQtaGlzdG9yeS1lbnRyeSBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLWVkaXQtaGlzdG9yeS1lbnRyeSBwIHtcbiAgbWFyZ2luOiAwLjJyZW0gMCAwO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG5cbi5tZXNzYWdpbmctZW1vamktcGFuZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNzhweDtcbiAgcmlnaHQ6IDEycHg7XG4gIHotaW5kZXg6IDI1O1xuICB3aWR0aDogMjY1cHg7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3gtc2hhZG93OiAwIDE0cHggMzBweCByZ2JhKDAsIDAsIDAsIDAuMjIpO1xufVxuXG4ubWVzc2FnaW5nLWVtb2ppLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCAxZnIpO1xuICBnYXA6IDAuMXJlbTtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG4gIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm1lc3NhZ2luZy1lbW9qaS1vcHRpb24ge1xuICBwYWRkaW5nOiAwLjE1cmVtIDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4ubWVzc2FnaW5nLWVtb2ppLW9wdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxMiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1lc3NhZ2luZy1lbW9qaS1jYXRlZ29yeS1sYWJlbCB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBtYXJnaW4tdG9wOiAwLjNyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG59XG5cbi5tZXNzYWdpbmctbWVudGlvbi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDc4cHg7XG4gIGxlZnQ6IDEycHg7XG4gIHotaW5kZXg6IDI2O1xuICBtaW4td2lkdGg6IDE5MHB4O1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgZGlzcGxheTogZ3JpZDtcbn1cblxuLm1lc3NhZ2luZy1tZW50aW9uLW9wdGlvbiB7XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC41cmVtO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMC42NnJlbTtcbn1cblxuLm1lc3NhZ2luZy1tZW50aW9uLW9wdGlvbi5pcy1hY3RpdmUsIC5tZXNzYWdpbmctbWVudGlvbi1vcHRpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1zY2hlZHVsZWQtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjNyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMzVyZW07XG59XG5cbi5tZXNzYWdpbmctc2NoZWR1bGVkLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBwYWRkaW5nOiAwLjJyZW0gMC40NXJlbTtcbiAgYm9yZGVyOiAxcHggZGFzaGVkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA1MCUsIHZhcigtLW1zZy1ib3JkZXIpKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjU3cmVtO1xufVxuXG4ubWVzc2FnaW5nLXNjaGVkdWxlZC1jaGlwIGJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWVzc2FnaW5nLXNjaGVkdWxlLXBhbmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG4gIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgcGFkZGluZzogMC40cmVtIDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG5cbi5tZXNzYWdpbmctc2NoZWR1bGUtcGFuZWwgPiBpIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1zY2hlZHVsZS1wYW5lbCBpbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1zY2hlZHVsZS1wYW5lbCAubWVzc2FnaW5nLWh1Yi1pY29uIHtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi5tZXNzYWdpbmctc2NoZWR1bGUtcGFuZWwgLm1lc3NhZ2luZy1odWItaWNvbi5pcy1wcmltYXJ5IHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctZmlsZS1jaGlwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjNyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbn1cblxuLm1lc3NhZ2luZy1maWxlLWNoaXAge1xuICBwYWRkaW5nOiAwLjE1cmVtIDAuNDVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTdyZW07XG59XG5cbi5tZXNzYWdpbmctdm9pY2UtY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICBwYWRkaW5nOiAwLjJyZW0gMC40NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIsICNkYzI2MjYpIDQ1JSwgdmFyKC0tbXNnLWJvcmRlcikpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtc2l6ZTogMC41OHJlbTtcbn1cblxuLm1lc3NhZ2luZy12b2ljZS1jaGlwIGJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWVzc2FnaW5nLWF0dGFjaC1idXR0b24uaXMtcmVjb3JkaW5nIHtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIsICNkYzI2MjYpO1xuICBhbmltYXRpb246IG1lc3NhZ2luZy1wdWxzZSAxLjJzIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIG1lc3NhZ2luZy1wdWxzZSB7XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zNTtcbiAgfVxufVxuLm1lc3NhZ2luZy1hc3Npc3QtYnV0dG9uIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLWVkaXQtYXJlYSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4zNXJlbTtcbiAgbWFyZ2luLXRvcDogMC4zcmVtO1xufVxuXG4ubWVzc2FnaW5nLWVkaXQtYXJlYSB0ZXh0YXJlYSB7XG4gIG1pbi1oZWlnaHQ6IDU2cHg7XG4gIHBhZGRpbmc6IDAuNHJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNjhyZW07XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscyB7XG4gIHdpZHRoOiAzMDBweDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLyogU2FtZSBmbGF0IHVuZGVybGluZSB0YWJzIGFzIHRoZSBpbmJveCBvZmYtY2FudmFzIChhY3Rpdml0eS10YWJzKSwgbm90XG4gICBCb290c3RyYXAgcGlsbCBkZWZhdWx0cy4gKi9cbi8qIE9uZSByb3cgYWx3YXlzOiBCb290c3RyYXAgc2V0cyAubmF2IHsgZmxleC13cmFwOiB3cmFwIH0gYW5kIG1kYi5taW4uY3NzXG4gICBsb2FkcyBhZnRlciBhcHBsaWNhdGlvbi5jc3MsIHNvIG5vd3JhcCBuZWVkcyAhaW1wb3J0YW50LiBJdGVtcyBzaGFyZSB0aGUgcm93XG4gICBlcXVhbGx5IGluc3RlYWQgb2Ygd3JhcHBpbmcuICovXG4ubWVzc2FnaW5nLWRldGFpbHMtdGFicyB7XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjRyZW0gMDtcbiAgZ2FwOiAwLjFyZW07XG4gIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbn1cblxuLm1lc3NhZ2luZy1kZXRhaWxzLXRhYnMgLm5hdi1pdGVtIHtcbiAgZmxleDogMSAxIDAgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtdGFicyAubmF2LWxpbmsge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMjhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjJyZW0gIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC41OHJlbSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwICFpbXBvcnRhbnQ7XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy10YWJzIC5uYXYtbGluayBpIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjU4cmVtO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtdGFicyAubmF2LWxpbms6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgNTUlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cblxuLm1lc3NhZ2luZy1kZXRhaWxzLXRhYnMgLm5hdi1saW5rLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtY29udGVudCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAwLjZyZW07XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy10b3BpYyBwIHtcbiAgbWFyZ2luOiAwLjJyZW0gMCAwO1xuICBmb250LXNpemU6IDAuNjRyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtdG9waWMsIC5tZXNzYWdpbmctZGV0YWlscy1jb250ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMC42cmVtO1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy1tZW1iZXJzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjM1cmVtO1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy1tZW1iZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI4cHggbWlubWF4KDAsIDFmcikgYXV0byBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNDVyZW07XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy1tZW1iZXIgLm1lc3NhZ2luZy1kaXJlY3RvcnktYXZhdGFyIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtbWVtYmVyLWNvcHkge1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGdyaWQ7XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy1tZW1iZXItY29weSBzdHJvbmcge1xuICBmb250LXNpemU6IDAuNjNyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWVzc2FnaW5nLW93bmVyLWJhZGdlIHtcbiAgcGFkZGluZzogMC4wNXJlbSAwLjNyZW07XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE0JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ubWVzc2FnaW5nLWFkZC1tZW1iZXJzIHN1bW1hcnkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi5tZXNzYWdpbmctYWRkLW1lbWJlcnMgZm9ybSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4yNXJlbTtcbiAgbWFyZ2luLXRvcDogMC4zNXJlbTtcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy1pdGVtIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjFyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjRyZW0gMC41cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy1pdGVtOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNDAlLCB2YXIoLS1tc2ctYm9yZGVyKSk7XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy1pdGVtIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy1pdGVtIHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41MnJlbTtcbn1cblxuLm1lc3NhZ2luZy1kZXRhaWxzLWVtcHR5IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjNyZW07XG4gIHBhZGRpbmc6IDEuMnJlbSAwO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3Rvcnktc3RhdHVzIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41NHJlbTtcbn1cblxuLm5vdGlmaWNhdGlvbi10b2FzdCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDE2cHg7XG4gIGJvdHRvbTogNzZweDtcbiAgei1pbmRleDogMTA4MDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1heC13aWR0aDogMzIwcHg7XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjc1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpIDE0JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgYm94LXNoYWRvdzogMCAxNHB4IDM0cHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbn1cblxuLm5vdGlmaWNhdGlvbi10b2FzdCBidXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uaXMtZW1iZWQtc2hlbGwge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5pcy1lbWJlZC1zaGVsbCAubWVzc2FnaW5nLXRocmVhZC1yb290IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1yb290LmlzLWRvY2sgLm1lc3NhZ2luZy10aHJlYWQtaGVhZGVyIHtcbiAgbWluLWhlaWdodDogMDtcbiAgcGFkZGluZzogMC40cmVtIDAuNTVyZW07XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLXJvb3QuaXMtZG9jayAubWVzc2FnaW5nLXRocmVhZC1oZWFkZXIgaDMge1xuICBmb250LXNpemU6IDAuNjhyZW07XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLXJvb3QuaXMtZG9jayAubWVzc2FnaW5nLXRocmVhZC1tZXNzYWdlcyB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtcm9vdC5pcy1lbWJlZCAubWVzc2FnaW5nLW1lc3NhZ2UtbWFpbiB7XG4gIG1heC13aWR0aDogODYlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLm1lc3NhZ2luZy1kZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4vKiBQZXJpY2xlcyB3b3JraW5nIHN0YXRlOiBwdWxzaW5nIGdsb3cgYXJvdW5kIHRoZSBjb21wb3NlciB3aGlsZSBhXG4gICByZXdyaXRlIHN0cmVhbXMgaW4sIHBsdXMgYSB0cmFuc2llbnQgbm90ZSBmb3IgYXNzaXN0IGVycm9ycy4gKi9cbi5tZXNzYWdpbmctdGhyZWFkLWNvbXBvc2VyIGZvcm0uaXMtYXNzaXN0aW5nIHtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNTUlLCB2YXIoLS1tc2ctYm9yZGVyKSk7XG4gIGFuaW1hdGlvbjogbWVzc2FnaW5nLWFzc2lzdC1nbG93IDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLWNvbXBvc2VyIGZvcm0uaXMtYXNzaXN0aW5nIHRleHRhcmVhIHtcbiAgY2FyZXQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG5Aa2V5ZnJhbWVzIG1lc3NhZ2luZy1hc3Npc3QtZ2xvdyB7XG4gIDAlLCAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG4gIDUwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDE2cHggMnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA0NSUsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuLm1lc3NhZ2luZy1hc3Npc3Qtbm90ZSB7XG4gIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgcGFkZGluZzogMC4zcmVtIDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDQwJSwgdmFyKC0tbXNnLWJvcmRlcikpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA4JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi8qIENoaXAtYmFzZWQgY29tcG9zZXIgKEAgcGVvcGxlLCAjIHByb2plY3RzKSArIHByZW1pdW0gbWVudGlvbiBjaGlwcyBpblxuICAgcmVuZGVyZWQgbWVzc2FnZXMsIHJldXNpbmcgdGhlIGFwcC13aWRlIHBsLWNoaXAgLyBtZW50aW9uLWhpZ2hsaWdodCBsb29rLiAqL1xuLm1lc3NhZ2luZy1jb21wb3Nlci1maWVsZCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1lc3NhZ2luZy1jb21wb3Nlci1lZGl0b3Ige1xuICBtaW4taGVpZ2h0OiAzMHB4O1xuICBtYXgtaGVpZ2h0OiAxODBweDtcbiAgcGFkZGluZzogMC40cmVtO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTU7XG59XG5cbi5tZXNzYWdpbmctY29tcG9zZXItZWRpdG9yOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1jb21wb3Nlci1lZGl0b3I6ZW1wdHk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1jb21wb3Nlci1maWVsZC5pcy1sb2NrZWQgLm1lc3NhZ2luZy1jb21wb3Nlci1lZGl0b3Ige1xuICBvcGFjaXR5OiAwLjc1O1xufVxuXG4vKiBQZXIgdGhlIHRoZW1lIGNvbnRyYWN0IChfc3R5bGVzLmh0bWwuZXJiKTogYWNjZW50cyBhcmUgcmVzdHJhaW5lZFxuICAgY29sb3ItbWl4KCkgdGludHMgb3ZlciB0aGUgY2FyZCBjb2xvdXIsIGFuZCBjb3B5IG9uIHRoZW0gaXMgLS10ZXh0LWNvbG91clxuICAg4oCUIHJlYWRhYmxlIGJ5IGNvbnN0cnVjdGlvbiBvbiBldmVyeSBwYWxldHRlLiBTZWNvbmRhcnkgaXMgdGhlIGFjY2VudC4gKi9cbi5tZXNzYWdpbmctY29tcG9zZXItZmllbGQgLnBsLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAwLjFyZW07XG4gIHBhZGRpbmc6IDAuMDZyZW0gMC4zNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTQlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMzUlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNjUwO1xuICBmb250LXNpemU6IDAuNjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZXNzYWdpbmctY29tcG9zZXItZmllbGQgLnBsLWNoaXAuaXMtcHJvamVjdCB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAyNCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG5cbi5tZXNzYWdpbmctY29tcG9zZXItZmllbGQgLnBsLWNoaXAtbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNDU7XG4gIG1pbi13aWR0aDogMjMwcHg7XG4gIG1heC1oZWlnaHQ6IDI2MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAtMTBweCAyNnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLm1lc3NhZ2luZy1jb21wb3Nlci1maWVsZCAucGwtY2hpcC1tZW51X19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC42cmVtO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC42NnJlbTtcbn1cblxuLm1lc3NhZ2luZy1jb21wb3Nlci1maWVsZCAucGwtY2hpcC1tZW51X19pdGVtLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxOCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctY29tcG9zZXItZmllbGQgLnBsLWNoaXAtbWVudV9faXRlbS5pcy1hY3RpdmUgLnBsLWNoaXAtbWVudV9fc3ViIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4ubWVzc2FnaW5nLWNvbXBvc2VyLWZpZWxkIC5wbC1jaGlwLW1lbnVfX3N1YiB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiBNZW50aW9uIGNoaXBzIGluc2lkZSByZW5kZXJlZCBtZXNzYWdlczogbWF0Y2ggdGhlIGFwcCdzIG1lbnRpb24gbG9vayxcbiAgIHNpemVkIGZvciBjaGF0IGJ1YmJsZXMuICovXG4ubWVzc2FnaW5nLW1lc3NhZ2UtY29udGVudCAubWVudGlvbi1oaWdobGlnaHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMDRyZW0gMC4zcmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAzNSUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtd2VpZ2h0OiA2NTA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLWNvbnRlbnQgLm1lbnRpb24taGlnaGxpZ2h0LmlzLXByb2plY3Qge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMjQlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtY29udGVudCBhLm1lbnRpb24taGlnaGxpZ2h0LmlzLXByb2plY3Q6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyogRmFjZWJvb2stc3R5bGUgZG9ja2VkIGNoYXQgd2luZG93cyBwaW5uZWQgdG8gdGhlIGJvdHRvbS1yaWdodCBvZiBldmVyeVxuICAgYXV0aGVudGljYXRlZCBwYWdlLiBXaW5kb3dzIGVtYmVkIHRoZSBzaGFyZWQgbWVzc2FnaW5nIHRocmVhZCBzaGVsbC4gKi9cbi8qIHJpZ2h0IG9mZnNldCBjbGVhcnMgdGhlIFBlcmljbGVzIGFzc2lzdGFudCBidWJibGUgKGZpeGVkIGF0XG4gICByaWdodDogMS4yNXJlbSwgei1pbmRleCAxMDgwKSBzbyB0aGUgd2lkZ2V0IG5ldmVyIGNvdmVycyBhIHdpbmRvdy4gKi9cbi5jaGF0LWRvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiA5NnB4O1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDEwNDU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uY2hhdC1kb2NrLXN0cmlwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDAuNXJlbTtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4uY2hhdC1kb2NrLXdpbmRvdyB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB3aWR0aDogMzIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgMTYlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHggMTBweCAwIDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCAjZmZmKTtcbiAgYm94LXNoYWRvdzogMCAtNnB4IDI4cHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNoYXQtZG9jay1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjU1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1uYXYtdGV4dCwgI2ZmZik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5jaGF0LWRvY2stdGl0bGUge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAwLjY2cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uY2hhdC1kb2NrLWJhZGdlIHtcbiAgbWluLXdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5hdi10ZXh0LCAjZmZmKTtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuLmNoYXQtZG9jay1idXR0b24ge1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xufVxuXG4uY2hhdC1kb2NrLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG59XG5cbi5jaGF0LWRvY2stYm9keSB7XG4gIGhlaWdodDogNDAwcHg7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwZHZoIC0gMTgwcHgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uY2hhdC1kb2NrLWJvZHkgdHVyYm8tZnJhbWUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5jaGF0LWRvY2stYm9keSAubWVzc2FnaW5nLWh1Yi1jb250cm9sbGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY2hhdC1kb2NrLXdpbmRvdy5pcy1taW5pbWl6ZWQge1xuICB3aWR0aDogMTkwcHg7XG59XG5cbi5jaGF0LWRvY2std2luZG93LmlzLW1pbmltaXplZCAuY2hhdC1kb2NrLWJvZHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2hhdC1kb2NrLXdpbmRvdy5oYXMtdW5yZWFkIC5jaGF0LWRvY2staGVhZGVyIHtcbiAgYW5pbWF0aW9uOiBjaGF0LWRvY2stYXR0ZW50aW9uIDEuNnMgZWFzZSBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBjaGF0LWRvY2stYXR0ZW50aW9uIHtcbiAgNTAlIHtcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4yNSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuY2hhdC1kb2NrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uYXNzaXN0YW50LXdpZGdldCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAxLjI1cmVtO1xuICByaWdodDogMS4yNXJlbTtcbiAgei1pbmRleDogMTA4MDtcbiAgLS1wbC1hY2NlbnQtYmc6IHZhcigtLWJ1dHRvbi1jb2xvdXIsICMwMDgyOTYpO1xuICAtLXBsLWFjY2VudC1mZzogdmFyKC0tYnV0dG9uLXRleHQsICNmZmYpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5hc3Npc3RhbnQtd2lkZ2V0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5hc3Npc3RhbnQtbGF1bmNoZXIge1xuICB3aWR0aDogNTZweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGwtYWNjZW50LWJnKTtcbiAgY29sb3I6IHZhcigtLXBsLWFjY2VudC1mZyk7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgwLCAwLCAwLCAwLjI4KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG59XG4uYXNzaXN0YW50LWxhdW5jaGVyIC5hc3Npc3RhbnQtbGF1bmNoZXItaWNvbiB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLmFzc2lzdGFudC1sYXVuY2hlcjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLmFzc2lzdGFudC1wYW5lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA3MnB4O1xuICByaWdodDogMDtcbiAgd2lkdGg6IG1pbigzODBweCwgMTAwdncgLSAycmVtKTtcbiAgaGVpZ2h0OiBtaW4oNTYwcHgsIDEwMHZoIC0gN3JlbSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjI4KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmFzc2lzdGFudC13aWRnZXQuaXMtb3BlbiAuYXNzaXN0YW50LXBhbmVsIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5hc3Npc3RhbnQtd2lkZ2V0LmlzLW9wZW4gLmFzc2lzdGFudC1sYXVuY2hlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5hc3Npc3RhbnQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGwtYWNjZW50LWJnKTtcbiAgY29sb3I6IHZhcigtLXBsLWFjY2VudC1mZyk7XG59XG4uYXNzaXN0YW50LWhlYWRlciAuYXNzaXN0YW50LWhlYWRlci10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYXNzaXN0YW50LWhlYWRlciAuYXNzaXN0YW50LWhlYWRlci1hdmF0YXIge1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAyNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn1cbi5hc3Npc3RhbnQtaGVhZGVyIC5hc3Npc3RhbnQtaGVhZGVyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuMjVyZW07XG59XG5cbi5hc3Npc3RhbnQtaWNvbi1idG4ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tcGwtYWNjZW50LWZnKTtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuODU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmFzc2lzdGFudC1pY29uLWJ0bjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4yKTtcbiAgY29sb3I6IHZhcigtLXBsLWFjY2VudC1mZyk7XG59XG5cbi5hc3Npc3RhbnQtaGlzdG9yeSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC1oZWlnaHQ6IDQwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCAjZjdmN2Y5KTtcbn1cbi5hc3Npc3RhbnQtaGlzdG9yeS5pcy1vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYXNzaXN0YW50LWhpc3RvcnkgLmFzc2lzdGFudC1oaXN0b3J5LWlubmVyIHtcbiAgcGFkZGluZzogMC41cmVtO1xufVxuLmFzc2lzdGFudC1oaXN0b3J5IC5hc3Npc3RhbnQtaGlzdG9yeS1lbXB0eSB7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuXG4uYXNzaXN0YW50LWhpc3Rvcnktcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hc3Npc3RhbnQtaGlzdG9yeS1yb3cgLmFzc2lzdGFudC1oaXN0b3J5LWl0ZW0ge1xuICBmbGV4OiAxIDEgYXV0bztcbn1cbi5hc3Npc3RhbnQtaGlzdG9yeS1yb3cgLmFzc2lzdGFudC1oaXN0b3J5LWRlbGV0ZSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCwgIzZjNzU3ZCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgcGFkZGluZzogMCAwLjQ1cmVtO1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi5hc3Npc3RhbnQtaGlzdG9yeS1yb3c6aG92ZXIgLmFzc2lzdGFudC1oaXN0b3J5LWRlbGV0ZSB7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi5hc3Npc3RhbnQtaGlzdG9yeS1yb3cgLmFzc2lzdGFudC1oaXN0b3J5LWRlbGV0ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiB2YXIoLS1kYW5nZXIsICNjMDM5MmIpO1xufVxuXG4uYXNzaXN0YW50LWhpc3RvcnktaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMC41cmVtIDAuNjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLmFzc2lzdGFudC1oaXN0b3J5LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMTUpO1xufVxuXG4uYXNzaXN0YW50LWNvbnRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgcGFkZGluZzogMC40cmVtIDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsICNmMGYxZjQpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbn1cbi5hc3Npc3RhbnQtY29udGV4dCBpIHtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIsICMwMDgyOTYpO1xufVxuLmFzc2lzdGFudC1jb250ZXh0IC5hc3Npc3RhbnQtY29udGV4dC1sYWJlbCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5hc3Npc3RhbnQtY29udGV4dCAuYXNzaXN0YW50LWNvbnRleHQtY2xlYXIge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQsICM2Yzc1N2QpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAgMC4xNXJlbTtcbn1cbi5hc3Npc3RhbnQtY29udGV4dCAuYXNzaXN0YW50LWNvbnRleHQtY2xlYXI6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xufVxuXG4uYXNzaXN0YW50LW1lc3NhZ2VzIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDFyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC42cmVtO1xuICBzY3JvbGxiYXItY29sb3I6IHZhcigtLXNjcm9sbGJhci1jb2xvdXIsICNjY2MpIHRyYW5zcGFyZW50O1xufVxuXG4uYXNzaXN0YW50LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZ2FwOiAwLjRyZW07XG59XG4uYXNzaXN0YW50LXJvdy5hc3Npc3RhbnQtcm93LXVzZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLmFzc2lzdGFudC1yb3cuYXNzaXN0YW50LXJvdy1ib3Qge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5hc3Npc3RhbnQtbXNnLWF2YXRhciB7XG4gIHdpZHRoOiAyNnB4O1xuICBoZWlnaHQ6IDI2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4uYXNzaXN0YW50LW1zZyB7XG4gIG1heC13aWR0aDogODUlO1xuICBwYWRkaW5nOiAwLjU1cmVtIDAuOHJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4uYXNzaXN0YW50LW1zZyBwcmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMTUpO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWFyZ2luOiAwLjRyZW0gMDtcbn1cbi5hc3Npc3RhbnQtbXNnIGNvZGUge1xuICBmb250LXNpemU6IDAuODJlbTtcbn1cbi5hc3Npc3RhbnQtbXNnIHVsIHtcbiAgbWFyZ2luOiAwLjNyZW0gMDtcbiAgcGFkZGluZy1sZWZ0OiAxLjFyZW07XG59XG4uYXNzaXN0YW50LW1zZyBhIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1saW5rLCB2YXIoLS1idXR0b24tY29sb3VyLCAjMDA4Mjk2KSk7XG59XG5cbi5hc3Npc3RhbnQtbXNnLXVzZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wbC1hY2NlbnQtYmcpO1xuICBjb2xvcjogdmFyKC0tcGwtYWNjZW50LWZnKTtcbn1cblxuLmFzc2lzdGFudC1tc2ctYm90IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsICNmMGYxZjQpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCB0cmFuc3BhcmVudCk7XG59XG4uYXNzaXN0YW50LW1zZy1ib3QuaXMtc3RyZWFtaW5nOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi4paLXCI7XG4gIGFuaW1hdGlvbjogYXNzaXN0YW50LWJsaW5rIDFzIHN0ZXBzKDIpIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGFzc2lzdGFudC1ibGluayB7XG4gIDAlLCA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAuMDElLCAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4uYXNzaXN0YW50LWFjdGlvbi1jYXJkIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWF4LXdpZHRoOiA5MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCAjZjBmMWY0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWNvbG91ciwgIzAwODI5Nik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjc1cmVtO1xuICBmb250LXNpemU6IDAuODhyZW07XG59XG4uYXNzaXN0YW50LWFjdGlvbi1jYXJkLmlzLWJ1c3kge1xuICBvcGFjaXR5OiAwLjY7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmFzc2lzdGFudC1hY3Rpb24tY2FyZCAuYXNzaXN0YW50LWFjdGlvbi1zdW1tYXJ5IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xufVxuLmFzc2lzdGFudC1hY3Rpb24tY2FyZCAuYXNzaXN0YW50LWFjdGlvbi1wcmV2aWV3IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgbWFyZ2luOiAwIDAgMC41cmVtO1xuICBtYXgtaGVpZ2h0OiAxNjBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjgycmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xufVxuLmFzc2lzdGFudC1hY3Rpb24tY2FyZCAuYXNzaXN0YW50LWFjdGlvbi1idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjRyZW07XG59XG4uYXNzaXN0YW50LWFjdGlvbi1jYXJkIC5hc3Npc3RhbnQtYWN0aW9uLWFwcHJvdmUge1xuICBwYWRkaW5nOiAwLjNyZW0gMC43cmVtICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDI2cHg7XG59XG4uYXNzaXN0YW50LWFjdGlvbi1jYXJkIC5hc3Npc3RhbnQtYWN0aW9uLWRpc21pc3Mge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjIpKTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQsICM2Yzc1N2QpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjdyZW07XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFzc2lzdGFudC1hY3Rpb24tY2FyZCAuYXNzaXN0YW50LWFjdGlvbi1kaXNtaXNzOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjE1KTtcbn1cbi5hc3Npc3RhbnQtYWN0aW9uLWNhcmQgLmFzc2lzdGFudC1hY3Rpb24tZG9uZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIxMjUyOSk7XG59XG4uYXNzaXN0YW50LWFjdGlvbi1jYXJkIC5hc3Npc3RhbnQtYWN0aW9uLWRvbmUgYSB7XG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xufVxuLmFzc2lzdGFudC1hY3Rpb24tY2FyZCAuYXNzaXN0YW50LWFjdGlvbi1lcnJvciB7XG4gIGNvbG9yOiB2YXIoLS1kYW5nZXIsICNjMDM5MmIpO1xuICBtYXJnaW4tdG9wOiAwLjRyZW07XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbn1cblxuLmFzc2lzdGFudC1pbnB1dC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGdhcDogMC41cmVtO1xuICBwYWRkaW5nOiAwLjY1cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbn1cblxuLmFzc2lzdGFudC1pbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICByZXNpemU6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlciwgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cywgMTJweCk7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjdyZW07XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBtYXgtaGVpZ2h0OiAxMjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCwgI2ZmZik7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0LCAjMjEyNTI5KTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4uYXNzaXN0YW50LWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC1wbGFjZWhvbGRlciwgIzlhYTBhNik7XG59XG4uYXNzaXN0YW50LWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1mb2N1cy1ib3JkZXIsIHZhcigtLWJ1dHRvbi1jb2xvdXIsICMwMDgyOTYpKTtcbn1cblxuLmFzc2lzdGFudC1zZW5kIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wZXJpY2xlcy1wYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxcmVtO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMTBweCk7XG4gIG1heC13aWR0aDogMTEwMHB4O1xuICBtYXJnaW46IDFyZW0gYXV0bztcbiAgcGFkZGluZzogMCAxcmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xufVxuXG4ucGVyaWNsZXMtc2lkZWJhciB7XG4gIHdpZHRoOiAyNDBweDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNzVyZW0gMC4yNXJlbSAwO1xufVxuXG4ucGVyaWNsZXMtbmV3Y2hhdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnBlcmljbGVzLWhpc3RvcnktbGFiZWwge1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjE1cmVtO1xufVxuXG4ucGVyaWNsZXMtaGlzdG9yeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xufVxuXG4ucGVyaWNsZXMtaGlzdG9yeSAuYXNzaXN0YW50LWhpc3RvcnktaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjVyZW0gMC42NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIxMjUyOSk7XG59XG4ucGVyaWNsZXMtaGlzdG9yeSAuYXNzaXN0YW50LWhpc3RvcnktaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4xNSk7XG59XG5cbi5wZXJpY2xlcy1tYWluIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnBlcmljbGVzLWludHJvIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMS41cmVtIDFyZW0gMC41cmVtO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ucGVyaWNsZXMtaW50cm8tYXZhdGFyIHtcbiAgd2lkdGg6IDcycHg7XG4gIGhlaWdodDogNzJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLnBlcmljbGVzLWludHJvLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIG1hcmdpbi10b3A6IDAuNzVyZW07XG59XG5cbi5wZXJpY2xlcy1pbnRyby1zdWIge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCwgIzZjNzU3ZCk7XG4gIG1heC13aWR0aDogNTYwcHg7XG4gIG1hcmdpbjogMC4yNXJlbSBhdXRvIDA7XG59XG5cbi5wZXJpY2xlcy1jYXJkcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgZ2FwOiAwLjZyZW07XG4gIG1hcmdpbjogMS4yNXJlbSBhdXRvO1xuICBtYXgtd2lkdGg6IDYyMHB4O1xufVxuXG4ucGVyaWNsZXMtY2FyZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMC44cmVtIDAuOXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMTVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIxMjUyOSk7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xufVxuLnBlcmljbGVzLWNhcmQgaSB7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyLCAjMDA4Mjk2KTtcbiAgZm9udC1zaXplOiAxLjA1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xufVxuLnBlcmljbGVzLWNhcmQgLnBlcmljbGVzLWNhcmQtdGl0bGUge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnBlcmljbGVzLWNhcmQgLnBlcmljbGVzLWNhcmQtc3ViIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbn1cbi5wZXJpY2xlcy1jYXJkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyLCAjMDA4Mjk2KTtcbn1cblxuLnBlcmljbGVzLXN1Z2dlc3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuNHJlbTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1heC13aWR0aDogNjIwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ucGVyaWNsZXMtY2hpcCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCAjZjBmMWY0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC43NXJlbTtcbiAgZm9udC1zaXplOiAwLjgycmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIxMjUyOSk7XG59XG4ucGVyaWNsZXMtY2hpcDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91ciwgIzAwODI5Nik7XG59XG5cbi5wZXJpY2xlcy1tZXNzYWdlcyB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNnJlbTtcbiAgcGFkZGluZzogMC41cmVtIDA7XG4gIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tc2Nyb2xsYmFyLWNvbG91ciwgI2NjYykgdHJhbnNwYXJlbnQ7XG59XG5cbi5wZXJpY2xlcy1pbnB1dC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbn1cblxuLnBlcmljbGVzLWlucHV0IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIHJlc2l6ZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLCByZ2JhKDAsIDAsIDAsIDAuMTUpKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzLCAxMnB4KTtcbiAgcGFkZGluZzogMC42cmVtIDAuOHJlbTtcbiAgZm9udC1zaXplOiAwLjkycmVtO1xuICBtYXgtaGVpZ2h0OiAxNDBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCwgI2ZmZik7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0LCAjMjEyNTI5KTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4ucGVyaWNsZXMtaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWlucHV0LXBsYWNlaG9sZGVyLCAjOWFhMGE2KTtcbn1cbi5wZXJpY2xlcy1pbnB1dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtZm9jdXMtYm9yZGVyLCB2YXIoLS1idXR0b24tY29sb3VyLCAjMDA4Mjk2KSk7XG59XG5cbi5wZXJpY2xlcy1zZW5kIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjhyZW0gIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wZXJpY2xlcy1wYWdlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAucGVyaWNsZXMtc2lkZWJhciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuICAucGVyaWNsZXMtY2FyZHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG4udGhyZWFkLWFjdGlvbi1jYXJkIHtcbiAgbWFyZ2luLXRvcDogMC42cmVtO1xuICBtYXgtd2lkdGg6IDQ2MHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2Y3ZjdmOSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1jb2xvdXIsICMwMDgyOTYpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAwLjZyZW0gMC43NXJlbTtcbiAgZm9udC1zaXplOiAwLjg4cmVtO1xufVxuLnRocmVhZC1hY3Rpb24tY2FyZC5pcy1idXN5IHtcbiAgb3BhY2l0eTogMC42O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi50aHJlYWQtYWN0aW9uLWNhcmQgLnRocmVhZC1hY3Rpb24tc3VtbWFyeSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbn1cbi50aHJlYWQtYWN0aW9uLWNhcmQgLnRocmVhZC1hY3Rpb24tcHJldmlldyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIG1hcmdpbjogMCAwIDAuNXJlbTtcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbn1cbi50aHJlYWQtYWN0aW9uLWNhcmQgLnRocmVhZC1hY3Rpb24tYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC40cmVtO1xufVxuLnRocmVhZC1hY3Rpb24tY2FyZCAudGhyZWFkLWFjdGlvbi1kaXNtaXNzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4yKSk7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nOiAwLjNyZW0gMC43cmVtO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi50aHJlYWQtYWN0aW9uLWNhcmQgLnRocmVhZC1hY3Rpb24tZGlzbWlzczpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4xNSk7XG59XG4udGhyZWFkLWFjdGlvbi1jYXJkIC50aHJlYWQtYWN0aW9uLWRvbmUge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xufVxuLnRocmVhZC1hY3Rpb24tY2FyZCAudGhyZWFkLWFjdGlvbi1mZWVkYmFjayB7XG4gIGNvbG9yOiB2YXIoLS1kYW5nZXIsICNjMDM5MmIpO1xuICBmb250LXNpemU6IDAuODJyZW07XG4gIG1hcmdpbi10b3A6IDAuNHJlbTtcbn1cbi50aHJlYWQtYWN0aW9uLWNhcmQ6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTW9kZXJuIEZvb3RlciBTdHlsaW5nIC0gUHJvZmVzc2lvbmFsICYgQ29tcHJlaGVuc2l2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFZhcmlhYmxlcyAqL1xuOnJvb3Qge1xuICAtLWZvb3Rlci1wcmltYXJ5OiAjMGYxNzJhO1xuICAtLWZvb3Rlci1zZWNvbmRhcnk6ICMxZTI5M2I7XG4gIC0tZm9vdGVyLWFjY2VudDogI2Y0NzQyNDtcbiAgLS1mb290ZXItdGV4dDogIzk0YTNiODtcbiAgLS1mb290ZXItaGVhZGluZzogI2YxZjVmOTtcbiAgLS1mb290ZXItbGluazogI2NiZDVlMTtcbiAgLS1mb290ZXItbGluay1ob3ZlcjogI2ZmZmZmZjtcbiAgLS1mb290ZXItYm9yZGVyOiAjMzM0MTU1O1xuICAtLWdyYWRpZW50LWZvb3RlcjogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzBmMTcyYSAwJSwgIzFlMjkzYiAxMDAlKTtcbiAgLS1zaGFkb3ctZm9vdGVyOiAwIC00cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5tb2Rlcm4tZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZ3JhZGllbnQtZm9vdGVyKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWZvb3Rlci1ib3JkZXIpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctZm9vdGVyKTtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn1cblxuLmZvb3Rlci1jb250ZW50IHtcbiAgcGFkZGluZzogNHJlbSAwIDJyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZvb3Rlci1tYWluIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDFmciAxLjVmcjtcbiAgZ2FwOiAzcmVtO1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAuZm9vdGVyLW1haW4ge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmciAxZnIgMS41ZnI7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuZm9vdGVyLW1haW4ge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IDJyZW07XG4gIH1cbiAgLmZvb3Rlci1tYWluIC5mb290ZXItYnJhbmQge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuICAuZm9vdGVyLW1haW4ge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMnJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLyogQnJhbmQgU2VjdGlvbiAqL1xuLmZvb3Rlci1icmFuZCAuYnJhbmQtbG9nbyB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cbi5mb290ZXItYnJhbmQgLmJyYW5kLWxvZ28gYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cbi5mb290ZXItYnJhbmQgLmJyYW5kLWxvZ28gYTpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG4uZm9vdGVyLWJyYW5kIC5icmFuZC1sb2dvIGltZyB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjIpO1xufVxuLmZvb3Rlci1icmFuZCAuYnJhbmQtdGFnbGluZSB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItdGV4dCk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbn1cbi5mb290ZXItYnJhbmQgLmJyYW5kLWNvbnRhY3QgLmNvbnRhY3QtaW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuICAuZm9vdGVyLWJyYW5kIC5icmFuZC1jb250YWN0IC5jb250YWN0LWluZm8ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cbi5mb290ZXItYnJhbmQgLmJyYW5kLWNvbnRhY3QgLmNvbnRhY3QtaW5mbyAuY29udGFjdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLWxpbmspO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5mb290ZXItYnJhbmQgLmJyYW5kLWNvbnRhY3QgLmNvbnRhY3QtaW5mbyAuY29udGFjdC1pdGVtOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1hY2NlbnQpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcbn1cbi5mb290ZXItYnJhbmQgLmJyYW5kLWNvbnRhY3QgLmNvbnRhY3QtaW5mbyAuY29udGFjdC1pdGVtIGkge1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1hY2NlbnQpO1xuICB3aWR0aDogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBGb290ZXIgU2VjdGlvbnMgKi9cbi5mb290ZXItc2VjdGlvbiAuc2VjdGlvbi10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItaGVhZGluZyk7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5mb290ZXItc2VjdGlvbiAuc2VjdGlvbi10aXRsZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLThweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogM3B4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mb290ZXItYWNjZW50KTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG4gIC5mb290ZXItc2VjdGlvbiAuc2VjdGlvbi10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5mb290ZXItc2VjdGlvbiAuc2VjdGlvbi10aXRsZTo6YWZ0ZXIge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cbi5mb290ZXItc2VjdGlvbiAuZm9vdGVyLWxpbmtzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuLmZvb3Rlci1zZWN0aW9uIC5mb290ZXItbGlua3MgbGkge1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuLmZvb3Rlci1zZWN0aW9uIC5mb290ZXItbGlua3MgbGkgYSB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItbGluayk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5mb290ZXItc2VjdGlvbiAuZm9vdGVyLWxpbmtzIGxpIGE6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLWxpbmstaG92ZXIpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcbn1cbi5mb290ZXItc2VjdGlvbiAuZm9vdGVyLWxpbmtzIGxpIGE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEycHg7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mb290ZXItYWNjZW50KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbn1cbi5mb290ZXItc2VjdGlvbiAuZm9vdGVyLWxpbmtzIGxpIGE6aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIEZvb3RlciBDVEEgU2VjdGlvbiAqL1xuLmZvb3Rlci1jdGEgLmN0YS10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci10ZXh0KTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4uZm9vdGVyLWN0YSAubmV3c2xldHRlci1mb3JtIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuLmZvb3Rlci1jdGEgLm5ld3NsZXR0ZXItZm9ybSAuaW5wdXQtZ3JvdXAgLm1kdWktaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWZvb3Rlci1ib3JkZXIpO1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLWxpbmspO1xufVxuLmZvb3Rlci1jdGEgLm5ld3NsZXR0ZXItZm9ybSAuaW5wdXQtZ3JvdXAgLm1kdWktaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci10ZXh0KTtcbn1cbi5mb290ZXItY3RhIC5uZXdzbGV0dGVyLWZvcm0gLmlucHV0LWdyb3VwIC5tZHVpLWlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb290ZXItYWNjZW50KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cbi5mb290ZXItY3RhIC5uZXdzbGV0dGVyLWZvcm0gLmlucHV0LWdyb3VwIC5tZHVpLWJ0biB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWZvb3Rlci1hY2NlbnQpIDAlLCAjZTY1YTFmIDEwMCUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5mb290ZXItY3RhIC5uZXdzbGV0dGVyLWZvcm0gLmlucHV0LWdyb3VwIC5tZHVpLWJ0bjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4zKTtcbn1cbi5mb290ZXItY3RhIC5mb290ZXItZ3VhcmFudGVlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItdGV4dCk7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuICAuZm9vdGVyLWN0YSAuZm9vdGVyLWd1YXJhbnRlZSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbi5mb290ZXItY3RhIC5mb290ZXItZ3VhcmFudGVlIGkge1xuICBjb2xvcjogIzEwYjk4MTtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4vKiBTb2NpYWwgTGlua3MgKi9cbi5zb2NpYWwtbGlua3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDFyZW07XG4gIG1hcmdpbi10b3A6IDJyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgLnNvY2lhbC1saW5rcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbi5zb2NpYWwtbGlua3MgYSB7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZm9vdGVyLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLWxpbmspO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG59XG4uc29jaWFsLWxpbmtzIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mb290ZXItYWNjZW50KTtcbiAgY29sb3I6IHdoaXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgyNDQsIDExNiwgMzYsIDAuMyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZm9vdGVyLWFjY2VudCk7XG59XG4uc29jaWFsLWxpbmtzIGEgaSB7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuXG4vKiBGb290ZXIgQm90dG9tICovXG4uZm9vdGVyLWJvdHRvbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1mb290ZXItYm9yZGVyKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyLWJvdHRvbSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLmZvb3Rlci1sZWdhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyLWxlZ2FsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMXJlbTtcbiAgfVxufVxuLmZvb3Rlci1sZWdhbCBwIHtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIG1hcmdpbjogMDtcbn1cbi5mb290ZXItbGVnYWwgLmxlZ2FsLWxpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxcmVtO1xufVxuLmZvb3Rlci1sZWdhbCAubGVnYWwtbGlua3MgYSB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItbGluayk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcbn1cbi5mb290ZXItbGVnYWwgLmxlZ2FsLWxpbmtzIGE6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLWFjY2VudCk7XG59XG4uZm9vdGVyLWxlZ2FsIC5sZWdhbC1saW5rcyAuc2VwYXJhdG9yIHtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1ib3JkZXIpO1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cblxuLmZvb3Rlci1iYWRnZSAuYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDQsIDExNiwgMzYsIDAuMSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDQsIDExNiwgMzYsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIHBhZGRpbmc6IDhweCAyMHB4O1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLWFjY2VudCk7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmZvb3Rlci1iYWRnZSAuYmFkZ2UtY29udGVudCBpIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBhbmltYXRpb246IHB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuLmZvb3Rlci1iYWRnZSAuYmFkZ2UtY29udGVudCBzcGFuIHtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1oZWFkaW5nKTtcbn1cblxuLyogQnJhbmQgUmV2aWV3cyBJbnRlZ3JhdGlvbiAqL1xuLmJyYW5kLXJldmlld3Mge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgLmJyYW5kLXJldmlld3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cblxuLyogQkJCIEJhZGdlIGluIEZvb3RlciBCb3R0b20gKi9cbi5mb290ZXItYmJiLWJhZGdlIC5iYmItY29tcGFjdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDQsIDExNiwgMzYsIDAuMSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDQsIDExNiwgMzYsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uZm9vdGVyLWJiYi1iYWRnZSAuYmJiLWNvbXBhY3Q6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xNSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4yKTtcbn1cbi5mb290ZXItYmJiLWJhZGdlIC5iYmItY29tcGFjdCAuYmJiLXNlYWwtc21hbGwge1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmZvb3Rlci1iYmItYmFkZ2UgLmJiYi1jb21wYWN0IC5iYmItaW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuLmZvb3Rlci1iYmItYmFkZ2UgLmJiYi1jb21wYWN0IC5iYmItaW5mbyAuYmJiLXJhdGluZy1jb21wYWN0IHtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1oZWFkaW5nKTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4uZm9vdGVyLWJiYi1iYWRnZSAuYmJiLWNvbXBhY3QgLmJiYi1pbmZvIC5iYmItc3RhcnMtY29tcGFjdCB7XG4gIGNvbG9yOiAjZmZkNzAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG4uZm9vdGVyLWJiYi1iYWRnZSAuYmJiLWNvbXBhY3QgLmJiYi1pbmZvIC5iYmItc3RhcnMtY29tcGFjdCBpIHtcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XG59XG5cbi8qIEZvb3RlciBTZWNvbmRhcnkgU2VjdGlvbiAqL1xuLmZvb3Rlci1zZWNvbmRhcnkge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZm9vdGVyLWJvcmRlcik7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3Rlci1zZWNvbmRhcnkgLmQtZmxleCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDFyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4uZm9vdGVyLXNlY29uZGFyeSAuZm9vdGVyLWFjY29sYWRlcyAuaWNvbi1pbnRlcmFjdGlvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG4uZm9vdGVyLXNlY29uZGFyeSAuZm9vdGVyLWFjY29sYWRlcyAuaWNvbi1pbnRlcmFjdGlvbjpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG4uZm9vdGVyLXNlY29uZGFyeSAuZW1wbG95ZWUtbG9naW4gLnRpbnktYnV0dG9uIHtcbiAgb3BhY2l0eTogMC42O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbn1cbi5mb290ZXItc2Vjb25kYXJ5IC5lbXBsb3llZS1sb2dpbiAudGlueS1idXR0b246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiBBbmltYXRpb25zICovXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbn1cbi8qIFJlc3BvbnNpdmUgYWRqdXN0bWVudHMgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuICAuZm9vdGVyLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDNyZW0gMCAxLjVyZW07XG4gIH1cbiAgLmZvb3Rlci1tYWluIHtcbiAgICBnYXA6IDJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgfVxuICAuYnJhbmQtdGFnbGluZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG59XG4vKiBQcmludCBzdHlsZXMgKi9cbkBtZWRpYSBwcmludCB7XG4gIC5tb2Rlcm4tZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIH1cbiAgLnNvY2lhbC1saW5rcyxcbiAgLmZvb3Rlci1jdGEge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi8qIEhpZ2ggY29udHJhc3QgbW9kZSAqL1xuQG1lZGlhIChwcmVmZXJzLWNvbnRyYXN0OiBoaWdoKSB7XG4gIDpyb290IHtcbiAgICAtLWZvb3Rlci1wcmltYXJ5OiAjMDAwO1xuICAgIC0tZm9vdGVyLXRleHQ6ICNmZmY7XG4gICAgLS1mb290ZXItbGluazogI2ZmZjtcbiAgICAtLWZvb3Rlci1ib3JkZXI6ICNmZmY7XG4gIH1cbn1cbi5vcmllbnRhdGlvbi1iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG59XG4ub3JpZW50YXRpb24tYmFkZ2UgLm9yaWVudGF0aW9uLWNvbXBhc3Mge1xuICBmbGV4OiBub25lO1xufVxuXG4ub3JpZW50YXRpb24tY2hpcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbn1cbi5vcmllbnRhdGlvbi1jaGlwcyAuY2hpcHMtbGFiZWwge1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gIG9wYWNpdHk6IDAuNjtcbiAgbWFyZ2luLXJpZ2h0OiAwLjE1cmVtO1xufVxuXG4ub3JpZW50YXRpb24tY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM3JlbTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjdyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCByZ2JhKDAsIDAsIDAsIDAuMDQpKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG59XG4ub3JpZW50YXRpb24tY2hpcDpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMyk7XG4gIGJvcmRlci1jb2xvcjogI2Y0NzQyNDtcbn1cbi5vcmllbnRhdGlvbi1jaGlwIC5jaGlwLWNvdW50IHtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xuICBvcGFjaXR5OiAwLjY7XG59XG4ub3JpZW50YXRpb24tY2hpcC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZjQ3NDI0O1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm9yaWVudGF0aW9uLWNoaXAuYWN0aXZlIC5jaGlwLWNvdW50IHtcbiAgb3BhY2l0eTogMC44NTtcbn1cblxuI21hcC1mYWNpbmctY2hpcHMuc3lzdGVtLW1hcC1jaGlwcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0MHB4O1xuICBsZWZ0OiAxMnB4O1xuICB6LWluZGV4OiAxMDtcbiAgd2lkdGg6IDQwMHB4O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDI0cHgpO1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgcm93LWdhcDogMC4zcmVtO1xuICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4yMik7XG59XG5cbi5vbmUtdG8tb25lLWRlbW8ge1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ub25lLXRvLW9uZS1kZW1vIC5zYWxfX2NhbnZhcyB7XG4gIGhlaWdodDogNDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG59XG5cbi5ibGFzdC1jYXJkIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmJsYXN0LWNhcmQuYmxhc3QtY2FyZC0tb3VycyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmNDc0MjQ7XG59XG5cbi5ibGFzdC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgMWZyKTtcbiAgZ2FwOiA0cHg7XG4gIG1hcmdpbjogMC41cmVtIDAgMC43NXJlbTtcbn1cbi5ibGFzdC1ncmlkIC5ibGFzdC1jZWxsIHtcbiAgYXNwZWN0LXJhdGlvOiAxLzEuNjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiAjMmU2ZmI4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpO1xufVxuLmJsYXN0LWdyaWQgLmJsYXN0LWNlbGwtLWRpbSB7XG4gIGJhY2tncm91bmQ6ICM3ZDg3OTQ7XG4gIG9wYWNpdHk6IDAuNTU7XG59XG4uYmxhc3QtZ3JpZCAuYmxhc3QtY2VsbC0tdmljdGltIHtcbiAgYmFja2dyb3VuZDogI2IzNDMzYjtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmJsYXN0LXZlcmRpY3Qge1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5zYWwtcHJvZC1wb3B1cCAubWFwbGlicmVnbC1wb3B1cC1jb250ZW50IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgcGFkZGluZzogOHB4IDExcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLnNhbF9faWNvbi1idG4uaXMtYWN0aXZlIHtcbiAgY29sb3I6ICNmNDc0MjQ7XG59XG5cbiNmbG9hdGluZy1pbmZvLnN5c3RlbS1tYXAtc3VtbWFyeSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMnB4O1xuICByaWdodDogMTJweDtcbiAgei1pbmRleDogMTA7XG4gIHdpZHRoOiBjbGFtcCgyODBweCwgMjUlLCAzNjBweCk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpO1xuICBwYWRkaW5nOiAwLjY1cmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LWdyb3c6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cbiNmbG9hdGluZy1pbmZvLnN5c3RlbS1tYXAtc3VtbWFyeSBoMSB7XG4gIG1hcmdpbjogMCAwIDAuNTVyZW07XG4gIGZvbnQtc2l6ZTogMC45cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuI2Zsb2F0aW5nLWluZm8uc3lzdGVtLW1hcC1zdW1tYXJ5IC5zeXN0ZW0tbWFwLXN1bW1hcnlfX3Byb2R1Y3Rpb24sXG4jZmxvYXRpbmctaW5mby5zeXN0ZW0tbWFwLXN1bW1hcnkgLnN5c3RlbS1tYXAtc3VtbWFyeV9fbWV0cmljcyB7XG4gIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDtcbiAgZ2FwOiAwLjRyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG59XG4jZmxvYXRpbmctaW5mby5zeXN0ZW0tbWFwLXN1bW1hcnkgLnN5c3RlbS1tYXAtc3VtbWFyeV9fcHJvZHVjdGlvbiB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbn1cbiNmbG9hdGluZy1pbmZvLnN5c3RlbS1tYXAtc3VtbWFyeSAuc3lzdGVtLW1hcC1zdW1tYXJ5X19tZXRyaWNzIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xufVxuI2Zsb2F0aW5nLWluZm8uc3lzdGVtLW1hcC1zdW1tYXJ5IC5saWdodGJvcmRlciB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMC40NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuI2Zsb2F0aW5nLWluZm8uc3lzdGVtLW1hcC1zdW1tYXJ5IC5saWdodGJvcmRlciAuZnMtNSB7XG4gIG1hcmdpbi1ib3R0b206IDAuMnJlbSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuODJyZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbiNmbG9hdGluZy1pbmZvLnN5c3RlbS1tYXAtc3VtbWFyeSAuc3ZnLWxhcmdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbjogMC4zcmVtIGF1dG8gMDtcbn1cbiNmbG9hdGluZy1pbmZvLnN5c3RlbS1tYXAtc3VtbWFyeSA+IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBvcGFjaXR5OiAwLjcyO1xufVxuXG51bC5pbXBhY3QtdGFicyB7XG4gIGdhcDogMC40cmVtO1xufVxudWwuaW1wYWN0LXRhYnMgLm5hdi1saW5rIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMzMzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4wNCkpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcGFkZGluZzogMC40NXJlbSAxLjFyZW07XG59XG51bC5pbXBhY3QtdGFicyAubmF2LWxpbms6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnVsLmltcGFjdC10YWJzIC5uYXYtbGluazpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NzQyNDtcbn1cbnVsLmltcGFjdC10YWJzIC5uYXYtbGluay5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZjQ3NDI0O1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ub3JpZW50YXRpb24tY3VydmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZ2FwOiBjbGFtcCgzcHgsIDAuNTV2dywgOHB4KTtcbiAgaGVpZ2h0OiAyMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xufVxuLm9yaWVudGF0aW9uLWN1cnZlIC5jdXJ2ZS1jb2wge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogMXJlbSBtaW5tYXgoMCwgMWZyKSAxcmVtO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBlbmQ7XG4gIGdhcDogNHB4O1xuICBvdXRsaW5lOiBub25lO1xufVxuLm9yaWVudGF0aW9uLWN1cnZlIC5jdXJ2ZS1jb2w6aG92ZXIgLmN1cnZlLWJhciwgLm9yaWVudGF0aW9uLWN1cnZlIC5jdXJ2ZS1jb2w6Zm9jdXMtdmlzaWJsZSAuY3VydmUtYmFyIHtcbiAgYmFja2dyb3VuZDogI2ZmOGEzZDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjIpLCAwIDVweCAxNHB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjI0KTtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMS4wNik7XG59XG4ub3JpZW50YXRpb24tY3VydmUgLmN1cnZlLWNvbDpob3ZlciAuY3VydmUtdmFsdWUsXG4ub3JpZW50YXRpb24tY3VydmUgLmN1cnZlLWNvbDpob3ZlciAuY3VydmUtbGFiZWwsIC5vcmllbnRhdGlvbi1jdXJ2ZSAuY3VydmUtY29sOmZvY3VzLXZpc2libGUgLmN1cnZlLXZhbHVlLFxuLm9yaWVudGF0aW9uLWN1cnZlIC5jdXJ2ZS1jb2w6Zm9jdXMtdmlzaWJsZSAuY3VydmUtbGFiZWwge1xuICBvcGFjaXR5OiAxO1xufVxuLm9yaWVudGF0aW9uLWN1cnZlIC5jdXJ2ZS12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgb3BhY2l0eTogMC42NTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4ub3JpZW50YXRpb24tY3VydmUgLmN1cnZlLXRyYWNrIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xufVxuLm9yaWVudGF0aW9uLWN1cnZlIC5jdXJ2ZS1iYXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0NHB4O1xuICBmbGV4OiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZjQ3NDI0O1xuICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbiAgbWluLWhlaWdodDogMnB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG59XG4ub3JpZW50YXRpb24tY3VydmUgLmN1cnZlLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG9wYWNpdHk6IDAuNztcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5zZWFzb24tZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMXJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zZWFzb24tcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA2NHB4IDFmcjtcbiAgYWxpZ24taXRlbXM6IGVuZDtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuLnNlYXNvbi1yb3cgLnNlYXNvbi1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4xcmVtO1xufVxuLnNlYXNvbi1yb3cgLnNlYXNvbi1iYXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDRweDtcbiAgaGVpZ2h0OiA5MnB4O1xufVxuLnNlYXNvbi1yb3cgLnNlYXNvbi1jb2wge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGdhcDogM3B4O1xuICBvdXRsaW5lOiBub25lO1xufVxuLnNlYXNvbi1yb3cgLnNlYXNvbi1jb2w6aG92ZXIgLnNlYXNvbi1iYXIsIC5zZWFzb24tcm93IC5zZWFzb24tY29sOmZvY3VzLXZpc2libGUgLnNlYXNvbi1iYXIge1xuICBvcGFjaXR5OiAxO1xuICBib3gtc2hhZG93OiAwIDRweCAxMHB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjIyKTtcbn1cbi5zZWFzb24tcm93IC5zZWFzb24tY29sOmhvdmVyIC5zZWFzb24tbGFiZWwsIC5zZWFzb24tcm93IC5zZWFzb24tY29sOmZvY3VzLXZpc2libGUgLnNlYXNvbi1sYWJlbCB7XG4gIG9wYWNpdHk6IDE7XG59XG4uc2Vhc29uLXJvdyAuc2Vhc29uLWJhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDI2cHg7XG4gIGJhY2tncm91bmQ6ICNmNDc0MjQ7XG4gIG9wYWNpdHk6IDAuODtcbiAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlLCBib3gtc2hhZG93IDAuMTVzIGVhc2U7XG59XG4uc2Vhc29uLXJvdyAuc2Vhc29uLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xuICBvcGFjaXR5OiAwLjU1O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ub3JpZW50YXRpb24tcm9zZS13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ub3JpZW50YXRpb24tcm9zZS13cmFwIHN2ZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLm9yaWVudGF0aW9uLXJvc2Utd3JhcCAucm9zZS1yaW5nIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xufVxuLm9yaWVudGF0aW9uLXJvc2Utd3JhcCAucm9zZS13ZWRnZSB7XG4gIGZpbGw6ICNmNDc0MjQ7XG4gIHN0cm9rZTogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xuICBzdHJva2Utd2lkdGg6IDI7XG4gIGN1cnNvcjogaGVscDtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNmb3JtLWJveDogZmlsbC1ib3g7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogZmlsdGVyIDAuMTVzIGVhc2UsIG9wYWNpdHkgMC4xNXMgZWFzZTtcbn1cbi5vcmllbnRhdGlvbi1yb3NlLXdyYXAgLnJvc2Utd2VkZ2U6aG92ZXIsIC5vcmllbnRhdGlvbi1yb3NlLXdyYXAgLnJvc2Utd2VkZ2U6Zm9jdXMtdmlzaWJsZSB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjEyKSBkcm9wLXNoYWRvdygwIDJweCA0cHggcmdiYSgyNDQsIDExNiwgMzYsIDAuMjgpKTtcbiAgb3BhY2l0eTogMTtcbn1cbi5vcmllbnRhdGlvbi1yb3NlLXdyYXAgLnJvc2UtbGFiZWwge1xuICBmaWxsOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMyk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4ub3JpZW50YXRpb24teWllbGQtcm93cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC42NXJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5vcmllbnRhdGlvbi15aWVsZC1yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUycHggMWZyIDE1MHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNjVyZW07XG59XG4ub3JpZW50YXRpb24teWllbGQtcm93Lm9yaWVudGF0aW9uLXlpZWxkLXJvdy0td2lkZSB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTUwcHggMWZyIDExMHB4O1xufVxuLm9yaWVudGF0aW9uLXlpZWxkLXJvdyAueWllbGQtc2VjdG9yIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xufVxuLm9yaWVudGF0aW9uLXlpZWxkLXJvdyAueWllbGQtc2VjdG9yIHNtYWxsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG9wYWNpdHk6IDAuNTU7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG4ub3JpZW50YXRpb24teWllbGQtcm93IC55aWVsZC10cmFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxOHB4O1xufVxuLm9yaWVudGF0aW9uLXlpZWxkLXJvdyAueWllbGQtZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDAgYXV0byAwIDA7XG4gIGJhY2tncm91bmQ6ICNmNDc0MjQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xufVxuLm9yaWVudGF0aW9uLXlpZWxkLXJvdyAueWllbGQtdmFsdWUge1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi5vcmllbnRhdGlvbi15aWVsZC1yb3cgLnlpZWxkLXZhbHVlIHNtYWxsIHtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4uc2VjdGlvbi1pbnRyby13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbn1cbi5zZWN0aW9uLWludHJvLXdyYXBwZXIuc2VjdGlvbi1pbnRyby13aXRoLWJnIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBwYWRkaW5nOiAycmVtO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbn1cblxuLnNlY3Rpb24taW50cm8tbWFzayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNlY3Rpb24taW50cm8tY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLnNlY3Rpb24taW50cm8tbWVkaWEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5zZWN0aW9uLWludHJvLW1lZGlhIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgbWF4LWhlaWdodDogNDAwcHg7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuLnNlY3Rpb24taW50cm8tbWVkaWEgdmlkZW8ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBtYXgtaGVpZ2h0OiA0MDBweDtcbn1cbi5zZWN0aW9uLWludHJvLW1lZGlhIC5yYXRpbyB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnNlY3Rpb24taW50cm8td3JhcHBlci5zZWN0aW9uLWludHJvLXdpdGgtYmcge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLnNlY3Rpb24taW50cm8td3JhcHBlciAuc2VjdGlvbi1pbnRyby1tZWRpYSB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBvcmRlcjogMiAhaW1wb3J0YW50O1xuICB9XG59XG4uc2VjdGlvbi1pbnRyby13aXRoLWJnIC5zZWN0aW9uLWludHJvLWNvbnRlbnQgaDIsIC5zZWN0aW9uLWludHJvLXdpdGgtYmcgLnNlY3Rpb24taW50cm8tY29udGVudCBwLCAuc2VjdGlvbi1pbnRyby13aXRoLWJnIC5zZWN0aW9uLWludHJvLWNvbnRlbnQgLmJvZHkge1xuICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuW2RhdGEtY29udHJvbGxlcj1zZWN0aW9uLWNvbmZpZ10gLmRyb3Bkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuW2RhdGEtY29udHJvbGxlcj1zZWN0aW9uLWNvbmZpZ10gLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgei1pbmRleDogMTA1MDtcbn1cblxuLnNlY3Rpb24tZWRpdC1tZWRpYS1wcmV2aWV3IC5zZWN0aW9uLWVkaXQtbWVkaWEtY29udHJvbHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogOHB4O1xuICByaWdodDogOHB4O1xuICB6LWluZGV4OiAyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG59XG4uc2VjdGlvbi1lZGl0LW1lZGlhLXByZXZpZXc6aG92ZXIgLnNlY3Rpb24tZWRpdC1tZWRpYS1jb250cm9scywgLnNlY3Rpb24tZWRpdC1tZWRpYS1wcmV2aWV3OmZvY3VzLXdpdGhpbiAuc2VjdGlvbi1lZGl0LW1lZGlhLWNvbnRyb2xzIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmdyYXBlc2pzLXRlbXBsYXRlLWZvcm0ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5ncmFwZXNqcy1lZGl0b3Itd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDB2dztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsICNmMGYwZjApO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA1MDtcbn1cblxuLmdyYXBlc2pzLXRvb2xiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgei1pbmRleDogMTA7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIGdhcDogMTJweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5ncmFwZXNqcy10aXRsZS1pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWJhY2tncm91bmQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlcikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWlucHV0LXRleHQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cykgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzNHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBwYWRkaW5nOiA0cHggMTBweDtcbn1cbi5ncmFwZXNqcy10aXRsZS1pbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtZm9jdXMtYm9yZGVyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlucHV0LWZvY3VzLWJvcmRlcikgMTIuNSUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuXG4uZ3JhcGVzanMtZWRpdG9yLWJvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4uZ3JhcGVzanMtcGFuZWwtbGVmdCB7XG4gIHdpZHRoOiAyNDBweDtcbiAgbWluLXdpZHRoOiAyNDBweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG59XG4uZ3JhcGVzanMtcGFuZWwtbGVmdCAuZ2pzLWJsb2NrLWNhdGVnb3JpZXMgLmdqcy1ibG9jay1jYXRlZ29yeSAuZ2pzLXRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNmM3NTdkKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xuICBvcGFjaXR5OiAwLjc7XG59XG4uZ3JhcGVzanMtcGFuZWwtbGVmdCAuZ2pzLWJsb2NrIHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gOHB4KTtcbiAgbWluLWhlaWdodDogNjBweDtcbiAgcGFkZGluZzogOHB4O1xuICBtYXJnaW46IDRweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzLCA2cHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZTllY2VmKTtcbiAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCwgI2Y4ZjlmYSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMyk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICBjdXJzb3I6IGdyYWI7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xufVxuLmdyYXBlc2pzLXBhbmVsLWxlZnQgLmdqcy1ibG9jazpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzQyODVmNCk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxMCUsIHZhcigtLWlucHV0LWJhY2tncm91bmQsICNmZmYpKTtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4uZ3JhcGVzanMtcGFuZWwtbGVmdCAuZ2pzLWJsb2NrOmFjdGl2ZSB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4uZ3JhcGVzanMtcGFuZWwtbGVmdCAuZ2pzLWJsb2NrIC5nanMtYmxvY2stbGFiZWwge1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLmdyYXBlc2pzLWNhbnZhcy13cmFwcGVyIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uZ3JhcGVzanMtY2FudmFzLXdyYXBwZXIgI2dqcy1lZGl0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5ncmFwZXNqcy1jYW52YXMtd3JhcHBlciAuZ2pzLWN2LWNhbnZhcyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xufVxuLmdyYXBlc2pzLWNhbnZhcy13cmFwcGVyIC5nanMtZnJhbWUtd3JhcHBlciB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmdyYXBlc2pzLWNhbnZhcy13cmFwcGVyIC5nanMtZnJhbWUge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCB7XG4gIHdpZHRoOiAyNjBweDtcbiAgbWluLXdpZHRoOiAyNjBweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAjZ2pzLXN0eWxlcy1wYW5lbCxcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAjZ2pzLXRyYWl0cy1wYW5lbCxcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAjZ2pzLWxheWVycy1wYW5lbCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0ICNnanMtc3R5bGVzLXBhbmVsID4gZGl2LFxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0ICNnanMtdHJhaXRzLXBhbmVsID4gZGl2LFxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0ICNnanMtbGF5ZXJzLXBhbmVsID4gZGl2IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLXNtLXNlY3RvciAuZ2pzLXNtLXNlY3Rvci10aXRsZSB7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMyk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLXNtLXNlY3RvciAuZ2pzLXNtLXByb3BlcnRpZXMge1xuICBwYWRkaW5nOiA4cHggMTJweDtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtYmFja2dyb3VuZCkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtZm9jdXMtYm9yZGVyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlucHV0LWZvY3VzLWJvcmRlcikgMTIuNSUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtZmllbGQgaW5wdXQsIC5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkIHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0KSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkIGlucHV0OjpwbGFjZWhvbGRlciwgLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtZmllbGQgc2VsZWN0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC1wbGFjZWhvbGRlcikgIWltcG9ydGFudDtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkIHNlbGVjdCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLXNtLWNvbXBvc2l0ZSAuZ2pzLXNtLWJ0bixcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLXNtLWNvbXBvc2l0ZSAuZ2pzLWZpZWxkLXJhZGlvLWl0ZW0sXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZC1yYWRpbyAuZ2pzLXNtLWJ0bixcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkLXJhZGlvIC5nanMtZmllbGQtcmFkaW8taXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWJhY2tncm91bmQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlcikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWlucHV0LXRleHQpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgcGFkZGluZzogNHB4IDhweDtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLXNtLWNvbXBvc2l0ZSAuZ2pzLXNtLWJ0bjpmaXJzdC1jaGlsZCxcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLXNtLWNvbXBvc2l0ZSAuZ2pzLWZpZWxkLXJhZGlvLWl0ZW06Zmlyc3QtY2hpbGQsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZC1yYWRpbyAuZ2pzLXNtLWJ0bjpmaXJzdC1jaGlsZCxcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkLXJhZGlvIC5nanMtZmllbGQtcmFkaW8taXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cywgNnB4KSAwIDAgdmFyKC0taW5wdXQtcmFkaXVzLCA2cHgpICFpbXBvcnRhbnQ7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1zbS1jb21wb3NpdGUgLmdqcy1zbS1idG46bGFzdC1jaGlsZCxcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLXNtLWNvbXBvc2l0ZSAuZ2pzLWZpZWxkLXJhZGlvLWl0ZW06bGFzdC1jaGlsZCxcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkLXJhZGlvIC5nanMtc20tYnRuOmxhc3QtY2hpbGQsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZC1yYWRpbyAuZ2pzLWZpZWxkLXJhZGlvLWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0taW5wdXQtcmFkaXVzLCA2cHgpIHZhcigtLWlucHV0LXJhZGl1cywgNnB4KSAwICFpbXBvcnRhbnQ7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1zbS1jb21wb3NpdGUgLmdqcy1zbS1idG4uZ2pzLXNtLWFjdGl2ZSxcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLXNtLWNvbXBvc2l0ZSAuZ2pzLWZpZWxkLXJhZGlvLWl0ZW0uYWN0aXZlLFxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtc20tY29tcG9zaXRlIGlucHV0OmNoZWNrZWQgKyBsYWJlbCxcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkLXJhZGlvIC5nanMtc20tYnRuLmdqcy1zbS1hY3RpdmUsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZC1yYWRpbyAuZ2pzLWZpZWxkLXJhZGlvLWl0ZW0uYWN0aXZlLFxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtZmllbGQtcmFkaW8gaW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyLCAjZmZmKSAhaW1wb3J0YW50O1xufVxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtZmllbGQtY29sb3IgLmdqcy1maWVsZC1jb2xvcnAge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMsIDRweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zcC1jb250YWluZXI6bm90KC5zcC1mbGF0KSB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xufVxuXG4uZ3JhcGVzanMtZWRpdG9yLXdyYXBwZXIgLmdqcy1zbS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuLmdyYXBlc2pzLWVkaXRvci13cmFwcGVyIC5nanMtdHJ0LXRyYWl0IHtcbiAgcGFkZGluZzogNnB4IDEycHg7XG59XG4uZ3JhcGVzanMtZWRpdG9yLXdyYXBwZXIgLmdqcy10cnQtdHJhaXQgLmdqcy1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG59XG4uZ3JhcGVzanMtZWRpdG9yLXdyYXBwZXIgLmdqcy1jbG0tdGFncyB7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xufVxuLmdyYXBlc2pzLWVkaXRvci13cmFwcGVyIC5nanMtY2xtLXRhZ3MgLmdqcy1jbG0tdGFnIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIsICNmZmYpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMsIDRweCk7XG4gIHBhZGRpbmc6IDJweCA4cHg7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xufVxuLmdyYXBlc2pzLWVkaXRvci13cmFwcGVyIC5nanMtY2xtLXRhZ3MgI2dqcy1jbG0tbmV3IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtYmFja2dyb3VuZCkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0KSAhaW1wb3J0YW50O1xufVxuLmdyYXBlc2pzLWVkaXRvci13cmFwcGVyIC5nanMtY2xtLWZpZWxkIHNlbGVjdCxcbi5ncmFwZXNqcy1lZGl0b3Itd3JhcHBlciAuZ2pzLWNsbS1zZWxlY3Qgc2VsZWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtYmFja2dyb3VuZCkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0KSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBwYWRkaW5nOiAycHggOHB4O1xufVxuXG4uZ2pzLW9uZS1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKSAhaW1wb3J0YW50O1xufVxuXG4uZ2pzLXR3by1jb2xvciB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMykgIWltcG9ydGFudDtcbn1cblxuLmdqcy10aHJlZS1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM0Mjg1ZjQpICFpbXBvcnRhbnQ7XG59XG5cbi5nanMtZm91ci1jb2xvcixcbi5nanMtZm91ci1jb2xvci1oOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM0Mjg1ZjQpICFpbXBvcnRhbnQ7XG59XG5cbi5nanMtc2VsZWN0ZWQge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzQyODVmNCkgIWltcG9ydGFudDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cbi5nanMtaG92ZXJlZCB7XG4gIG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzQyODVmNCkgIWltcG9ydGFudDtcbn1cblxuLmdqcy10b29sYmFyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzQyODVmNCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cywgNHB4KTtcbiAgcGFkZGluZzogMnB4O1xufVxuLmdqcy10b29sYmFyIC5nanMtdG9vbGJhci1pdGVtIHtcbiAgcGFkZGluZzogNHB4IDZweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIsICNmZmYpO1xufVxuLmdqcy10b29sYmFyIC5nanMtdG9vbGJhci1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuXG4uZ2pzLXJ0ZS10b29sYmFyIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzLCA2cHgpO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG4gIHBhZGRpbmc6IDRweDtcbn1cblxuLmdqcy1tZGwtY29udGFpbmVyIHtcbiAgei1pbmRleDogMTEwMCAhaW1wb3J0YW50O1xufVxuXG4uZ2pzLWJ0bi1wcmltIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91ciwgI2ZmZikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cywgNnB4KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiA4cHggMTZweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi5nanMtYnRuLXByaW06aG92ZXIge1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi5nanMtY3VzdG9tLW1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDEyMDA7XG59XG4uZ2pzLWN1c3RvbS1tb2RhbC5hY3RpdmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5nanMtY3VzdG9tLW1vZGFsIC5nanMtYWktYmFja2Ryb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuLmdqcy1jdXN0b20tbW9kYWwgLmdqcy1haS1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgOHB4KTtcbiAgd2lkdGg6IDU2MHB4O1xuICBtYXgtd2lkdGg6IDkwdnc7XG4gIG1heC1oZWlnaHQ6IDgwdmg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuLmdqcy1jdXN0b20tbW9kYWwgLmdqcy1haS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDE0cHggMjBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xufVxuLmdqcy1jdXN0b20tbW9kYWwgLmdqcy1haS1ib2R5IHtcbiAgcGFkZGluZzogMjBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZmxleDogMTtcbn1cbi5nanMtY3VzdG9tLW1vZGFsIC5nanMtYWktZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDE0cHggMjBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xufVxuLmdqcy1jdXN0b20tbW9kYWwgLmdqcy1haS10aGlua2luZy1pY29uIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1jb2xvdXIsICM2YzVjZTcpO1xuICBhbmltYXRpb246IGdqcy1haS10aGlua2luZy1wdWxzZSAxLjZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuLmdqcy1jdXN0b20tbW9kYWwgLmdqcy1haS10aGlua2luZy1kb3RzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDEuMmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIGdqcy1haS10aGlua2luZy1wdWxzZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgtNGRlZyk7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xMikgcm90YXRlKDRkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi5nanMtdHJ0LXRyYWl0OmhhcygucGwtaWNvbi1waWNrZXIpIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIGdhcDogNnB4O1xufVxuLmdqcy10cnQtdHJhaXQ6aGFzKC5wbC1pY29uLXBpY2tlcikgLmdqcy1sYWJlbC13cnAsXG4uZ2pzLXRydC10cmFpdDpoYXMoLnBsLWljb24tcGlja2VyKSAuZ2pzLWxhYmVsIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZ2pzLXRydC10cmFpdDpoYXMoLnBsLWljb24tcGlja2VyKSAuZ2pzLWZpZWxkLXdycCxcbi5nanMtdHJ0LXRyYWl0OmhhcygucGwtaWNvbi1waWNrZXIpIC5nanMtZmllbGQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcbn1cblxuLnBsLWljb24tcGlja2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnBsLWljb24tcGlja2VyIC5wbC1pY29uLXNlYXJjaCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kLCAjMWYxZjI0KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjZThlOGViKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgIzNhM2E0MCk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5wbC1pY29uLXBpY2tlciAucGwtaWNvbi1zZWFyY2g6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM0YTllZmYpO1xufVxuLnBsLWljb24tcGlja2VyIC5wbC1pY29uLWdyaWQge1xuICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZy1yaWdodDogNHB4O1xufVxuLnBsLWljb24tcGlja2VyIC5wbC1pY29uLWdyb3VwIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC44cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjOGE4YTkyKTtcbiAgbWFyZ2luOiA4cHggMCA0cHg7XG59XG4ucGwtaWNvbi1waWNrZXIgLnBsLWljb24tcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgMWZyKTtcbiAgZ2FwOiA0cHg7XG59XG4ucGwtaWNvbi1waWNrZXIgLnBsLWljb24tdGlsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhc3BlY3QtcmF0aW86IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQsICMxZjFmMjQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICNlOGU4ZWIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgcGFkZGluZzogMDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cbi5wbC1pY29uLXBpY2tlciAucGwtaWNvbi10aWxlOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNGE5ZWZmKTtcbn1cbi5wbC1pY29uLXBpY2tlciAucGwtaWNvbi10aWxlLmlzLWFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzRhOWVmZik7XG4gIGJhY2tncm91bmQ6IHJnYmEoNzQsIDE1OCwgMjU1LCAwLjEyKTtcbn1cblxuLnBsLXZhcmlhYmxlLXBpY2tlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDEwMDUwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdHlwZSwgaW5oZXJpdCk7XG59XG4ucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1waWNrZXItYmFja2Ryb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIsICMwMDApIDU1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLXBpY2tlci1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MjBweDtcbiAgbWF4LXdpZHRoOiA5MHZ3O1xuICBtYXgtaGVpZ2h0OiA3MHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCAxMnB4KTtcbiAgYm94LXNoYWRvdzogdmFyKC0taC1vZmZzZXQsIDApIHZhcigtLXYtb2Zmc2V0LCA0cHgpIDUwcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJveHNoYWRvdywgIzAwMCkgNDAlLCB0cmFuc3BhcmVudCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1waWNrZXItaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLXNlYXJjaCB7XG4gIGZsZXg6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQsICNmZmYpO1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCwgIzMzMyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlciwgI2RlZTJlNik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cywgOHB4KTtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLXNlYXJjaDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0taW5wdXQtcGxhY2Vob2xkZXIsICM2Yzc1N2QpO1xufVxuLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtc2VhcmNoOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1mb2N1cy1ib3JkZXIsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pbnB1dC1mb2N1cy1ib3JkZXIsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpKSAxMi41JSwgdHJhbnNwYXJlbnQpO1xufVxuLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtY2xvc2Uge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQsICM2Yzc1N2QpO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMnB4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cywgNnB4KTtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWNsb3NlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xufVxuLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtbGlzdCB7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDZweCAwO1xufVxuLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtZ3JvdXAge1xuICBwYWRkaW5nOiAxMHB4IDE0cHggNHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGxldHRlci1zcGFjaW5nOiAxLjJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQsICM2Yzc1N2QpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxMnB4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMyk7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogOHB4IDE0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWl0ZW0gLnBsLXZhcmlhYmxlLWxhYmVsIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWl0ZW0gLnBsLXZhcmlhYmxlLWNvZGUge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCwgI2Y4ZjlmYSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlciwgI2RlZTJlNik7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cywgNHB4KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWl0ZW06aG92ZXIsIC5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWl0ZW0uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEyJSwgdHJhbnNwYXJlbnQpO1xufVxuLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtaXRlbTpob3ZlciAucGwtdmFyaWFibGUtY29kZSwgLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtaXRlbS5pcy1hY3RpdmUgLnBsLXZhcmlhYmxlLWNvZGUge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtZW1wdHkge1xuICBwYWRkaW5nOiAyNHB4IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQsICM2Yzc1N2QpO1xuICBmb250LXNpemU6IDEzcHg7XG59XG4ucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1oaW50IHtcbiAgcGFkZGluZzogOHB4IDE0cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCwgIzZjNzU3ZCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuZ3JhcGVzanMtcGFuZWwtbGVmdCB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gIH1cbiAgLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IHtcbiAgICB3aWR0aDogMjIwcHg7XG4gICAgbWluLXdpZHRoOiAyMjBweDtcbiAgfVxufVxuLmZsYXRwaWNrci1jYWxlbmRhci5mbGF0cGlja3Itd2l0aC1wcmVzZXRzLm9wZW4ge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5mbGF0cGlja3ItbWFpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mbGF0cGlja3ItcHJlc2V0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiAxMnB4O1xuICBtaW4td2lkdGg6IDE0MHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmZsYXRwaWNrci1wcmVzZXQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbi5mbGF0cGlja3ItcHJlc2V0LWNsZWFyIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uZGF0ZS1yYW5nZS10cmlnZ2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZGF0ZS1yYW5nZS10cmlnZ2VyIGlucHV0IHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTEwcHg7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmRhdGUtcmFuZ2UtdHJpZ2dlciBpbnB1dDpmb2N1cywgLmRhdGUtcmFuZ2UtdHJpZ2dlciBpbnB1dDpob3ZlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uZGF0ZS1yYW5nZS10cmlnZ2VyIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uc2FsX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42NXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnNhbF9fYm9keSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgMjY0cHg7XG4gIGdhcDogMC43NXJlbTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG4uc2FsX19tYWluIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA0NDBweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuLnNhbF9fY2FudmFzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjdmOTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMzAsIDQxLCA1OSwgMC4wNykgMXB4LCB0cmFuc3BhcmVudCAxcHgpLCBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMzAsIDQxLCA1OSwgMC4wNykgMXB4LCB0cmFuc3BhcmVudCAxcHgpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIycHggMjJweDtcbn1cbi5zYWxfX2Zsb2F0aW5nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNHJlbTtcbn1cbi5zYWxfX2Zsb2F0aW5nID4gKiB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnNhbF9fZmxvYXRpbmctLXRvb2xzIHtcbiAgdG9wOiAwLjZyZW07XG4gIGxlZnQ6IDAuNnJlbTtcbn1cbi5zYWxfX2Zsb2F0aW5nLS1zdGF0dXMge1xuICBib3R0b206IDAuNXJlbTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIG1heC13aWR0aDogODIlO1xuICBwYWRkaW5nOiAwLjI2cmVtIDAuNnJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jYXJkLWNvbG91cikgODUlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnNhbF9fZmxvYXRpbmctLXZpZXcge1xuICBib3R0b206IDAuNXJlbTtcbiAgbGVmdDogMC41cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG4gIHBhZGRpbmc6IDAuMjhyZW0gMC42NXJlbTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDg1JSwgIzAwMDAwMCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnNhbF9fZmxvYXRpbmctLXZpZXdbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2FsX19mbG9hdGluZy0tdG90YWxzIHtcbiAgdG9wOiAwLjVyZW07XG4gIHJpZ2h0OiAwLjVyZW07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZ2FwOiAwLjFyZW07XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC42cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA4OCUsIHRyYW5zcGFyZW50KTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnNhbF9fZmxvYXRpbmctLXRvdGFscyBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG4uc2FsX19mbG9hdGluZy0tdG90YWxzIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnNhbF9faWNvbi1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuODJyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zYWxfX2ljb24tYnRuLmlzLW9mZiB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5zYWxfX3NpZGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNnJlbTtcbiAgbWF4LWhlaWdodDogNDQwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4uc2FsX19zaWRlLXNlY3Rpb24ge1xuICBwYWRkaW5nOiAwLjZyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xufVxuLnNhbF9fc2lkZS10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC40NXJlbTtcbn1cbi5zYWxfX2VkaXRvci1oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XG59XG4uc2FsX19lZGl0b3ItcmVtb3ZlIHtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXItdGV4dCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnNhbF9fZ3JpZC1maWVsZHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogMC41cmVtIDAuNnJlbTtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xufVxuLnNhbF9fZmllbGQtaGludCB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xuICBtYXJnaW46IDAuMzVyZW0gMCAwLjZyZW07XG59XG4uc2FsX19maWVsZC1oaW50IHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uc2FsX19zbGlkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgYWNjZW50LWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xufVxuLnNhbF9fYmFja2Ryb3Age1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbn1cbi5zYWxfX2JhY2tkcm9wLWVkaXQuaXMtYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE0JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbn1cbi5zYWxfX29wYWNpdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMnJlbTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbWFyZ2luOiAwO1xufVxuLnNhbCAuZm9ybS1jb250cm9sLFxuLnNhbCAuZm9ybS1zZWxlY3Qge1xuICBwYWRkaW5nOiAwLjNyZW0gMC41cmVtO1xuICBmb250LXNpemU6IDAuODJyZW07XG59XG4uc2FsIC5mb3JtLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjc2cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjEycmVtO1xuICBtYXJnaW4tdG9wOiAwLjNyZW07XG59XG5cbi5zYWwtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjRyZW07XG59XG4uc2FsLWxpc3RfX2VtcHR5IHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG4uc2FsLWxpc3RfX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMC4zOHJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNiUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zYWwtbGlzdF9faXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxMiUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG4uc2FsLWxpc3RfX2l0ZW0uaXMtc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTYlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG4uc2FsLWxpc3RfX2ZhY2luZyB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtaW4td2lkdGg6IDEuODVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZzogMC4xOHJlbSAwLjNyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMjIlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNzJyZW07XG59XG4uc2FsLWxpc3RfX21ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuNzRyZW07XG59XG4uc2FsLWxpc3RfX21ldGEgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zYWwtbGlzdF9fcmVtb3ZlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNhbC1saXN0X19yZW1vdmU6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlci10ZXh0KTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5zYWxfX2JvZHkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gIH1cbiAgLnNhbF9fc2lkZSB7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgfVxufVxuLnNhbC0tcmVhZG9ubHkgLnNhbF9fY2FudmFzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBpbnNldDogYXV0bztcbiAgbWluLWhlaWdodDogNDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLnN5c3RlbS1tb25pdG9yX19oZXJvLS10YWxsIHtcbiAgbWluLWhlaWdodDogMzgwcHg7XG59XG5cbi5zeXN0ZW0taGVyby0tYXJyYXktbGF5b3V0IHtcbiAgbWluLWhlaWdodDogNDgwcHg7XG59XG5cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby1zbGlkZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xufVxuLnN5c3RlbS1tb25pdG9yX19oZXJvLXNsaWRlLmlzLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5zeXN0ZW0taGVyby1zbGlkZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnN5c3RlbS1oZXJvLS1hcnJheS1sYXlvdXQgLnN5c3RlbS1oZXJvLXNsaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG59XG4uc3lzdGVtLWhlcm8tLWFycmF5LWxheW91dCAuc3lzdGVtLWhlcm8tc2xpZGUuaXMtYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLnN5c3RlbS1tb25pdG9yX19oZXJvLW1hcCxcbi5zeXN0ZW0taGVyby1tYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xufVxuXG4uc3lzdGVtLW1vbml0b3JfX2hlcm8gLnN5c3RlbS1tb25pdG9yX19oZXJvLW1hcCAuc2FsX19jYW52YXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5zeXN0ZW0taGVybyAuc3lzdGVtLWhlcm8tbWFwIC5zYWxfX2NhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLnN5c3RlbS1tb25pdG9yX19oZXJvLW92ZXJsYXktLXNvZnQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApIDQ1JSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc3lzdGVtLW1vbml0b3JfX2hlcm8teWllbGQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHJpZ2h0OiAxcmVtO1xuICBib3R0b206IDFyZW07XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC43cmVtO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbn1cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby15aWVsZCBzdHJvbmcge1xuICBmb250LXNpemU6IDEuMDVyZW07XG59XG5cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby10YWJzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAzO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogMXJlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuMjVyZW07XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuXG4uc3lzdGVtLW1vbml0b3JfX2hlcm8tdGFiIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgcGFkZGluZzogMC4zMnJlbSAwLjhyZW07XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgZm9udC1zaXplOiAwLjc0cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc3lzdGVtLW1vbml0b3JfX2hlcm8tdGFiLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjMTExODI3O1xufVxuXG4uc3lzdGVtLW1vbml0b3JfX2hlcm8tYXJyYXlzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IDMuMnJlbTtcbiAgbGVmdDogMC43NXJlbTtcbiAgd2lkdGg6IDIxMHB4O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDEuNXJlbSk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDQuNnJlbSk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDAuNTVyZW0gMC42NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgxNywgMjQsIDM5LCAwLjYpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTtcbiAgY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuLnN5c3RlbS1tb25pdG9yX19oZXJvLWFycmF5czpoYXModWw6ZW1wdHkpIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnN5c3RlbS1tb25pdG9yX19oZXJvLWFycmF5cy10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuNjJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIG9wYWNpdHk6IDAuODtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xufVxuXG4uc3lzdGVtLW1vbml0b3JfX2hlcm8tYXJyYXlzIC5zYWwtbGVnZW5kIHtcbiAgbWFyZ2luOiAwO1xuICBnYXA6IDAuM3JlbTtcbn1cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby1hcnJheXMgLnNhbC1sZWdlbmRfX2l0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNDVyZW07XG59XG4uc3lzdGVtLW1vbml0b3JfX2hlcm8tYXJyYXlzIC5zYWwtbGVnZW5kX19mYWNpbmcge1xuICBtaW4td2lkdGg6IDEuN3JlbTtcbiAgcGFkZGluZzogMC4xNXJlbSAwLjNyZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDAuNjZyZW07XG59XG4uc3lzdGVtLW1vbml0b3JfX2hlcm8tYXJyYXlzIC5zYWwtbGVnZW5kX19tZXRhIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Mik7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbn1cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby1hcnJheXMgLnNhbC1sZWdlbmRfX21ldGEgc3Ryb25nIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5zeXN0ZW0taGVybyAuc3lzdGVtLW1vbml0b3JfX2hlcm8tYXJyYXlzIHtcbiAgdG9wOiAwLjg1cmVtO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMnJlbSk7XG59XG5cbi5zeXN0ZW0taGVybyAuc3lzdGVtLW1vbml0b3JfX2hlcm8tdGFicyB7XG4gIHRvcDogMC44NXJlbTtcbiAgcmlnaHQ6IDAuODVyZW07XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnN5c3RlbS1oZXJvIC5zeXN0ZW0tbW9uaXRvcl9faGVyby1hcnJheXMge1xuICAgIHdpZHRoOiAxODVweDtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNHJlbSk7XG4gIH1cbiAgLnN5c3RlbS1oZXJvIC5zeXN0ZW0tbW9uaXRvcl9faGVyby10YWJzIHtcbiAgICB0b3A6IDAuNzVyZW07XG4gICAgcmlnaHQ6IDAuNzVyZW07XG4gIH1cbn1cbi5zYWwgLmJ1dHRvbi0xMy1vdXRsaW5lLmlzLW9mZiB7XG4gIG9wYWNpdHk6IDAuNTU7XG59XG5cbi5zYWwtaW1wb3J0IHtcbiAgbWFyZ2luOiAyNXB4IGF1dG8gYXV0bztcbn1cbi5zYWwtaW1wb3J0X19oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMC44NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5zYWwtaW1wb3J0X19oZWFkIGgxIHtcbiAgZm9udC1zaXplOiAxLjQ1cmVtO1xuICBtYXJnaW46IDA7XG59XG4uc2FsLWltcG9ydF9faWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQycHg7XG4gIGhlaWdodDogNDJweDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTQlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbi5zYWwtaW1wb3J0X19zdWIge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMC44OHJlbTtcbiAgbWFyZ2luOiAwLjJyZW0gMCAwO1xuICBtYXgtd2lkdGg6IDYwY2g7XG59XG4uc2FsLWltcG9ydF9fcHJldmlldyB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG4uc2FsLWltcG9ydF9fYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjNyZW07XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nOiAwLjIycmVtIDAuNTVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNiUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5zYWwtc3VtbWFyeS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMC42NXJlbSAwLjhyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA2JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbn1cblxuLnNhbC1oYW5kbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IGdyYWI7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICBmb250LXNpemU6IDAuNzRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMDhzIGVhc2U7XG59XG4uc2FsLWhhbmRsZTpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wOCk7XG59XG4uc2FsLWhhbmRsZTphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLnNhbC1oYW5kbGUtLWNlbnRlciB7XG4gIHdpZHRoOiAyNXB4O1xuICBoZWlnaHQ6IDI1cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuLnNhbC1oYW5kbGUtLXJvdGF0ZSB7XG4gIHdpZHRoOiAyNXB4O1xuICBoZWlnaHQ6IDI1cHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG4uc2FsLWhhbmRsZS0tcmVzaXplIHtcbiAgd2lkdGg6IDE5cHg7XG4gIGhlaWdodDogMTlweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmZmZmY7XG4gIGN1cnNvcjogbndzZS1yZXNpemU7XG59XG4uc2FsLWhhbmRsZS0tdGlsdCB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuICBib3JkZXItcmFkaXVzOiAxMXB4O1xuICBiYWNrZ3JvdW5kOiAjMWYyOTM3O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IG5zLXJlc2l6ZTtcbn1cbi5zYWwtaGFuZGxlLS1iYWNrZHJvcC1tb3ZlIHtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogMjZweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsICMyYjZjYjAgNzglLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmZmZmO1xuICBjdXJzb3I6IG1vdmU7XG59XG4uc2FsLWhhbmRsZS0tYmFja2Ryb3Atc2NhbGUge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6ICMyYjZjYjA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmZmZmO1xuICBjdXJzb3I6IG53c2UtcmVzaXplO1xufVxuXG4uc3lzdGVtLWxheW91dCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbn1cbi5zeXN0ZW0tbGF5b3V0X19oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uc3lzdGVtLWxheW91dF9feWllbGQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZzogMC41cmVtIDAuOXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxMiUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG4uc3lzdGVtLWxheW91dF9feWllbGQtdmFsdWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uc3lzdGVtLWxheW91dF9feWllbGQtdW5pdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uc2FsLWxlZ2VuZCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMC44NXJlbSAwIDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC41cmVtO1xufVxuLnNhbC1sZWdlbmRfX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuNTVyZW0gMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA4JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbn1cbi5zYWwtbGVnZW5kX19mYWNpbmcge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWluLXdpZHRoOiAyLjRyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjRyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMjIlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLnNhbC1sZWdlbmRfX21ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi5zYWwtbGVnZW5kX19tZXRhIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5zYWwtZm9ybS1lcnJvcnMge1xuICBwYWRkaW5nOiAwLjdyZW0gMC45cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXItdGV4dCkgMTIlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlci10ZXh0KTtcbn1cbi5zYWwtZm9ybS1lcnJvcnMgdWwge1xuICBwYWRkaW5nLWxlZnQ6IDEuMXJlbTtcbn1cbi5zYWwtZm9ybS1lcnJvcnMgbGkge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uc3lzdGVtLXByb2ZpbGVfX2VzdGltYXRlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xuICBwYWRkaW5nOiAwLjJyZW0gMC41NXJlbTtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE0JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLyogbGV4eHkgZ2VtIENTUyBpcyBsb2FkZWQgdmlhIDxsaW5rIGhyZWY9XCIvdmVuZG9yL2xleHh5LmNzc1wiPiBpbiB0aGUgbGF5b3V0XG4gICBoZWFkIChiZWZvcmUgdGhpcyBmaWxlKSBzbyBpdHMgbmVzdGVkIEBpbXBvcnRzIHJlc29sdmUg4oCUIHNlZSB0aGUgbGF5b3V0IG5vdGUuXG4gICBUaGlzIGZpbGUgb25seSBob2xkcyBvdXIgb3duIG92ZXJyaWRlcyBvbiB0b3Agb2YgaXQuICovXG4vKiBHbG9iYWwgaGlnaGxpZ2h0IGNvbG9yIHZhcmlhYmxlcyAobmVlZGVkIGZvciByZW5kZXJlZCBjb250ZW50IG91dHNpZGUgZWRpdG9yKSAqL1xuOnJvb3Qge1xuICAvKiBUZXh0IGNvbG9yIGhpZ2hsaWdodHMgKi9cbiAgLS1oaWdobGlnaHQtMTogcmdiKDEzNiwgMTE4LCAzOCk7XG4gIC0taGlnaGxpZ2h0LTI6IHJnYigxODUsIDk0LCA2KTtcbiAgLS1oaWdobGlnaHQtMzogcmdiKDIwNywgMCwgMCk7XG4gIC0taGlnaGxpZ2h0LTQ6IHJnYigyMTYsIDI4LCAxNzApO1xuICAtLWhpZ2hsaWdodC01OiByZ2IoMTQ0LCAxOSwgMjU0KTtcbiAgLS1oaWdobGlnaHQtNjogcmdiKDUsIDk4LCAxODUpO1xuICAtLWhpZ2hsaWdodC03OiByZ2IoMTcsIDEzOCwgMTUpO1xuICAtLWhpZ2hsaWdodC04OiByZ2IoMTQ4LCA4MiwgMjIpO1xuICAtLWhpZ2hsaWdodC05OiByZ2IoMTAyLCAxMDIsIDEwMik7XG4gIC8qIEJhY2tncm91bmQgY29sb3IgaGlnaGxpZ2h0cyAqL1xuICAtLWhpZ2hsaWdodC1iZy0xOiByZ2JhKDIyOSwgMjIzLCA2LCAwLjMpO1xuICAtLWhpZ2hsaWdodC1iZy0yOiByZ2JhKDI1NSwgMTg1LCA4NywgMC4zKTtcbiAgLS1oaWdobGlnaHQtYmctMzogcmdiYSgyNTUsIDExOCwgMTE4LCAwLjMpO1xuICAtLWhpZ2hsaWdodC1iZy00OiByZ2JhKDI0OCwgMTM3LCAyMTYsIDAuMyk7XG4gIC0taGlnaGxpZ2h0LWJnLTU6IHJnYmEoMTkwLCAxNjUsIDI1NSwgMC4zKTtcbiAgLS1oaWdobGlnaHQtYmctNjogcmdiYSgxMjQsIDE5MiwgMjUyLCAwLjMpO1xuICAtLWhpZ2hsaWdodC1iZy03OiByZ2JhKDE0MCwgMjU1LCAxMjksIDAuMyk7XG4gIC0taGlnaGxpZ2h0LWJnLTg6IHJnYmEoMjIxLCAxNzAsIDEyMywgMC4zKTtcbiAgLS1oaWdobGlnaHQtYmctOTogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjMpO1xufVxuXG4vKiBMZXh4eSBSaWNoIFRleHQgRWRpdG9yIFN0eWxpbmcgKi9cbmxleHh5LWVkaXRvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHZhcigtLWgtb2Zmc2V0KSB2YXIoLS12LW9mZnNldCkgdmFyKC0tYmx1ci1yYWRpdXMpIHZhcigtLWJveHNoYWRvdykgIWltcG9ydGFudDtcbn1cblxuLyogTGV4eHkgZWRpdG9yIGNvbnRlbnQgYXJlYSAqL1xubGV4eHktZWRpdG9yIC5sZXh4eS1jb250ZW50LFxubGV4eHktZWRpdG9yIFtjb250ZW50ZWRpdGFibGVdLFxubGV4eHktZWRpdG9yIC5Qcm9zZU1pcnJvcixcbmxleHh5LWVkaXRvciAubGV4eHktZWRpdG9yX19jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMjBweCAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tYm9yZGVyLXJhZGl1cykgdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbn1cblxuLyogTGV4eHkgdG9vbGJhciBzdHlsaW5nICovXG5sZXh4eS10b29sYmFyLFxuLmxleHh5LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpIHZhcigtLWJvcmRlci1yYWRpdXMpIDAgMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBnYXA6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG4vKiBOT1RFOiB0aGUgZ2VuZXJpYyBgbGV4eHktdG9vbGJhciBidXR0b25gIGJhc2UvaG92ZXIvYWN0aXZlIHJ1bGVzIHdlcmUgcmVtb3ZlZFxuICAgZm9yIExleHh5IDAuOSDigJQgdGhleSBzdHlsZWQgdGhlIGhpZ2hsaWdodC1kcm9wZG93biB0cmlnZ2VyIGFuZCB0aGUgZm9ybWF0IC9cbiAgIGhlYWRpbmcgZHJvcGRvd24gaXRlbXMgdG9vLCB3aGljaCBicm9rZSB0aGVpciBhbGlnbm1lbnQvbGF5b3V0LiBUaGUgY29ycmVjdFxuICAgMC45IHJ1bGVzIGFyZSBgYnV0dG9uOm5vdCgubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbilgIChmdXJ0aGVyIGRvd24pLCB3aGljaFxuICAgbGVhdmUgdGhlIGRyb3Bkb3duIGJ1dHRvbnMgdG8gdGhlaXIgZGVkaWNhdGVkIHN0eWxpbmcuICovXG4vKiBMZXh4eSBkcm9wZG93biBtZW51cyAqL1xubGV4eHktZWRpdG9yIC5sZXh4eS1kcm9wZG93bixcbi5sZXh4eS1kcm9wZG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1oLW9mZnNldCkgdmFyKC0tdi1vZmZzZXQpIHZhcigtLWJsdXItcmFkaXVzKSB2YXIoLS1ib3hzaGFkb3cpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuLyogTGV4eHkgZHJvcGRvd24gaXRlbXMgKi9cbmxleHh5LWVkaXRvciAubGV4eHktZHJvcGRvd24taXRlbSxcbi5sZXh4eS1kcm9wZG93bi1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWVkaXRvciAubGV4eHktZHJvcGRvd24taXRlbTpob3Zlcixcbi5sZXh4eS1kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogRml4OiBPdmVycmlkZSBMZXh4eSdzIGRlZmF1bHQgaGlnaGxpZ2h0IGJhY2tncm91bmRcbiAgIFRoZSBnZW0gc2V0cyBiYWNrZ3JvdW5kLWNvbG9yIG9uIC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsIFxuICAgYnV0IHdlIG9ubHkgd2FudCBiYWNrZ3JvdW5kIHdoZW4gZXhwbGljaXRseSBzZXQgdmlhIGlubGluZSBzdHlsZS5cbiAgIFVzaW5nIGhpZ2ggc3BlY2lmaWNpdHkgd2l0aG91dCAhaW1wb3J0YW50IHNvIGlubGluZSBzdHlsZXMgY2FuIG92ZXJyaWRlICovXG5sZXh4eS1lZGl0b3IgLmxleHh5LWVkaXRvcl9fY29udGVudCBtYXJrLFxubGV4eHktZWRpdG9yIC5sZXh4eS1lZGl0b3JfX2NvbnRlbnQgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbmxleHh5LWVkaXRvciAubGV4eHktY29udGVudCBtYXJrLFxubGV4eHktZWRpdG9yIC5sZXh4eS1jb250ZW50IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyogU2FtZSBmaXggZm9yIHJlbmRlcmVkIGNvbnRlbnQgb3V0c2lkZSB0aGUgZWRpdG9yIChwcm9wb3NhbCBwYWdlcywgZXRjLikgKi9cbi5sZXh4eS1jb250ZW50IG1hcmssXG4ubGV4eHktY29udGVudCAubGV4eHktY29udGVudF9faGlnaGxpZ2h0LFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgbWFyayxcbi5hY3Rpb24tdGV4dC1jb250ZW50IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG4ucHJvcG9zYWwtY29udGVudCBtYXJrLFxuLnByb3Bvc2FsLWNvbnRlbnQgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbi5wb3N0LWNvbnRlbnQgbWFyayxcbi5wb3N0LWNvbnRlbnQgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbi5jYXJkLWJvZHkgbWFyayxcbi5jYXJkLWJvZHkgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbmFydGljbGUgbWFyayxcbmFydGljbGUgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbnNlY3Rpb24gbWFyayxcbnNlY3Rpb24gLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKiBMZXh4eSB0ZXh0IGZvcm1hdHRpbmcgKi9cbmxleHh5LWVkaXRvciBzdHJvbmcsXG5sZXh4eS1lZGl0b3IgYiB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcbn1cblxubGV4eHktZWRpdG9yIGVtLFxubGV4eHktZWRpdG9yIGkge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1lZGl0b3IgdSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxubGV4eHktZWRpdG9yIGEge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxubGV4eHktZWRpdG9yIGE6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBMZXh4eSBsaXN0cyAqL1xubGV4eHktZWRpdG9yIHVsLFxubGV4eHktZWRpdG9yIG9sIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1lZGl0b3IgbGkge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLyogTGV4eHkgYmxvY2txdW90ZXMgKi9cbmxleHh5LWVkaXRvciBibG9ja3F1b3RlIHtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMXJlbSAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tYm9yZGVyLXJhZGl1cykgdmFyKC0tYm9yZGVyLXJhZGl1cykgMCAhaW1wb3J0YW50O1xuICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDtcbn1cblxuLyogTGV4eHkgY29kZSBibG9ja3MgKi9cbmxleHh5LWVkaXRvciBjb2RlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiTW9uYWNvXCIsIFwiTWVubG9cIiwgXCJVYnVudHUgTW9ub1wiLCBtb25vc3BhY2UgIWltcG9ydGFudDtcbn1cblxubGV4eHktZWRpdG9yIHByZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4vKiBMZXh4eSBwbGFjZWhvbGRlciB0ZXh0ICovXG5sZXh4eS1lZGl0b3IgLlByb3NlTWlycm9yLXBsYWNlaG9sZGVyOjpiZWZvcmUsXG5sZXh4eS1lZGl0b3IgW2RhdGEtcGxhY2Vob2xkZXJdOjpiZWZvcmUge1xuICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA1MCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xuICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDtcbn1cblxuLyogTGV4eHkgZm9jdXMgc3RhdGVzICovXG5sZXh4eS1lZGl0b3I6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDIwJSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG5cbi8qIEN1c3RvbSBHUFQgYnV0dG9uIHN0eWxpbmcgKi9cbmxleHh5LXRvb2xiYXIgYnV0dG9uW3RpdGxlPVwiQXNrIFBlcmljbGVzXCJdLFxuLmxleHh5LXRvb2xiYXIgYnV0dG9uW3RpdGxlPVwiQXNrIFBlcmljbGVzXCJdLFxuLmxleHh5LWdwdC1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDgwJSwgdHJhbnNwYXJlbnQpKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgYnV0dG9uW3RpdGxlPVwiQXNrIFBlcmljbGVzXCJdOmhvdmVyLFxuLmxleHh5LXRvb2xiYXIgYnV0dG9uW3RpdGxlPVwiQXNrIFBlcmljbGVzXCJdOmhvdmVyLFxuLmxleHh5LWdwdC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1idXR0b24taG92ZXIpLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnV0dG9uLWhvdmVyKSA4MCUsIHRyYW5zcGFyZW50KSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1ob3ZlcikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNTAlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciBidXR0b25bdGl0bGU9XCJBc2sgUGVyaWNsZXNcIl06OmJlZm9yZSxcbi5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXTo6YmVmb3JlLFxuLmxleHh5LWdwdC1idXR0b246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCIgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogLTJweCAhaW1wb3J0YW50O1xuICBsZWZ0OiAtMnB4ICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAtMnB4ICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogLTJweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpLCB2YXIoLS1idXR0b24taG92ZXIpLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cykgIWltcG9ydGFudDtcbiAgei1pbmRleDogLTEgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXTpob3Zlcjo6YmVmb3JlLFxuLmxleHh5LXRvb2xiYXIgYnV0dG9uW3RpdGxlPVwiQXNrIFBlcmljbGVzXCJdOmhvdmVyOjpiZWZvcmUsXG4ubGV4eHktZ3B0LWJ1dHRvbjpob3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4vKiBMZXh4eSBQcm9tcHQgU3lzdGVtIFN0eWxpbmcgLSBDb3JyZWN0IHNlbGVjdG9ycyAqL1xucHJvbXB0LXBvcG92ZXIsXG4ucHJvbXB0LXBvcG92ZXIsXG5sZXh4eS1wcm9tcHQtbWVudSxcbi5sZXh4eS1wcm9tcHQtbWVudSxcbi5sZXh4eS1wcm9tcHQtbWVudS0tdmlzaWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1oLW9mZnNldCkgdmFyKC0tdi1vZmZzZXQpIHZhcigtLWJsdXItcmFkaXVzKSB2YXIoLS1ib3hzaGFkb3cpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgei1pbmRleDogMTAwMDAgIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogMzAwcHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50O1xufVxuXG4vKiBQcm9tcHQgbWVudSBpdGVtcyAqL1xubGkubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW0sXG4ubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAuMTI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi8qIExhc3QgaXRlbSBubyBib3JkZXIgKi9cbmxpLmxleHh5LXByb21wdC1tZW51X19pdGVtOmxhc3QtY2hpbGQsXG4ubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogSG92ZXIgYW5kIHNlbGVjdGVkIHN0YXRlcyAqL1xubGkubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW06aG92ZXIsXG5saS5sZXh4eS1wcm9tcHQtbWVudV9faXRlbVthcmlhLXNlbGVjdGVkPXRydWVdLFxuLmxleHh5LXByb21wdC1tZW51X19pdGVtOmhvdmVyLFxuLmxleHh5LXByb21wdC1tZW51X19pdGVtW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBWYXJpYWJsZSBtZW51IGl0ZW0gc3R5bGluZyAqL1xuLnZhcmlhYmxlLW1lbnUtaXRlbSB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLnZhcmlhYmxlLW5hbWUge1xuICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDJweCAhaW1wb3J0YW50O1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4udmFyaWFibGUtZGVzYyB7XG4gIGZvbnQtc2l6ZTogMC44NWVtICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuOCAhaW1wb3J0YW50O1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4vKiBWYXJpYWJsZSBkZXNjcmlwdGlvbnMgb24gaG92ZXIgKi9cbmxpLmxleHh5LXByb21wdC1tZW51X19pdGVtOmhvdmVyIC52YXJpYWJsZS1kZXNjLFxubGkubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW1bYXJpYS1zZWxlY3RlZD10cnVlXSAudmFyaWFibGUtZGVzYyxcbi5sZXh4eS1wcm9tcHQtbWVudV9faXRlbTpob3ZlciAudmFyaWFibGUtZGVzYyxcbi5sZXh4eS1wcm9tcHQtbWVudV9faXRlbVthcmlhLXNlbGVjdGVkPXRydWVdIC52YXJpYWJsZS1kZXNjIHtcbiAgb3BhY2l0eTogMC45ICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRvb2xiYXIgZHJvcGRvd24gYnV0dG9ucyAoaGlnaGxpZ2h0LCBsaW5rKSAqL1xubGV4eHktdG9vbGJhciBkZXRhaWxzLmxleHh5LWVkaXRvcl9fdG9vbGJhci1kcm9wZG93bixcbmxleHh5LXRvb2xiYXIgLmxleHh5LWVkaXRvcl9fdG9vbGJhci1kcm9wZG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIGRldGFpbHMubGV4eHktZWRpdG9yX190b29sYmFyLWRyb3Bkb3duID4gc3VtbWFyeSxcbmxleHh5LXRvb2xiYXIgLmxleHh5LWVkaXRvcl9fdG9vbGJhci1kcm9wZG93biA+IHN1bW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjVyZW0gIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMzJweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBsaXN0LXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgZGV0YWlscy5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItZHJvcGRvd24gPiBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIGRldGFpbHMubGV4eHktZWRpdG9yX190b29sYmFyLWRyb3Bkb3duID4gc3VtbWFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3ZlcikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1ob3ZlcikgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgZGV0YWlscy5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItZHJvcGRvd25bb3Blbl0gPiBzdW1tYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBUb29sYmFyIGRyb3Bkb3duIGNvbnRlbnQgcGFuZWxzLlxuICAgTk9URTogYGxleHh5LWhpZ2hsaWdodC1kcm9wZG93bmAgd2FzIHJlbW92ZWQgZnJvbSB0aGlzIGdyb3VwLiBJbiBMZXh4eSAwLjkgaXRcbiAgIGlzIHRoZSB0b29sYmFyLWl0ZW0gV1JBUFBFUiAoaG9sZHMgdGhlIHRyaWdnZXIgYnV0dG9uICsgYW4gaW5uZXJcbiAgIFtkYXRhLWRyb3Bkb3duLXBhbmVsXSksIG5vdCB0aGUgZmx5b3V0IGl0c2VsZi4gU3R5bGluZyBpdCBhcyBhbiBhYnNvbHV0ZSBwYW5lbFxuICAgcHV0IGEgNHB4IHRvcCBtYXJnaW4gb24gaXQsIGRyb3BwaW5nIHRoZSBoaWdobGlnaHQgYnV0dG9uIGJlbG93IHRoZSBvdGhlclxuICAgdG9vbGJhciBidXR0b25zLiBUaGUgcmVhbCBmbHlvdXQgKFtkYXRhLWRyb3Bkb3duLXBhbmVsXSkgaXMgc3R5bGVkIGVsc2V3aGVyZS4gKi9cbmxleHh5LXRvb2xiYXIgLmxleHh5LWVkaXRvcl9fdG9vbGJhci1kcm9wZG93bi1jb250ZW50LFxubGV4eHktbGluay1kaWFsb2cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0taC1vZmZzZXQpIHZhcigtLXYtb2Zmc2V0KSB2YXIoLS1ibHVyLXJhZGl1cykgdmFyKC0tYm94c2hhZG93KSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdG9wOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgei1pbmRleDogMTAwMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciAubGV4eHktZWRpdG9yX190b29sYmFyLWRyb3Bkb3duLXJlc2V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cykgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciAubGV4eHktZWRpdG9yX190b29sYmFyLWRyb3Bkb3duLXJlc2V0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhpZ2hsaWdodCBjb2xvciBwaWNrZXIgc3R5bGluZyAqL1xubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIFtkYXRhLWJ1dHRvbi1ncm91cF0ge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgZ2FwOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gLmxleHh5LWhpZ2hsaWdodC1idXR0b24ge1xuICB3aWR0aDogMzJweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMsIDRweCkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLyogVGV4dCBjb2xvciByb3cgLSBzaG93IGNvbG9yZWQgXCJBYVwiIHRleHQgb24gZGFyayBiYWNrZ3JvdW5kICovXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWNvbG9yXSAubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWNvbG9yXSAubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbjpudGgtY2hpbGQoMSkge1xuICBjb2xvcjogcmdiKDEzNiwgMTE4LCAzOCkgIWltcG9ydGFudDtcbn1cblxubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIFtkYXRhLWJ1dHRvbi1ncm91cD1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDIpIHtcbiAgY29sb3I6IHJnYigxODUsIDk0LCA2KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWNvbG9yXSAubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbjpudGgtY2hpbGQoMykge1xuICBjb2xvcjogcmdiKDIwNywgMCwgMCkgIWltcG9ydGFudDtcbn1cblxubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIFtkYXRhLWJ1dHRvbi1ncm91cD1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDQpIHtcbiAgY29sb3I6IHJnYigyMTYsIDI4LCAxNzApICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9Y29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg1KSB7XG4gIGNvbG9yOiByZ2IoMTQ0LCAxOSwgMjU0KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWNvbG9yXSAubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbjpudGgtY2hpbGQoNikge1xuICBjb2xvcjogcmdiKDUsIDk4LCAxODUpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9Y29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg3KSB7XG4gIGNvbG9yOiByZ2IoMTcsIDEzOCwgMTUpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9Y29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg4KSB7XG4gIGNvbG9yOiByZ2IoMTQ4LCA4MiwgMjIpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9Y29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg5KSB7XG4gIGNvbG9yOiByZ2IoMTAyLCAxMDIsIDEwMikgIWltcG9ydGFudDtcbn1cblxuLyogQmFja2dyb3VuZCBjb2xvciByb3cgLSBzaG93IGNvbG9yZWQgYmFja2dyb3VuZHMgKi9cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9YmFja2dyb3VuZC1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b24ge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9YmFja2dyb3VuZC1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDEpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjksIDIyMywgNiwgMC41KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWJhY2tncm91bmQtY29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCgyKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxODUsIDg3LCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9YmFja2dyb3VuZC1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDMpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDExOCwgMTE4LCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9YmFja2dyb3VuZC1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDgsIDEzNywgMjE2LCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9YmFja2dyb3VuZC1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDUpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOTAsIDE2NSwgMjU1LCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9YmFja2dyb3VuZC1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDYpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjQsIDE5MiwgMjUyLCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9YmFja2dyb3VuZC1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDcpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNDAsIDI1NSwgMTI5LCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9YmFja2dyb3VuZC1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDgpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjEsIDE3MCwgMTIzLCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9YmFja2dyb3VuZC1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDkpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbi8qIFNlbGVjdGVkIHN0YXRlICovXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gLmxleHh5LWhpZ2hsaWdodC1idXR0b25bYXJpYS1wcmVzc2VkPXRydWVdIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHggIWltcG9ydGFudDtcbn1cblxuLyogSG9yaXpvbnRhbCBkaXZpZGVyIHN0eWxpbmcgLSBvdmVycmlkZSBMZXh4eSBkZWZhdWx0cyAqL1xubGV4eHktZWRpdG9yIGZpZ3VyZS5ob3Jpem9udGFsLWRpdmlkZXIsXG5sZXh4eS1lZGl0b3IgLmhvcml6b250YWwtZGl2aWRlcixcbmxleHh5LWVkaXRvciAubGV4eHktZWRpdG9yX19jb250ZW50IGZpZ3VyZS5ob3Jpem9udGFsLWRpdmlkZXIge1xuICBhbGw6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMC41cmVtIDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbn1cblxubGV4eHktZWRpdG9yIGZpZ3VyZS5ob3Jpem9udGFsLWRpdmlkZXIgaHIsXG5sZXh4eS1lZGl0b3IgLmhvcml6b250YWwtZGl2aWRlciBocixcbmxleHh5LWVkaXRvciAubGV4eHktZWRpdG9yX19jb250ZW50IGZpZ3VyZS5ob3Jpem9udGFsLWRpdmlkZXIgaHIsXG5sZXh4eS1lZGl0b3IgaHI6bm90KFtjbGFzc10pIHtcbiAgYWxsOiB1bnNldCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDJweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyLCAjNTU1KSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLyogVGFibGUgc3R5bGluZyAqL1xubGV4eHktZWRpdG9yIHRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDFyZW0gMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1lZGl0b3IgdGFibGUgdGgsXG5sZXh4eS1lZGl0b3IgdGFibGUgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBIZWFkZXIgY2VsbCBzdHlsaW5nICh3aGVuIHRvZ2dsZWQgb24gdmlhIHRoZSB0YWJsZSBtZW51KSAqL1xubGV4eHktZWRpdG9yIHRhYmxlIHRoLFxubGV4eHktZWRpdG9yIHRhYmxlIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNSUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhvdmVyIGVmZmVjdCBmb3Igbm9uLWhlYWRlciBjZWxscyAqL1xubGV4eHktZWRpdG9yIHRhYmxlIHRyOmhvdmVyIHRkOm5vdCgubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyKSxcbmxleHh5LWVkaXRvciB0YWJsZSB0cjpob3ZlciB0aDpub3QoLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgOCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuXG4vKiBUYWJsZSBjZWxsIHNlbGVjdGlvbiAqL1xubGV4eHktZWRpdG9yIHRhYmxlIHRkLnRhYmxlLWNlbGwtLXNlbGVjdGVkLFxubGV4eHktZWRpdG9yIHRhYmxlIHRoLnRhYmxlLWNlbGwtLXNlbGVjdGVkLFxubGV4eHktZWRpdG9yIHRhYmxlIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLXNlbGVjdGVkLFxubGV4eHktZWRpdG9yIHRhYmxlIHRoLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDI1JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBvdXRsaW5lLW9mZnNldDogLTJweCAhaW1wb3J0YW50O1xufVxuXG4vKiBUYWJsZSBoYW5kbGUgYnV0dG9ucyBjb250YWluZXIgLSBjb21wbGV0ZWx5IHRyYW5zcGFyZW50ICovXG4ubGV4eHktdGFibGUtaGFuZGxlLWJ1dHRvbnMsXG5sZXh4eS1lZGl0b3IgLmxleHh5LXRhYmxlLWhhbmRsZS1idXR0b25zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBUYWJsZSBjb250cm9sIHBhbmVsIHN0eWxpbmcgKi9cbi5sZXh4eS10YWJsZS1jb250cm9sLFxubGV4eHktZWRpdG9yIC5sZXh4eS10YWJsZS1jb250cm9sIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHZhcigtLWgtb2Zmc2V0KSB2YXIoLS12LW9mZnNldCkgdmFyKC0tYmx1ci1yYWRpdXMpIHZhcigtLWJveHNoYWRvdykgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBUYWJsZSBjb250cm9sIHRleHQgYW5kIGlucHV0cyAtIGZpeCB3aGl0ZSB0ZXh0IG9uIHdoaXRlIGJhY2tncm91bmQgKi9cbmxleHh5LWVkaXRvciAubGV4eHktdGFibGUtY29udHJvbCxcbmxleHh5LWVkaXRvciAubGV4eHktdGFibGUtY29udHJvbCAqLFxuLmxleHh5LXRhYmxlLWNvbnRyb2wsXG4ubGV4eHktdGFibGUtY29udHJvbCAqIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ubGV4eHktdGFibGUtY29udHJvbF9fYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xufVxuXG4ubGV4eHktdGFibGUtY29udHJvbF9fYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRhYmxlIGNvbnRyb2wgc3VtbWFyeSAoZHJvcGRvd24gdHJpZ2dlcikgaWNvbiAqL1xubGV4eHktZWRpdG9yIC5sZXh4eS10YWJsZS1jb250cm9sIHN1bW1hcnksXG4ubGV4eHktdGFibGUtY29udHJvbCBzdW1tYXJ5LFxubGV4eHktZWRpdG9yIC5sZXh4eS10YWJsZS1jb250cm9sIGRldGFpbHMgPiBzdW1tYXJ5LFxuLmxleHh5LXRhYmxlLWNvbnRyb2wgZGV0YWlscyA+IHN1bW1hcnkge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWVkaXRvciAubGV4eHktdGFibGUtY29udHJvbCBzdW1tYXJ5IHN2Zyxcbi5sZXh4eS10YWJsZS1jb250cm9sIHN1bW1hcnkgc3ZnLFxubGV4eHktZWRpdG9yIC5sZXh4eS10YWJsZS1jb250cm9sIGRldGFpbHMgPiBzdW1tYXJ5IHN2Zyxcbi5sZXh4eS10YWJsZS1jb250cm9sIGRldGFpbHMgPiBzdW1tYXJ5IHN2ZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZmlsbDogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHN0cm9rZTogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5sZXh4eS10YWJsZS1jb250cm9sX19tb3JlLW1lbnUsXG4ubGV4eHktdGFibGUtY29udHJvbF9fbW9yZS1tZW51LXNlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cykgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBNb3JlIG1lbnUgZHJvcGRvd24gYnV0dG9uIHN0eWxpbmcgKi9cbi5sZXh4eS10YWJsZS1jb250cm9sX19tb3JlLW1lbnUgYnV0dG9uLFxuLmxleHh5LXRhYmxlLWNvbnRyb2xfX21vcmUtbWVudS1zZWN0aW9uIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC41cmVtICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xufVxuXG4ubGV4eHktdGFibGUtY29udHJvbF9fbW9yZS1tZW51IGJ1dHRvbjpob3Zlcixcbi5sZXh4eS10YWJsZS1jb250cm9sX19tb3JlLW1lbnUtc2VjdGlvbiBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24taG92ZXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCkgIWltcG9ydGFudDtcbn1cblxuLmxleHh5LXRhYmxlLWNvbnRyb2xfX21vcmUtbWVudSBidXR0b246aG92ZXIgc3Bhbixcbi5sZXh4eS10YWJsZS1jb250cm9sX19tb3JlLW1lbnUtc2VjdGlvbiBidXR0b246aG92ZXIgc3Bhbixcbi5sZXh4eS10YWJsZS1jb250cm9sX19tb3JlLW1lbnUgYnV0dG9uOmhvdmVyICosXG4ubGV4eHktdGFibGUtY29udHJvbF9fbW9yZS1tZW51LXNlY3Rpb24gYnV0dG9uOmhvdmVyICoge1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSZW5kZXJlZCBDb250ZW50IFRhYmxlcyAob3V0c2lkZSBlZGl0b3IpXG4gICBUaGVzZSBzdHlsZXMgYXBwbHkgdG8gdGFibGVzIGluIExleHh5L0FjdGlvblRleHQgXG4gICBjb250ZW50IGFyZWFzLCBwcm9wb3NhbHMsIGFuZCBvdGhlciB2aWV3c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIExleHh5IGNvbnRlbnQgd3JhcHBlciAqL1xuLmxleHh5LWNvbnRlbnQgdGFibGUsXG4uYWN0aW9uLXRleHQtY29udGVudCB0YWJsZSxcbltjbGFzcyo9cmljaC10ZXh0XSB0YWJsZSxcbi5wcm9wb3NhbC1jb250ZW50IHRhYmxlLFxuLnBkZi1jb250ZW50IHRhYmxlLFxuLnBvc3QtY29udGVudCB0YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAxcmVtIDAgIWltcG9ydGFudDtcbn1cblxuLmxleHh5LWNvbnRlbnQgdGFibGUgdGgsXG4ubGV4eHktY29udGVudCB0YWJsZSB0ZCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IHRhYmxlIHRoLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgdGFibGUgdGQsXG5bY2xhc3MqPXJpY2gtdGV4dF0gdGFibGUgdGgsXG5bY2xhc3MqPXJpY2gtdGV4dF0gdGFibGUgdGQsXG4ucHJvcG9zYWwtY29udGVudCB0YWJsZSB0aCxcbi5wcm9wb3NhbC1jb250ZW50IHRhYmxlIHRkLFxuLnBkZi1jb250ZW50IHRhYmxlIHRoLFxuLnBkZi1jb250ZW50IHRhYmxlIHRkLFxuLnBvc3QtY29udGVudCB0YWJsZSB0aCxcbi5wb3N0LWNvbnRlbnQgdGFibGUgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xufVxuXG4vKiBIZWFkZXIgY2VsbHMgaW4gcmVuZGVyZWQgY29udGVudCAqL1xuLmxleHh5LWNvbnRlbnQgdGFibGUgdGgsXG4ubGV4eHktY29udGVudCB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG4uYWN0aW9uLXRleHQtY29udGVudCB0YWJsZSB0aCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IHRhYmxlIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlcixcbltjbGFzcyo9cmljaC10ZXh0XSB0YWJsZSB0aCxcbltjbGFzcyo9cmljaC10ZXh0XSB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG4ucHJvcG9zYWwtY29udGVudCB0YWJsZSB0aCxcbi5wcm9wb3NhbC1jb250ZW50IHRhYmxlIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlcixcbi5wZGYtY29udGVudCB0YWJsZSB0aCxcbi5wZGYtY29udGVudCB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG4ucG9zdC1jb250ZW50IHRhYmxlIHRoLFxuLnBvc3QtY29udGVudCB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzZjNzU3ZCkgMTUlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xufVxuXG4vKiBHZW5lcmljIHRhYmxlIHN0eWxpbmcgZm9yIGFueSB0YWJsZSBpbiBjb250ZW50IGFyZWFzICovXG4uY2FyZC1ib2R5IHRhYmxlOm5vdCgudGFibGUpLFxuYXJ0aWNsZSB0YWJsZSxcbnNlY3Rpb24gdGFibGU6bm90KC50YWJsZSksXG4uY29udGVudCB0YWJsZTpub3QoLnRhYmxlKSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAxcmVtIDAgIWltcG9ydGFudDtcbn1cblxuLmNhcmQtYm9keSB0YWJsZTpub3QoLnRhYmxlKSB0aCxcbi5jYXJkLWJvZHkgdGFibGU6bm90KC50YWJsZSkgdGQsXG5hcnRpY2xlIHRhYmxlIHRoLFxuYXJ0aWNsZSB0YWJsZSB0ZCxcbnNlY3Rpb24gdGFibGU6bm90KC50YWJsZSkgdGgsXG5zZWN0aW9uIHRhYmxlOm5vdCgudGFibGUpIHRkLFxuLmNvbnRlbnQgdGFibGU6bm90KC50YWJsZSkgdGgsXG4uY29udGVudCB0YWJsZTpub3QoLnRhYmxlKSB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhlYWRlciBjZWxscyBpbiBnZW5lcmljIGNvbnRlbnQgYXJlYXMgKi9cbi5jYXJkLWJvZHkgdGFibGU6bm90KC50YWJsZSkgdGgsXG4uY2FyZC1ib2R5IHRhYmxlOm5vdCgudGFibGUpIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlcixcbmFydGljbGUgdGFibGUgdGgsXG5hcnRpY2xlIHRhYmxlIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlcixcbnNlY3Rpb24gdGFibGU6bm90KC50YWJsZSkgdGgsXG5zZWN0aW9uIHRhYmxlOm5vdCgudGFibGUpIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlcixcbi5jb250ZW50IHRhYmxlOm5vdCgudGFibGUpIHRoLFxuLmNvbnRlbnQgdGFibGU6bm90KC50YWJsZSkgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM2Yzc1N2QpIDE1JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbn1cblxuLyogSG9yaXpvbnRhbCBkaXZpZGVyIGluIHJlbmRlcmVkIGNvbnRlbnQgKi9cbi5sZXh4eS1jb250ZW50IGZpZ3VyZS5ob3Jpem9udGFsLWRpdmlkZXIsXG4uYWN0aW9uLXRleHQtY29udGVudCBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyLFxuLnBvc3QtY29udGVudCBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyLFxuLnByb3Bvc2FsLWNvbnRlbnQgZmlndXJlLmhvcml6b250YWwtZGl2aWRlcixcbi5wZGYtY29udGVudCBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyIHtcbiAgbWFyZ2luOiAwLjVyZW0gMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5sZXh4eS1jb250ZW50IGhyLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgaHIsXG4ucG9zdC1jb250ZW50IGhyLFxuLnByb3Bvc2FsLWNvbnRlbnQgaHIsXG4ucGRmLWNvbnRlbnQgaHIge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJlbmRlcmVkIFJpY2ggVGV4dCBDb250ZW50IC0gVGV4dCBDb2xvclxuICAgRW5zdXJlcyByaWNoIHRleHQgY29udGVudCBpbmhlcml0cyB0aGUgdGhlbWVcbiAgIHRleHQgY29sb3Igd2hlbiBubyBoaWdobGlnaHQgaXMgYXBwbGllZFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sZXh4eS1jb250ZW50LFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQsXG4ucG9zdC1jb250ZW50LFxuLnByb3Bvc2FsLWNvbnRlbnQsXG4ucGRmLWNvbnRlbnQsXG5bY2xhc3MqPXJpY2gtdGV4dF0ge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsIGluaGVyaXQpO1xufVxuXG4vKiBFbnN1cmUgYWxsIHRleHQgZWxlbWVudHMgd2l0aGluIHJlbmRlcmVkIGNvbnRlbnQgaW5oZXJpdCB0aGUgdGV4dCBjb2xvciAqL1xuLmxleHh5LWNvbnRlbnQgcCxcbi5sZXh4eS1jb250ZW50IHNwYW46bm90KFtzdHlsZSo9Y29sb3JdKSxcbi5sZXh4eS1jb250ZW50IGRpdjpub3QoW3N0eWxlKj1jb2xvcl0pLFxuLmxleHh5LWNvbnRlbnQgbGksXG4ubGV4eHktY29udGVudCB1bCxcbi5sZXh4eS1jb250ZW50IG9sLFxuLmxleHh5LWNvbnRlbnQgYmxvY2txdW90ZSxcbi5sZXh4eS1jb250ZW50IHN0cm9uZyxcbi5sZXh4eS1jb250ZW50IGVtLFxuLmxleHh5LWNvbnRlbnQgdSxcbi5sZXh4eS1jb250ZW50IGIsXG4ubGV4eHktY29udGVudCBpLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgcCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IHNwYW46bm90KFtzdHlsZSo9Y29sb3JdKSxcbi5hY3Rpb24tdGV4dC1jb250ZW50IGRpdjpub3QoW3N0eWxlKj1jb2xvcl0pLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgbGksXG4uYWN0aW9uLXRleHQtY29udGVudCB1bCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IG9sLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgYmxvY2txdW90ZSxcbi5hY3Rpb24tdGV4dC1jb250ZW50IHN0cm9uZyxcbi5hY3Rpb24tdGV4dC1jb250ZW50IGVtLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgdSxcbi5hY3Rpb24tdGV4dC1jb250ZW50IGIsXG4uYWN0aW9uLXRleHQtY29udGVudCBpLFxuLnBvc3QtY29udGVudCBwLFxuLnBvc3QtY29udGVudCBzcGFuOm5vdChbc3R5bGUqPWNvbG9yXSksXG4ucG9zdC1jb250ZW50IGRpdjpub3QoW3N0eWxlKj1jb2xvcl0pLFxuLnBvc3QtY29udGVudCBsaSxcbi5wb3N0LWNvbnRlbnQgdWwsXG4ucG9zdC1jb250ZW50IG9sLFxuLnBvc3QtY29udGVudCBibG9ja3F1b3RlLFxuLnBvc3QtY29udGVudCBzdHJvbmcsXG4ucG9zdC1jb250ZW50IGVtLFxuLnBvc3QtY29udGVudCB1LFxuLnBvc3QtY29udGVudCBiLFxuLnBvc3QtY29udGVudCBpLFxuLnByb3Bvc2FsLWNvbnRlbnQgcCxcbi5wcm9wb3NhbC1jb250ZW50IHNwYW46bm90KFtzdHlsZSo9Y29sb3JdKSxcbi5wcm9wb3NhbC1jb250ZW50IGRpdjpub3QoW3N0eWxlKj1jb2xvcl0pLFxuLnByb3Bvc2FsLWNvbnRlbnQgbGksXG4ucHJvcG9zYWwtY29udGVudCB1bCxcbi5wcm9wb3NhbC1jb250ZW50IG9sLFxuLnByb3Bvc2FsLWNvbnRlbnQgYmxvY2txdW90ZSxcbi5wcm9wb3NhbC1jb250ZW50IHN0cm9uZyxcbi5wcm9wb3NhbC1jb250ZW50IGVtLFxuLnByb3Bvc2FsLWNvbnRlbnQgdSxcbi5wcm9wb3NhbC1jb250ZW50IGIsXG4ucHJvcG9zYWwtY29udGVudCBpIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi8qIExpbmtzIGluIHJlbmRlcmVkIGNvbnRlbnQgLSB1c2UgdGhlbWUgYWNjZW50IGNvbG9yIChleGNsdWRlIFVJIGJ1dHRvbnMpICovXG4ubGV4eHktY29udGVudCBhOm5vdCguYnV0dG9uLTEzKTpub3QoLm1kdWktaWNvbik6bm90KC5idG4pOm5vdChbY2xhc3MqPWJ1dHRvbl0pLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgYTpub3QoLmJ1dHRvbi0xMyk6bm90KC5tZHVpLWljb24pOm5vdCguYnRuKTpub3QoW2NsYXNzKj1idXR0b25dKSxcbi5wb3N0LWNvbnRlbnQgYTpub3QoLmJ1dHRvbi0xMyk6bm90KC5tZHVpLWljb24pOm5vdCguYnRuKTpub3QoW2NsYXNzKj1idXR0b25dKSxcbi5wcm9wb3NhbC1jb250ZW50IGE6bm90KC5idXR0b24tMTMpOm5vdCgubWR1aS1pY29uKTpub3QoLmJ0bik6bm90KFtjbGFzcyo9YnV0dG9uXSkge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzAwNjZjYyk7XG59XG5cbi5sZXh4eS1jb250ZW50IGE6bm90KC5idXR0b24tMTMpOm5vdCgubWR1aS1pY29uKTpub3QoLmJ0bik6bm90KFtjbGFzcyo9YnV0dG9uXSk6aG92ZXIsXG4uYWN0aW9uLXRleHQtY29udGVudCBhOm5vdCguYnV0dG9uLTEzKTpub3QoLm1kdWktaWNvbik6bm90KC5idG4pOm5vdChbY2xhc3MqPWJ1dHRvbl0pOmhvdmVyLFxuLnBvc3QtY29udGVudCBhOm5vdCguYnV0dG9uLTEzKTpub3QoLm1kdWktaWNvbik6bm90KC5idG4pOm5vdChbY2xhc3MqPWJ1dHRvbl0pOmhvdmVyLFxuLnByb3Bvc2FsLWNvbnRlbnQgYTpub3QoLmJ1dHRvbi0xMyk6bm90KC5tZHVpLWljb24pOm5vdCguYnRuKTpub3QoW2NsYXNzKj1idXR0b25dKTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXIsICMwMDUyYTMpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExleHh5IDAuOSB0b29sYmFyLCBwcm9tcHQtbWVudSwgdmFyaWFibGUgY2hpcHMgJiBjb250ZW50IHN0eWxpbmdcbiAgIHBvcnRlZCBmcm9tIHBvd2VybGlseS4gVmFycyByZXNvbHZlIHZpYSBfc3R5bGVzLmh0bWwuZXJiIGFsaWFzZXMuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmxleHh5LWVkaXRvcixcbmxleHh5LXRvb2xiYXIge1xuICAtLWxleHh5LWNvbG9yLWluay1saWdodGVyOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1sZXh4eS1jb2xvci1pbmstbGlnaHRlc3Q6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgLS1sZXh4eS1jb2xvci1jYW52YXM6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgLS1sZXh4eS1jb2xvci10ZXh0OiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIC0tbGV4eHktY29sb3ItYWNjZW50LWRhcms6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICAtLWxleHh5LWNvbG9yLWFjY2VudC1saWdodDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tbGV4eHktY29sb3Itc2VsZWN0ZWQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNSUsIHRyYW5zcGFyZW50KTtcbiAgLS1sZXh4eS1jb2xvci1zZWxlY3RlZC1ob3ZlcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tbGV4eHktZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbmxleHh5LXRvb2xiYXIgLmxleHh5LWVkaXRvcl9fdG9vbGJhci1idXR0b24ubGV4eHktZWRpdG9yX190b29sYmFyLWdyb3VwLWVuZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgLmxleHh5LWVkaXRvcl9fdG9vbGJhci1idXR0b24gaS5mYS1kdW90b25lLFxubGV4eHktdG9vbGJhciAubGV4eHktZWRpdG9yX190b29sYmFyLWJ1dHRvbiBzdmcuc3ZnLWlubGluZS0tZmEsXG5sZXh4eS10b29sYmFyIC5sZXh4eS1ncHQtYnV0dG9uIGkuZmEtZHVvdG9uZSxcbmxleHh5LXRvb2xiYXIgLmxleHh5LWdwdC1idXR0b24gc3ZnLnN2Zy1pbmxpbmUtLWZhIHtcbiAgZm9udC1zaXplOiAwLjk1cmVtICFpbXBvcnRhbnQ7XG4gIC0tZmEtc2Vjb25kYXJ5LW9wYWNpdHk6IDAuNDtcbiAgLyogVGhlIGVkaXRvcidzIGBsZXh4eS1lZGl0b3IgaSB7IGZvbnQtc3R5bGU6IGl0YWxpYyB9YCBydWxlIChmb3IgPGVtPi88aT5cbiAgICAgdGV4dCkgd291bGQgZmF1eC1pdGFsaWNpc2UgdGhlIHdlYmZvbnQgaWNvbiBnbHlwaHMg4oCUIGtlZXAgdGhlbSB1cHJpZ2h0LiAqL1xuICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciBidXR0b246bm90KC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uKSxcbi5sZXh4eS10b29sYmFyIGJ1dHRvbjpub3QoLmxleHh5LWhpZ2hsaWdodC1idXR0b24pLFxubGV4eHktZWRpdG9yIGJ1dHRvbltkYXRhLWxleHh5LWFjdGlvbl0sXG4ubGV4eHktYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cykgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC4zNzVyZW0gMC41cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UgIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDMycHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciBidXR0b246bm90KC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uKTpob3Zlcixcbi5sZXh4eS10b29sYmFyIGJ1dHRvbjpub3QoLmxleHh5LWhpZ2hsaWdodC1idXR0b24pOmhvdmVyLFxubGV4eHktZWRpdG9yIGJ1dHRvbltkYXRhLWxleHh5LWFjdGlvbl06aG92ZXIsXG4ubGV4eHktYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ib3hzaGFkb3cpIDUwJSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgYnV0dG9uOm5vdCgubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbik6YWN0aXZlLFxubGV4eHktdG9vbGJhciBidXR0b246bm90KC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uKVthcmlhLXByZXNzZWQ9dHJ1ZV0sXG4ubGV4eHktdG9vbGJhciBidXR0b246bm90KC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uKTphY3RpdmUsXG4ubGV4eHktdG9vbGJhciBidXR0b246bm90KC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uKVthcmlhLXByZXNzZWQ9dHJ1ZV0sXG5sZXh4eS1lZGl0b3IgYnV0dG9uW2RhdGEtbGV4eHktYWN0aW9uXTphY3RpdmUsXG4ubGV4eHktYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApICFpbXBvcnRhbnQ7XG59XG5cbi50cml4LWNvbnRlbnQgbWFyayxcbi50cml4LWNvbnRlbnQgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IG1hcmssXG4uYWN0aW9uLXRleHQtY29udGVudCAubGV4eHktY29udGVudF9faGlnaGxpZ2h0LFxuLmxleHh5LWNvbnRlbnQgbWFyayxcbi5sZXh4eS1jb250ZW50IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG4ucHJvcG9zYWwtY29udGVudCBtYXJrLFxuLnByb3Bvc2FsLWNvbnRlbnQgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbi5wb3N0LWNvbnRlbnQgbWFyayxcbi5wb3N0LWNvbnRlbnQgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbi5jYXJkLWJvZHkgbWFyayxcbi5jYXJkLWJvZHkgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbmFydGljbGUgbWFyayxcbmFydGljbGUgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbnNlY3Rpb24gbWFyayxcbnNlY3Rpb24gLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXSxcbi5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXSxcbi5sZXh4eS1ncHQtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciksIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA4MCUsIHRyYW5zcGFyZW50KSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXTpob3Zlcixcbi5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXTpob3Zlcixcbi5sZXh4eS1ncHQtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYnV0dG9uLWhvdmVyKSwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJ1dHRvbi1ob3ZlcikgODAlLCB0cmFuc3BhcmVudCkpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24taG92ZXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDUwJSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgYnV0dG9uW3RpdGxlPVwiQXNrIFBlcmljbGVzXCJdOjpiZWZvcmUsXG4ubGV4eHktdG9vbGJhciBidXR0b25bdGl0bGU9XCJBc2sgUGVyaWNsZXNcIl06OmJlZm9yZSxcbi5sZXh4eS1ncHQtYnV0dG9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB0b3A6IC0ycHggIWltcG9ydGFudDtcbiAgbGVmdDogLTJweCAhaW1wb3J0YW50O1xuICByaWdodDogLTJweCAhaW1wb3J0YW50O1xuICBib3R0b206IC0ycHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSwgdmFyKC0tYnV0dG9uLWhvdmVyKSwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IC0xICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UgIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciBidXR0b25bdGl0bGU9XCJBc2sgUGVyaWNsZXNcIl06aG92ZXI6OmJlZm9yZSxcbi5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXTpob3Zlcjo6YmVmb3JlLFxuLmxleHh5LWdwdC1idXR0b246aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxubGkubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW06aG92ZXIsXG4ubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTIlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cblxubGkubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW1bYXJpYS1zZWxlY3RlZD10cnVlXSxcbi5sZXh4eS1wcm9tcHQtbWVudV9faXRlbVthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0KSAhaW1wb3J0YW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbmxpLmxleHh5LXByb21wdC1tZW51X19pdGVtW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0gLnZhcmlhYmxlLWRlc2MsXG4ubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW1bYXJpYS1zZWxlY3RlZD10cnVlXSAudmFyaWFibGUtZGVzYyB7XG4gIG9wYWNpdHk6IDAuOTUgIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciBsZXh4eS10b29sYmFyLWRyb3Bkb3duLFxubGV4eHktdG9vbGJhciBsZXh4eS1oaWdobGlnaHQtZHJvcGRvd24sXG5sZXh4eS10b29sYmFyIGxleHh5LWxpbmstZHJvcGRvd24ge1xuICAvKiBEb24ndCBzZXQgYGRpc3BsYXlgIGhlcmUg4oCUIHRoZSBnZW0gaGlkZXMgdGhlIG92ZXJmbG93IChcInNob3cgbW9yZVwiKVxuICAgICBkcm9wZG93biB3aXRoIGRpc3BsYXk6bm9uZSB1bnRpbCB0aGUgdG9vbGJhciBhY3R1YWxseSBvdmVyZmxvd3MsIGFuZCBhblxuICAgICAhaW1wb3J0YW50IGRpc3BsYXkgd291bGQgZm9yY2UgdGhhdCBlbXB0eSBidXR0b24gdG8gYWx3YXlzIHNob3cuICovXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciBbZGF0YS1kcm9wZG93bi1wYW5lbF0sXG5sZXh4eS10b29sYmFyIC5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItZHJvcGRvd24tY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1oLW9mZnNldCkgdmFyKC0tdi1vZmZzZXQpIHZhcigtLWJsdXItcmFkaXVzKSB2YXIoLS1ib3hzaGFkb3cpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgW2RhdGEtZHJvcGRvd24tdHJpZ2dlcl1bYXJpYS1leHBhbmRlZD10cnVlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIFtkYXRhLWRyb3Bkb3duLXBhbmVsXSBbZGF0YS1idXR0b24tZ3JvdXBdLFxubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIFtkYXRhLWJ1dHRvbi1ncm91cF0ge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgZ2FwOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4udHJpeC1jb250ZW50IHRhYmxlLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgdGFibGUsXG4ubGV4eHktY29udGVudCB0YWJsZSxcbltjbGFzcyo9cmljaC10ZXh0XSB0YWJsZSxcbi5wcm9wb3NhbC1jb250ZW50IHRhYmxlLFxuLnBkZi1jb250ZW50IHRhYmxlLFxuLnBvc3QtY29udGVudCB0YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAxcmVtIDAgIWltcG9ydGFudDtcbn1cblxuLnRyaXgtY29udGVudCB0YWJsZSB0aCxcbi50cml4LWNvbnRlbnQgdGFibGUgdGQsXG4uYWN0aW9uLXRleHQtY29udGVudCB0YWJsZSB0aCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IHRhYmxlIHRkLFxuLmxleHh5LWNvbnRlbnQgdGFibGUgdGgsXG4ubGV4eHktY29udGVudCB0YWJsZSB0ZCxcbltjbGFzcyo9cmljaC10ZXh0XSB0YWJsZSB0aCxcbltjbGFzcyo9cmljaC10ZXh0XSB0YWJsZSB0ZCxcbi5wcm9wb3NhbC1jb250ZW50IHRhYmxlIHRoLFxuLnByb3Bvc2FsLWNvbnRlbnQgdGFibGUgdGQsXG4ucGRmLWNvbnRlbnQgdGFibGUgdGgsXG4ucGRmLWNvbnRlbnQgdGFibGUgdGQsXG4ucG9zdC1jb250ZW50IHRhYmxlIHRoLFxuLnBvc3QtY29udGVudCB0YWJsZSB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG59XG5cbi50cml4LWNvbnRlbnQgdGFibGUgdGgsXG4udHJpeC1jb250ZW50IHRhYmxlIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlcixcbi5hY3Rpb24tdGV4dC1jb250ZW50IHRhYmxlIHRoLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgdGFibGUgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyLFxuLmxleHh5LWNvbnRlbnQgdGFibGUgdGgsXG4ubGV4eHktY29udGVudCB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG5bY2xhc3MqPXJpY2gtdGV4dF0gdGFibGUgdGgsXG5bY2xhc3MqPXJpY2gtdGV4dF0gdGFibGUgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyLFxuLnByb3Bvc2FsLWNvbnRlbnQgdGFibGUgdGgsXG4ucHJvcG9zYWwtY29udGVudCB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG4ucGRmLWNvbnRlbnQgdGFibGUgdGgsXG4ucGRmLWNvbnRlbnQgdGFibGUgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyLFxuLnBvc3QtY29udGVudCB0YWJsZSB0aCxcbi5wb3N0LWNvbnRlbnQgdGFibGUgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM2Yzc1N2QpIDE1JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbn1cblxuLnRyaXgtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5LFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSxcbi5wb3N0LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSxcbi5wcm9wb3NhbC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnksXG4ucGRmLWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4udHJpeC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkgLmF0dGFjaG1lbnQsXG4uYWN0aW9uLXRleHQtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5IC5hdHRhY2htZW50LFxuLnBvc3QtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5IC5hdHRhY2htZW50LFxuLnByb3Bvc2FsLWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSAuYXR0YWNobWVudCxcbi5wZGYtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5IC5hdHRhY2htZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICBnYXA6IDAgIWltcG9ydGFudDtcbiAgaW5saW5lLXNpemU6IGNhbGMoMzMuMzMzJSAtIDAuOGNoKSAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG59XG5cbi50cml4LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeS5hdHRhY2htZW50LWdhbGxlcnktLTIgLmF0dGFjaG1lbnQsXG4udHJpeC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkuYXR0YWNobWVudC1nYWxsZXJ5LS00IC5hdHRhY2htZW50LFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeS5hdHRhY2htZW50LWdhbGxlcnktLTIgLmF0dGFjaG1lbnQsXG4uYWN0aW9uLXRleHQtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5LmF0dGFjaG1lbnQtZ2FsbGVyeS0tNCAuYXR0YWNobWVudCxcbi5wb3N0LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeS5hdHRhY2htZW50LWdhbGxlcnktLTIgLmF0dGFjaG1lbnQsXG4ucG9zdC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkuYXR0YWNobWVudC1nYWxsZXJ5LS00IC5hdHRhY2htZW50LFxuLnByb3Bvc2FsLWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeS5hdHRhY2htZW50LWdhbGxlcnktLTIgLmF0dGFjaG1lbnQsXG4ucHJvcG9zYWwtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5LmF0dGFjaG1lbnQtZ2FsbGVyeS0tNCAuYXR0YWNobWVudCxcbi5wZGYtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5LmF0dGFjaG1lbnQtZ2FsbGVyeS0tMiAuYXR0YWNobWVudCxcbi5wZGYtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5LmF0dGFjaG1lbnQtZ2FsbGVyeS0tNCAuYXR0YWNobWVudCB7XG4gIGlubGluZS1zaXplOiBjYWxjKDUwJSAtIDAuOGNoKSAhaW1wb3J0YW50O1xufVxuXG4udHJpeC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkgLmF0dGFjaG1lbnQgaW1nLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSAuYXR0YWNobWVudCBpbWcsXG4ucG9zdC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkgLmF0dGFjaG1lbnQgaW1nLFxuLnByb3Bvc2FsLWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSAuYXR0YWNobWVudCBpbWcsXG4ucGRmLWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSAuYXR0YWNobWVudCBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi50cml4LWNvbnRlbnQgZmlndXJlLmhvcml6b250YWwtZGl2aWRlcixcbi5hY3Rpb24tdGV4dC1jb250ZW50IGZpZ3VyZS5ob3Jpem9udGFsLWRpdmlkZXIsXG4ucG9zdC1jb250ZW50IGZpZ3VyZS5ob3Jpem9udGFsLWRpdmlkZXIsXG4ucHJvcG9zYWwtY29udGVudCBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyLFxuLnBkZi1jb250ZW50IGZpZ3VyZS5ob3Jpem9udGFsLWRpdmlkZXIge1xuICBtYXJnaW46IDAuNXJlbSAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLnRyaXgtY29udGVudCBocixcbi5hY3Rpb24tdGV4dC1jb250ZW50IGhyLFxuLnBvc3QtY29udGVudCBocixcbi5wcm9wb3NhbC1jb250ZW50IGhyLFxuLnBkZi1jb250ZW50IGhyIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNikgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbi5wcm9wb3NhbC12YXJpYWJsZS1jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjA1ZW0gMC41NWVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE0JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAzNSUsIHRyYW5zcGFyZW50KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLnByb3Bvc2FsLXZhcmlhYmxlLWNoaXAgLnB2LWxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnByb3Bvc2FsLXZhcmlhYmxlLWNoaXAgLnB2LXRva2VuIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG5sZXh4eS1lZGl0b3IgLnByb3Bvc2FsLXZhcmlhYmxlLWNoaXAgLnB2LWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG5sZXh4eS1lZGl0b3IgLnByb3Bvc2FsLXZhcmlhYmxlLWNoaXAgLnB2LXRva2VuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxubGV4eHktZWRpdG9yIGFjdGlvbi10ZXh0LWF0dGFjaG1lbnRbY29udGVudC10eXBlXj1cImFwcGxpY2F0aW9uL3ZuZC53YXR0c2FwcC52YXJpYWJsZVwiXSB7XG4gIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1lZGl0b3IgYWN0aW9uLXRleHQtYXR0YWNobWVudFtjb250ZW50LXR5cGVePVwiYXBwbGljYXRpb24vdm5kLndhdHRzYXBwLnZhcmlhYmxlXCJdIGxleHh5LW5vZGUtZGVsZXRlLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogRm9ybWF0IC8gaGVhZGluZyBkcm9wZG93biBtZW51IGl0ZW1zIGFyZSBmdWxsLXdpZHRoIFtpY29uXSBbbGFiZWxdIHJvd3MuXG4gICBPdXIgZ2VuZXJpYyBgbGV4eHktdG9vbGJhciBidXR0b246bm90KC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uKWAgcnVsZSAoYWJvdmUpXG4gICBzZXRzIGBtaW4td2lkdGg6MzJweDsgaGVpZ2h0OjMycHg7IGp1c3RpZnktY29udGVudDpjZW50ZXJgIHRvIG1ha2UgdGhlIG1haW5cbiAgIHRvb2xiYXIgYnV0dG9ucyBzcXVhcmUgaWNvbiB0aWxlcyDigJQgYnV0IHRoYXQgYWxzbyBtYXRjaGVzIHRoZXNlIG1lbnUgYnV0dG9ucyxcbiAgIG92ZXJyaWRpbmcgdGhlIGZsZXggZGVmYXVsdCBgbWluLXdpZHRoOmF1dG9gIHNvIHRoZXkgc2hyaW5rIGJlbG93IHRoZWlyIGxhYmVsXG4gICBhbmQgdGhlIHRleHQgd3JhcHMgdmVydGljYWxseS4gUmVzdG9yZSBjb250ZW50LWJhc2VkIHNpemluZyBmb3IgbWVudSBpdGVtcy4gKi9cbmxleHh5LXRvb2xiYXIgLmxleHh5LWVkaXRvcl9fdG9vbGJhci1kcm9wZG93bi1saXN0IGJ1dHRvbixcbi5sZXh4eS10b29sYmFyIC5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItZHJvcGRvd24tbGlzdCBidXR0b24ge1xuICBtaW4td2lkdGg6IG1heC1jb250ZW50ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi8qIE1vZGVybiBTZWxmIFF1b3RlIFN5c3RlbSBTdHlsaW5nICovXG4vKiBVc2VzIGR5bmFtaWMgQ1NTIHZhcmlhYmxlcyBmcm9tIF9zdHlsZXMuaHRtbC5lcmIgKi9cbiNtb2Rlcm4tc2VsZi1xdW90ZS1hcHAge1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAwJSwgdmFyKC0tY2FyZC1jb2xvdXIpIDEwMCUpICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbi8qIFByb2dyZXNzIEJhciAqL1xuLnByb2dyZXNzLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogdmFyKC0tcHJvZ3Jlc3Mtc3RpY2t5LW5hdmJhci1vZmZzZXQsIDExMHB4KTtcbiAgei1pbmRleDogOTk7XG4gIHBhZGRpbmc6IDAgMiU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnByb2dyZXNzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMCAxJTtcbiAgfVxufVxuXG4ucHJvZ3Jlc3MtYmFyLW1vZGVybiB7XG4gIG1heC13aWR0aDogMTAwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMS41cmVtIDJyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wNSksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGFuaW1hdGlvbjogZmxvYXRQcm9ncmVzc0JhciA2cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbi5wcm9ncmVzcy1iYXItbW9kZXJuOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDEycHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA4KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnByb2dyZXNzLWJhci1tb2Rlcm4ge1xuICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbG9hdFByb2dyZXNzQmFyIHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICB9XG59XG4ucHJvZ3Jlc3Mtc3RlcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5zdGVwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBmbGV4OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5zdGVwLWNpcmNsZSB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uc3RlcC5hY3RpdmUgLnN0ZXAtY2lyY2xlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zdGVwLmNvbXBsZXRlZCAuc3RlcC1jaXJjbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnN0ZXAgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc3RlcC5hY3RpdmUgc3Bhbixcbi5zdGVwLmNvbXBsZXRlZCBzcGFuIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ucHJvZ3Jlc3MtbGluZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEuNXJlbSArIDE4cHgpO1xuICBsZWZ0OiA0cmVtO1xuICByaWdodDogNHJlbTtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDE7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnByb2dyZXNzLWxpbmUge1xuICAgIHRvcDogY2FsYygxcmVtICsgMTRweCk7XG4gICAgbGVmdDogM3JlbTtcbiAgICByaWdodDogM3JlbTtcbiAgfVxufVxuXG4ucHJvZ3Jlc3MtZmlsbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC41cyBlYXNlO1xufVxuXG4vKiBNYWluIENvbnRlbnQgKi9cbi5tb2Rlcm4tY29udGVudCB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMnJlbSAycmVtIDNyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1vZGVybi1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMXJlbSAycmVtO1xuICB9XG59XG5cbi5zdGFnZS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdykgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWluLWhlaWdodDogNjAwcHg7XG59XG4uc3RhZ2UtY29udGFpbmVyLmVuZXJneS1zdGFnZSwgLnN0YWdlLWNvbnRhaW5lci5lcXVpcG1lbnQtc3RhZ2Uge1xuICBwYWRkaW5nOiAycmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5zdGFnZS1jb250YWluZXIuZW5lcmd5LXN0YWdlLCAuc3RhZ2UtY29udGFpbmVyLmVxdWlwbWVudC1zdGFnZSB7XG4gICAgcGFkZGluZzogMS4yNXJlbTtcbiAgfVxufVxuXG4vKiBXZWxjb21lIFN0YWdlICovXG4ud2VsY29tZS1zdGFnZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmhlcm8tc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDRyZW0gM3JlbTtcbn1cblxuLmhlcm8tdGl0bGUge1xuICBmb250LXNpemU6IDNyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmhlcm8tc3VidGl0bGUge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44O1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uZmVhdHVyZS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7XG4gIGdhcDogMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbn1cblxuLmZlYXR1cmUtY2FyZCB7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uZmVhdHVyZS1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5mZWF0dXJlLWljb24ge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmZlYXR1cmUtY2FyZCBoMyB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5mZWF0dXJlLWNhcmQgcCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44O1xuICBmb250LXNpemU6IDAuOTVyZW07XG59XG5cbi5jdGEtYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdykgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmN0YS1idXR0b246aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi5hcnJvdyB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi5jdGEtYnV0dG9uOmhvdmVyIC5hcnJvdyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xufVxuXG4vKiBFbmVyZ3kgU3RhZ2UgKi9cbi5zdGFnZS1oZWFkZXIge1xuICBwYWRkaW5nOiAzcmVtIDNyZW0gMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnN0YWdlLWhlYWRlciBoMiB7XG4gIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zdGFnZS1oZWFkZXIgcCB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLmNvbnRlbnQtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDMwMHB4O1xuICBnYXA6IDNyZW07XG4gIHBhZGRpbmc6IDNyZW07XG59XG5cbi5jb25maWctc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5jb25maWctc2VjdGlvbiBoMyB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBFbmVyZ3kgU3RhZ2UgVHdvIENvbHVtbiBMYXlvdXQgKi9cbi5lbmVyZ3ktdHdvLWNvbHVtbiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDM4MHB4O1xuICBnYXA6IDJyZW07XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmVuZXJneS10d28tY29sdW1uIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IDEuNXJlbTtcbiAgfVxufVxuXG4uZW5lcmd5LWlucHV0cy1jb2x1bW4ge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5lbmVyZ3ktY2hhcnRzLWNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXJlbTtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAxODBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmVuZXJneS1jaGFydHMtY29sdW1uIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9XG59XG5cbi8qIGtXaCBJbnB1dCBTdHlsZXMgKi9cbi5rd2gtaW5wdXQtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmt3aC1pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMXJlbSAxLjI1cmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xufVxuLmt3aC1pbnB1dC1ncm91cDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpO1xufVxuXG4ua3doLWlucHV0IHtcbiAgZmxleDogMTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogMjAwcHg7XG59XG4ua3doLWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5rd2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICBvcGFjaXR5OiAwLjU7XG59XG4ua3doLWlucHV0IHtcbiAgLyogUmVtb3ZlIHNwaW5uZXIgYnV0dG9ucyAqL1xuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cbi5rd2gtaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIC5rd2gtaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cblxuLmt3aC11bml0IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5rd2gtaGludCB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLyogUmF0ZSBJbmZvIENhcmQgRW5oYW5jZW1lbnRzICovXG4ucmF0ZS1pbmZvLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMS4yNXJlbTtcbn1cbi5yYXRlLWluZm8tY2FyZCBoNCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnRvdS1iYWRnZS1sYXJnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzEwYjk4MSAwJSwgIzA1OTY2OSAxMDAlKTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnV0aWxpdHktdG91LWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjMTBiOTgxIDE1JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogIzEwYjk4MTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnJhdGUtcGVyaW9kcy1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuXG4ucmF0ZS1wZXJpb2QtaXRlbSB7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWJ1dHRvbi1jb2xvdXIpO1xufVxuXG4ucGVyaW9kLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLnBlcmlvZC1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5wZXJpb2QtcmF0ZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKTtcbn1cblxuLnBlcmlvZC10aW1lcyB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG59XG5cbi5wZXJpb2QtZGF5cyB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLyogQ2hhcnQgQ2FyZCAqL1xuLmNoYXJ0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMS4yNXJlbTtcbn1cbi5jaGFydC1jYXJkIGg0IHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi8qIEZpeGVkIGNoYXJ0IGNvbnRhaW5lciB0byBwcmV2ZW50IHdpZHRoIGJsb3dvdXQgKi9cbi5jaGFydC1jb250YWluZXItZml4ZWQge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNoYXJ0LWNvbnRhaW5lci1maXhlZCBjYW52YXMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRpbnkgdG9nZ2xlIGJ1dHRvbnMgKi9cbi5idG4tdGlueSB7XG4gIHBhZGRpbmc6IDJweCA4cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgb3BhY2l0eTogMC42O1xufVxuLmJ0bi10aW55OmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMTtcbn1cbi5idG4tdGlueS5hY3RpdmUsIC5idG4tdGlueVtkYXRhLXNlbGVjdGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIFByb2ZpbGUgc2VsZWN0b3JzICovXG4ucHJvZmlsZS1zZWxlY3RvcnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIGdhcDogMXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAucHJvZmlsZS1zZWxlY3RvcnMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG5cbi8qIENvbXBhY3QgTW9udGhseSBJbnB1dCBHcmlkICovXG4ubW9udGhseS1ncmlkLWNvbXBhY3Qge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICBnYXA6IDAuNXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubW9udGhseS1ncmlkLWNvbXBhY3Qge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAubW9udGhseS1ncmlkLWNvbXBhY3Qge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIH1cbn1cblxuLm1vbnRoLWlucHV0LWdyb3VwIC5tb250aC1wcmVwZW5kIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtaW4td2lkdGg6IDQwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4ubW9udGgtaW5wdXQtZ3JvdXAgLm1vbnRoLWZpZWxkLWNvbXBhY3Qge1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLm1vbnRoLWlucHV0LWdyb3VwIC5tb250aC1maWVsZC1jb21wYWN0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLm1vbnRoLWlucHV0LWdyb3VwIC5tb250aC1maWVsZC1jb21wYWN0IHtcbiAgLyogUmVtb3ZlIHNwaW5uZXIgYnV0dG9ucyAqL1xuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cbi5tb250aC1pbnB1dC1ncm91cCAubW9udGgtZmllbGQtY29tcGFjdDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgLm1vbnRoLWlucHV0LWdyb3VwIC5tb250aC1maWVsZC1jb21wYWN0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4ubW9udGgtaW5wdXQtZ3JvdXAgLm1vbnRoLXN1ZmZpeCB7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCkgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjRyZW07XG59XG5cbi8qIFV0aWxpdHkgR3JpZCAqL1xuLnV0aWxpdHktZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpO1xuICBnYXA6IDFyZW07XG59XG5cbi51dGlsaXR5LWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnV0aWxpdHktY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdykgIWltcG9ydGFudDtcbn1cblxuLnV0aWxpdHktY2FyZC5zZWxlY3RlZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7XG59XG5cbi51dGlsaXR5LXJhZGlvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnV0aWxpdHktbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udXRpbGl0eS1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4udXRpbGl0eS1yYXRlIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4vKiBCaWxsIElucHV0ICovXG4uYmlsbC1pbnB1dC1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xufVxuXG4uYmlsbC1pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3MgZWFzZTtcbn1cblxuLmJpbGwtaW5wdXQtZ3JvdXA6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJ1dHRvbi1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG5cbi5jdXJyZW5jeS1zeW1ib2wge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5iaWxsLWlucHV0IHtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmbGV4OiAxO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnBlcmlvZCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuXG4uYmlsbC1wcmV2aWV3IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4udXNhZ2UtYW1vdW50IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnVzYWdlLXVuaXQge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG59XG5cbi51c2FnZS1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLyogQWR2YW5jZWQgU2VjdGlvbiAqL1xuLmFkdmFuY2VkLXNlY3Rpb24ge1xuICBtYXgtaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MgZWFzZTtcbn1cblxuLmFkdmFuY2VkLXNlY3Rpb24uc2hvdyB7XG4gIG1heC1oZWlnaHQ6IDEwMDBweDtcbn1cblxuLm1vbnRobHktZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTUwcHgsIDFmcikpO1xuICBnYXA6IDFyZW07XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5tb250aC1pbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xufVxuXG4ubW9udGgtbGFiZWwge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ubW9udGgtZmllbGQge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5tb250aC1maWVsZDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1idXR0b24tY29sb3VyKSAxMCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuXG4udW5pdCB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBQcmVzZXQgQnV0dG9ucyAqL1xuLnByZXNldC1idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbn1cbi5wcmVzZXQtYnV0dG9ucyAucHJlc2V0LWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjY7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xufVxuXG4ucHJlc2V0LWJ0biB7XG4gIHBhZGRpbmc6IDRweCAxMnB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4ucHJlc2V0LWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpO1xufVxuLnByZXNldC1idG4uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cik7XG59XG5cbi8qIE1vbnRobHkgQ2hhcnQgQ29udGFpbmVyICovXG4ubW9udGhseS1jaGFydC1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLm1vbnRobHktY2hhcnQtY29udGFpbmVyIGNhbnZhcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA4MHB4O1xufVxuXG4vKiBDb25maWcgU3Vic2VjdGlvbiAqL1xuLmNvbmZpZy1zdWJzZWN0aW9uIHtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cbi5jb25maWctc3Vic2VjdGlvbiBoNCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLyogRm9ybSBBY3Rpb25zICovXG4uZm9ybS1hY3Rpb25zIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY29udGludWUtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjg3NXJlbSAycmVtO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5jb250aW51ZS1idXR0b246aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi5jb250aW51ZS1idXR0b24uZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmNvbnRpbnVlLWJ1dHRvbi5kaXNhYmxlZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyogU2lkZWJhciAqL1xuLnNpZGViYXIge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbn1cblxuLmluZm8tY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAxLjVyZW07XG59XG5cbi5pbmZvLWNhcmQgaDQge1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4udXRpbGl0eS1kZXRhaWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuXG4uZGV0YWlsLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG5cbi5kZXRhaWwtcm93IHNwYW46Zmlyc3QtY2hpbGQge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmRldGFpbC1yb3cgc3BhbjpsYXN0LWNoaWxkIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBFcXVpcG1lbnQgU3RhZ2UgKi9cbi5lcXVpcG1lbnQtc3RhZ2UgLnN0YWdlLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uZXF1aXBtZW50LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNjBweCwgMWZyKSk7XG4gIGdhcDogMS41cmVtO1xuICBwYWRkaW5nOiAycmVtIDNyZW0gM3JlbTtcbn1cblxuLmVxdWlwbWVudC1jYXJkIHtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA0KSAhaW1wb3J0YW50O1xufVxuXG4uZXF1aXBtZW50LWNhcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZTtcbn1cblxuLmVxdWlwbWVudC1jYXJkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDEycHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KTtcbn1cblxuLmVxdWlwbWVudC1jYXJkOmhvdmVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWJ1dHRvbi1jb2xvdXIpLCB2YXIoLS1zY3JvbGxiYXItY29sb3VyKSk7XG59XG5cbi5lcXVpcG1lbnQtY2FyZC5zZWxlY3RlZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXdpZHRoOiAzcHg7XG4gIGJveC1zaGFkb3c6IDAgMTJweCA0OHB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjI1KSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG59XG5cbi5lcXVpcG1lbnQtY2FyZC5zZWxlY3RlZDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1idXR0b24tY29sb3VyKSwgdmFyKC0tc2Nyb2xsYmFyLWNvbG91cikpO1xufVxuXG4uZXF1aXBtZW50LWNhcmQuc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgY29udGVudDogXCLinJNcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFyZW07XG4gIGxlZnQ6IDFyZW07XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgei1pbmRleDogMTA7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi5lcXVpcG1lbnQtY2FyZC5yZWNvbW1lbmRlZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xNSkgIWltcG9ydGFudDtcbn1cblxuLmVxdWlwbWVudC1jYXJkLnJlY29tbWVuZGVkOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tY29sb3VyKTtcbn1cblxuLmVxdWlwbWVudC1jYXJkLmluY2x1ZGVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4uZXF1aXBtZW50LWNhcmQuc2F2aW5nIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZXF1aXBtZW50LWNhcmQuc2F2aW5nOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCIgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB3aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7XG4gIHotaW5kZXg6IDEwMDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4uZ2VuZXJhdGlvbi1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjc1cmVtO1xuICByaWdodDogMC43NXJlbTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjZyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIHotaW5kZXg6IDEwO1xufVxuLmdlbmVyYXRpb24tYmFkZ2UuZ2VuLTIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjM2NmYxLCAjOGI1Y2Y2KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdlbmVyYXRpb24tYmFkZ2UuZ2VuLTMge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMGVhNWU5LCAjMDZiNmQ0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdlbmVyYXRpb24tYmFkZ2UuZ2VuLTQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTBiOTgxLCAjMzRkMzk5KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uZXF1aXBtZW50LWNhcmQuZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDUwJSk7XG59XG4uZXF1aXBtZW50LWNhcmQuZGlzYWJsZWQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLmVxdWlwbWVudC1jYXJkLmRpc2FibGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uaW5jb21wYXRpYmxlLW5vdGljZSB7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLmVxdWlwbWVudC1yYWRpbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5lcXVpcG1lbnQtbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiBPdmVycmlkZSBnbG9iYWwgcmFkaW8gYnV0dG9uIHN0eWxlcyAqL1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJhY2tkcm9wLWZpbHRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5lcXVpcG1lbnQtbGFiZWw6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmVxdWlwbWVudC1sYWJlbDpob3ZlciB7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZXF1aXBtZW50LWxhYmVsOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5lcXVpcG1lbnQtcmFkaW86Y2hlY2tlZCArIC5lcXVpcG1lbnQtbGFiZWwge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmVxdWlwbWVudC1yYWRpbzpjaGVja2VkICsgLmVxdWlwbWVudC1sYWJlbDo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xufVxuXG4uZXF1aXBtZW50LWltYWdlIHtcbiAgaGVpZ2h0OiAyMjBweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpLCB2YXIoLS1jYXJkLWNvbG91cikpICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmVxdWlwbWVudC1pbWFnZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGNlbnRlciwgdHJhbnNwYXJlbnQgNDAlLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgMTAwJSk7XG4gIG9wYWNpdHk6IDAuMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5lcXVpcG1lbnQtaW1hZ2UgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKSk7XG59XG5cbi5lcXVpcG1lbnQtaW5mbyB7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuXG4uZXF1aXBtZW50LWluZm8gaDMsXG4uZXF1aXBtZW50LWluZm8gaDQge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLmVxdWlwbWVudC1zcGVjcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc3BlYyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiA5MHB4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDAuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zcGVjLXZhbHVlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uc3BlYy11bml0IHtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uZXF1aXBtZW50LXByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLmVxdWlwbWVudC1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44O1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBCYWRnZXMgKi9cbi5yZWNvbW1lbmRlZC1iYWRnZSxcbi5pbmNsdWRlZC1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjc1cmVtO1xuICByaWdodDogMC43NXJlbTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIHotaW5kZXg6IDEwO1xufVxuXG4ucmVjb21tZW5kZWQtYmFkZ2Uge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi5pbmNsdWRlZC1iYWRnZSB7XG4gIGJhY2tncm91bmQ6ICMxMGI5ODEgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDE2LCAxODUsIDEyOSwgMC4yKTtcbn1cblxuLmJhdHRlcnktcmVxdWlyZWQtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC43NXJlbTtcbiAgcmlnaHQ6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gIHotaW5kZXg6IDEwO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjOGI1Y2Y2LCAjNjM2NmYxKSAhaW1wb3J0YW50O1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjMpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZXF1aXBtZW50LWNhcmQuYmF0dGVyeS1yZXF1aXJlZCB7XG4gIGJvcmRlci1jb2xvcjogIzhiNWNmNiAhaW1wb3J0YW50O1xufVxuLmVxdWlwbWVudC1jYXJkLmJhdHRlcnktcmVxdWlyZWQuc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6ICM4YjVjZjYgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4yNSkgIWltcG9ydGFudDtcbn1cblxuLyogU3RhZ2UgQWN0aW9ucyAqL1xuLnN0YWdlLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDJyZW0gM3JlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uYmFjay1idXR0b24ge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uYmFjay1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIFJlc3BvbnNpdmUgRGVzaWduICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRlbnQtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAycmVtO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gIH1cbiAgLnByb2dyZXNzLXN0ZXBzIHtcbiAgICBnYXA6IDAuMjVyZW07XG4gIH1cbiAgLnByb2dyZXNzLWJhci1tb2Rlcm4ge1xuICAgIG1heC13aWR0aDogOTUlO1xuICB9XG4gIC5zdGVwIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgfVxuICAuc3RlcC1jaXJjbGUge1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gIH1cbiAgLmhlcm8tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxuICAuZXF1aXBtZW50LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gIH1cbiAgLnN0YWdlLWFjdGlvbnMge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xuICB9XG59XG4vKiBGb3JtIEVsZW1lbnRzICovXG4ubW9kZXJuLWZvcm0ge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5tb2Rlcm4tZm9ybSBpbnB1dCxcbi5tb2Rlcm4tZm9ybSBzZWxlY3QsXG4ubW9kZXJuLWZvcm0gdGV4dGFyZWEge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5tb2Rlcm4tZm9ybSBpbnB1dDpmb2N1cyxcbi5tb2Rlcm4tZm9ybSBzZWxlY3Q6Zm9jdXMsXG4ubW9kZXJuLWZvcm0gdGV4dGFyZWE6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnV0dG9uLWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cblxuLyogTG9hZGluZyBTdGF0ZXMgKi9cbi5sb2FkaW5nIHtcbiAgb3BhY2l0eTogMC43O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmxvYWRpbmc6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW46IC0xMHB4IDAgMCAtMTBweDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qIEFuaW1hdGlvbiBDbGFzc2VzICovXG4uZmFkZS1pbiB7XG4gIGFuaW1hdGlvbjogZmFkZUluIDAuNXMgZWFzZS1pbjtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbi5zbGlkZS11cCB7XG4gIGFuaW1hdGlvbjogc2xpZGVVcCAwLjNzIGVhc2Utb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlVXAge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi8qIFZpc3VhbCBEZXNpZ25lciBNb2RlICovXG4udmlzdWFsLWRlc2lnbmVyLW1vZGUge1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4uYXJyYXktZGVzaWduZXItY29udGFpbmVyIHtcbiAgbWluLWhlaWdodDogNzAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4vKiBSZXN1bHRzIFN0YWdlICovXG4ucmVzdWx0cy1zdGFnZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucmVzdWx0cy1oZXJvIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYnV0dG9uLWNvbG91ciksIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiA0cmVtIDNyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnJlc3VsdHMtaGVybyBoMSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi5yZXN1bHRzLWhlcm8gcCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgb3BhY2l0eTogMC45O1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi5rZXktbWV0cmljcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpO1xuICBnYXA6IDJyZW07XG4gIG1heC13aWR0aDogODAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ubWV0cmljLWNhcmQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBwYWRkaW5nOiAycmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xufVxuXG4ubWV0cmljLWNhcmQucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykgIWltcG9ydGFudDtcbn1cblxuLm1ldHJpYy12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi5tZXRyaWMtbGFiZWwge1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgb3BhY2l0eTogMC45O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi5yZXN1bHRzLXNlY3Rpb25zIHtcbiAgcGFkZGluZzogM3JlbTtcbn1cblxuLnJlc3VsdC1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5yZXN1bHQtc2VjdGlvbiBoMiB7XG4gIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uY29zdC1icmVha2Rvd24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5jb3N0LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmNvc3QtaXRlbS5pbmNlbnRpdmVzIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uY29zdC1pdGVtLnRvdGFsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc2F2aW5ncy1jb21wYXJpc29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMnJlbTtcbiAgcGFkZGluZzogMnJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5jb21wYXJpc29uLWl0ZW0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jb21wYXJpc29uLWl0ZW0gaDQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4uYmlsbC1hbW91bnQge1xuICBmb250LXNpemU6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cblxuLmJpbGwtYW1vdW50Lm9sZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNlZjQ0NDQgIWltcG9ydGFudDtcbn1cblxuLmJpbGwtYW1vdW50Lm5ldyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5jb21wYXJpc29uLWFycm93IHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLnBlcmZvcm1hbmNlLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTtcbiAgZ2FwOiAycmVtO1xufVxuXG4ucGVyZm9ybWFuY2UtY2FyZCB7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5wZXJmb3JtYW5jZS1jYXJkIGg0IHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLm9mZnNldC12aXN1YWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDFyZW07XG59XG5cbi5vZmZzZXQtYmFyIHtcbiAgZmxleDogMTtcbiAgaGVpZ2h0OiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5vZmZzZXQtZmlsbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1idXR0b24tY29sb3VyKSwgdmFyKC0tYnV0dG9uLWNvbG91cikpICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuNXMgZWFzZTtcbn1cblxuLm9mZnNldC1wZXJjZW50YWdlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogRW5lcmd5IE9mZnNldCBDYXJkIFN0eWxpbmcgKi9cbi5lbmVyZ3ktb2Zmc2V0LWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5vZmZzZXQtY2hhcnQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDJyZW0gYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMzAwcHg7XG59XG5cbi5vZmZzZXQtY2VudGVyLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm9mZnNldC1wZXJjZW50YWdlLWxhcmdlIHtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLm9mZnNldC1sYWJlbC10ZXh0IHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5vZmZzZXQtZGV0YWlscyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMS41cmVtO1xuICBtYXJnaW46IDJyZW0gMCAxLjVyZW07XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5vZmZzZXQtc3RhdCB7XG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLm9mZnNldC1zdGF0IC5zdGF0LWljb24ge1xuICBmb250LXNpemU6IDJyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ub2Zmc2V0LXN0YXQgLnN0YXQtbnVtYmVyIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5vZmZzZXQtc3RhdCAuc3RhdC1kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLm9mZnNldC13YXJuaW5nLFxuLm9mZnNldC1zdWNjZXNzIHtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAwLjc1cmVtO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLm9mZnNldC13YXJuaW5nLmV4Y2VzcyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDY4LCA2OCwgMC4zKSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2RjMjYyNiAhaW1wb3J0YW50O1xufVxuXG4ub2Zmc2V0LXdhcm5pbmcuZXhjZXNzIGkge1xuICBjb2xvcjogI2VmNDQ0NDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLXRvcDogMC4xMjVyZW07XG59XG5cbi5vZmZzZXQtd2FybmluZy5wYXJ0aWFsIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMSkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDUsIDE1OCwgMTEsIDAuMykgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkOTc3MDYgIWltcG9ydGFudDtcbn1cblxuLm9mZnNldC13YXJuaW5nLnBhcnRpYWwgaSB7XG4gIGNvbG9yOiAjZjU5ZTBiO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tdG9wOiAwLjEyNXJlbTtcbn1cblxuLm9mZnNldC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNiwgMTg1LCAxMjksIDAuMSkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgMTg1LCAxMjksIDAuMykgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwNTk2NjkgIWltcG9ydGFudDtcbn1cblxuLm9mZnNldC1zdWNjZXNzIGkge1xuICBjb2xvcjogIzEwYjk4MTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLm9mZnNldC13YXJuaW5nIHN0cm9uZyxcbi5vZmZzZXQtc3VjY2VzcyBzdHJvbmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLm9mZnNldC13YXJuaW5nIHAge1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi8qIFZpc3VhbCBEZXNpZ25lciBFbmVyZ3kgT2Zmc2V0IERpc3BsYXkgKi9cbi5kZXNpZ25lci1vZmZzZXQtZGlzcGxheSB7XG4gIG1hcmdpbjogMS41cmVtIDA7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5vZmZzZXQtY2lyY2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTUwcHg7XG4gIGhlaWdodDogMTUwcHg7XG4gIG1hcmdpbjogMCBhdXRvIDFyZW07XG59XG5cbi5vZmZzZXQtc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cblxuLm9mZnNldC1iZyB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHN0cm9rZS13aWR0aDogODtcbn1cblxuLm9mZnNldC1wcm9ncmVzcyB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogIzEwYjk4MTtcbiAgc3Ryb2tlLXdpZHRoOiA4O1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNXMgZWFzZSwgc3Ryb2tlIDAuM3MgZWFzZTtcbn1cblxuLm9mZnNldC12YWx1ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm9mZnNldC12YWx1ZSAjb2Zmc2V0LXBlcmNlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcbn1cblxuLm9mZnNldC1zdWJsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xufVxuXG4ub2Zmc2V0LWluZm8ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5vZmZzZXQtbWVzc2FnZSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm9mZnNldC1tZXNzYWdlLmluZm8ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1NiwgMTYzLCAxNzUsIDAuMSkgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2YjcyODAgIWltcG9ydGFudDtcbn1cblxuLm9mZnNldC1tZXNzYWdlLnBhcnRpYWwge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4xKSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2Q5NzcwNiAhaW1wb3J0YW50O1xufVxuXG4ub2Zmc2V0LW1lc3NhZ2Uuc3VjY2VzcyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjEpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDU5NjY5ICFpbXBvcnRhbnQ7XG59XG5cbi5vZmZzZXQtbWVzc2FnZS5leGNlc3Mge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZGMyNjI2ICFpbXBvcnRhbnQ7XG59XG5cbi5vZmZzZXQtY2lyY2xlLnN1Y2Nlc3Mge1xuICBhbmltYXRpb246IHN1Y2Nlc3NQdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLm9mZnNldC1jaXJjbGUuZXhjZXNzIHtcbiAgYW5pbWF0aW9uOiB3YXJuaW5nUHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLm9mZnNldC1jaXJjbGUuY2FsY3VsYXRpbmcge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5vZmZzZXQtY2lyY2xlLmNhbGN1bGF0aW5nICNvZmZzZXQtcGVyY2VudCB7XG4gIG9wYWNpdHk6IDAuNDtcbiAgY29sb3I6ICM5Y2EzYWYgIWltcG9ydGFudDtcbn1cblxuLm9mZnNldC1tZXNzYWdlLmNhbGN1bGF0aW5nIHtcbiAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzYjgyZjYgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlLCAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG59XG5Aa2V5ZnJhbWVzIHN1Y2Nlc3NQdWxzZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbiAgfVxufVxuQGtleWZyYW1lcyB3YXJuaW5nUHVsc2Uge1xuICAwJSwgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxufVxuQGtleWZyYW1lcyBzcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi5zeXN0ZW0tc3BlY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNzVyZW07XG59XG5cbi5zcGVjLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMC41cmVtIDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zcGVjLXJvdzpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLmltcGFjdC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7XG4gIGdhcDogMS41cmVtO1xufVxuXG4uaW1wYWN0LWNhcmQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5pbXBhY3QtY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdykgIWltcG9ydGFudDtcbn1cblxuLmltcGFjdC1pY29uIHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5pbXBhY3QtdmFsdWUge1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uaW1wYWN0LWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjg7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4ucmVzdWx0cy1jdGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDNyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBtYXJnaW46IDJyZW0gM3JlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnJlc3VsdHMtY3RhIGgzIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5yZXN1bHRzLWN0YSBwIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjg7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5jdGEtYnV0dG9uLmxhcmdlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBwYWRkaW5nOiAxLjI1cmVtIDNyZW07XG59XG5cbi8qIEVxdWlwbWVudCBDYXRlZ29yaWVzICovXG4uZXF1aXBtZW50LWNhdGVnb3JpZXMge1xuICBwYWRkaW5nOiAwO1xufVxuXG4uZXF1aXBtZW50LWNhdGVnb3J5IHtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbn1cblxuLmVxdWlwbWVudC1jYXRlZ29yeSBoMyB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG59XG5cbi5lcXVpcG1lbnQtY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBwYWRkaW5nOiAwLjg3NXJlbSAxLjI1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLnF1YW50aXR5LWNvbnRyb2wge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLnF1YW50aXR5LWNvbnRyb2wgbGFiZWwge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5xdWFudGl0eS1pbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5xdHktYnRuIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTtcbn1cblxuLnF0eS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ucXR5LWZpZWxkIHtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogMzJweDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5lcXVpcG1lbnQtc3VtbWFyeSB7XG4gIG1hcmdpbjogMnJlbSAzcmVtO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuXG4uZXF1aXBtZW50LXN1bW1hcnkgaDQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnN1bW1hcnktaXRlbXMge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uZW1wdHktc3VtbWFyeSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC42O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uc3VtbWFyeS10b3RhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4udG90YWwtYW1vdW50IHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbi5zdW1tYXJ5LWNhcGFjaXR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc3VtbWFyeS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zdW1tYXJ5LWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi8qIEluY2VudGl2ZXMgU3RhZ2UgKi9cbi5pbmNlbnRpdmVzLWNvbnRlbnQge1xuICBwYWRkaW5nOiAycmVtIDNyZW07XG59XG5cbi5hdmFpbGFibGUtaW5jZW50aXZlcyxcbi5zZWxlY3RlZC1pbmNlbnRpdmVzIHtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbn1cblxuLmF2YWlsYWJsZS1pbmNlbnRpdmVzIGgzLFxuLnNlbGVjdGVkLWluY2VudGl2ZXMgaDMge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5pbmNlbnRpdmUtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpO1xuICBnYXA6IDEuNXJlbTtcbn1cblxuLmluY2VudGl2ZS1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLmluY2VudGl2ZS1jYXJkOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KSAhaW1wb3J0YW50O1xufVxuXG4uaW5jZW50aXZlLWNhcmQuZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uaW5jZW50aXZlLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5pbmNlbnRpdmUtY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5pbmNlbnRpdmUtY2hlY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uY2hlY2tib3gtbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGVja21hcmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uaW5jZW50aXZlLWNoZWNrOmNoZWNrZWQgKyAuY2hlY2tib3gtbGFiZWwgLmNoZWNrbWFyayB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmluY2VudGl2ZS1jaGVjazpjaGVja2VkICsgLmNoZWNrYm94LWxhYmVsIC5jaGVja21hcms6OmFmdGVyIHtcbiAgY29udGVudDogXCLinJNcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uaW5jZW50aXZlLWhlYWRlciBoNCB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmluY2VudGl2ZS1kZXRhaWxzIHAge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5pbmNlbnRpdmUtdmFsdWUgLnZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnRheC10aW1pbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbi5iZWZvcmUtdGF4IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmFmdGVyLXRheCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdGVkLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFyZW07XG59XG5cbi5zZWxlY3RlZC1pbmNlbnRpdmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4uc2VsZWN0ZWQtaW5jZW50aXZlIC5pbmNlbnRpdmUtaW5mbyBoNCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3RlZC1pbmNlbnRpdmUgLmluY2VudGl2ZS1pbmZvIHAge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4uaW5jb21wYXRpYmxlLXdhcm5pbmcge1xuICBjb2xvcjogI2VmNDQ0NCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuOHJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnJlbW92ZS1idG4ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNlZjQ0NDQgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ucmVtb3ZlLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNkYzI2MjYgIWltcG9ydGFudDtcbn1cblxuLmluY2VudGl2ZXMtdG90YWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5pbmNlbnRpdmVzLXRvdGFsIGg0IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnRvdGFsLXZhbHVlIHtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuXG4vKiBFcXVpcG1lbnQgRGV0YWlscyBTZWN0aW9uICovXG4uZXF1aXBtZW50LWRldGFpbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEuNXJlbTtcbn1cblxuLmNvbXBvbmVudC1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxLjVyZW07XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5jb21wb25lbnQtY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLmNvbXBvbmVudC1pbWFnZSB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uY29tcG9uZW50LWltYWdlIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLmNvbXBvbmVudC1pbmZvIHtcbiAgZmxleDogMTtcbn1cblxuLmNvbXBvbmVudC1pbmZvIGg0IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5jb21wb25lbnQtc3BlY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc3BlYy1pdGVtIHtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uY29tcG9uZW50LXRvdGFsIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udG90YWwtY2FwYWNpdHkge1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuXG4udG90YWwtY29zdCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4vKiBDaGFydCBTZWN0aW9ucyAqL1xuLmNoYXJ0LXNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5jaGFydC1zZWN0aW9uIGgzIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uY2hhcnQtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgbWFyZ2luOiAxcmVtIDA7XG59XG5cbi5wYXliYWNrLWluZGljYXRvciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMS41cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLnBheWJhY2staW5kaWNhdG9yIHAge1xuICBtYXJnaW46IDAuNXJlbSAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5wYXliYWNrLWluZGljYXRvciBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuXG4vKiBQcm9ncmVzcyBTdGVwcyBhcyBMaW5rcyAqL1xuLnN0ZXAge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLnN0ZXA6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuXG4uc3RlcC5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zdGVwLmRpc2FibGVkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKiBCaWxsIENvbXBhcmlzb24gU2VjdGlvbiAqL1xuLmJpbGwtY29tcGFyaXNvbi1zdW1tYXJ5IHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbn1cblxuLmNvbXBhcmlzb24tc3RhdHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTtcbiAgZ2FwOiAxLjVyZW07XG59XG5cbi5zdGF0LWNhcmQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5zdGF0LWNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi5zdGF0LWNhcmQgaDQge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4uc3RhdC1jYXJkIC5zdGF0cy12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi5zdGF0LWNhcmQgLnN0YXRzLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi8qIFN5c3RlbSBTdW1tYXJ5ICovXG4uc3lzdGVtLXN1bW1hcnkge1xuICBtYXJnaW46IDJyZW0gM3JlbSAwO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuXG4uc3lzdGVtLXN1bW1hcnkgaDQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnN1bW1hcnktZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTIwcHgsIDFmcikpO1xuICBnYXA6IDFyZW07XG59XG5cbi5zdW1tYXJ5LXN0YXQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zdGF0cy12YWx1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnN0YXRzLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENPTVBSRUhFTlNJVkUgTU9CSUxFIFJFU1BPTlNJVkUgU1RZTEVTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogVGFibGV0IGFuZCBiZWxvdyAoNzY4cHgpICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLyogV2VsY29tZS9IZXJvIFNlY3Rpb24gKi9cbiAgLmhlcm8tc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMi41cmVtIDEuNXJlbTtcbiAgfVxuICAuaGVyby1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgfVxuICAuZmVhdHVyZS1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IDEuNXJlbTtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gIH1cbiAgLmN0YS1idXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbiAgLyogU3RhZ2UgSGVhZGVycyAqL1xuICAuc3RhZ2UtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAycmVtIDEuNXJlbTtcbiAgfVxuICAuc3RhZ2UtaGVhZGVyIGgyIHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gIH1cbiAgLnN0YWdlLWhlYWRlciBwIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbiAgLyogQ29udGVudCBHcmlkICovXG4gIC5jb250ZW50LWdyaWQge1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgfVxuICAvKiBVdGlsaXR5IEdyaWQgKi9cbiAgLnV0aWxpdHktZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICB9XG4gIC51dGlsaXR5LWNhcmQge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLyogQmlsbCBJbnB1dCAqL1xuICAuYmlsbC1pbnB1dC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAuYmlsbC1pbnB1dC1ncm91cCB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgcGFkZGluZzogMC42MjVyZW0gMC44NzVyZW07XG4gIH1cbiAgLmN1cnJlbmN5LXN5bWJvbCxcbiAgLnBlcmlvZCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG4gIC5iaWxsLWlucHV0IHtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgfVxuICAuYmlsbC1wcmV2aWV3IHtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICB9XG4gIC51c2FnZS1hbW91bnQge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgfVxuICAvKiBNb250aGx5IEdyaWQgKi9cbiAgLm1vbnRobHktZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDAuNzVyZW07XG4gIH1cbiAgLm1vbnRoLWlucHV0IHtcbiAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICB9XG4gIC5tb250aC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gIH1cbiAgLm1vbnRoLWZpZWxkIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgcGFkZGluZzogMC41cmVtO1xuICB9XG4gIC8qIEVxdWlwbWVudCBHcmlkICovXG4gIC5lcXVpcG1lbnQtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG4gIC5lcXVpcG1lbnQtY2FyZCB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuZXF1aXBtZW50LWluZm8gaDMge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICB9XG4gIC5lcXVpcG1lbnQtc3BlY3Mge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDAuNzVyZW07XG4gIH1cbiAgLnNwZWMtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgfVxuICAuc3BlYy11bml0IHtcbiAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgfVxuICAvKiBFcXVpcG1lbnQgQ29udHJvbHMgKi9cbiAgLmVxdWlwbWVudC1jb250cm9scyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuICAucXVhbnRpdHktY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLyogSW5jZW50aXZlcyBHcmlkICovXG4gIC5pbmNlbnRpdmUtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG4gIC5pbmNlbnRpdmUtY2FyZCB7XG4gICAgcGFkZGluZzogMS4yNXJlbTtcbiAgfVxuICAvKiBWaXN1YWwgQXJyYXkgRGVzaWduZXIgKi9cbiAgLmFycmF5LWRlc2lnbmVyLWNvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogNTAwcHg7XG4gIH1cbiAgLnZpc3VhbC1kZXNpZ25lci1tb2RlIHtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gIH1cbiAgLyogUmVzdWx0cyBTZWN0aW9uICovXG4gIC5yZXN1bHRzLWhlcm8ge1xuICAgIHBhZGRpbmc6IDIuNXJlbSAxLjVyZW07XG4gIH1cbiAgLnJlc3VsdHMtaGVybyBoMSB7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICB9XG4gIC5yZXN1bHRzLWhlcm8gcCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG4gIC5rZXktbWV0cmljcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG4gIC5tZXRyaWMtY2FyZCB7XG4gICAgcGFkZGluZzogMS41cmVtO1xuICB9XG4gIC5tZXRyaWMtY2FyZC5wcmltYXJ5IHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIC5tZXRyaWMtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxuICAubWV0cmljLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgfVxuICAucmVzdWx0cy1zZWN0aW9ucyB7XG4gICAgcGFkZGluZzogMS41cmVtO1xuICB9XG4gIC5yZXN1bHQtc2VjdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgfVxuICAvKiBGaW5hbmNpYWwgU2VjdGlvbiAqL1xuICAuY29zdC1icmVha2Rvd24ge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICB9XG4gIC5zYXZpbmdzLWNvbXBhcmlzb24ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxcmVtO1xuICB9XG4gIC5jb21wYXJpc29uLWFycm93IHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbiAgLmJpbGwtYW1vdW50IHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gIH1cbiAgLyogUGVyZm9ybWFuY2UgR3JpZCAqL1xuICAucGVyZm9ybWFuY2UtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAxLjVyZW07XG4gIH1cbiAgLyogU3lzdGVtIFNwZWNzICovXG4gIC5zeXN0ZW0tc3BlY3Mge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICB9XG4gIC8qIENoYXJ0IENvbnRhaW5lcnMgKi9cbiAgLmNoYXJ0LWNvbnRhaW5lcixcbiAgLm9mZnNldC1jaGFydC1jb250YWluZXIge1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICB9XG4gIC8qIE9mZnNldCBEZXRhaWxzICovXG4gIC5vZmZzZXQtZGV0YWlscyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDFyZW07XG4gIH1cbiAgLyogT2Zmc2V0IFdhcm5pbmdzICovXG4gIC5vZmZzZXQtd2FybmluZyxcbiAgLm9mZnNldC1zdWNjZXNzIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgfVxuICAvKiBFcXVpcG1lbnQgRGV0YWlscyAqL1xuICAuZXF1aXBtZW50LWRldGFpbHMge1xuICAgIGdhcDogMXJlbTtcbiAgfVxuICAuY29tcG9uZW50LWNhcmQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29tcG9uZW50LWltYWdlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuICAuY29tcG9uZW50LXNwZWNzIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmNvbXBvbmVudC10b3RhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDAuNXJlbTtcbiAgfVxuICAvKiBJbXBhY3QgR3JpZCAqL1xuICAuaW1wYWN0LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG4gIC5pbXBhY3QtY2FyZCB7XG4gICAgcGFkZGluZzogMS4yNXJlbTtcbiAgfVxuICAuaW1wYWN0LWljb24ge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxuICAuaW1wYWN0LXZhbHVlIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuICAuaW1wYWN0LWxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gIH1cbiAgLyogQmlsbCBDb21wYXJpc29uIFN0YXRzICovXG4gIC5jb21wYXJpc29uLXN0YXRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IDFyZW07XG4gIH1cbiAgLyogQ1RBIFNlY3Rpb24gKi9cbiAgLnJlc3VsdHMtY3RhIHtcbiAgICBwYWRkaW5nOiAycmVtIDEuNXJlbTtcbiAgfVxuICAucmVzdWx0cy1jdGEgaDMge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG4gIC5yZXN1bHRzLWN0YSBwIHtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gIH1cbiAgLmN0YS1idXR0b24ubGFyZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgfVxuICAvKiBTdGFnZSBBY3Rpb25zICovXG4gIC5zdGFnZS1hY3Rpb25zIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMC43NXJlbTtcbiAgfVxuICAuYmFjay1idXR0b24sXG4gIC5jb250aW51ZS1idXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwLjg3NXJlbSAxLjVyZW07XG4gIH1cbiAgLyogVHVyYm8gVG9hc3QgTm90aWZpY2F0aW9ucyAqL1xuICAudHVyYm8tdG9hc3Qge1xuICAgIHJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogMTBweCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMjBweCkgIWltcG9ydGFudDtcbiAgICB0b3A6IDcwcHggIWltcG9ydGFudDtcbiAgfVxufVxuLyogU21hbGwgTW9iaWxlICg0ODBweCBhbmQgYmVsb3cpICovXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmhlcm8tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgfVxuICAuaGVyby1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gIH1cbiAgLnN0YWdlLWhlYWRlciBoMiB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbiAgLnN0YWdlLWhlYWRlciBwIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgfVxuICAuY29udGVudC1ncmlkLFxuICAucmVzdWx0cy1zZWN0aW9ucyB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuZXF1aXBtZW50LWdyaWQge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLm1vbnRobHktZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbiAgLnN0ZXAgc3BhbiB7XG4gICAgZm9udC1zaXplOiAwLjZyZW07XG4gIH1cbiAgLnN0ZXAtY2lyY2xlIHtcbiAgICB3aWR0aDogMjZweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gIH1cbiAgLm1ldHJpYy12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbiAgLmJpbGwtYW1vdW50IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuICAuaW1wYWN0LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG4gIC5wcm9ncmVzcy1iYXItbW9kZXJuIHtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgfVxuICAucHJvZ3Jlc3Mtc3RlcHMge1xuICAgIGdhcDogMC4xNXJlbTtcbiAgfVxufVxuLyogTGFyZ2UgU2NyZWVucyAoMTIwMHB4IGFuZCBhYm92ZSkgLSBPcHRpbWl6ZSBmb3IgZGVza3RvcCAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuZXF1aXBtZW50LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gIH1cbiAgLnV0aWxpdHktZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgfVxuICAubW9udGhseS1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICB9XG4gIC5pbXBhY3QtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgfVxufVxuLyogVmlzdWFsIEFycmF5IERlc2lnbmVyIFN0eWxlcyAqL1xuLmFycmF5LWRlc2lnbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMjgwcHg7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7XG4gIGdhcDogMXJlbTtcbiAgaGVpZ2h0OiA4MHZoO1xuICBtaW4taGVpZ2h0OiA2NTBweDtcbiAgbWF4LWhlaWdodDogODAwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBNYWtlIGNhbnZhcyBjb250YWluZXIgd2lkZXIgaW4gYXJyYXlzIHN0YWdlICovXG4uYXJyYXlzLXN0YWdlIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uYXJyYXlzLXN0YWdlIC5hcnJheS1kZXNpZ25lciB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYXJyYXlzLXN0YWdlIC52aXN1YWwtZGVzaWduZXItbW9kZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBUb29sYmFyICovXG4uZGVzaWduZXItdG9vbGJhciB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxMjVweDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMXJlbTtcbn1cblxuLnRvb2xiYXItc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLnRvb2wtYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnRvb2wtYnV0dG9uOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnRvb2wtYnV0dG9uIC5vcmllbnRhdGlvbi1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG59XG5cbi50b29sLWJ1dHRvbi5hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbn1cblxuLnRvb2wtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi8qIEFycmF5IENvbnRyb2xzICovXG4uYXJyYXktY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEuNXJlbTtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmFycmF5LWNvbnRyb2xzIGxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5hcnJheS1jb250cm9scyBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gIHdpZHRoOiA4MHB4O1xuICBtYXJnaW46IDAgMC4yNXJlbTtcbn1cblxuLmFycmF5LWNvbnRyb2xzIHNwYW4ge1xuICBtaW4td2lkdGg6IDJyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBBcnJheSBTdGF0cyAqL1xuLmFycmF5LXN0YXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxLjVyZW07XG59XG5cbi5zdGF0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc3RhdHMtdmFsdWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uc3RhdC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xufVxuXG4vKiBDYW52YXMgQ29udGFpbmVyICovXG4uY2FudmFzLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogd2hpdGUgIWltcG9ydGFudDsgLyogQWx3YXlzIHdoaXRlIGZvciBiZXR0ZXIgZ3JpZC9wYW5lbCBjb250cmFzdCAqL1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZGVzaWduZXItY2FudmFzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIC8qIE1vYmlsZSB0b3VjaCBpbXByb3ZlbWVudHMgKi9cbiAgdG91Y2gtYWN0aW9uOiBub25lOyAvKiBQcmV2ZW50IGFsbCBkZWZhdWx0IHRvdWNoIGJlaGF2aW9ycyAqL1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyAvKiBQcmV2ZW50IHRleHQgc2VsZWN0aW9uIG9uIGlPUyAqL1xuICB1c2VyLXNlbGVjdDogbm9uZTsgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiAqL1xufVxuXG4vKiBMZWdhY3kgc3VwcG9ydCAqL1xuI2FycmF5LWNhbnZhcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uY2FudmFzLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIFNpZGViYXIgKi9cbi5kZXNpZ25lci1zaWRlYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG4vKiBBcnJheSBMaXN0ICovXG4uYXJyYXktbGlzdCBoNCxcbi5wZXJmb3JtYW5jZS1wcmV2aWV3IGg0IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5hcnJheS1pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmFycmF5LWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uYXJyYXktaXRlbTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpO1xufVxuXG4uYXJyYXktaXRlbS5zZWxlY3RlZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5hcnJheS1pdGVtLWluZm8gaDUge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5hcnJheS1pdGVtLWluZm8gcCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLmRlbGV0ZS1hcnJheS1idG4ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNlZjQ0NDQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uZGVsZXRlLWFycmF5LWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNkYzI2MjY7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLmVtcHR5LXN0YXRlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBwYWRkaW5nOiAycmVtIDFyZW07XG4gIG1hcmdpbjogMDtcbn1cblxuLyogQ29sbGFwc2libGUgSGVhZGVycyAqL1xuLmNvbGxhcHNpYmxlLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgcGFkZGluZzogMC4yNXJlbSAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbn1cblxuLmNvbGxhcHNpYmxlLWhlYWRlcjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLmNvbGxhcHNlLWljb24ge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi5jb2xsYXBzaWJsZS1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogMTAwMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MgZWFzZSwgb3BhY2l0eSAwLjNzIGVhc2U7XG4gIG9wYWNpdHk6IDE7XG4gIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xufVxuXG4uY29sbGFwc2libGUtY29udGVudC5jb2xsYXBzZWQge1xuICBtYXgtaGVpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4vKiBTaGFkaW5nIENvbnRyb2wgKi9cbi5zaGFkaW5nLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4uY29udHJvbC1kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLnNoYWRpbmctc2xpZGVyLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLnNoYWRpbmctc2xpZGVyLWNvbnRhaW5lciBsYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zaGFkaW5nLWxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnNoYWRpbmctc2xpZGVyLWNvbnRhaW5lciBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gIGZsZXg6IDE7XG4gIG1hcmdpbjogMCAwLjVyZW07XG59XG5cbi5zaGFkaW5nLWRpc3BsYXkge1xuICBtaW4td2lkdGg6IDNyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zaGFkaW5nLWluZGljYXRvciB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uaW5kaWNhdG9yLWJhciB7XG4gIGhlaWdodDogOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xufVxuXG4uaW5kaWNhdG9yLWZpbGwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzEwYjk4MSAwJSwgI2Y1OWUwYiA1MCUsICNlZjQ0NDQgMTAwJSk7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4uc2hhZGluZy1sZXZlbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG5cbi5sZXZlbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLnNoYWRpbmctbm90ZSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubG9zc2VzLWluZm8ge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44O1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxvc3Nlcy1pbmZvIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiBTb2xhciBUaXBzICovXG4uc29sYXItdGlwcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi50aXAtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWJ1dHRvbi1jb2xvdXIpO1xufVxuXG4udGlwLWNhcmQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi50aXAtY2FyZC53YXJuaW5nIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmNTllMGI7XG59XG5cbi50aXAtY2FyZC5zdWNjZXNzIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMxMGI5ODE7XG59XG5cbi50aXAtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi50aXAtY29udGVudCB7XG4gIGZsZXg6IDE7XG59XG5cbi50aXAtY29udGVudCBzdHJvbmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xufVxuXG4udGlwLWNvbnRlbnQgcCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLyogUGVyZm9ybWFuY2UgUHJldmlldyAqL1xuLnBlcmZvcm1hbmNlLXByZXZpZXcge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4ucGVyZm9ybWFuY2Utc3RhdHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFyZW07XG59XG5cbi5wZXJmLXN0YXQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5wZXJmLXZhbHVlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnBlcmYtbGFiZWwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xufVxuXG4vKiBFcnJvciBNZXNzYWdlICovXG4uZXJyb3ItbWVzc2FnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5lcnJvci1tZXNzYWdlIGgzIHtcbiAgY29sb3I6ICNlZjQ0NDQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLnJldHJ5LWJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjM2I4MmY2O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5yZXRyeS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjMjU2M2ViO1xufVxuXG4vKiBSZXNwb25zaXZlIERlc2lnbiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuYXJyYXktZGVzaWduZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIDFmciBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA3MHZoO1xuICB9XG4gIC5kZXNpZ25lci1zaWRlYmFyIHtcbiAgICBncmlkLXJvdzogNDtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gIH1cbiAgLmFycmF5LWxpc3QsXG4gIC5wZXJmb3JtYW5jZS1wcmV2aWV3IHtcbiAgICBtaW4td2lkdGg6IDI1MHB4O1xuICB9XG4gIC5kZXNpZ25lci10b29sYmFyIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogMC43NXJlbTtcbiAgICBtaW4taGVpZ2h0OiBhdXRvOyAvKiBSZW1vdmUgZml4ZWQgbWluLWhlaWdodCBvbiBtb2JpbGUgKi9cbiAgfVxuICAudG9vbGJhci1zZWN0aW9uIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLyogVG9vbCBidXR0b25zIHJvdyAqL1xuICAudG9vbGJhci1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IDAuNXJlbTtcbiAgfVxuICAudG9vbGJhci1zZWN0aW9uOmZpcnN0LWNoaWxkIC50b29sLWJ1dHRvbiB7XG4gICAgZmxleDogbm9uZTsgLyogUmVtb3ZlIGZsZXggdG8gd29yayB3aXRoIGdyaWQgKi9cbiAgfVxuICAuYXJyYXktY29udHJvbHMge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDAuNXJlbTtcbiAgfVxuICAuYXJyYXktc3RhdHMge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDAuNzVyZW07XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZGVzaWduZXItdG9vbGJhciB7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIGdhcDogMC41cmVtO1xuICB9XG4gIC50b29sYmFyLXNlY3Rpb246Zmlyc3QtY2hpbGQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IDAuNHJlbTtcbiAgfVxuICAudG9vbC1idXR0b24ge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjZyZW07XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgbWluLWhlaWdodDogNDRweDtcbiAgICBnYXA6IDAuM3JlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC50b29sLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICB9XG4gIC5vcmllbnRhdGlvbi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjdyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuYXJyYXktY29udHJvbHMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZ2FwOiAwLjVyZW07XG4gICAgcGFkZGluZzogMC41cmVtO1xuICB9XG4gIC5hcnJheS1jb250cm9scyBsYWJlbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgfVxuICAuYXJyYXktY29udHJvbHMgaW5wdXRbdHlwZT1yYW5nZV0ge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBmbGV4OiAxO1xuICB9XG4gIC5hcnJheS1zdGF0cyB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMC41cmVtO1xuICB9XG4gIC5zdGF0IHtcbiAgICBmbGV4OiAxIDEgMzAlO1xuICAgIG1pbi13aWR0aDogNjBweDtcbiAgfVxuICAuc3RhdC12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG4gIC5zdGF0LWxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuNjVyZW07XG4gIH1cbiAgLmFycmF5LWRlc2lnbmVyIHtcbiAgICBtaW4taGVpZ2h0OiA2MHZoO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7IC8qIFJlbW92ZSBtYXgtaGVpZ2h0IHJlc3RyaWN0aW9uIG9uIG1vYmlsZSAqL1xuICB9XG4gIC5jYW52YXMtY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OiA0NTBweDsgLyogTGFyZ2VyIG1pbmltdW0gZm9yIGJldHRlciBtb2JpbGUgZXhwZXJpZW5jZSAqL1xuICB9XG4gIC5kZXNpZ25lci1jYW52YXMge1xuICAgIG1pbi1oZWlnaHQ6IDQ1MHB4O1xuICAgIHRvdWNoLWFjdGlvbjogbm9uZTsgLyogT3ZlcnJpZGUgdG8gcHJldmVudCBhbGwgZ2VzdHVyZXMgKi9cbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiBSZW1vdmUgdGFwIGhpZ2hsaWdodCBvbiBpT1MgKi9cbiAgfVxuICAuZGVzaWduZXItdG9vbGJhciB7XG4gICAgcGFkZGluZzogMC43NXJlbTtcbiAgfVxuICAuYXJyYXktaXRlbSB7XG4gICAgcGFkZGluZzogMC43NXJlbTtcbiAgICBtaW4taGVpZ2h0OiA0NHB4OyAvKiBCZXR0ZXIgdG91Y2ggdGFyZ2V0cyAqL1xuICB9XG4gIC5hcnJheS1pdGVtLWhlYWRlciBoNCB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gIH1cbiAgLmFycmF5LXN0YXRzIC5zdGF0IHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgfVxuICAucGVyZm9ybWFuY2UtcHJldmlldyB7XG4gICAgcGFkZGluZzogMC43NXJlbTtcbiAgfVxuICAucGVyZm9ybWFuY2UtcHJldmlldyBoMyB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG4gIC5wZXJmb3JtYW5jZS1zdGF0cyB7XG4gICAgZ2FwOiAwLjVyZW07XG4gIH1cbiAgLnN0YXQtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgfVxuICAuc3RhdC12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gIH1cbiAgLyogQmV0dGVyIHRvdWNoIHRhcmdldHMgZm9yIGJ1dHRvbnMgYW5kIGludGVyYWN0aXZlIGVsZW1lbnRzICovXG4gIC5kZWxldGUtYXJyYXktYnRuIHtcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gIH1cbn1cbi8qIEV4dHJhIHNtYWxsIG1vYmlsZSBkZXZpY2VzICovXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmRlc2lnbmVyLXRvb2xiYXIge1xuICAgIHBhZGRpbmc6IDAuNHJlbTtcbiAgICBnYXA6IDAuNHJlbTtcbiAgfVxuICAudG9vbGJhci1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ2FwOiAwLjNyZW07XG4gIH1cbiAgLnRvb2wtYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAwLjRyZW0gMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xuICAgIGdhcDogMC4yNXJlbTtcbiAgfVxuICAudG9vbC1pY29uIHtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gIH1cbiAgLm9yaWVudGF0aW9uLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuNjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuYXJyYXktY29udHJvbHMge1xuICAgIHBhZGRpbmc6IDAuNHJlbTtcbiAgICBnYXA6IDAuNHJlbTtcbiAgfVxuICAuYXJyYXktY29udHJvbHMgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICB9XG4gIC5hcnJheS1jb250cm9scyBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgZmxleDogMTtcbiAgfVxuICAuYXJyYXktY29udHJvbHMgc3BhbiB7XG4gICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICB9XG4gIC5hcnJheS1jb250cm9scyBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIHBhZGRpbmc6IDAuM3JlbTtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gIH1cbiAgLmNhbnZhcy1jb250YWluZXIge1xuICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICB9XG4gIC5kZXNpZ25lci1jYW52YXMge1xuICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICB9XG4gIC5hcnJheS1saXN0LFxuICAucGVyZm9ybWFuY2UtcHJldmlldyB7XG4gICAgbWluLXdpZHRoOiAxODBweDtcbiAgfVxuICAuYXJyYXktaXRlbSB7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIH1cbiAgLmFycmF5LXN0YXRzIHtcbiAgICBnYXA6IDAuNHJlbTtcbiAgfVxuICAuc3RhdCB7XG4gICAgbWluLXdpZHRoOiA1NXB4O1xuICB9XG4gIC5zdGF0LXZhbHVlIHtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gIH1cbiAgLnN0YXQtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICB9XG4gIC8qIFN0YWNrIHRvb2xiYXIgc2VjdGlvbnMgdmVydGljYWxseSBvbiB2ZXJ5IHNtYWxsIHNjcmVlbnMgKi9cbiAgLnRvb2xiYXItc2VjdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi8qIEFuaW1hdGlvbiBDbGFzc2VzICovXG4uYXJyYXktaXRlbS5oaWdobGlnaHQge1xuICBhbmltYXRpb246IGhpZ2hsaWdodCAwLjVzIGVhc2U7XG59XG5cbkBrZXlmcmFtZXMgaGlnaGxpZ2h0IHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQ6ICNmZWYzYzc7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gIH1cbn1cbi5zdGF0LXZhbHVlLnVwZGF0aW5nIHtcbiAgYW5pbWF0aW9uOiBwdWxzZSAwLjNzIGVhc2U7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG4vKiBEcmFnIGFuZCBEcm9wIFN0YXRlcyAqL1xuLmFycmF5LWRlc2lnbmVyLmRyYWdnaW5nIHtcbiAgY3Vyc29yOiBncmFiYmluZyAhaW1wb3J0YW50O1xufVxuXG4uYXJyYXktZGVzaWduZXIuZHJhZ2dpbmcgKiB7XG4gIGN1cnNvcjogZ3JhYmJpbmcgIWltcG9ydGFudDtcbn1cblxuLyogU2VsZWN0aW9uIEluZGljYXRvcnMgKi9cbi5hcnJheS1pdGVtLnNlbGVjdGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogM3B4O1xuICBiYWNrZ3JvdW5kOiAjM2I4MmY2O1xuICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDtcbn1cblxuLyogVG9vbHRpcCBTdHlsZXMgKi9cbi5hcnJheS10b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIExvYWRpbmcgU3RhdGVzICovXG4uYXJyYXktZGVzaWduZXIubG9hZGluZyB7XG4gIG9wYWNpdHk6IDAuNztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5wZXJmb3JtYW5jZS1zdGF0cy5sb2FkaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5wZXJmb3JtYW5jZS1zdGF0cy5sb2FkaW5nOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNlMmU4ZjA7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjM2I4MmY2O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5sb2FkaW5nLXNwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IDNweCBzb2xpZCAjZTJlOGYwO1xuICBib3JkZXItdG9wOiAzcHggc29saWQgIzNiODJmNjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKiBWaXN1YWwgZmVlZGJhY2sgZm9yIGFycmF5IHJvdGF0aW9uICovXG4uYXJyYXktaXRlbS51cGRhdGluZyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2YzZjRmNiwgI2RiZWFmZSwgI2YzZjRmNik7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBhbmltYXRpb246IHNoaW1tZXIgMXMgZWFzZS1pbi1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgc2hpbW1lciB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDtcbiAgfVxufVxuLyogQ29tcGFzcyBhbmQgZGlyZWN0aW9uIGluZGljYXRvcnMgKi9cbi5jb21wYXNzLWluZGljYXRvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMHB4O1xuICByaWdodDogMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDhweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogIzM3NDE1MTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QxZDVkYjtcbn1cblxuLyogQXJyYXkgcm90YXRpb24gdmlzdWFsIGZlZWRiYWNrICovXG4uYXJyYXktcm90YXRpbmcge1xuICBhbmltYXRpb246IHJvdGF0ZUhpZ2hsaWdodCAwLjVzIGVhc2UtaW4tb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUhpZ2hsaWdodCB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpO1xuICB9XG4gIDUwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKTtcbiAgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoNTksIDEzMCwgMjQ2LCAwKTtcbiAgfVxufVxuLyogRW5lcmd5IE9mZnNldCBEaXNwbGF5IFN0eWxlcyAqL1xuLmRlc2lnbmVyLW9mZnNldC1kaXNwbGF5IHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLm9mZnNldC1jaXJjbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgbWFyZ2luOiAwIGF1dG8gMXJlbTtcbn1cblxuLm9mZnNldC1zdmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuXG4ub2Zmc2V0LWJnIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgc3Ryb2tlLXdpZHRoOiA4O1xufVxuXG4ub2Zmc2V0LXByb2dyZXNzIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlLXdpZHRoOiA4O1xuICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAwLjVzIGVhc2UsIHN0cm9rZSAwLjNzIGVhc2U7XG59XG5cbi5vZmZzZXQtdmFsdWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5vZmZzZXQtdmFsdWUgc3BhbjpmaXJzdC1jaGlsZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xufVxuXG4ub2Zmc2V0LXN1YmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4ub2Zmc2V0LWluZm8ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5vZmZzZXQtbWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5vZmZzZXQtbWVzc2FnZS5pbmZvIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ub2Zmc2V0LW1lc3NhZ2UucGFydGlhbCB7XG4gIGJhY2tncm91bmQ6ICNmZWYzYzc7XG4gIGNvbG9yOiAjOTI0MDBlO1xufVxuXG4ub2Zmc2V0LW1lc3NhZ2Uuc3VjY2VzcyB7XG4gIGJhY2tncm91bmQ6ICNkMWZhZTU7XG4gIGNvbG9yOiAjMDY1ZjQ2O1xufVxuXG4ub2Zmc2V0LW1lc3NhZ2UuZXhjZXNzIHtcbiAgYmFja2dyb3VuZDogI2ZlZTJlMjtcbiAgY29sb3I6ICM5OTFiMWI7XG59XG5cbi5vZmZzZXQtbWVzc2FnZS5jYWxjdWxhdGluZyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC43O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5vZmZzZXQtY2lyY2xlLmNhbGN1bGF0aW5nIHtcbiAgYW5pbWF0aW9uOiBwdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5vZmZzZXQtY2lyY2xlIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgaGVpZ2h0OiAxMjBweDtcbiAgfVxuICAub2Zmc2V0LXZhbHVlIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG4gIC5vZmZzZXQtc3VibGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICB9XG59XG4ucHVibGljLW5hdmJhci1jbGVhcmFuY2Uge1xuICBoZWlnaHQ6IDk2cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5ib2R5W2RhdGEtbmF2aWdhdGlvbi1zaGVsbD1wdWJsaWNdIHtcbiAgLS1wYWdlLXN0aWNreS1uYXZiYXItb2Zmc2V0OiAxMDBweDtcbiAgLS1wcm9ncmVzcy1zdGlja3ktbmF2YmFyLW9mZnNldDogMTEwcHg7XG59XG5cbmJvZHlbZGF0YS1uYXZpZ2F0aW9uLXNoZWxsPXN0YWZmXSB7XG4gIC0tcGFnZS1zdGlja3ktbmF2YmFyLW9mZnNldDogODBweDtcbiAgLS1wcm9ncmVzcy1zdGlja3ktbmF2YmFyLW9mZnNldDogODBweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5wdWJsaWMtbmF2YmFyLWNsZWFyYW5jZSB7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgYm9keVtkYXRhLW5hdmlnYXRpb24tc2hlbGw9cHVibGljXSB7XG4gICAgLS1wYWdlLXN0aWNreS1uYXZiYXItb2Zmc2V0OiA4MHB4O1xuICAgIC0tcHJvZ3Jlc3Mtc3RpY2t5LW5hdmJhci1vZmZzZXQ6IDgwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICNsb3R0aWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGxvYWRpbmctcHJvZ3Jlc3Mge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB9XG59XG4ubm8tbGluayB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5ib3JkZXItYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0ZTRlNGU7XG59XG5cbi5ydGwge1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cblxuLm5vLWRlY29yYXRpb24ge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnN0cmlrZXRocm91Z2gge1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbn1cblxuLm5vLWRlY29yYXRpb246aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLm5vLWRlY29yYXRpb24tZGFyayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICM0ZTRlNGU7XG59XG5cbi5jZW50ZXJlZC1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2VudGVyZWQtY29tcG9uZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItdG9wOiAzcHggc29saWQgIzRmNGY0ZjsgLyogRnVsbCBib3JkZXIgKi9cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2VudGVyZWQtY29tcG9uZW50Lmxhc3Qge1xuICBib3JkZXItdG9wOiBub25lOyAvKiBSZW1vdmUgZnVsbCBib3JkZXIgKi9cbn1cblxuLmNlbnRlcmVkLWNvbXBvbmVudC5sYXN0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDUwJTsgLyogSGFsZiBib3JkZXIgKi9cbiAgaGVpZ2h0OiAzcHg7IC8qIEJvcmRlciB0aGlja25lc3MgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogIzRmNGY0ZjsgLyogQm9yZGVyIGNvbG9yICovXG59XG5cbi5jZW50ZXJlZC1jb21wb25lbnRiIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgIzRmNGY0ZjsgLyogRnVsbCBib3JkZXIgKi9cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2VudGVyZWQtY29tcG9uZW50Yi5sYXN0IHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogUmVtb3ZlIGZ1bGwgYm9yZGVyICovXG59XG5cbi5jZW50ZXJlZC1jb21wb25lbnRiLmxhc3Q6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA1MCU7IC8qIEhhbGYgYm9yZGVyICovXG4gIGhlaWdodDogM3B4OyAvKiBCb3JkZXIgdGhpY2tuZXNzICovXG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZjRmNGY7IC8qIEJvcmRlciBjb2xvciAqL1xufVxuXG4uc3lzdGVtY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2UtaW4tb3V0LCB0cmFuc2Zvcm0gMC4ycyBlYXNlLWluLW91dDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAyNjBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLnN5c3RlbWNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDEwcHggMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4zKTsgLyogSW5jcmVhc2UgYm94IHNoYWRvdyAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpIHJvdGF0ZSgxZGVnKTsgLyogTWFrZSB0aGUgc2NhbGUgYW5kIHJvdGF0aW9uIG1vcmUgc3VidGxlICovXG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgeyAvKiBBZGp1c3QgdGhpcyB2YWx1ZSBiYXNlZCBvbiB3aGVuIHlvdSB3YW50IHRoZSBjYXJkcyB0byBzdGFjayAqL1xuICAuc3lzdGVtY2FyZCB7XG4gICAgZmxleDogMCAwIDEwMCU7IC8qIFRoaXMgbWFrZXMgdGhlIGNhcmRzIHRha2UgdXAgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIGNvbnRhaW5lciBvbiBzbWFsbCBzY3JlZW5zICovXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG4uY29sbGVjdGlvbi1jYXJkIHtcbiAgLyogQmFzZSBzdHlsZXMgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBtaW4td2lkdGg6IDI0MHB4O1xuICBoZWlnaHQ6IDE1MHB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbjogMTVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogQmFja2dyb3VuZCBoYW5kbGluZyAqL1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIC8qIE1vZGVybiBnbGFzcyBlZmZlY3QgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIC8qIEVuaGFuY2VkIHNoYWRvdyAqL1xuICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gIC8qIFNtb290aCB0cmFuc2l0aW9ucyAqL1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAvKiBUZXh0IHN0eWxlcyAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAvKiBPcHRpb25hbCBncmFkaWVudCBvdmVybGF5ICovXG59XG4uY29sbGVjdGlvbi1jYXJkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDAsIDAsIDApIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDUpIDEwMCUpO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbn1cbi5jb2xsZWN0aW9uLWNhcmQge1xuICAvKiBIb3ZlciBlZmZlY3RzICovXG59XG4uY29sbGVjdGlvbi1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpIHNjYWxlKDEuMDEpO1xuICBib3gtc2hhZG93OiAwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLmNvbGxlY3Rpb24tY2FyZDpob3Zlcjo6YWZ0ZXIge1xuICBvcGFjaXR5OiAwLjI7XG59XG4uY29sbGVjdGlvbi1jYXJkIHtcbiAgLyogQWN0aXZlIHN0YXRlICovXG59XG4uY29sbGVjdGlvbi1jYXJkOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxKTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4uY29sbGVjdGlvbi1jYXJkIHtcbiAgLyogRW5zdXJlIGNvbnRlbnQgc3RheXMgYWJvdmUgb3ZlcmxheSAqL1xufVxuLmNvbGxlY3Rpb24tY2FyZCAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuLmNvbGxlY3Rpb24tY2FyZCB7XG4gIC8qIE1lZGlhIHF1ZXJ5IGZvciB0b3VjaCBkZXZpY2VzICovXG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5jb2xsZWN0aW9uLWNhcmQ6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gIH1cbn1cblxuLnRleHQtb3JhbmdlIHtcbiAgY29sb3I6ICNmNDc0MjQ7XG59XG5cbi5saW5rIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmxpbms6aG92ZXIge1xuICBjb2xvcjogIzhDQUFFRTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuXG4uaWNvbi1pbnRlcmFjdGlvbiB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmljb24taW50ZXJhY3Rpb246aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbmJvZHkgYTpob3ZlciB7XG4gIGNvbG9yOiAjODlCNEZBO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uaGVyby10ZXh0IHtcbiAgYW5pbWF0aW9uOiBtb3ZlLWJnIDE1cyBsaW5lYXIgaW5maW5pdGU7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICM4OUI0RkEsICNGMzhCQTgsICNBNkUzQTEpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbn1cblxuLmNvbGxlY3Rpb24tY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbn1cblxuLmNvbGxlY3Rpb24tY2FyZCAuY2FyZC1ib2R5IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwYWRkaW5nOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5icmFuZGxvZ29uZXcge1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Y3ZjdmNztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4udG9hc3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi5icmFuZGxvZ28ge1xuICB3aWR0aDogMjAwcHg7IC8qIFlvdSBjYW4gYWRqdXN0IHRoaXMgYWNjb3JkaW5nIHRvIHlvdXIgbmVlZHMgKi9cbiAgaGVpZ2h0OiBhdXRvOyAvKiBUaGlzIHdpbGwgbWFpbnRhaW4gdGhlIGFzcGVjdCByYXRpbyBvZiB0aGUgaW1hZ2UgKi9cbn1cblxuLmJyYW5kbG9nb3NtIHtcbiAgd2lkdGg6IDgwcHg7IC8qIFlvdSBjYW4gYWRqdXN0IHRoaXMgYWNjb3JkaW5nIHRvIHlvdXIgbmVlZHMgKi9cbiAgaGVpZ2h0OiBhdXRvOyAvKiBUaGlzIHdpbGwgbWFpbnRhaW4gdGhlIGFzcGVjdCByYXRpbyBvZiB0aGUgaW1hZ2UgKi9cbn1cblxuLmhpZ2hsaWdodCB7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGJvcmRlcjogMnB4ICMzMzVlZWE7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5OSwgMTk5LCAxOTksIDAuMTQ1MDk4MDM5Mik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmRyb3Bkb3duLW1lbnUge1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgei1pbmRleDogMTA1NSAhaW1wb3J0YW50O1xufVxuLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLXNjcm9sbGJhci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc3RpY2t5LXRvcCB7XG4gIHotaW5kZXg6IDk5OSAhaW1wb3J0YW50O1xufVxuXG4ubGlzdC12aWV3LXRhYmxlIC5zdGlja3ktdG9wIHtcbiAgei1pbmRleDogOTk5ICFpbXBvcnRhbnQ7XG59XG4ubGlzdC12aWV3LXRhYmxlIC50YWJsZSB0Ym9keSB0cjpob3ZlciB7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmxpc3Qtdmlldy10YWJsZSAudGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gdGgsXG4ubGlzdC12aWV3LXRhYmxlIC50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtaG92ZXItY29sb3VyLCByZ2JhKDAsIDAsIDAsIDAuMDI1KSk7XG59XG5cbi53b3JrZmxvdy1oZWFkZXIgLmRyb3Bkb3duLW1lbnUge1xuICB6LWluZGV4OiAxMDYwICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAud29ya2Zsb3ctaGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAud29ya2Zsb3ctdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5saXN0LXZpZXctY29udGFpbmVyIHtcbiAgICBtYXJnaW46IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5saXN0LXZpZXctdGFibGUgdGgge1xuICAgIHBhZGRpbmc6IDAuNHJlbSAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubGlzdC12aWV3LXRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHJvamVjdC10aHVtYm5haWwsIC5wcm9qZWN0LXRodW1ibmFpbC1wbGFjZWhvbGRlciB7XG4gICAgd2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgfVxufVxuLmZ1bGwtd2lkdGgge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDsgLyogQWRkIHRoaXMgdG8gcm91bmQgdGhlIGNvcm5lcnMgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogQWRkIHRoaXMgdG8gZW5zdXJlIHRoZSByb3VuZGVkIGNvcm5lcnMgYXJlIHZpc2libGUgKi9cbn1cblxuLmZ1bGwtd2lkdGggdGQge1xuICBwYWRkaW5nOiAxMHB4OyAvKiBBZGQgdGhpcyB0byBjcmVhdGUgcGFkZGluZyBvbiB0aGUgY2VsbHMgKi9cbn1cblxuLmZ1bGwtd2lkdGggdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cblxuLmNhcmQuY2FyZC1ib2R5IHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDsgLyogQWRkIHRoaXMgdG8gcm91bmQgdGhlIGNvcm5lcnMgb2YgdGhlIGNhcmQgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogQWRkIHRoaXMgdG8gZW5zdXJlIHRoZSByb3VuZGVkIGNvcm5lcnMgYXJlIHZpc2libGUgKi9cbn1cblxuLmhpZGRlbi1jb2x1bW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ua2FuYmFuY2FyZHNjcm9sbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZ3JvdzogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDY1dmg7XG4gIGNvbnRhaW46IGxheW91dDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDE1NSwgMTU1LCAxNTUsIDAuMykgdHJhbnNwYXJlbnQ7XG59XG4ua2FuYmFuY2FyZHNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xufVxuLmthbmJhbmNhcmRzY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ua2FuYmFuY2FyZHNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1NSwgMTU1LCAxNTUsIDAuMyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5rYW5iYW5jYXJkc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTU1LCAxNTUsIDE1NSwgMC41KTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAua2FuYmFuY2FyZHNjcm9sbCB7IC8qIEFkanVzdCBicmVha3BvaW50IGFzIG5lZWRlZCAqL1xuICAgIHNjcm9sbC1zbmFwLWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLmNhbGVuZGFyc2Nyb2xsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1ncm93OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwdmg7XG4gIC8qIE1ha2Ugc2Nyb2xsYmFyIGhhcmRseSB2aXNpYmxlICovXG59XG4uY2FsZW5kYXJzY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDNweDtcbn1cbi5jYWxlbmRhcnNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5jYWxlbmRhcnNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDYxLCA2MSwgNjEsIDAuMSkgIWltcG9ydGFudDtcbn1cblxuLmZha2VpbnB1dCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBjb2xvcjogIzRlNGU0ZTtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkZGRkO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5wcm9maWxlLXBpYyB7XG4gIGhlaWdodDogNDBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNkZGRkZGQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIHBhZGRpbmc6IDJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucHJvZmlsZS1waWMtMiB7XG4gIGhlaWdodDogODBweDtcbiAgd2lkdGg6IDgwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNkZGRkZGQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIHBhZGRpbmc6IDJweDtcbn1cblxuLnByb2ZpbGUtcGljLTMge1xuICBoZWlnaHQ6IDIyMHB4O1xuICB3aWR0aDogMjIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDMwJTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogI2RkZGRkZDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgcGFkZGluZzogMnB4O1xufVxuXG4ucHJvZmlsZS1waWMtdGlueSB7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNkZGRkZGQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIHBhZGRpbmc6IDJweDtcbn1cblxuLmNvbW1lbnQtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIG1heC13aWR0aDogODUlO1xufVxuXG4uY29tbWVudC1tZXRhZGF0YSB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogIzY2NjtcbiAgbWFyZ2luOiAwLjNyZW0gMDtcbn1cbi5jb21tZW50LW1ldGFkYXRhLnJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jb21tZW50LWltYWdlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi10b3A6IDhweDtcbn1cbi5jb21tZW50LWltYWdlcy5yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5hbGlnbi1sZWZ0IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyAvKiBBbGlnbnMgY29udGVudCB0byB0aGUgbGVmdCAqL1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uYWxpZ24tcmlnaHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKiBBbGlnbnMgY29udGVudCB0byB0aGUgcmlnaHQgKi9cbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5qdXN0cGVhY2h5IC5pbWFnZS1tYXNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUyKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwMykpO1xuICB6LWluZGV4OiAxO1xufVxuXG4uanVzdHBlYWNoeSA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5jdXN0b20tZmlsZS1pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jdXN0b20tZmlsZS11cGxvYWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnNtYWxsY2FyZCB7XG4gIG1pbi13aWR0aDogMzVweDtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItY29sb3I6ICNmN2Y3Zjc7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uc3R5bGVfaW1hZ2Uge1xuICBib3gtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMTIpIDBweCAwcHggMzBweCAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzMDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5zdHlsZV9pbWFnZV9yZXZlcnNlZCB7XG4gIGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4xMikgMHB4IDBweCAzMHB4IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDMwMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDMwMHB4O1xufVxuXG4vKiBEZWZhdWx0IGhlaWdodCBmb3Igc21hbGwgZGV2aWNlcyAqL1xuI2ludHJvLWV4YW1wbGUge1xuICBoZWlnaHQ6IDQwMHB4O1xufVxuXG4vKiBIZWlnaHQgZm9yIGRldmljZXMgbGFyZ2VyIHRoYW4gOTkycHggKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAjaW50cm8tZXhhbXBsZSB7XG4gICAgaGVpZ2h0OiA4MDBweDtcbiAgfVxufVxuLyogRGVmYXVsdCBoZWlnaHQgZm9yIHNtYWxsIGRldmljZXMgKi9cbiNpbnRyby1leGFtcGxlLXNtYWxsIHtcbiAgaGVpZ2h0OiA0MDBweDtcbn1cblxuLyogSGVpZ2h0IGZvciBkZXZpY2VzIGxhcmdlciB0aGFuIDk5MnB4ICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgI2ludHJvLWV4YW1wbGUtc21hbGwge1xuICAgIGhlaWdodDogMzAwcHg7XG4gIH1cbn1cbi8qIERlZmF1bHQgaGVpZ2h0IGZvciBzbWFsbCBkZXZpY2VzICovXG4jaW50cm8tZXhhbXBsZS1jYXJkIHtcbiAgaGVpZ2h0OiA0MDBweDtcbn1cblxuLyogSGVpZ2h0IGZvciBkZXZpY2VzIGxhcmdlciB0aGFuIDk5MnB4ICovXG5AbWVkaWEgKG1pbi13aWR0aDogMjgwcHgpIHtcbiAgI2ludHJvLWV4YW1wbGUtY2FyZCB7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgfVxufVxuLmxheW91dCB7XG4gIGhlaWdodDogNDAwcHg7XG4gIG1pbi13aWR0aDogMjgwcHg7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4ucm90YXRlLXNtYWxsIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTFkZWcpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4ubWVudGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyAvKiBCb2xkIHRleHQgKi9cbiAgZm9udC1zdHlsZTogaXRhbGljOyAvKiBJdGFsaWMgdGV4dCAqL1xufVxuXG4ubm8tYm9yZGVycyB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuLm5vLWJvcmRlcnMgdGQge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbiNsb2FkZXJyIHtcbiAgYm9yZGVyOiAxNnB4IHNvbGlkICNmM2YzZjM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyLXRvcDogMTZweCBzb2xpZCAjMzQ5OGRiO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIENoYW5nZSB0aGlzIGxpbmUgKi9cbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi5zd2l0Y2gtZGl2IHtcbiAgd2lkdGg6IDUwJTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuc3dpdGNoLWRpdjpmaXJzdC1jaGlsZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuc3dpdGNoLWRpdiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5zd2l0Y2gtZGl2MiB7XG4gIHdpZHRoOiA3MCU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnN3aXRjaC1kaXYyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLnN3aXRjaC1kaXYzIHtcbiAgd2lkdGg6IDIwJTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuc3dpdGNoLWRpdjMge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4jaW50cm8tZXhhbXBsZTIge1xuICBoZWlnaHQ6IDgwMHB4O1xufVxuXG4jc2lkZWJhciB7XG4gIHdpZHRoOiA1MHB4O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjVzO1xufVxuXG4jc2lkZWJhcjpob3ZlciB7XG4gIHdpZHRoOiAyMDBweDtcbn1cblxuLyogSU5GT0JPWCAqL1xuLmluZm9ib3gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZGY5O1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZjdmN2Y3O1xuICBwYWRkaW5nOiAxNHB4O1xufVxuXG4vKiBJTkZPQk9YICovXG4jbGVhZGJvYXJkIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZjdmN2Y3O1xuICBwYWRkaW5nOiAxNHB4O1xufVxuXG4jYWxlcnRib3gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUxLCA5NCwgMjM0LCAwLjE1Mjk0MTE3NjUpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5zY3JvbGxpbmctd3JhcHBlci1mbGV4Ym94IHtcbiAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBjdXJzb3I6IGdyYWI7XG59XG5cbi5zY3JvbGxpbmctd3JhcHBlci1mbGV4Ym94OmFjdGl2ZSB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi5jYXJkIHtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbmRpdi5zY3JvbGxtZW51IHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbmRpdi5zY3JvbGxtZW51IGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMTRweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgI2Zsb2F0aW5nLW1lbnUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMiU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZkZjk7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMHB4IDBweDtcbiAgICB6LWluZGV4OiAxMDAwMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gICNmbG9hdGluZy1tZW51IHAge1xuICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgI2Zsb2F0aW5nLW1lbnUgYSB7XG4gICAgY29sb3I6ICM0ZTRlNGU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjAxcHgpIHtcbiAgI2Zsb2F0aW5nLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5zY3JvbGxpbmctd3JhcHBlci1mbGV4Ym94IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG4uc2Nyb2xsaW5nLXdyYXBwZXItZmxleGJveCAuY2FyZCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4ubWFwY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDU2LjI1JTsgLyogMTY6OSBBc3BlY3QgUmF0aW8gKGRpdmlkZSA5IGJ5IDE2ID0gMC41NjI1KSAqL1xufVxuXG4vKiBUaGVuIHN0eWxlIHRoZSBpZnJhbWUgdG8gZml0IGluIHRoZSBjb250YWluZXIgZGl2IHdpdGggZnVsbCBoZWlnaHQgYW5kIHdpZHRoICovXG4ucmVzcG9uc2l2ZS1pZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmZvb3RlciB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tYXAge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuXG4vKiBDU1MgKi9cbi5idXR0b24tNCB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUZCRkM7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjcsIDMxLCAzNSwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm94LXNoYWRvdzogcmdiYSgyNywgMzEsIDM1LCAwLjA0KSAwIDFweCAwLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIDAgMXB4IDAgaW5zZXQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiAjMjQyOTJFO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIHN5c3RlbS11aSwgXCJTZWdvZSBVSVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogNnB4IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGN1YmljLWJlemllcigwLjMsIDAsIDAuNSwgMSk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4uYnV0dG9uLTQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjNGNEY2O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMXM7XG59XG5cbi5idXR0b24tNDpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUZCRkM7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNywgMzEsIDM1LCAwLjE1KTtcbiAgY29sb3I6ICM5NTlEQTU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmJ1dHRvbi00OmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFREVGRjI7XG4gIGJveC1zaGFkb3c6IHJnYmEoMjI1LCAyMjgsIDIzMiwgMC4yKSAwIDFweCAwIGluc2V0O1xuICB0cmFuc2l0aW9uOiBub25lIDBzO1xufVxuXG4uYnV0dG9uLTQ6Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggdHJhbnNwYXJlbnQ7XG59XG5cbi5idXR0b24tNDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYnV0dG9uLTQ6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tZHVpLWlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICBjb2xvcjogIzIxMjEyMTtcbiAgY3Vyc29yOiB0ZXh0O1xuICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcywgYm94LXNoYWRvdyAwLjNzO1xufVxuLm1kdWktaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM2MjAwZWE7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDk4LCAwLCAyMzQsIDAuMik7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ubWR1aS1pbnB1dDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2JiODZmYztcbn1cblxuLm1kdWktc2VsZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWluLXdpZHRoOiAxMHB4O1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICBjb2xvcjogIzMzMztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LWdyb3c6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ubWR1aS1zZWxlY3Q6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICM4ODg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4ubWR1aS1zZWxlY3Q6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6ICMwMDdCRkY7XG59XG5cbi5tZHVpLXNlbGVjdDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMTJweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogNnB4IHNvbGlkICM2NjY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5pbnB1dC1ncm91cC1hcHBlbmQgLm1kdWktYnRuIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNTBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogNTBweDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uaW5wdXQtZ3JvdXAtYXBwZW5kIC5tZHVpLWJ0bjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzg4ODtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5pbnB1dC1ncm91cC1hcHBlbmQgLm1kdWktYnRuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3QkZGO1xufVxuXG4ubWR1aS1zZWxlY3Qub3Blbjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7XG59XG5cbi5tZHVpLXNlbGVjdC5vcGVuIC5tZHVpLXNlbGVjdC1vcHRpb25zIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tZHVpLXNlbGVjdC1vcHRpb25zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB6LWluZGV4OiA5OTk7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tZHVpLXNlbGVjdC1vcHRpb24ge1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzMzMztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWR1aS1zZWxlY3Qtb3B0aW9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbn1cblxuLm1kdWktc2VsZWN0LW9wdGlvbi5zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG5cbi5sZWFkYmFkZ2UxMCB7XG4gIHBhZGRpbmc6IDNweDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogIzMzNWVlYTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzMzNWVlYTtcbn1cblxuLmxlYWRiYWRnZTEge1xuICBwYWRkaW5nOiAzcHg7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjQ3NDI0O1xufVxuXG4ud2VhdGhlciB7XG4gIGhlaWdodDogNDBweDtcbiAgbWF4LXdpZHRoOiAxMDBweDtcbiAgcGFkZGluZzogM3B4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZjdmN2Y3O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDhweCAwO1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uOnN0YXJ0OmRlY3JlbWVudCxcbjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uOmVuZDppbmNyZW1lbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNjcm9sbGJhci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE1vYmlsZSBCb3R0b20gTmF2aWdhdGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubW9iaWxlLWJvdHRvbS1uYXYge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogNjRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIsICNmY2ZjZmMpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RkZGRkZCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB6LWluZGV4OiAxMDUwO1xuICBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDApO1xuICBib3gtc2hhZG93OiAwIC0ycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4ubW9iaWxlLW5hdi1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNGU0ZTRlKTtcbiAgb3BhY2l0eTogMC43O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1pbi13aWR0aDogNjBweDtcbn1cbi5tb2JpbGUtbmF2LWl0ZW0gaSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLm1vYmlsZS1uYXYtaXRlbSBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4zcHg7XG59XG4ubW9iaWxlLW5hdi1pdGVtOmhvdmVyLCAubW9iaWxlLW5hdi1pdGVtOmZvY3VzIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICNmNDc0MjQpO1xufVxuLm1vYmlsZS1uYXYtaXRlbS5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgI2Y0NzQyNCk7XG59XG4ubW9iaWxlLW5hdi1pdGVtLmFjdGl2ZSBpIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuXG4ubW9iaWxlLW5hdi1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNHB4O1xuICByaWdodDogLTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgI2Y0NzQyNCk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDAuNnJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcGFkZGluZzogMnB4IDVweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgbWluLXdpZHRoOiAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIE1vYmlsZSBNZW51IE9mZmNhbnZhcyAqL1xuLm1vYmlsZS1tZW51LW9mZmNhbnZhcyB7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiA3MHZoO1xuICBib3JkZXItcmFkaXVzOiAxNnB4IDE2cHggMCAwO1xufVxuLm1vYmlsZS1tZW51LW9mZmNhbnZhcyAub2ZmY2FudmFzLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGRkZGRkKTtcbiAgcGFkZGluZzogMXJlbSAxLjVyZW07XG59XG4ubW9iaWxlLW1lbnUtb2ZmY2FudmFzIC5vZmZjYW52YXMtYm9keSB7XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbi5tb2JpbGUtbWVudS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuXG4ubW9iaWxlLW1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzRlNGU0ZSk7XG4gIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2ZmZmRmOSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZGRkZGQpO1xufVxuLm1vYmlsZS1tZW51LWl0ZW0gLm1vYmlsZS1tZW51LWljb24ge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIsICNmZWY3ZTYpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG4ubW9iaWxlLW1lbnUtaXRlbSAubW9iaWxlLW1lbnUtaWNvbiBpIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgI2Y0NzQyNCk7XG59XG4ubW9iaWxlLW1lbnUtaXRlbSBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbi5tb2JpbGUtbWVudS1pdGVtOmhvdmVyLCAubW9iaWxlLW1lbnUtaXRlbTphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZlZjdlNik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91ciwgI2Y0NzQyNCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLyogQWRkIGJvdHRvbSBwYWRkaW5nIHRvIGNvbnRlbnQgd2hlbiBtb2JpbGUgbmF2IGlzIHByZXNlbnQgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAubGF5b3V0Y29udGVudCB7XG4gICAgcGFkZGluZy1ib3R0b206IDgwcHg7XG4gIH1cbn1cbi5uZXdiYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDc0MjQ7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgcGFkZGluZzogNXB4O1xuICBtYXJnaW46IDVweDtcbiAgYm9yZGVyLXdpZHRoOiAwLjFyZW07XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuI0JJR0hFUk8ge1xuICBwYWRkaW5nLXRvcDogMjVweDtcbiAgcGFkZGluZy1ib3R0b206IDU1cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiKDI0NCwgMTE2LCAzNikgMTclLCByZ2IoMjM3LCAxNzAsIDgpIDU5JSwgcmdiKDIwNCwgMTM2LCA0MCkgODQlKTtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDUwJSAwJS81MHB4O1xufVxuXG4udmljZWRpdiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0M2RlZywgIzQxNThEMCAwJSwgI0M4NTBDMCA0NiUsICNGRkNDNzAgMTAwJSk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCUgMCAwJSAwJS81MHB4O1xufVxuXG4ud2hpdGVidXR0b24ge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLndoaXRlYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQwMDY4Yjtcbn1cblxuLnN0aWNreS1kaXYge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIGhlaWdodDogMjAwcHg7XG4gIHdpZHRoOiAzMDBweDtcbiAgcGFkZGluZy10b3A6IDc1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbiNmbG9hdGluZy1wYW5lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDBweDtcbiAgbGVmdDogMTVweDtcbiAgei1pbmRleDogNTtcbiAgcGFkZGluZzogNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcInNhbnMtc2VyaWZcIjtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnBlcnNwZWN0aXZlIHtcbiAgcGVyc3BlY3RpdmU6IDUwMHB4O1xufVxuXG4uY2FyZHRpbHQge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXMgZWFzZTtcbn1cbi5jYXJkdGlsdDpob3ZlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgtMmRlZyk7XG59XG5cbi50aW55LWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDIwMHB4OyAvKiBBZGp1c3Qgd2lkdGggYXMgbmVlZGVkICovXG4gIGhlaWdodDogNTBweDsgLyogQWRqdXN0IGhlaWdodCBhcyBuZWVkZWQgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjQ7IC8qIE1ha2UgdGhlIGJ1dHRvbiBhbG1vc3QgaW52aXNpYmxlICovXG59XG5cbi5saWdodGJvcmRlciB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG59XG5cbi50aW55LWJ1dHRvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuOTsgLyogTWFrZSB0aGUgYnV0dG9uIG1vcmUgdmlzaWJsZSB3aGVuIGhvdmVyZWQgKi9cbn1cblxuLmJ1dHRvbi04MSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYTIwMmM7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC44cmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZCBMaWdodFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAwLjZyZW0gMS4ycmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuLmJ1dHRvbi04MTpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhMGFlYzA7XG4gIGNvbG9yOiAjNzE4MDk2O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uYnV0dG9uLTgxOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgY29sb3I6ICNmZmY7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wMSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYnV0dG9uLTgxIHtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBwYWRkaW5nOiAwLjZyZW0gMS4ycmVtO1xuICB9XG59XG4ucmV2ZWFsIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVkoMjAlKTtcbn1cblxuLnJldmVhbC1hbmltYXRpb24ge1xuICBhbmltYXRpb246IHNsaWRlWm9vbUluIDEuMnMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVab29tSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVkoMjAlKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4ucmV2ZWFsLXNpZGUge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHB4KTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ucmV2ZWFsLXNpZGUtYW5pbWF0aW9uIHtcbiAgYW5pbWF0aW9uOiBzbGlkZUluRnJvbUxlZnQgMC44cyBlYXNlIGZvcndhcmRzO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5Gcm9tTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG4ucmV2ZWFsLWNlbnRlciB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG5cbi5yZXZlYWwtY2VudGVyLWFuaW1hdGlvbiB7XG4gIGFuaW1hdGlvbjogcHVsc2F0ZUluIDAuNnMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2F0ZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBnbGl0Y2gge1xuICAwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTEwcHgpO1xuICB9XG4gIDEwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0zKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMHB4LCAxMHB4KTtcbiAgfVxuICAyMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwcHgsIDEwcHgpO1xuICB9XG4gIDMwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0zKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDVweCk7XG4gIH1cbiAgNDAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDBweCk7XG4gIH1cbiAgNTAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTMpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgMHB4KTtcbiAgfVxuICA2MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtNCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAxMHB4KTtcbiAgfVxuICA3MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwcHgsIDEwcHgpO1xuICB9XG4gIDgwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS01KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMTBweCk7XG4gIH1cbiAgOTAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMHB4LCAwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYnV0dG9uLTQ5LFxuICAuYnV0dG9uLTQ5OmFmdGVyIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIH1cbn1cbi50b29sdGlwLWlubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDQ1MHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uY29sbGVjdGlvbi1jaGVjay1ib3ggaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29sbGVjdGlvbi1jaGVjay1ib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NzQyNDtcbn1cblxuLmNvbGxlY3Rpb24tY2hlY2stYm94IGxhYmVsIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc1NzU3NTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBtYXJnaW46IDVweDtcbiAgY29sb3I6ICNmN2Y3Zjc7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xufVxuXG4ucmVzcG9uc2l2ZS1pZnJhbWUxIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLXRvcDogNTYuMjUlOyAvKiAxNjo5IEFzcGVjdCBSYXRpbyAqL1xufVxuXG4ucmVzcG9uc2l2ZS1pZnJhbWUxIGlmcmFtZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZmVhdHVyZS1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4uZmVhdHVyZS1saXN0IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgLyogYWRqdXN0IGFzIG5lZWRlZCAqL1xufVxuXG4uc2lkZWJhciB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGZhZmM7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC41cztcbiAgZGlzcGxheTogZmxleDsgLyogQWRkZWQgdGhpcyBsaW5lICovXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIEFkZGVkIHRoaXMgbGluZSAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogQWRkZWQgdGhpcyBsaW5lICovXG59XG5cbi5zaWRlYmFyOmhvdmVyIHtcbiAgd2lkdGg6IDIwMHB4O1xufVxuXG4uc2lkZWJhciBhIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDUwcHg7XG4gIGNvbG9yOiAjNGU0ZTRlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMC41cztcbn1cblxuLnNpZGViYXIgYSAuaWNvbiB7XG4gIG1hcmdpbjogMCAxMHB4O1xufVxuXG4uc2lkZWJhcjpob3ZlciBhIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4uc2lkZWJhciBhIC50ZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbn1cblxuLnNpZGViYXI6aG92ZXIgYSAudGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWVudS10b2dnbGUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogNzVweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgLyogTWFrZXMgdGhlIGJ1dHRvbiBjaXJjdWxhciAqL1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7IC8qIEFkanVzdCBhcyBuZWVkZWQgKi9cbn1cblxuLm1lbnUtdG9nZ2xlIC5iaSB7XG4gIGZvbnQtc2l6ZTogMWVtOyAvKiBNYWtlcyB0aGUgaWNvbiBsYXJnZXIgKi9cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5tZW51IHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMTI1cHg7XG4gICAgaGVpZ2h0OiA1MDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAubWVudSB7XG4gICAgcG9zaXRpb246IGZpeGVkOyAvKiBBZGRlZCB0aGlzICovXG4gICAgdG9wOiA2MHB4O1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgd2lkdGg6IDEwMCU7IC8qIEFkZGVkIHRoaXMgKi9cbiAgICBoZWlnaHQ6IDEwMCU7IC8qIEFkZGVkIHRoaXMgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogMTAwMDsgLyogQWRkZWQgdGhpcyAqL1xuICB9XG4gIC5tZW51LXRvZ2dsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHotaW5kZXg6IDEwMDA7IC8qIEFkZGVkIHRoaXMgKi9cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7IC8qIE1ha2VzIHRoZSBidXR0b24gY2lyY3VsYXIgKi9cbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7IC8qIEFkanVzdCBhcyBuZWVkZWQgKi9cbiAgfVxufVxuLmJ1dHRvbi0xNCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6ICNmZmY7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjE3MmE7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7XG59XG5cbi5idXR0b24tMTQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5idXR0b24tMTUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWluLXdpZHRoOiA0MDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRlNGU0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpOyAvKiBBZGQgYSBsaWdodCBib3ggc2hhZG93ICovXG59XG5cbi5jdXJyZW50LXN0YWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NzQyNDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uY3VycmVudC1zdGFnZSBhIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uY3VycmVudC1zdGFnZSBhOmhvdmVyIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYmlnLWJlYXV0aWZ1bC1jaGVja2JveCB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNlMGUwZTA7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLmJpZy1iZWF1dGlmdWwtY2hlY2tib3g6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xKTtcbn1cbi5iaWctYmVhdXRpZnVsLWNoZWNrYm94OmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ3NDI0O1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG59XG4uYmlnLWJlYXV0aWZ1bC1jaGVja2JveDpjaGVja2VkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNnB4O1xuICB0b3A6IDJweDtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBib3JkZXI6IHNvbGlkIHdoaXRlO1xuICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIGFuaW1hdGlvbjogY2hlY2ttYXJrIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG4uYmlnLWJlYXV0aWZ1bC1jaGVja2JveDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4yKTtcbn1cbi5iaWctYmVhdXRpZnVsLWNoZWNrYm94OmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5Aa2V5ZnJhbWVzIGNoZWNrbWFyayB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBnZW50bGVQdWxzZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDAgcmdiYSgxMzcsIDE4MCwgMjUwLCAwKSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDgpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDZweCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuNDUpKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDAgcmdiYSgxMzcsIDE4MCwgMjUwLCAwKSk7XG4gIH1cbn1cbi5ybWVudS10b2dnbGUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogNzVweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgLyogTWFrZXMgdGhlIGJ1dHRvbiBjaXJjdWxhciAqL1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7IC8qIEFkanVzdCBhcyBuZWVkZWQgKi9cbn1cblxuLnJtZW51LXRvZ2dsZSAuYmkge1xuICBmb250LXNpemU6IDFlbTsgLyogTWFrZXMgdGhlIGljb24gbGFyZ2VyICovXG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAucm1lbnUge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAxMjVweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLnJtZW51IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7IC8qIEFkZGVkIHRoaXMgKi9cbiAgICB3aWR0aDogMTAwJTsgLyogQWRkZWQgdGhpcyAqL1xuICAgIGhlaWdodDogYXV0bzsgLyogQWRkZWQgdGhpcyAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB6LWluZGV4OiAxMDAwOyAvKiBBZGRlZCB0aGlzICovXG4gIH1cbiAgLnJtZW51LXRvZ2dsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHotaW5kZXg6IDEwMDA7IC8qIEFkZGVkIHRoaXMgKi9cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7IC8qIE1ha2VzIHRoZSBidXR0b24gY2lyY3VsYXIgKi9cbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7IC8qIEFkanVzdCBhcyBuZWVkZWQgKi9cbiAgfVxufVxuLmJpZy1wb3BweS1pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3MsIGJveC1zaGFkb3cgMC4zcztcbn1cblxuLmJpZy1wb3BweS1pbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzRlNGU0ZTtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLmJpZy1wb3BweS1pbnB1dC0yIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICNlMGUwZTA7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLnByb2dyZXNzLWJhci0yIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzNWVlYTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7XG59XG5cbi5kYW5nZXJ6b25lIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNzVkZWcsICNGRjlBOEIgMCUsICNGRjZBODggNTUlLCAjRkY5OUFDIDEwMCUpO1xufVxuXG4uanVzdHBlYWNoeSB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWY3ZTY7XG59XG5cbi5nb29nbGUtc3R5bGUtdXBsb2FkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJvcmRlcjogMXB4IGRhc2hlZCAjYzdjN2M3O1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1ncm93OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG59XG5cbi5nb29nbGUtc3R5bGUtdXBsb2FkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjYWFhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlYWVhO1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZCAudXBsb2FkLWljb24ge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGNvbG9yOiAjZmYwMDAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZCAudXBsb2FkLXRleHQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjNTU1O1xufVxuXG4uY292ZXItaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMDBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4ucm91bmRlZC1yaWdodCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XG59XG5cbi5yb3VuZGVkLWxlZnQge1xuICBib3JkZXItcmFkaXVzOiAxMHB4IDBweCAwcHggMTBweDtcbn1cblxuLmZ1bmt5IHtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAyNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQwMDQ0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE1MDAgMTAwMCclM0UlM0NkZWZzJTNFJTNDZyBpZD0nYTc4OSclM0UlM0NjaXJjbGUgZmlsbD0nJTIzNGIwMTQ3JyByPScuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjM1MTAxNDknIGN4PScyMCcgcj0nMScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjM1ODAyNGInIGN4PSc0MCcgcj0nMS41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyMzVmMDM0ZCcgY3g9JzYwJyByPScyJyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyMzY2MDU1MCcgY3g9JzgwJyByPScyLjUnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzNmMwNzUyJyBjeD0nMTAwJyByPSczJyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyMzczMDk1MycgY3g9JzEyMCcgcj0nMy41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyMzdhMGI1NScgY3g9JzE0MCcgcj0nNCcgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjM4MTBlNTcnIGN4PScxNjAnIHI9JzQuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjM4ODExNTgnIGN4PScxODAnIHI9JzUnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzOGUxNDVhJyBjeD0nMjAwJyByPSc1LjUnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzOTUxNzViJyBjeD0nMjIwJyByPSc2JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyMzljMWI1YycgY3g9JzI0MCcgcj0nNycgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNhMzFlNWQnIGN4PScyNjAnIHI9JzcuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNhOTIxNWUnIGN4PScyODAnIHI9JzgnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzYjAyNTVmJyBjeD0nMzAwJyByPSc4LjUnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzYjcyOTVmJyBjeD0nMzIwJyByPSc5JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2JkMmQ2MCcgY3g9JzM0MCcgcj0nOS41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2M0MzE2MCcgY3g9JzM2MCcgcj0nMTAnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzY2EzNTYwJyBjeD0nMzgwJyByPScxMC41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2QwMzk2MScgY3g9JzQwMCcgcj0nMTEnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzZDYzZDYxJyBjeD0nNDIwJyByPScxMS41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2RkNDI2MScgY3g9JzQ0MCcgcj0nMTInIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzZTM0NjYxJyBjeD0nNDYwJyByPScxMi41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2U5NGI2MScgY3g9JzQ4MCcgcj0nMTMnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzZWU1MDYwJyBjeD0nNTAwJyByPScxMy41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2Y0NTU2MCcgY3g9JzUyMCcgcj0nMTQnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzZmE1YTYwJyBjeD0nNTQwJyByPScxNC41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM0ZGNUY1RicgY3g9JzU2MCcgcj0nMTUnIC8lM0UlM0NwYXRoIGZpbGw9JyUyM0ZGNUY1RicgZD0nTTU2MC0xNWg5OTk5djMwSDU2MHonIC8lM0UlM0MvZyUzRSUzQ2cgaWQ9J2InJTNFJTNDdXNlIGhyZWY9JyUyM2EnJTNFJTNDL3VzZSUzRSUzQ3VzZSB5PScyMCcgaHJlZj0nJTIzYSclM0UlM0MvdXNlJTNFJTNDdXNlIHk9JzQwJyBocmVmPSclMjNhJyUzRSUzQy91c2UlM0UlM0N1c2UgeT0nNjAnIGhyZWY9JyUyM2EnJTNFJTNDL3VzZSUzRSUzQ3VzZSB5PSc4MCcgaHJlZj0nJTIzYSclM0UlM0MvdXNlJTNFJTNDL2clM0UlM0NnIGlkPSdjJyUzRSUzQ3VzZSBocmVmPSclMjNiJyUzRSUzQy91c2UlM0UlM0N1c2UgeT0nMTAwJyBocmVmPSclMjNiJyUzRSUzQy91c2UlM0UlM0N1c2UgeT0nMjAwJyBocmVmPSclMjNiJyUzRSUzQy91c2UlM0UlM0N1c2UgeT0nMzAwJyBocmVmPSclMjNiJyUzRSUzQy91c2UlM0UlM0N1c2UgeT0nNDAwJyBocmVmPSclMjNiJyUzRSUzQy91c2UlM0UlM0N1c2UgeT0nNTAwJyBocmVmPSclMjNiJyUzRSUzQy91c2UlM0UlM0MvZyUzRSUzQy9kZWZzJTNFJTNDZyB0cmFuc2Zvcm09J3JvdGF0ZSgyNzAgNzUwIDUwMCknJTNFJTNDZyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSg3NTAgMjUwKSByb3RhdGUoOTApJyUzRSUzQ3VzZSB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgwIDYwMCknIGhyZWY9JyUyM2MnJTNFJTNDL3VzZSUzRSUzQ3VzZSBocmVmPSclMjNjJyUzRSUzQy91c2UlM0UlM0N1c2UgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMCAtNjAwKScgaHJlZj0nJTIzYyclM0UlM0MvdXNlJTNFJTNDdXNlIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDAgLTEyMDApJyBocmVmPSclMjNjJyUzRSUzQy91c2UlM0UlM0MvZyUzRSUzQy9nJTNFJTNDL3N2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuLm5vLXdyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm5hdi1saW5rLFxuLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICMzMzVlZWE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm5hdi1saW5rOjphZnRlcixcbi5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM4OWI0ZmEgMCUsICNmMzhiYTggNTAlLCAjY2JhNmY3IDEwMCUpO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGVhc2UsIGxlZnQgMC4zcyBlYXNlO1xufVxuXG4ubmF2LWxpbms6aG92ZXI6OmFmdGVyLFxuLm5hdi1saW5rOmZvY3VzOjphZnRlcixcbi5kcm9wZG93bi10b2dnbGU6aG92ZXI6OmFmdGVyLFxuLmRyb3Bkb3duLXRvZ2dsZTpmb2N1czo6YWZ0ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbn1cblxuLm1haW5ncmFkIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2IoMjQ0LCAxMTYsIDM2KSAxNyUsIHJnYigyMzcsIDE3MCwgOCkgNTklLCByZ2IoMjA0LCAxMzYsIDQwKSA4NCUpO1xufVxuXG4uZGFya2dyYWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwZjBjMjksICMzMDJiNjMsICMyNDI0M2UpO1xufVxuXG4uZGFya2dyYWQyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDY3LCA2NywgNjcsIDAuMykgMCUsIHJnYmEoMCwgMCwgMCwgMC44KSAxMDAlKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuLmNoYXJ0LWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5jaGFydC1jb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIH1cbn1cblxuLnJvY2tldCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRlc2lnbi9sYXVuY2gtZGF5LnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgcGFkZGluZzogMjVweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cblxuLnJvY2tldDIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiYmZmO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEwMCUyNScgaGVpZ2h0PScxMDAlMjUnIHZpZXdCb3g9JzAgMCAxNjAwIDkwMCclM0UlM0NkZWZzJTNFJTNDbGluZWFyR3JhZGllbnQgaWQ9J2EnIGdyYWRpZW50VW5pdHM9J29iamVjdEJvdW5kaW5nQm94JyB4MT0nMCcgeTE9JzAnIHgyPScxMDAlMjUnIHkyPScwJyUzRSUzQ3N0b3Agb2Zmc2V0PScwLjE2JyBzdG9wLWNvbG9yPSclMjNjY2NjY2MnLyUzRSUzQ3N0b3Agb2Zmc2V0PScwLjUnIHN0b3AtY29sb3I9JyUyM0ZGRicvJTNFJTNDc3RvcCBvZmZzZXQ9JzEnIHN0b3AtY29sb3I9JyUyM2NjY2NjYycvJTNFJTNDL2xpbmVhckdyYWRpZW50JTNFJTNDbGluZWFyR3JhZGllbnQgaWQ9J2InIGdyYWRpZW50VW5pdHM9J29iamVjdEJvdW5kaW5nQm94JyB4MT0nMTAwJTI1JyB5MT0nMCcgeDI9JzAnIHkyPScwJyUzRSUzQ3N0b3Agb2Zmc2V0PScwJyBzdG9wLWNvbG9yPSclMjNlZWVlZWUnLyUzRSUzQ3N0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPSclMjNkZGRkZGQnLyUzRSUzQy9saW5lYXJHcmFkaWVudCUzRSUzQ2xpbmVhckdyYWRpZW50IGlkPSdjJyBncmFkaWVudFVuaXRzPSd1c2VyU3BhY2VPblVzZScgeDE9JzAnIHkxPSc0NjUnIHgyPScwJyB5Mj0nMzE2JyUzRSUzQ3N0b3Agb2Zmc2V0PScwJyBzdG9wLWNvbG9yPSclMjNGRkYnLyUzRSUzQ3N0b3Agb2Zmc2V0PScwLjUnIHN0b3AtY29sb3I9JyUyMzAwYmJmZicvJTNFJTNDL2xpbmVhckdyYWRpZW50JTNFJTNDL2RlZnMlM0UlM0NnIHN0cm9rZT0nJTIzYWJkY2ZmJyBzdHJva2Utd2lkdGg9JzIwJyUzRSUzQ3BhdGggZmlsbD0nJTIzYWJkY2ZmJyBkPSdNMTIyOCA5MDBsLTEwMCAwbDMwLTQwMGw0MCAweicvJTNFJTNDL2clM0UlM0NnIHN0cm9rZT0nJTIzYWJkY2ZmJyBzdHJva2Utd2lkdGg9JzEwJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnJTNFJTNDcGF0aCBmaWxsPSclMjNGRkYnIGQ9J00xNTMxIDYzNWMtNDcuMSAwLTg5LjEgMjEuNy0xMTYuNiA1NS43QzEzODUgNjczIDEzNjIgNjcxIDEzMzEgNjk4LjRjLTM2LTIyLjQtODgtMjEuNC0xMjEuOSAxNy4xYy0yMy4xLTEzLjUtNDEuMS0xNS41LTY1LjYgNC42Yy0yMy41LTE1LjEtNjkuNS0xNi4xLTk1LjggMTcuOEMxMDI4IDcyNiA5OTcgNzMzIDk4Ny4zIDc2MC44Yy04LjMtMy44LTE3LjMtMS44LTIyLjIgNWMtMzMtMjkuOC02MS0zMC44LTkyLjUgMC40Yy03LjUtNi4yLTE3LjUtOS4yLTI2LjktMy45Yy05LjUtMjMuMy0zOC41LTM4LjMtNjctMjEuOWMtNi41LTguNC0yMi41LTEzLjQtMzkuMi0yLjVDNzA5IDY5OCA2NzUgNzAyIDY1Mi45IDcxNS41QzYxMiA2NjggNTUwIDY3MyA1MDQuNSA3MjAuNkM0NjcgNjkyIDQyNSA3MDMgNDA3LjcgNzM3LjlDMzk4IDcyOCAzNzUgNzIxIDM1NiA3NDkuM2MtMTEtMTkuMy0yOS0yMS4zLTQ3LjUtMTIuN0MyODQgNjg4IDI0MyA2NzIgMTg3LjYgNjkwLjdDMTYwLjEgNjU2LjcgMTE4LjEgNjM1IDcxIDYzNWMtODIuOCAwLTE1MCA2Ny4yLTE1MCAxNTB2Mjg0aDE3NjBWNzg1QzE2ODEgNzAyLjIgMTYxMy44IDYzNSAxNTMxIDYzNXonLyUzRSUzQy9nJTNFJTNDcGF0aCBmaWxsPSclMjNGRkYnIGQ9J00xMjI4IDkwMGwtMTAwIDBsMzAtNDAwbDQwIDB6Jy8lM0UlM0NwYXRoIGZpbGw9JyUyM0QzMycgZD0nTTExMjAuNiA1MjRjLTEuMi01LjItNy40LTcuNC0xMS43LTQuM2MtNS43IDQuMi0xMi4zIDkuMi0xMy40IDEwLjJjLTE0LjggMTQuNS0yNSAzNC41LTI5LjcgNTQuNmMtMS40IDYtNi43IDIzLjktMS44IDI4LjljNS45IDUuOSAxOC42LTMuNyAyMy40LTdjOS4zLTYuMiAxOC43LTEzLjYgMzAuNy0xMi44YzE3LjYgMS4xIDcuOC00Ny40IDIuNS02OS42eicvJTNFJTNDcGF0aCBmaWxsPSd1cmwoJTIzYSknIGQ9J00xMjQ1LjggNDYwLjJjLTAuMS03NC43LTM1LjMtMTYwLjUtNzAuOS0xNjAuNWMtMzUuNiAwLTcwLjcgODUuNy03MC45IDE2MC4zYzAgMC40IDAgMC43IDAuMSAxLjFsMTUuMiAxMzIuMWgxMTUuNWMzLTM2IDExLTEzMi45IDExLTEzM3onLyUzRSUzQ3BhdGggZmlsbD0nJTIzRDMzJyBkPSdNMTIzNS41IDUyNGMxLjItNS4yIDcuNC03LjQgMTEuNi00LjNjNS43IDQuMiAxMi4zIDkuMiAxMy40IDEwLjJjMTQuNyAxNC41IDI0LjkgMzQuNSAyOS42IDU0LjZjMS40IDYgNi43IDIzLjkgMS44IDI4LjljLTUuOSA1LjktMTguNS0zLjctMjMuNC03Yy05LjMtNi4yLTE4LjYtMTMuNi0zMC43LTEyLjhjLTE3LjQgMS4xLTcuNy00Ny40LTIuMy02OS42eicvJTNFJTNDcGF0aCBmaWxsPSclMjNEMzMnIGQ9J00xMTE5LjMgNTkzLjJsMS42IDEzLjZjMC41IDQuNyA0LjUgOC4yIDkuMSA4LjJoOTQuNWM0LjkgMCA4LjktMy44IDkuMi04LjZjMCAwIDAuNC01IDEuMS0xMy4yaC0xMTUuNXogJy8lM0UlM0NwYXRoIGZpbGw9J3VybCglMjNiKScgZD0nTTEyNDUuOCA0NjAuMmMtMC4xLTc0LjctMzUuMy0xNjAuNS03MC45LTE2MC41Yy02IDAgMzIuMyA2OC40IDI5LjEgMTYwLjVjLTAuNCAxMy04IDk5LjUtMTEgMTMzaDQxLjdjMy4xLTM2IDExLjEtMTMyLjkgMTEuMS0xMzN6Jy8lM0UlM0NwYXRoIGZpbGw9JyUyM2M1MTUyMycgZD0nTTExOTMuMSA1OTMuMmMtMC43IDguMi0xLjIgMTMuMi0xLjIgMTMuMmMtMC4zIDQuOS00LjMgOC42LTkuMiA4LjZoNDEuOGM0LjkgMCA4LjktMy44IDkuMi04LjZjMCAwIDAuNC01IDEuMS0xMy4yaC00MS43eicvJTNFJTNDcGF0aCBmaWxsPSclMjNGRkYnIGQ9J00xMTc1IDM3Mi45Yy0yMC43IDAtMzcuNSAxNi44LTM3LjUgMzcuNXMxNi44IDM3LjUgMzcuNSAzNy41YzIwLjcgMCAzNy41LTE2LjggMzcuNS0zNy41cy0xNi44LTM3LjUtMzcuNS0zNy41eicvJTNFJTNDcGF0aCBmaWxsPSd1cmwoJTIzYyknIGQ9J00xMTc1IDM3OC4yYy0xNy44IDAtMzIuMyAxNC41LTMyLjMgMzIuM3MxNC40IDMyLjMgMzIuMyAzMi4zYzE3LjggMCAzMi4zLTE0LjUgMzIuMy0zMi4zcy0xNC41LTMyLjMtMzIuMy0zMi4zeicvJTNFJTNDcGF0aCBmaWxsPSclMjMwMDgyYzInIGQ9J00xMTQ2LjUgNDE0LjNjMC0xNy44IDE0LjQtMzIuMyAzMi4zLTMyLjNjNy45IDAgMTUuMiAyLjkgMjAuOCA3LjZjLTUuOS03LTE0LjgtMTEuNC0yNC42LTExLjRjLTE3LjggMC0zMi4zIDE0LjUtMzIuMyAzMi4zYzAgOS45IDQuNCAxOC43IDExLjQgMjQuN2MtNC43LTUuNy03LjYtMTMtNy42LTIwLjl6Jy8lM0UlM0NwYXRoIGZpbGw9JyUyM0QzMycgZD0nTTExNzUgMjk5Yy0xNS41IDAtMzAuOSAxNi4yLTQzLjMgNDAuN2MxMiAyLjMgMjcgMy42IDQzLjMgMy42YzE2LjMgMCAzMS40LTEuNCA0My4zLTMuNmMtMTIuNS0yNC41LTI3LjktNDAuNy00My4zLTQwLjd6Jy8lM0UlM0NwYXRoIGZpbGw9JyUyM2M1MTUyMycgZD0nTTExNzYuOSAyOTkuMWMtMy40IDE1LjEgNy4yIDI5LjcgMTEuNiA0My45YzExLTAuNSAyMS4yLTEuNyAyOS43LTMuM2MtMTEuOC0yMy40LTI2LjQtMzkuMy00MS4zLTQwLjZ6Jy8lM0UlM0NnIGZpbGw9J25vbmUnIHN0cm9rZS13aWR0aD0nMSclM0UlM0NwYXRoIHN0cm9rZS1vcGFjaXR5PScuMScgc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgZD0nTTExMTYgNTU2LjRjMCAwIDQ3LjggNC4yIDY0LjcgNC4yYzE2LjkgMCA1Ni4zLTQuMiA1Ni4zLTQuMicvJTNFJTNDcGF0aCBzdHJva2Utb3BhY2l0eT0nLjInIHN0cm9rZT0nJTIzRkZGJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIGQ9J00xMTE2IDU1Ny40YzAgMCA0Ny44IDQuMiA2NC43IDQuMmMxNi45IDAgNTYuMy00LjIgNTYuMy00LjInLyUzRSUzQy9nJTNFJTNDcGF0aCBmaWxsPSclMjNGRkYnIGZpbGwtb3BhY2l0eT0nMC4zJyBkPSdNMTIwNCA0MTBjMC0xMy44LTkuNi0yNS4zLTIyLjUtMjguM3Y1Ni41YzEyLjktMi45IDIyLjUtMTQuNCAyMi41LTI4LjJ6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBwYWRkaW5nOiAyNXB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuXG4uZ3JlZW4ge1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODVGRkJEO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM4NUZGQkQgMCUsICNGRkZCN0QgMTAwJSk7XG59XG5cbi52bCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzAwMDtcbiAgaGVpZ2h0OiA1MDBweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC52bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm5pY2VpbmZvIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGdhcDogMC41cmVtO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmYWZjO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbn1cblxuLm5pY2VpbmZvdiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IDAuNXJlbTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZmFmYztcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi50b3BudW1iZXJzIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGdhcDogMXJlbTtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xufVxuXG4ubGFzdHRvcG51bWJlciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IDFyZW07XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxuLnBvd2VyIHtcbiAgaGVpZ2h0OiA2MHB4O1xuICB3aWR0aDogNjBweDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA0OCA0OFwiIGZpbGw9XCIlMjNGNDc0MjRcIj48cGF0aCBkPVwiTTE2LjMgMTAuMWMuNSAwIDEgLjQgMSAxIDAgLjMtLjIuNy0uNi45LTQuMiAyLjYtNi44IDctNi44IDEyIDAgNy43IDYuMyAxNCAxNCAxNGguNmM3LjMtLjMgMTMuMy02LjUgMTMuNC0xMy43LjEtNC45LTIuMy05LjQtNi41LTEyLS4yLS4zLS40LS42LS40LTEgMC0uNy42LTEgMS0xIC4yIDAgLjQuMS42LjIgNC43IDMgNy41IDggNy41IDEzLjUgMCA4LjgtNy4yIDE2LTE2IDE2LS42IDAtMS4yIDAtMS44LS4xQzE0LjYgMzkuMSA4LjUgMzIuNyA4IDI1Yy0uNC02IDIuNi0xMS43IDcuOC0xNC44LjIgMCAuNC0uMS41LS4xbTAtMmMtLjUgMC0xIC4xLTEuNS40LTUuNiAzLjQtOS4yIDkuNi04LjggMTYuNy41IDguNiA3LjMgMTUuOCAxNS45IDE2LjcuNy4xIDEuNC4xIDIuMS4xIDkuOSAwIDE4LTguMSAxOC0xOCAwLTYuNC0zLjMtMTItOC40LTE1LjItLjUtLjMtMS4xLS41LTEuNi0uNS0xLjYgMC0zIDEuMi0zIDMgMCAxIC42IDIgMS40IDIuNiAzLjQgMi4yIDUuNiA2IDUuNSAxMC4zLS4xIDYuMy01LjIgMTEuNS0xMS41IDExLjhoLS41Yy02LjYgMC0xMi01LjQtMTItMTIgMC00LjQgMi4zLTguMiA1LjgtMTAuMy45LS42IDEuNS0xLjUgMS41LTIuNi4xLTEuNy0xLjMtMy0yLjktM3pcIj48L3BhdGg+PHBhdGggZD1cIk0yNCAyNmMtMS4xIDAtMi0uOS0yLTJWOGMwLTEuMS45LTIgMi0yczIgLjkgMiAydjE2YzAgMS4xLS45IDItMiAyelwiIGZpbGw9XCIlMjM2OTY5NjlcIj48L3BhdGg+PC9zdmc+Jyk7XG59XG5cbi5zYWZlIHtcbiAgaGVpZ2h0OiA2MHB4O1xuICB3aWR0aDogNjBweDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA0OCA0OFwiIGZpbGw9XCIlMjNGNDc0MjRcIj48cGF0aCBkPVwiTTI0IDExYzEuOSAyLjQgNS4yIDQuNyAxMC4xIDQuNy45IDAgMS45LS4xIDIuOS0uMi0uMSA0LjktLjcgMTEuNC0xLjggMTMuNi0xLjIgMi4zLTcuMSA2LjgtMTEuMiA5LjUtNC4xLTIuNy0xMC03LjItMTEuMi05LjUtMS4xLTIuMi0xLjYtOC43LTEuOC0xMy42IDEgLjIgMiAuMiAyLjkuMiA0LjkuMSA4LjItMi4zIDEwLjEtNC43bTAtNHMtMi4xIDYuOC0xMC4xIDYuOGMtMS40IDAtMy4xLS4yLTQuOS0uOCAwIDAgMCAxMyAyIDE3czEzIDExIDEzIDExIDExLTcgMTMtMTEgMi0xNyAyLTE3Yy0xLjguNS0zLjUuOC00LjkuOEMyNi4xIDEzLjggMjQgNyAyNCA3elwiPjwvcGF0aD48cGF0aCBkPVwiTTMyLjkgMjIuNWMuMS0uOS4xLTEuOC4xLTIuNS03IDAtOS00LTktNHMtMiA0LTkgNGMwIC4yLjEgNS41IDEgNyAxIDIgOCA3IDggN3M3LTUgOC03Yy41LTEuMS44LTIuOS45LTQuNXptLTguOSA5VjI0aC02LjdjLS4xLS43LS4yLTEuNC0uMi0yLjEgMy40LS40IDUuNi0xLjcgNi45LTIuOHY1aDYuN2MtLjEuOS0uMyAxLjctLjUgMi4xLS40LjctMy4zIDMuMi02LjIgNS4zelwiIGZpbGw9XCIlMjM2OTY5NjlcIj48L3BhdGg+PC9zdmc+Jyk7XG59XG5cbi5yZWxpYWJsZSB7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNDggNDhcIiBmaWxsPVwiJTIzRjQ3NDI0XCI+PHBhdGggZD1cIk0yNCA3LjVsMS4zIDEuM2MuOC44IDEuOCAxLjIgMi44IDEuMkgzMHYxLjljMCAxLjEuNCAyLjEgMS4yIDIuOGwxLjMgMS4zLTEuMyAxLjNjLS44LjgtMS4yIDEuOC0xLjIgMi44VjIyaC0xLjljLTEuMSAwLTIuMS40LTIuOCAxLjJMMjQgMjQuNWwtMS4zLTEuM2MtLjgtLjgtMS44LTEuMi0yLjgtMS4ySDE4di0xLjljMC0xLjEtLjQtMi4xLTEuMi0yLjhMMTUuNSAxNmwxLjMtMS4zYy44LS44IDEuMi0xLjggMS4yLTIuOFYxMGgxLjljMS4xIDAgMi4xLS40IDIuOC0xLjJMMjQgNy41bTAtMmMtLjUgMC0xIC4yLTEuNC42bC0xLjMgMS4zYy0uNC40LS45LjYtMS40LjZIMThjLTEuMSAwLTIgLjktMiAydjEuOWMwIC41LS4yIDEtLjYgMS40bC0xLjMgMS4zYy0uOC44LS44IDIgMCAyLjhsMS4zIDEuM2MuNC40LjYuOS42IDEuNFYyMmMwIDEuMS45IDIgMiAyaDEuOWMuNSAwIDEgLjIgMS40LjZsMS4zIDEuM2MuNC40LjkuNiAxLjQuNnMxLS4yIDEuNC0uNmwxLjMtMS4zYy40LS40LjktLjYgMS40LS42SDMwYzEuMSAwIDItLjkgMi0ydi0xLjljMC0uNS4yLTEgLjYtMS40bDEuMy0xLjNjLjgtLjguOC0yIDAtMi44bC0xLjMtMS4zYy0uNC0uNC0uNi0uOS0uNi0xLjRWMTBjMC0xLjEtLjktMi0yLTJoLTEuOWMtLjUgMC0xLS4yLTEuNC0uNmwtMS4zLTEuM2MtLjQtLjQtLjktLjYtMS40LS42elwiPjwvcGF0aD48cGF0aCBkPVwiTTIxLjMgMjYuNmMtLjQtLjQtLjktLjYtMS40LS42SDE3bC00IDE1IDUtMyA0IDQgMS0xNC0xLjctMS40ek0zMSAyNmgtMi45Yy0uNSAwLTEgLjItMS40LjZMMjUgMjhsMSAxNCA0LTQgNSAzLTQtMTV6XCIgZmlsbD1cIiUyMzY5Njk2OVwiPjwvcGF0aD48L3N2Zz4nKTtcbn1cblxuLmNoYWxsZW5nZSB7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNDggNDhcIiBmaWxsPVwiJTIzRjQ3NDI0XCI+PHBhdGggZD1cIk0yOCAxMlY2bDcgM3pcIiBmaWxsPVwiJTIzNEU0RTRFXCI+PC9wYXRoPjxwYXRoIGQ9XCJNNDIgMzkuNEwyOCAxOC41VjZjMC0uNi0uNC0xLTEtMXMtMSAuNC0xIDF2MTIuNWwtNi41IDkuOC0yLjctNGMtLjItLjMtLjUtLjQtLjgtLjRzLS42LjEtLjguNEw1IDM5LjRjLS40LjcgMCAxLjYuOCAxLjZoMzUuM2MuOCAwIDEuMy0uOS45LTEuNnptLTExLjgtMTRMMjkgMjYuNmwtMi0yLTIgMi0xLjItMS4yIDMuMi00LjggMy4yIDQuOHpNMTIuMyAzOUg3LjdMMTYgMjYuNmwyLjMgMy40LTYgOXptMi40IDBsNy45LTExLjkgMi4zIDIuMyAyLTIgMiAyIDIuMy0yLjNMMzkuMyAzOUgxNC43elwiPjwvcGF0aD48L3N2Zz4nKTtcbn1cblxuLnN1biB7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNDggNDhcIiBmaWxsPVwiJTIzRjQ3NDI0XCI+PHBhdGggZD1cIk0xNC40IDEyLjVjMS4zLTEuMSAyLjktMiA0LjYtMi42bC00LjQtMi40LS4yIDV6TTIxLjMgOS4zYy45LS4yIDEuOC0uMyAyLjctLjNzMS44LjEgMi43LjNMMjQgNWwtMi43IDQuM3pNMjkuMSA5LjljMS43LjYgMy4zIDEuNiA0LjcgMi44bC0uMy01LjItNC40IDIuNHpNNDMgMjRsLTQuMy0yLjdjLjIuOS4zIDEuOC4zIDIuNyAwIC45LS4xIDEuOC0uMyAyLjcgMS43LTEgNC4zLTIuNyA0LjMtMi43ek00MC41IDE0LjVsLTUtLjFjMS4xIDEuMyAyIDIuOSAyLjYgNC42bDIuNC00LjV6TTEyLjUgMTQuNGwtNSAuMSAyLjQgNC40Yy42LTEuNyAxLjUtMy4yIDIuNi00LjV6TTcuNSAzMy41bDUgLjFjLTEuMS0xLjMtMi0yLjktMi42LTQuNmwtMi40IDQuNXpNOSAyNGMwLS45LjEtMS44LjMtMi43TDUgMjRsNC4zIDIuN2MtLjItLjktLjMtMS44LS4zLTIuN3pNMzUuMyAzMy44bDUtLjEtMi4zLTQuNWMtLjYgMS43LTEuNSAzLjMtMi43IDQuNnpNMzMuNSA0MC41bC4xLTVjLTEuMyAxLjEtMi45IDItNC42IDIuNmw0LjUgMi40ek0yMS4zIDM4LjdMMjQgNDNsMi43LTQuM2MtLjkuMi0xLjguMy0yLjcuM3MtMS44LS4xLTIuNy0uM3pNMTQuNSA0MC41bDQuNC0yLjRjLTEuNy0uNi0zLjMtMS42LTQuNy0yLjhsLjMgNS4yelwiIGZpbGw9XCIlMjM0RTRFNEVcIj48L3BhdGg+PHBhdGggZD1cIk0yNCAxM2M2LjEgMCAxMSA0LjkgMTEgMTFzLTQuOSAxMS0xMSAxMS0xMS00LjktMTEtMTEgNC45LTExIDExLTExbTAtMmMtNy4yIDAtMTMgNS44LTEzIDEzczUuOCAxMyAxMyAxMyAxMy01LjggMTMtMTMtNS44LTEzLTEzLTEzelwiPjwvcGF0aD48L3N2Zz4nKTtcbn1cblxuLnNlYXJjaC1iaWcge1xuICB3aWR0aDogNTAlO1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgZWFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgY29sb3I6ICM2NjY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnNlYXJjaC1iaWcge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnNlYXJjaC1iaWc6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM3NTc1NzU7XG59XG5cbi5zZWFyY2gtYmlnOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbn1cblxuLmZvcm0tY2hlY2staW5wdXQtY2hlY2tib3gge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZm9ybS1jaGVjay1pbnB1dCB7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTJweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5idXR0b24tbWR1aSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMyMTIxMjE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNlMmUyO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMC4zNzVyZW0gMC43NXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuMTVzIGVhc2UtaW4tb3V0O1xufVxuXG4uYnV0dG9uLW1kdWk6aG92ZXIge1xuICBjb2xvcjogIzIxMjEyMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGOEM4Qztcbn1cblxuLmJ1dHRvbi1tZHVpOmFjdGl2ZSB7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY2QjZCO1xufVxuXG4uYm94c2hhZG93Ym94ZXIge1xuICBib3gtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMDcpIDBweCAycHggMTVweCAtM3B4LCByZ2JhKDAsIDAsIDAsIDAuMDQpIDBweCAxMHB4IDIwcHggLTJweDtcbn1cblxuLmludm9pY2UtaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmJsYW5rYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XG59XG5cbi5ibGFua2J1dHRvbjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1pbnRlcmFjdGlvbik7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAuaGlkZS11bmxlc3MtbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uem9vbTpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7XG59XG5cbi5zY3JvbGxhYmxlLW1vZGFsLWJvZHkge1xuICBtYXgtaGVpZ2h0OiA2MDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmltYWdlLWNvbnRhaW5lcjpob3ZlciAuaW1nLWZsdWlkIHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uaW1hZ2UtY29udGFpbmVyOmhvdmVyIC5lZGl0LWljb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmVkaXQtaWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC1zaXplOiAycmVtO1xufVxuXG4uc2VsZWN0ZWQtcXVvdGUge1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkICM3NDc0NzQgIWltcG9ydGFudDsgLyogQ2hhbmdlIHRoaXMgdG8gdGhlIGNvbG9yIHlvdSB3YW50ICovXG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICM3NDc0NzQgIWltcG9ydGFudDsgLyogQ2hhbmdlIHRoaXMgdG8gdGhlIGNvbG9yIHlvdSB3YW50ICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGYxZmYgIWltcG9ydGFudDsgLyogQ2hhbmdlIHRoaXMgdG8gdGhlIGNvbG9yIHlvdSB3YW50ICovXG4gIGNvbG9yOiByZ2IoMCwgMCwgMCkgIWltcG9ydGFudDsgLyogWW91IG1pZ2h0IHdhbnQgdG8gY2hhbmdlIHRoZSB0ZXh0IGNvbG9yIGlmIHRoZSBiYWNrZ3JvdW5kIGlzIGRhcmsgKi9cbn1cblxuLmNvbW1lbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5jbGVhci1pbnB1dCB7XG4gIGhlaWdodDogMTVweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA3cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcbn1cblxuLmNsZWFyLWlucHV0OmhvdmVyIHtcbiAgY29sb3I6ICMzMzVlZWE7IC8qIENoYW5nZSB0byBkZXNpcmVkIGhvdmVyIGNvbG9yICovXG59XG5cbi5jbGVhci1pbnB1dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5uYXYtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogIzRlNGU0ZTtcbiAgcGFkZGluZzogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi5uYXYtaWNvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICNmMGYwZjAsICNmZmZmZmYpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBjb2xvcjogIzMzNWVlYTtcbn1cbi5uYXYtaWNvbi5hY3RpdmUge1xuICBjb2xvcjogI2Y0NzQyNDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgI2ZmZjVmMCwgI2ZmZmZmZik7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4yKTtcbn1cbi5uYXYtaWNvbi5hY3RpdmU6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgyNDQsIDExNiwgMzYsIDAuMjUpO1xufVxuXG4uc3Bpbm5lciB7XG4gIG1hcmdpbjogMTAwcHggYXV0bztcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi5zcGlubmVyID4gZGl2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzay1zdHJldGNoZGVsYXkgMS4ycyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uOiBzay1zdHJldGNoZGVsYXkgMS4ycyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbn1cblxuLnNwaW5uZXIgLnJlY3QyIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0xLjFzO1xuICBhbmltYXRpb24tZGVsYXk6IC0xLjFzO1xufVxuXG4uc3Bpbm5lciAucmVjdDMge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTFzO1xuICBhbmltYXRpb24tZGVsYXk6IC0xcztcbn1cblxuLnNwaW5uZXIgLnJlY3Q0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjlzO1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjlzO1xufVxuXG4uc3Bpbm5lciAucmVjdDUge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuOHM7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuOHM7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzay1zdHJldGNoZGVsYXkge1xuICAwJSwgNDAlLCAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKDAuNCk7XG4gIH1cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNrLXN0cmV0Y2hkZWxheSB7XG4gIDAlLCA0MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDAuNCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgwLjQpO1xuICB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMSk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgfVxufVxuLmRyb3Bkb3duOSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiBibHVlO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZHJvcGRvd245OmhvdmVyIHtcbiAgY29sb3I6IGRhcmtibHVlO1xufVxuXG4uem9vbS1lZmZlY3Qge1xuICB0cmFuc2Zvcm06IHNjYWxlKDIuMik7IC8qIEFkanVzdCBhcyBuZWVkZWQgKi9cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7IC8qIEFuaW1hdGlvbiAqL1xufVxuXG4uZ2xpdGNoLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjVmNWY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ5ZDk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogcmdiYSgyMTMsIDIxNywgMjE3LCAwLjUpIDAgMnB4IDVweCAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWluLWhlaWdodDogMzBweDtcbiAgZm9udC1mYW1pbHk6IFwiQW1hem9uIEVtYmVyXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDI5cHg7XG4gIHBhZGRpbmc6IDAgMTBweCAwIDExcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNXB4O1xufVxuXG4uZ2xpdGNoLWJ1dHRvbjphZnRlciB7XG4gIC0tc2xpY2UtMDogaW5zZXQoNTAlIDUwJSA1MCUgNTAlKTtcbiAgLS1zbGljZS0xOiBpbnNldCg4MCUgLTZweCAwIDApO1xuICAtLXNsaWNlLTI6IGluc2V0KDUwJSAtNnB4IDMwJSAwKTtcbiAgLS1zbGljZS0zOiBpbnNldCgxMCUgLTZweCA4NSUgMCk7XG4gIC0tc2xpY2UtNDogaW5zZXQoNDAlIC02cHggNDMlIDApO1xuICAtLXNsaWNlLTU6IGluc2V0KDgwJSAtNnB4IDUlIDApO1xuICBjb250ZW50OiBhdHRyKGRhdGEtdGV4dCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmY1ZjVmO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IC0zcHggLTNweCAwcHggI0Y4RjAwNSwgM3B4IDNweCAwcHggIzAwRTZGNjtcbiAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0wKTtcbn1cblxuLmdsaXRjaC1idXR0b246aG92ZXI6YWZ0ZXIge1xuICBhbmltYXRpb246IDFzIGdsaXRjaDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogc3RlcHMoMiwgZW5kKTtcbn1cblxuQGtleWZyYW1lcyBnbGl0Y2gge1xuICAwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTEwcHgpO1xuICB9XG4gIDEwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0zKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMHB4LCAxMHB4KTtcbiAgfVxuICAyMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwcHgsIDEwcHgpO1xuICB9XG4gIDMwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0zKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDVweCk7XG4gIH1cbiAgNDAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDBweCk7XG4gIH1cbiAgNTAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTMpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgMHB4KTtcbiAgfVxuICA2MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtNCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAxMHB4KTtcbiAgfVxuICA3MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwcHgsIDEwcHgpO1xuICB9XG4gIDgwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS01KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMTBweCk7XG4gIH1cbiAgOTAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMHB4LCAwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7XG4gIH1cbn1cbi5nbGl0Y2gtZWZmZWN0OmFmdGVyIHtcbiAgLS1zbGljZS0wOiBpbnNldCg1MCUgNTAlIDUwJSA1MCUpO1xuICAtLXNsaWNlLTE6IGluc2V0KDgwJSAtNnB4IDAgMCk7XG4gIC0tc2xpY2UtMjogaW5zZXQoNTAlIC02cHggMzAlIDApO1xuICAtLXNsaWNlLTM6IGluc2V0KDEwJSAtNnB4IDg1JSAwKTtcbiAgLS1zbGljZS00OiBpbnNldCg0MCUgLTZweCA0MyUgMCk7XG4gIC0tc2xpY2UtNTogaW5zZXQoODAlIC02cHggNSUgMCk7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZjVmNWY7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXNoYWRvdzogLTNweCAtM3B4IDBweCAjRjhGMDA1LCAzcHggM3B4IDBweCAjMDBFNkY2O1xuICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTApO1xufVxuXG4uZ2xpdGNoLWVmZmVjdC1saWdodDphZnRlciB7XG4gIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG59XG5cbi5nbGl0Y2gtZWZmZWN0LWJsdWU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjMDAwMGZmO1xufVxuXG4uZ2xpdGNoLWVmZmVjdDpob3ZlcjphZnRlciB7XG4gIGFuaW1hdGlvbjogMXMgZ2xpdGNoO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBzdGVwcygyLCBlbmQpO1xufVxuXG5Aa2V5ZnJhbWVzIGdsaXRjaCB7XG4gIDAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtMTBweCk7XG4gIH1cbiAgMTAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTMpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwcHgsIDEwcHgpO1xuICB9XG4gIDIwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTBweCwgMTBweCk7XG4gIH1cbiAgMzAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTMpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgNXB4KTtcbiAgfVxuICA0MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgMHB4KTtcbiAgfVxuICA1MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAwcHgpO1xuICB9XG4gIDYwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS00KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDEwcHgpO1xuICB9XG4gIDcwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTBweCwgMTBweCk7XG4gIH1cbiAgODAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0xMHB4KTtcbiAgfVxuICA5MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwcHgsIDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTtcbiAgfVxufVxuLmNhcmQtbGluayB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4uY2FyZC1pbWFnZS1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA4MCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhcmQtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xufVxuXG4uY2FyZC1saW5rOmhvdmVyIC5jYXJkLW92ZXJsYXkge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZG93bmxvYWQtYnRuIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5zY3JvbGwtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIEVuc3VyZSBidXR0b25zIGFyZSBwb3NpdGlvbmVkIGNvcnJlY3RseSAqL1xufVxuXG4uYnV0dG9uLXdyYXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnNjcm9sbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBwYWRkaW5nOiAxMHB4O1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBnYXA6IDFyZW07XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uc2Nyb2xsLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBkaXNwbGF5OiBub25lOyAvKiBIaWRlIHNjcm9sbGJhciBmb3IgQ2hyb21lLCBTYWZhcmksIGFuZCBPcGVyYSAqL1xufVxuXG4uc2Nyb2xsLWNvbnRhaW5lciA+IGRpdiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMjQwcHg7IC8qIEZpeGVkIHdpZHRoIGZvciBjYXJkcyAqL1xuICBtaW4td2lkdGg6IDE4MHB4OyAvKiBNaW5pbXVtIHdpZHRoICovXG4gIG1heC13aWR0aDogMjQwcHg7IC8qIE1heGltdW0gd2lkdGggKi9cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cblxuLyogT3ZlcnJpZGUgZm9yIGVxdWlwbWVudCBzZWN0aW9uIG9ubHkgLSBhbGxvd3MgbGFyZ2VyIGNhcmRzICovXG4jc2Nyb2xsQ29udGFpbmVyID4gZGl2IHtcbiAgd2lkdGg6IGF1dG87IC8qIEFsbG93IG5hdHVyYWwgc2l6aW5nICovXG4gIG1pbi13aWR0aDogMjgwcHg7IC8qIE1hdGNoIGVxdWlwbWVudCBjYXJkIG1pbmltdW0gKi9cbiAgbWF4LXdpZHRoOiAzNTBweDsgLyogTWF0Y2ggZXF1aXBtZW50IGNhcmQgbWF4aW11bSAqL1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNjcm9sbC1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDAgMTBweDsgLyogRW5zdXJlIG5vIGFkZGl0aW9uYWwgcGFkZGluZyBvbiBtb2JpbGUgKi9cbiAgICBtYXJnaW46IDAgLTEwcHg7IC8qIEFkanVzdCBtYXJnaW4gdG8gZml0IGNvbnRhaW5lciAqL1xuICB9XG4gIC5zY3JvbGwtY29udGFpbmVyID4gZGl2IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDsgLyogQWRqdXN0IGdhcCBmb3IgbW9iaWxlIHNjcmVlbiBzcGFjZSAqL1xuICB9XG59XG4uZ29vZ2xlY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xufVxuXG4uY3VzdG9tLWluZGljYXRvciB7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGQ3ZDc7XG4gIGJvcmRlci1yYWRpdXM6IDMwJTsgLyogbWFrZSB0aGUgaW5kaWNhdG9ycyByb3VuZCAqL1xuICBvcGFjaXR5OiAwLjU7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogIzU2N2NmODtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBlYXNlLCB0cmFuc2Zvcm0gMC42cyBlYXNlOyAvKiBhZGQgdHJhbnNmb3JtIHRvIHRoZSB0cmFuc2l0aW9uICovXG4gIG1hcmdpbjogMCA1cHg7IC8qIGFkZCBzb21lIHNwYWNlIGJldHdlZW4gdGhlIGluZGljYXRvcnMgKi9cbn1cblxuLmN1c3RvbS1pbmRpY2F0b3IuYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOyAvKiBtYWtlIHRoZSBhY3RpdmUgaW5kaWNhdG9yIGxhcmdlciAqL1xufVxuXG4uc3R5bGVkLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG4uc3R5bGVkLXRhYmxlIHRoZWFkIHRoIHtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uc3R5bGVkLXRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLmJnLXBlYWNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmRmOTtcbiAgY29sb3I6ICM0ZTRlNGU7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi5pbml0aWFsbHktaGlkZGVuIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG5bZGF0YS1jb250cm9sbGVyPXRydW5jYXRlXS5pbml0aWFsaXplZCAuaW5pdGlhbGx5LWhpZGRlbiB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5ydGwge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG5cbi50aW55LXRleHQge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5uby1zZWxlY3Qge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmJ1dHRvbi04NSB7XG4gIHBhZGRpbmc6IDAuNWVtIDFlbTtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xuICBiYWNrZ3JvdW5kOiAjMTExO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG4uYnV0dG9uLTg1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgI2ZmMDAwMCwgI2ZmNzMwMCwgI2ZmZmIwMCwgIzQ4ZmYwMCwgIzAwZmZkNSwgIzAwMmJmZiwgIzdhMDBmZiwgI2ZmMDBjOCwgI2ZmMDAwMCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMnB4O1xuICBsZWZ0OiAtMnB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IDQwMCU7XG4gIHotaW5kZXg6IC0xO1xuICBmaWx0ZXI6IGJsdXIoNXB4KTtcbiAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoNXB4KTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgYW5pbWF0aW9uOiBnbG93aW5nLWJ1dHRvbi04NSAyMHMgbGluZWFyIGluZmluaXRlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG5cbkBrZXlmcmFtZXMgZ2xvd2luZy1idXR0b24tODUge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDAwJSAwO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuLmJ1dHRvbi04NTphZnRlciB7XG4gIHotaW5kZXg6IC0xO1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMyMjI7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwNzVweCkge1xuICAuZ28tc29sYXIgLmJ1dHRvbi10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uYnV0dG9uLTIzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzIyMjIyMjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogIzIyMjIyMjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW46IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IDEzcHggMjNweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycywgLW1zLXRyYW5zZm9ybSAwLjFzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjFzLCB0cmFuc2Zvcm0gMC4xcztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uYnV0dG9uLTIzOmZvY3VzLXZpc2libGUge1xuICBib3gtc2hhZG93OiAjMjIyMjIyIDAgMCAwIDJweCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIDAgMCAwIDRweDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzO1xufVxuXG4uYnV0dG9uLTIzOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGN0Y3Rjc7XG4gIGJvcmRlci1jb2xvcjogIzAwMDAwMDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTtcbn1cblxuLmJ1dHRvbi0yMzpkaXNhYmxlZCB7XG4gIGJvcmRlci1jb2xvcjogI0RERERERDtcbiAgY29sb3I6ICNEREREREQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5idXR0b24tZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4uaG9yaXpvbnRhbC1zY3JvbGwtbWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGdhcDogNXB4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWFyZ2luOiAxMHB4O1xufVxuXG4uaG9yaXpvbnRhbC1zY3JvbGwtbWVudSAubGlzdC1tZW51LWl0ZW06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLmhvcml6b250YWwtc2Nyb2xsLW1lbnUgLmxpc3QtbWVudS1pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5ob3Jpem9udGFsLXNjcm9sbC1tZW51IC5saXN0LW1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogN3B4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzU2N2NmODtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogbGlnaHQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XG59XG5cbi5ob3Jpem9udGFsLXNjcm9sbC1tZW51IC5saXN0LW1lbnUtaXRlbTpob3ZlciB7XG4gIGNvbG9yOiAjMzM1ZWVhO1xufVxuXG4uc3Bpbm5lci1sb2FkZXIge1xuICBkaXNwbGF5OiBub25lO1xuICAvKiBFeGFtcGxlIGxvYWRlciBzdHlsaW5nOiBzcGlubmluZyBjaXJjbGUgKi9cbiAgYm9yZGVyOiA0cHggc29saWQgI2YzZjNmMztcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICM0ZTRlNGU7XG4gIGJvcmRlci1yYWRpdXM6IDc1JTtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uc2ltcGxlLXNlbGVjdCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHBhZGRpbmc6IDZweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xufVxuXG4uY3VzdG9tLXNlbGVjdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uY3VzdG9tLXNlbGVjdC13cmFwcGVyIHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAyOHB4O1xufVxuLmN1c3RvbS1zZWxlY3Qtd3JhcHBlciAuc2VsZWN0LWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA4cHg7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNjY2O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuLmN1c3RvbS1zZWxlY3Qtd3JhcHBlcjpob3ZlciAuc2VsZWN0LWljb24ge1xuICBjb2xvcjogIzMzMztcbn1cblxuLnJpYmJvbi1ib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5yaWJib24tYm94OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNXB4O1xuICByaWdodDogMDtcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG59XG5cbi5mb3JtLWNvbnRyb2wtdGl0bGUge1xuICBmb250LXNpemU6IDEuNWVtOyAvKiBBZGp1c3QgYXMgbmVlZGVkICovXG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmN2Y3Zjc7IC8qIEFkanVzdCBjb2xvciBhcyBuZWVkZWQgKi9cbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnJ0bCB7XG4gIGRpcmVjdGlvbjogcnRsO1xufVxuXG4ubGF5b3V0Y29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDkwdmg7XG59XG5cbi5sYXlvdXRzaWRlYmFyIHtcbiAgd2lkdGg6IDUlO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM0ZTRlNGU7XG59XG5cbi5sYXlvdXRjb250ZW50IHtcbiAgd2lkdGg6IDk1JTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubGF5b3V0Y29udGVudC1mdWxsIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIEhpZGUgdGhlIHNpZGViYXIgb24gbW9iaWxlICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzZweCkge1xuICAubGF5b3V0c2lkZWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubGF5b3V0Y29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5jaXJjdWxhci1pY29uIHtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgaGVpZ2h0OiAyNXB4O1xuICB3aWR0aDogMjVweDtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgcGFkZGluZzogNnB4O1xuICBjb2xvcjogIzAwMDtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSg1LCAxOCwgMzUsIDAuMSk7XG59XG5cbkBrZXlmcmFtZXMgam9sdEluRnJvbUxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAlKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMiUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuLmFuaW1hdGVkLWpvbHQtaW4ge1xuICBhbmltYXRpb246IGpvbHRJbkZyb21MZWZ0IDAuOHMgZWFzZS1vdXQ7XG59XG5cbi5mYWRlLW91dCB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFzZS1vdXQ7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jYXJkLXdyYXBwZXItbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5jYXJkLXdyYXBwZXItbGluayAuY2FyZCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnN1Z2dlc3Rpb24tbGlzdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogRW5zdXJlIGl0J3MgcG9zaXRpb25lZCByZWxhdGl2ZSB0byB0aGUgY29udGFpbmVyICovXG4gIHotaW5kZXg6IDEwMDA7IC8qIEVuc3VyZSBpdCBpcyBhYm92ZSBvdGhlciBlbGVtZW50cyAqL1xuICBiYWNrZ3JvdW5kOiAjZmZmOyAvKiBCYWNrZ3JvdW5kIGNvbG9yIGZvciBiZXR0ZXIgdmlzaWJpbGl0eSAqL1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOyAvKiBCb3JkZXIgdG8gZGlzdGluZ3Vpc2ggdGhlIGxpc3QgKi9cbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogYXV0bzsgLyogRW5zdXJlIHdpZHRoIGlzIGFwcHJvcHJpYXRlICovXG4gIG1heC13aWR0aDogMzAwcHg7IC8qIEEgbWF4LXdpZHRoIGZvciBiZXR0ZXIgcHJlc2VudGF0aW9uICovXG4gIG1heC1oZWlnaHQ6IDIwMHB4OyAvKiBNYXggaGVpZ2h0IHRvIHByZXZlbnQgb3ZlcmZsb3cgKi9cbiAgb3ZlcmZsb3cteTogYXV0bzsgLyogU2Nyb2xsIGlmIGNvbnRlbnQgZXhjZWVkcyBtYXggaGVpZ2h0ICovXG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7IC8qIE9wdGlvbmFsOiBmb3IgYSBzdWJ0bGUgc2hhZG93ICovXG4gIGRpc3BsYXk6IG5vbmU7IC8qIE9ubHkgZGlzcGxheSB3aGVuIG5lZWRlZCAqL1xufVxuXG4uc3VnZ2VzdGlvbi1pdGVtIHtcbiAgcGFkZGluZzogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zdWdnZXN0aW9uLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhO1xufVxuXG4udGFiLWljb24ge1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cblxuLmxheW91dGNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLmxheW91dHNpZGViYXIge1xuICB3aWR0aDogNSU7XG4gIG1pbi13aWR0aDogNTBweDtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4ubGF5b3V0Y29udGVudCB7XG4gIHdpZHRoOiA5NSU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmxheW91dGNvbnRlbnQtZnVsbCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBIaWRlIHRoZSBzaWRlYmFyIG9uIG1vYmlsZSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgLmxheW91dHNpZGViYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmxheW91dGNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4ubG9hZGluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG4ubG9hZGluZzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiTG9hZGluZy4uLlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcbiAgcGFkZGluZzogMnB4IDVweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4uZG9uZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiRG9uZSFcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBmb250LXNpemU6IHNtYWxsZXI7XG4gIHBhZGRpbmc6IDJweCA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLmxvYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDEwMHB4OyAvKiBBZGp1c3QgdGhpcyBhcyBuZWVkZWQgKi9cbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5za2VsZXRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZWVlIDI1JSwgI2Y1ZjVmNSA1MCUsICNlZWUgNzUlKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMDtcbiAgYW5pbWF0aW9uOiBza2VsZXRvbi1sb2FkaW5nIDEuNXMgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgc2tlbGV0b24tbG9hZGluZyB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMCUgMDtcbiAgfVxufVxuLnNrZWxldG9uLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZGRkIDI1JSwgI2UxZTFlMSA1MCUsICNkZGQgNzUlKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMDtcbiAgYW5pbWF0aW9uOiBza2VsZXRvbi1iYXItbG9hZGluZyAxLjVzIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHNrZWxldG9uLWJhci1sb2FkaW5nIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMDtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwJSAwO1xuICB9XG59XG4ucHJvZ3Jlc3MtYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZGRkZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wcm9ncmVzcy1idXR0b246YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0ycHg7XG4gIGxlZnQ6IC0ycHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyA0cHgpO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KHJnYmEoNTAsIDIwNSwgNTAsIDAuMykgdmFyKC0tY29tcGxldGlvbiwgMCUpLCB0cmFuc3BhcmVudCAwJSk7XG4gIHotaW5kZXg6IC0xO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5nbS1zdHlsZS1pdyBidXR0b24uZ20tdWktaG92ZXItZWZmZWN0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI2Zsb2F0aW5nLWluZm8ge1xuICAgIGRpc3BsYXk6IG5vbmU7IC8qIEhpZGVzIHRoZSBmbG9hdGluZyBkaXYgKi9cbiAgfVxufVxuLyogT3B0aW9uYWw6IEFkanVzdG1lbnRzIGZvciB0aGUgbWFwIG9uIG5hcnJvdyBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI21hcCB7XG4gICAgd2lkdGg6IDEwMCU7IC8qIEVuc3VyZSB0aGUgbWFwIHRha2VzIHVwIHRoZSBmdWxsIHdpZHRoICovXG4gIH1cbn1cbi5mb3JtLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDc0MjQ7XG59XG5cbi5mb3JtLXJhbmdlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmZvcm0tcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbn1cblxuLnVzZXItZW50cmllcyB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2U5ZWNlZjtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi51c2VyLWhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgY29sb3I6ICM2NjY7XG59XG5cbi51c2VyLXRvdGFsIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY29sb3I6ICM2NjY7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG59XG5cbi5lbnRyeS1pdGVtIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5cbi50b3RhbC1ob3VycyB7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZWVlO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLndlZWtseS1zdW1tYXJ5IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ud2Vla2x5LXN1bW1hcnkgaDMge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuXG4ucGF5LXJhdGUtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5lZGl0LXBheS1yYXRlIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuXG4ucGF5LXJhdGUtd3JhcHBlcjpob3ZlciAuZWRpdC1wYXktcmF0ZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5wYXktcmF0ZS1pbnB1dCB7XG4gIHdpZHRoOiA4MHB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnNjcm9sbC1wb3B1cCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAyMHB4O1xuICBsZWZ0OiAyMHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgei1pbmRleDogMTAwMDtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XG59XG4uc2Nyb2xsLXBvcHVwLmhpZGRlbiB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNTBweCkgcm90YXRlKC01ZGVnKSBzY2FsZSgwLjgpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi5zY3JvbGwtcG9wdXA6bm90KC5oaWRkZW4pIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwKSBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTtcbiAgYW5pbWF0aW9uOiBwb3B1cC1nbG93IDJzIGluZmluaXRlIGFsdGVybmF0ZTtcbn1cbi5zY3JvbGwtcG9wdXAgLnBvcHVwLWNvbnRlbnQge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG59XG4uc2Nyb2xsLXBvcHVwOm5vdCguaGlkZGVuKSAucG9wdXAtY29udGVudCB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcbn1cbi5zY3JvbGwtcG9wdXAgLmNsb3NlLXBvcHVwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGNvbG9yOiAjNGU0ZTRlO1xuICByaWdodDogMTBweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDFyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgb3BhY2l0eTogMC43O1xufVxuLnNjcm9sbC1wb3B1cCAuY2xvc2UtcG9wdXA6aG92ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgc2NhbGUoMS4yKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuQGtleWZyYW1lcyBwb3B1cC1nbG93IHtcbiAgZnJvbSB7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICB9XG4gIHRvIHtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjIpO1xuICB9XG59XG4uYnV0dG9uLWdyb3VwLTEzIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5idXR0b24tZ3JvdXAtMTMgLmJ1dHRvbi0xMyB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG1hcmdpbjogMDtcbn1cbi5idXR0b24tZ3JvdXAtMTMgLmJ1dHRvbi0xMzpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xufVxuLmJ1dHRvbi1ncm91cC0xMyAuYnV0dG9uLTEzOmxhc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4O1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cblxuLmZpZWxkX3dpdGhfZXJyb3JzIHtcbiAgZGlzcGxheTogY29udGVudHM7XG59XG5cbi5maWVsZF93aXRoX2Vycm9ycyBpbnB1dCxcbi5maWVsZF93aXRoX2Vycm9ycyBzZWxlY3QsXG4uZmllbGRfd2l0aF9lcnJvcnMgdGV4dGFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyMCwgNTMsIDY5LCAwLjEpICFpbXBvcnRhbnQ7IC8qIEJvb3RzdHJhcCBkYW5nZXIgY29sb3Igd2l0aCBvcGFjaXR5ICovXG4gIGJvcmRlci1jb2xvcjogI2RjMzU0NSAhaW1wb3J0YW50O1xufVxuXG4uZmllbGRfd2l0aF9lcnJvcnMgLmlucHV0LWdyb3VwLXRleHQge1xuICBib3JkZXItY29sb3I6ICNkYzM1NDUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjAsIDUzLCA2OSwgMC4xKSAhaW1wb3J0YW50O1xufVxuXG4vKiBFbnN1cmUgdGhlIGlucHV0IGdyb3VwIGJvcmRlciBjb25uZWN0aW9uIGlzIHNlYW1sZXNzICovXG4uZmllbGRfd2l0aF9lcnJvcnMgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC10ZXh0IHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjMzU0NTtcbn1cblxuLmZpZWxkX3dpdGhfZXJyb3JzIC5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbi5jYWxjdWxhdG9yLWN0YSB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi5jYWxjdWxhdG9yLWN0YTpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcbn1cblxuLmN0YS1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDAsIDAsIDAsIDAuNzUpLCByZ2JhKDAsIDAsIDAsIDAuNikpO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi5jYWxjdWxhdG9yLWN0YSAuZmEtY2FsY3VsYXRvci1zaW1wbGUge1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAxMHB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjUpKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5mZWF0dXJlLWxpc3QtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuICAuZmVhdHVyZS1saXN0LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA0cHg7XG4gIH1cbiAgLmZlYXR1cmUtbGlzdC1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIH1cbiAgLmZlYXR1cmUtbGlzdC1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICB9XG59XG5cbi5yZXZpZXctd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMzUwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnJldmlldy13cmFwcGVyIHtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICB9XG59XG5cbi5yZXZpZXctY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cbi5yZXZpZXctY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5yZXZpZXctYnV0dG9uLXdyYXBwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiAxMDtcbn1cbi5yZXZpZXctYnV0dG9uLXdyYXBwZXIgLmJsYW5rYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucmV2aWV3LWJ1dHRvbi13cmFwcGVyIC5jaXJjdWxhci1pY29uIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5yYWNpbmctY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5yYWNpbmctY2FyZDo6YmVmb3JlLCAucmFjaW5nLWNhcmQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IC0xMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAlLCByZ2JhKDEzMCwgMjQ0LCAzNiwgMC4xKSA1MCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNjUsIDAsIDAuMzUsIDEpO1xuICB6LWluZGV4OiAwO1xufVxuLnJhY2luZy1jYXJkOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCUsIHJnYmEoMjAxLCAyMzQsIDUxLCAwLjEpIDUwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG59XG4ucmFjaW5nLWNhcmQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTtcbn1cbi5yYWNpbmctY2FyZDpob3Zlcjo6YmVmb3JlLCAucmFjaW5nLWNhcmQ6aG92ZXI6OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiByYWNlQWNyb3NzIDEuMnMgY3ViaWMtYmV6aWVyKDAuNjUsIDAsIDAuMzUsIDEpO1xufVxuLnJhY2luZy1jYXJkOmhvdmVyOjphZnRlciB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4ycztcbn1cbi5yYWNpbmctY2FyZDpob3ZlciAubGluayB7XG4gIGNvbG9yOiAjREM4QTc4O1xufVxuLnJhY2luZy1jYXJkOmhvdmVyIC5mYS1kdW90b25lIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCkgcm90YXRlKDEwZGVnKTtcbn1cbi5yYWNpbmctY2FyZCAubGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlO1xufVxuLnJhY2luZy1jYXJkIC5mYS1kdW90b25lIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuQGtleWZyYW1lcyByYWNlQWNyb3NzIHtcbiAgMCUge1xuICAgIGxlZnQ6IC0xMDAlO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgbGVmdDogMTAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4vKiBNb3JlIFNlY3Rpb24gU3R5bGVzICovXG4ubGluay5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWE3M2U4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnRyYW5zaXRpb24tb3BhY2l0eSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDtcbn1cblxuLm9wYWNpdHktMCB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5vcGFjaXR5LTEwMCB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIFNvY2lhbCBTaGFyaW5nIEJ1dHRvbnMgKi9cbi5jb3B5LWJ0biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHdpZHRoOiAyLjVyZW07XG4gIGhlaWdodDogMi41cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5jb3B5LWJ0bjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uY29weS1idG4uYmktY2xpcGJvYXJkIHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG59XG4uY29weS1idG4uYmktY2xpcGJvYXJkOmhvdmVyIHtcbiAgY29sb3I6ICM0OTUwNTc7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTA4LCAxMTcsIDEyNSwgMC4xKTtcbn1cbi5jb3B5LWJ0bi5iaS1mYWNlYm9vayB7XG4gIGNvbG9yOiAjM2I1OTk4O1xufVxuLmNvcHktYnRuLmJpLWZhY2Vib29rOmhvdmVyIHtcbiAgY29sb3I6ICMyZDQzNzM7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTksIDg5LCAxNTIsIDAuMSk7XG59XG4uY29weS1idG4uYmktdHdpdHRlciB7XG4gIGNvbG9yOiAjMWRhMWYyO1xufVxuLmNvcHktYnRuLmJpLXR3aXR0ZXI6aG92ZXIge1xuICBjb2xvcjogIzBjODVkMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyOSwgMTYxLCAyNDIsIDAuMSk7XG59XG4uY29weS1idG4uYmktaW5zdGFncmFtIHtcbiAgY29sb3I6ICNlMTMwNmM7XG59XG4uY29weS1idG4uYmktaW5zdGFncmFtOmhvdmVyIHtcbiAgY29sb3I6ICNjMTM1ODQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI1LCA0OCwgMTA4LCAwLjEpO1xufVxuXG4ucHJldmlldy1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnByZXZpZXctYmFkZ2VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwcHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDVweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG5cbi5wcmV2aWV3LWNvbnRhaW5lcjpob3ZlciAucHJldmlldy1iYWRnZXMge1xuICBvcGFjaXR5OiAxO1xufVxuXG4ucHJldmlldy1iYWRnZXMgLmJhZGdlIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuXG4ucHJldmlldy1iYWRnZXMgLmJhZGdlIGkge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIG1hcmdpbi1yaWdodDogM3B4O1xufVxuXG4vKiBDdXN0b20gc3R5bGluZyBmb3IgdGhlIG5hdmlnYXRpb24gdGFicyAqL1xuI2V2LW1hbmFnZW1lbnQtdGFicyAubmF2LWxpbmsge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbiNldi1tYW5hZ2VtZW50LXRhYnMgLm5hdi1saW5rOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG59XG5cbiNldi1tYW5hZ2VtZW50LXRhYnMgLm5hdi1saW5rLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgI2Y0NzQyNCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4xNSkgMCUsIHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjA1KSAxMDAlKTtcbn1cblxuLmNhcm91c2VsLW5hdiB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLmNhcm91c2VsLW5hdi5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2Y0NzQyNDtcbn1cblxuLyogUVIgQ29kZSBTdHlsaW5nICovXG4ucXItY29kZS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5xci1jb2RlLWNvbnRhaW5lciBoNiB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ucXItY29kZS1jb250YWluZXIgc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiAxNTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2YwZjBmMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4ucXItY29kZS1jb250YWluZXIgLnFyLWNvZGUtZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNjY2O1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5xci1jb2RlLWNvbnRhaW5lcjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zcyBlYXNlO1xufVxuXG4ubWVzc2FnZXMtY29udGFpbmVyIHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG4ubWVzc2FnZXMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA2cHg7XG59XG4ubWVzc2FnZXMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5tZXNzYWdlcy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4ubWVzc2FnZXMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuLm1lc3NhZ2UtaXRlbSB7XG4gIGFuaW1hdGlvbjogZmFkZUluVXAgMC4zcyBlYXNlO1xufVxuQGtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG4ubWVzc2FnZS1hdmF0YXIgLmF2YXRhci1wbGFjZWhvbGRlciB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ubWVzc2FnZS1hdmF0YXIgLmF2YXRhci1wbGFjZWhvbGRlcjpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG5cbi5tZXNzYWdlLWJ1YmJsZSB7XG4gIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5tZXNzYWdlLWJ1YmJsZTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuLm1lc3NhZ2UtYnViYmxlLm1lc3NhZ2UtYnViYmxlLW93biB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSBkZCkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xufVxuLm1lc3NhZ2UtYnViYmxlLm1lc3NhZ2UtYnViYmxlLW93bjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogOHB4O1xuICByaWdodDogLThweDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAtOHB4O1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgZGQgIWltcG9ydGFudDtcbn1cbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vd24gLnRleHQtbXV0ZWQge1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vd24gLmJhZGdlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuOTtcbn1cbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vd24gLm1lc3NhZ2UtdGltZXN0YW1wLFxuLm1lc3NhZ2UtYnViYmxlLm1lc3NhZ2UtYnViYmxlLW93biAubWVzc2FnZS1yZWFkLXN0YXR1cyxcbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vd24gLmRvY3VtZW50LWZpbGUtc2l6ZSB7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44O1xufVxuLm1lc3NhZ2UtYnViYmxlLm1lc3NhZ2UtYnViYmxlLW90aGVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY2FyZC1jb2xvdXIpLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vdGhlcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogOHB4O1xuICBsZWZ0OiAtOHB4O1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLm1lc3NhZ2UtYnViYmxlLm1lc3NhZ2UtYnViYmxlLW90aGVyIC5tZXNzYWdlLXRpbWVzdGFtcCxcbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vdGhlciAubWVzc2FnZS1yZWFkLXN0YXR1cyxcbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vdGhlciAuZG9jdW1lbnQtZmlsZS1zaXplIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5tZXNzYWdlLWZvcm0ge1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgLTRweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSBmMCAhaW1wb3J0YW50O1xufVxuLm1lc3NhZ2UtZm9ybSB0ZXh0YXJlYSB7XG4gIHJlc2l6ZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgcGFkZGluZzogMTJweCAyMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLm1lc3NhZ2UtZm9ybSB0ZXh0YXJlYTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDIwICFpbXBvcnRhbnQ7XG59XG4ubWVzc2FnZS1mb3JtIC5maWxlLXVwbG9hZC13cmFwcGVyIGxhYmVsIHtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMTJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5tZXNzYWdlLWZvcm0gLmZpbGUtdXBsb2FkLXdyYXBwZXIgbGFiZWw6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE1ICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5maWxlLXVwbG9hZC1pY29uIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAycHggc29saWQgI2RlZTJlNiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZjNzU3ZCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcbn1cbi5maWxlLXVwbG9hZC1pY29uOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KSAhaW1wb3J0YW50O1xufVxuLmZpbGUtdXBsb2FkLWljb246YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSAhaW1wb3J0YW50O1xufVxuXG4uZG9jdW1lbnQtaXRlbSB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG59XG4uZG9jdW1lbnQtaXRlbTpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5tZXNzYWdpbmctaGVhZGVyIC5jbGllbnQtc3RhdHVzLWJhZGdlIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4ubWVzc2FnaW5nLWNvbnRhaW5lciAubGlnaHRjYXJkIHtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuLm1lc3NhZ2Utc2VuZGluZyB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5tZXNzYWdlLXNlbmRpbmc6OmFmdGVyIHtcbiAgY29udGVudDogXCLij7NcIjtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cblxuLm1lc3NhZ2UtZGVsaXZlcmVkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi4pyTXCI7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG59XG5cbi5tZXNzYWdlLW5ldyB7XG4gIGFuaW1hdGlvbjogcHVsc2VOZXcgMC41cyBlYXNlO1xufVxuQGtleWZyYW1lcyBwdWxzZU5ldyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDAsIDEyMywgMjU1LCAwLjIpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICB9XG59XG5cbi5tZXNzYWdlLXVwZGF0ZWQge1xuICBhbmltYXRpb246IGZsYXNoVXBkYXRlIDFzIGVhc2U7XG59XG5Aa2V5ZnJhbWVzIGZsYXNoVXBkYXRlIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIzNSwgNTksIDAuMyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLnNlYXJjaC1iYXItY29udGFpbmVyIHtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuLnNlYXJjaC1iYXItY29udGFpbmVyIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLnNlYXJjaC1iYXItY29udGFpbmVyIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMwMDdiZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDAsIDEyMywgMjU1LCAwLjEpO1xufVxuXG4uc2VhcmNoLWhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYzY2Q7XG4gIGNvbG9yOiAjODU2NDA0O1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5zZWFyY2gtYWN0aXZlLW1hdGNoIHtcbiAgYW5pbWF0aW9uOiBzZWFyY2hQdWxzZSAxcyBlYXNlO1xufVxuQGtleWZyYW1lcyBzZWFyY2hQdWxzZSB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLm1lc3NhZ2UtaW5wdXQtYXJlYSB7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1lc3NhZ2UtaW5wdXQtYXJlYSAubWVzc2FnZS1pbnB1dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ubWVzc2FnZS1pbnB1dC1hcmVhIC5tZXNzYWdlLWlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC4xKTtcbn1cbi5tZXNzYWdlLWlucHV0LWFyZWEgLmJ0biB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ubWVzc2FnZS1pbnB1dC1hcmVhIC5idG46aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG4ubWVzc2FnZS1pbnB1dC1hcmVhIC5idG4uYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA3YmZmLCAjMDA1NmIzKTtcbiAgYm9yZGVyOiBub25lO1xufVxuLm1lc3NhZ2UtaW5wdXQtYXJlYSAuYnRuLmJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwNTZiMywgIzAwNDA4NSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAubWVzc2FnaW5nLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTUwcHgpICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbnZlcnNhdGlvbi1pdGVtIHtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbnZlcnNhdGlvbi1pdGVtLmhhcy11bnJlYWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLm9mZmNhbnZhcy1ib2R5IC5jb252ZXJzYXRpb25zLWxpc3Qge1xuICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb252ZXJzYXRpb24taXRlbTpob3ZlciB7XG4gICAgb3BhY2l0eTogMC44NTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIH1cbn1cbi5zcGluIHtcbiAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi50ZW1wbGF0ZS1wb3BvdmVyIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xufVxuLnRlbXBsYXRlLXBvcG92ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOHB4O1xuICBsZWZ0OiAyMHB4O1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xufVxuLnRlbXBsYXRlLXBvcG92ZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC03cHg7XG4gIGxlZnQ6IDIxcHg7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1sZWZ0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xufVxuXG4uc2F2ZS1zdGF0dXMtaW5kaWNhdG9yIHtcbiAgbWluLXdpZHRoOiAxMDBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5hbGVydC5iZy10aGVtZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmVtb2ppLXBpY2tlciB7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4uZW1vamktcGlja2VyIC5lbW9qaS1idG4ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLmVtb2ppLXBpY2tlciAuZW1vamktYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xufVxuXG4udHlwaW5nLWluZGljYXRvciB7XG4gIG9wYWNpdHk6IDA7XG4gIGFuaW1hdGlvbjogZmFkZUluIDAuM3MgZWFzZSBmb3J3YXJkcztcbn1cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi50eXBpbmctaW5kaWNhdG9yIC50eXBpbmctZG90cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNHB4O1xufVxuLnR5cGluZy1pbmRpY2F0b3IgLnR5cGluZy1kb3RzIHNwYW4ge1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGFuaW1hdGlvbjogdHlwaW5nRG90IDEuNHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG59XG4udHlwaW5nLWluZGljYXRvciAudHlwaW5nLWRvdHMgc3BhbjpudGgtY2hpbGQoMSkge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjMycztcbn1cbi50eXBpbmctaW5kaWNhdG9yIC50eXBpbmctZG90cyBzcGFuOm50aC1jaGlsZCgyKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMTZzO1xufVxuLnR5cGluZy1pbmRpY2F0b3IgLnR5cGluZy1kb3RzIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwcztcbn1cbkBrZXlmcmFtZXMgdHlwaW5nRG90IHtcbiAgMCUsIDgwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uZ2lmLXBpY2tlciB7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4uZ2lmLXBpY2tlciAuZ2lmLXBpY2tlci1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbn1cbi5naWYtcGlja2VyIC5naWYtcGlja2VyLWhlYWRlciAuZm9ybS1jb250cm9sIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5naWYtcGlja2VyIC5naWYtcGlja2VyLWhlYWRlciAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC4xKTtcbn1cbi5naWYtcGlja2VyIC5naWYtY2F0ZWdvcmllcyAuYnRuIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5naWYtcGlja2VyIC5naWYtY2F0ZWdvcmllcyAuYnRuOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ2lmLXBpY2tlciAuZ2lmLXJlc3VsdHMge1xuICBiYWNrZ3JvdW5kOiAjZjhmOWZhO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4uZ2lmLXBpY2tlciAuZ2lmLXJlc3VsdHMgLmdpZi1pdGVtIGltZyB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ2lmLXBpY2tlciAuZ2lmLXJlc3VsdHMgLmdpZi1pdGVtIGltZzpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAxMjMsIDI1NSwgMC4zKTtcbn1cblxuLm1hcGxpYnJlZ2wtcG9wdXAtY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCAwLjVyZW0pO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LCAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWFwbGlicmVnbC1wb3B1cC1hbmNob3ItYm90dG9tIC5tYXBsaWJyZWdsLXBvcHVwLXRpcCB7XG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbn1cblxuLm1hcGxpYnJlZ2wtcG9wdXAtYW5jaG9yLXRvcCAubWFwbGlicmVnbC1wb3B1cC10aXAge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG59XG5cbi5tYXBsaWJyZWdsLXBvcHVwLWFuY2hvci1sZWZ0IC5tYXBsaWJyZWdsLXBvcHVwLXRpcCB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xufVxuXG4ubWFwbGlicmVnbC1wb3B1cC1hbmNob3ItcmlnaHQgLm1hcGxpYnJlZ2wtcG9wdXAtdGlwIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbn1cblxuLm1hcGxpYnJlZ2wtY3RybC1ncm91cCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LCAwIDAgNHB4IHJnYmEoMCwgMCwgMCwgMC4xKSkgIWltcG9ydGFudDtcbn1cbi5tYXBsaWJyZWdsLWN0cmwtZ3JvdXAgYnV0dG9uIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMzMzKSAhaW1wb3J0YW50O1xufVxuLm1hcGxpYnJlZ2wtY3RybC1ncm91cCBidXR0b24gKyBidXR0b24ge1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KSAhaW1wb3J0YW50O1xufVxuLm1hcGxpYnJlZ2wtY3RybC1ncm91cCAubWFwbGlicmVnbC1jdHJsLXpvb20taW4gLm1hcGxpYnJlZ2wtY3RybC1pY29uLFxuLm1hcGxpYnJlZ2wtY3RybC1ncm91cCAubWFwbGlicmVnbC1jdHJsLXpvb20tb3V0IC5tYXBsaWJyZWdsLWN0cmwtaWNvbiB7XG4gIGZpbHRlcjogdmFyKC0tbWFwbGlicmUtaWNvbi1maWx0ZXIsIG5vbmUpO1xufVxuXG4ubWFwbGlicmVnbC1jdHJsIGJ1dHRvbiAubWFwbGlicmVnbC1jdHJsLWljb24uZmEtY3RybCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgZmlsdGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xufVxuLm1hcGxpYnJlZ2wtY3RybCBidXR0b24gLm1hcGxpYnJlZ2wtY3RybC1pY29uLmZhLWN0cmwgaSwgLm1hcGxpYnJlZ2wtY3RybCBidXR0b24gLm1hcGxpYnJlZ2wtY3RybC1pY29uLmZhLWN0cmwgc3ZnIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aWR0aDogMC45cmVtO1xuICBoZWlnaHQ6IDAuOXJlbTtcbn1cblxuLm1hcGxpYnJlZ2wtY3RybC1hdHRyaWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMzMzKSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuN3JlbSAhaW1wb3J0YW50O1xufVxuLm1hcGxpYnJlZ2wtY3RybC1hdHRyaWIgYSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMykgIWltcG9ydGFudDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLm1hcGxpYnJlZ2wtY3RybC1ncm91cCBidXR0b24gLm1hcGxpYnJlZ2wtY3RybC1pY29uOm5vdCguZmEtY3RybCkge1xuICBmaWx0ZXI6IGludmVydCgxKTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLm1hcGxpYnJlZ2wtY3RybC1hdHRyaWItYnV0dG9uIHtcbiAgZmlsdGVyOiBpbnZlcnQoMSk7XG59XG5cbi5kYXNoYm9hcmQtbWFwLXBvcHVwIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xufVxuXG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xufVxuXG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1pY29uIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnRlcmFjdGlvbiwgIzI4YTc0NSk7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uZGFzaGJvYXJkLW1hcC1wb3B1cC10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMzMzKTtcbn1cblxuLmRhc2hib2FyZC1tYXAtcG9wdXAtc3VidGl0bGUge1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNjY2KTtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1iYWRnZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xufVxuLmRhc2hib2FyZC1tYXAtcG9wdXAtYmFkZ2VzIC5iYWRnZSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBwYWRkaW5nOiAwLjJlbSAwLjQ1ZW07XG59XG5cbi5kYXNoYm9hcmQtbWFwLXBvcHVwLWluZm8ge1xuICBtYXJnaW4tYm90dG9tOiAwLjRyZW07XG59XG5cbi5kYXNoYm9hcmQtbWFwLXBvcHVwLWluZm8tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzY2Nik7XG4gIG1hcmdpbi1ib3R0b206IDAuMTVyZW07XG59XG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1pbmZvLXJvdyBpIHtcbiAgd2lkdGg6IDEycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1jaGlwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4zNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xufVxuXG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1jaGlwIHtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogMjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjZjQ3NDI0KTtcbiAgY29sb3I6ICNmZmY7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLCBvcGFjaXR5IDAuMTVzIGVhc2U7XG59XG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1jaGlwOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5kYXNoYm9hcmQtbWFwLXBvcHVwLWNoaXAuaXMtZW1wdHkge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNjY2KTtcbiAgb3BhY2l0eTogMC4zO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmRhc2hib2FyZC1tYXAtcG9wdXAtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC40cmVtO1xuICBwYWRkaW5nLXRvcDogMC40cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG59XG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1hY3Rpb25zIC5idXR0b24tMTMge1xuICBtaW4taGVpZ2h0OiAyNnB4O1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNnJlbTtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5kYXNoYm9hcmQtbWFwLWVtcHR5LW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCAwLjVyZW0pO1xuICB6LWluZGV4OiAxO1xufVxuXG4uZGFzaGJvYXJkLW1hcC1lbXB0eS1jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAycmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xufVxuXG4uZGFzaGJvYXJkLWFjdGlvbnMgLmRhc2gtYWN0aW9uLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCBpbmhlcml0KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xufVxuLmRhc2hib2FyZC1hY3Rpb25zIC5kYXNoLWFjdGlvbi1idG4gaSB7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgb3BhY2l0eTogMC43O1xufVxuLmRhc2hib2FyZC1hY3Rpb25zIC5kYXNoLWFjdGlvbi1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tY29sb3VyLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpKTtcbiAgY29sb3I6IHZhcigtLWJvZHktY29sb3VyLCBpbmhlcml0KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi5kYXNoYm9hcmQtYWN0aW9ucyAuZGFzaC1hY3Rpb24tYnRuOmhvdmVyIGkge1xuICBvcGFjaXR5OiAxO1xufVxuLmRhc2hib2FyZC1hY3Rpb25zIC5kYXNoLWFjdGlvbi1idG46YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuLmRhc2hib2FyZC1hY3Rpb25zIC5kYXNoLWFjdGlvbi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYnV0dG9uLWNvbG91ciksIHZhcigtLWludGVyYWN0aW9uKSk7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGFzaGJvYXJkLWFjdGlvbnMgLmRhc2gtYWN0aW9uLXByaW1hcnkgaSB7XG4gIG9wYWNpdHk6IDE7XG59XG4uZGFzaGJvYXJkLWFjdGlvbnMgLmRhc2gtYWN0aW9uLXByaW1hcnk6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMSk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAxMzAsIDE1MCwgMC4zNSk7XG59XG4uZGFzaGJvYXJkLWFjdGlvbnMgLmRhc2gtYWN0aW9uLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4td2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgcGFkZGluZzogMCAwLjM1cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tY29sb3VyLCAjMDA4Mjk2KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQUk9QT1NBTCBERVNJR04gU0VDVElPTiDigJQgYXJyYXkgY2FyZHMgKyBvcHRpb24gY29tcGFyaXNvbiB0YWJsZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmFycmF5LWNhcmQtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI1MHB4LCAxZnIpKTtcbiAgZ2FwOiAxMnB4O1xufVxuXG4uYXJyYXktY2FyZCB7XG4gIHBhZGRpbmc6IDE2cHg7XG59XG5cbi5hcnJheS1jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAzcHggMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RhZGFkYSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwcmVtO1xuICBmb250LXNpemU6IDAuODJyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzRlNGU0ZSk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYXJyYXktY2hpcCBpIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDgyOTYpO1xufVxuXG4uYXJyYXktc2hhcmUtdHJhY2sge1xuICBoZWlnaHQ6IDZweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyLCAjZTJlMmUyKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmFycmF5LXNoYXJlLWZpbGwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJvZHVjdGlvbi1jb2xvdXIsICM3NGM2OWQpO1xufVxuXG4uYXJyYXktc2VyaWVzLWRvdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xufVxuXG4uYXJyYXktY2hhcnQtY2FyZCB7XG4gIHBhZGRpbmc6IDE2cHg7XG59XG5cbi5jaGFydC10b2dnbGUtYnRuIHtcbiAgcGFkZGluZzogNHB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmNvbXBhcmlzb24tY2FyZCB7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jb21wYXJpc29uLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi5jb21wYXJpc29uLXRhYmxlIHtcbiAgbWluLXdpZHRoOiA2NDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5jb21wYXJpc29uLXRhYmxlIHRoLFxuLmNvbXBhcmlzb24tdGFibGUgdGQge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICM0ZTRlNGUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91ciwgI2UyZTJlMikgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMTJweCAxNHB4O1xufVxuLmNvbXBhcmlzb24tdGFibGUgdGg6bm90KC5zZWxlY3RlZC1xdW90ZSksXG4uY29tcGFyaXNvbi10YWJsZSB0ZDpub3QoLnNlbGVjdGVkLXF1b3RlKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4uY29tcGFyaXNvbi10YWJsZSB0aGVhZCB0aCB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5jb21wYXJpc29uLXRhYmxlIC5jb21wYXJpc29uLW9wdGlvbiB7XG4gIG1pbi13aWR0aDogMjAwcHg7XG59XG4uY29tcGFyaXNvbi10YWJsZSAuY29tcGFyaXNvbi1tZXRyaWMge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZmZmZikgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5jb21wYXJpc29uLXRhYmxlIC5jb21wYXJpc29uLW1ldHJpYyBpIHtcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjMDA4Mjk2KTtcbn1cblxuLm9wdGlvbi10aHVtYiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA4cHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGRkZGRkKTtcbn1cbiJdfQ== */
